The Harmonious Programmer - Covering a symphony of technical and sometimes off-topic subjects
Filed under

CFML

 

CFML Function - createDatetimeFromHttpTimeString()

Working with HTTP time strings should be easier to CFML / ColdFusion,
but there is no built-in function that will create a CFML date/time from
a UTC HTTP time string. So here is the UDF that can help you work with
HTTP time string in native CFML date/time functions. I didn't check
cflib.org first, but I really couldn't check it out of professional
courtesy because I was writing this function for open source project and
I didn't want to deal with attribution / license stuff (yes, I'm lazy).



<cffunction name="createDatetimeFromHttpTimeString" access="public" returntype="date" output="false"
    hint="Creates an UTC datetime from an HTTP time string.">
    <cfargument name="httpTimeString" type="string" required="true"
        hint="An HTTP time string in the format of '11 Aug 2010 17:58:48 GMT'." />

    <cfset var rawArray = ListToArray(ListLast(arguments.httpTimeString, ","), " ") />
    <cfset var rawTimePart = ListToArray(rawArray[4], ":") />
    
    <cfreturn CreateDatetime(rawArray[3], DateFormat("#rawArray[2]#/1/2000", "m"), rawArray[1], rawTimePart[1], rawTimePart[2], rawTimePart[3]) />
</cffunction>



Enjoy!

Filed under  //   CFML   Open Source   Sharing  

Comments [2]

Loading mentions Retweet

FuseboxFramework.com Domains Are Going Away Soon...

Where did you get those URLs? The fuseboxframework.com domains are going
away soon (because no one in the Fusebox community was interested in
taking them on - and they expire in two weeks).
via groups.google.com (a comment by Sean Corfield)

This is in reference the domain being used by the what appears to be the "defunct" FuseNG project that forked from the Fusebox project. While these aren't the main fusebox.org domains, this prompted me to look at the status of the main Fusebox project.

I was surprised to learn that the last stable release for Fusebox was in March 2008 (version 5.5.1). Has it really been that long? It will be 2.5 years ago in just about a month or so without a release is stunning. Time flies.  Also, I quickly checked the Fusebox Trac site. Only one new ticket other than spam tickets has been filed or commented on in the past 6 months and that one ticket is just a question on syntax (it should have been sent to a list).  What is the state of Fusebox these days? Is TeraTech really "driving Fusebox forward and you can expect to see major improvements to the web site and the documentation in due course"? I don't see evidence of it on the site.

