Oro Momentum 2016

Oro is an interesting company that I have been watching for a few years now. The company leadership is comprised of the original founders of Magento, as well as other key people from Magento. There is an impressive track record here and a solid vision for the B2B space that makes this a company everyone should be paying attention to.

The company I work for is a client of Oro, they have done contract work for us through their MageCore agency and we are in the processing of adopting OroCRM. Given that and my interest in the company, I was happy to be able to attend the Oro Momentum event and learn more about what they are doing in the future.

The event started with presentations by Yoav Kutner, Roy Rubin, and Dima Soroka, they talked about the history of the company, the future of their platform, and general trends in the B2B space.

The Oro Platform is an open source business application platform that provides a solid foundation of components that most business applications would need. It includes a well designed UI, user management, roles, a calendar, workflow management, and a lot more. There is a surprising amount of functionality provided “out of the box” and they are actively working to improve the platform.

Anyone that is planning to build an open source B2B application should seriously consider using OroPlatform as their platform. There are already a few companies building applications on the OroPlatform, two of which spoke at Oro Momentum.

akeneo1The first of these presentations was from Frédéric de Gombert of Akeneo. Akeneo is a PIM application that is built on the OroPlatform. We use Akeneo at Petra and it’s a great product with a bright future. Outside of Oro themselves, Akeneo is clearly doing the most with the platform right now.

marelloThe next presentation was from Falco van der Maden of Marello. Marello is building an ERP on the Oro Platform. Falco discussed their road map and planned features, they are hoping for a stable release by the end of the year. There is a massive opportunity here, it will be interesting to see if Marello can capitalize on that and deliver a great open source ERP solution.

Jary Carter, a co-founder of Oro, talked about OroCRM. OroCRM is, of course, built on the OroPlatform and has been on the market for two years now. A couple of their customers shared success stories from their own OroCRM implementations. Aside from the product, which is great, the pricing model is surprisingly simple for a B2B application. It’s a per user pricing that is exactly the same for either the downloadable version you install on your own server or the hosted SaaS version that Oro offers.

The next product shown was OroCommerce, the new B2B eCommerce application being developed by Oro. This is a particularity exciting product, there is not currently an open source eCommerce system that is designed with the unique needs of B2B companies in mind. The demo shown was very impressive and I’m excited to see how this product develops over time. I’m planning to write another blog post with more in depth thoughts and impressions about OroCommerce.

Oro packed a ton of content into a four hour window for this event. There was also a presentation from PayPal and AppTerra. AppTerra is building an EDI integration for OroCommerce.

That’s a quick run down of most of the topics discussed at Oro Momentum. I thought this was a very successful event for Oro and I look forward to seeing what their next event will be.




Magento Imagine 2016

Last week I attended the Magento Imagine event, this was my fourth year of being at the event. I’m going to go through some quick impressions here and then hopefully write a few more detailed entries over the next couple weeks on different topics from the conference.


IMG_1086The first event of the conference for me was the Big Dam Run, organized by Brent Peterson from Wagento. We ran along the historic railroad hiking trail to the Hoover Dam, about 8 miles in total. The run went through old train tunnels, had amazing views, and a lot of stairs at the dam. It’s hard to think of a better way to kick off the conference!

Later in the day I went to the Oro Momentum event to check out what they have been working on. There was a lot of interesting content here, but I’ll cover that in separate entry.


The next day was full of deep dives into various Magento 2 topics. This ranged from information on the new Marketplace, to information on the new Magento 2 frontend architecture, to performance and scalability, and quite a few more topics.

In general, I thought these sessions were a little too broad, I would have liked to have seen more in depth details from two hour sessions. There was certainly a lot of value in them, but more focus would have helped. I suspect what I was really looking for was covered in the bar camps on Wednesday, but unfortunately I had to leave too early to attend those.

The evening networking event was fun and I had the opportunity to speak with a lot of people that were working on interesting projects. Discovering exciting new projects by randomly bumping into people at these events is always a lot of fun.


IMG_1092The first big event of Tuesday was the morning General Session, which largely focused on Magento’s new enterprise cloud offering. Their solution is a single tenant “Platform as a Service” offering that gives you full access to the source code to customize Magento in whatever way you need. I really like this approach, as opposed to the more typical “Software as a Service” approach that does not give you access to the source code. The service has an impressive technology stack, including Fastly, blackfire.io, Newrelic, Amazon AWS, ElasticSearch, RabbitMQ, and more. This is targeted at larger businesses, a solution for small to medium sized business is coming in the future.

The afternoon was filled with breakout sessions and talking to vendors in the marketplace. The quality of the breakout sessions were generally high, I particularly liked the project requirements session and the sessions on continuous integration and continuous delivery.

