Computers, PHP, Programming, Ruby on Rails, Technology, Web Programming, XML

Zend Framework

<![CDATA[Zend, the commercial endeavour of the people who brought you PHP have a produced a framework, cleverly called the "Zend Framework". It's basically a lightweight MVC framework for PHP. Lightweight in this case is good. It doesn't do as much as Rails does for Ruby (although it is significantly younger) – the most notable hole is a object-relational-mapping system. But it does provide URL rewriting for Rails-esque view/controller access.

I started writing my clever language thingy in it.

The biggest problem I had was getting it to work with IIS. Which I couldn’t. I decided since I had IIS installed I’d give it a go. Unfortunately you require mod_rewrite which IIS doesn’t have. So I installed ISAPI_rewrite, a version for IIS. After an hour of trying to get it to work I went and downloaded Apache 2.2. Which was my second mistake You see it seems PHP doesn’t work with Apache 2.2. Not sure why but I found a vague mention of it on a forum after trying for another hour to get it to work. So I got Apache 2.0 and everything worked.

Of course there are reasons not to use PHP 5 with Apache 2, but meh.

There is one little problem with the Zend Framework, I think. It seems to be printing a space somewhere before any other output. It wouldn’t be a problem except I need it to output XML and a space at the beginning makes Firefox (and probably Internet Explorer) explode.

Apache, IIS, Zend, Zend Framework, MVC]]>

Computers, PHP, Programming, Technology, Web Programming, XML

Back to language learning

<![CDATA[After spending a couple of weeks dealing with foreign text and Unicode at work, my interest in foreign language learning with the aid of a computer has returned.

My main goal is a Pimsleur style system but with the repetition handled by computer – i.e. with just the individual phrases (and words and syllables for earlier lessons) as audio files, the program should generate complete conversations with sensible parts repeated and useful instructor comments in between.

That sounds like it requires some sort of script in some sort of markup language. Since it needs to be highly structured I guess that only leaves XML as a sensible possibility. So I marked up a conversation from Pimsleur’s German I. There was an unexpected result. It’s fairly straight forward to have multiple source languages in one script file. Although there are certain things that would not work best this way, a lot of things in German (for instance) would be taught the same regardless of what language you are learning from. Ultimately source-language-specific scripts would have to be supported though.

Pimsleur, foreign language learning, German]]>

Computers, Javascript, PHP, Programming, Technology, Web Programming

Multiple forms in ASP.NET

<![CDATA[I previously ranted that being unable to have two ASP controlled forms in a single ASP.NET page is a serious flaw. They may be a way round it though. I would assume that ASP.NET can't output two "smart" forms (the ones with runat="server") on the same page but I’m pretty sure that there is nothing stopping a HTMLpage itself actually holding two of them. Of course that could be wrong.

Essentially all you have to do is load the extra forms using AJAX and I think everything will work.

(I’m working a on a page (not in ASP.NET) that has a table of data with a status column. Each column needed to have a drop down box letting you change the status. Since the number of statuses is large I decided to have a link that AJAXly changed into the dropdown box and a button when you clicked it. Of course you could click all the links and not submit any of the forms leaving you with a page that actually has a bout 30 forms on it.)

ASP.NET, ASP, AJAX]]>

Computers, Javascript, PHP, Programming, Ruby on Rails, Technology, Web Programming, XML

BackBase really pushing AJAX

<![CDATA[BackBase is another AJAX toolkit. This one is different though. It’s not really an AJAX toolkit, more a toolkit powered by JavaScript taking advantage of AJAX. The clue is the price. Yes it has a price – $2000 to be exact. There is a “community edition” that is free for personal use though.

Anyway, I don’t have time to run down all the features but basically it defines a whole new bunch of tags allowing you to create complicated content in a declarative HTML style way. These tags are then translated into proper XHTML on the fly by the back end JavaScript engine. Since the clever work is actually handled by the browser, you’re free to use whatever you like on the server (PHP, Ruby) including static HTML pages – outputting BXML is no different to outputting HTML.

In fact BXML has a very ASP.NET feel to it and embedding BXML into an XHTML page along with ASP content could have the ultimate cleanness about it (syntax isn’t one of my complaints about ASP.NET). It should be noted that Microsoft are working on Atlas which could be something very similar but I haven’t looked into it…

It all seems very clever.

BackBase
BackBase Demos
ASP.NET Atlas

ASP]]>

Languages, PHP, Programming, Technology, Web Programming

Language learning ideas – bringing it all together

<![CDATA[This post, like many of my others on the topic ramble a bit. You have been warned 😛

Any regular readers I might have will know how much I like Pimsleur products for learning experience. I believe the basic idea can be greatly enhanced with computers. I did in fact try a short time ago but suffered from a lack of voice talent which is where speech synthesis could be useful.

Synthesised voices can be imported into the current system (which at the moment I wouldn’t be able to demonstrate since the voices need to be licensed if they are to be distributed) just by recording them to audio. This solution would allow maximum support since any browser with audio capabilities could use the system.

There is an advantage to using the IE plugin though (or any other system supporting SALT) – speech recognition. It should be entirely possible to actually have a browser based system that checks your pronunciation which would instantly make it better than any system out there.

Quite why none of the companies that create these synthetic voices have tried to develop a system like this I don’t know…

speech recognition, SALT, TTS, speech synthesis, Pimsleur]]>

PHP, Programming, Technology, Web Programming

More stable server

<![CDATA[The server should now be up far more often.

I can't work out why MySQL and/or Apache keep crashing so often so as an interim solution I’ve just written a PHP script that is run by the cron daemon that checks each if they are running as they should and restarts them if they’re not. Hopefully this means if the server is down it shouldn’t be for more than an hour.

web server, remote admin]]>