2,448 karma · joined July 3, 2007
I think there are probably many of us that are interested in this side of the "enterprise" but SAP is sort of its own universe and difficult to understand/penetrate from the outside.
(1) One codebase tracked in revision control, many deploys (running instances, typically including a production and one or more staging sites)
(2) Explicitly declare and isolate dependencies (e.g. GEMFILE for ruby)
(3) Store config in the environment NOT code, "A litmus test for whether an app has all config correctly factored out of the code is whether the codebase could be made open source at any moment, without compromising any credentials."
(4) Treat any service the app consumes over the network as attached resources, a 12-factor app "should be able to swap out a local MySQL database with one managed by a third party (such as Amazon RDS) without any changes to the app’s code."
(5) Strictly separate build, release, and run stages.
(6) Execute the app as one or more stateless processes. "The twelve-factor app never assumes that anything cached in memory or on disk will be available on a future request or job."
(7) Export services via port binding. "The twelve-factor app is completely self-contained and does not rely on runtime injection of a webserver into the execution environment to create a web-facing service. The web app exports HTTP as a service by binding to a port, and listening to requests coming in on that port."
(8) Scale out via the process model. "processes are a first class citizen... the share-nothing, horizontally partitionable nature of twelve-factor app processes means that adding more concurrency is a simple and reliable operation."
(9) Maximize robustness with fast startup and graceful shutdown. "Twelve-factor app’s processes are disposable... should strive to minimize startup time...shut down gracefully when they receive a SIGTERM signal from the process manager...should also be robust against sudden death"
(10) Keep development, staging, and production as similar as possible. "Twelve-factor app is designed for continuous deployment by keeping the gap between development and production small... resist[ing] the urge to use different backing services between development and production"
(11) Treat logs as event streams. Twelve-factor app "never concerns itself with routing or storage of its output stream"
(12) Run admin/management tasks as one-off processes.
My only written reference is the material by "ergonomic experts" included with my Kinesis Advantage -- a bit on the unreliable side. Would love to know if you and Google can turn up anything else.
Anyone else got something like this in all caps? <<GREETING TO YOU AND YOUR FAMILY, IN MY SEARCH FOR A... >>
They also can enable you to type faster. This isn't very important for coding, but it may be important in a variety of other contexts depending on what you do. I've been trying to push over 90 awpm myself.
Here are the keyboards I've had and tried:
MS Natural Elite, classic, affordable, does everything right. I feel the same way about this keyboard as I do the classic MS intellimouse, which was superceded by (IMO) inferior products. The spacebar felt a bit loose and broke on me a couple of times.
MS 4000, never felt as smooth to me as the Natural Elite, but easier to obtain. I think they made the spacebar more stable, but not as easy to reach. I was in the habit of putting my natural elite in my lap and pounding away, the adjusted curvature of this model didn't allow this and otherwise annoyed me.
Kinesis Advantage, major price tag and major pain to use if you have to use a mouse periodically. Also more difficult to adjust to. That said, gives you a slight advantage w/ typing speed (+10 or so words per minute) and allows you to easily touch type the numbers, something that very few people can do. Also, very very comfortable.
Do you really need an ergonomic keyboard? Depends on what you do. I predominately use a laptop keyboard (on my 13" Air) these days and haven't had a major issue with strain for some years, largely because (I assume) I do other wrist intensive exercises (primarily yoga). That said, if I ever did something again where I really needed to push 100 wpm, esp. over an extended period of time, I would definitely crack out my ergo keyboards.
btw, what makes you think Zurich would be better?