Wednesday, March 16, 2005

Busy day of seminars

I spent yesterday taking part in Microsoft Canada's TechNet Winter Tour 2005, which was here in Calgary. Pretty interesting stuff, but it was the seminar was about MS server family and security issues related to this. Being a developer, most of the topics covered were not related to the work that I do, although I did learn more about MS Virtual Server. Plus, I got a t-shirt & some demo software... Then, last night I again went to the CAMUG (Calgary Agile Methods User Group) meeting where the discussion was about how all the various stages in development, from design to testing, compliment each other when using agile methods for software development. As a bonus, on of the speakers was from ThoughtWorks, and as I have an interview with the company next week, it is nice to glean a little bit more information about the culture of the company.

The other big thing that I've done in the past couple of weeks was to revamp my personal website, which I had not done any serious work on for more than a year. I used a template from Dreamweaver for it, being too lazy to really want to think out a whole new layout scheme in CSS for it, but I heavily modified both the webpage and the underlying CSS file. Also, I managed to get it put together well enough to validate for the W3C XHTML 1.0 standardization GIF, having to modify some of Dreamweaver's pre-installed assumptions. Personally, I believe that all browsers should conform to the W3C standards - the internet needs a strong common base for webpages to be universally accessible and the responsibility of this universality should not rest on the shoulders of the developers to micro-manage their code for different browsers.

Nevertheless, after confirming that my personal website was ok, I went to the Iconic Solutions site and checked there. I found that I had to make some changes to the rounded corners control that I had found from the 4 Guys From Rolla, who did not include "Alt" variable that is required in XHTML 1.0. Almost got the whole site, but the I have yet to figure out how to get the Calgary weather flash applet that I found on the City of Calgary's website to be coded correctly in XHTML. Oh well, something to work on...

Thursday, February 17, 2005

HTML parsing

While working on my new personal project today, I came across an unexpected problem - how to parse an html file using C#. My business partner Shawn had previously done something similar using VB.Net, but this was my first stab at it. Luckily, there are a number of people who have already dove into this area, so it wasn't hard to find some answers. My first find was the best - a guy named Jeff Heaton had already created a number of classes in C# to address this problem and put them out under Limited GNU Public License(LGPL). Although these were easy to implement and worked without any difficulties, I quickly ran into a limitation - he had designed his classes to be used as a spider and was only interested at the attributes of the html tags (like 'href' attribute in the 'a' tag). Unfortunately, I need the descriptive contents of the tag, i.e. the words between '' and ''. My first attempts to modify his code have left me getting the urls and descriptions of half of the links - it skips every second one... So tomorrow will be trying to re-engineer the whole thing to get what I need.

Well, on my continuing search for employment as a developer, I am noticing some sights using Macromedia's Flex technology. First, there is my past client Launch Vision and a site they have developed, Stem Cell Therapeutics. Nice job guys - both of them look great! Also, I'm pretty sure 5By5 Software is using it at least partially for their product. Looks like it is definetly a growing technology, at least in Calgary...

By the way, I have found one of the most annoying things I've ever seen in Windows tonight - I accidentally held down the shift key for 8 seconds (my thoughts were drifting as I was listening to some tunes) and this dialog popped up! I pressed cancel, but it was too late - the "Filter Keys" option had been engaged through the Windows Accessibility option. The most immediate effect was not being able to point my mouse to a new point on a page and position the Ibar there - instead it would highlight from the first point to the new point! I was trying to code and this was infuriating! Well, after checking Google out, I found a page that allowed me to get by it (I unplugged my keyboard and plugged it back in), but now this stupid little stop watch is in my display icons in the taskbar and I can't get rid of it! I've hidden it and hopefully when I reboot the computer it will go away... But who thought of this?!

Tuesday, February 01, 2005

Lean Software

Tonight I attended Mary Poppendieck's talk about Lean Software development that the Calgary Agile Methods User Group (CMAUG) was putting on. It was interesting - Lean Software Development essentially boils down to streamlining the whole process so that software is made when requested by a client and is developed with the client in mind. It takes the larger view of the development cycle where Agile development is a part of the process, rather than being focused purely on the development.