IMG_1100The evening keynote address from Magic Johnson was a highlight of the day. He has a really interesting story and is a great speaker. The way he interacted with the crowd throughout the keynote and the Q&A was fun.

The evening party was a great chance to catch up with several of the partners I work with throughout the year. I also had the chance to meet a lot of other merchants that are trying to solve some of the problems that I’m working on throughout the year.



The last day of the conference opened up with a general session about the upcoming release of Magento 2.1. There were a handful of new features announced, the best of which are all exclusive to the Enterprise version of Magento. This release is coming in June, but seems to be a fairly minor release, especially if you are on the Community edition of Magento.

My biggest disappointment of the show was the lack of any clear vision in the B2B space. There was a B2B module announced, but few details were give and it won’t be available until at least Q3. This module also appears to be exclusive to the Enterprise edition. I would have liked to seen this included in the Community edition of Magento, so that the larger community of Magento would have more access to it and produce more enhancements for it.

There were some interesting customer stories during this session, the Fraport story is a particular standout. Magento produced a video to highlight the really impressive work that AOE did for for Frankfurt Airport.

IMG_1094Overall, this year was a big improvement over last year. Last year Magento was sidelined in favor of promoting various eBay Enterprise products and offering. However, now that Magento is independent of eBay, there was a clear focus on making the event about Magento and the future of that platform.

After spending a few days around the Magento community, it’s always clear that this is the greatest strength of the Magento platform. There are an amazing number of smart and talented people that are doing incredible things with the platform, it’s nice to see that Magento does not seem to be taking that for granted.

Possible PHP 5.6 Features

I originally wanted to write a quick round-up of all the discussions from the internals mailing list regarding PHP 5.6. That post was turning out to be rather long, so instead I’m going to focus in on a group of RFCs that are related to how PHP handles function parameters. It’s important to remember that these features have not been accepted into the language yet, so it’s entirely possible that they will not make the actual release of PHP 5.6.

Skipping Parameters

This is a straightforward feature that makes working with optional parameters a little easier. It allows passing the keyword “default”, when you aren’t going to specify your own value for the parameter. For example, if you have a function signature like this:

function foo($param, $param2=’a’, $param3=0, $param4=”) {…}

You can call it like this:

foo(‘value’, default, default, ‘another value’)

This essentially saves you from having to check the function signature and make sure that you are passing the correct default parameters, when you aren’t specifying them your self.  Discussion about this feature is ongoing, so there has been no vote on the RFC yet.

Named Parameters

Named parameters are a better approach to solving the same problems that the Skipping Parameters RFC addresses. It’s been discusses a number of times in the past, but was usually considered too difficult to implement, so the skipping parameters idea was a middle ground between implementation and functionality. However, Nikita Popov announced to the internals mailing list that he has a partial implementation of this feature and has posted an RFC for further discussion.

Named parameters work by letting you pass params to a function by their name, rather than by position. So given the function signature from my previous example:

function foo($param, $param2=’a’, $param3=0, $param4=”) {…}

You could call it like this:

foo(param => ‘value’, param4 => ‘another value’)

This has the advantage of looking a lot cleaner, you also don’t have to worry about the function signature changing later and then adding or removing default params so that your function call still works. Another great benefit is that the code is self documenting and easy to understand at a glance.

The final syntax for this is still up in the air, the RFC proposes several variations and there is also a discussion about this on the mailing list. I’m partial to foo(:param => ‘value’, :param2 => ‘value2’), which I think looks clean and consistent with the PHP language as a whole. That being said, the final syntax is not a huge concern to me, I’ll just be happy if this RFC is accepted into the language.

Variadic Functions

Variadic functions are functions that accept a variable number of arguments, this is a feature that is actually already supported by PHP via the func_get_args() function. This implementation is a little clunky and it’s also not always clear that a function is expecting a variable number of parameters, since the func_get_args() call can happen at any point in a function body.

This RFC would introduce a new syntax that makes it clear that the function is a variadic function:

function foo($param1, …$params) {}

If this function is called with more than one param, all the additionally parameters are stored in an array called $params. You can easily see that this function is variadic by the presence of the …$params syntax.

This RFC has not yet been voted on, you can follow the discussion of this feature on the mailing list.

Argument Unpacking

This feature is commonly referred to as a ‘splat operator’, it allows for passing a list of parameters as an array. The syntax proposed by this RFC looks like this:

$params = array(1,2,3,4);

foo(‘value1’, …$params);

This would be equivalent to calling the function like this:

foo(‘value1’, 1, 2, 3, 4);

As you can see, this feature is essentially a compliment to the variadics feature. This RFC has also not been voted on, you can follow the discussion on the mailing list.

Wrap Up

So that’s a quick round-up of RFCs related to parameter handling in PHP 5.6. In the future I may write a more detailed post about some of these features, but for now I mainly wanted to point people in the direction of the mailing list discussions that are currently ongoing.

