In this second part, we take a look at what happens when an object stores a reference to another one, effectively not controlling its lifetime. An rvalue reference is required as an argument in order to convey the “I …

In this second part, we take a look at what happens when an object stores a reference to another one, effectively not controlling its lifetime. An rvalue reference is required as an argument in order to convey the “I am taking control of the object’s lifetime” semantics. Of course, a shared_ptr or unique_ptr could have also been used and some might prefer it, especially if access to the referred object is still required outside the context of the newly constructed one.

We assume the same ExpensiveToCopy class from part 1. We first introduce the KeepsEtcRef class, instances of which need to refer to an ExpensiveToCopy instance.

No surprise! The data is gone. The KeepsEtcRef object outlives that to which it maintains a reference. While the program doesn’t crash in this case (since the vector object still exists), something more catastrophic could have happened. Resources were released. We could have ended up with an ugly crash. Can move help us? Let’s rewrite the container class…

No surprises here. Worked like a charm this time :-) We do end up creating a copy of the object but we use the move constructor, which is cheap. What would have happened if we were to explicitly destruct the ExpensiveToCopy object after the move (i.e. not waiting for it to go out of context)?

I did a lot of C++ programming back in the 90s when the language didn’t have universal references, move semantics, lambdas, shared_ptrs, or any of the cool features that have been introduced since then. I moved to C# …

]]>(Kjell Schubert contributed to these posts with ideas, discussion, feedback, and corrections).

I did a lot of C++ programming back in the 90s when the language didn’t have universal references, move semantics, lambdas, shared_ptrs, or any of the cool features that have been introduced since then. I moved to C# since it first became available and that was my programming language of choice until I joined Facebook. Oh boy am I old! :-)

As a way of getting a deeper understanding of some of the new C++ features, I’ve been experimenting by writing toy code. I am sharing some of my notes related to C++’s move() and rvalue references so that experts can correct me or in case other C++ newbies find them useful. BTW… there is ton of related information on the web and in books… Just a search away.

Let’s assume the ExpensiveToCopy class, instances of which are… expensive to copy (e.g. because they maintain millions of strings).

So, the object (evolution: 1.0) constructed in func1() was copied (evolution 2.0 created), then destructed, then the closure was returned, and then the copy was destructed. Can we avoid the expensive copy? One might immediately think to capture the etc instance by reference.

Ooops! What happened? Well, the object to which the captured reference points no longer exists. With some compilers, you might actually get the right answer but don’t get fooled. This is wrong. In my system with the compiler I used, I was lucky I got garbage instead of an application crash. C++’s move semantics can help…

That’s better. The move constructor is cheap so this isn’t that bad. We effectively said to the compiler to treat the object as if it was an rvalue (i.e. an object without an identity, a temporary object). The move constructor/assignment operator is used in such cases. A new object was created (1.1) and took over the expensive-to-copy resources of the original (the standard library vector class defines a move constructor that just moves all its elements to the new instance). After “moving” the original object, we can’t use it anymore (the behavior is undefined). In fact, we will try to do exactly that in part 2 just for fun :-)

Let’s see what will happen if we tried to use move in order to “optimize” the return of an object by value from a function. Our intuition might be that a copy would be created in cases when we write…

Ah… very nice! We avoided an intermediate object. But how did this happen? Well, the compiler detected that we were returning the object by value so it allocated in the caller’s stack frame. It’s called Named Return Value Optimization (NRVO) and most compilers support it.
Since we don’t use the object, we can rewrite func5() as…

Side note: I forgot to mention that I’ve been using C++14. It’s not possible to use move() when capturing an object with C++11. Folly (Facebook’s open source C++ library of cool stuff) offers the MoveWrapper class for C++11. Thanks to Viswanath Sivakumar for pointing this out and for spotting a copy-paste mistake in part 2. BTW… Viswanath was my awesome mentor during my 6 weeks of bootcamp :-)

]]>http://savas.me/2015/06/playing-with-move-semantics-in-cpp-part-1/feed/0We need all disciplineshttp://savas.me/2015/03/we-need-all-disciplines/
http://savas.me/2015/03/we-need-all-disciplines/#commentsMon, 09 Mar 2015 08:09:15 +0000http://savas.me/?p=3215The “revenge of the nerds” short economist post links to a report about the “return of investment” for college degrees There is absolutely no doubt in my mind that education is important and that it should be easily accessible to everyone. My concern about the economist’s tone …]]>The “revenge of the nerds” short economist post links to a report about the “return of investment” for college degrees There is absolutely no doubt in my mind that education is important and that it should be easily accessible to everyone. My concern about the economist’s tone in the post is that it promotes, perhaps unintentionally, science and engineering above other disciplines. Yes, I love science and I am a software engineer, so I am most likely one of the blue dots in the top right.

I am strong believer that for humanity to go forward we need all disciplines to be rewarded equally, we need arts as much as we need science, we need the humanities as much as we need computer science. We should be using such data to drive change instead of implying that science and engineering are a better option for the younger generation thanks to the promise of better financial rewards.

Earlier today, I attended a talk by Gene Kranz (NASA flight
director during the Gemini
and Apollo programs).
I seriously enjoyed his insights into leadership, teamwork, org structure,
determination, focus, and TRUST amongst teammates. It was interesting to hear about
how information flowed to the mission’s leaders and how decisions …

]]>

