Open source Rocks!

  • Open source is generally free!
  • You can modify the source and make your own improvements.
  • You can inspect the source for things like capabilities/security holes.
  • Usually its made scriptable because its not too hard to make something scriptable by a contributor and when it’s free then there is likely to be less repercussions for another application utilizing it. Eg. phantomJS.

Containers with Docker provide many benefits

Docker implements containers. Operating system containers used to be more commonly refereed to chroot jails.  “Jail” highlighting the security aspect, however Docker containers have many other uses.

  • Configuration Management. You can think of a docker file as like a build script.
  • Distrubution: Pushing to docker hub is a great way to share environments
  • Containers isolate processes making debugging easier. Consider how fewer processes there are when typing ps aux.
  • Containers can use different distros to the host operating system and are specifyable to the tagged version simply with a one-liner on top of the docker file
  • Docker adds an extra layer of security making it harder for hackers to jump from one set of processes to another such as the underlying operating system. If they hack the container, you can just rebuild it and the host operating system should be pretty unscathed.
  • Docker can caches operating system builds meaning adjusting the configuration of your servers can be faster.
  • Docker shares common build assets reducing disk space and build time.
  • Docker implements a network abstraction layer meaning programs running on the same port are not an issue.
  • Containers are isolated environments so the installation of one thing won’t conflict with another.

Debugging should be made easy

My Experience with debugging PHP

1. What is x debug? What does the X stand for?  Does this even debug PHP or does it debug X windows? If there are no other debuggers worth considering, I should not need to know it’s name.

2. You have to enable zend extension. What’s zend? Should I need to know anything about Zend to  configure debugging?

3.  A shared object file? I just want to turn it on not specify which copy of the debugger to use.

4. Why require me to edit a configuration file for anything? The file could be located almost anywhere. In Visual studio, you can just click debug. In Node you just type node-inspector your-script.js and it pulls up a web based debugger.

Debugging tools are a great learning aid and should be made as available as possible for novice users.

Webservers suck

The old days of html file websites are long dead making much of the intended use of web servers dead. Here are some more reasons why web servers suck.

  • The configuration is in a language specific to the web server.
  • The configuration is less flexible than conventional general purpose programming languages
  • They are so tuned for speed most of there operations are nonsensical from a end user application design perspective.
  • They lock your files in ways which are cryptically documented.
  • They often require restarts when changing configuration which sometimes bring down a server.
  • Often the routing rules in a web server just serve as a preamble to a further set of application based routing which has to be daisy chained.