Saturday, April 30, 2011

Wednesday, April 6, 2011

ColdFusion Weekly - Advice from the Past

Matt and I decied to move the ColdFusion Weekly to an archive on Posterous this week.  So I decided to listen to our last show while we ere chatting on IM and this little gem came across my ears.  I decided to transcribe it because it's worth it's weight in gold.  Bear in mind that this show is from June 2008 which is nearly three years ago.  I guess things haven't changed at all.



Matt: This timing is kinda interesting with the growing pains that are going on right now. It is obviously with all the open source going on, very - as people know from stuff I said -- it's a great time to be a CFML developer. We all need to figure this stuff out together. Some of the final things I'd like to say is that I hope that after people calm down a bit and that everybody can just be nice to each other. I'll just say that...

Peter: You know there is plenty of space out there.  We're not fighting for same square foot of land...

Matt: Yea, and the CFML community has always been a great community and we will continue to do that...  The other thing I'm starting to realize is and that is probably why you'll see me participating in blog comments less... I'm getting to the point with that a lot of people are say things that they might not otherwise say to you if you were in person...

Peter: Yea, whether your name is attached to your comment or not, there is a little additional bit of anonymity when it comes to commenting -- even if your name is there... just because you don't have to deal with somebody getting up in your face.

Matt: Right, so I guess I would say -- try to think about as if you were talking with people in person.  There is a lot of misunderstanding because of text communication -- everybody knows this -- there is no nuance to it and you don't know how people are delivering that message.  This is just one of the things that causes things to spin out of control like they have a bit recently.  Like I said, it's a fantastic time to be in this [CFML] world.  It's only going to get better for everybody involved.



ColdFusion Weekly - Version 3.09 - CFExit - 9:20-11:07

Monday, April 4, 2011

Dear Open Source Developers - Don't Ask for Personal Donations

Dear Open Source Developers,


Do it because you love it...


I believe that open source is a wonderful thing. I've spent countless hours working open source since I started my journey in 2005. I like to solve problems and architect solutions all while sharing this with the world.  I've learned more as a developer working on open source projects than on my day job.


However, greed is a bottomless pit. If you love something, just give it away. Don't ask for personal donations to fund your open source development.  If your heart isn't in it, then you shouldn't be working on it.  It's very easy to loose perspective on why you are involved in a project.  If wishlist items or donations are the only thing that keeps you going, then just stop.  You're efforts aren't helping anybody.


What to do about personal donations...


A couple years back, I was asked about a personal donation for my efforts on the Mach-II Project.  I decided that all donations should be make to a charity or non-profit on a per contributor basis.  Here's an example from the Mach-II Contributor's page:


 


For gifts of thanks to Peter, please consider donating to Second Harvest Heartland - the Upper Midwest's largest hunger-relief and food bank organization or Hands Together - helps the children of Haiti and runs a K-12 school in Cite Soleil slum for 7,400 students. They provide uniforms, books and daily meal to all students. Donations for Hands Together can be made at JustGive.

Most of the contributors for Mach-II have listed one or two places where donations can be made in their name for causes they care about.  I consider myself lucky because I live a life that is more comfortable, safer and fun than the majority of my fellow human beings around the world.  Just look at the disasters in Japan, New Zealand, Libya and other shaken places around the world. I don't need donations to be happy and I don't need them to stay involved in open source. My heart is in it and that is all that is required.


The challenge...


I hope this letter to open source developers makes you reconsider asking for personal donations.  There is nothing wrong asking a business for free hosting or other infrastructure so your project can do what it needs to.  We all know that most open source projects do not generate enough (or any) revenue from training and support to pay for the services needed to run their project.


So please take my challenge and ask for any personal donations to go to a charity or non-profit of your choice in your name. Help the world; you help yourself.  Plus, it's great karmic energy.


Namaste,
Peter

Thursday, March 31, 2011

An Open Letter to Amazon - Support Linux or Give Up Now!

Dear Amazon.com,


You were the first in many ways



  • You revolutionized the online buying experience

  • You were the first to really contend with Apple iTunes with Amazon MP3 and offer a DRM-free music experience which is unparalleled still to this day

  • You entice people to choose you over others by offering Amazon Prime and free two day shipping for everything. I am a member!

  • You give away TV shows for free with Amazon Prime members.

  • You started the eBook revolution with the Kindle (Sorry, Sony you failed).  The Kindle runs on Linux.

  • You started CloudDrive with 5gb of free storage that does not count against your quota when you buy music from Amazon MP3


You are still king of sales of physical items, but you are going to loose out to Apple in the digital sphere because you have failed to support the Linux operating systems for your software.  You take but do not give.  You take Linux and use it for the Kindle.  You have made hundred of millions of dollars on Kindle sales.  You fail to recognize that Linux support will help you combat your biggest digital content competitor.  Apple sells hardware - phones, MP3 players and computers.  They have a captivate audience with their poor customers because they have hardware platforms.  You're only hardware is the Kindle.


