whatever

Behind The Scenes

Adding my voice to the chorus - the Scorpio Beta is here! Get it now

Scorpio Arrives

To those who complained the last time - you may notice that we got the stinger in for the Beta… ;-)

coldfusion
whatever

Comments (4)

Permalink

The Death March

In case you’re wondering why I’ve been so quiet of late… ColdFusion 8 aka Scorpio is coming!

Scorpio Death March

Mea culpa, I’m a programmer, not an artist.

anything else
coldfusion
whatever

Comments (19)

Permalink

Understanding

Earlier this month, in the Indian Express, Mufti Abdul Rashid, the principal of the largest madarsa in Srinagar, Darul Uloom Bilaliya , was quoted as saying:

“If madarsas produce terrorists, then shouldn’t Kashmir be the most peaceful state (in India)?”

I would link to the article if I could, but I can’t find it online, so here are are the figures quoted that I found particularly interesting. Darul Uloom Bilaliya has seen just 175 students pass out since its inception 16 years ago. According to the Justice Rajinder Sachar Committee, only 1729 boys and 962 girls are studying in madarsas in Kashmir, one of the lowest enrollment rates in India. In comparison, numbers run to several thousands in other states, and to hundreds of thousands in Uttar Pradesh and Bihar.

Mufti Abdul Rashid has an explanation for the low enrollment rate in madarsas in Kashmir:

“You are more concerned about your religious identity if you are in a minority, but Kashmiri Muslims are a majority population, so the insecurities are less.”

The article goes on to point out that many of the students are from rural areas and poor families, and new admissions are mostly orphans of violence.

So why did this article catch my eye? It reminds us that religion does not an extremist/terrorist/fundamentalist make.

Neither Islam, Christianity, Hinduism, Buddhism, nor any other major religion, preaches violence, but each has seen violence done in its name. As Anasuya likes to point out, it’s surprising how similar the extremists of any religion sound; it’s almost as though they follow a separate creed of their own, of intolerance and hatred. Violence done in the name of a religion, Islam or any other, does not make that religion evil, nor does it make the vast majority of peaceful followers of that religion evil.

These prejudices are, unfortunately, as much a product of those who spout them at their media pulpits, as they are of our own upbringing. Even today I hear talk of “those Muslims”, of lower castes and untouchables, both amongst acquaintances and (less obviously) in the mainstream media. When children are brought up surrounded by these messages, how will they treat those different than themselves, other than with intolerance?

So here’s my idealist wish for 2007 - that more of us come to accept and embrace difference, rather than rejecting and fearing it.

Notes for readers not familiar with the Indian subcontinent:

Kashmir is a Muslim-majority state in India that has been wracked by sectarian violence for close to 20 years, much of it allegedly supported by the ISI, Pakistan’s intelligence agency. India and Pakistan have fought 3 wars over Kashmir, contributing none at all to the stability of the region.

Madarsa is an Urdu word, derived from the Arabic “madrasah”, which literally means “school”. Madarsas are Islamic religious schools, which provide free education. Islamic studies are often supplemented by courses in mathematics, literature, vocational skills, and other regular primary school subjects. The closest Occidental parallel would be a cross between a seminary and a convent school.

whatever

Comments (3)

Permalink

I was nuked by Ray Camden

Artist’s impression of Ray nuking Ashwin ;-)

anything else
coldfusion
whatever

Comments (1)

Permalink

Quack!

If it talks like a duck and walks like a duck, then it must be a duck… and, apparently, it’ll waddle a good deal faster than a turkey, or any other non-duck species.

I’ve been meaning to get to the subject of duck typing and performance ever since I saw Sean give his presentation at CFUnited. Unfortunately, the performance aspect of going duck was what caught most people’s attention; as Sean shouts out duck typing is not about performance.

I finally got round to downloading Sean’s source code and ran some tests of my own. Here’s the low-down - performance is affected only when the argument type or return type is specified as a CFC; if it is anything else, performance is about equal to the duck typed equivalents. If you’re typing arguments and return values to structs, arrays, strings, numbers, whatever, duck typing will not give you any performance gains. Apologies all if I’m repeating what’s already been pointed out; I searched around a bit and couldn’t find anyone else commenting on this particular detail.

CFC type checking is always going to be more expensive than checking any other type, since we need to jump through many of the same hoops as we do during createObject() to actually resolve the path to the CFC template - is the path to type being checked relative or absolute? Is it referenced via a mapping? Is the type being checked a supertype of the type passed in? You get the idea; evaluating these kinds of complex relationships is expensive.

So do duck type if your design calls for it, or if you’re having serious performance problems with code that checks for CFC types. Otherwise, make like a monkey and code!

Update: You can download the code I used for testing here. It’s identical to Sean’s code, with the exception of a new typedNative function in performance.cfm, which is used to test for “native” types, i.e., Struct, Array, whatever.

code
coldfusion
technology
whatever

Comments (3)

Permalink

To boldly go where…

… no server (or language, or platform, or all of the above!) has gone before?

Much fuss has been made over CF not being an enterprise platform. All too often, it would seem, we’re the poor kids who get the ‘lite’ projects. Why is this?

I will concede that some of the fault lies with the product. There are long standing requests such as CFC serialization that have yet to be addressed. There are performance issues that have been found with CFSWITCH, string concatenation and other areas of the server.

So I’d like to ask all of you - what’s your number 1 problem that stops you from being able to sell CF up to your management/customers as an “enterprise” grade solution? Leave your comments here, and I promise they’ll be looked into.

At the same time, I think we as a community have some work to do as well. How do we change the impression that CF is not an enterprise platform? There is a problem to CF being such an easy language to learn, with so much power packed into individual tags; it’s just as easy to abuse that power as it is to use it. Could CF provide more checks and balances to ensure that this does not happen? Perhaps, but definitely not in every case.

