Jonathan Rosenberg
jdrosen.net
  • Blog
  • About Me
  • Publications
  • Presentations
    • Presentation Archive
  • Tutorials
  • Q&A

PaaS - the Operating System of the Cloud

1/3/2014

16 Comments

 
Picture
The venerable operating system has been around almost as long as the computer has been in existence. Though the "computer" has changed - from mainframes to PCs and now to mobile devices and tablets - the role of its operating system is largely similar. The OS abstracts the underlying hardware and provides applications access to those hardware services. These services typically include file system access, network access, graphics and sound, and of course memory and compute. These are accessed via APIs provided by the OS.



Read More
16 Comments

The Etiquette of Air Travel: Part 2

12/14/2013

1 Comment

 
Picture
As a followup to my original post on airplane travel, enclosed are additional rules and guidelines for making travel better for all. 

Getting In

  1. When you arrive at your designated row, and there are people in the row already, politely ask them to get up so you can get into your seat.
  2. Ask folks to get up only after your bags have been stored in the overheads.
  3. As someone in the row being asked to get up for someone to take their window seat, smile and get up and out of the row quickly. If you are the person getting up and are in the aisle row, when you go into the aisle, step back two steps so the person in the middle seat can get out and stand just in front of you with enough room for the person in the window seat to step in.
  4. If, for whatever reason, the people in the row have elected not to get up (typically this can happen in economy plus or first class seats), be very very careful when getting into the row, that you do not step on toes. More importantly, if you have a laptop bag or purse with you - do NOT carry this in your hands as you move into the row! Instead, drop it into your empty seat, then move into your seat area, and then move your bags as needed (into your hands, then under the seat). This avoids the almost inevitable hitting-people-in-the-face-with-your-bags which will happen if you do not do this.
  5. If you do make your way into a row while people are seated there already, it is recommended to enter facing forward (so your back is to the people sitting in the row). Hold onto the chairs in the row in front of you so you dont lose your balance and fall backwards into the lap of the people sitting in the row. 


Olfactory Considerations

  1. Shower the day of your flight, no matter what. An airplane is a close quarters environment and even if you don't normally do this or dont normally care, please for everyone elses sake - do so. (credit: John Loughney)
  2. Do not wear perfume or cologne on flights. It can trigger allergies or make other passengers uncomfortable.  (credit: Mary Barnes)
  3. If you bring food onto the airplane to eat, do not bring something with a strong lingering odor. Even if it smells good, this can be distracting to other passengers who may well be hungry but dont want to buy the low quality and overpriced food on the plane. Worse, if its something with a smell that is something only some people like (e.g., ethnic food like Indian or Asian), eat it before you get on the plane. 


Colds and Coughs

Hopefully it really goes without saying but if you've got a serious communicable disease, for goodness sake stay at home. For folks with minor colds or coughs, it is usually just unavoidable that you're going to sometimes have to get on a plane, if you do, here are some rules:

  1. Bring your own tissues, have them with you at all times.
  2. When you cough, you cough into a tissue so as to minimize spread of germs.
  3. If is recommended to frequently wipe your nose and for tissues that you are done with, put them in a plastic bag that is inside of your laptop bag or purse or whatever. Don't leave them on the tray, don't stuff them in the pocket of the chair, don't leave them in your lap.
  4. When you sneeze, sneeze into a tissue and immediately discard.
  5. Bring hand sanitizer with you and use it frequently, after every sneeze and every once in a while after wiping your nose. 


Food Service
  1. If the flight attendant comes and looks for food or drink orders, and they are trying to get the attention of the person next to you that doesn't notice them, help out and tap them on the shoulder and point to the flight attendant. Of course, do not do that if they are sleeping. This often happens when they are listening to music or a movie or engrossed in work.
  2. When the attendant comes back with drinks or food, help pass them down the row so the attendant does not need to lean over everyone. (credit: Chaim Hass)
  3. When the attendant comes back to collect trash, please help and pass forward trash from folks towards the window, so they don't need to reach over you to do so.
  4. When passing drinks down, pay careful attention to any laptops or electronics that are out. Do NOT put the drink the airspace above said electronic device! One bump and its toast!
  5. During beverage or food service, it's a social faux pas to get up and go to the washroom or get up in general. (credit: Dave Ward)
  6. The people serving have a hard enough time getting drinks and food to other customers that having people in the aisles is more than a mild inconvenience. If you have to go and the carts are out but nothing served more than 6 rows "before you," then politely ask your aisle neighbors to let you out (remembering they are fixated on getting their drinks, snacks and food). Use the washroom that doesn't require the servers to have to push their cart back and forth to let you back into your seat or shimmy past the cart. Don't even think of getting up if you have to have them disrupt their service to accommodate your poor lack of timing. (credit: Dave Ward).
  7. Never ask your aisle mates to let you out if they have been served food except for an imminent attack food poisoning or potential of gastrointestinal thermonuclear explosion. Getting up with food on your tray is almost impossible - the balancing act required almost always results in a spill or other catastrophe. (credit: Dave Ward).
  8. For multi-course meals (typically first class), do not get up and go to the washroom between courses. There is almost certainly folks in your row still eating, or trays out, or flight attendants trying to get to the next round of service. Just way until the end of the service. (credit: Dave Ward).


