Friday, January 09, 2009 11:37 AM
Discoveries This Week 01/09/2008
It’s been a very exciting week. I actually had more things to post than time would allow me to write about. I’ll have to save them for next time.
Hindley-Milner is the algorithm all these fancy programming languages like F# and Haskell for type inference. It allows us to have statically typed languages without always having to specify types most of the time.
By far, this was the most interesting article I’ve had the pleasure of reading so far this year. In his post Daniel walks through how exactly the algorithm works in a very friendly way with clear examples. A lively discussion follows in the comments.
In this post Jimmy talks about some of the limitations of .NET attributes in the context of using the MVC pattern in ASP.NET. The lack of control over attribute construction seems to be the main problem. Also, throwing in attribute constructors can make things go horribly wrong in strange places.
We’ve had problems depending on reflection with custom attributes as well.
The moral of the story seems to be to avoid using attributes in .NET for anything clever in cases where that code might be on a customer’s machine. They are not well supported and edge cases tend to produce strange behavior.
A stark juxtaposition of what a job title means in the physical engineering world versus the software engineering world. I agree with him almost completely. We need a standardized job title that reflects strict Software Engineering training with mandatory and difficult testing. A person entitled Software Engineer should be certified to know how to architect and engineer applications with the safest practices for critical environments.
I would say the only thing Rob overlooks is that most software does not have the same kind of impact on personal safety as physical engineering. I think it’s perfectly acceptable to have people writing code who are not certified in such a comprehensive way. However, I would sleep a lot better at night if I knew the companies writing software for cars, planes, hospitals, and other environments that could impact my personal well being, would have a serious liability problem if they did not hire people who were certified in such a way.
NArrange has had quite a lot of buzz this week and with good reason. By having code in a large project laid out in a consistent manner everyone saves time. This is because there is no need to hunt around, file layout is always consistent.
Sure, Stylecop helps with this, but who wants to have their builds being broken by minor style cop infractions? For this reason, almost no one uses it in their continuous integration process. Wouldn’t it be nice to just have file layout consistency taken care of automatically? This is the promise of NArrange. It even supports Stylecop rules and so migration is simple.
The only issue here is that NArrange is rather immature. It’s self described as beta and the version is a rather low 0.2.7. I know it’s an arbitrary number, but it surely does not inspire confidence. I’ll be keeping an hopeful eye on this project but I’ll wait for it to mature a bit before trying to use it.
Conclusion: NArrange probably isn’t ready for unsupervised use in any commercial software’s CI process yet, but it sure is a very exciting prospect.
Remember back before Filezilla came out? The state of free windows FTP clients was abysmal, especially if you needed SSL support. It was pretty much use CuteFTP or be stuck with a command line client.
The situation has remained much the same with terminal clients over the last ten years. It’s pretty much been use PuTTY, which is lacking in terms of usability features, or pay quite a bit for SecureCRT.
Happily, the situation has now changed. Poderosa is to SecureCRT what Filezilla is to CuteFTP. If you use PuTTY on a regular basis do yourself a favor and give it a try.