So do start applying those best practices and numerous frameworks (and un-frameworks!) in your projects. Read the presentations Sean’s put up, Ben’s resources page, and the numerous CF blogs dealing with this stuff. I’m the last person to claim that the application of these best practices and patterns are easy to understand the first time round; but as you get into them, I think you’ll find that they become a habit, an integral part of the way you design and code.

On an (un)related note, the crew of the good Starship Enterprise celebrated their 40th anniversary this weekend past - happy birthday, Star Trek!

coldfusion
technology
whatever

Comments (25)

Permalink

Why I Like Spry

I like Spry. Why? Simple - they got their data model right.

Not that I’ve done a lot of AJAX work, but from what I’ve seen of other frameworks, it seems that the general focus has been on creating cool UI components. While this is not at all a bad thing, the result is that AJAX data models are not nearly as mature as they could be.

Continue Reading »

coldfusion
technology
web
whatever

Comments (8)

Permalink

Wish lists

There’s been much rubbing of magic lamps and wishing of wishes over what features we should throw into ColdFusion 8 aka Scorpio. Sean has the roundup of comments from Simon Horwith, Brian Kotek and Brandon Harper. Which will be granted? Only Damon can tell… ;-) Loudmouth that I am, I can’t help but add my own 2 paisa to the debate.

CFML is a simple language. Joe/Jane developer can get up and running building a CF application in a fraction of the time it would take with practically any other technology. At heart, CFML is a language rooted in tags. There’s no need to digest half a dozen reference books to dive into CFML - you can just pick the tags you need and go from there.

Adding new language features to parallel those available elsewhere (Java, Ruby, whatever) does not detract from this power - it adds to it. Your applications can be as simple or as complex as you want them to be. But even when they’re complex, the complexity can be isolated at a layer of abstraction above the actual business logic, because the business logic is still largely composed of simple, powerful tags. The key, of course, is to ensure that the features we add do not mess with CFML’s essential simplicity; if there’s one thing the CF team is paranoid about, this would be it.

But addition of any new feature is tempered by the time we have available to release, and the number of other features in queue. Prioritisation is a hard task, especially when we have you, our vociferous users, to answer to. Some features will make it, and others won’t - you know how the game is played. So you’ll see some new features that will enrich the CF language, allowing more object oriented behaviour and what-not. And you’ll soon see others like CFPRESENTATION and CFPDFFORM, which Jason showed off at CFUNITED, that will continue in the CF tradition of making hard things easy.

Some have asked whether CF should ship a framework to help define how to build applications. I would have to disagree. Each framework brings its own architectural philosophy to the table, and each is valid in its own space. Today we have frameworks that are great for building web applications. But what about frameworks for applications with Flex front ends? What if someone were to build a framework to enable CF as a data integration hub, using all the rich network interfaces that are available? Each of these will have their own specific requirements - no framework is sufficiently generic to address all needs.

CF goes far enough to make things easy, but at the same time stops short of defining how you should build your applications. That little detail, we leave to you…

coldfusion
technology
whatever

Comments (3)

Permalink

WHENTO: Evaluate() and Iif()

Bert brought up a rather interesting scenario where he needed to force templates to be reloaded into the template cache, since he was generating bits of CFML code at runtime. I suggested that he might also want to take a look at the evaluate() function, since that would probably allow him to solve his problem in a simpler manner.

As has been noted often enough, evaluate() and iif() are not the most performant of functions, since they do need to dynamically compile the expressions that they’re being asked to process.

Evaluate() simply processes the string passed to it as if it were an expression. Iif() is the CF implementation of the Java ternary operator “?” which is exactly what it calls to do its work; this is faster than using <cfif><cfelse></cfif> to achieve the same effect. Once iif() has figured out which expression to evaluate, it simply delegates control to evaluate() to actually process the expression.

Continue Reading »

code
coldfusion
technology
whatever

Comments (0)

Permalink

The Land of the Free

Bloggers Against CensorshipWelcome to India, the land of the free, where the government blocks access to bits of the Internet whenever it gets in that techno-bashing mood. What, you haven’t heard? If you’re in India and you get your news from Typepad or Blogspot, of course you haven’t! Heaping stupidity upon lunacy, only Typepad and Blogspot have been blocked - LiveJournal and WordPress are still available.

We are told that terrorists use blogs to communicate; that this is merely a security measure. Well, terrorists use telephones, email, plain old vocal chords and sign language too… So let’s see now - I’m a blogger, I have a telephone, I have email, the ol’ vox box seems to be in working order and all ten fingers wiggling happily. Ergo, I’m a terrorist?

pkblogs.com For info on circumventing the block, see this. Interestingly enough, one of the sites helping bypass the block, pkblogs.com, was originally setup to allow Pakistani bloggers freedom of expression when they had access to blogs blocked.

This police action is particularly worrisome in the light of the media and communications bill currently wending its way through the Lok Sabha. I haven’t had the time to read the full text of the bill yet, but I understand that it would, amongst other things, allow the government full control of media outlets when they see fit. Newspaper exposes nasty corruption scandal? No worries, shut ‘em down! Not a happy state of affairs at all.

On the subject of government and media control elsewhere in the world, the Stevens Bill is another monster to look out for. Check out the DPS Project for proposals to preserve net neutrality. Think this doesn’t affect you? Verizon’s new routers already have the capability for preferential routing built in. Big Brother is not only watching, he’s deciding where you should go, what you should do, and he ain’t letting on that you’re suddenly cruising his private payola version of the Internet.

internet/society
whatever

Comments (0)

Permalink