I believe that it is very important for web sites to comply with HTML/XHTML standards. The HTML specification is very detailed in how it should be represented and thus browsers that render HTML try to follow the specification as close as possible. Most of the template languages that I have used(Django, Mako) are text-based. This means that it the template processors don’t know anything about HTML. Everything that it works with is just text(as far is it knows).
Unfortunately, we know that we aren’t dealing with just text. In fact, we need to make sure that our templates contain valid HTML and when generated are still valid. This is fine, but it definitely is a pain and adds some unnecessary work. Up until I used Genshi, my attitude was that it wasn’t a big deal and I would just validate it all myself when coding. I soon learned though that as your templates become more complex and detailed it becomes much more difficult to keep validating everything manually. This is where Genshi comes in.
Genshi is an XML-based template language. That means that it uses an XML parser to work with your templates and then finally generate a valid XML document. For those of you that don’t know, HTML is very similar to XML syntax. It is not identical, but for our purposes its close enough that an XML template parser works with HTML documents fine.
So what does this mean to a developer? Genshi will make sure that all of your templates have correct XML syntax and the generated content is also valid. If you forget a closing tag in your template, don’t quote an attribute properly, or many other common syntax errors, Genshi will tell you. It makes your life much easier, or at least it made mine easier.
If you are generating content for the web, presumably in XHTML/HTML, then to me it only makes sense to use a template language that is made to work with that content.
On my trial to find the best python web framework(all around), I’ve just finished learning Pylons and experiencing everything it has to offer. Genshi is amazing and kills any text template engine(Django, Mako). SQLAlchemy is much different than Django’s ORM and has its advantages and disadvantages. Django’s ORM feels more natural and is much easier to learn at first. I believe that SQLAlchemy is much more powerful but the learning curve is much bigger.
Django is a great web framework and I think it is perfect for people that want to build news/content sites. Everything in Django works very well together which makes it a one-stop shop.
Pylons is awesome too but compared to Django is lacking in a lot of documentation. You need to look in a lot of different places to learn all the aspects that Pylons has to offer. I will say that Genshi + SQLAlchemy + Pylons + Routes is very very powerful.
I’m going to be moving on to TurboGears now to see what is has different. I’ve read that the documentation is more complete but for the most part the components in each framework are pretty much the same(or can be).
Here it goes.
I just changed the entire layout and look of Blackberry Tracker. I think it looks much better than the old one and is easier to use. There have been small enhancements to the web application, and a new ‘tagging’ feature. Check it out.
I’ve been asked by a few people to add a feature that allows a user to put their location(or a google map of their location) on their web site.
I’m implementing the feature now and it should be done in the next day or so. Here are the details:
Login to the Blackberry Tracker account that you use for the device that you are trying to track. When you go to Manage Device you will see a 32 character string called the Device Key. This will be used by your web site to retrieve the GPS information for the selected device.
Once you have the Device Key, you need to request the following URL(GET method) in your web application. http://bb.tech9computers.com/api/gps/DEVICE_KEY/
You will retrieve the following XML document:
It should be mostly self explanatory.
I will be extending this feature soon too, but this will probably be the basic feature I’ll add tomorrow.
I have to say that Calyx Point is probably the most worthless software that I have ever come across. Calyx makes a software called Point, a loan origination software. it is very popular amongst mortgage companies and is one of the more ubiquitous software packages that does loan origination. The fact that it is widely used would make you think that it must be a good piece of software. No.
When installing Point locally on a computer, it works pretty well as intended. One of the main downfalls I have with this program is its lack of support for use in Terminal Server. From Point 6.0 System Requirements:
Note: Point is written to be compatible with Microsoft peer-to-peer and client/server networks. Calyx does not support data hosted on a storage device or the operation of Point on Novell networks, Linux, OS/2, UNIX, Windows 98, ME, or any thin-client networks such as Citrix or Microsoft Terminal Services.
It seems pretty ridiculous that a modern software package is not supported under Terminal Server. Either their developers are just absolute morons and can’t code it properly sandboxed or their customer support just doesn’t want to deal with helping people. My bet is the developers are just not coding it properly.
I’ve been trying to upgrade to Point 6.0 from Point 5.4 on a Terminal Server for one of my clients and have been unsuccessful. The problem is that when opening the application the window never shows. Bah to .NET Framework and Calyx.
Check out all the help I am getting on my problem on the inactive Calyx Message Boards: http://messageboard.calyxsupport.com/Topic5589-7-1.aspx