The article illustrates the well-known mantra "to survive, you must adapt to your environment".
In the IT industry, incrementally developing your existing businesses will quickly lead to oblivion. IBM succeeded in the transition away from the mainframe business, and thus IBM can be seen as an example what all the companies in the industry need to do to stay afloat.
I did not find this article a waste of time. It reminds me of Thomas Kuhn's view on scientific revolutions. Most of the time people try to solve problems by using already known patterns. Every now and then somebody comes up with a completely new idea; the new idea allows its possessors to solve the problems orders of magnitude better (i.e. faster, cheaper, ...).
It depends on the application(s) you wish to run on AWS. If your EC2 instance runs an HTTP server that is backed by an external database like RDS, your I/O bottlenecks is not the EC2 instance's disk.
The article points out rather successfully that once you know at least something about the internals of each AWS service, you can fit them into your particular needs.
That's correct. The problem is that the EC2 internal IPs change even though the instance would have an Elastic IP. EC2 instances use internal IPs when communicating with other EC2 instances (this is a feature of AWS DNS). As a consequence, Puppet clients cannot access the master by using the master's Elastic IP.
We configure our production servers and push new releases there with Puppet. I like Puppet: its fail-safe and reliable.
There is, however, one thing I don't fancy in it. Puppet does not support insecure client–master communication. Requiring SSL communication is OK, but one should be able to switch it off if it brings no value.
We are running our our servers on AWS, and we rely solely on AWS security groups to grant and deny accesses. Puppet's SSL traffic brings no additional security to us; it only complicates matters. For example: we would like to shut down the Puppet master EC2 instances when they are not needed. However, this is not possible, since after start-up the EC2 instances have new IPs, and this breaks the Puppet-signed SSL certificates.
The article quite well describes some of the valuable features of a good login UI.
The login page is (often) the first place a user encounter your site. If that page creates a sense of repulsion in the user or forces him to struggle, the user is probably left with a feeling that your site is against him. That's not something you want.
Its not difficult nor time-consuming to implement a proper login UI. However, surprisingly many sites don't pay enough attention to it.
Jeff, are there any plans to support mailbox provisioning?
At the moment I'm using Rackspace's REST API to create a mailbox for our new customers. I like their API, but I don't like the fact that we have to communicate with their IMAP and SMTP servers to receive and send email. It forces us to write a lot of bug-prone email handling code.
I have been practicing ashtanga yoga 4-6 times a week for several years now. I must say that it suits well to a programmer. Even though I sit by the desk about 8 hours a day, I never have any aches or pains. The daily practice kind of moves the body to the background, since the body becomes quiet and it does not complain. Practicing yoga postures also involves meditation, so its a good way to relax.
I suppose this can be achieved by practicing martial arts as well. The main thing is to have a regular exercise that you find meaningful.
I remember when I purchased a shareware version of the first Doom. I ordered it by sending a post card to a Finnish game retailer. After a week or two, I received a few diskettes. I was thrilled: a new game was just delivered to my home!
This phenomenon of not remembering what I just read is familiar to me from the moments where I'm about to take an exam after a course. I usually go through the course material two or three times before taking the exam. Just before taking my place in the exam room, I test my self: "what were the five key points in chapter 3". Oh I can't recall them, I'm in trouble!
Fortunately the exams (at least in my university) did not focus on the student's ability to remember exact sentences or enumerate the "five bullets on chapter X". Like in real life, most of the exams required me to remember ideas and their implications, not exact phrases.
To sum, its not essential to be able to recall and speak out some random facts from a book. Its more important to comprehend what ideas were present in the book and what consequences those ideas might have on X or Y. Us humans are not computers but beings capable of creative thought.
From the point of view of a web application developer, JDK 7 is not very interesting. JDK 7 will contain a few language updates like switch-cases based on strings. No major changes or features that would radically change a web app developer's coding routines. What do you think?
Even though Atwood refers to version numbers as (false) indicators of progress, he has an important point: the earlier you release, the sooner you'll be able to make crucial corrections.
If your product managers are clairvoyant you do not need short release cycles. The PMs just tell the developers what kind of features the market will value in, say, three years. The development team is then able to concentrate on building a feature-rich and consistent product without the pressure of producing something quickly and then testing it on the market.
In any other case, you probably benefit from releasing several major versions within a couple of years.
A year ago I took the course on calculus and group theory. I worked on the course 15 to 20 hours per week for three months and received a good grade.
The course was worth the effort. It enhanced my engineer identity and brought me self-respect. Now that I've passed the course, I'm much more confident about my self; I feel that I can solve difficult problems if I want to. I know that I can concentrate.
In short, putting your self through advanced mathematics is a great way to improve your capability of facing and handling difficult issues.
I have always wondered why people keep so many browser tabs open. From my point of view, open tabs represent unfinished tasks or web pages I should go back to as soon as possible.
At work, I have four browser instances open: three Chromes and one Firefox. I have placed two of them on the same virtual desktop, and the remaining two browser instances are on separate virtual desktops. On the first virtual desktop I manage my work-related tasks, such as company email, Hudson and VersionOne, a project management tool for agile software. The browser on the second virtual desktop is for developing software: the web application I develop is on it. The third virtual desktop is for fun and free time use. Altogether I have about ten browser tabs open; even that is too much. I feel that the more tabs I have open the more fragmented my attention is.