Thursday, July 28, 2011

Raphael on Android

For those of you who liked the fantastic HTML5 canvas manipulation tool called Raphael and were thinking of using it for your Android web apps, I'd like to highlight one caveat. It has 2 rendering engines, an SVG based one and a VML based one.
VML is heading for obsolescence a I understand it. However, this has deep support in IE and Raphael renders on IE using VML. On all the other platforms it uses SVG.

This is actually a good thing under most circumstances, SVG support being ubiquitous and good.
The problem? The Android development team uses Webkit for their system browser which supports SVG. However, to save on space/resources, during the build process on Android, the SVG support is disabled. At least for all Android versions upto V3.0.

This means Raphael will not work for your Android projects. Unless of course the VML renderer can be enabled for Android dynamically and VML works for Android?...

Saturday, July 16, 2011

FreeNAS

FreeNAS - especially the latest version, 8 - gives you a whole lot of free goodness. However, I tripped on the foolproof LiveCD installation for a very simple oversight. If you're like me and trying FreeNAS on a Virtual Machine, and find your virtual FreeNAS boot process stuck at some weird point with no option to move ahead - make sure you're allocating enough memory.

The boot process does not tell you it needs more memory - just hangs. So allocate at least 560MB.

Thursday, January 27, 2011

Fonts and HTML

As many HTML authors have found (and are still finding) to their chagrin, thus far, declaring the use of some really attractive but non-typical font in their web pages, resulted in horrible renditions on most browsers running on platforms without access to the relevant font files.

Many solutions have come up in the past to address this - the following come to mind:
  • GIFs (text blobs as images for universal rendering)
  • BitStream
  • sIFR
  • Cufon
However, with HTML5, or rather CSS2 (where this first came about), web fonts may be finally on their way to obviating these chaos.
Check out Font Squirrel for the lowdown on what's been going on in this space...

Saturday, September 11, 2010

zRSSFeed Reader Plugin for jQuery

For those who are still debating on the utility of having yet another Javascript framework - just take a quick gander at the innovation taking place around their plugins development - JQuery Popular Plugins

And the zRSSFeed Reader plugin is another explosive plugin for jQuery. For people wanting to get instant gratification without gaining unhealthy baggage, this hits the spot. By adding a few lines of Javascript (just copy the example and customize) your web page can get the benefit of a simple yet functional RSS feed from a site of your choice (you could make it dynamic i.e. the user could choose as well but thats a different discussion).

Saturday, July 11, 2009

OpenLaszlo 4.6.x

Quick update - Laszlo 4.6.x is out and brings some welcome changes.

I had written about OpenLaszlo sometime back - and mentioned some glaring issues around things like authentication. Basically these arose out of the way Laszlo handles http connections - the server acts as an intermediary or proxy for all data including cookies. For some reason, cookies were not working for me before 4.6.0 and as such neither was cookie based authentication. With 4.6.0 I'm happy to say all of this working fine and removes an important reason for me to reject OpenLaszlo in my work.

Another very important achievement from my perspective at least is the seamless rendering of pure DHTML pages as opposed to Flash. This version finally delivers on the promise of write once and deliver to multiple platforms and the timing is just right. I could now write the GUI once and deliver to devices like the iPhone (which don't support Flash) without any extra effort. This is a significant advantage over Flex - while Flex gives you a lot of benefits within the Flash eco-system, I would've been lost had I developed my UI using it. Another really nice side-effect of the DHTML rendering is that you can take advantage of some of the really cool Javascript libraries out there to enhance your product on the fly.

In the DHTML render mode the application is rendered as pure HTML. This made it possible for me to add dynamically rendered virtual keyboards for example. Of course this meant the required Javascript had to be dynamically injected using Sitemesh, but that again was a great tool for the job - simple but really effective. And then there was of course JQuery to tie it all together on the client side...

Look up the technologies used - collectively or even singly they could save you a ton of worry someday:
* JQuery
* Sitemesh
* Javascript Virtual KeyBoard Interface by Greywyvern

Monday, June 8, 2009

Fiddler

If you have ever struggled to figure out exactly what was happening between your computer and the other end when you hit a button on the screen Fiddler is the tool for you. A free tool originating from Microsoft of all places, this has the most comprehensive HTTP information you will need. Give it a whirl...

Saturday, May 2, 2009

Setting up GMail SMTP through JBoss mail-service.xml

I may have been unusually unfortunate in this respect, but based on the number of postings that reported problems trying to configure email settings on JBoss against the GMail SMTP server, I thought I'd just publish the following configuration as a confirmed successful one - simply edit your mail-service.xml under JBoss (tested against version 4.2.2.GA) to make it so:




<?xml version="1.0"?>
<server>
<mbean code="org.jboss.mail.MailService" name="jboss:service=MailSession">
<attribute name="JNDIName">mail/MailSession</attribute>
<attribute name="User">youraddress@gmail.com</attribute>
<attribute name="Password">yourpassword</attribute>
<attribute name="Configuration">
<configuration>
<property name="mail.transport.protocol" value="smtp"/>
<property name="mail.smtp.user" value="youraddress@gmail.com"/>
<property name="mail.smtp.password" value="yourpassword"/>
<property name="mail.smtp.starttls.enable" value="true"/>
<property name="mail.smtp.auth" value="true"/>
<property name="mail.smtp.host" value="smtp.gmail.com"/>
<property name="mail.smtp.port" value="465" />
<property name="mail.from"
value="recipientaddress@someserver.com"/>
<property name="mail.smtp.socketFactory.class"
value="javax.net.ssl.SSLSocketFactory" />
<property name="mail.smtp.socketFactory.port" value="465" />
</configuration>
</attribute>
</mbean>
</server>