Feeds:
Posts
Comments

Archive for August, 2011

Still Gloomy

Contrary to what we hoped, August 2011 was not a sunny month – we have the numbers to prove it.

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 »

Interestingly, in Confessions of a Microsoft Technology Purist, a self-proclaimed Wintel fan writes: “… we all are becoming device agnostic […] and increasingly, OS agnostic…“. You wouldn’t expect to see a SharePoint Pro bringing a MacBook Air and an iPad to a Microsoft conference, would you?

On one hand I wonder: why did it take this man 15 years to accept the fact that Apple makes better, more portable portables than any other company ;-? Why does he, as fan of a company that once dissed the Internet as irrelevant, today embraces the fact that cloud computing (however you define it) is becoming an essential part of our daily professional and personal lives? Alright, I’ll stop being sarcastic, because it’s good to see that people change their point of view and chuck their prejudices.

On the other hand my own “computing situation” has evolved as well. Macintoshes are no longer the only computers in this house. MacOS is no longer the only serious OS on the CPU’s around me, with Ubuntu Linux and Android. More and more of my documents – blog posts, email, photos – are stored somewhere online.

It’s an Apple-Google world now but what does that mean for SharePoint and Microsoft?” – well, it means that Microsoft will have to learn to integrate its solutions into the online world, in one way or another. Buying Skype (or Facebook, or Twitter, or …) may help (or not – we’ll see), but only the future will tell what the IT landscape will look like in one or two decades…

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):

<cfcomponent
   name="DotnetRuntime" >

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

   <cffunction
      name="GetRuntimeDirectory"
      access="public"
      returntype="string"
      output="false" >

      <cfreturn VARIABLES.re.GetRuntimeDirectory() />

   </cffunction>

   <cffunction
      name="GetSystemVersion"
      access="public"
      returntype="string"
      output="false" >

      <cfreturn VARIABLES.re.GetSystemVersion() />

   </cffunction>

</cfcomponent>

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):

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

<cfoutput>
   <html>
   <body>
      <h1>Dotnet Runtime Environment</h1>

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

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 »

Many years ago, I started collecting maxims about program design that – in my opinion – reflect the essence of what good programming should be. You could say that I wanted to capture “programming meta-standards”, that can be applied to programming regardless of the programming language, runtime or operating system you are using. Christopher Diggins had tha same idea, and his list of “Principles of Good Programming” is virtually identical to mine – now I don’t have to publish it myself ;-)

Oh, you want to know what was different in my list? I did not have the “Principle of least astonishment“; that must have seemed too obvious to me. And instead of “Write Code for the Maintainer” I have the very similar “The best comment is the code itself” (aka.”The best comment is no comment“). Using sound algorithms and good names for constants, functions, methods, variables, etc. you (almost) don’t need explicit comments, and that is a good thing because the maintainance of code is hard enough without having to to maintain the comments as well. Some developers apply the same principle to documentation, but that goes too far in my book.

As mentioned in a comment on the original version of Christophers blog post, there is a nice Clean Code Cheat Sheet that may help as well – it also lists a fine collection of “code smells”, i.e. indicators of bad code…

Read Full Post »

Ginger Stir Fry has been running flawlessly on my Blade since the installation on August 8th. My only gripe with this version is missing support for the video format used by the news website of the public radio and TV company (I had no problem with those in CyanogenMod).

Meanwhile, August 19th saw the appearance of a new version of Ginger Stir Fry. Perhaps I should upgrade my beta 19 to the brandnew beta 21 to see my problem solved?

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 »

Android On A Bicycle

I’m taking a few days off this week, and my wife and I are using the time to make bicycle tours in the (large) viciniity of our home. Turns out there is a handy Android application to help us plan them: BikeNode.  BikeNode shows the local bicycle node network in Belgium and the Netherlands, and has its own weblog. It won’t help you if you don’t live in the neighbourhood, though ;-)

A BiikeNode Screenshot

Read Full Post »

Be yourself online, whatever your pseudonym: “my name is me“.

Read all about it at http://my.nameis.me/

Read all about it at http://my.nameis.me/

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:

System.MissingMethodException:
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 »

Jazz Fever

There’s a lot jazz music to be heard in Antwerp (Belgium) these days: the jazz festival ‘Jazz Middelheim‘ starts next friday, and the public radio stations play more jazz music than usual.

I also stumbled upon a 2008 concert registration on TV, where the Pierre Anckaert Trio (featuring Pierre Anckaert on piano, Hendrik Vanattenhoven on double bass and David Barker on drums) clearly showed why they won the Jazz Hoeilaart competition in 2007. I have ordered their first CD ‘Candide’ online ;-)

CD Cover of Pierre Anckaert Trio - Candide

Pierre Anckaert Trio - Candide

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 »

The last two months, I have been using the CyanogenMod 7 ROM on my San Francisco smartphone – because that seemed the best way to get Android 2.3 on the machine. Functionally, CyanogenMod is an excellent product: lots of tweaks and bells and whistles – just what a geek likes. But I am not too happy with the frequent crashes and reboots, especially when connecting and disconnecting the phone to the charger or to a USB port. I never lost any data, though, just lots of time.

A few days ago I found out that there is an alternative: Ginger Stir Fry (what a name!), supposedly based on an unreleased ZTE version of Android 2.3.4 . So I decided to take a deep breath and see what happens when switching ROMs… I’m happy to announce that I’m running the beta 19 of Ginger Stir Fry now, and I haven’t seen any problems until now. Apart from the standard launcher (which I have never used before, since CyanogenMod brings its own variant), the most remarkable feature of Ginger Stir Fry is the speed of the user interface: every click and swipe is immediately converted into action, maps are drawn and redrawn at lightning speed, and all applications (or at least the ones I have tried) feel snappy – just what you want in a smartphone. All in all, I’m a happy user – but we’ll see if that feeling remains after a longer period of using the phone.

What I do need to learn for the next time, is how to avoid having to reinstall all the Market apps I had downloaded manually… On the other hand: now I have only reinstalled those that I really use ;-)

Read Full Post »

Good To Know

It’s good to know I’m not the only one struggling with the attribute names of the CFLOOP tag – just check  http://www.markdrew.co.uk/blog/post.cfm/cfloop-rant to read how Mark Drew thinks about CFLOOP ;-)

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 »