Blog Home  Home Add to any service  
Beckshome.com: Thomas Beck's Blog - Monday, January 01, 2007
Musings about technology and things tangentially related
 
 Monday, January 01, 2007

What Tad Anderson said in a recent post about Microsoft as a “technology factory” really got me thinking. I particularly identified with his quote that “Microsoft has buried the average learner, and presented quite the challenge for the best workaholic out there.” With all of the things that he mentioned in his post plus the release of Vista, the coming release of Enterprise Library 3.0, software factory work from the Patterns and Practices group, not to mention C# 3.0, Lambda expressions, and… oh yeah, F#, it’s hard keeping your head above water as a Microsoft application development technology specialist these days.


Personally, my problems are compounded by trying to track both .NET and Java. Don’t get me wrong, there are a lot of great things going on in both of these camps and the opportunity to intelligently compare and contrast the technologies makes me a more valuable technologist, I think. However, it pains me to see my knowledge getting broader and shallower rather than targeted and deeper as I try to take a sip from the veritable technology fire hose.

In what little free time remains for me, I’ve been familiarizing myself with Ruby on Rails (RoR) over the past year. This language / framework is intuitive, well-designed, and has this uncanny ability to work the way you’d expect it to. What’s impressed me the most about the Ruby on Rails community is the strong benevolent dictatorship of their core development group, lead by David Heinemeier Hansson. They have repeatedly set clearly defined, realistic expectations for what RoR is, and more importantly, what it is not. It’s refreshing to hear technologists say “sorry, our stack was never intended to do this and will not be modified to do this” and then come out and defend this stance against a slew of criticism. If this is an hour less spent learning the “latest and greatest” and an hour more spent solving real business issues; I’m sure my employer, my clients, and my family will all appreciate it.

Monday, January 01, 2007 8:09:53 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Wednesday, December 20, 2006

I’ve added a second state government pattlet to the portfolio. This one is for the case entity. Although a bit more simplistic than our previous pattlet, Case still has some very interesting nuances, such as the use of aspect-oriented techniques to account for associating the writing of case history records with various case-related transactions.

In addition, I have made some minor revisions to the Case Transfer pattlet, upped the version number, and reposted that as well. I’ve also started added these pattlets to two open source pattern repositories.

On PatternShare.org, these two pattlets were the first examples to be added under the business architecture category. I’ve found PatternShare to be very usable and friendly. In essence, it’s a Wiki for patterns. Unfortunately, after the initial loading of the well-known patterns (e.g. GoF, Fowler), there has been little activity in this community, which is a real shame. I was especially disappointed at the non existence of business patterns, since this is an area where I see so much potential.

On et.gov, the process of adding and mapping a pattern was very interesting. You are actually required to submit create and submit an XML mapping describing your asset(s) and then post this XML file out to your site. The XML file I submitted can be found here. The underlying assets seem to be mapped against the FEA. In many ways, this process is similar to the one I described in my reusable asset post. The only difference is that the discovery mechanism in et.gov is very rudimentary, not near that of some of the commercial tools out there.

As before, the pattlet is licensed under the Creative Commons “Attribution Share-Alike” license. As a next step, I’m looking to move outside of case management for a while and potentially deal with participants. I’m especially interested in working on a Participant Relationship pattlet, since I’ve been having a lot of discussions in that area as of late. I’d also like to fully open source all of this work, including the source code, and post it out to a Subversion repository for people to download. There just don’t seem to be enough hours in the day to get this all done. Any help or assistance would be greatly appreciated.

Case.pdf (165.74 KB)
Wednesday, December 20, 2006 12:09:10 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  |  |   |  Trackback
 Monday, December 18, 2006

In my efforts to understand what drives software reuse or the lack thereof, I’ve been looking for formal reuse standards, processes, and practices. I’ve been examining technology agnostic materials as well as researching the approaches taken by each of the respective major camps – software factories for Microsoft and Model Driven Development (MDD) from the Java community. This post, in particular, is more concerned with technology agnostic materials.

 