Earlier today, I attended a talk by Gene Kranz (NASA flight
director during the Gemini
and Apollo programs).
I seriously enjoyed his insights into leadership, teamwork, org structure,
determination, focus, and TRUST amongst teammates. It was interesting to hear about
how information flowed to the mission’s leaders and how decisions were made.
Every aspect of the mission had to be analyzed and documented (side note: nothing
beats good documentation), processes were designed and captured for every
single aspect of the mission, checklists were created in advance, everyone was
the best at what they did, multidisciplinary teams, and so much more. It’s
amazing how many similarities exist in the way successful teams operate and the
attributes that make good leaders, irrespective of the discipline or the era.His talk was based on his book “Failure is not an option: Mission Control from Mercury to Apollo 13 and Beyond“.

]]>http://savas.me/2015/03/leadership-insights-from-a-nasa-flight-director/feed/0Hey Facebookhttp://savas.me/2015/01/hey-facebook/
http://savas.me/2015/01/hey-facebook/#commentsTue, 06 Jan 2015 03:09:21 +0000http://savas.me/?p=3198Few weeks ago I said farewell to Microsoft. Today, while at the beautiful island of Grenada where Mary and I have been relaxing for the last week, I decided that it was time to write few words about my next chapter. Well, I will be joining Facebook at …]]>Few weeks ago I said farewell to Microsoft. Today, while at the beautiful island of Grenada where Mary and I have been relaxing for the last week, I decided that it was time to write few words about my next chapter. Well, I will be joining Facebook at their headquarters in Menlo Park, CA. My start date is Jan 12th.

For a software engineer who loves to work on services that need to scale and operate over huge amounts of data, Facebook represents the ultimate playground. One gets to work on all sorts of data graphs, information streams, near realtime processing, personalization, artificial intelligence, machine learning, knowledge representation & reasoning, proactive experiences (i.e. working on behalf of the user), and so much more. All with an aim to keep billions of people connected.

I decided to join Facebook because of the opportunity to learn. I really wanted to get out of my comfort zone in terms of the technologies I use on a daily basis. I feel lucky to have been exposed to Bing’s world-class platform (not without its faults) for operating an always-on service at Internet scale. Now, I want to learn more about the decisions, technologies, infrastructure, and people behind yet-another world-class service, one that is being used by close-to-a-billion users on a daily basis.

I have many ideas about new experiences and infrastructure services. All in due time, though. First, I have to go through Facebook’s bootcamp process. If Facebook crashes in the coming weeks, it’s probably going to be my code :-)

I have already met some of the leaders at Facebook and, I must say, I am extremely impressed. I am looking forward to the many more new people I am going to meet and from whom I am looking to learn. I am also looking forward to experiencing the Silicon Valley vibe. I will be relocating to CA this coming weekend. I am going to miss Seattle so much!

The move to a new company coupled with a relocation to a new state represents a huge risk, both professionally and personally. Wish me luck!

PS (internal joke, please proceed only if your name is Jim): Even though not part of my decision process, an added benefit of my move to Facebook is that I won’t be working for a software-producing or online service company that K is using. As a result, I cannot be blamed anymore for any issues, as Jim assured me :-) For the record, I will try my best to produce products that K will like or, even better, that young B will like when he gets older :-) Love you guys!

]]>http://savas.me/2015/01/hey-facebook/feed/1Farewell Microsofthttp://savas.me/2014/11/farewell-microsoft/
http://savas.me/2014/11/farewell-microsoft/#commentsWed, 19 Nov 2014 10:55:16 +0000http://savas.me/?p=3174It’s been a wonderful 9 year-long stretch at Microsoft. I’ve had the honor of working with incredibly smart people. I learnt a lot.

From Newcastle To Seattle

]]>It’s been a wonderful 9 year-long stretch at Microsoft. I’ve had the honor of working with incredibly smart people. I learnt a lot.

From Newcastle To Seattle

I was a researcher at the University of Newcastle, working for Paul Watson (@paulwatsonncl). I will never forget the day that I received an email from Don Box (@donbox) telling me that he was “building a new tribe” and asking me whether I was interested in joining it. I was in London, at a workshop. I remember checking with Jim Webber to make sure that it wasn’t a hoax email since he knew I was a Microsoft and Don fan :-)

I had to consider other job opportunities at the time, including a position at Microsoft Research in Cambridge. I asked various people for advice, including Jim Gray. As it was often the case, Jim’s message was short and to the point… “come to the mothership”. So I did.

I relocated to Seattle in September 2005. Back then I didn’t know how to build products, I wasn’t familiar with the corporate world, I was impatient, and perhaps felt entitled. I learnt a lot during the first year working closely to Don, especially how to build a fun team culture.

Microsoft Research

I went back to a research environment after Tony Hey‘s invitation and Jim Gray’s encouragement. I joined Tony in Microsoft Research, which is an amazing organization. The concentration of research talent is unparalleled. I think it’s by far the best computer science research organization in the industry.