Misbehaving Children

  1. If there is a child behind you that is being loud, kicking the seat, or disturbing you, set a mental timer for 5 minutes. If the behavior does not improve after five minutes, you have the option of turning around to the parents of the child and asking politely for them to stop. (credit: Mary Barnes). Always ask the parent and not the child.


Overhead Bin Space Management

  1. Like it or not, the overhead space is allocated in time order of boarding.
  2. Once a bin is totally full, close it. 
  3. If you are looking for space, please don't walk up and down the aisle opening closed bins. If they are closed it is because it is full already.
  4. You may move items already in the bin in order to make space for your own, within reason. That means, moving within the bin, changing orientation, or putting the other item ONTOP of your own (not under) as long as it is not being crammed in. You may ask for jackets to be removed and moved. If you want to make a non-trivial move, ask the people in the row if the item is theirs before the move (e.g., moving to a different adjacent bin).
  5. When on a redeye, if you have a laptop bag and a rollerboard, you may put both in the overhead storage in order to allow yourself room to stretch in the room under the seat in front of you. You may do this ONLY if your rollerboard fits lengthwise and your laptop bag or purse fit into the overhead standing up, not lying down. And only for redeyes.
  6. You can put your jacket in the overhead, but you must put it ontop of your bag, or jammed between it and another bag.


1 Comment

The Etiquette of Air Travel: Part 1

12/14/2013

0 Comments

 
This post was originally shared on Facebook. Enclosed you will find a slightly revised and improved version.

After many years of frequent air travel, I've  built up my personal list of air travel etiquette. Additions and comments welcome!


Leaning Back

  1. Before you lean back in your chair, please look behind you. If the person is sleeping, go ahead. If they are working with a laptop, or eating on the tray, do not lean back all the way. Go just half way or 1/3. When you lean back, it makes it impossible for the person behind you to have enough room to see their laptop screen at a usable viewing angle. 
  2. If you do lean back - do it slowly! To get maximum viewing angle on my screen, I will typically put the top of my laptop screen flush against the seat in front of me, often nudged in just below the release lever for the tray. If the person in front of me leans back suddenly, this puts pressure on my laptop screen and may damage it. Lean back slowly so the person behind you has time to react!
  3. Only lean back if you intend to sleep or there is no one behind you. Remember, when you lean back, you are taking space away from the person behind you. Don't take if you don't need.
  4. If you do lean back, please do not constantly adjust yourself or your seat position. As you lean back or forward, the position of your seat shifts, and thus impacts the person behind you. The person behind you will suffer from bouncing and shifting of their tray, and variation in the amount of space they have available to them. Comfort for people behind you is obtained when the amount of space they have is maximized and the variation in that space is minmized. Please, sit still and keep a constant wait on the back of your seat to avoid thee shifts.
  5. If there is a car seat in the seat behind you holding a kid - never lean back.



The Middle Seat

  1. Whomever sits in the middle seat gets to put their arms on the armrests. The people in the aisle and window seats have their own bits of "extra space" - the person in the aisle seat can lean into the aisle a bit or put their elbows out; the person in the window seat can lean against the wall more. The person in the middle row is crunched and the only extra space they can get is the armrests. It belongs to them.
  2. When the middle seat is unoccupied, the free space becomes a shared, reusable resource, and gets split 50/50 between the person in the aisle seat and the person in the window seat. Either person can put down the laptop tray in the middle and claim one half of the space of that tray, as well as one half of the space of the seat itself. I typically use my half of the tray for coffee and food, so my own tray table can be used for my laptop and mouse. The space underneath the middle seat is for one party or the other, on a first come, first served basis.

