Thursday, October 1, 2015

Will Über and Others Make Autonomous Cars Ubiquitous?

Of course they will! That headline is sort of silly -- as we read over at BuzzFeed, "There’s a lot of skepticism about self-driving cars. About how successful they’ll be, about whether people will really want to use them, about whether they’re safe. But this is what you should know about autonomous vehicles: They are coming. Inevitably. Inexorably. Coming."

Further on...

The first time I rode in a fully autonomous car, what really impressed me was when the car saw something that I could not. As I rode down a residential street in Mountain View, the car slowed, for no apparent reason. Yet in the front seat, a laptop showed everything the car could “see.” And up ahead, there was a man, in the street, standing behind a double-parked vehicle. He was concealed from my eyes, but the car detected him. And it slowed down, anticipating that he might step out unexpectedly.

We read at Forbes that Google’s $258M investment in Uber shows it is serious about commercializing the Google Car. Even without car sharing, driverless cars will deliver tremendous social and economic benefits. Every year, more than 1.3 million people die in car accidents worldwide, and more than 50 million are seriously injured. In the US alone, more than 34 thousand die and 2.2 million are injured in over 5 million accidents. 90% of these accidents are caused by human error. Google has declared its intention to reduce accidents by 90% using driverless vehicle technology. Volvo is on a mission to eliminate all deaths and injuries in its cars by 2020.

Wednesday, September 23, 2015

Microservices - decomposition writ small

Building robust enterprise solutions requires thinking differently. For many, service oriented architecture is the way to go. But recently, the influx of microservices challenges the idea that there's only one way to skin the proverbial Information Technology cat. As Torsten Winterberg puts it, “Microservices are the kind of SOA we have been talking about for the last decade. Microservices must be independently deployable, whereas SOA services are often implemented in deployment monoliths. Classic SOA is more platform driven, so microservices offer more choices in all dimensions.”

I have always been of the mind that service oriented architecture (SOA) represents an architectural pattern for software design where application components provide services to other components via a communications protocol, typically over the internetwork. Today, many embrace the idea of micro services -- in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. Now, this seems to be splitting hairs, but in practice the concept of microservices might be hard to distinguish from SOA principles. Think of it this way: With SOA, one could write business logic to query a dataset to GetPaymentsAndCustomerInformationAndPurchaseHistoryDataAPI and AuthenticateUsersAPI. The approach from a microservices pattern would simply be to deconstruct those two APIs into much smaller units (GetCustomer; SubmitPassword). The net result is of course the same transactional processing and data traversing the wire, but in smaller increments. And new uses for the multiple APIs could be found, perhaps.

Perhaps the biggest gains in taking a microservices approach resides in cloud-deployed applications. Monolithic applications are sometimes wholesale moved to the cloud, but every time a rev is made, even to a small part of the app, the entire solution to be rebuilt, tested and deployed. With the alternative, smaller units are revised with agility, and downtime is reduced or eliminated.

Friday, September 11, 2015

Queuing - Single Queue Works, But Why Doesn't Everywhere Do That?

Queuing theory utilizes applied mathematics to deal with the phenomenon of waiting -- arising from the use of mathematical analysis to improve production processes. So why doesn't McDonald's utilize this approach? Customer what times over 90 seconds can be problematic. But perceived wait time is more critical - like page loads in your web browser. If the UI/UX designer has come up with a novel way of loading content, a user will wait out the progress bar. Or, if the content is so compelling (think, your bank account, or cat videos).

But it helps to think of getting your french fry fix take-out as involving a series of work stations, each with a separate task. And each task takes time (e.g. ordering food, instructing workers, retrieving hot fries, putting into packaging food, payment). These stations are generally attended in sequence, and each station takes some time to process one customer. The sequence of stations is a pipeline. But some steps take longer than others -- so building in wait time at certain points actually serves to move the production process along without bottlenecks. McDonalds provides several queues in parallel, the first for ordering and paying, and the second, an (invisible) station where customers wait while their food is gathered and served. The time it takes to cook the food is accounted for in the time taken to gather the food items.

The same analysis can be applied to packet switching with internetworking, or with automobile assembly. For my masters work, I looked at a supplier to a Japanese auto manufacturer -- with a supply chain represented as a multi-input, multi-stage queuing network. An input order to the supply chain was represented by stochastic variables, for the occurrence time and for the quantity of items to be delivered in each order. I had seen such an approach when learning about the (now sunsetted) wide area network at the central bank, where I was involved with information security. A "star" network topology has a central top level node that all other nodes connect to. "Packets" are passed through the central node. This helped me understand alternate ways of queuing -- something I have carried forward with my efforts at automating workflow in Bluedog's SAAS offering, where 'jobs' have to be passed from one stage to another, based on business rules.

The typical first-come, first-serve system of waiting in line is incredibly inefficient, in terms of both time and space. First, it essentially rewards people for wasting their time: Those who arrive first get the goods, but they also spend more hours of their precious time on Earth standing around and waiting. Second, long lines tend to create congestion and bottlenecks that cause problems for others. Think of the traffic jams that form as cars try to leave a football game, or the long boarding line at an airport that snakes across the walkway, getting in everyone else's way.

Read more here... Danish Researcher Report or read this guy's ideas.

Sunday, August 23, 2015

Using Process Improvement to Delivery Relief - from Toyota to NYC

Kaizen is all about process improvement. Toyota brought their knowledge of supply chain management to relief efforts in New York City after Hurricane Sandy. The benefits of Toyota Production System in nonprofits is clear: smooth operations, lowered cost, faster turn-around. Non-profit organizations are experiencing increasing client demand, making operational improvements critical to growth and success. Particularly in the food bank arena, issues of timely deliveries to partner agencies mirror warehousing and logistic issues in other industries, making the Toyota Production System (TPS) philosophy and lean principles applicable to this setting.

Watch the video here...

Friday, July 31, 2015

Google Cars in the Wild - Someone's Impressions

Read about Google Cars in California...

Int4resting how "polite" the GoogleCar seems to be... the author comments (regarding his motorcycle riding):

Once, I got a little caught out as the traffic transitioned from slow moving back to normal speed. I was in a lane between a Google car and some random truck and, partially out of experiment and partially out of impatience, I gunned it and cut off the Google car sort of harder than maybe I needed too... The car handled it perfectly (maybe too perfectly). It slowed down and let me in. However, it left a fairly significant gap between me and it. If I had been behind it, I probably would have found this gap excessive and the lengthy slowdown annoying. Honestly, I don't think it will take long for other drivers to realize that self-driving cars are "easy targets" in traffic.

Seems like California, home of the American big car culture of the 10950s, the suburban / commute phenomenon and other automobile trends, is a perfect petri dish for autonomous vehicles.