Archive for the ‘Web Development’ Category

I work in a large, 6000+ staff, company, and that explains why we’re only now migrating from Outlook 2003 to Outlook 2010. To be correct: the rollout will start in a few days, because the tests are still ongoing. And testing always pays ;-)

Indeed, an error was found: one of our oldest intranet applications became unusable. It’s an app that sends the data entered in an HTML form to the approver of the request. The email is HTML-formatted and includes a new HTML form with two buttons: “Agree” and “Decline”. Both buttons are supposed to send the form back to the app for further action… and those buttons do not show up in Outlook 2010, thus short-circuiting the workflow.

The cause of this problem is simple and well known. Microsoft says that Outlook 2010 supports HTML emails, but that isn’t true. It uses the core MS-Word engine to display and edit HTML, “because we believe it’s the best e-mail authoring experience around“. Unfortunately for the rest of us this means that we’re stuck with one of the worst HTML display engines: it has problems with CSS, with padding and margins, and it replaces some perfectly standard HTML tags (like INPUT) with something else.

These problems aren’t new: the “Let’s Fix It” (*) website was built in 2009 to try and convince Microsoft to correct Outlook. And there are many blogposts, discussion forum messages, tweets, etc. that cry out about the annoyances Outlook 2007 and 2010 have generated (and continue to do so!). With IE8 and later, Microsoft at least made an effort to comply better with HTML standards – but the same company ignores those efforts for another, related product? Come on, guys…

Anyway, it turns out that there is a relatively simple bypass for our specific issue. When Outlook 2010 suspects that there may be problems with the way it displays an HTML email, it also displays a warning message just below the title of the email: “If there are problems with how this message is displayed, click here to view it in a web browser“. Clicking the message indeed pops up a menu, from where you can relaunch the original message content in an IE window or tab. Luckily for us, IE will restore not just the intended ‘look and feel’, but also the intended functionality of your email. Hurrah!

For those of us who prefer another browser than IE: you will have to apply a work-around to Outlook to take the “default browser” from your Windows preferences, but it can be done – I just haven’t tried it. And just supposing that Outlook 2010 thinks that it perfectly masters your HTML email: yes, there is a way to force Outlook to display the “If there are problems…” message (*), thus assuring the author of the email that the poor Outlook users will have the option to display the message in a browser! Aaaah, the wonders of the software universe ;-)

(*) Edited on 2015-11-03, replacing the link with a reference to an archived version of the now defunct URL…

Read Full Post »

Good news for those of us who still have sites running on Manila, the Userland Frontier application for web content management: Tom Clifton, Dave Winer, Jake Savin and others are busy trying to get Manila to run in the OPML Editor. If they pull it off, it will be possible to take a .root backup from a Manila site and import it in the OPML Editor – or so I think.

Since I still have to “migrate” two years worth of blog entries from my original Manila blog at nukleos.editthispage.com, I hoped to use the OPML Editor – without Manila – to extract blog posts from the backup files I made in 2009 and before. Downloading and running the OPML Editor is no problem on the Mac, but trying to load my  .root backup is aborted with a message saying “Access to ‘backup.root’ was denied”. Is that a problem caused by differing versions of the Frontier core, or a configuration issue?

Read Full Post »

If the CSS Zen Garden no longer tempts you, dear graphical designer, then have a look at CSS1K: “CSS1K invites you to show that web developers are more inventive than ever, and that limitations can sparkle creativity…Submissions must consist of only CSS. Submissions may be up to 1 K (1024 bytes) minified“. There are already some great submissions, and I’m sure more will follow!

Read Full Post »

Yesterday evening after 10 o’clock the family iMac refused to work. A restart resulted in triple beeps. So far nothing out of the ordinary, and a diagnosis was easily established: bad memory. Luckily, my netbook uses the same type of SO-DIMM’s, and I had a spare module at hand. So with a bit of fiddling the iMac and the Netbook were up and running again, albeit with less RAM than before.

I started searching for memory upgrades on eBay and Amazon, but finally ordered two 2GB modules from a German shop. And that is where things really went wrong: the SSL-encrypted order and payment application for this shop was incredibly slow and unreliable! In the end, after an hour and a half, I sat before the screen with two identical orders, one of them paid through PayPal. It took me another 15 minutes to set the quantity of the other order to zero…