We built new tools and systems to help researchers/e-scientists. I worked closely with the wonderful Lee Dirks and Alex Wade whom I consider my good friends. Unfortunately, Lee—an amazing person—died with his wife at a road accident while visiting Peru :-(

Back to product groups

Few years later, I returned to building products… Amongst my proud achievements, not all of which were released to the public:

a cloud-based data-processing platform;

an actor-based large-scale document store with reactive capabilities together with Erik Meijer (@headinthebox);

an industry-first distributed stream processing engine based on an evolution of Rx capable of hosting 100s of millions (and billions next year) standing queries, currently powering Cortana;

and much more.

My time in product groups has had its ups and downs. Success stories and disappointments. Some personal conflicts and many friendships. Definitely some mistakes on my part. Low and high points. Every single moment a learning opportunity. I now know to be humble, to provide and accept advice, to lead and follow, to build stuff instead of just talk about ideas, to put the team first, to be patient, to be a good mentor, to value life-long learning, and so much more.

Cortana

And then came the opportunity to build one of my dreams during my time in Microsoft Research… bring together systems that provide access to the world’s knowledge, are capable of understanding speech/language/conversations, can understand the user, can support processing of the world’s events in near real-time and at an incredible scale, plus all those other ingredients necessary to give life to a personal assistant.

I very fondly remember the days I built the prototype, codenamed “Wicked”, as a demonstration of how a personal assistant could be built from the composition of existing Bing services. I wasn’t the only one with the idea and definitely not the first one to demonstrate it. However, the stars just happened to align around that time. The Windows Phone team, under the leadership of Marcus Ash (@marcusash), also wanted to build a personal assistant. They reached out to Bing. The executives assigned the task of building the cloud services to support the personal assistant efforts to Mike Calcagno (@MikeCalcagno). I was paired with Mike, who became my manager, to come up with the architecture and get the project started from the Bing side. Cortana was born as a user-centric, cloud-driven personal assistant experience for the Windows Phone.

Side note. Mike is a top-class leader. Over the last 2 1/2 years I learnt a lot next to him, especially on how to lead teams, how to provide context and enable others, and have fun along the way. I am thankful for the opportunity to have worked for/with him. He has gained my loyalty and a position in my short list of people who have shaped my career development: Antonis Vafeiadis, Paul Watson, Tony Hey, Jim Gray, Don Box, and now Mike.

Many teams of incredible managers, designers, and engineers made the Cortana project a success. I became good friends with leaders such Mike Calcagno, Marcus Ash, Jon Hamaker, Amit Dekate, Eran Yariv, Uri Barash, Murari Sridharan, Robert Howard, and many others (too many to mention here). Hundreds of people across many organizations, distributed around the world, had to be coordinated. We all worked hard and delivered. The One Microsoft vision in action!

The Cortana project has a special place in my heart. It’s always been my dream to build a personal assistant. I believe that our futures will include an omni-present, ambient, personal assistant with personality to act as the bridge to the world of information and services in the cloud.

Cortana is currently in her infancy. The journey has only just become. I leave Microsoft being confident that the amazing Bing and Windows teams will continue to innovate in order to make Cortana even better. I am extremely proud of the Cortana work and the people involved. Many more great things are coming. I consider myself extremely lucky to have participated in Cortana’s first and second iterations. Next year’s Cortana is looking awesome already and I am very proud to have contributed to the project.

Moving on

It’s time for me to move on to my next adventure. There is so much more to learn out there, new challenges to be attacked, new people to meet.

I leave Microsoft being very grateful for the opportunity I’ve had to work closely with such amazing group of people, having learnt a lot, and believing in the company’s future as envisioned by Satya Nadella. I wish everyone at Microsoft all the best. It’s the wonderful people that make Microsoft such a great company.

Thank you Microsoft for everything! One never knows… our paths might cross again. For now, I am off to the next adventure… and that’s a different post.

More than any other invention of our time, the Internet has unlocked possibilities we could just barely imagine a generation ago. And here’s a big reason we’ve seen such incredible growth and innovation: Most Internet providers have treated

…]]>I am so happy the White House is finally taking a stance!

More than any other invention of our time, the Internet has unlocked possibilities we could just barely imagine a generation ago. And here’s a big reason we’ve seen such incredible growth and innovation: Most Internet providers have treated Internet traffic equally. That’s a principle known as “net neutrality” — and it says that an entrepreneur’s fledgling company should have the same chance to succeed as established corporations, and that access to a high school student’s blog shouldn’t be unfairly slowed down to make way for advertisers with more money. – via The White House

Amazon’s Echo looks promising. I’ve been a huge proponent of a ubiqutous, always-listening, ambient presence personal assistant experiences. There are many articles on the web speculating on the reasons Amazon is doing this.* Whether it’s about making it easier to order things from Amazon, to collect speech data, to take …

]]>