Being a long time believer in Scott Ambler’s Enterprise Unified Process (EUP), the strategic reuse discipline contained in the EUP was the first place I turned for process guidance. The reuse discipline, like the rest of the EUP disciplines, is structured in the same fashion as any other RUP discipline, which makes learning pretty intuitive if you’re familiar with the RUP. The workflow of the strategic reuse discipline is illustrated in the image below. The workflow is pretty straightforward and the harvest, buy, build, evolve approach to the preparation of assets agrees with what I’ve observed in practice. If you’re interested in this process, you can check out a brief synopsis of the strategic reuse discipline or purchases Scott’s book on the EUP.


 

EUPStrategicReuseWorkflow.jpg (37.51 KB)


The Reusable Asset Specification (RAS) is an OMG standard that I have been recommending to colleagues for some while now. In terms of readability, the document is rather dry and academic in nature. In terms of real world applicability, I am aware of several systems that claim to offer RAS compliance. This includes the tool that we use, Logidex, which offers a RAS compliant plugin for Rational XDE. Where the document shines is not in readability or direct applicability but in the way it holistically addresses the capture of metadata about reusable assets. I’ve been recommending that folks read this document with a focus on the UML and XSD diagrams. There is a lot that can be learned about structuring asset metadata that will prove valuable to anyone attempting to classify their software development assets.


 

As a footnote, the IBM article on reusable assets, recipes and patterns provides a good introduction to the MDD approach, as espouse by one of the major Java vendors. Jack Greenfield’s article on software factories is not all that far removed from the techniques espoused by IBM but, as always, the tooling is quite different.

Monday, December 18, 2006 4:40:56 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Saturday, December 16, 2006

My initial experiences with Oracle’s TopLink object-relational mapping tool have been less than pleasant. TopLink is the default Java Persistence API provider when creating persistence units for EJB3 style beans in NetBeans. When using TopLink out of the box with NetBeans, the tool’s default behavior is to behave in a case-sensitive fashion with respect to table and column names. This results in awful “Table XXXXX does not exist” errors, where XXXXX is, of course, the capitalized table name.


This posture represents the absolute antithesis to the recent, Ruby on Rails-driven trend towards “Convention over Configuration”; instead reverting to the longstanding software engineering tradition of confusion over configuration. Why wouldn’t you just set the default behavior to respect case insensitivity? I’m assuming that this can be set in a config file but I’m too mad to go thumbing through the documentation to find out where that is. The TopLink API has a setShouldForceFieldsToUpperCase() method. I don’t want to call that either. Why should I have to?

Hmm… if I remember correctly, were I to open a SQL*Plus command prompt and execute the statement CREATE TABLE foo, Oracle would create for me a table named FOO. Sounds like Oracle convention over ease of configuration. As far as I can see, EJB-QL is case insensitive and the database I’m using, Derby, is also case insensitive. My primitive troubleshooting points to TopLink as the culprit here. I’m going to swap in Hibernate and see if I’m right or wrong. Is anyone else experiencing similar problems?

Saturday, December 16, 2006 7:47:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Thursday, December 14, 2006
The Governor’s office announced an exciting new partnership between Google Earth, Carnegie Mellon University, NASA, the Pennsylvania Tourism Office, and the National Civil War museum that will allow virtual tourists from all over the world to experience Pennsylvania’s Civil War trails first hand. The partnership will be creating Gigapixel Panoramas (Gigapans), enabling users to visualize these destinations with a great degree of detail.




It’s hard to tell what this consortium is going to bring together exactly, but it sounds very promising. There has been talk of even introducing a time-based element into the visualization, which would be very cool, given the nature of the subject. For a quick look at other Gigapan type work, I’d recommend xRez. I find it hard to make much out of the landscapes but their panorama of downtown Boston is simply awesome.

Thursday, December 14, 2006 10:58:42 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Thursday, November 30, 2006

