Maven 1.0 users were spoiled with the console plugin, and now Maven 2.0 users can get a nearly equivalent experience with a high-performance bootstrapped prompt via the Command Line Interface plugin. Watch this quick screencast for a tour of using this plugin and start saving even more time with Maven.
Thursday, February 19, 2009
Monday, February 2, 2009
Relocating to a permanent home
Finally, the Denver Dev blog has a more official home attached to Ambient Ideas. The new URL is: http://ambientideas.com/blog/
This blogspot.com site will continue to stay up and serve up the old articles with comments, but all the existing articles through 2007 have been migrated to the new site as well.
All new posts will be put on the new URL.
Thanks for staying tuned! Up next, an article about Git and how it literally changes team and OSS dynamics.
Friday, January 16, 2009
iPhone SDK, Cocoa & RESTful Web Services, Memory Leak
Recently, I gave the second version of my iPhone and Java Web Services talk at the Boulder JUG. It was a great audience filled with interest and great questions. I promised them I would continue to load up my Delicious bookmarks with great iPhone links, and I'm doing just that.
Pertinent to that talk, let's quickly revisit that memory leak issue for NSURLConnection. In short, if you call sendSynchronousRequest, you get an internal memory leak of 128 bytes of a NSCFString object from inside the API.
To isolate this from my application coding skills via the iPhone and Java Web Services demo code, let's look at an example called ZipWeather from AppsAmuck. Attach the profile to the ZipWeather, exactly as downloaded. Run it. Type a zip code. It leaks.
It appears that the NSURLConnection:sendSynchronousRequest() Flaking out, even for others, calling this API to Amazon Web Services. I believe it may be the leak contributing to these hiccups. I've tried turning off the cache, but it still leaks. I've tried the async version and it still leaks too.
This Apple article even suggests using this same API in the same way that ZipWeather and my iPhone and Java Web Services app does.
In short, I'm submitting another Radar report to Apple about this and hope it doesn't get closed out as "Unable to reproduce" as João Pavão's defect # 6179277 did. I'm able to reproduce it every time, with everyone's sendSynchronousRequest calls.
I love the platform, but as you all know, one core API bug can really cause a lot of challenges until resolved. Let's hope this one gets resolved very soon!
References:
- SOAP Service Calls on the iPhone
- Stack Overflow thread on Cocoa Web Service Access
- Apple iPhone Dev Center
- A Blog about 5 languages calling web services, including Objective-C
- A continuation blog post specifically on Objective-C and REST
- And a download of a sample client in Objective-C that calls REST methods
- UPDATE: SeismicXML leak discussion
- UPDATE: MacRumors sendSynchronousRequest leak discussion
- UPDATE: NSXMLParser leaks too

Thursday, January 15, 2009
Open Source - 5 Big Reasons
I was asked to write a few paragraphs for a client on why they should primarily chose open source software in the current state of our industry. In addition to a few articles supporting these positions, many have posited that we should even use government incentives to further boost OSS as a spark to re-ignite the industry. Leave your feedback on what your feelings are on OSS and I'll look into using some of the responses in my next presentation...
Open source is gaining momentum like never before in the most respected of institutions and enterprises. Originally, the choice to use open source was made only by smaller companies for strictly financial reasons. Those reasons still hold, but are now joined by a chorus of other great points in the current intellectual property, commercial vendor, and economic state that the business world is currently in.
Interoperability is strongest in the Open Source realm. Open Source enjoys the absence of financial motivations to close data inputs, and the existence of desire to have adopters join in and migrate from other open and closed platforms. You'll find that there are numerous import & migration tools for your existing data, and you'll discover that your data is stored in highly interoperable formats for future migration to any platform your business needs dictate.
Cost continues to be a factor leading towards Open Source in today's economic climate. Open Source wins every time on initial acquisition cost, but also on maintenance expenses over time. You can budget for well known project costs without yearly surprise increases in maintenance just because a commercial vendor raises renewal prices.
Quality is also a strong point of Open Source. This can be surprising to teams who think that well funded commercial products would have higher quality due to all the talent on such teams. But Open Source also sports excellent talent, as well as the hidden weapon of breadth of automated unit tests, constantly guarding the product's quality at each and every release.
In this uncertain economic climate, it can actually make more sense to know you perpetually have the full source code to your product. This removes the dangerous dependency on the continued solvency of a particular vendor. Open Source allows you to control and know your software destiny beyond any outside economic influences.
In sum, Open Source presents an attractive package in terms of cost, sustainability, and quality that are a perfect fit for the current business conditions of 2009 and beyond.
Sunday, January 11, 2009
Matthew's Social Networks Graph, Winter 2009 Edition
Every once in a while, I aggregate all my social network links for the new subscribers to the blog. Here's the Winter 2009 edition:
- Delicous Bookmarks
- Twitter @matthewmccull
- Global Java Conferences Calendar
- Denver Java Events Calendar
- Friendfeed
- DOSUG Homepage
- Blog (this page)
- Tripit
- Slideshare
- GitHub
- GitHub Gists
[2009-01-15 Updated with SlideShare, GitHub, Gist]
Developer Syntax Highlighting for Presentations, Copy-And-Paste on the Mac
Based on some Twitter conversations with @fredjean about the Codex Ruby Gem, I've been inspired to stop taking screenshots of code for slides and rather putting in formatted text. But this isn't as easy to do as it should be. Eclipse 3.4 has lost (for me, and others) the ability to copy and paste rich text so that it appears formatted in the paste destination. Maybe that's a MacOS failure of later Eclipse versions. No matter though, as I drift father from Eclipse usage. My favorite other two editors can fulfill this need nicely with two simple add-ons.
Jim Weirich's blog post about using Ruby and posting source as a means
Dave Thomas (@pragdave) chimes in with his similar thread about presenting code -- gasp -- without Keynote entire.
Textmate: Copy as RTF Bundle (Plugin)
This sweet plugin lets you copy formatted code of any language TextMate recognizes as RTF. Perfectly suitable for pasting into MS Word, Pages, TextEdit, or namely, Keynote. Install it via:
cd ~/Library/Application Support/TextMate/Bundles
git clone git://github.com/drnic/copy-as-rtf-tmbundle.git "Copy as RTF.tmbundle"
Initialized empty Git repository in /Users/mccm06/Library/Application Support/TextMate/Bundles/Copy as RTF.tmbundle/.git/
remote: Counting objects: 34, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 34 (delta 14), reused 34 (delta 14)
Receiving objects: 100% (34/34), 6.88 KiB, done.
Resolving deltas: 100% (14/14), done.
The copy:

And the paste:
IntelliJ: Copy as HTML Plugin
Similar functionality works from IntelliJ. Just install the plugin "Copy to Clipboard as HTML".

The copy:

And, the paste:
Saturday, January 10, 2009
Presentation Techniques in Video Form
I just finished watching several excellent presenters from a summary page of 10 video clips. Everyone should consider watching these to improve their talks in 2009. These are the superstars of this skillset and there's so much to be learned from them.