Amazon’s Echo looks promising. I’ve been a huge proponent of a ubiqutous, always-listening, ambient presence personal assistant experiences. There are many articles on the web speculating on the reasons Amazon is doing this.* Whether it’s about making it easier to order things from Amazon, to collect speech data, to take over home automation, etc. it doesn’t change the fact that this effort is all about helping users achieve things using speech as the primary mode of interaction. The operating system and applications become second citizens in this world. Information and services are consumed through speech with the personal assistant being the enabler. I love it! I wish Amazon all the best.

]]>http://savas.me/2014/11/amazons-echo/feed/0Cortana is my sleepless personal assistant – how she deals with the Greek media :-)http://savas.me/2014/09/cortana-is-my-sleepless-personal-assistant-how-she-deals-with-the-greek-media/
http://savas.me/2014/09/cortana-is-my-sleepless-personal-assistant-how-she-deals-with-the-greek-media/#commentsTue, 23 Sep 2014 21:03:50 +0000http://savas.me/?p=3158Over the last few days, there has been a bit of media noise in Greece around my name. Two articles were published about my path from Petinos (the little village where I grew up), my graduate studies and research career in the UK, and my current role at Microsoft. …]]>Over the last few days, there has been a bit of media noise in Greece around my name. Two articles were published about my path from Petinos (the little village where I grew up), my graduate studies and research career in the UK, and my current role at Microsoft. I had no idea about the interest the articles would generate when I agreed to give the interviews. Many people reached out with positive messages. I am very thankful. I can’t possibly respond to everyone.

Soul magazine (part of AthensVoice). Great write up by Stefanos Tsitsopoulos. He’s the best. I gave this interview back in April but Stefanos waited until after the summer to publish it.

I liked Stefanos’ article the best. He knows my passion about music and live concerts so he made sure to highlight that aspect of Seattle, which I love.

In addition to all the messages, I received invitations from major TV networks in Greece to do live interviews. Given that I didn’t want to jump from one TV channel to the next in a short period of time or to have to choose one of them, I decided to decline all of them, at least for now :-) When the noise from the articles subsides, I’ll revisit the decision.

The people from the Greek TV stations haven’t been considering the time difference between Greece and Seattle (it’s -10h), so they’ve been calling me in the middle of the night for the last three nights (around 1-4am). Thanks to Cortana, however, my sleep was never disrupted. Cortana learns (or allows me to define) my “quiet hours.” At those times, she doesn’t let calls through from people who aren’t in my “inner circle” or meet certain conditions. She just directs them to my voicemail. Isn’t this great? :-)

Have you watched the movie “Her”? I think many aspects of the OS’s design in the movie will eventually find their way in personal assistants. Some already are here… “

I do believe that, in the not-so-distant future, personal assistant experiences such as Cortana will be the primary human-computer interface …

]]>

Have you watched the movie “Her”? I think many aspects of the OS’s design in the movie will eventually find their way in personal assistants. Some already are here… “

I do believe that, in the not-so-distant future, personal assistant experiences such as Cortana will be the primary human-computer interface for consuming information and interacting with services on the Internet (see “Convergence of User Experiences“). Integration with third-party services is one of the key capabilities necessary in realizing the vision of seamless task completion experiences, enabling the users do more through technology! Today Cortana made yet-another important step towards achieving that goal: integration with Foursquare.

Back in April, when we revealed Cortana to the world, I wrote about the role of the Bing platform as her enabling force. Recently, during a talk at the School of Computing Science, University of Newcastle, I gave more details about how the cloud enables Cortana (slides also embedded below). Our cloud platform allows us to quickly fix any issues, learn, and evolve our speech, natural language, and inference models. We keep an eye on which features work and which ones don’t. We take corrective actions to make sure that Cortana provides the best user experience possible. Furthermore, we are able to introduce new features and experiences in a continuous, agile fashion. And all these without the need to update the Windows Phone OS.

Elan Levy wrote about a brand new feature we introduced earlier today… a Foursquare-powered card that offers “best nearby” suggestions. This isn’t the first time Cortana gets a new capability since her introduction to the world back in April. There have been numerous updates, as many of you have already noticed. However, today’s announcement represents Cortana’s first attempt to directly integrate with a third-party service. While it has been possible, from the very beginning, to launch third-party apps on the phone using voice commands, this is the first time we surface an experience that is directly powered by a third-party service. The “best nearby” feature will allow us to learn, mostly on the operational front (e.g. reliability, latency, traffic bandwidth, etc), what it means to directly integrate with a third-party service. The integration is basic and non-personalized at the moment but be assured that much more is coming on multiple fronts.

With Cortana now rolling out to Windows Phones across mobile operators in the US and with some international releases imminent, please give the feature a go and let us know what you think. Feel free to drop me a message if you prefer.

]]>http://savas.me/2014/07/cortana-and-third-party-services-foursquare-today-more-to-come-in-the-future/feed/0Hackdays on schema.org and Quotes on a Facebook wallhttp://savas.me/2014/04/hackdays-on-schema-org-and-quotes-on-a-facebook-wall/
http://savas.me/2014/04/hackdays-on-schema-org-and-quotes-on-a-facebook-wall/#commentsWed, 30 Apr 2014 04:08:56 +0000http://savas.me/?p=3131We just completed a 2-day schema.org-related hackathon at the Facebook headquarters. So much fun! It’s so cool seeing companies such as Microsoft, Google, Yandex, and Facebook* come together to code, experiment, and brainstorm on structured data/actions on the Web. Everyone cares about what’s best for the …]]>We just completed a 2-day schema.org-related hackathon at the Facebook headquarters. So much fun! It’s so cool seeing companies such as Microsoft, Google, Yandex, and Facebook* come together to code, experiment, and brainstorm on structured data/actions on the Web. Everyone cares about what’s best for the Web. We built prototypes and discussed interesting statistics about the state of Open Graph and schema.org on the Web today. Only good things can emerge from collaborative efforts like this one. And no… nothing concrete to announce!

