Skip to main content


Showing posts from 2010

Wake Up, Geek Culture. Time to Die | Wired

Fast-forward to now: Boba Fett’s helmet emblazoned on sleeveless T-shirts worn by gym douches hefting dumbbells. The Glee kids performing the songs from The Rocky Horror Picture Show. And Toad the Wet Sprocket, a band that took its name from a Monty Python riff, joining the permanent soundtrack of a night out at Bennigan’s. Our below-the-topsoil passions have been rudely dug up and displayed in the noonday sun. The Lord of the Rings used to be ours and only ours simply because of the sheer goddamn thickness of the books. Twenty years later, the entire cast and crew would be trooping onstage at the Oscars to collect their statuettes, and replicas of the One Ring would be sold as bling. via
Absolutely brilliant analysis of the mainstreaming of geek culture and the effect of what Oswalt calls "ETEWAF" (Everything That Ever Was - Available Forever). It's kind of along the lines of my Moon Pie post (

451 CAOS Theory » Big business better use open source

Thus, to say that an organization avoids or bans open source software today is tantamount to saying that organization does not save money, does not do things efficiently and is not progressive. There may be those who continue to believe that the use of open source is still relegated to geeky development or IT operations teams, or that it is limited to test and dev projects, but it has already made inroads into production. Whether the leadership of big business knows it or not may be another matter. via
This seems to be a theme in articles covering free software as the year comes to a close. Looking back on 2010 it does seem that free software finally lost most of its "geek sheik" image and is simply an important part of most IT organizations.

CFML and Oracle Stored Procedures: Experimentation and Solutions

I love a challenge. Most of the time when someone tells me something can't be done, I have to prove it to myself even if these attempts are frequently exercises in futility. And even if said something actually cannot be done, I always feel like I learn a ton during the process.

Such was the case when I was working with a coworker recently on getting data back from some Oracle stored procedures into either Open BlueDragon or Railo. Before I proceed, let me state very clearly that I hardly ever touch Oracle so if I'm off-base on any of this I'm happy for an Oracle expert to educate me. In my defense, I will say I did quite a bit of searching on this topic, and more hours of experimentation than I care to admit, so I wasn't just screaming "Oracle sucks!" and not actually trying to intelligently and logically get things to work. Also bear in mind that in this situation we didn't write the storedprocs and we do not have the ability to alter them. (Necessity is…

CFML Developer Position - Smithsonian Institution

Contact Loren Scherbak (contact info below) if interested.========================================
Job Link on USAJOBS: Archives of American Art at the Smithsonian Institution is offering a rare, Federal Grade 11 programming position. We are a Coldfusion 9 shop with a lot of creative opportunities to work with XML. We only have one dedicated programmer position, but this position gets to work with a great team comprising a web/usability specialist, a metadata specialist, and a database administrator. The Archives is in the forefront of the archival community in using library catalog data (MARC) and Encoded Archival Description (EAD XML) to describe fully digitized collections on our website.I can talk with anyone at great length about our work, but I want to get this announcement out to as many people as possible as we have a very short window for the job opening. The application is due by Dec. 3rd.Loren Scherbak
Archives of American Art
Smithsonian Institutio…

20+ CFML Developer Positions Available - Irvine, CA, Culver City, CA, or Plano, TX

Please contact Brandon Fujii (contact info at the end of this post) for more information. ============================== We have over 20+ openings for ColdFusion Developers. They can sit in Irvine, Culver City and Plano.Cold Fusion Developers-Irvine, CA, Culver City, CA or Plano, TX
The Developer's main goal is to implement the application as specified within the planned timeframe. The Developer is also expected to help specify the features of physical design, estimate time and effort to complete each feature, build or supervise implementation of features, prepare product for deployment, and provide technology subject-matter expertise to the team.

Work with account managers to facilitate consensus in client meetings while projecting confidence, significant industry knowledge and basic facilitation skills
Collaborate with Tech Lead, System Architect and Business Analyst to integrate different perspectives into technical d…

SpringSource Tool Suite 2.5.1 Update Fails, and the Fix

Ever since I started using SpringSource Tool Suite I don't think I've ever been able to update it successfully through the normal Eclipse update process. STS 2.5.1 was released yesterday and sure enough, my update failed. At least this time I got a discrete enough error that I was able to find a solution.

If your update fails with an error along the lines of "could not remove directory {your_sts_dir}/dropins" then as the bug link above states, just create an empty file in that directory and it'll work (I just did 'touch foo' to get something in there).

Supposedly this issue will be fixed in the next release. Hopefully I can update to that one to find out. ;-)