If you’re a PHP developer, I highly recommend that you subscribe to the internals mailing list and keep up to date with where the language is going in the future. If you’re unfamiliar with the RFC process that is used to develop the language, then I recommend reading this great overview of how the process works.

More races!

I’ve been neglecting my poor new blog, let’s see if I can get this back on track! I’ve done several races since my last blog post and have been generally happy with how each of them went.

Warrior Dash

I was really nervous about the obstacles in this race, particularly ones like “Horizontal Hike” which looked like they would trigger my fear of heights. As it turns out, the obstacles are not nearly as tough as they look on the website, the majority of them are actually really easy in fact. There was one or two that was somewhat challenging, but really, the obstacles were not an issue.

The actual trail turned out to be the problem, which is the part that I was not at all worried about, since it was only 5K. It was extremely hilly, rocky, and I found it difficult to keep my footing much of the time. I did actually roll my ankle once, but was able to walk it off and get going again.

All in all, the event was a blast and I’m looking forward to doing it again next year!

Riley’s Run 5K

This was my first 5K race since Blaze through the Zoo, I finished that one in 29:55, which I was quite disappointed with at the time. This race went much better, I finished it in 25:54, which was a new PR and a huge improvement over the zoo run! This race had a very steep hill toward the end, so that made me even happier with my time on this race. It was also a very fun, well-organized event that was for a great cause, I’m really happy I was there to participate!

Blaze the Night 5K

This race was a week after Riley’s Run and my first evening race. Even though the race started out at 8:30, it was still really hot, which made the run more difficult. Thankfully this one was fairly flat, a heat and hill combination would have been really rough! I made a mistake by not taking any water from the water stops, I don’t normally need any water on a 5K, but with the heat, I really should have this time. The last mile was really difficult, I was super thirsty and more than once thought I might actually throw up, which was a horrifying thought at the time! That didn’t happen though, I made it across the finish line and downed a couple of bottles of water and then felt great!

Despite my hydration issue, I finished this one in 25:34, beating my time from the last race by 21 seconds and setting another PR for myself! I was tired before the race started and had to stop and walk a couple of times in the final mile, so this was a huge surprise to me! Although it makes me wonder how much better I could have done had I grabbed some water, which I think would have prevented the walking in the final mile.

All in all, another great event that I’m glad I didn’t miss!

Route 66 Marathon

I’ve decided that the Route 66 Marathon in November is going to be my first marathon! I’ve already signed up and found a training schedule that I think will work well for me. It doesn’t start for a few weeks, so in the meantime I’m just doing my normal weekly miles, but I’m really excited to get started with the marathon training!

Race Reports: Body Shop, Blaze Through the Zoo, and Red Mud Run!

I’ve ran several races in that last couple weeks, so this seems like a good time for a few race reports!

Body Shop 10K

This was my first time running a 10K race and it went pretty well. I finished with a gun time of 57:27 and a pace of 9:15, which is not too bad for me. It took me close to a minute to reach the start line and run, so my actual time is slightly better. I think I could have done this one faster, I held back in the first 5K to save up energy, but toward the end of the race I wasn’t particularly tired and sped up quite a bit. I still don’t really have a handle on how to pace myself in these races, but I learn a little every time!

The weather was also great for this one, nice and cool and slightly overcast. The race itself was at Wheeler Park, which isn’t very hilly, no doubt that helped me out a fair amount. This is also where I ran my first race, a 5K back in February. I ran that race at a 9:39 pace, which I was happy with at the time. It makes a nice way of measuring my progress, on the same course I increased from 5K to 10K, while dropping my pace from 9:39 to 9:15! I’m not sure if that’s good for four months of work, but I’m happy with it!

Blaze Through the Zoo 5K

I signed up for this race thinking that the whole thing was going to be in the OKC Zoo, but it turns out only half of it was in the zoo. I had quite a few problems with bottlenecks early on in this race. I didn’t make it to the zoo as early as I would have liked, so I started toward the back of the pack and it took me well over a minute to reach the starting line. The problems continued after that, the pathways in the zoo are narrow and there were several times I had to completely stop and wait for traffic to thin out, hardly ideal. There was also a weird loop in the route that caused another bottleneck, as people exiting the loop were meeting people entering the loop.

After about 2.5K the route left the Zoo and entered the Remington parking lot, running in a parking lot is not very interesting! This part of the course was dull and extremely hilly, not a good combination for me. I’ve not really done hill training yet, so this was definitely challenging for me. It was also hot and windy, which was giving me problems. So now that my excuses are done, I finished in 29:55, which should be roughly a 9:37 pace. So this one wasn’t great, but I still had fun!

Red Mud Run