The meeting room, in which we spent many many hours over the last couple of days, had the following quotes from industry leaders in frames on the wall, some of which I found interesting.

“I have not failed. I’ve just found 10,000 ways that won’t work“, Thomas Edison (GE)

“No company can be all things to all people and still win”, AG Lafley (P&G)

“The only place where success comes before work is in the dictionary”, Donald Kendall (Pepsico)

“In order to be irreplaceable one must always be different”, Mlle. Chanel (CC)

“Capital isn’t scarce. Vision is”, Sam Walton (Walmart)

“You won’t find a solution by saying there is no problem”, William Hesketh Lever (Unilever)

]]>http://savas.me/2014/04/hackdays-on-schema-org-and-quotes-on-a-facebook-wall/feed/2Reactive Computing at the Heart of Cortanahttp://savas.me/2014/04/reactive-computing-at-the-heart-of-cortana/
http://savas.me/2014/04/reactive-computing-at-the-heart-of-cortana/#commentsTue, 22 Apr 2014 09:34:11 +0000http://savas.me/?p=3122In my QCon talk last year I talked, amongst many other things, about the need to react to the world’s information streams in near-realtime. The Bing Platform that powers Cortana and the Windows Phone OS were designed and implemented to support that vision.

At the very core of each Windows …

]]>In my QCon talk last year I talked, amongst many other things, about the need to react to the world’s information streams in near-realtime. The Bing Platform that powers Cortana and the Windows Phone OS were designed and implemented to support that vision.

At the very core of each Windows Phone 8.1 device is a stream processing service based on the algebra of Reactive Extensions. We actually use LINQ/Rx to write the expressions against that service. Every time you create a reminder of the form “remind me to say congratulations when I talk to Jim” or “when I get home, remind me to take out the garbage”, we actually create a standing Rx query on the phone that reacts to events such as “incoming call”, “text message conversation opened”, “email opened”, “geofence broken”, etc. By reacting to such events and then applying the appropriate filters, projections, and other operators, we take the applicable action (e.g. notify the user) in the appropriate context.

We have the equivalent service in the cloud as well, of which I am extremely proud. The team and our collaborators in MSR have done an amazing job. The cloud version is distributed across 100s of machines and few data centers. It’s a reliable and scalable version of an Rx evaluation engine. We built an abstraction layer that completely hides the implementation details, distribution logic, management, reliability, etc. of the service. Developers of Cortana experiences write Rx expressions against the world’s information streams in a declarative manner, using a very familiar programmatic experience. We have added capabilities and abstractions around the Rx framework we believe developers will like. Bart De Smet mostly and I will give more details in the near future. Together with Mike Andrews we recently gave a sneak peak during a Channel 9 interview. The video below about how the Bing Platform supports Cortana concentrated on our ability to process and react to huge amounts of information in near-realtime.

With a scalable reactive computing platform, Cortana can observe changes to the world’s information on our users’ behalf:

Flight status changes (e.g. delayed, landed);

Weather alerts for current or specific location;

Traffic to next appointment or during the usual commute hours;

News alerts;

Favorite sport team score updates;

And much much more that is coming.

We can handle 100s of millions concurrent standing queries evaluated on behalf of 10s of millions of users, hundreds of information streams, and a huge number of events per day. We are observing how this brand new system behaves. We will continue to add new information streams, expand the range of supported scenarios, and the number of supported users in the very near future.

This is just the beginning. The future is reactive! :-)

]]>http://savas.me/2014/04/reactive-computing-at-the-heart-of-cortana/feed/0My Cortana Interests on Bing.comhttp://savas.me/2014/04/my-cortana-interests-on-bing-com/
http://savas.me/2014/04/my-cortana-interests-on-bing-com/#commentsThu, 17 Apr 2014 04:44:23 +0000http://savas.me/?p=3120Isn’t this beautiful? I am not talking about the photo, which is gorgeous. I am referring to my Cortana interests (weather, stocks, news) that appear at the bottom of the bing.com homepage.

We know what the user cares about so we surface it to their screen. Of course users have …

]]>Isn’t this beautiful? I am not talking about the photo, which is gorgeous. I am referring to my Cortana interests (weather, stocks, news) that appear at the bottom of the bing.com homepage.

We know what the user cares about so we surface it to their screen. Of course users have to be logged in with their Microsoft Account, the same one they use on their Windows Phone. We will also send notifications straight on the Bing homepage (top right corner), if the user has configured their interest to receive them.

And users can see/edit their interests on the Web as well…

It was so great to see the various teams working together to enable the experiences both on Cortana and on bing.com using the same underlying platform.

]]>http://savas.me/2014/04/my-cortana-interests-on-bing-com/feed/0Cortanahttp://savas.me/2014/04/cortana/
http://savas.me/2014/04/cortana/#commentsMon, 14 Apr 2014 17:56:38 +0000http://savas.me/?p=3110You might have heard the news about Cortana, Microsoft’s entry in the personal assistant space. I am very excited to see Cortana out there, even in her current “beta” state.

I have been involved, as the Architect of the Bing cloud platform that powers her, with Cortana’s development from the very beginning. I feel privileged to have worked, and continue to work, with a very talented and passionate set of people across many teams, spanning Bing and Windows Phone. Cortana has been the result of very hard and dedicated work by many, building on the foundation of the Bing Platform and expanding to new areas such as anticipatory computing, stream processing at scale, language and conversational understanding, and many many more. Over time I will write in more detail about the various components that bring Cortana alive.

