Saturday, August 20, 2011

Mint 11 - Broken or No Workspace Switching, Cannot Move or Resize Windows

I was playing around in Compiz and I enabled "Desktop Cube".  This broke a myriad of things in such as missing title bars and the inability to move windows in Mint 11.  I reverted the Desktop Cube, but Compriz did not return the setting before I enabled this plugin. Those were easily fixed:

  1. Goto Control Center

  2. Select Compiz

  3. Scroll down to Window Management to fix the inability to move / resize windows

    1. Enable Move Window, Resize Window, Application Switcher, etc.

  4. The broken ability to switch workspaces is some options under "Desktop" in Compiz were turned off

    1. Enable Desktop Wall and Viewport Switcher

I'm blogging this in case I need to remind myself how to fix this issue.

Tuesday, May 17, 2011

Stop Pesky Leafleting - Free No Handbills, Leaflets, Pamphlets Sign for Minneapolis Residents

No Handbills Sign.pdf
Download this file

Are you sick of getting commercial handbills (i.e. pamphlets, circulars, leaflets, advertisements, etc.) on your property in the City of Minneapolis (Minnesota)?  I certainly am!  The Minneapolis City Code prohibits the distribution of commercial handbills on private premises if there is a notice (i.e. sign) prohibiting them.  I obtained this information from Minneapolis 311 which referred me to Chapter 403 of the City Code:

Chapter 403 - Handbill Distribution

So I created a sign that I posted in the window of our porch.  Feel free to download the PDF and use it on your private property.  It includes a citation with the city code and section number for those pesky handbill distributors you catch.  Minneapolis 311 also said that you can the Minneapolis Police Non-Emergency number at 612-348-2345 if you catch a handbill distributor leaving commercial handbills.  There are some handbills that are considered non-commercial or protected speech (such as political and religious) so you might err on the side of safety if the handbill is not clearly a commercial handbill.

Wednesday, May 11, 2011

cf.Objective() 2011 - 2nd Annual Google Map - Places to Eat, Drink or Things to Do


Let me know if you want to add anything on the map.  I'll add you as a collaborator!

Tuesday, May 10, 2011

cf.Objective() Announces List of Community Events

Hot off the presses...go check out the list of community events including the Enlist HackFest:

cf.Objective() 2011 Community Events

Enlist - Open Source Hackfest at cf.Objective() 2011

Matt Woodward, Kurt Wiersma and I are proud to announce that the Enlist App that we started at OpenCF Summit will have an un-official hackfest at cf.Objective() 2011.  So if you are attending cf.Objective() 2011 this week and you're interested in becoming open source contribute, please join our un-official hackfest.

Enlist is an open source and free application that aims to help non-profits organize volunteers, track volunteer hours and management volunteer rewards.  The HackFest aims to build a functional application that could be leveraged by non-profit organizations to better manage and track everything to do with volunteers. The idea came forth after  Peter Farrell volunteered for a Team Ortho event and noticed that all volunteer hours were being tracked on spreadsheets. These spreadsheets were used to generate volunteer reward "bones" (points) in which volunteers could use to enter Team Ortho race events or purchase running gear.

All you need to start is to find Matt, Kurt or me at cf.Objective() and get a contributor account:

  • Peter J. Farrell - project leader - peter [at]

  • Kurt Wiersma - team leader - kurt [at]

  • Matt Woodward - team leader - matt [at]

Hope you see you there.  This is a unique opportunity at conferences.  We promise you'll learn a lot!


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.


Thursday, March 31, 2011

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


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.


<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, "=")) />
   <!--- 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" />