What really saddens me is the state of the CFML community. Have people not learned to pitch in and help their open source projects? Clearly not because there is still the glut of new one-man projects that never leave the ground or barely hover. CFML community members need to band to together instead of re-inventing the wheel. They need to learn to contribute (which I'd say that 99.9% of them do not) and realize that there is only a handful of people contributing to their open source project of choice. You don't have to pay for software with money; you can pay with your time, talent and expertise. Contributing does not always mean code but help on lists, documentation, sample applications, etc. There are so many things to do on open source project other than the next generation of code.

This is a call to arms! If you use open source, donate some time back to it or you might sadly find yourself with a defunct project and no maintainer there to help you. The great news is you can save yourself by contributing your time now. I urge all CFMLers to donate just 30 minutes a week to ONE project of your choice (if you don't know what to do, contact the maintainers -- I'm sure they have a laundry list of things to do). Just 2 hours a month would change the state of affairs in the CFML community and propel our language forward.

Filed under  //   CFML   Help   Open Source  

Comments [23]

Loading mentions Retweet

CFML Advisory Committee -- My Thoughts

As for the narrative of what happened to the demise of the committee, it isn't worth my time to comment on it.  It is what it was and I have nothing if any real interest to add to what has already been said by Adam, Matt and Sean.  My resignation letter clearly explains my resignation:

http://blog.maestropublishing.com/open-cfml-advisory-committee-resignation-lett

In his blog post, Adam alludes to some inside knowledge on my life and the demands on my time.  Adam has absolutely no understanding or knowledge of my daily life and demands. It is rather imprudent and extremely rude to make assumptions and presume some alternate agenda.  This is the issue I take with Adam's post.  Straight from my resignation letter: "it has become increasingly difficult for me to contribute sufficiently to the CFML specification process".  I spent a lot of time over a period of a couple months debating my resignation.  In the end, I felt I did not have the time to serve the CFML community in a manner that did justice to the committee as a CFML *community* representative.

Filed under  //   CFML   Open Source   Software Development  

Comments [1]

Loading mentions Retweet

OpenBD (CFML) on Google App Engine - Live Meeting June 8th, 2010 at 7pm ET

Just wanted to quickly blog that Matt Woodward and I are presenting on OpenBD on Google App Engine tonight at the Mid-Michigan CFUG at 7pm ET (about 30 minutes from the time of this posting).

Where: http://breeze.msu.edu/mmcfuggoogle  (Enter as guest)

When: June 8th, 2010 - 7pm ET

Description:

If you want to take advantage of the power of cloud computing but want to focus on applications instead of server infrastructure, you owe it to yourself to check out Google App Engine. Google App Engine lets you deploy applications to Google's infrastructure with the push of a button, and the best part is that for many applications it's entirely free of cost.

In this presentation we'll discuss both the benefits and downsides of living in the cloud, outline how Google App Engine differs from other cloud solutions, and demonstrate how to build and deploy a simple CFML application to Google App Engine using Open BlueDragon, which is the only CFML engine compatible with Google App Engine.

If you're interested in running your CFML applications in the cloud come get in on the ground floor, because with a few simple tips and tricks, it's all clear skies.

Filed under  //   CFML   Google App Engine   Open BlueDragon   Presentations  

Comments [0]

Loading mentions Retweet

Unofficial CF bug database mirror setup = wake up Adobe

This website is an live unoffical mirror of the Adobe ColdFusion Bug Database created by Elliott Sprehn.

I was created because the Flex based UI that was provided by Adobe is a real pain to use, specifically lots of text is not selectable, the Bug Areas dropdown is a mile long with no scrollbar, and it won't work on something like an iPhone.

This website is not affiliated with or owned by Adobe, Inc.

There is definitely something wrong with the idiotic bug database for ColdFusion at Adobe. The Flex interface is horrible. It's meant as no offense to the developers of the Flex interface but the user experience is painful at best. I can't even use it on my netbook because the there is no way to resize boxes or popups to maximize the lower resolution. Then there is mobile access (iPhone / Blackberry).

I understand the intentions of Elliot are good, but having to mirror the bug database should be a wake up call to Adobe to fix their issues. However, I don't believe it's totally the Flex interface. I would guess it's the out-dated issue tracking software they use.

Flame away at me if you want - it won't do any good...

Filed under  //   Adobe   CFML   Greedy Corporations   User Experience  

Comments [1]

Loading mentions Retweet

Is a Pure Meritocracy Possible in Open Source?

I've been asking myself this question a lot lately.  Before we continue this discussion, let's look at how Meritocracy is defined (as by Wikipedia):

Meritocracy is a system of a government or other organization wherein appointments are made and responsibilities assigned to individuals based upon demonstrated talent and ability (merit). In a meritocracy, society rewards those who show talent and competence as demonstrated by past actions or by competition. Evaluation systems, such as formal education, are closely linked to notions of meritocracy.
Some open source projects like the Apache claim to be a meritocracy where contributors gain "status" by their merits usually through contributions (code, documentation, mailing lists, tutorials, etc.).  Some people say that the Apache Project is more egalitarian than meritocracy however I'm not writing this to lobby either case.

In the terms of the projects I'm involved with, the biggest for me is the Mach-II Project.  A lot of people on Team Mach-II were asked to be on the team because of pure merit.  Flashback to 2005 when I started with Mach-II and apply merit to me, I would never be selected -- I was too green.  I would say we try to run Mach-II as a meritocracy as much as possible, but I definitely believe there is a bit of benevolent dictatorship in the mix as well.

In the end, not every decision can be made by committee. At least a "good" decision made.  Some of the problems with committees are while they take account of a bunch of different view points they are terribly slow to move and sometimes produce less than desirable results.  Then introduce politics (especially when financial implications of multiple parties are involved) and things typically grind to a halt.  Committees only work when all parties involved want the same result.  I have little patience to be part of committees / processes that are jaded that progress can be made despite have multiple parties with different financial interests.

This is one of the reasons why committees by company / association appointment in open source just don't work.  Money will nearly always triumph over pure idealistic concerns even when "doing the right thing" would be better.  Does this mean that humans are just greedy by nature? I'm glad I don't have to answer that question (it's been a funny premise on the Simpsons before as well).

