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

Open Source

 

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

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

Open letter to Google: free VP8, and use it on YouTube (via FSF)

Dear Google,

With your purchase of On2, you now own both the world's largest video site (YouTube) and all the patents behind a new high performance video codec -- VP8. Just think what you can achieve by releasing the VP8 codec under an irrevocable royalty-free license and pushing it out to users on YouTube? You can end the web's dependence on patent-encumbered video formats and proprietary software (Flash).

To sit on this technology or merely use it as a bargaining chip would be a disservice to the free world, while bringing at best limited short-term benefits to your company. To free VP8 without recommending it to YouTube users would be a wasted opportunity and damaging to free software browsers like Firefox. We all want you to do the right thing. Free VP8, and use it on YouTube!

It's about time that the debate between Adobe and Apple just ends. Google can end part of it by opening up the VP8 codec. Suddenly, H.264 is not relevant if there is a high performing codec that is being pushed on YouTube.

Filed under  //   Adobe   Apple   Google   Greedy Corporations   Open Source  

Comments [0]

Loading mentions Retweet

Why I'm Proud To Be A Dirty GNU Hippy (GoingWare)

By earning my bread through writing software, I made a pact with the Devil. In seventeen years spent working as a software engineer, I have been required to sign a non-disclosure agreement by everyone I have ever worked for. I have never been allowed to write Free Software. All but a tiny bit of the source code I have written in seventeen years of hard labor is now kept a jealously guarded trade secret by those who paid me to write it. Many of those companies are now long out of business, yet I could still be sued or even imprisoned should I release any of the source code I wrote for them.

So true and probably why there are a lot of people trying to figure out how open source can pay the bills. I'd be one of those as I like sharing my work, but if only it would pay my mortgage.

Filed under  //   Linux   Open Source   Software Development   Software Licenses  

Comments [0]

Loading mentions Retweet

Speaking at cf.Objective() 2010

I've been invited to speak at cf.Objective() 2010.  I am co-track chair for Tools & Integration track on the conference's content advisory board. I've gotten a sneak peek at the line up of sessions and speakers -- this year looks amazing!  This is definitely one CFML conference you do not want to miss.  I'm proud to announce that I will presenting on the following topics.

Speedy Websites Through Better Front-End
We'll be using tools like YSlow and Google Page Speed to diagnose issues in which we can improve the front-end performance of a website.

Open Source Tools for Debugging
The title is pretty self-explanatory, but we'll be looking a variety of tools that can be used for debugging web applications.  Everything from Javascript to HTML to webservices to file systems to Java.

Living in the Cloud: CFML Applications on Google App Engine
I'm co-presenting this with Matt Woodward.  Cloud based computing, while a buzzword these days, is something that very compelling. So come see how cloud computing differs from traditional application development and how it can open up a different world for your applications.

Simplicity, Integrity and Velocity: What's New in Mach-II
I'll be co-presenting this with fellow Team Mach-II members Matt Woodward and Kurt Wiersma.  We'll be looking at the all the features in the almost ready for gold release of Mach-II Simplicity (1.8), what is already there for Mach-II Integrity (1.9) and hopefully a sneak peek at Mach-II Velocity (2.0).

I'll be sharing more on my presentations in the next few weeks, but take the moment to take advantage of the early bird pricing for cf.Objective() ends on January 29th -- so register now!

Filed under  //   Conferences   Google App Engine   Mach-II   Open BlueDragon   Open Source  

Comments [0]

Loading mentions Retweet

Drone Or Phone? (Shot of Jaq Podcast)

Download ogg Download mp3


It is not often you hear the words “iPhone Killer” thrown around the place and taken in any way seriously, but Android has been getting hopes and expectations a-pumping. Jono Bacon and Stuart ‘Aq’ Langridge crack open the story and explore the opportunities and risks that Google face in how the Open Source community see this exciting new mobile system.

An interesting podcast discussion on Droid or iPhone with Jono Bacon and Stuart 'Aq' Landgridge (i.e. J + Aq). I love the part about using the Droid OS on netbooks. It particularly interesting to hear about how Droid is more "open source" in the terms of applications than the closed source iPhone platform.

