Archive for March, 2006
CODE Engine and future of web application development at Mainfram Innovations
Since releasing the latest version of CODE engine I sat down and decided to analyze a roadmap for the CODE engine development. As with anything I do, I always check if there is anything out there already (preferably open source) that does something similar. Before I actually commit to developing anything new, especially if it is moderately complex, I prefer to extend something that is out there and return it to the community. One of the first products I decided to check out was Ruby on Rails and discovered that its pretty much exactly where I wanted to take the CODE engine. So now the plan is to use Ruby on Rails to develop the next generation of web applications Mainfram Innovations is involved in. I thought one of the main issues will be hosting for the new applications, but it looks like most hosting companies already support Ruby or have no problem installing it free of charge. The CODE engine has many utility classes that I definitely need to rewrite in Ruby. The advantage of Ruby on Rails is that I won’t have to worry about a XHTML parser. The challenge for me is going to be integration between server side components and JavaScript (basically AJAX wikipedia). I’ve seen that Ruby on Rails has an ability to submit XHTML forms asynchronously, but I am looking for something that can work without forms. What I basically want is for Ruby on Rails to generate XML that represents the data I am trying to display or query. Javascript will call for the data when necessary and process it for display. What this means is that I want well defined objects in JavaScript, like controls (tab, grid, etc) and objects that make the retrieval of data easy. The main goals of this approach are:
- Ease of use. Make writing AJAX style web applications easy and intuitive.
- Provide query API in JavaScript where data can be retrieved from the server easily and asynchronously.
- Provide a rich set of Javascript objects to display data like grids, tabs, trees, etc…
- Beautiful looking applications, provide ability to style the application in any way programmer wants.
- Shift as much of the processing to Javascript to free up server resources.
- Easy way for applications to communicate, even if the applications are hosted on different servers.
- Single point of entry user authentication, even taking into account the previous point.
A lot of this I am planning to release as open source, to what extent I am not sure. Two websites that are getting this framework as soon as it is finished are PixiBoo.com and Boatsglobe.com.
No commentsCODE Engine 1.3.15 release
CODE Engine HomepageCODE Engine recent change history:
- CODE 1.3.15
- - Added strLength method to cstring data type.
- CODE 1.3.14
- - Added cdate type. – Changed the web debug output to be in a <DIV> tag and scrollable. – Fixed the issue where the configured “base href” was not set correctly.
- CODE 1.3.13
- - Fixed the bug where the the debug would not output to more then one specified debug target. – Added the default_template configuration value. The code interpreter will not use this configuration value as the default template, if no template was specified for the interpreter.
- CODE 1.3.12
- - Added the debug_file_output configuration value. The code interpreter will now output debug to this specified file if the debug_output_targets value contains FILE. If left blank the default location is ./code.log.
- CODE 1.3.11
- - Added urlValue method to the cstring type. The method URL encodes the value of the cstring object. – Added bhtmlValue method to the cstring type. The method is the same as htmlValue except that it allows for paragraph formatting. The entire output is wrapped in <P></P> and each newline is replaced with </P><P>
- CODE 1.3.10
- - Added format string to value, getValue and htmlValue public methods on the cstring and cnumber types. If the format string is specified it is passed to the sprintf perl function and the result is returned.
- CODE 1.3.9
- - Added CODEELSE directive. – Changed the interpreter to fix the problem with older versions of Perl not parsing the templates correctly. The problem was found with truncating of directive names when parsing, which caused an illegal tag error to be raised.
- CODE 1.3.8
- - Added CODEIMPORT directive. – Changed the structure of the CODE perl library structure, to be more organised.
What do I actually do all day, well here it is
Since the beginning of this year I have been working pretty hard on get my business Mainfram Innovations off the ground.Its been extremely busy time for me as I am still contracting full time to a consulting firm. I am a technical lead for the Western Australian Curriculum Council’s Student Information Records System. The system keeps records for every student in Western Australia. On top of Mainfram Innovations being a consulting company I am also working on several ventures with various people. These ventures allow me to test my software and are an investment. Granted some of these ventures may never actually yield any financial benefits, but one has to be in it to win it.Being a young entrepreneur today is very challenging, maybe less then it use to be, but managing time and funds is quite demanding. My advice to anyone going down this road is to plan, plan, plan and save, save, save.The best approach is to have some funds saved up and use it to give the business a good start run. I find it hard to find new clients, the main reason being I do not have time to go look for them. My plan is to take is slowly, although that is easier said then done. Currently i have four clients and two ventures, plus my full time contracting. I hope that my next contract will be for three or four days a week and that would be enough to keep the family funds running and allow me to devote more quality time to Mainfram Innovations.Balance, now there a word I’ve been looking for… one needs balance.
No commentsNext version of Microsoft Windows Vista
The release date for the new version of Microsoft Windows, called Windows Vista has been delayed until January 2007. Longhorn (Previous codename for the new Microsoft Windows version) is long dead. Longhorn has been scrapped because the codebase was based on Windows XP and became extremely complicated. Microsoft software engineers decided to adopt a more modular approach and scrapped Longhorn and started Vista.The features like WinFS (new file system for Windows) will not ship with Vista. What I am most worried about is that most of Vista’s code will not be written using Microsoft’s .NET Framework. What is even more concerning is that I can’t find online any explanation as to why not. Microsoft is not going to write their flagship product (Windows Operating System) using their flagship development platform. I mean if they have a reason not to have confidence in the .NET Framework, why should I choose .NET as a platform for developing my own applications.The truth is, in my experience, .NET Framework is all about the web. I mean just look at the machine.config (main .NET configuration file), most of the entries are IIS/Web related. To be fair, writing windows based applications using .NET Framework is easy, probably the best platform for developing Windows applications. But I don’t think .NET framework can cut the mustard when it comes to writing mission critical operating system type programs. If you read this blog you will see all the memory and performance issues I’ve had with .NET framework.But I think that at the end of the day, Microsoft realize the web is the future. What that means is that if everyone has a browser compatible with new features (AJAX, etc), what does it matter what operating system is being used on the personal computer, applications will be running on the web.I think this new wave of web based applications that work more like real applications will allow people to use other operating systems other the Microsoft and not be ’stuck’ with Microsoft Windows because it runs their applications.
No commentsGreat way to make money
Step 1. Get your own country.Step 2. Build a road joining two parallel roads. One of the parallel roads has a speed limit of 100 km/h the other 80 km/h.Step 3. The joining road is a dual carriage way no more than 800 meters long.Step 4. Place this situation in the middle of nowhere, no houses, just good old Australian bush and at night.Step 5. Make sure the speed limit on the joining road is 60 km/h.Step 6. Park a police car on the joining road in the median strip, turn the lights on the police car and face it towards the road with the speed limit of 100 km/h.Step 7. Put a police officer behind the police car lights and give him a speed camera.Step 8. Wait for a car to come from 100 km/h road into the joining road with 60 km/h speed limit, the car won’t be able to see the police officer because of the police car lights. The car will go more than 60 km/ guaranteed.Step 9. Stop them for going 88 km/h in 60 km/h zone and give them a $150 AUD fine.Simple DiagramThis works, because the Australian government has got this exact idea and they got my $150 AUD. Now I was speeding, but why does a dual carriage road in the middle of nowhere, joining two high speed limit roads have a speed limit of only 60 km/h…I don’t think the Ministry of Transport is in charge of running our little joining road situation, it is Ministry of Crap that is in charge.
No comments