I was wanting to talk in depth about it but my ISP was down for a while and so my thought's have gotten mixed up unfortunately. Regardless, one of the things she talked about was Just In Time development. In a manufacturing environment, a company wants to have as little inventory of finished product as possible on hand - better to create as needed (as Dell has much to its success). From a development perspective, Mary argues that inventory in software is any piece of software that is exists in a semi-finished state (i.e. code that addresses a goal and is tested) that is not making money. I realized that this was essentially what the project that I recently finished was - and it was a failed project.

Another concept was that of releasing software as soon as it addressed a basic goal. Once this has been done, features can be added in any order. From this perspective, the timeline between iterations would be very small. Also, Mary believed that the organization of human resources in software projects was in itself wasteful, wanting teams to stay together through different projects, allowing for greater cohesion and specialization.

My thought on this goes a step further - a team as a whole should follow the project through all cycles, from design to implementation, to testing, and finally deployment. While I recognize that there is the need for some specialization and people have different strengths and weaknesses, my thoughts are that as a worker in IT, I already have to know the basics of everything. I'm a developer, and not only that, a contractor who handles custom projects. So, I have to be able to take a project through all the cycles. Also, as everybody in the industry knows, it is a constant learning process - new technologies and new methodologies. So my suggestion is this - have the team work together throughout the various stages, but the person(s) who specialize in the area lead for that section with the project manager to keep the project focused on the needs of the client. So the architect would lead for the design of application, the developers would code the design with the architect looking on, and all taking part in testing with the QA people designing the tests for the application, with the others implementing the tests. Keep the team in a smallish area (but not cramped - just not spread out through a building) and allow them to work on very short cycles.

Just some thoughts...

Monday, January 24, 2005

Working with Atom

Well today my big feat was grabbing the Atom feed that this page generates and writing it to my personal page on the corporate website. I've created redundancy! The process was actually incredibly simple - I just grabbed a pre-existing ASP.Net application for parsing Atom from SourceForge and just set the program to grab the feed that Blogger sends out. The actual code is nothing, which is really sweet.

Now, if I can get the company hosting my site to allow me to change the permissions on my folders so that I can have the rounded corners that are supposed to be there...

Monday, January 17, 2005

The struggle for faster XML

Interesting - I just finished reading a CNet article on trying to make XML faster. Apparently there are a number of projects trying to make XML formatted in binary, so as to compress the information and make it faster to transmit. Of course the fear is that the differing projects and the differing goals - like mobile services vs. commerce transactions - would lead to diverging strains of XML. Then there is the counter argument - make networks transmit faster...

My thoughts: I think that I prefer the creation of compressed streams. The reason I feel is that we should as developers always be trying to be as efficient as possible with limited resources. This is similar to how software companies in the past decade have relied on computer hardware to become faster with greater amounts of memory while being lazy with how solutions are implemented. As for creating divergent streams of XML, that may happen, but as long as they are derived from a base and can be converted to each other I don't think that is a problem. However, standards will need to be enforced, either by the W3 Org or another organization (but preferably out of a corporation's or a group of corporations' hands...)

Thursday, January 13, 2005

Another development tool to learn

My colleagues here are beginning to play around with Macromedia's Flex platform - it is sweet! Really nice, smooth controls with an elegant looking GUI. Loaded with lots neat tricks that would require a lot of coding in .Net framework and Javascript requires very little coding in the Java based environment. Another nice thing is a compact, fully explainable API (anybody who has developed with .Net knows what I'm talking about - how many thousands of pages are on MSDN?) I think that when I get some free time I'm going to download the demo version and start playing with it - of course to be able to afford a full version of it will be a ways in the distance because of the costs.

But in the meantime, back to Java and re-learning XML and getting used to the Flex environment... It will be fun get some knowledge and experience on a tool before it becomes too common - might even gain me an advantage in the marketplace to get some contracts. Of course, Macromedia's current charge for hosting Flex sites are going to keep all but the biggest companies away for a while, but until then, a small window of advantage.