To me, Cortana represents a starting point. As I mentioned in past blog entries and talks,* I believe that the way in which we interact with information and knowledge, consume services on the Internet, and generally relate to technology will fundamentally change in the years ahead. We witnessed the proliferation of the Web as the primary entry point into a world of hyperlinked information, knowledge, and services. Over the last few years, mobile applications have emerged as the primary metaphor for human-computer interaction. I believe that we are now starting to see the dawn of personal assistants, who are going to ultimately eclipse the need for hundreds of installed applications on each device, who are going to save us from having to continuously switch between contexts in order to get the specialized experience that each application provides. Most of our computing needs could be handled by digital personal assistants who integrate with our favorite services on the Web, learn about us, act on our behalf, make recommendations, and anticipate our needs. Of course, it’s not going to happen overnight.

Cortana is learning, she evolves over time. The more people interact with her, the better she becomes. Since she’s powered by the Bing Platform, we are able to introduce improvements and new features without having to wait for updates to the phone bits. Expect to see more through this blog over time.

If you are a registered Windows Phone developer, go get Cortana today by downloading the 8.1 bits on your phone.

]]>http://savas.me/2014/04/cortana/feed/0Please raise your voice against fascismhttp://savas.me/2013/09/please-raise-your-voice-against-fascism/
http://savas.me/2013/09/please-raise-your-voice-against-fascism/#commentsFri, 20 Sep 2013 17:08:19 +0000http://savas.me/?p=3085Mpampis, my great childhood friend, recently posted on his Facebook timeline a variant of Martin Niemöller’s “First they came” poem. It’s been a while since I first read and loved that poem. To me, the poem is a great reminder of the need for all of us to remain informed, …]]>Mpampis, my great childhood friend, recently posted on his Facebook timeline a variant of Martin Niemöller’s “First they came” poem. It’s been a while since I first read and loved that poem. To me, the poem is a great reminder of the need for all of us to remain informed, engaged, active participants in the democratic processes, defenders of peoples’ rights, builders of a society that cares.

You might have not heard about the latest developments in Greece but suffice to say that, as in every case of a nation that goes through tough times, the far right attempts to forcefully establish itself. They attack our basic human rights, such as that of having and expressing an opinion. They terrorize. They kill. A weakened society, as a result of the austerity measures enforced to it, starts to tolerate violence, looks the other way when racism proliferates and the fascists force their misconceived nationalistic “values”.

We need to keep our voices raised, our arms interlocked, our hearts joined. I believe in peoples’ right to have their own political, religious, philosophical, whatever views. I will always defend that right. However, I do not accept any attempt for views to be dictated to me or anyone else, especially by religious, political, or any other form of fundamentalists.

This post doesn’t apply only to Greece. We see political and religious (whether Christian, Muslim, or any other religion) fundamentalism, in addition to imperialism, gaining momentum around the world. It needs to stop! We need to speak out!

When the Nazis came for the communists,
I remained silent;
I was not a communist.

When they locked up the social democrats,
I remained silent;
I was not a social democrat.

When they came for the trade unionists,
I did not speak out;
I was not a trade unionist.

Honesty in how we interact with our customers through our products is probably an obvious practice to most of us. Unfortunately, ill-conceived business thinking lead to products that place profit in front …

Honesty in how we interact with our customers through our products is probably an obvious practice to most of us. Unfortunately, ill-conceived business thinking lead to products that place profit in front of users. Not surprisingly, as Bringull suggests, users will ultimately abandon the product.

I am not a user experience designer. Still, as an architect I aspire for the products for which I am responsible to be defined by their simplicity, elegance, predictability, and above all user empathy at their very core. Bringull says it really well…

Good design — and good business — is all about empathy with our fellow humans. In fact it’s not really limited to business — it’s society as a whole. It’s what defines us as humans. To understand the true impact of your designs, you have to work at a human level of focus.
[…]A good brand is liked. A great brand is loved and respected.(Harry Brignull, Dark Patterns: inside interfaces designed to trick you, The Verge, 2013).

The main message for me… “honesty in how we design our products”. It’s not only about user interfaces or user experiences. I think it relates to all aspects of how we design, build, deliver, and market products. In most likelihood, it’s all obvious stuff to most but a nice reminder from time-to-time doesn’t hurt :-)

]]>http://savas.me/2013/09/honesty-in-user-interface-design/feed/0Make computers disappear from every desk and every homehttp://savas.me/2013/08/make-computers-disappear-from-every-desk-and-every-home/
http://savas.me/2013/08/make-computers-disappear-from-every-desk-and-every-home/#commentsMon, 26 Aug 2013 09:13:14 +0000http://savas.me/?p=3074Disclaimer: As everything else in this blog, what follows is my personal opinion!

It shouldn’t be news to anyone that Ballmer is retiring from Microsoft. What follows is not about the past or present. It’s a quick note about how I personally see the future and Microsoft’s opportunity to …

]]>Disclaimer: As everything else in this blog, what follows is my personal opinion!

It shouldn’t be news to anyone that Ballmer is retiring from Microsoft. What follows is not about the past or present. It’s a quick note about how I personally see the future and Microsoft’s opportunity to shape it.