People appointed by merit (and not company / employer association) typically share a common goal.  However, who is to break a stalemate?  This why most "meritocracies" still have some person in the "dictatorship" role.  In regards to Mach-II, I definitely play this role.  In the Rails project, DHH still plays the role of the dictator when needed.

So yes, I believe meritocracies can exists, but in certain situations somebody has to play the role of "dictator" / "president" / etc.  However meritocracies need transparency to function properly.  Transparency will be a subject for a future blog post.

Filed under  //   CFML   Mach-II   Meritocracy   open source  

Comments [0]

Loading mentions Retweet

Looking for CFML / ColdFusion jobs in MN, CA, DC or Scotland? Here are some great places to start...

Seems to be there are a great influx of CFML / ColdFusion jobs available.  I've been asked by three people I know to ask around and I thought I would just post on my blog.  A lot of these jobs are looking for CFML framework experience.

AW2.0 - Scotland, UK

Located in the town of Dumfries, go join Alan Williamson and Andy Wu in the next generation of CFML using the latest cloud computing technologies.  I've personally interacted with both Alan and Andy online and I've found them to be extremely smart individuals.   Looks like they offering a bounty so if you are interested and I know you -- let me pass your resume on for you. Ideally, candidates would be local to the UK - but who knows?  Maybe a move across the pond is in store for you!

We are looking for the following roles:

Our recent hires are quoted as saying: "best job I have ever had"

By the way, if you are happy in your current role but you know someone who could fit the bill, then please pass their resume to us, and if we end up hiring them, we'll give you £500 bounty for your trouble!

CTIA - The Wireless Association - Washington, D.C.

A friend of mine, Ted Hovis asked me to pass this along with you.  Look for a fast paced job in the heart of D.C.?  Then go take a peek at CTIA job posting.  CFML framework experience (like Mach-II) a PLUS!

CTIA-The Wireless Association is seeking an experienced Senior Web Developer / Architect.  This individual will be responsible for planning, coordinating and maintaining the functionality and performance of CTIA's multiple web properties.

The person's duties are to: ensure the timely delivery of new applications and releases from a development to production environment, site monitoring, traffic and performance analysis. Assistance with general site related technical management and system / security considerations, as well as dealing with partner and consultant relationships, as well as with the technical evaluation and direction setting of web enterprise-related efforts.

Jobs2Web - Minnesota

My fellow TCCFUG member, Kevin Penny asked me to post about this job.  Job2Web offers employers a recruiting platform and is one of the fastest growing startups in Minnesota.  Kevin is always talking about all the neat stuff they having been using from JMS to Solr.  CFML frameworks experience such as Mach-II or Fusebox is a big PLUS however they are looking for somebody with Java experience.  Check out the Production Support Developer job posting.

Jobs2Web helps employers maximize their interactive recruiting strategy using our recruitment marketing platform. The Jobs2Web platform helps major employers to attract, capture, and communicate with quality talent all while measuring recruiting effectiveness using our patent-pending solutions which dramatically reduce dependency on expensive and less effective sourcing mediums.

Working within our company will put you close to our award winning technology that combines the best of recruiting and marketing solutions including Search Engine Marketing (SEO), SEM (Pay-Per-Click), Social Networks and Social Media Marketing, and Email Marketing.

The Production Support Developer ensures the stability, reliability, and performance of the Jobs2Web Recruitment Marketing Platform and associated applications through rapid resolution of production issues.

Build.com - California

Ever noticed that places like LightingDirect.com (owned by Build.com) use CFML?  I just did and then found out that Build.com is hiring for both Sr. Web Programmer and Jr. Developer.  Both list CFML frameworks as required experience.