Saturday, January 08, 2005

Moving forward on the company

Well, it is back to marketing the company I co-own. So I've started to develop the corporate website for Iconic Solutions that we've been putting off for so long. While pure web design is not my forté, it is nice to be something that is purely for myself without having to worry about other considerations (other that respecting my business partner's sense of esthetics). Got to do a lot of other things to get a contract, but I figure that I had better get the marketing infrastructure in place first.

Well back to it...

Wednesday, December 01, 2004

Is there a Flickr?

I learned about Flickr while reading the Globe and Mail online tonight. Apparently Flickr is a web service that allows users to post, organize and share photos by making storing the digital images in a database and using the service to move the information back and forth quickly. This is supposedly being hailed by the blogger community as the next step in the internet, but I remain unconvinced. This is partly because when I tried to go to Flickr the address wasn't found. However, Google does have it listed at that address. So where is Flickr? Anyways, definitely something to mull over - there have got to be a million applications/processes that can be redone to take advantage of this technology now that it is maturing... need to think...

On a seperate topic, I was attempting to find a new icon for MSN Messenger the other night on deviantART, specifically trying to find pictures depicting the heoric socialist workers (long story, but I find this particular style of art interesting, in part because it is so overdone, but also the just the how the various elements are shown). I can find many pictures of Che Guevera, the Hammer & Sickle, and other socialist designs (or conversly, fascist pictures, anti & pro-American, etc.) on the website, but almost none of the type I was looking for. I was rather surprised that with such a plethora of socialist icons, that the heoric socialist worker pictures were not to be found. An oddity on the net where almost anything can be found!

Tuesday, November 09, 2004

From Agile methods to empowerment

After attending an evening presentation of the Calgary Agile Users Group at the University of Calgary, I was again amazed by the statistics concerning the number of project failures in software development.

The evening's presentation was originally scheduled for "Architecture" in development terms, but it was more to do with how to increase the probability of project success using agile methods. While most of the developers there were C++ or Java developers, I could picture how the Launch Vision projects could be better utilized to provide better development. One of the points that struck me was the need we have for more testing, particularly acceptance testing. While we are under time constraints and we are always learning new or more efficient methods of programming, we forget the need for testing in the effort to get the software that we are creating into the testing environment.

Another point I thought was important was the speaker's idea that more craftsmanship is needed in software development. It is probably true that the majority of developers will take the easiest path to get a product working and out on time, regardless of whether or not it is the best method. The problem, I think, is that we developer's do not see ourselves as professionals - maybe misfits, rebels or whatever cliche you want, but in fact the majority of coders work in professional or at least semi-professional environments where our products are created for specific needs and usually for specific clients. I've thought for a while that people in the IT industry - specifically developers, architects, testers, projects managers, etc. - should be in a professional society, similar to those for professional engineers. Just a thought, but I think it is an important one...

Friday, October 08, 2004

Another busy week ends

So, this afternoon was taken up by figuring out how to get an error page working on the application - not that the page itself was difficult, but trying to get the application to fire it back the error message and stack trace back to the client side was tricky. I got it working through using a cookie in the global config file, using the error messages as string values that the cookie held. Then I set a one minute limit before the cookie would expire. On the error page (set in the web.config file) the cookie was picked up, the strings split out of the cookie, and then set into a nicely formatted page.

I realized today that I'm going to have to give a talk to the interns about holding values in the session - it is really useful, although some are having trouble grasping the concept of it. Need to better explain it, I think.

Tuesday, October 05, 2004

A new competition

The Patent Insider team started a stock buying competition on Virtual Stock Exchange today, to pit our investor instincts against each other, as well as test the application that we're working on. The competition would seem strange to an outsider as most of the action will be on Tuesdays only (when the patents come out) although the selling could happen at any time, depending on what each of us feels is the optimum selling point for a particular stock that we hold.

Useful stock symbol: Biotechnologies Index (AMEX) on Yahoo Financial - ^BTK