Mission accomplished. I do hope no one has to experience such slowness in my apps!

Read Full Post »

A few days ago, Dave Winer mentioned an fresh source for all things Frontier: http://scripting.com/stories/2011/12/18/areYouAFrontierUser.html. Still no mention of a Linux version, but at least there’s a better overview of what’s available than what Google can tell us about the subject ;-) I have mentioned Frontier several times on this blog, not in the least because it was my first Web Content Management System and the osted runtime of my blog over at Userland.com… I’m not sure I’ll find the time to dive into the subject again after all these years, but at least I’ll know where to look for a quicker solution to migrating my old blog posts than just doing it by hand, one by one, as I’m trying to do currently!

Read Full Post »

Solving application performance problems is often a complicated matter – usually, many factors come into play and make it hard to single out ‘the’ culprit that slows everything down. What’s worse, of course, is that users are always wanting and expecting “more”, and in the case of performance that means “faster”!

Here’s a good blog post that explains the problem: “Why you have less than a second to deliver exceptional performance“. Let’s hope that we can do better within the company network than on the Internet at large!

There are more interesting posts to be found on the same site; it seems that the author knows what he’s talking about…

Read Full Post »

Last week, I had to get a few web applications running on my Ubuntu netbook. That shouldn’t have been too difficult: after all, I have installed Tomcat on many servers (mostly Windows-servers, admittedly, but on OSX too), and getting a web app like JSPWiki to run on Tomcat is something I have done many times.

Off I went, with a sudo apt-get install tomcat7. After that, I just had to unzip and configure my JSPWiki – or so I thought… When I tried to run the app, all I got were error messages, and none of them were very specific. Puzzled, I verified even the simplest thing: but yes, I did have a Java runtime (java-6-openjdk).

So I tried my hand at Jetty, although that package is (was) unfamiliar to me. It took me a while, but at least in the end the error message that Jetty spat at me was clear: it couldn’t find the Java compiler to handle the JSP-files in JSPWiki. That took me by surprise: doesn’t java-6-openjdk include the JDK ?

The correct answer, of course, is NO. If you want a JDK, you have to install it explicitly, using sudo apt-get install openjdk-6-jdk (or sudo apt-get install openjdk-7-jdk if you’re into working with Java 7). Simple, indeed – too bad the name “openjdk” put me on the wrong foot and made me lose a few hours. But at least I learned something during that time!

Read Full Post »

Just a quick note: I did finally find the time to re-test the ntlmHTTP project for ColdFusion after the installation of .NET 3.5 on our ColdFusion test server (check out my earlier posts on the subject). And yes, ntlmHTTP works – at least for accessing web pages that are protected by “Windows Integrated Authentication”. Next trials will try to access SharePoint 2010…

Read Full Post »

Kevin Benore has attended a sneak preview of Zeus aka CF 10, and he has published a list of features of the next version of ColdFusion. I hope the final release (when?) will contain all items mentioned here (and more, of course). For me, the replacement of JRun by Tomcat and better WebService support are the most interesting and most wanted features.

Read Full Post »

I have had a bit of trouble to get ntmlHTTP running correctly on our servers. In response to my ticket on RiaForge, Nick Harvey clarified the dependence of the DLL on .NET version 3.5 (or higher, I suppose). I’m not a Windows nor a .NET specialist, and I don’t have many rights on the servers at work, so it took me and my collegue a bit of time to conclude that we were trying to run Nicks code on a .NET 2.0 base – and that didn’t work out, of course.

I already have a few ColdFusion pages with diagnostics about our servers, so I decided to do the right thing and add the .NET version to the existing diagnostics. It took me a while to find the exact class and method in the .NET runtime, but it turned out to be simple. So I have created a small ColdFusion CFC to help me (the » symbol means you should put what follows on the preceding line):

   name="DotnetRuntime" >

   <cfset VARIABLES.re = CreateObject( "dotnet",
             » "System.Runtime.InteropServices.RuntimeEnvironment" ) />

      output="false" >

      <cfreturn VARIABLES.re.GetRuntimeDirectory() />


      output="false" >

      <cfreturn VARIABLES.re.GetSystemVersion() />