Moving Seats

  1. If you see an empty seat and want to move into it, the following rules apply:
  • The seat change should not decrease the comfort level for the people in the area you want to move into. So for example, if you are currently in a middle seat, and want to move into a middle seat in a different row, but the aisle and window seats in your target row are taken, your move will decrease the comfort level for the people in the row you want to move to (and increase it in the row you are moving from). Consequently you should not make this move, nor should you ask the people in the target row if it is OK. Just stay where you are. Following similar logic, you can move into a target seat under the following cases: (1) The target row has no one seated in it, in which case you may take any seat. (2) The target row has someone in the aisle, and no one in the window or middle. You may take the window seat. (3) The target row has someone in the window seat, and no one in the aisle or middle. You may take the aisle seat.
  • You make the move just after the door on the plane closes, and before takeoff. Don't defer your move until halfway through the flight, because moving in general annoys people as they get settled in. You'll have to go fast because the flight attendants don't generally like people moving around.
  • Don't move your bags from the overhead, just take the stuff you had with you. Again, this is to avoid hustle and bustle and last minute shuffling of stuff.


The Window Shade
  1. For morning and day flights, the window shade should stay down. This is to make sure the outside sun doesn't come in and cause glare on laptop screens and monitors. It is the job of the person in the window seat to close this shade. 
  2. The person in the window shade may keep it open during landing and takeoff to observe the procedure. If it was closed initially, please check to make sure no one is sleeping next to you before  you open it. If you are in a mostly dark airplane interior (because everyone elses shade is closed), opening it can let in a glare of light that can awaken the people in your row.

Getting Out

  1. If you need to get out of your seat to go to the restroom, and you are in a middle or window seat, you should turn to the other people and politely say, "Excuse me I need to get out". Before you do this, you should have packed up enough of your stuff that you can move once the other folks are ready. For example, if you had your laptop open on your tray, close the laptop, put it away, and close your tray table before asking.
  2. The other people in the row should get out of their seats (exception in first class where there is enough room to exit without them getting up) to let the person out.
  3. If you need to get out and one of the people in the row is sleeping, try and "schedule" this event. Don't wait till you urgently need to use the restroom. Keep an eye on the person who is sleeping, and if it looks like they wake, then go ahead. Give yourself about half an hour for this. If they do not wake, you gently tap them on the shoulder, and say, "Excuse me, I hate to wake you, but I need to get out". 
  4. The exit process is the following. Person in the aisle exits first (naturally), and steps towards the front of the plane two steps, so that the middle person can get out and also step forward (typically restrooms are in the rear of the plane). Middle person comes next, goes into the aisle, steps forward towards the front of the plane. Now the window person can get out and use the restroom.
  5. For people that have stepped out, there are two possible next-steps while they wait for the return. They can go back to their seats, remain in the aisle for a standing break, or take this opportunity to also go to the restroom. The person in the middle seat makes this call. If they remain standing, the person in the aisle seat should also remain standing and not complain. If the person in the middle seat returns to their seat, the person in the aisle seat can make an independent choice on whether to return to their seat or wait in the aisle or go to the restroom. Once the person who went to the restroom in the innermost seat comes back, the exit and return process repeats.
  6. When you get out to let someone else go to the restroom, clear any blockages you left on the floor (e.g., your shoes or a bag) so that the person get out without needing to step over your stuff.
  7. When getting out, it is frequently necessary to hold on to something to balance. You have two options - the seats in front of you, or the armrests of the seats in your row (the latter requiring you to turn around when exiting). The latter is recommended - it avoids pulling on the seats in front of you, which will bounce the people in front of you and decrease their comfort. If you turn around and lean forward slightly using the armrests to balance, you avoid touching the backs of the chairs in front of you which is nicer. 
  8. When walking through the aisle, do NOT put your hands on the aisle seats as if you were mountain climbing up the aisle. Do not bump the seats with your shoulders or arms. The best way to move is to basically walk sideways. Move carefully so you are not moving those seats. Jostling them can wake sleeping passengers and in general decrease their comfort.

Turbulence

  1. When there is turbulence, you are responsible for making sure your drink doesn't spill. You should either pick up your drink and hold it carefully to compensate for the turbulence, or put your hand over the top to prevent spill. If the drink is mostly empty and you are confident there will be no spills - you can leave it be but be careful it doesn't slide away.