Filed under  //   Droid   iPhone   Open Source   Software Development  

Comments [0]

Loading mentions Retweet

New Query Functions Released (Open BlueDragon Blog)

New Query Functions released

Published: 2:01 PM GMT, Friday, 1 January 2010

We've justed finished the a whole new set of functions to help with the manipulation of Query objects and their respective datasources.

The following table highlights all the current functions within the Query category available in the OpenBD (nightly build) release:

DatasourceCreate Adds a new datasource to the system for use with any database functions. This does not persist over server restarts
DatasourceDelete Removes the given datasource. Note, it will not remove any datasource that was registered with the underlying bluedragon.xml file
DatasourceIsValid Checks to see if a given datasource has been previously registered using DataSourceCreate()
QueryAddColumn Adds a new column of data to the exist query object, returning the column number
QueryAddRow Adds the specified the number of rows to the end of the query
QueryColumnArray Returns all the data in a query for a given column
QueryColumnList Returns all the data in a query for a given row but as a structure
QueryDeleteColumn Deletes the column from the query, returning the deleted column data as an array
QueryDeleteRow Deletes the row within a query object. Modifies the original query object
QueryIsEmpty Determines if the query has any rows
QueryNew Creates a new query object with the columns past in of the optional types
QueryOfQueryRun Executes a Query-of-Query against a previous SQL result sets. Function version of CFQUERY
QueryRowStruct Returns all the data in a query for a given row but as a structure
QueryRun Executes the given SQL query against the given datasource, optionally passing in paramters. Function version of CFQUERY
QuerySetCell Sets the given column within a query with the value at the given row, or the last row if not specified
QuerySort Sorts the query based on the column specified and the order criteria given. Modifies the original query object
QuotedValueList Returns a quoted list of all the values, for a given column within the query, delimited by the value given
ToCsv Transforms the query object into a Comma Separated Value (CSV) block
ToHtml Transforms the query object into an HTML TABLE block
ValueList Returns a list of all the values, for a given column within the query, delimited by the value given

These functions will greatly increase the speed and efficiency to which you can work with Query objects.

Many of the functions where available using other means. For example, QueryDeleteColumn could have been achieved by performing a query-of-queries leaving out the column you wanted to remove. This however had a huge overhead, as well as duplicating the data.

You can read more about the DataSource functions over at Alan Williamson's blog.

Thanks to Peter J Farrell for many of his suggestions.

One word. Woot! Happy New Year!

Filed under  //   CFML   Open BlueDragon   Open Source   Software Development  

Comments [0]

Loading mentions Retweet

Help keep the Internet free by saving MySQL (Monty Says)

A big part of the Internet is built on LAMP (Linux, Apache, MySQL and PHP/Perl/Python). Now Oracle is trying to buy Sun, which owns MySQL.
It's not in the Internet users interest that one key piece of the net would be owned by an entity that has more to gain by severely limiting and in the long run even killing it as an open source product than by keeping it alive. If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices. In the end it's always the consumers and the small businesses that have to pay the bills, in this case to
Oracle.

If this is the only blog post you read in 2010, then I highly encourage you to read the entire self-interview style blog post by clicking the "via" click above. "Monty" is the guy that started MySQL over 27 years ago.

I personally believe that Oracle can have Sun by should not have MySQL. The one critical part of the LAMP stack is at risk. Without MySQL, we only have Postgres which is great but does not have the same "business" community around it yet. So I encourage you to sign the Save MySQL petition at http://www.helpmysql.org which will be forwarded to the European Commission which must approved the Oracle / Sun deal. Considering the amount of time and money spent by Oracle to get this deal approved the future of MySQL is definitely at risk. Oracle could have quickly gotten the deal done if they had divested MySQL AB immediately, but they willingly have lost an estimated $1 billion in order to get MySQL.

Even if you don't use MySQL, you'll end up giving more money to Microsoft for their DB or pay Oracle for theirs then I highly suggest you sign the petition. The future of free internet is at stake!

Filed under  //   Greedy Corporations   MySQL   Open Source   Software Development  

Comments [0]

Loading mentions Retweet