Setting the Initial Root Password for MySQL on CentOS

I was setting up a new CentOS server tonight and installed MySQL via yum. If you're familiar with installing MySQL via apt-get on Debian-based systems, you'll know that during the install it prompts you to set the MySQL root password. Not so on CentOS.

When I've installed MySQL on CentOS in the past, I could have sworn the default root password was blank, and that right after the installation is complete you set it like so:

mysqladmin -u root password NEW_PASSWORD

Either my memory is foggy, or something's changed with how this is done. No matter what I tried I kept getting "access denied" messages from MySQL and of course since I never set a root password, I have no idea what it wants from me.

Luckily there's a solution, at least one that worked for me, though I still feel like I may be missing something so although this worked, I'm happy to be told there's a simpler way.

First, make sure no MySQL processes are running:

killall -9 mysqld

Next, start…

‘Code for America’ Programmers to Work in City Governments

Four cities will each receive a team of five open source Web programmers for 11 months, as selected by Code for America, a new nonprofit that’s pairing Web geeks with city governments.

The selected cities were Boston, Seattle, Philadelphia and Washington, D.C. Each city paid $250,000 to participate, which included submitting applications and proposals for what they wanted from a team of fellows.

Code for America recently announced its 20 fellows for 2011, chosen from among 360 applicants. The fellows will work mostly from Code for America’s San Francisco headquarters; the programmers will spend February of next year at the actual local governments they’ll be serving.
Really cool stuff. Can't wait to see what comes out of this in Seattle.

Apache Error "Document Root Doesn't Exist" on Red Hat Enterprise LinuxWhen the Document Root DOES Exist

I upgraded one of our Red Hat Enterprise Linux VMs to Tomcat 7.0.4 tonight, did a bit of Apache reconfiguration, and when I restarted Apache I got a "document root doesn't exist" error even though in fact the document root does exist. (Trust me Apache, it's there.)

I double-checked the owners and permissions of all the directories in question and everything was identical to how things are set on another RHEL VM in this cluster on which I haven't upgraded Tomcat and done the reconfiguration yet. I was at a bit of a loss, so I googled around a bit and the prevailing sentiment seemed to be this was related to either A) a config file copied from a Windows box and the line breaks were throwing things off (wasn't applicable in my case), or B) the fact that SELinux was enabled.

If you've been around the Red Hat flavors of Linux long enough you'll remember that SELinux used to be absolutely horrible. For years the very first thing you had to do on Red Hat and…

CFHTTP "Could Not Determine MIME Type of File" Error with FacebookGraph API

I'm finishing up the Facebook and Twitter integration for the OpenCF Summit application we'll be launching soon, and I was running into an error when calling the Facebook Graph API via CFHTTP.

If you've worked with Facebook you're probably aware that once a user logs into Facebook via your application, a cookie gets set that contains an access token you can use to grab additional details about the Facebook user via the Graph API. You make a simple HTTP call to and you get JSON back containing the details about the user that they have authorized you to retrieve.

The first issue I ran into is if the access token contains a pipe you may get a "Failed to set URL:Invalid query" error (and thanks to Andy Wu for pointing out to me that was the issue!). Simple enough to fix by putting the access token into a CFHTTPPARAM tag:

<cfhttp url="">
    <cfhttpparam type="url" na…

Open BlueDragon Admin Console Version 1.4 Updates

It's that time again! As many of you know Open BlueDragon is on a regular six-month release cycle, so late October means it's time to certify those great nightly builds as gold, stamp a final version number on it, and immediately get started on the next version.

Along with each new release of OpenBD comes updates to the admin console, which is an open source project of its own, written entirely in CFML. I point that out not only to let you know if there are features you'd like to see in the admin console I'd love to hear about them, and also since it's written in CFML if you want to get involved with the project you're more than welcome!

Version 1.4 of the admin console doesn't have major changes (we have more major revisions planned for the 1.5 release next April), but I managed to squeeze some nice new features in here. See the attached screenshots to get a visual on these.