Once you have that component, it’s pretty simple to use it – just put this in a .CFM (I’m supposing you have called your CFC ‘DotnetRuntime.cfc‘ in the current directory):

    <cfset dotnet = CreateObject( "component", "DotnetRuntime" ) />

      <h1>Dotnet Runtime Environment</h1>

         This ColdFusion server is currently running <b>.NET version #dotnet.GetsystemVersion()#</b>
         from directory '<code>#dotnet.GetRuntimeDirectory()#</code>'

So there you have it. I know this works in our setup, but I don’t know what will happen when there are multiple .NET runtimes on your machine… That’s why I wrapped the code into a CFC –  functions to detect specific versions of .NET, handle multiple runtimes, etc. can thus be added in a single component for easy versioning and maximum reuse. Suggestions or additions are welcome!

PS. I have left the “hint” attributes out of the code above, because I haven’t yet found a good way to publish program code in WordPress.

Read Full Post »

CSS3 Help

I can’t guarantee that they are really “the best”, but it’s good to have a starting point if you’re looking for assistance with CSS3: “10 of the Best CSS3 Code Generators” (at sitePoint.com).

Read Full Post »

We have been trying out the 0.2 version of the ntlmHTTP project for ColdFusion, in order to see if we could call the SharePoint webservices. Unfortunately, POSTing a SOAP request never works: we always end up with a nasty error message for any of the new methods. Here’s a sample message:

Could not find the generic method Com.Bluemini.CF.NetHttpRequest.setUsername

Decompiling the .class files that ColdFusion generates to integrate the DLL shows that the methods are there, just like a CFDUMP of the object we create. But CF8 (on a Windows 2003 server) seems unable to call them… I’ll download the source code and pass it on to our local .NET guru for examination. I’ll keep you posted about the results of our investigations (that may take a few days, though).

Read Full Post »

At work, we have tried the initial version of the ntlmhttp project on RiaForge (see my post from last week as well). We’re (still!) on CF8, installed in a minimal way, so I had to install the .NET integration layer first. But that is fairly simple:

When that is done, you just download the ntlmHTTP component.

  • Put the DLL on your file system, and write down the path.
  • Now run this script to check your installation:
    <cfset NetRequest = CreateObject( "dotnet", "Com.Bluemini.CF.NetHttpRequest", "/path/to/your/NetHttpRequest.dll") />
    <cfdump var="#NetRequest#" />

So far, so good: calling a (secured) webpage worked too. From the almost non-existent documentation it isn’t clear to me how we might use this to issue a SOAP request – we’ll see about that later.

When trying out the component with a web service call, I need to remember not to add the domain prefix to the username required in the call parameters. That’s different from what we need for our CFHTTP calls, but not too hard to do. I just wonder: is it the component that makes it possible to skip the domain name, or is it the configuration of our Windows network?

Read Full Post »

It shouldn’t come as a surprise when I say that web services are becoming quite important, even within (larger) companies. My problem with using web services at work can be summarized in a single statement: my ColdFusion servers do not speak the “Integrated Windows Authentication” required by almost all the Windows-servers in our corporate network, including our firewall. As far as I know, there is no simple way out of my predicament – or is there? I have just found the ntlmHTTP project at RiaForge.

ntlmHTTP is a .NET DLL that offers, if I understand the documentation correctly, an alternative to the standard CFHTTP tag. I hope to find a bit of time to test ntlmHTTP soon. If anyone has any experience with this component, please speak up; I’ll report my findings here on my blog as well.

PS. Do I really need to add that RiaForge is a great source of open source software for ColdFusion/CFML developers (and other users of Adobe technologies)?

Read Full Post »

It’s just another list of Python Web Frameworks, of course – but it’s recent enough to contain a few names that I hadn’t heard until now (not too surprising, since I’m not really following the Python universe on a daily basis). So at least that post will help me waste more time that I probably don’t have ;-)

I don’t have any significant experience with Django, other than a hour of mucking about with it while trying to grok Google App Engine development, so I will be reading the Linux Journal article “Introducing Three Python Web Frameworks” with interest as well. This years Pycon Atlanta also has lots of web framework related presentations… and I suppose there will be new videos on the subject in YouTube as well: my last search on that subject dates from last summer :-(

And if that isn’t enough, there’s always http://wiki.python.org/moin/WebFrameworks

I don’t think I need more updating than this!

Read Full Post »

« Newer Posts - Older Posts »