Build.com is the 3rd largest e-tailer in the Home Improvement space.  We are profitable, rapidly growing, $200M/ year online retailer.  Our mission is to triple our business in the nest 3 years.  We are expanding our Software Development team to drive this growth strategy.

 

Filed under  //   Careers   CFML   Jobs  

Comments [0]

Loading mentions Retweet

Speedy Websites -- Free Online Presentation Recording on YSlow Available

Special thanks to Charlie Arehart and the Online ColdFusion Meetup for letting me present on Speedy Websites -- Using YSlow to Analyze Front-End Performance.  Here's an overview of what we talked about:

Websites are not always slow due to poor server-side code or database queries. Learn how to identify potential issues using YSlow and Google Page Speed to implement best practice changes to drastically optimize the front-end performance of your web pages. Front-end optimization helps to keep your users engaged, improve general server performance and reduce hosting/bandwith costs. A little front-end optimization elbow grease can yield dramatic results.

The presentation was recorded.  I apologize for the poor video quality.  Adobe Connect does not support Linux screen sharing so I used remote desktop sharing to a Windows machine using TightVNC.

Watch online now

Filed under  //   CFMeetup   CFML   YSlow  

Comments [4]

Loading mentions Retweet

cf.Objective() 2010 Redux - The Good, What I'd Change and the Ugly

It's the week after the conference and I'm sure everybody that attended is currently digging themselves out of the pile of work that accrued during the conference.  I decided to blog about the conference now before I forget things.

Before I continue, I want to thank all of the fellow Content Advisory Board (CAB) members that helped decide the topic for the tracks this year.  Without all the help and diligence, I doubt the conference content would have been so good this year.

The Good

The conference was great this year and here are some of the random things I really thought made the conference different than in past years.
  • The Birds of a Feather (BoFs) were organized and put into the printed schedule this year.  This needs to be done at least a month in advance otherwise the BoFs are not well attended.  The BoFs are some of my most favorite moments of the conference.
  • Just about all of the presentations this year seemed pretty polished and informative.  Maybe it was because we had a turn over in content completely or that a different speaker spoke on a needed topic than in past years.
  • This year the conference used green / red cards in a punchbowl to rate the presentation.  If you had comments, you could write it on the cards.  One suggestion is to add a "white" card to indicate "indifferent".  I understand the needs of having an imbalanced rating system (either good or bad), but most people will rate higher than needed if pushed into a corner.  I suspect that very few red cards were put into the punch bowl.  This system made it easy for attendees to provide at least a minimum amount of feedback.
  • I dare say I am biased, but the location of the conference is great (being that I live in the city of Minneapolis myself).
  • The schedule this year was great in the terms of timing.  This year the conference allowed 15 minutes between presentation slots and the presentation slots were 60 minutes.  This allowed for ample time for the presentation and QA.
  • The Duct Tape and Astronaut skit / presentation was great.  I hope to see the written technical comedy of Matt Woodward again next year.

What I'd Change / Add

There are a few things I'd change for cf.Objective() 2011.  I am not being negative here; merely critical as that is only way for cf.Objective() 2011 to be even better than this year!
  • I would reduce the total number of members of the CAB for 2011.  This year we had three "co-chairs" per track and the phrase "three's company" comes to mind.  Yes, the topic select was done in mostly democratic voting manner, however there still needs to be somewhat of a benevolent "dictator" for each track.  I'd suggest two CAB co-chairs per track.
  • Now this might come as a surprise to some because I'm the lead developer for Mach-II, but I would eliminate all framework talks from cf.Objective() 2011 especially for the major frameworks.  In retrospect, I would have not had talks for Mach-II, Model-Glue, ColdSpring and ColdBox.  The smaller / younger projects I could see a talk being presented such as FW1 and CFWheels.  At some point, the frameworks really self-evangelize themselves and the framework talks in general have lower attendance.  Plus, you see the major frameworks if other talks that are not directly related the framework nowadays.  This would free up a lot of space in the Process and Methodology track for other really neat things.
  • The RIA: Flex / AJAX / AIR track was the least popular track in the terms of attendance based on my causal observations.  This year it really made me wonder if RIA deserves a track in 2011.  This is because if you are a Flex / AIR developer you go to Flex360 or other AJAX oriented conference.  I feel that the RIA track is really not attracting RIA people to cf.Objective() and just waters down the real focus of the conference -- CFML!
  • I'm starting to worry about the increasing cost to the conference.  I hope the cost can be reduced for next year as $799 early bird is a bit pricey over previous years.  I'd like to see the early bird back down to under $599 for a three day event.  However, I'm not the money man for the conference.  This is merely a suggestion.
  • The Pecha Kucha BoF was very well received from what I hear (I was in the mobile BoF that night).  I would definitely bring that back, but during the day -- preferably each track getting their own.  Also, I hope to offer a presentation that is similar to Pecha Kucha -- "Choose Your Own Adventure" style presentation in which multiple short presentations are strung together in a choose your own adventure format.
  • I would setup a "private" StatusNet (identi.ca / twitter) network for the conference.  It would be great fun to have "private" channel just for the conference.  Plus, StatusNet (open source) supports file uploads and photo sharing.