The Bathroom

  1. Be quick, even if no one was waiting behind you. Don't bring reading materials.
  2. Throw away your paper towels.
  3. You should use a seat protector. If you do, make sure it is completely flushed and some shreds of it haven't ripped off and landed on the floor. 
  4. When using the sink, don't get water on the floor. Be careful to keep it in the sink.
  5. Flush (really hope this is obvious).
  6. Dont bother wiping down the sink. I know the instructions say to do this, but I feel its a waste of water and as long as the sink is just wet (as opposed to having soap on the sides of the sink), who cares. Sinks are wet normally.
  7. Aim for guys really, really matters. If you miss and - ahem - get some on the toilet or floor, please wet a paper towel and wipe it up, then dry the floor and toilet area with a dry paper towel. The restroom is not cleaned during the flight. Its really gross to go to the bathroom and the floor is wet, and of course you dont know whether its water or not. If you enter the bathroom with a dry, clean floor, exit it with the same! Remember people on planes often remove their shoes and definitely no one wants to go into a bathroom with a wet floor wearing socks.


Armrest Movement

  1. The default position of the armrests is lowered. If you want them raised, you must ask the person next to you if it is OK. If they say yes, then proceed. 

Lights and Air

  1. You have complete autonomy over the controls for your light and your air vent. However, you may not adjust the direction of the airflow in a way that blows on the people next to you. 
  2. You do not have the right to tell the people in your row to turn on or off their air, or turn on or off their overhead lights.

Getting on the Plane

  1. Seriously - once you've found your row, if the aisle is unoccupied,  move yourself into that row and pull your bags with you, so that people can pass. The stuff that is meant to go under your seat, put that on the aisle row seat. Then, put your overhead stuff up top, all while mostly standing in front of the aisle row seat. This rule applies even if you need to put your bags into an overhead bin that is NOT your row. Move into the aisle seat area, put your bags up, then move on. 
  2. Respect families and kids. As a frequent business traveler you get into this rush-rush mentality and will want to go first and lose patience with folks moving slowly. Let families with kids go first and give them time to do what they need to do. 
  3. If you are in the window or middle seat, and arrive to your seat before there are folks there yet, go ahead and sit of course - but don't buckle your belt, don't lean back, don't open your tray table. Be in a position to move immediately to get out so the other person can get in.


Working

  1. Never wedge your laptop screen into the seat in front of you, because the person in front of you probably hasn't read this. (credit: Scott Brim)
0 Comments

Cloud: A better way to write software

12/14/2013

3 Comments

 
In this post, as in others I write, I speak for myself and not on behalf of my employer.

Cloud means many different things to many different people. For me, cloud is a software architecture and development model for Internet applications that enables continuous delivery to users everywhere. 

One of the keywords in there is continuous delivery. With the cloud, it becomes possible for a software development team to make changes to their application, push the resulting build into production, and have it propagate to some or all users of the application automatically - all within minutes. This is quite different from traditional boxed software. In a boxed software model, once a development team finishes building an application, there is a lengthy process of distribution and upgrades across the user base which can take years. Compare, for example, the time it takes users to get an upgrade of Facebook vs. the amount of time it takes to get an upgrade of Microsoft Word. When Facebook makes a change, that change propagates server side and within the corresponding client-side HTML/JS within moments. Mobile apps still require upgrade on slower cycles, but with the advent of automatic upgrade in mobile app stores, the process of client side upgrade is getting faster. With boxed software, the new software itself must be distributed through physical means, and the owners of that software must opt-in and go through an upgrade process. For IT-provided applications that run in an IT managed data center, the boxed software upgrade process is often even slower. 

So what?

When combined with instrumentation and analytics capabilities, cloud enables a virtuous loop of software improvement:
Picture
In this cycle, a development team can build capabilities into their software, deploy those capabilities a short while later (after the battery of automated tests have run), and immediately gain feedback on how the software is performing in the hands of users. This feedback can be in terms of performance - how long does it take to send the message? How many messages don't get delivered? - or engagement - how many messages per day are users sending? Do users send messages in clumps? What is the typical clump size? or other factors like revenue, quality, reliability, and so on. With this data fed back to the development team, they can learn from these metrics and build improvements into the software. Perhaps that improvement is to fix a bug, or to improve a database query to reduce response time, or to add another data center to improve loading of the page. Once that improvement is identified, it can be developed and deployed, and the process continues. 

