<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4120979386707737496</id><updated>2009-06-02T02:08:11.753-07:00</updated><title type='text'>Tech Obz with Andrew</title><subtitle type='html'></subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.andrewlagrange.com/tech/atom.xml'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-7576399084652235252</id><published>2008-09-29T06:47:00.001-07:00</published><updated>2008-09-29T06:47:51.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>I like jQuery + Microsoft</title><content type='html'>&lt;p&gt;I like jQuery. I really do. And I use it all the time. I've had to try some pretty out there Firefox/OSS lovers software to get a good IDE intellisense experience with it. Although its a simple library, I've become spoilt with Visual Studio. There are so many frameworks out there, that to stop the nose bleeds I've started to revert to the yeoman old developer trap of &amp;quot;if it isn't in VS it doesn't exist&amp;quot;&lt;/p&gt;  &lt;p&gt;Well hoorah, because according to ScottGu's blog, &lt;a title="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx&lt;/a&gt; we can now expect jQuery to be included by default with VS and the ASP.NET AJAX library. &lt;/p&gt;  &lt;p&gt;This is fantastic news, and another great step forward in seeing Microsoft's best of breed development tools be right where they should be as far as the support of JS libraries is concerned; I won't be surprised if we see jQuery either ship in IE8, or be hosted on something nice and blazing vast (pos. with a cache in IE8?) so that all the goodness we developers write in the coming months will run really fast. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-7576399084652235252?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/7576399084652235252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=7576399084652235252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/7576399084652235252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/7576399084652235252'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/09/i-like-jquery-microsoft.html' title='I like jQuery + Microsoft'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-8578658881931685001</id><published>2008-03-11T03:49:00.001-07:00</published><updated>2008-03-11T03:49:47.593-07:00</updated><title type='text'>Viscosity</title><content type='html'>&lt;p&gt;Something awesome to take a look at is a webtoy called Viscosity: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/alagrange/R9ZjwpLeZYI/AAAAAAAAACY/WEaNl03I58A/viscosity_1360%5B5%5D?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="182" alt="viscosity_1360" src="http://lh5.google.com/alagrange/R9ZjyJLeZZI/AAAAAAAAACg/dk0VccLHtkQ/viscosity_1360_thumb%5B3%5D?imgmax=800" width="260" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="http://windowseat.ca/viscosity" href="http://windowseat.ca/viscosity"&gt;http://windowseat.ca/viscosity&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Proof that some exciting stuff is coming out of the guys at Microsoft's &lt;a href="http://labs.live.com" target="_blank"&gt;Live Labs&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It was developed by Jeff Weir of Live Labs.    &lt;br /&gt;It's in PHP and Flash. So much for Microsofties being closed off to outside tech.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-8578658881931685001?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/8578658881931685001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=8578658881931685001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/8578658881931685001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/8578658881931685001'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/03/viscosity.html' title='Viscosity'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-1892080391096832294</id><published>2008-02-29T01:31:00.001-08:00</published><updated>2008-02-29T01:31:43.810-08:00</updated><title type='text'>Certainty.co.za</title><content type='html'>&lt;p&gt;Myself, and a few fellow developers, are building a pretty kick ass financial services product for personal finance, called &lt;a href="http://www.certainty.co.za" target="_blank"&gt;Certainty&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Sign-up at the site: http:/www.certainty.co.za/ to find out a little more as we reveal all the elements of the application. &lt;/p&gt;  &lt;p&gt;It's being built strong, secure, super fast, and with a host of open financial web service based APIs, so other sites in South Africa, as well as around the world, will be able to run personal finance applets and applications with, well, certainty. &lt;/p&gt;  &lt;p&gt;There is very little to show for the public right now, but the public beta will be available in March, so &lt;a href="http://www.certainty.co.za" target="_blank"&gt;sign up now&lt;/a&gt;! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-1892080391096832294?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/1892080391096832294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=1892080391096832294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1892080391096832294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1892080391096832294'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/certaintycoza.html' title='Certainty.co.za'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-4074467157079717120</id><published>2008-02-25T23:57:00.001-08:00</published><updated>2008-02-25T23:57:59.981-08:00</updated><title type='text'>What's right with young people today</title><content type='html'>&lt;p&gt;Microsoft has started a program called &lt;a href="https://downloads.channel8.msdn.com/" target="_blank"&gt;DreamSpark&lt;/a&gt; where their enterprise grade development applications (like Visual Studio) which my teams like mine, and millions around the world, make the products and services which change people's lives. &lt;/p&gt;  &lt;p&gt;By legally putting these tools in the hands of students world wide, Gates and Microsoft are cultivating a new generation of innovators and entrepeneurs in what is the vanguard of broad based human efforts (I'm excluding things like genetics and medicine development, since these are very specialised) to better our world and society. &lt;/p&gt;  &lt;p&gt;Bill Gates' article from the &lt;a href="http://www.reportonbusiness.com/servlet/story/RTGAM.20080225.wagendagates0225/BNStory/robAgenda/home" target="_blank"&gt;Globe and Mail in Canada&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One of the striking things about human progress is that so many of the world's most important new ideas were the work of young people. From Isaac Newton's discoveries as a 23-year-old that formed the basis for calculus, to Charles Darwin, who surveyed the Galapagos Islands at age 26, and Albert Einstein, who published his paper on relativity at age 26, young people have been responsible for breakthroughs that form the foundation for much of our understanding of how the world works.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Young people have played a central role in many other fields, including business and technology. Paul Allen and I were in high school when we started thinking about the personal computer, and I was 20 when we founded Microsoft. Steve Jobs launched Apple at age 21. Sergey Brin and Larry Page were graduate students at Stanford when they developed their first search engine. Yahoo was launched by Stanford graduate students Jerry Yang and David Filo.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Why do young people play such an important role in innovation, even though older people have greater breadth of knowledge and a deeper understanding of their field? My theory is that young people aren't as constrained by traditional ways of thinking. They haven't yet completely absorbed the &amp;quot;right&amp;quot; way to do things, so they are free to pursue ideas that seem impossible to those of us with more experience. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;I often see this at Microsoft. It's not unusual to have the best solution to a tough problem come from one of the youngest people working to solve it. Often, our first reaction is that what they are suggesting is crazy, until we understand that they have come at the problem in a creative, new way.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;I saw this kind of innovative thinking when I visited the University of Waterloo this past week and spent time with students there who are focused on pushing the envelope in science, engineering, and other fields. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;I am optimistic that college and high school students will continue to produce groundbreaking ideas that will change people's lives for the better in the years ahead. But I have some concerns. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;In particular, I'm concerned that too few young people are acquiring the knowledge they need to use technology in creative and innovative ways. During the last decade, the number of college students who study math and science in Canada and the United States has declined dramatically. Today, there simply aren't enough people with the right skills to fill the growing demand for computer scientists and computer engineers. This is a critical problem because technology holds the key to progress, and to addressing many of the world's most pressing problems, including health care, education, global inequality, and climate change.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;We can all help address this issue. As parents, we must help our children appreciate the joys of learning and discovery. Teachers and educators must find ways to teach science and math so it is relevant and exciting. We look to government to help improve educational excellence in our schools and ensure that all high school graduates have solid math and science skills.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Companies like Microsoft must contribute, too, by working with schools to foster interest in science and mathematics and provide training that is relevant to the needs of business. That's why we recently launched a new program called Microsoft DreamSpark. Through DreamSpark, we are providing professional software development and design tools to university students around the world as a download at no cost.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Our goal is to help students expand their skills and knowledge, and, hopefully, to inspire them to find new ways to turn their great ideas into businesses that create real opportunities and solutions that address real-world problems. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Although the world has changed dramatically during the last 30 years, I believe we are only at the very beginning of what is possible. If we do our jobs as adults, and equip young people with the knowledge and skills they need to turn their great ideas into breakthrough innovations, I believe they will find solutions for many of the difficult problems our world faces today. Their future - and ours - depends on it.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-4074467157079717120?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/4074467157079717120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=4074467157079717120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/4074467157079717120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/4074467157079717120'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/what-right-with-young-people-today.html' title='What&amp;#39;s right with young people today'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-4749569600819260849</id><published>2008-02-21T04:11:00.001-08:00</published><updated>2008-02-21T04:11:22.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Talk'/><category scheme='http://www.blogger.com/atom/ns#' term='Translation'/><title type='text'>GoogleTalk + Translation = Way Cool</title><content type='html'>&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/Metalink/~3/202813809/" target="_blank"&gt;From Alexey Gavrilov at MetaLink:&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://googletalk.blogspot.com/2007/12/merry-christmas-god-jul-and.html"&gt;&lt;em&gt;Released yesterday&lt;/em&gt;&lt;/a&gt;&lt;em&gt; they allow you to translate from and to dozen of languages using any XMPP client (including GTalk of course).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Add &lt;strong&gt;[src language]2[dest language]@bot.talk.google.com&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;to your GTalk contacts and bingo &amp;#8212; you&amp;#8217;ve got your personal machine interpreter. For example &lt;/em&gt;&lt;a href="mailto:en2zh@bot.talk.google.com"&gt;&lt;em&gt;en2zh@bot.talk.google.com&lt;/em&gt;&lt;/a&gt;&lt;em&gt; will translate from English to Chinese. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The quality of translation looks pretty good in simple tests (I tried English to Deutsch and English to 中文). &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The following language pairs are supported:     &lt;br /&gt;ar2en, bg2en, de2en, de2fr, el2en, en2ar, en2de, en2el, en2es, en2fr, en2it, en2ja, en2ko, en2nl, en2ru, en2zh, es2en, fi2en, fr2de, fr2en, hi2en, hr2en, it2en, ja2en, ko2en, nl2en, ru2en, uk2en, ur2en, zh2en.&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-4749569600819260849?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/4749569600819260849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=4749569600819260849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/4749569600819260849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/4749569600819260849'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/googletalk-translation-way-cool.html' title='GoogleTalk + Translation = Way Cool'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-2534536790040887769</id><published>2008-02-21T03:23:00.001-08:00</published><updated>2008-02-21T03:23:58.966-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash CS3'/><title type='text'>Flash CS3 / AS3 + .NET</title><content type='html'>&lt;p&gt;I used to be a Flash Developer. Yes, there used to be such a thing. A Flash Developer was this crazy thing that existed after Macromedia (which was an awesome if often frustrating vendor before it gobbled up by the rationalists at Adobe: which isn't a bad thing, because Macromedia were excellent at screwing you by changing the API, the language etc. at a whim) gave the market Flash MX, which came with a 'real' scripting language in the form of ActionScript 1. &lt;/p&gt;  &lt;p&gt;This was really cool, and I built, with other great developers, some amazing stuff, which by modern standards looks pretty much like Ajax, because the only bridge between our Flash UI and the .NET web services (which were in .NET 1.0 : yes, I'm that old!) was a single XML(); object which we could do Asynch requests, and attach callbacks, and even that was pretty rudimentary. &lt;/p&gt;  &lt;p&gt;So by modern standards, we used the Flash MX component and object model like our own DOM, and used the XML object as our XmlHttpRequest object, and basically wrote an Ajax application, except it ran in the browser. &lt;/p&gt;  &lt;p&gt;I now hear this application is being rewritten in .NET; personally I would rewrite the thing in JavaScript, because about 90% of the code would work, but what you'd need to know is how to map the Flash MX DOM to the XHTML DOM. Not a trivial task, and considering the company's skill base they probably are better off sticking to .NET despite all the IQ/IP that went into that fairly groundbreaking application for its time. &lt;/p&gt;  &lt;p&gt;But Flash moved on, and so did I. Flash recentered on the user experience side of things, which in some ways reorientated the application back to the designer side of things (not that it ever really left); and with AS 2 and AS 3 being VASTLY different to AS1 I wouldn't really say that I am a PRO Flash Developer like I once way. &lt;/p&gt;  &lt;p&gt;BUT I still fire it up from time to time, check out the every widening implementation of ECMAScript that is ActionScript (this stuff looks more and more like some sort of type-safe/inferent Java with each iteration), see how the player (essentially the runtime) has improved, and how the actual Flash IDE (if you can call it that) has also moved on. &lt;/p&gt;  &lt;p&gt;Of course ActionScript now has a ASP.NET-esque life in the land of Flex, which is in my opinion the greatest technology which will never happen in a big way; and this is sad, because Flex is quite simply the best front end you've ever seen in your life for developing web business applications. One problem though, and that is the consumption of Web Services. &lt;/p&gt;  &lt;p&gt;Flex/Flash/AS do do web services, and they do them well on paper. I'm not a Java guy, so I can't really say how well they do Java WS, but for .NET its just not intuitive and simple, and that for me makes the whole point of WS as a way of serializing language independent methods and classes nullified. &lt;/p&gt;  &lt;p&gt;It's simply not easy to build a flash app that consumes and uses .NET web services in a QUICK and DIRTY way. I'm going to see if that has changed, I've got Flash fired up as I write, and I hope to be focussing on Flash a lot more on this blog, as its a vital area of interest, and a real friend to me. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-2534536790040887769?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/2534536790040887769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=2534536790040887769' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/2534536790040887769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/2534536790040887769'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/flash-cs3-as3-net.html' title='Flash CS3 / AS3 + .NET'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-6724898176790743243</id><published>2008-02-19T00:43:00.001-08:00</published><updated>2008-02-19T00:43:19.861-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Controversy'/><title type='text'>RDBMS obsolete: who needs transactions when developers can just use Ruby! (VOMIT)</title><content type='html'>&lt;p&gt;Its always sad to see someone go INSANE, kind of like the inventor of Ingres at UC-Berkley (Mike Stonebraker) who now states that OLTP DBMS systems are obsolete because they fully implement locking, transactions and other nice things that make ACID compliance possible. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.regdeveloper.co.uk/2008/02/18/stonebraker_dbms_outdated/print.html" href="http://www.regdeveloper.co.uk/2008/02/18/stonebraker_dbms_outdated/print.html"&gt;http://www.regdeveloper.co.uk/2008/02/18/stonebraker_dbms_outdated/print.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This kind of thing is totally irresponsible, and a real step back in my opinion. Now that we have computers powerful enough to properly run a full ACID-compliant DBMS on any device, Stonebraker and others want to throw it into the trash heap. &lt;/p&gt;  &lt;p&gt;To deprecate SQL would be to destroy all the amazing progress that has been made in the last 20 years to standardise data access and storage. &lt;/p&gt;  &lt;p&gt;It shocks me to see a DB guy advocate what I can only imagine will be something not dissimilar to a flat file. &amp;quot;geographically dispersed RAM storage&amp;quot;??? Someone at RegDeveloper needs to do an elementary computer science course; RAM is for temporary storage, which is already done when ever a programmer defines a hash table or array. I don't see why the Data Layer should now be torched because its too complete. &lt;/p&gt;  &lt;p&gt;The argument that the way people use modern computers makes the DB paradigm as it stands obsolete is patently ridiculous. The reason people are able to use computers in such a abstract way from the underlying data schema is because of the excellent glue that SQL has proven to be. To suggest that every coder in the world is better placed to define and manage his own data structure is clearly the domain of the academic who hasn't seem the absurdity of flat text files and the like being used some applications in the wild to store data. &lt;/p&gt;  &lt;p&gt;Also I don't see why, considering XML's parallel development to tradition data stores, SQL and its implementations need to be scrap heaped to make any new sort of data methodology win. Let Stonebraker and his fellows try and build a better way of storing data; the man is smart, and I'll be excited to see what he builds. Too bad no one will use it.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-6724898176790743243?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/6724898176790743243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=6724898176790743243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6724898176790743243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6724898176790743243'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/rdbms-obsolete-who-needs-transactions.html' title='RDBMS obsolete: who needs transactions when developers can just use Ruby! (VOMIT)'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-2307767835166785608</id><published>2008-02-17T23:21:00.001-08:00</published><updated>2008-02-17T23:21:35.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming Languages'/><title type='text'>Winning the battle but the war rages on: Static Vs. Dynamic Languages</title><content type='html'>&lt;p&gt;Dynamic languages are getting A LOT of popular press at the moment, in the face of a wave of supposedly superior dynamic languages like Python, Ruby, et al, what is a poor static language guy like me supposed to do. &lt;/p&gt;  &lt;p&gt;It seems everyone has forgotten that C++ is still the king of languages, closely followed by C#/Java (let's stop pretending: it's one language! - lol). &lt;/p&gt;  &lt;p&gt;But the curly bracketed languages are in for a thrashing at the hands of the dynamic hippies, and not only because their languages sound cooler. Somewhere everyone got confused, and seems to think a dynamic language is a more practical one. &lt;/p&gt;  &lt;p&gt;I like dynamic languages when I am prototyping and working quickly; they are quicker, cleaner and more direct. But whoah betide the person who tries to run a project of 10+ developers of middling quality with a dynamic language: get ready for code grid lock. &lt;/p&gt;  &lt;p&gt;Why is this? Dynamic languages are great, if you have a Ph.D. in Comp Sci, and sadly the people who advocate particular patterns, practices and languages tend to, or at least have a computer literacy at that level. But not most developers. Most developers aren't superstars, they are code monkeys, and they WILL get confused in time, have the data types incorrectly implicitly data convert at runtime and the code will break. &lt;/p&gt;  &lt;p&gt;Just this morning I was faced with a classic bug of developer stupidity; the application attached events to the Event Log in Windows, but the guy did a count of the event log for some business conditioning. So when you clear the SYSTEM event log, his code and the application breaks; meaning until SQL server or some other handy app writes to the Application Event Log, his vital process application WONT RUN. Why? Because he was a moron who ASSUMED that that the event log will always have a x &amp;gt; 0 length; ROT! &lt;/p&gt;  &lt;p&gt;That is the sort of banal assumption that the compiler in static languages is able to generally remove; but in the brave new (old) world of dynamic languages will become the sort of bug a manager will have to become familiar with. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-2307767835166785608?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/2307767835166785608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=2307767835166785608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/2307767835166785608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/2307767835166785608'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/winning-battle-but-war-rages-on-static.html' title='Winning the battle but the war rages on: Static Vs. Dynamic Languages'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-5500228031940959430</id><published>2008-02-07T03:06:00.001-08:00</published><updated>2008-02-07T03:13:27.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Live'/><title type='text'>Windows Live Writer - Killer for the first time</title><content type='html'>&lt;p&gt;I run several blogs, some for myself on my own domain, but the blog which I blog most too is my companies internal developer blog which I setup internally affectionately known as The Cooler. &lt;/p&gt;  &lt;p&gt;I blog to Word Press and blogger mainly, but have tried out a couple of different spaces. &lt;/p&gt;  &lt;p&gt;Now with so many blogs that I write too, it makes sense to use a Blog Writing package. I haven't tried out others, but Microsoft Live Writer, from the Live boys over at MS is simply kick ass.... its the perfect example of a web enabled Windows application. &lt;/p&gt;  &lt;p&gt;It's extensible, coming with its own SDK for the development of Insert plug ins, all of which are super functional and make the creation of a good blog post awesome. &lt;/p&gt;  &lt;p&gt;What for me is great is the automatic style sheeting, so you have a fairly true WYSIWYG process, far better than Office 2007's Word blogging tool : I hope Live Writer's features will eventually be embedded in Word, but I understand the software stacks for these two applications are truly different. &lt;/p&gt;  &lt;p&gt;What is so awesome, is that despite punting Windows Live Spaces, Live Writer interacts so well with so many different blog platform providers. This is the kind of innovation I love about MS but which so rarely makes its way into their consumer products. &lt;/p&gt;  &lt;p&gt;Anyone who has used Visual Studio in the last couple of years knows all about the extensible and web enabled nature of MS's application direction, but to see this kind of functionality in a free blog writer is truly excellent. &lt;/p&gt;  &lt;p&gt;I find the software best of breed and&amp;#160; a joy to work with, especially when it comes to uploading, managing video and images on your site. The ability to to work effectively with multimedia in a blog writer with all the power of the native Windows OS is the first real sign that MS really 'gets it' when it comes to rich Internet enabled applications for the desktop. &lt;/p&gt;  &lt;p&gt;The application is super fast, and a lot could be learned from it. It's so good it makes me feel a little open source evangelical: I'd kill to see the source of this great little application, but then so would Google and other Microsoft competitors. &lt;/p&gt;  &lt;p&gt;It's such an exciting time for Internet enabled desktop applications, and with products like Windows Live Writer coming from Microsoft, it would seem MS is fully on board with this wave. &lt;/p&gt;  &lt;p&gt;One of the awesome plug-ins allows you to quickly add a map, such as the one below of the South African parliament:&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:84E294D0-71C9-4bd0-A0FE-95764E0368D9:6007830c-4001-4da3-b544-ccb695a2c060" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;cp=-33.92718~18.41913&amp;amp;lvl=17&amp;amp;style=a&amp;amp;sp=aN.-33.92662_18.41872_Parliament_where%2520the%2520s**t%2520hits%2520the%2520fan%2520on%2520friday&amp;amp;mkt=en-US&amp;amp;FORM=LLWR" id="map-a453c82c-a2ba-4be1-b193-7a8b25daab9f" alt="Click to view this map on Live.com" title="Click to view this map on Live.com"&gt;&lt;img src="http://lh6.google.com/alagrange/R6rn1cGaXzI/AAAAAAAAACA/yFNALN09cxc/map-0cafdb904a8f?imgmax=800" width="320" height="240" alt="Map image"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-5500228031940959430?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/5500228031940959430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=5500228031940959430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/5500228031940959430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/5500228031940959430'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/windows-live-writer-killer-for-first.html' title='Windows Live Writer - Killer for the first time'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-1814009959309163089</id><published>2008-02-06T13:06:00.001-08:00</published><updated>2008-02-06T13:06:50.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Google / Yahoo / Microsoft : The Square Off</title><content type='html'>&lt;p&gt;So... Microsoft offers billions for Yahoo!, and Eric Schmidt promptly offers Yahoo! help (even financial) to help them stave off their sale to Microsoft. &lt;/p&gt;  &lt;p&gt;Why? Google dominates search and online advertising, and the merger would see tremendous difficulties reconciling the cultures and technologies of the two entities. &lt;/p&gt;  &lt;p&gt;Some say Google just wants to see the price go higher. This may be true, but I think there is something deeper in this as well, and that is the culture clash between Redmond and Silicon Valley. &lt;/p&gt;  &lt;p&gt;By buying Yahoo!, MS would be buying a major slice of the Valley, and therefore literally turf in the battle for skills, talent and exposure down South. I wouldn't be surprised to see Yahoo! becoming de facto MS South for a while, as the company figures out how to combine the two companies. &lt;/p&gt;  &lt;p&gt;Google has more to lose than the beating their stock is receiving. Google could lose the battle for the services orientated world that is coming. They won't to control the cloud, but as search matures and becomes a less disruptive class of functionality, and as others copy their other businesses, Google will struggle to keep the financials they have managed to deliver to Wall Street thus far. &lt;/p&gt;  &lt;p&gt;MS have proven themselves masters at perfecting what others have done before them. Will advertising and search be no different to Server OSs, GUIs, etc? I wonder, and deep down inside... I hope so! &lt;/p&gt;  &lt;p&gt;Because a big Google, is just as bad as a big Microsoft!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-1814009959309163089?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/1814009959309163089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=1814009959309163089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1814009959309163089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1814009959309163089'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/02/google-yahoo-microsoft-square-off.html' title='Google / Yahoo / Microsoft : The Square Off'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-6885032139496758620</id><published>2008-01-28T00:04:00.001-08:00</published><updated>2008-01-28T00:04:12.632-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>JavaScript : Always the bride's maid, and never the bride</title><content type='html'>&lt;p&gt;I've been working with JavaScript since 1998, when I first started 'developing' for the web (if you can call hand coding HTML pages developing...). &lt;/p&gt;  &lt;p&gt;Back when the DOM was non-standard, and most of what we now call Ajax and Web 2.0 was known by a far less sexy moniker, namely DHTML (huh?)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.cio.com/article/print/175950" target="_blank"&gt;CIO Magazine&lt;/a&gt; looked at JavaScript recently, and it got me to thinking about the little language that clearly WASN'T. &lt;/p&gt;  &lt;p&gt;JS is great, JS breaks, JS is hard to debug. And yet when addressing the browser its the best thing we've got. I once had a boss of VERY german origin, getting VERY upset with me because I had the audacity to use VBScript to write some client side code back in 2003. &lt;/p&gt;  &lt;p&gt;This despite the fact that all the people using the application had IE, but that is a more philosophical question; the fact is that JS is your best bet to have your code run on the MAX of browsers; however judging by the number of browser-checking code branches in the average JS application, its certainly not a good thing. &lt;/p&gt;  &lt;p&gt;I like the basis of JS, namely EcmaScript, and have achieved great things in Flash and other applications which implement this syntax to drive their scripting. It plays nice, makes a lot of sense (once you understand prototyping) and is easy for developers to have a common ground, whether they are C++, C# or Java programmers. &lt;/p&gt;  &lt;p&gt;The only people all at see in JS are Visual Basic programmers, and quite frankly... they should know better than to try and get their hands dirty in the land of curly brackets. (HA!) : seriously though, I think VB is an unfairly killed language, and I'll be going into that soon enough. (Try teach someone programming with a Basic language, such as VBScript, and you realise where the appeal once lay with this family of languages : its a BREEZE)&lt;/p&gt;  &lt;p&gt;JavaScript's greatest weakness isn't a weakness of the language itself, but rather the complete lack of tools and debuggers for the scripting language. For such an established languaged, how can it possibly be so hard to debug? &lt;/p&gt;  &lt;p&gt;There are several offerings online, from Eclipse plug-ins to stand alone IDEs, but more often than not, most developers will admit that their JS development tends to involve a text-editor (maybe DW), a bag of alert()'s and a prayer. &lt;/p&gt;  &lt;p&gt;This isn't an acceptable situation, and strides made in VS 2008 go a long way to fix such things; but I can't help but feeling that JS will only really take flight when it is completely divorced from the user. ASP.NET Ajax goes a long way in this direction, allowing me to code my app (client side and all...) in C# and see nice efficient JS be pumped out of my server, and I never have to interact with it. That for me is what an programming language should be. &lt;/p&gt;  &lt;p&gt;Maybe JS's day will come. But not yet.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-6885032139496758620?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/6885032139496758620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=6885032139496758620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6885032139496758620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6885032139496758620'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/javascript-always-bride-maid-and-never.html' title='JavaScript : Always the bride&amp;#39;s maid, and never the bride'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-3429753255053972843</id><published>2008-01-24T01:11:00.000-08:00</published><updated>2008-01-24T01:23:05.864-08:00</updated><title type='text'>Last.FM : Finally social music for the masses</title><content type='html'>When I'm in the UK, I've used the amazing Pandora internet radio service. This service was suspended in all locations outside the U.S. a while ago, but the UK had been a bit of a grey area. Since the 15th of Jan, it has stopped in the UK. &lt;br /&gt;&lt;br /&gt;Now, staying in South Africa has been even worse, with virtually none of the great things about Pandora available on any service. &lt;br /&gt;&lt;br /&gt;BUT NO LONGER! Last.fm has finally gone global, having signed licensing agreements with all the major record labels, just go to: &lt;br /&gt;&lt;br /&gt;http://www.last.fm&lt;br /&gt;&lt;br /&gt;Last.fm works on the same principle as Pandora: type the name of a genre or artist you enjoy, and let the software jukebox play you a selection; Last.fm also listens in to your iTunes and/or WinAmp etc playlists as they are playing, to see what else you might like; they call it scobbling, but it sounds like spyware to me. I've installed it, I'll write soon, how that goes... &lt;br /&gt;&lt;br /&gt;Last.fm is accessible via the browser or their desktop app. &lt;br /&gt;&lt;br /&gt;I recommend to anyone (everyone) who loves music. Awesome... absolutely fantastic. and its legal. Good bye thousands of MP3's on your PC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-3429753255053972843?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/3429753255053972843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=3429753255053972843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/3429753255053972843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/3429753255053972843'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/lastfm-finally-social-music-for-masses.html' title='Last.FM : Finally social music for the masses'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-1412362008020170272</id><published>2008-01-22T07:51:00.000-08:00</published><updated>2008-01-22T07:58:52.205-08:00</updated><title type='text'>Tactile Music Sequencer</title><content type='html'>&lt;a href="http://www.engadget.com/2008/01/16/beatbearing-project-weds-ball-bearings-elegance-to-make-jams/"&gt;I was loitering around Engadget today&lt;/a&gt;, and found a truly awesome music sequencer, and proof that an appliance with a really clever tactile interface can still make an impact on the industry.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;object height="373" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wreP8FMupyM&amp;amp;rel=1&amp;amp;border=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/wreP8FMupyM&amp;rel=1&amp;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;I doubt anyone is going to be making any major albumns on this thing, but seems like a pretty cool desk toy for the raver close to your heart. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-1412362008020170272?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/1412362008020170272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=1412362008020170272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1412362008020170272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/1412362008020170272'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/tactile-music-sequencer.html' title='Tactile Music Sequencer'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-6843727815764235071</id><published>2008-01-22T06:28:00.000-08:00</published><updated>2008-01-22T06:36:28.876-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='date()'/><category scheme='http://www.blogger.com/atom/ns#' term='decisions'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='now()'/><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='dreamweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='recoding'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='asp'/><title type='text'>To recode or not to recode</title><content type='html'>When an application is in daily use, especially a web application, for many years (7+), its in all &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;likelihood&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Written in a scripting language (ASP, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt;, CF, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;et&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;al&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Been worked on by MANY different developers&lt;/li&gt;&lt;li&gt;Has fallen pray of many server and client side "fixes"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The question then eventually becomes when and/or if you should recode the application or parts of it. Some might jump straight to "recode the whole thing in .net/flex/j2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ee&lt;/span&gt;/ruby" decision, while others might be a little more circumspect, and decide instead to focus on simply recoding with better practices the pages in the language they were written in the first place. &lt;/p&gt;&lt;p&gt;It's a very difficult decision, and I don't know if I have a strong opinion either way, I have a tendency to look at the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;code base&lt;/span&gt; and decide on a case by case basis, especially if the code appears to be stable and operating normally.&lt;/p&gt;&lt;p&gt;The problem is maintainability in the long term, but I don't know if the potential new bugs included in a recode (or worse: a rewrite) make it worthwhile.&lt;/p&gt;&lt;p&gt;It depends on the system. If you have a bad email post form, recode it for sure. If you have a vast client management platform hit by 100 000 users a day... maybe reconsider bringing out your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Dreamweaver&lt;/span&gt; and going '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;bos&lt;/span&gt;' on the code base. &lt;/p&gt;&lt;p&gt;Over the coming months I'm going to be doing a partial piece meal code review and instance recode of a large ASP application, so expect some stories of pitfalls around this. &lt;/p&gt;&lt;p&gt;I'll be kicking this off &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;tomorrow&lt;/span&gt; by looking at ASP/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;VBScript's&lt;/span&gt; Date() and Now() functions, and why they are ABSOLUTELY not what they seem, and should NEVER be used for anyone expecting any &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;certainty&lt;/span&gt; around the date or the time. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-6843727815764235071?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/6843727815764235071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=6843727815764235071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6843727815764235071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6843727815764235071'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/to-recode-or-not-to-recode.html' title='To recode or not to recode'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-7205185916616451263</id><published>2008-01-21T02:02:00.000-08:00</published><updated>2008-01-21T02:26:45.089-08:00</updated><title type='text'>TFS to VSS port hell</title><content type='html'>Source control is a neccesary evil. Whether it be SVN, Tortoise, TFS or VSS (which isn't as bad as you think : I hear the audience wail!)&lt;br /&gt;&lt;br /&gt;Our company was using TFS, which is an awesome platform, but fairly pricey considering; we still keep our gold press code in the TFS, but for quick and dirty projects the VSS is a perfect tool.&lt;br /&gt;&lt;br /&gt;When source code goes awry its never good; and on a personal project, I had some source in my personal TFS at home (one single SQL backup a night for all my personal source), of which I was using the Trial Edition, which I then ported to my VSS on my home server.&lt;br /&gt;&lt;br /&gt;But I missed a file. Not nice...&lt;br /&gt;&lt;br /&gt;The TFS trial expired. And I "lost" the file...&lt;br /&gt;This is where it got interesting.&lt;br /&gt;&lt;br /&gt;I tried queries like this on db (TFSVersionControl):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;select * from tbl_identity&lt;br /&gt;select * from tbl_workspace&lt;br /&gt;select * from tbl_PendingChange&lt;br /&gt;select * from tbl_File&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;select tbl.name from syscolumns c, sysobjects tbl&lt;br /&gt;where c.name = 'FileID' and tbl.id = c.id&lt;br /&gt;&lt;br /&gt;select * from tbl_NameSpace&lt;br /&gt;select * from tbl_File&lt;br /&gt;select * from tbl_Content&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To no avail...&lt;br /&gt;In the end, I gave my old TFS another 30 days of life, by using &lt;a href="http://blogs.msdn.com/bharry/archive/2008/01/15/checking-your-tfs-version-and-extending-trials.aspx"&gt;bharry's TFS trial extender&lt;/a&gt; and retrieving all my files.&lt;br /&gt;&lt;br /&gt;Don't even try and brute the MD5 encryption on the hash you need to unlock the content of the file; its NEVER going to happen. Some people suggest restoring your old TFSVersionControl over a new install, but I'm sure that would mean harshing the OS to clear it of the Trial checking crap, or an install on a new machine, neither a good option; so bharry's stuff worked a charm.&lt;br /&gt;&lt;br /&gt;But there is an important lesson here...&lt;br /&gt;when migrating from one source control to another, make ABSOLUTELY sure to keep a gold copy and hard copy of your source code seperate from your source control; you never know if your source control might get locked up and become inaccessible.&lt;br /&gt;&lt;br /&gt;And that's not a happy day, anyway you look at it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-7205185916616451263?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/7205185916616451263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=7205185916616451263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/7205185916616451263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/7205185916616451263'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/tfs-to-vss-port-hell.html' title='TFS to VSS port hell'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-6787079444649161894</id><published>2008-01-20T03:14:00.000-08:00</published><updated>2008-01-20T03:28:59.570-08:00</updated><title type='text'>Cast your .Net wide : The opening up the framework source</title><content type='html'>I work with the &lt;a href="http://en.wikipedia.org/wiki/.NET_Framework"&gt;.NET framework&lt;/a&gt; to some degree every day of my life (and if you surf the web every day, then in all likelyhood so do you!)&lt;br /&gt;&lt;br /&gt;Scott Guthrie and the rest of the Microsofties have decided to &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;'open' up the source of the .NET &lt;/a&gt;framework so developers can debug based on the source.&lt;br /&gt;&lt;br /&gt;I don't think &lt;a href="http://en.wikipedia.org/wiki/Richard_Stallman"&gt;RMS&lt;/a&gt; or any of the open source Nazis are going to be building statues to Guthrie and his team outside the Free Software foundation headquarters over this, but it makes an interesting counter point to the whole OSS view point of the world.&lt;br /&gt;&lt;br /&gt;The .NET framework is an amazing platform any way you cut it; love it or hate it, if you need to pick a random developer off the street and have him or her deliver your organisation cogent and readable code in large scale corporate product, .NET is where its at.&lt;br /&gt;&lt;br /&gt;By opening up the Framework, everyone can get a better understanding of how the Framework really drives, and also enabled developers to better the leverage their applications against the Framework. For those who just want to drag and drop controls and tie them up on the backend this release will mean little, but for those of us trying to squeeze every drop out of our applications this is a VERY welcome submission to the community of .NET houses out there.&lt;br /&gt;&lt;br /&gt;Is this the beginning of a broad opening up of Microsoft technologies? I doubt it, and this is a good thing. When ever I look at Microsoft I see a bewilderingly broad range of product and service areas; do I really want to bombarded with the Zune firmware? No, I don't. Sure some people might like to see it, but this is a good example of something niche which would waste Microsoft's resources in supporting.&lt;br /&gt;&lt;br /&gt;The framework is central to the development of software on Microsoft's platform, and therefore a greater understanding of it should allow for us all to write better code, and therefore deliver better applications.&lt;br /&gt;&lt;br /&gt;I'm also interested to see the coding and commenting practices present in the .NET framework. In the same way Hungarian notation influenced coders in the late 80s and early 90s, I hope to see a broad sweeping adoption of GOOD practices where present in the .NET code base.&lt;br /&gt;&lt;br /&gt;I've already found a good example, namely the /* */ commenting of hard booleans into the actual function calls from within a class; I've never thought of this, and it really makes sense.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;callFunction(/* Is the Connection open?*/ false, /*return a bool?*/ true);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;which makes more sense than: &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;callFunction(false,true);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;Overall, I am excited to take a look at the source, and get a better understanding of ADO.NET and ASP.NET;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-6787079444649161894?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/6787079444649161894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=6787079444649161894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6787079444649161894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6787079444649161894'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/cast-your-net-wide-opening-up-framework.html' title='Cast your .Net wide : The opening up the framework source'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4120979386707737496.post-6360024917305482539</id><published>2008-01-19T16:08:00.000-08:00</published><updated>2008-01-19T16:11:33.415-08:00</updated><title type='text'>Enter the inner nerd</title><content type='html'>I work in IT.&lt;br /&gt;So deep down inside... I must be a nerd and a bit of a tech head.&lt;br /&gt;&lt;br /&gt;To keep myself from talking about Tech on my &lt;a href="http://www.andrewlagrange.com/"&gt;main blog &lt;/a&gt;I've created this site to deal with tech issues.&lt;br /&gt;&lt;br /&gt;I work full time as CTO for a financial services company, and supervise a team of top notch developers and support personel, so on this blog I'm going to be dealing with some general technical issues, along with some more hairy tech issues which we end up dealing with on a day to day basis.&lt;br /&gt;&lt;br /&gt;Let the fan-boy-dom begin... not really... but you get the picture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/4120979386707737496-6360024917305482539?l=www.andrewlagrange.com%2Ftech'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/6360024917305482539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4120979386707737496&amp;postID=6360024917305482539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6360024917305482539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4120979386707737496/posts/default/6360024917305482539'/><link rel='alternate' type='text/html' href='http://www.andrewlagrange.com/tech/2008/01/enter-inner-nerd.html' title='Enter the inner nerd'/><author><name>Andrew la Grange</name><uri>http://www.blogger.com/profile/05397468401689109894</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>