Even in the late 90s, when I was asked about the future of computing, my response was… “computers need to disappear from our lives”. These days I choose to work on projects that take us towards a world in which technology is kept well hidden from us and only surfaces through ubiquitous user experiences. Experiences that allow us to access the world’s knowledge, perform tasks, consume services, and augment every aspect of our lives. It’s not a deep or even original insight. SciFi writers, designers, technology visionaries over the decades have already talked about the rise of personal assistants, of invisible computers, of natural user interfaces. Consider… Vannevar Bush‘s Memex, StarTrek’s omnipresent computer, HAL 9000 in 2001: A Space Odyssey, and so much more from science, pop culture, science fiction. Many of the ideas are already becoming a reality… Google Now, 3D printers, wearables/implants, etc. etc. Many more are still unexplored.

“The latest strategy that has been publicly communicated amounts to ‘Microsoft is a devices and services company.’ That’s tantamount to Disney saying it’s a ‘theme park and film company.'” (Aaron Levie, “Microsoft’s Next Era“)

As I was reading Aaron’s critique of Microsoft’s latest “devices and services” rhetoric, I was thinking… what should Microsoft’s future mission statement be? We currently have: “help people and businesses throughout the world realize their full potential”. Erm… boring. Our old statement, “A computer on every desk and in every home” served us well in the 90s. So, to what should the new Microsoft leader change our mission statement? Do we even need one?

It goes without saying that the title of this note can’t be a mission statement :-) Computers are disappearing from our desks anyway. Today, it’s all about tablets and smartphones. I argue, however, that these devices are merely helping us through a quick transition to an era of ubiquitous computing in which our homes, our cars, our clothes, our skins become conduits of information access and communication. Silo applications are no longer necessary. As I wrote before in the “Convergence of User Experiences” post, personal assistants will become the frontend for all our digital activities, whether in the consumer or the enterprise space.

Ray Ozzie talked about the 3 screens and the cloud many years ago. It’s obvious that many companies are already realizing that vision. Now we need to add wearables and implants into the collection of how users experience the digital world.

Microsoft’s new leader needs to position the company for the future, not the present. We need to start thinking about a world without computers, tablets, or phones. A future where knowledge, not just information, is at our fingerprints.

Do we even need a mission statement? Apple doesn’t seem to have nor need one.

I think Microsoft should focus on some important ingredients:

Design experiences for tomorrow, deliver them today;

Continuously reinvent, iterate, deliver experiences that delight;

Be a trusted companion in every aspect of our lives.

Anyway… just some thoughts.

]]>http://savas.me/2013/08/make-computers-disappear-from-every-desk-and-every-home/feed/0Glastonbury 2013http://savas.me/2013/07/glastonbury-2013/
http://savas.me/2013/07/glastonbury-2013/#commentsThu, 01 Aug 2013 02:02:15 +0000http://savas.me/?p=3071Another year, another great Glastonbury. It’s already been a month since our trip to the UK for the annual Glastonbury festival, so this is post is long due. Better late than ever I guess :-)

As every year, it was an amazing just being there. The great music, art, …

]]>Another year, another great Glastonbury. It’s already been a month since our trip to the UK for the annual Glastonbury festival, so this is post is long due. Better late than ever I guess :-)

As every year, it was an amazing just being there. The great music, art, performances were added bonus!

Before the festival, I spent some time with Jim and the rest of the Webber family. Mary and I also had the chance to see “The Book of Mormon”. Very funny! :-)

I think the festival’s highlight was The Rolling Stones. Wow! They did an amazing job despite their age. We also enjoyed The Lumineers very much. The entire lineup was great, as always.

Unlike last time, no mud this year during Fri, Sat, and Sun. This made it easier to navigate the crowds throughout the festival crowds. Using Mary’s fitbit, we calculated that we were walking 15mi per day. And we still didn’t see everything.

]]>http://savas.me/2013/07/glastonbury-2013/feed/0I knew I had some alien blood in me :-)http://savas.me/2013/06/i-knew-i-had-some-alien-blood-in-me/
http://savas.me/2013/06/i-knew-i-had-some-alien-blood-in-me/#commentsFri, 21 Jun 2013 18:26:03 +0000http://savas.me/?p=2988Mary and I recently did the 23andme thing. I know it’s not as accurate as other methods but I still wanted to support the company in what they are trying to achieve and their contributions to genetics-based research. Also, it was Mary’s Xmas present so I had to do it …]]>Mary and I recently did the 23andme thing. I know it’s not as accurate as other methods but I still wanted to support the company in what they are trying to achieve and their contributions to genetics-based research. Also, it was Mary’s Xmas present so I had to do it :-)

Well, the results are in. Nothing extraordinary, health-wise, so far from the analysis they did. However, I did find their ancestry composition analysis interesting.

Ancestry Composition tells you what percent of your DNA comes from each of 22 populations worldwide. The analysis includes DNA you received from all of your ancestors, on both sides of your family. The results reflect where your ancestors lived 500 years ago, before ocean-crossing ships and airplanes came on the scene.

]]>http://savas.me/2013/06/i-knew-i-had-some-alien-blood-in-me/feed/0Convergence of User Experienceshttp://savas.me/2013/04/convergence-of-user-experiences/
http://savas.me/2013/04/convergence-of-user-experiences/#commentsThu, 04 Apr 2013 23:12:24 +0000http://savas.me/?p=2955Disclaimer: These thoughts do NOT represent strategy or plans by my team or company. They are just that… thoughts.