Application and Session Status Info

The admin console now displays the number of ru…

"Shiny app syndrome" and Gov 2.0 - O'Reilly Radar

This was sent to me by a coworker--the entire article is really great but the person interviewed in this video makes some excellent points about the dangers of requiring specific devices to access services. This is bad from the standpoint of freedom and technology in general, vendor lock-in, etc., but is absolutely horrible when it comes to government services.
Unless they're developed by a third party completely independent of any particular government agency, citizens fund the development of the applications that make the promise of letting them interact more directly and more effectively with their government. By limiting access to a specific device, it's like simultaneously spitting in the face of the citizens that fund the development and handling Apple a check.
With the decreasing cost and increasing availability of technology the digital divide was supposed to get smaller, not bigger, but by requiring citizens to buy one of the most expensive phones o…

Grails + CouchDB #s2gx

Scott Davis - thirstyhead.comNoSQL Databases in General given the number of big companies using them, clearly they're ready to use today time to re-examine our unnatural obsession for relational databases rdbms has been around for 50 years now--well understood, great tooling, lots of information rdbmses are silos still good at what they do, but aren't necessarily well-suited to all data as developers we're being forced to use sql to express something that's crucial to the success of your application not our native language, kind of foreign when it comes down to it we use orm to insulate ourselves from sql express yourself in the native language of your choice instead of in sql Is ORM State of the Art? really just a bridge why aren't there pure java or groovy datastores? persistence is pretty uninteresting to developers orm is a reasonable bridge, but a rather leaky abstraction as well ted neward: orm is the vietnam of computer science "[ORM] represents a quagm…

Polyglot Web Development With the Grails Framework #s2gx

Jeff Brown - SpringSourcePolyglot? "many languages" writing software in multiple languages some people would say if you do any web development, you're doing polyglot javascript, css, html, java, etc. in the context of this talk, we'll be talking about implementing the actual business logic with multiple languages Languages on the JVM 200+ languages available on the JVM many of these aren't exactly practical, but many are at least 10-12 programming languages available on the JVM that could be used for serious development big players are java, groovy, clojure, scala, jruby, jython which of these is the best? no answer of course personal preference, best tool for the job, etc. many of these languages solve specific problems really well all these languages are turing complete, so anything you can do in one you can do in another but depending on the problem you're trying to solve, you may find one language or another is ideally suited to the task at hand reached …

How to Analyze Your Data and Take Advantage of Machine Learning in YourApplication #s2gx

Christian Schalk - Google
Google's New Cloud Technologies
google storage for developers api compatible with amazon s3prediction api (machine learning)bigquery Google Storage
store your data in google's cloud any format, any amount, any timeyou control access to your data private, shared, publicaccess via google apis or third party tools/librariessample use cases static content hosting, e.g. static html, images, music, videobackup and recoverysharingdata storage for applications e.g. used as storage backend for android, appengine, cloud based appsstorage for computation bigquery, prediction api Google Storage Benefits
high performance and scalability backed by google infrastructurestrong security and privacy control access to your dataeasy to use get started fast with google and third party tools Google Storage Technical Details
restful api get, put, post, head, deleteresources identified by uricompatible with s3buckets -- flat containersobjects any typesize: 100 gb / objectaccess …

Google App Engine for Business 101 #s2gx

How to Build, Manage & Run Your Business Applications on Google's Infrastructure
Christian Schalk - Developer Advocate, Google
not really an advocacy positionstill in engineering, but work a lot more with users directlygo out to companies to help them be successful
What is cloud computing?
lots of different definitionspyramid of (bottom up): infrastructure as a service joyent, rackspace, vmware, amazon web servicesprovides cooling, power, networkingapplication platform as a service GAE falls in this categorytools to build appssoftware as a service google docs, etc. GAE
easy to buildeasy to maintaineasy to scale appengine resides in google's overall infrastructure so will scale up as neededstarted with only pythonwith java support, opened the doors for java enterprise developers By the Numbers
launched in 2008250,000 developers100,000+ apps500M+ daily pageviews 19,000 queries per second -- has almost doubled since January Some Partners
best buysocialwokxylabsebayandroid develope…

Developing Social-Ready Web Applications #s2gx