This was my first mud run and I really wasn’t sure what to expect, but I had an absolute blast! It rained all morning, it actually only stopped maybe 20 minutes before the race started, so everything was super muddy. This was also my first time duct taping my shoes, never really thought I would do that!

The race started with a dash through muddy water, trying to run through water is certainly an interesting, and cold, experience! Next up was walking across a small muddy bridge, which was easy, that led into a mud slide that was a lot of fun to go down. Next up was the first wall climb, it was a small wall and easy to get over. A steep muddy hill was next, you had to pull yourself up with a rope and try not to slip, this wasn’t too bad, just had to be careful.

After that point, most of the obstacles became wall climbs and cargo net climbs. None of them were very tall, but the last few were kind of challenging because my shoes were caked in mud and the walls were caked in mud, made it much more difficult to climb. There were also some muddy water puts that we had to dive through, those were a lot of fun!

I’m not sure how long the course was, it definitely didn’t feel like 5K, I would guess it was somewhere around two miles. I also don’t know how long it took me to finish, I lost my timer chip somewhere along the course. However, my friend I was running with finished in 29:55 and I was probably 30 seconds behind him.

I wasn’t concerned about time on this one though, just wanted to finish and have a good time, which I did! I stopped trying to run fast early on, wasn’t worth risking breaking my ankle over! Most of the obstacles also had lines to wait in, so there was really no point in worrying about time.

Coming soon

I’m going to be running the Warrior Dash on June 2nd, while I’m really excited for it, I’m also very nervous about this one! The obstacles look far more challenging than the Red Mud Run ones, and it’s also a full 5K course. I’ve looked over the course map and identified the obstacle that will certainly be my nemesis, it’s called the “Horizontal Hike”. It’s essentially a big arch that you have to walk up and over, I have a fear of heights and I’m feeling dizzy thinking about this one!

There’s also a few 5Ks and 10Ks coming up over the next month or two that I will be signing up for. I feel like I learn something new at every race, so I’m excited to keep them up!

Dragon Launch

I’ve fallen way behind on my goal of writing at least two blog posts per week, but I’m going to try to catch up. This mornings launch of the Dragon capsule gives me an excellent opportunity to talk about one of my favorite subjects: space!

The Dragon capsule will be the first commercial mission to attempt to visit and dock with the International Space Station. The Dragon capsule will have to pass a lot of tests in the next couple days, before it will be allowed to attempt to approach the ISS on Friday. Assuming all of those tests go well, SpaceX will be the first non government agency to successfully reach and dock with the ISS. That will be a remarkable achievement for SpaceX and a watershed moment for commercial space travel in general.

Some of the cargo being delivered includes student science projects, from the Students Spaceflight Experiment Program, a great program to help get kids interested in science. I think this is a fantastic program and it’s great that Dragon capsule will be able to help continue it! It’s poetic in a way, while the Dragon is ushering in a new era of space flight, it’s also helping the next generation of scientists and explorers who will hopefully push the boundaries even further!

This launch is important for many reasons, it’s the first step in private companies being able to resupply the ISS, and eventually send astronauts back and forth. SpaceX actually plans to begin sending astronauts into orbit as early as 2015, another ambitious goal! It’s also a very important step in significantly driving down the costs of low earth orbit launches, a vital step in establishing a more permanent presence in space.

It will also eventually free NASA from the “routine” duties of low earth orbit space travel, allowing them to focus on pushing the space frontier with bigger and more ambitious missions. Speaking of NASA, I think it’s important to point out just how critical they were in the success of SpaceX. There has been some talk of how much better SpaceX is, because they can do what NASA has been doing for so long at a much, much cheaper price. This issue is not as simple as that, SpaceX is able to do what they do because NASA has already done it, assumed the risks, and solved these problems. SpaceX is building on the foundation that NASA has put in place, not to mention receiving tremendous support from NASA over the years.

As a quick aside, it is so important for the government to continue to invest in science, it makes success like this possible! The economy of the future will be driven by science and technology, and we can’t invest enough money in these areas. Government agencies like NASA, NSF, NOAA, etc are woefully underfunded, this only hurts us in the future. However, that is the subject of another blog post.

Finally, I love seeing the vision and passion that the people behind SpaceX have, it’s refreshing to see people thinking big and accomplishing so much. This is just the first step though, SpaceX has many ambitious goals, from taking astronauts into orbit, to building a rocket capable of both vertical take offs and landing, to eventual missions to Mars! This is all coming from a private company, led by people who aren’t afraid to think big and continue to push the frontiers of space! You can feel the excitement of the people working there in everything they do, here’s a video of mission control during the launch:

Another great moment is the deployment of the solar arrays, listen to the reaction from the crew at SpaceX! Congratulations to NASA and SpaceX, and thanks for helping bring is all a little closer to the future!