The time is up Amazon... You need to support Linux starting today or just give up now!


A little history of places where you don't support Linux:



  • Your Amazon MP3 software does not support the latest versions of Ubuntu; only the old 9.x versions.  I've been waiting for Ubuntu 10.x support for over a year now.

  • Your Amazon MP3 software does not support for 64-bit Linux operating systems. This has "been in the works" for more than a year now.  This is all smoke and mirrors on your part.

  • Your Amazon MP3 software cannot even be downloaded as source. This is a failure because Linux fans cannot build .deb and .rpm packages for their favorite flavor of Linux.

  • Your CloudDrive and CloudPlayer software does not support Linux at all.


Even Adobe is making an effort in making 64-bit version of the Flash Player for Linux. And I don't give praise to Adobe that often...


What Amazon can do today - I made a list for you!



  • Update your builds to work with the latest versions of Linux and add 64-bit editions for the top Linux operating systems for your Amazon MP3 Downloader software

  • Optionally create a way (even under NDA) for developers to access your software source so .deb and .rpm packages can be created for other Linux distros

  • Build Linux support for your CloudPlayer software with editions for the latest Linux operating systems and offer 64-bit editions immediately.  A widget / daemon like the Dropbox integration with Nautilus on Ubuntu would kick ass.


With the greatest candor,


Peter J. Farrell


Software Developer / Open Source Advocate / Linux Fan

Thursday, February 3, 2011

Checking Bytes of Content-Length Header against the Content Body in CFML / ColdFusion

Sometimes you need to check to see if the POST or PUT content body is contains the same number of bytes indicated in the content-length header.  Remember that the content-length value is the number of bytes not the length of the content body string.  Depending on the character set encoding, some characters in the content body may have more than 1-byte per character.  It's ultra important to remember that when you check the content body against the value in the content-length header.  Also, you should only check the number of bytes when the request is of HTTP method PUT or POST as there is not content body for GET and DELETE requests.

The sample below tries to decipher the charset from the content-type header (if available).  Most REST / SOAP APIs require that all POST and PUT requests have content-type header in which the charset is usually a component value.  If your API doesn't require one, you may consider making that a requirement for POST and PUT operations.

Example

<cffunction name="performContentLengthChecks" access="private" returntype="false" output="false"
   hint="Performs content-length header and body checks.">

   <cfset var content = GetHttpRequestData().content />
   <cfset var headers = GetHttpRequestData().headers />
   <cfset var contentType = "" />
   <cfset var charset = "ISO-8859-1" />
 
   <cfif StructKeyExists(headers, "Content-Type")>
       <cfset contentType = headers["ContentType"] />
     
       <!--- Find a charset in example "application/xml; charset=UTF-8"--->
       <cfif ListLen(contentType, ";") GTE 2>
           <cfset charset = Trim(ListGetAt(ListGetAt(contentType, 2, ";"), 2, "=")) />
       </cfif>
   </cfif>
 
   <!--- Check that the content-length header was sent --->
   <cfif NOT StructKeyExists(headers, "Content-Length")>
       <cfthrow type="MissingContentLength" />
   <!--- Check that the number of bytes in the content-length header of the raw content equals the header value --->
   <cfelseif headers["Content-Length"] NEQ Len(content.getBytes(charset))>
       <cfthrow type="IncompleteBody" />
   </cfif>      
</cffunction>

Wednesday, December 8, 2010

OpenCF Summit: What It Is, and What It Isn't (via OpenCF Summit)



Several people emailed me today about the latest episode of the CFHour podcast, in which the hosts spend a good chunk of time at the end of the show talking about OpenCF Summit and open source in general.
Although in my opinion a great deal of what was said on the podcast was quite ill informed, which I suppose isn’t surprising given that they didn’t contact us to get any information about OpenCF Summit, it did get me thinking that we need to do a better job of sharing with everyone what’s behind OpenCF Summit, the focus of the event, and the goals we have for OpenCF Summit participants.
Please consider this to be the beginning of the discussion. If something needs additional clarification, or if you have any ideas at all about what you think we could doing better, we absolutely appreciate any feedback you can give us.
We are relying on you to help us make OpenCF Summit the event you want it to be, and the event that the CFML community needs it to be.

OpenCF Summit is …



1. Focused on educating CFML developers about free software and open source.