Personal Observations

  • I did four presentations this year: Speedy Websites, Open Source Debugging Tools, Mach-II and OpenBD on Google Application Engine.  To be entirely blunt, I over extended myself this year.  Yes, the Mach-II presentation was a snap to plan (thanks Kurt) and Matt basically put the whole GAE presentation together.  It was a lot of stress for me this year especially after my wife and I decided to buy a house and move between time I agreed to four presentations and the actual conference.  Next year I'm limiting myself to a maximum of two presentations (if they even selected).
  • I am local to conference and therefore I commuted to the conference hotel.  My parking was paid for, however non-local speakers get hotel room.  Honestly, it would be a lot less stress for the local presenters to have been giving a hotel room (I would have happily roomed with Kurt to save money).  I just don't understand why locals get way less in the terms of "compensation" than non-locals.
  • This is sort of a pet peeve of mine so please excuse me for getting on my soap box for a moment.  The CFO steering committee (all names read), the CFO CAB (just a mention of the committee as a whole) and CFO Sponsors (all names read) were all thanked.  However, the speakers were not thanked (either by name or as a whole) for a second year in a row.  In all honesty it is probably just an oversight, but without the speakers the conference cannot happen.  I hope next year the conference decides to thank speakers directly during the "closing ceremonies."  At the first CFO in 2006, we all got $100 gift cards to the Mall of America (actually place that accepted Visa).

The Ugly

  • Actually, there was nothing ugly.  Just thought it would be a nice joke to put up that category.
That's my cf.Objective() 2010 redux.  I hope to be there in 2011 -- it was a blast!

Filed under  //   cf.Objective   CFML   conferences  

Comments [19]

Loading mentions Retweet

Prototype JS - Auto-Resize Text Area

Recently needed to auto-resize or auto-grow a text area in a form (with a maximum size).  Below is short a little Prototype JS version which you invoke by using:



new TextAreaResize('idOfElement');


This utility does not resize the text area smaller if an user deletes data from the text area (which is expected in most cases).



var TextAreaResize = Class.create();

TextAreaResize.prototype = {

    /*
     * PROPERTIES
    */
    
    /*
     * 
     * OPTIONS:
     * maxRows: integer (default 50)
     * The maximum number of rows to grow the text area
     * 
    */
    
    
    /*
    * INITIALIZATION - CONFIGURATION
    */
    initialize: function(element, options) {
        this.element = $(element);        
        this.options = Object.extend({maxRows: 50}, options || {} );

        Event.observe(this.element, 'keyup', this.onKeyUp.bindAsEventListener(this));
        this.onKeyUp();
    },

    /*
    * PUBLIC FUNTIONS
    */    
    onKeyUp: function() {        
        while (this.element.scrollHeight > this.element.offsetHeight && this.element.rows < this.options.maxRows) {
            if (this.element.rows < this.options.maxRows) {
                this.element.rows = this.element.rows + 1;
            }
        }
    }
};


Filed under  //   CFML   HTML   Javascript   Prototype  

Comments [0]

Loading mentions Retweet