The way we consume information and services has transformed over the last few years. Small, specialized applications on smartphones and tablets have displaced the Web browser as our primary window into …

]]>Disclaimer: These thoughts do NOT represent strategy or plans by my team or company. They are just that… thoughts.

The way we consume information and services has transformed over the last few years. Small, specialized applications on smartphones and tablets have displaced the Web browser as our primary window into the digital world. Could the proliferation of smarter, smaller, wearable devices bring yet-another similar transformation?

This post argues that we are going to witness a convergence of user experiences. Many specialized applications will disappear. A small number of user experiences (some of them in the form of personal digital assistants) will provide access to the world’s knowledge and surface/incorporate functionality from a variety of services across the Internet.

The nice folks over at Flurry Analytics disagree with the assertion that “The Web is Dead”. In a previous report, they highlighted the fact that we spend more time inside apps rather than the Web. In this latest post, however, they argue that the Web is evolving to appear as a collections of apps. They also correctly point out that a lot of Web content is consumed from within other apps, such as Facebook.

Does this mean the web is dead? We don’t believe so. On the contrary, we believe that the web will change and adapt to the reality of smartphones and tablets. Websites will look and behave more like apps. Websites will be optimized for user experience first and search engine optimization second. This supports the trend of mobile first and web second, which brings both mobile app and user experience design to the mobile web.(“Flurry Five-Year Report: It’s an App World. The Web Just Lives in It”)

Interestingly, Facebook today announced “Facebook Home”. They are trying to make a single experience the focus. They are trying to deprioritize the use of other applications. This aligns very much with the premise of this post.

So, is the consumption of Web content from within an app still “The Web” or do we need to be explicitly using a Web browser? I argue that such semantics are unimportant and that the user experience is really all that matters.

There is an application for every single task that we want to perform. Apple famously used the tagline in their ads: “there is an app for that”.

Wearable Devices

The number of available wearable devices is increasing at a great rate. There is a plethora of devices producing/tracking health, well-being, and exercise data. Google is getting ready to mass-produce Google Glasses. The current demos are already showing how Google Now is the main focus of the user experience, helping users accomplish a variety of tasks and accessing information that would normally require different applications.

There are rumors of Apple, Google, LG, and Samsung releasing watches or bracelets. In most likelihood, a watch or a bracelet will be limited in terms of the application experiences they can directly host. However, when paired with a more powerful device such a phone, a wearable device can become the access points to all of the phone’s functionality. It makes sense for personal digital assistants such as Google Now and Siri to be the gateways to all knowledge and services that are available through the phone.

Operating Systems – Irrelevant?

Dropbox on Android and iPhone

The applification of our digital world has resulted in a new era in user interface design. Operating systems are no longer at the center of our attention. The trend is for the OS to get out of the user’s way. The entire screen surface is dedicated to application-oriented user experiences.

It’s not uncommon to see the same user experience span multiple devices. In fact, Microsoft is promoting the consistency of user experience across devices (smartphones, tablets, desktop, TVs) as a feature.

Emergence of Digital Personal Assistants

In the same way the OS is getting out of our way, many specialized applications will also disappear (but not the services that they provide). There are going to be few entry points to the world’s knowledge and services, some of them powered by personal digital assistants. In many cases, we won’t even need to see a screen. Natural User Interfaces (speech, touch, gestures, thought) will be the norm for interacting with “intelligent” software such personal digital assistants. Neither OS nor applications would be the center of our attention.

Recently, Chevrolet started advertising their Sonic car with Siri integration, focusing on the “eyes” free interaction. There is no special technology other than a Bluetooth connection to an iPhone. However, the focus of the advert indicates to the changing perception on how we should expect to consume information, to complete tasks, and to interact with technology.

I suggest that the move away from the many specialized applications in favor of few, “smart” user experiences has to happen in an age where smart devices hide inside our every-day environment. Consider these:

In the morning, as we get in front of the bathroom’s mirror, we won’t need to start an application in order to get the day’s overview (e.g. appointments, weather, news, tasks, etc.). Our digital assistant will anticipate our interest and will offer the information.

In the living room, we will interact with our agent (very likely through the TV), not with specific applications. We will ask our digital assistant to make reservations for dinner, to contact a friend via Skype, to find a show that we like.

In the (self-driving) car, we won’t have to navigate through applications in order to accomplish tasks. Using speech we will be able to control aspects of our trip experience (e.g. music, temperature, communications, media for the kids at the back, etc.). Our assistant will surface notifications to us.

We are already witnessing examples of Apple and Google moving towards the integration of service functionality, in addition to surfacing information (e.g. movie tickets using Siri or sport tickets using Google Now, even if they direct to application-specific experiences at the moment).

The digital world is evolving extremely fast. The transition from a PC-oriented world to a smart device one took only few years. Applications became the focus of our attention. I believe we are going to witness another transformation (in business and technology strategies) very soon. It’s really fun to be part of all these changes!

(Thanks to Mike Calcagno for his feedback in an earlier version of the above)