Even though
free software and open source have been major forces in the software industry for over 25 years, as a general rule we still see a lot of misunderstanding and misinformation about these topics in the CFML community. This was the #1 reason for creating OpenCF Summit that came up in our early discussions about the event.
The people involved with OpenCF Summit are extremely passionate about free and open source software so we want to do everything we can to help people understand these topics better, and these are big enough and important enough topics that in our opinion they can’t be adequately covered at existing CFML events.
We want OpenCF Summit participants to see the tremendous personal and professional benefits of being involved with free software projects. We want participants to inspire each other to take the plunge and contribute to open source projects. And we also want participants to learn about the business aspects of open source from people who live in this world every day.
To help reach these goals we’re planning on having a volunteer table staffed by the
Free Software Foundation to talk to attendees about free software, and we’ll have presentations about the various philosophies behind free software and open source, and free software licenses, from people who know these topics inside and out.
And of course Mura, Railo, and aw2.0 will have a lot to say about open source as it relates to business.
We cover this topic in more detail below, but it’s important to understand that OpenCF Summit is not focused exclusively on the open source CFML engines. The CFML community as a whole will benefit from being better informed about, and increasing its participation in, free software and open source, regardless of anyone’s CFML engine of preference.
2. A place to gather with fellow CFML developers and discuss the important issues facing our community.
Above All, OpenCF Summit is a CFML Conference
Regardless of the name of the event or its specific focus, at the end of the day OpenCF Summit is a CFML conference.
If you’ve been to other CFML conferences you know that not only are CFML developers some of the smartest, nicest, and most giving people you’ll ever meet, they also know how to have a damn good time. OpenCF Summit will be no exception on any of these points, and I’m already looking forward to all the great conversations I’m going to have with all of you at the event.
In addition, we feel in-person settings are the best venue for facilitating open discussions of issues and helping us all work together to solve them. Mailing lists, Twitter, IM, blogs, and the like are great, but they’re simply no substitute for getting together face-to-face with people that share your interests and passions.
I always return home from events like cf.Objective() and BFusion with my brain overflowing with ideas and inspiration. We can’t get too much of this in the CFML community.
Challenges Can Only Be Overcome When You Face Them Directly
The people involved with planning OpenCF Summit have been doing CFML development for many, many years. I personally have been doing CFML for about 14 years now, and like many of you we’ve seen the ebbs and flows in the CFML world.
We see the technology we love get slighted, passed over, even derided, and we all want to do what we can to help both defend CFML as well as grow its popularity.
Let’s be honest: CFML is currently facing some of the greatest challenges it’s ever faced. Ignoring them won’t make them go away, and if we start turning against each other, we really are in trouble.  Finger pointing, he said / she said, and accusations of broken promises are wasted time that could be better spent doing positive things for the community.
New applications, language features, and general innovation are what will attract new developers to the CFML community.  Drawn out brawls over who’s “right” will do nothing but drive people away.

The good news is that even with these increasing challenges, we’re also in the best position we’ve ever been to overcome them. With open source, our collective brain power, and the fantastic technology that is CFML there’s nothing we can’t overcome. We simply have to focus on the collective goals that benefit us all instead of dwelling on our minor differences.

3. A place where you can learn from, get hands-on help from, and code alongside your favorite CFML developers.
Face-to-Face Time is Worth a $1000/hr
Obviously at this point we don’t know who all will be attending (if you haven’t registered yet, why not do it now!), but given what we do already know about who will be at OpenCF Summit, and given the fact that registration tops out at about 120 people, you’ll have plenty of opportunities to pull people aside and ask those questions you’ve always wanted to ask but maybe didn’t have time to write up in an email or a blog comment. And nothing beats sitting down with someone in person, cracking open those laptops, and sticking with the issue until you really understand it.
Help Desk: Sometimes a Second Mind Does the Trick
We’re also planning a volunteer help desk that will be running throughout the event so people can get help with their toughest programming or configuration problems, so if you want to offer your help in your area of expertise, consider yourself recruited! Don’t think you have to be some uber guru in order to be the person that saves the day for a fellow developer; we all have our own areas of expertise, and we want to foster sharing as much as possible at OpenCF Summit.
Hackfest: Work on an Application That Will Help a Charity / Public Service Organization
Finally, we’re planning a hackfest that will be going on throughout the event, the end result of which will be an application that will be donated to a worthy charity or public service organization in the Dallas area. This is your opportunity to write code with people you may never work with in a “day job,” and writing an application together is one of the best way for programmers to learn from one another.
4. A place where you can have a direct voice in shaping the future of CFML.
Have you ever wanted to sit down in person with the people behind OpenBD, Railo, or your favorite open source CFML project? Or maybe you have an idea for a new feature in the CFML engines that you simply can’t explain well without literally showing someone what you mean.
At OpenCF Summit, you can. Of course all open source projects have mailing lists, but there’s simply no substitute for having face-to-face back and forth when it comes to brainstorming on all the cool stuff you’d like to see CFML be able to do in the future. You’ll be talking directly to the developers on the open source engines and other open source projects, so your voice will absolutely be heard.

OpenCF Summit isn’t ...



