IsmoCore 0.0.8

The caching hasn’t been throughly tested so it might still have some minor issues. But it should opimally return a 304 response if the cache file hasn’t changed and the cache file should only be removed when an action affecting it, like a new blog entry being added to a cached category page, happens.

At some point I should start looking into adding some blogging API support. Diego Doval has written a review of blogging APIs which is a good start.

IsmoBlog supports textile input

Neat. I’m writing this using the textile syntax. It’s really nice! Blog entries can now be written either in plain HTML or in the textile format. I wonder if I should borrow the textile syntax for IsmoDoc. The nice thing with IsmoDoc is that it supports converting also to plain text and to PDF , textile can only convert into HTML . But IsmoDoc currently only supports a subset of the formatting textile supports so it makes sense to use textile for IsmoBlog.

Note to self always remember to escape things in hidden input fields . Of course I had forgotten to do that so the first time I wrote this entry most of the text got lost :/ But now it’s fixed and I’ll release IsmoBlog 0.0.4 later tonight.

IsmoCore 0.0.7

I managed to release 0.0.7 as scheduled this weekend. Splitting out the database stuff into an own package reduced the size of the IsmoCore package with 80 kb! Most of that is Metabase, so the IsmoDB package will be really slim when I’ve changed it to use MDB instead. That shouldn’t take long as MDB includes both a PEAR DB and a Metabase wrapper.

This version of IsmoBlog that I’m currently testing by writing this entry should support previewing. It will be interesting to see if it works 🙂 If it does I can move on to add support for comments and RSS feeds.

Cool the preview works. Well, I did unit test it first locally but I can’t test the navigation between the pages that way.

Location based actions on your phone

miniGPS for Nokia 7650 and 3650. PsiNT has created a really cool utility for the Symbian Nokia phones. The application lets you define actions which will be executed when you (well actually the phone) reaches a specific network location. This is as good as it gets until the phones get GPS as standard.

Imagine this

In the morning when you arrive at work the phone automatically switches to the work profile. At lunch it notices that you’ve gone to the city center to eat at your favorite lunch restaurant and changes to the lunch profile, which automatically forwards all work calls to your voicemail, so you can have a peaceful lunch. The phone notices when you’re back at the office and changes back to the work profile.

When driving home from work the phone starts beeping when you’re getting close to the local food store to remind you to stop and buy the things needed for the dinner.

A couple of quotes from the web page

Currently miniGPS offers five event types:

– Log in alarm,
– Log out alarm,
– Log in switch profile,
– Log out switch profile
– Log in power off,
– Log out power off,
– Log in change image,
– Log out change image,
– Log in SMS,
– Log out SMS

For places like church, theater, hospital etc. you can set a power off
event which will just switch your phone off as soon as you come there!
No more embarrassing rings during performance

I see an incredible potential for these kind of applications. But they are also scary if the information is collected by some third party. Imagine getting a free phone paid by your job which contains an embedded tracking program, so they can see where everyone is located. They could then compare that data with the time reporting system.

“Oh, this guy here said he arrived at work 8:00 but according to the phone tracking data he really arrived 8:45. hmm..”

But this is cool stuff!

AOP – Aspect Oriented Programming

So I’m trying figure out how I can use AOP in IsmoCore. Yesterday I made a dynamic proxy and a simple interceptor and played around a bit with them. Really neat! But I need to figure out what kind of problems are good canidates for solving with AOP and which ones are not.

The tracing example given everywhere seems like a thing AOP is really good for but it’s a quite trivial example. I need something more complex 😉 I guess I need to do a bit more reading. Any good pointers?

Doing AOP in a dynamic scripting language like PHP (well, PHP is at least half dynamic) might be a bit different compared to a strong typed language like Java. I need to keep this in mind, as AOP seems in some ways to give some freedom to Java that already exists in a dynamic script language.

More on this later when I start to use it more seriously in IsmoCore!

Safari is a memory hog?

I just noticed the following when I ran the top command a couple of minutes ago:

 3368 Safari      10.1% 82:36.27  29  1556  2917   175M- 26.0M   153M-  740M-

Does Safari really need 740 MB of virtual memory? Seems a tad bit much.

OS X FTP client

Because ncftp which I installed from fink for some reason has decided to just exit straight to the shell whenever I write a Swedish character I had to find another free FTP client for Mac OS X. After a bit of searching I found this blog entry which lead me to RBrowserLite.

I got it working after some initial problems, for some reason I had to set the initial remote path to / otherwise it wouldn’t show anything. But now I can download things with Swedish characters in their names so I’m happy.

News madness

When reading through today’s RSS backlog I noticed this RSS via NTTP? article on Advogato. It’s a nice idea but it feels a bit like overkill.

Anyways, what I found interesting was Adrian Chadd’s comment (he has the nick k) and the title of the comment is NNTP feed sizes. Here’s a quote from it:

In any case, I _DO_ remember doing some fun maths one day. I was trying to calculate how many feeds were going over the US<->(Amsterdam/UK) fibre routes. I stopped at around 40. _40 full feeds_ because providers were buying their own DS3/STM1 across the pond to link their Europe<->US networks and peering their news feeds together. Think about that for a minute.

Think about all the wasted bandwidth, I think some collaboration would be in order but that’s probably too much to ask for.