When this entire process can happen within hours, it changes the way you write software. It enables decisions to be made based on data, instead of guesses. If you think about how much software is written based on beliefs, guesses, or theories about what will happen in production, you can begin to appreciate how powerful this is.

Instead of guessing whether you need all 10 features for users to utilize an application, you can ship it with the first two and see whether you get the engagement you need. If not, add another and measure again.

Instead of guessing whether you need to optimize your database query for better performance, deploy the non-optimized query, measure the overall latency for the user to use the application, and determine whether the database query is even the most significant part of the overall user-observed latency. If not, don't optimize it.

Instead of guessing whether your service is reliable enough for delivering messages, measure the overall message setup delivery success rate for users, determine your threshold for "good enough" (two nines? five nines>", and if its not meeting the threshold, look at instrumentation to determine the top root cause for undelivered messages. Fix that, deploy, and measure again.

Because this feedback loop does not exist in boxed software development, lots of energy and time get wasted in developing software that doesn't actually make it better or achieve the goals driving that development. With cloud, continuous delivery means you can focus on what is important by measuring it. For teams not used to this model, its a real learning curve. Engineers love to optimize and add features, and so it is their natural inclination to do so. In cloud software, you make different decisions. Instead of optimizing, you add a metric that allows you to measure. Instead of adding a feature, you add analytics that allow you to understand usage. This is not just a new process, its a mindset change. But once you make that change, you realize it is so, so much better.

SImply put - cloud software is fundamentally a better way to write software, because it allows you to grow it through experience, not guesswork.
3 Comments

Xbox One: First Impressions

12/12/2013

0 Comments

 

My wife was very excited on Black Friday when she did the impossible: find an Xbox One in the store. Even though I was willing to wait, she insisted that as an early adopter I just had to have one. And, who am I to argue.

After using it for a few weeks, my first impression is this: Good potential, but still too early and not enough of a bump up from the Xbox 360 to make you run out and upgrade.

The real problem is the lineup of games. Xbox One is not backwards compatible with any of the Xbox 360 titles. As a result, the only games available are new ones that came out at launch - some dozen or so. Of those, almost all of them are also available on the Xbox 360. So, those games are not really an incentive to get the Xbox One. Of the few games that are exclusive to Xbox One, I picked up Ryse: Son of Rome. This is a third person action combat game. The graphics are really good, probably better than almost anything out there right now. But they are not a leapfrog over what I have seen on current generation consoles. Its only marginally better graphically than, for example, The Last of Us on PS3. In terms of gameplay, its good, but not great. 

The much touted feature of the Xbox One is its ability to be used with your TV. You can set it up in HDMI passthrough, which means you plug your cable box into it, and then connect it to your TV. It intercepts the cable box output and adds additional capabilities before sending to your TV. It has its own TV guide, and can take spoken commands to change channels. However, there is no TiVO functionality, so you cannot record shows. As such, right now its little more than a glorified remote control for my cable box (indeed it uses the Kinect sensor as an IR blaster to change channels on the cable box). Neat, for sure. But worth $500? No.

The Kinect is also underutilized right now. The one game I have doesnt use it for gaming. Yes, you can use it for navigation in menus. And it supports signing in via face recognition. But these are icing, and whats missing is the cake. 

The other big thing about Xbox One is its multi-tasking. It has a snap mode that is similar to Windows 8 or RT. You can have one thing running in most of the screen and then have a sidebar for something else. I found this most useful for watching TV during the laborious install process for Ryse (which took almost 30mins). Once installed the game started pretty quickly, and so the multitasking wasnt useful for me since then.

The net/net is - I think there is promise here. Once the titles start coming, and Microsoft figures out how to better leverage its connection to the TV, I think the Xbox One has promise. But, for any but the bleeding edge early adopter, my recommendation is to hold off on Xbox One for now. 

0 Comments
Forward>>

    Author

    Jonathan Rosenberg
    CTO & Head of AI, FIve9

    Archives

    June 2022
    May 2017
    May 2014
    February 2014
    January 2014
    December 2013

    Categories

    All
    Cloud
    Gaming
    Travel And Cuisine
    Voip

    RSS Feed

jdrosen.net was last updated 2/7/17
Photo used under Creative Commons from Mufidah Kassalias