Craig Walls - SpringSource working on Spring Social, which is the brains behind Greenhouse (web/mobile conference app for SpringOne) Socializing Your Applications why would you want to do this? this is where your customers are--lots of people spend a LOT of time on Facebook if they're there, you want to be there with them Facebook--over 500 million active users third largest country in the world 50% log on to Facebook on any given day there's even a movie about it--that says something Twitter -- over 100 million users more than 190 million unique visitors monthly more than 65 million tweets per day Others: LinkedIn (80 million members), TripIt (230,000 trips planned per month) More: FourSquare, YouTube (2 billion videos viewed per day), MySpace, Gowalla, Google, Flickr how do you use this to better your application? really depends on the customers and applications don't want to make people come to you, better to interact with people where they already are you can have your…

Introduction to Tomcat 7 #s2gx

Mark Thomas, SpringSource Tomcat 7 Supports ... Servlet 3.0 JSP 2.2 EL 2.2 Java 1.6 New major release of Tomcat every time the spec has a major change Servlet 3.0 asynchronous processing pluggability annotations session management miscellaneous Asynchronous processing request processing is synchronous, but the response processing can now be asynchronous outline start asynch processing request/response passed to a new thread container thread returns to the pool new thread does its work allows container threads to be used more efficiently when waiting for external resources when rationing to a resource or any other time when the container thread would be blocking allows separation of request and response chat applications stock tickers all filters, servlets, and valves in the processing chain must support asynchronous processing not as asynchronous as COMET pluggability purpose was to improve developer productivity--worry less about application configuration annotations web fragments st…

Advanced GORM: Performance, Customization, and Monitoring #s2gx

Speaker: Burt Beckwith, SpringSourceOverview
demo of potential performance issues with mapped collections in GORMusing the hibernate 2nd-level cachemonitoring and managing 2nd-level cachesapp info pluginStandard Grails One-to-Many
library has many visitsvisit class has person name and date, with backreference to libraryWhat's the problem?
hasMany = [visits:Visit] creates a setsets guarantee uniquenessadding to the set required loading all instances from the database to guarantee uniqueness, even if you know the item is uniquelikewise for a mapped list--lists don't guarantee uniqueness, but they do guarantee order, so they still have to pull all records from the db to get the order rightyou get a false sense of security since it's lazy-loaded; only partially helpfulworks fine in development when you only have a few visits, but imagine when you deploy to production and you have 1,000,000 visits and want to add one morerisk of artificial optimistic locking exceptions; altering a…

Groovy Web Services, Part I: REST #s2gx

Speaker: Ken Kousen - Kousen IT, Inc.
currently working on book for Manning: "Java and Groovy: The Sweet Spots""Java is really good for tools and infrastructure. Groovy is good for pretty much everything else."Two Flavors of Web Services
SOAP basedSOAP wrapper for payloadmuch like an XML API on a systemmakes header elements availablelots of automatic code generation--tools are very maturestubs, skeletons, proxies, etc. are all written for yousprinkle annotations into your codebase to get a web service out of itREST basedeverything is an addressable resource (uri)
leverage http transportuniform interface (get, post, put, delete)a lot of rest web services available today aren't truly restful--e.g. amazon web services where you have to specify the operation namejust invoking methods over the web using URLs, but the request type doesn't matterREST -> Representational State Transferterm coined by Roy Fielding in PhD thesis (2000), "Architectural Styles and …

Clustering and Load Balancing With tc Server and ERS httpd #s2gx

Mark Thomas - SpringSource
Tomcat committertc Server developerresponsible for keeping tc Server and Tomcat in syncmemory leak detection in tomcat manager apprecent logging improvementssimplifying jmx accessall of the above started in tc Server, but have been contributed back and implemented these features in tomcatdon't want to get into having a significant fork of tomcatTypical Architectures
load balancer (round robin) -> httpd (sticky sessions) -> tc Server (clustered)don't go anywhere near tc Server clustering unless you absolutely have to--adds complexity and overheadonly thing tc Server clustering gives you is the ability for users not to lose sessions if an instance of tomcat goes downask yourself how big of a deal it is if your users lose their sessions when an outage occurs--if it's a big deal then you may need clusteringStarting Point
ubuntu 8.04.4 64-bit VMvmware tools installed64-bit sun jdk 1.6.0_21will be installing tc Server, Hyperic, etc. on this clean im…