The trolley problem is an ethical and psychological thought experiment. In its most basic formulation, you’re the driver of a runaway trolley about to hit and certainly kill five people on the track ahead, but you have the option of switching to a second track at the last minute, killing only a single person. What do you do?

Kottke has some thought-provoking variations.  I’m sure this has been turned into a drinking game somewhere.

visual studio linux

The Next Web reports:

Today at Build, Microsoft unveiled its first version of Visual Studio for Mac and Linux.

The new tool, called Visual Studio Code, makes it easy to develop .NET code along with many other programming languages on Linux based systems.

It’s monumental for Microsoft as it marks the first time the company has ever made Visual Studio cross-platform, truly embracing those that it’s previously feuded with.

 

Amazon EFS preview

Amazon EFS

Amazon Elastic File System, or EFS for short, is the missing piece of the cloud puzzle.  With all those EC2 instances, elastic load balances and IAM roles, one would often need a shared file system.  Until now, you’d either be using either an S3-based solution, which scales well in terms of price and storage, but lacks in common tools support and sometimes in real-time synchronization; or an EBS-based solution, which performs way better (especially with SSD-backed storage) and works like a regular file system, but is a bit more pricey and lacking, being a block-level solution, the sharing option – so you’d have to build something like a GlusterFS solution or an NFS server, both of which have their own issues.

So, the arrival of the EFS, even as a preview for now, will bring joy to many.

Amazon EFS is a new fully-managed service that makes it easy to set up and scale shared file storage in the AWS Cloud. Amazon EFS supports NFSv4, and is designed to be highly available and durable. Amazon EFS can support thousands of concurrent EC2 client connections with consistent performance, making it ideal for a wide range of use cases, including content repositories, development environments, and home directories, as well as big data applications that require on-demand scaling of file system capacity and performance.

(Quote from the webinar pitch)

In terms of integration, it looks easy for the Linux crowd – NFSv4 option is there.  What’s happening in the Windows world, I’m not that aware though.  Gladly, that’s not my problem to worry.

In terms of pricing, this looks a bit expensive.  The calculations are in GB-Months, with the current price being $0.30 per GB-Month.  An example for 150 GB used over the first two weeks of the month and 250 GB sued over the second half of the month, yields a 177 GB-Month average at a cost of $53.10 USD.  Even knowing that EFS is riding on SSD-based hardware and should be quite fast, the price is high.  Amazon is known however for its regular price reductions.

So for now, I’d wait.  It’s good to know that the option is there (or almost there, preview still pending).  But for the masses to jump onto it, it’ll need to calm down its dollar hunger a bit.

A two-part (so far) series on what to expect from PHP 7: part 1, part 2.

As many of you are probably aware, the RFC I mentioned in my PHP 5.0.0 timeline passed with PHP 7 being the agreed upon name for the next major version of PHP.

Regardless of your feelings on this topic, PHP 7 is a thing, and it’s coming this year! With the RFC for the PHP 7.0 Timeline passing almost unanimously (32 to 2), we have now entered into feature freeze, and we’ll see the first release candidate (RC) appearing in mid June.

Why Learning to Code is So Damn Hard

Erik Trautman of the Viking Code School Blog did an outstanding job explaining “Why Learning to Code is So Damn Hard“.  It’s a rather long read, but it’s easy to get, and it explains the different stages extremely well.

coding_is_hard_combined_chart

He looks both at the variability of confidence as one gets competence, the scarcity of resources for each stage, and the scope of knowledge.  Just to have it here for a quick reference, here are the stages:

  1. The Hand Holding Honeymoon is the joy-filled romp through highly polished resources teaching you things that seem tricky but are totally do-able with their intensive support. You will primarily learn basic syntax but feel great about your accomplishments.
  2. The Cliff of Confusion is the painful realization that it’s a lot harder when the hand-holding ends and it feels like you can’t actually do anything on your own yet. Your primary challenges are constant debugging and not quite knowing how to ask the right questions as you fight your way towards any kind of momentum.
  3. The Desert of Despair is the long and lonely journey through a pathless landscape where every new direction seems correct but you’re frequently going in circles and you’re starving for the resources to get you through it. Beware the “Mirages of Mania”, like sirens of the desert, which will lead you astray.
  4. The Upswing of Awesome is when you’ve finally found a path through the desert and pulled together an understanding of how to build applications. But your code is still siloed and brittle like a house of cards. You gain confidence because your sites appear to run, you’ve mastered a few useful patterns, and your friends think your interfaces are cool but you’re terrified to look under the hood and you ultimately don’t know how to get to “production ready” code. How do you bridge the gap to a real job?

I’ll also borrow the resource density chart, which is very handy:

coding_is_hard_resource_density

 

Not only the article explains why learning to code is so hard, but it also suggests how to make it easier, depending at which stage you are.

I think this is one of the best articles on professional development in software development that I’ve seen ever.  Do read the whole thing.  It’s that good!

SchemaSpy – Graphical Database Schema Metadata Browser.  This is a tool written in Java that helps one to generate database schema documentation.  Have a look at some sample pages.  Those familiar with Graphviz will immediately realize that the tools is using dot for graphing tables and their relationships.  Those familiar with SugarCRM documentation will immediately notice that SchemaSpy is used for the API documentation.