Category: Uncategorized
Retro Tools Still Useful
Of late I have been finding that I am using the older unix tools more and more frequently (on windows…). These seem to solve the problem presented in a minimal fashion (and without artificial limits or attempts to be too helpful).
For example there is awk. This solves the same kind of parsing problems that excel does with it’s text-to-columns option. awk is designed to operate with tabular data and perform repetitive operations on it.
This can effectively provide queries and transforms of say a CSV file in a similar manner that can be applied with XSLT.
The above takes a file seperated by colons and prints the second column.
I have also been experimenting with the vim editor.
I started using vim a while ago when my eeepc linux netbook did not have emacs installed (and I was without an internet connection to get it).
I found it very useful when I was presented with a 2MB xml document that I needed to parse. Opening an xml document in VS2010 is fine provided that the document is not big and on a single line. The VS2010 editor tried to be clever and do graphical things with the document – but this took all of the processing power of the machine (which itself is impressive since this was my work quad core desktop). vim however opened the file painlessly and permitted searches which is all I really needed. I even found a vim script that allows the insertion of a newline after a given pattern. This allowed me to turn the monster xml into something that VS2010 could look at without hanging.
Subsequently I have been combining vim and powershell. Powershell can be started on unc paths. Vim can be started from within Powershell. This combination overcomes the historical dos limitation of forccing you to map a drive letter if you want a command prompt.
This may look like unix but is actually powershell:
Linq to Tree
This is something that I have been thinking about for a while. I thought that linq was for flat collections.
Magic Unicorn Technology Stack
This is a developers personal list of useful technologies.
Unity Framework : The Patterns and Practices Group's Dependency Injection
This is the Patterns and Practices attempt at the Dependency Injection pattern.
The P+P group do put out useful code although some of it is massively over-engineered (their logging framework is so fragile that it can break WCF).
Presentation About Teaching Maths
This is a great presentation about teaching maths.
The only problem is the typical American typo of talking about Math!
Essent – Embedded DB in windows
This is a managed wrapper about an embedded db in winows.
Why Software Patents are always a Bad Idea
Patents are intended to be a limited monopoly designed to encourage innovation. If you build a faster steam engine then you get to profit from this advancement for some time.
There is a distinction in software requirements between the Problem Space (PS) and the Solution Space (SS). The PS is a set of definitions of the problem, for example I want to get past a wall. The SS is a set of solutions to the problem, for example a rope ladder, a tunnel, a sledgehammer.
Software requirements should only deal with the Solution Space (that is specify the problem not how it is to be solved).
There can be many possible solutions to a given problem space. Patents are typically acceptable if they can cover a single solution since it is possible to find another solution.
The problem with software patents is that they are typically expressed in terms of the PS rather than the SS. This means that it is not possible to work around the patent if you want to solve the particular problem.
Powershell make equivalent
VO2 Max calculator
http://www.bodybuilding.com/fun/vo2max.htm
This is a calculator for establishing your VO2 Max based upon the distance that can be run in 12 minutes.
This makes it an ideal test to perform regularly in a Gym on a treadmill.
VO2 Max is related to the amount of oxygen that your body can process during aerobic exercise. The higher the value the fitter you are.