1. We aren’t focused solely on open source CFML engines.
OpenCF Summit is extremely appreciative of the support we’re receiving from all of our our generous sponsors, two of whom are Railo and aw2.0 (which for those of you who don’t know is the company behind Open BlueDragon).
Because the major development in open source CFML in the last two years is the availability of open source CFML engines on which to run all the great open source CFML applications, educating participants about Railo and Open BlueDragon will be an important part of the conference.
But this certainly isn’t the only focus, so if people have that impression we haven’t done a good job of explaining OpenCF Summit. As stated above, the major focus if we had to choose only one is educating people about free and open source software as a philosophy, as a way to license software, as a great career move, and as the powerful underpinnings of business.
2. We aren’t anti-Adobe or in any way exclusionary.
Everyone (yes, everyone!) is welcome to attend OpenCF Summit. We have an open topic suggestion and call for proposals application (which incidentally we shared with cf.Objective()) that lets you see suggestions and proposals immediately as they’re submitted, and lets you vote for and comment on the topics submitted as well. Anyone can submit any topic they like.
People who want to learn more about free software and open source should attend OpenCF Summit regardless of their CFML engine of choice. Even if you take the CFML engines out of the picture, free and open source software is vital to the future of CFML. If we as a community can build killer open source applications that just happen to be in CFML that’s a powerful way to spread CFML outside the community.
We also encourage people who are skeptical about the open source CFML engines and the role they play in the future of CFML to attend. We want to hear your opinions and learn from your perspectives because it will only make the CFML community stronger as a whole.

“The Future of CFML”: A Clarification


A Little Backstory
What seemed to irk one of the hosts of the CFHour podcast the most is a BOF we have on the OpenCF Summit schedule entitled “The Future of CFML.” This is a joint BOF with OpenBD and Railo in which, as the title indicates, the topic will be the future of CFML as a language and platform.
We intend this to be a session in which OpenCF Summit participants can voice their opinions about anything and everything related to the future of CFML, from language syntax, features, and functionality to higher-level topics like  where CFML is going in relation to cloud computing and other trends in the web development world.
I agree that there’s a missing player here. Let me be completely honest and open about why Adobe is not currently on the schedule.
We’ve had a lot of discussions about the role Adobe might or might not play in OpenCF Summit as we’ve been planning the event. I hope it’s no surprise to anyone that given the focus of the event it didn’t make sense for us to approach Adobe to be a sponsor of OpenCF Summit.
Also, based on a hallway discussion a couple of OpenCF Summit steering committee members had with an Adobe employee at cf.Objective() 2010, it was our assumption--right or wrong--that if we did approach Adobe about sponsorship they would likely decline.
I trust even our critics will be able to see the logic behind our line of thinking on this. Even if you don’t agree with the logic (which could well be flawed), please don’t drum up a conspiracy where there isn’t one.
We Failed to Address This at the Right Time
Where we failed, and I personally take responsibility for this, is once Adobe wasn’t in our minds as a potential sponsor of OpenCF Summit, considering other ways to approach them and see how they might want to participate fell by the wayside.
It’s something that was in the back of my mind but with all the other details related to planning the conference, it didn’t get addressed in a timely fashion. Please bear in mind that this is the first year for OpenCF Summit so some details--large and small--do slip through the cracks.
We see now how this might appear deliberately exclusionary. That was never our intent, and for that we apologize.
We Welcome Adobe to Participate
We welcome Adobe to participate in OpenCF Summit if they’re willing.
While we haven’t yet thought through specifically what “participation” would mean (and we’re very interested to hear Adobe’s thoughts on how this might work), this is our open invitation to representatives from Adobe to participate in OpenCF Summit.
Rest assured that we will also be contacting folks from Adobe directly in the event they don’t read this rather lengthy blog post. ;-)
I for one think it would be unbelievably beneficial to have the people behind the three CFML engines all in the same place at the same time, not only so they could talk openly about some of the issues all the engines are facing, but also so OpenCF Summit attendees can interact with representatives from all three engines in person, simultaneously.

Hope That Helps!


This post covers a lot of issues that we should have addressed quite some time ago, so we hope it helps people understand the reasoning behind the creation of OpenCF Summit and our goals for the event.
If you have comments feel free to add them to this post, or if it’s something you’d rather discuss with us directly, email info@opencfsummit.org and we’ll be more than happy to have a conversation with you.
Hope to see you all at OpenCF Summit in February! Go register now and help us out by telling a friend to do the same!



Friday, November 5, 2010

Alice - Dancing Under the Gallows

[youtube http://www.youtube.com/watch?v=lwR0QFgNT28?wmode=transparent]


I watched that a few weeks ago when the view count was under a thousand. It is a very moving story. I think the main point of the clip is not about being a holocaust survivor -- it's about her warmth and humanity that is expressed through her music. I wish there were more people like Alice in the world.  People like this replanish my faith in humanity.