Weekly Bits and Pieces, 2013, Week 27.

Notes from podcasts, blogs, books and videos for the week. Shamefully lacking in adequate references.

  • Dynamic typing is different from being “typeless”. Things in a DataSet are typeless, for example.
  • The way to mitigate a lot of the risks associated with dynamic typing is to have a good test suite and a tight feedback loop.
  • There is state in REST, the question is just how you move it around. Don’t keep it on the server – try to pass everything the server needs from the client. Doing this helps avoid some of the problems associated with keeping state on the server, such as trying to share state across multiple machines when doing load balancing.
  • SOAP doesn’t leverage HTTP verbs – it only uses POST.
  • HTTP is a nice, generic protocol for communications.
    • It really opened up the door for integration between disparate systems.
  • CSRF attacks are possible on Web Apis, but less likely (working on the assumption that you’re not using cookies so much.) (more info)
  • Check out the OAuth Bible.
  • HTTP signatures are a proposal to verify messages over HTTP.
  • Testability and deployability should be considered as important architectural concerns.
  • Feature toggles are a good technique for facilitating continuous delivery.
  • When doing continuous delivery, one implicit way of doing feature toggles is by leaving the UI until last.
  • “Your code is useless until it’s integrated.” — Jez Humble
  • Feature branches are bad. Always try to work on the mainline.
  • There’s a difference between concurrency and paralellism.
  • Zen Coding/Emmet is cool.
  • Visual Studio Web Essentials is cool. (And includes Zen Coding.)
  • The nasty thing about race conditions is that your program might still run, but it’ll have the wrong result – a data race.
  • Continuous delivery is “fast, automated feedback on the production readiness of your applications every time there is a change to code, infrastructure or configuration.” —ThoughtWorks dude, http://youtu.be/eTy_0kWNHb8
  • “a ‘change’ is any activity that is physical, logical or virtual to applications, databases, operating systems, networks, or hardware that could impact services being delivered.”The Phoenix Project, page 81
  • Browser Link is a handy new feature for Visual Studio 2013, linking multiple browsers to your Visual Studio project.
  • It’s a bad idea to have knowledge silos in a company – certain things that only one person has a clue how to do.
  • xbuild doesn’t currently support web.config transforms. (more info)
  • Should your routing be centralized or should it sit on the class?
  • “Improving daily work is even more important than doing daily work.” The Phoenix Project, page 212