If you haven’t spent any time in Pittsburgh, you can ignore this post. If you have spent some portion of your life there or know someone who has, have I got a great gift idea for you. “Chipped Ham Sam”, the first in a line of Yappin ‘Yinzers dolls is available for purchase at http://www.yappinyinzers.com. Check out the site and poke Sam in the belly for one of 9 witty Pittsburghese sayings.



This is a great gift idea for native Pittsburghers, CMU / Pitt students, or anyone in the Steeler nation who has had a chance to experience the flavor of the steel city. This product is the brainchild of a former colleague. Goes to show what 6 years of systems integration work can do to a person. 

Thursday, November 30, 2006 1:59:28 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback

Following up on my This Digital Life post last month, a couple of folks have sent me emails asking if I had some recommendations around other Web 2.0 tools. In the sprit of a recent podcast that defined Web 2.0 as “really anything that’s cool online nowadays”, I decided to post some Web 2.0’ish tools that I highly recommend. Some of these tools I’ve been using for a year or more (a mighty long time in the Web 2.0 world) and some I’ve been using for just a couple of weeks. Most are, with the exception of Central Desktop, free services. Enjoy and let me know if you find these useful.

  • scanR – Snap digital pictures of whiteboards or paper documents and upload them for processing to scanR. The images are cleaned up, PDFed, and sent back to you in an email. You can also upload images of business cards, which are then converted into vCards that can be imported into your favorite contact management program.
  • Vyew – I’m a recent convert to Vyew and have been nothing but impressed with its features and ease of use. Think WebEx; but it’s better and it’s free.
  • Zamzar – File conversion online. Format… you name it. Upload a file, identify the type of conversion you’re looking for and Zamzar quickly converts the file; returning the finished product to you via email. Zamzar supports over 200 conversion types. Some of my favorites are doc-to-pdf, ac3-to-mp3, and avi-to-flv.
  • Mediamax – So now that you have all of this digital media, what do you do with it? Enter Mediamax. You get a whopping 25GB of storage for free and the pricing plans for more space are very reasonable. This includes sharing and hosting of digital audio and video and a Windows-based tool for file synchronization and automated backup.
  • Google Calendar / Remember the Milk – With some recent integration efforts, this is a tool match made in heaven. The best calendaring tool combined with the best to-do list manager, all in one very intuitive UI. Although not combined, these tools both have great browser-based PDA versions as well.
  • Central Desktop – The Cadillac of the tools listed here and, as mentioned earlier, the only one that does not have a perma-free option. This tool is simply so awesome that it warrants mention. Central Desktop is software as a service at its finest. Portal based functionality, project management, full text indexing and search of uploaded documents, Web meeting and audio conferencing capabilities, IM and Skype integration, version control, and the list goes on. It’s not as lightweight as Basecamp but it has all the features you wish for in Basecamp and is even more intuitive.
Thursday, November 30, 2006 12:06:59 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Monday, November 27, 2006
This weekend, I set out on the daunting task of trying to add an Apache Web server to my existing Windows 2003 production server installation. “Why would you go about doing such a crazy thing”, you might ask. The answer is that, in short, it’s the only way to host an HTTP-accessible instance of Subversion on a Windows box. I’m looking to consolidate all of my hosted software: .NET, Java, and infrastructure, onto a single platform. Since I use Subversion to enable my location independence with respect to computers I use, this application needed to be ported as well.

I expected to learn a lot of new stuff about Subversion and Apache through this process. I didn’t expect (perhaps ignorantly so) that I’d encounter “learning opportunities” on Windows as well. As it turns out, Microsoft has gone ahead and made the assumption that if you’re running IIS on your Windows Server, nothing else should be running on port 80. That is, out of the box, IIS exhibits very greedy behavior, binding to all available IP addresses on the server, not just the ones that are explicitly assigned to Web sites.

It turns out that this is a case of socket pooling gone awry. To solve this problem, you must literally slap IIS on the hand and tell it to stop listening to all of those ports. After trying a couple of legacy solutions, such as setting the DisableSocketPooling property, I landed upon a solution that works in the IIS 6.0 post-Winsock era. This Microsoft Support Article provides all of the details you would need to manage the IP inclusion list in IIS 6.0 and solve this problem should you run into it. Also, should you need the Windows 2003 support tools referenced in this article but not have immediate access to your Windows 2003 CD, you can find the tools here as well.

I’m happy to report that I now have IIS and Apache running side-by-side on the same Windows machine; each on port 80 using different IP addresses. Getting Subversion up and running was another issue entirely…

Monday, November 27, 2006 10:40:47 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Saturday, November 18, 2006

IT Conversations pushed out a great series of podcasts again last week. As always, good things seem to come in three. In this case, the three were IP telephony, transportation networks, and collaboration. The diverse range of technologies and topics covered in these three podcasts represent a microcosm of the IT Conversation offering; just reaffirming their commitment to appeal to an intellectual audience (myself excluded) with a broad set of interests.



  • Moving Voice Apps to Pervasive Use – A quick and dirty overview of one man’s history of IP telephony and the applications that can be built on top of these services. It helps that the man in question is Jonathan Taylor, founder and CEO of Voxio. In a little over 15 minutes, Jonathan gives a quick yet fascinating personal tour of the evolution of the industry. One highlight for those that were unaware is that Voxio provides Evolution, a free limited scope infrastructure to developers looking to develop IP telephony solutions.
  • Transportation Networks – Although it is a bit longer than the voice apps podcast and tends to meander at certain points, the transportation network podcast provides an abundance of interesting information. From information on rail sizes to an etymology of the word turnpike, there’s some fascinating stuff here. Dr.Levinson doesn’t give too much away, instead leaving the audience to contemplate the parallels between communication and transportation networks and draw their own conclusions. In one quick response to a question, he compared the issue of net neutrality with the establishment of High Occupancy / Toll (HOT) lanes in several states. Pretty insightful.
  • Facilitating CollaborationThis was the best podcast of the group. Ryan Freitas from Adaptive Path pulled together a great piece with some really thought provoking ideas. It would not do this podcast justice to simply highlight a couple of elements. It’s absolutely worth your time listening to this one. While listening to this podcast on my drive to work, I found myself taking notes with one hand and calling people to tell them how pertinent the material was with the other. BTW, I commute to downtown Harrisburg, PA at about 8:00am; you might want to avoid the roads at that time. A couple of the notes that I took on my ride were:
    • Attenuation (4:25) – Used throughout the presentation, this word caught me at first. As a guy that used to do signals intelligence, this has a distinct meaning to me and it isn’t “pay attention to”. Despite the semantic incongruance, the concept that Ryan is illustrating here is awesome. By using certain signals and markers (sharing our del.icio.us bookmarks, blogs, or reading lists, for example), we can better attune as a team and understand what forces are impacting each other’s thoughts and actions.
    • Criteria for Evaluating Tools (15:20) – Ryan had some great suggestion for evaluating lightweight Web 2.0-like tools. Appropriateness, commonality, centralization, portability, uptake - all very good criteria. I liked portability in particular with an eye on exit strategy. 37Signals did a particularly good piece on facilitating easy exit in their book, Getting Real.
    • Alternatives to WebEx (34:30) – Expensive and slow, yes – yes. Passes at work but what about outside of work? Ryan mentioned Vyew. This is simply awesome free software that you’ve got to check out. My additional recommendation, for software development specific alternatives, are collaboration tools like Netbeans’ collaboration project that allow sharing, collaboration, and working with code online across time and space.
    • Wikis (37:00) – Ryan talks about some of the benefits and challenges of wikis. He also handles some Wiki hybrids. Once again, from a software development specific standpoint, it’s worth calling focus to Trac here. Wiki, timelines, RSS syndication, Subversion integration, bug tracking / ticketing, and FAQs – all in one tight pack.
Saturday, November 18, 2006 12:08:56 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
Copyright © 2008 Thomas Beck. Some rights reserved.

Creative Commons License