Thursday, December 27, 2007

2007-12-27 Thursday

I've been heads down for the last few weeks working on the ESB and SOA design for a client engagement.

I've recently installed the following:

  • IONA's Fuse-5.0.0.6 Message Broker

  • Glassfish V2 UR1

  • JBoss Drools 4.0.3


  • This afternoon I helped some colleagues locate a utility to document directory structures. It is a Python script that generates an HTML listing. The Active State Programmer Network has some interesting code samples for Perl, Python, PHP, ???

    I recently completed a preliminary review of the ebXML reference implementation (Omar-3.1). A few preliminary thoughts:

  • Bloated code base

  • Clutterd, ugly, non-intutivie User Interface design

  • Probably too "heavy" for most real usage

  • Reminds me of IBM's original UDDI service (that was also a bloated and ugly UI)


  • Some Links of Interest


    Rules versus Procedural Code

    Changes in Ruby 1.9

    Thursday, December 20, 2007

    2007-12-20 Friday

    NEWS: I'm in preliminary discussions with an Acquisitions Editor for a well known publishing company to possibly write a book for them next year.

    Refactoring is a Necessary Waste (by Amr Elssamadisy)

    "By seeing Refactoring as a necessary waste, then a developer will minimize refactoring; that is only refactor code that no longer meets the requirements of the user. This means, when you are coding away and you see a method in the class you are modifying that "smell's bad" but has no direct connection to the requirement you are working on, you leave it alone."


    Software Development Conference & Expo West 2008, March 3-7, 2008, Santa Clara Convention Center

    I want Sandy — Your personal email assistant - which is a product developed by values of n - a very interesting team.

    New Features in ActiveMQ 5.0 - For Example:

    Enterprise Integration Patterns

    Message Transformation

    Mirrored Queues

    Producer Flow Control


    Apache Camel: A powerful Spring based Integration Framework

    various recipes for working with Camel


    Spring Integration: a central service and message bus

    Joel Spolsky - his talk at Yale:
  • Talk at Yale: Part 1 of 3

  • Talk at Yale: Part 2 of 3

  • Talk at Yale: Part 3 of 3
  • Sunday, December 09, 2007

    2007-12-09 Sunday

    Groovy 1.5 released - What's New?

  • is an agile and dynamic language for the Java Virtual Machine


  • builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk


  • makes modern programming features available to Java developers with almost-zero learning curve


  • supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain


  • makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL


  • increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications


  • simplifies testing by supporting unit testing and mocking out-of-the-box


  • seamlessly integrates with all existing Java objects and libraries


  • compiles straight to Java bytecode so you can use it anywhere you can use Java




  • This is a very interesting presentation by Werner Vogels, CTO at Amazon.com: The Amazon.com Technology Platform: Building Blocks for Innovation. Amazon's Dynamo technology is also very interesting. I suspect someone could build a very lucractive consulting practice by specializing in just Amazon Web Services. Add to that: SalesForce.com's Platform capabilities; and Sun's Grid Computing Utility.

    Monday, December 03, 2007

    2007-12-03 Monday

    Book Review: Java EE 5 Development using Glassfish Application Server

    Author: David R. Heffelinger (ensode.net)
    Publisher: PACKT Publishing
    Publish Date: September 2007

    Full Disclosure: PACKT Publishing provided me a free copy of the book to review.

    Overall Reviewer Rating: B+

    From the back cover:

    "Who this book is written for
    This book is aimed at Java developers wishing to become proficient with Java EE 5, who are expected to have some experience with Java and to have developed and deployed applications in the past, but need no previous knowledge of Java EE or J2EE. It teaches the reader how to use Glassfish to develop and deploy applications."
    Given that description of the book's goal and scope, I would say that it is a "mission accomplished".

    I came across Glassfish V2 this year while doing research for a client SOA project. After downloading it (https://glassfish.dev.java.net) and spending a few days exploring its robust features, I decided to continue evaluating it for selection as a possible core component for the team's ESB and SOA efforts. While juggling a number of other priorities, I happened to come across an announcement offering a free copy of a book on Java EE 5 Development using Glassfish. I contacted the publisher - and they agreed to my offer to review their book. Within about 10 days, the book arrived - and I began diving into it.

    Part of my interest in this book comes from the knowledge that the development team I'm currently leading is primarily experienced in .NET technologies - and adding Java to their toolbox will involve some training and self-education challenges. Although I have formal training planned for the team, a book that could provide a broad introduction to Java EE development with the added bonus of specifically covering Glassfish was something I didn't expect to find - but definitely thought my team needed.


    Chapter Outline

    1: Getting Started with Glassfish

    Reviewer Comments: Clear and concise. What I would add in the next edition: Coverage of more in-depth discussion of configuration parameters - and performance / tuning parameters.



    2: Servlet Development and Deployment

    Reviewer Comments: Good basic introduction to the topic of Servlet Development - without burdening the reader with the additional complexity of learning application frameworks.


    3: JavaServer Pages



    4: Database Connectivity
    Reviewer Comments: Covers JDBC and JPA. A decent survey of Entity Relationships (One-to-One, One-To-Many, and Many-to-Many). Covers Composite Primary Keys. The author, to his credit, notes that Database access code should be encapsulated in Data Access Objects (DAOs) - and provides suggested links for further reading.


    5: JSP Standard Tag Library

    Reviewer Comments: Discusses the Core JSTL tag library as well as Formatting JSTL, SQL JSTL, XML JSTL, and JSTL functions.


    6: JavaServer Faces
    Reviewer Comments: Basic coverage of JSF and JPA.


    7: Java Messaging Service

    Reviewer Comments: covers setting up Glassfish for JSM, working with message queues and topics.


    8: Security
    Reviewer Comments: Discusses various types of realms (Admin, File, Certificate, JDBC, Custom) - and how to utilize Glassfish's built-in security features.


    9: Enterprise JavaBeans
    Reviewer Comments: Sub-topics covered include Session Beans, Message-driven beans, Transactions in Enterprise Java Beans, Enterprise JavaBean Life Cycles, EJB timer service, and EJB security.


    10: Web Services
    Reviewer Comments: Sub-topics covered include developing web services with JAX-WS API, Developing web service clients with JAX-WS, adding attachments to web service calls, exposing EJBs as web services, and securing web services.


    11: Beyond Java EE

    Reviewer Comments: Sub-topics covered include Facelets, Ajax4jsf, Seam.


    Appendix A: Sending Email from Java EE Applications

    Appendix B: IDE Integration


    As a bibliophile, I have a few pedestrian observations of the mechanics of the book's production:

    1) The book appears to use a bit larger font than I usually see in technical books by other publishers - a positive - as I don't have to squint to read the text. The quality of the paper appears to be good. The binding appears to be fair-to-good.

    2) The book makes extensive use of ample screen shots to capture the specifics of step-by-step instructions when covering the installation and configuration topics in chapter-1. Screen shots of the Glassfish administration screens are also provided in latter parts of the books where appropriate.

    3) Coding examples are also liberally provided throughout the chapters (Example Code for the book is available at http://www.packtpub.com/support).

    4) "Notes" and "Tips and Tricks" are appropriately identified throughout the book using two icon designations.


    If you are looking for an introductory survey of Java EE development topics, then this book is a good choice. It is not intended as a definitive reference for Java EE - so don't judge it against that kind of yardstick. The author does not assume that the reader is an advanced Java developer - but does expect that you have some familiarity with the language.

    Friday, November 30, 2007

    2007-11-30 Friday

    3rd Quarter Dice.com Job Market report for Seattle. As far as I can tell - Seattle looks like the market is still on a healthy trend. You can also see reports for other
    local markets


    No More Self-Organizing Teams? An interesting discussion. I think the appropriateness and degress of the Agile / Scrum principles adopted for a given project depend on the complexities of the organizational dynamics that may be in play. In some of my drect experiences, certain large-scale projects, that have fixed-price bid dynamics in play, often with multiple clients working in partnershp to spread the cost of the effort, and multiple vendors - all parties working with different priorities and agendas make the soup very spicey - and difficult to achieve success with the hoped-for-altruistic principle that the self-organizing team will do what is right for the project. Just my $0.02

    I recently came across the XWiki project.

    "XWiki is an open source wiki written in Java and released under the LGPL license"

    "XWiki is a second generation wiki (a.k.a an application wiki), ideally suited for developing collaborative web applications."

    Friday, November 23, 2007

    2007-11-23 Friday

    Cusp - An Eclipse plug-in for Lisp.

    RuleBurst Acquires U.S. Business Rules Technology Vendor Haley Systems

    The 7 Highly Effective Habits of Successful Freelancers

    The Open Source Web Design Toolbox: 100 Web Design Template Sources, Tools and Resources

    70+ JavaScript Resources for Every Web Developer

    I installed the IONA Fuse 5.0 Message Broker this last week at a client site (based on an implementation of the Apache ActiveMQ) - and will be evaluating it for use within the SOA / ESB infrastructure that we are designing.

    The client has expressed an interest in deploying a Single-Sign-On (SSO) capability - and we are looking at several possible technical solutions. One that I'm keen to investigate further: JBoss Federated SSO .

    Next week I will install the Drools business rule management system (BRMS). Download Drools 4.0.3here

    For an interesting example of Drools, see Dr. Gernot Starke's blog post, The Golfer Riddle. Drool developers blog

    netzoid.com - Scalable, Reliable, and Secure RESTful HTTP

    I came across the IBM Research Ponder web site tonight. That's an interesting way to expand one's problem solving skills.

    As a consultant that travels frequently on client engagements, this looks like an excellent stocking stuffer for the Technophiles in your life: Hauppauge WinTV-HVR-950 TV Tuner Stick/Personal Video Recorder



    Another option...



    or,

    Saturday, November 17, 2007

    2007-11-17 Saturday

    FIPS and SSL - Bad Mojo

    I run several tools to help secure my computer systems - and frequently run updates for the latest releases for my firewall, antivirus, and operating system patches. But recently I wanted to step up my security game a bit - and began implementing a number of additional security measures.

    There are several good sources on the web for additional tips and tricks to enhance the security of your computer - and as I worked through various recommendations, I decided to turn-on the Windows XP FIPS cryptographic option for critical information stored in certain file folders that I selected for encryption.

    Big Mistake

    Since I had downloaded the latest updates for my internet security software and Microsoft Windows XP, there were a significant number of variables in flight. When the HTTPS connection to a number of critical financial web sites stopped working, I began the laborous process of root-cause analysis (while other HTTPS connections did appear to continue working).

    I had created a Restore Point before beginning this adventure, but I always prefer to learn from problems - not just "get it to work".

    After a few hours of investtigation, and acquiring some new computer forensic skills, I found out that the Microsoft FIPS cryptographic option is not compatible with SSL.

    Bad Microsoft.

    Monday, November 12, 2007

    2007-11-12 Monday

    Google has released Android - An Open Handset Alliance Project

    This is a bit dated (Sept. 27, 2006), but has some interesting information: Prototype the most popular Ajax framework across Java, .NET, & Rails communities - 2006 Survey Results

    I love being in High-Tech. I love being part of the energy that is a startup. I took a detour early in my career - and was almost seduced into the "golden handcuffs" that large corporations offer...

    I discovered my true passion when I was still in the U.S. Army, living in a basement apartment in Bamberg Germany in 1983-1984 - sitting at the kitchen table late into the night - teaching myself to program 6502 Assembler and Basic. Later, working as a programmer for a small bank in the mid-South, developing high-performance real-time transaction systems that connected to the national ATM networks - I still enjoyed "tinkering" when I went home - developing code - stretching my abilities.

    I've overloaded my stress capacitors on a few projects over the years...a $100M+ project to redesign their call center infrastructure [for a major telecom company], a $100M+ project to redesign a Customer Account Support System [for a major Japanese automotive company] , the $100M+ VC funded Paul Allen Mercata.com startup venture, leading the successful development and launch of another dot.com start-up as their CTO in 2001...and came out the other end of the whole dot.com crash as a burned out husk of a man. In the years since, I have searched for ways to avoid burn-out - and to find sustainable ways of earning a living doing what I love: leading software development teams to produce exceptional solutions.

    In 2004, while sailing in the Sea of Cortez aboard my magic carpet (S/V Renaissance) - taking a sabbatical to recharge my internal batteries - I found that passion again - as I reworked a code-generating framework that has been a pet project of mine for almost 8 years. This story reminded me of that passion - and stirred those embers again:
    seattlepi.com: John Cook's blog: Ready, set develop: How to create a six hour startup. - Startup Weekend site

    Sunday, November 11, 2007

    2007-11-11 Sunday

    The Executive Development Program, offered through the Michael G. Foster School of Business, University of Washington, has an interesting program that I would like to explore sometime in the future.


    Flyspray 0.9.9.3
    I have just run into an unusual installation error message. I've been able to install Flyspray 0.9.9.3 under Windows - but when I tried to install on a hosted Linux site (FreeBSD 4.11?), I got the error message: "SQL file required for importing structure and data is missing".

    It turns out that the hosted Linux server doesn't allow a directory name such as \0.9.9.2

    I copied the files out of the \setup\upgrade\0.9.9.2\ to \setup\upgrade\ and was able to proceed with the install.


    See the following code from setup\index.php(lines 968-981)

    function PopulateDb($data)
    {
    // Check available upgrade scripts, use the script of very latest version
    $folders = glob_compat(BASEDIR . '/upgrade/[0-9]*');
    usort($folders, 'version_compare'); // start with lowest version
    $folders = array_reverse($folders); // start with highest version
    $sql_file = APPLICATION_PATH . '/setup/upgrade/' . reset($folders) . '/flyspray-install.xml';

    // Check if the install/upgrade file exists
    if (!is_readable($sql_file)) {

    $_SESSION['page_message'][] = 'SQL file required for importing structure and data is missing.';
    return false;
    }


    This weekend I received a book from a publisher to review. I'll be publishing my review within the next 2-3 weeks. The book is "Java EE 5 Development using Glassfish Application Server", by David R. Heffelfinger (PACKT Publishing). Since I'm currently working with Glassfish for a client engagement, this will be a very timely opportunity to review this new book.



    Monday, October 29, 2007

    2007-10-29 Monday

    Microsoft FxCop 1.36 Beta 2

    FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects in the following areas:

    Library design
    Globalization
    Naming conventions
    Performance
    Interoperability and portability
    Security
    Usage

    FxCop includes both GUI and command line versions of the tool and supports analyzing .NET 1.x, .NET 2.0 and .NET 3.x components.



    Microsoft® Silverlight™ 1.0 Software Development Kit

    Sandcastle - September 2007 Community Technology Preview (CTP)
    Documentation compilers for managed class libraries
    Enabling managed class library developers throughout the world to easily create accurate, informative documentation with a common look and feel.



    MyJgui: MySQL client graphic user interface

    ViewVC
    "ViewVC is a browser interface for CVS and Subversion version control repositories. It generates templatized HTML to present navigable directory, revision, and change log listings. It can display specific versions of files as well as diffs between those versions. Basically, ViewVC provides the bulk of the report-like functionality you expect out of your version control tool, but much more prettily than the average textual command-line program output."


    Style Guide for Python Code

    python.org
    "Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code."

    Friday, October 26, 2007

    2007-10-26 Friday

    Architecture Resources

    New England Complex Systems Institute (NECSI)

    Adaptive Engineering of Large Software Projects with Distributed/Outsourced Teams

    Zend Core for IBM

    Zend and IBM have partnered to deliver Zend Core for IBM, a Web application solution that combines a production quality PHP solution of Zend Core combined with IBM’s powerful DB2 Express-C database.

    Zend Core for IBM provides a fully certified, enhanced and supported PHP based application development and deployment stack which includes Apache, PHP, Zend Framework and DB2 Express-C. DB2 Express-C is IBM’s industrial strength hybrid relational-XML data server providing customers access to enterprise grade features such as data replication, high availability clustering and off-site disaster recovery. The result is a highly scalable and reliable web application infrastructure.


    IBM Mashup Starter Kit

    IBM Mashup Starter Kit's two components (Mashup Hub and QEDWiki) are Web applications that are written in PHP and that run on the Apache Server. They use a database to manage assets (such as feeds and wiki pages) and user-specific and structured data. The user interfaces use the Dojo toolkit and the AreaEdit WYSIWYG editor; internally, the applications use REST (Representational State Transfer), Ajax, and JSON (JavaScript Object Notation).



    Linux Resource

    LINUX: Rute User's Tutorial and Exposition (Version 1.0.0) Paul Sheer

    LinuxSurvival.com

    Unbuntu Linux

    Documentation for Ubuntu 7.04


    SOA / Web Service Resources

    WSO2 Oxygen Tank

    A practical application of SOA

    IBM: Design an SOA solution using a reference architecture

    IBM: Service-oriented modeling and architecture

    IBM: SOA programming model for implementing Web services, Part 1: Introduction to the IBM SOA programming model

    IBM Developerworks > Architecture

    Ali Arsanjani, PhD, is Chief Architect for the SOA and Web Services Center of Excellence within IBM Global Services

    Rule Object 2001: A Pattern Language for Adaptive and Scalable Business Rule Construction

    IBM: Mashups -- The evolution of the SOA, Part 1: Web 2.0 and foundational concepts

    web2.socialcomputingmagazine.com

    IBM: Building SOA composite business services...the series...(1..11)

  • IBM: Building SOA composite business services, Part 1: Develop SOA composite applications to enable business services


  • IBM: Building SOA composite business services, Part 10: Providing governance over service consumption using WebSphere Process Server and WebSphere Service Registry and Repository


  • IBM > developerWorks > SOA and Web services

    IBM > developerWorks > SOA and Web services > SOA and Web services forums

    IBM > developerWorks > SOA and Web services > SOA and Web services forums > Best Practices for SOA and Web Services

    IBM: Develop asynchronous Web services with Axis2

    IBM: Asynchronous operations and Web services, Part 1: A primer on asynchronous transactions

    IBM: Asynchronous operations and Web services, Part 2:


    Sun.com: Java Message Service Tutorial


    w3.org: Web Services Message Exchange Patterns

    govtech.com: Building Blocks of Shared Services


    Use Cases

    IBM: Getting from use cases to code, Part 1: Use-Case Analysis

    IBM: Getting from use cases to code: Part II: Use Case Design


    LISP Resources

    Lisp for Agile Teams


    Cusp is a development environment for Lisp built on top of the Eclipse platform

    common-lisp.net

    Practical Common Lisp

    The Nature of Lisp


    Misc. Findings

    Prototype is a JavaScript Framework that aims to ease development of dynamic web applications.

    Radiant is a no-fluff, open source content management system designed for small teams. (Ruby on Rails)

    wikipedia.org: Understanding the Long Tail phenomenon

    An Amazon employee described the Long Tail as follows: "We sold more books today that didn't sell at all yesterday than we sold today of all the books that did sell yesterday

    Sunday, October 14, 2007

    2007-10-14 Sunday

    I recently offered to help an Open Source project - by contributing a set of BIRT reports to their code base - which would enable users to print out HTML, RTF, or PDF details of the contents of the system. The lead developer's response was essentially: that's a useless thing - when people can just go online and access the system. I offered counter examples of how/why this could be a useful addition to the tool's capabilities: distributed teams that may be restricted by corporate firewall policies - or security restrictions - that may not be able to access the system; working with multiple external vendors who do not (and should not) have privileges to access the company's internal system; teams that may prefer to work offline in a more relaxed environment (coffee shops?) - and discuss / review detailed print-outs at off site meetings; executive-level steering committee meetings - where the players generally prefer to have paper copies to work from and annotate notes. Try as I might - I could not budge that person one inch to accept the offered contribution.

    As someone once said, "you can lead a horse to water...but you can't make them drink".

    Then again, it could be a blatant (or latent?) prejudice - since BIRT is a Java based application - and the other tool is a PHP based application.

    Eoin Woods (Enterprise Architect, UBS Bank): Top Ten Software Architecture Mistakes: Part-1, Part-2

    Large Scale Software Architecture: A Practical Guide Using UML by Jeff Garland and Richard Anthony published by John Wiley & Sons

    Carnegie Mellon® Software Engineering Institute (SEI): Software Architecture Essential Bookshelf

    Establishing a Service Governance Organization

    The ESB Question

    This is an interesting wikipedia article: Technology Adoption Lifecycle



    I'm a proponent of a mixed SOA model - using an Enterprise Service Bus (ESB) for transactions that need a more powerful layer of infrastructure support (e.g. security, transaction controls, etc.)- but balancing that with services that can / should be implemented with a lighter architectural approach. This book has some good information to help teams balance their approach - and avoid the "everything must go through the bus" fatal performance approach that has plagued many organizations efforts to adopt SOA: RESTful Web Services

    Getting grubby: Demystifying the Linux start-up processes

    Boot loader showdown: Getting to know LILO and GRUB

    Wednesday, October 10, 2007

    2007-10-10 Wednesday

    I'm testing out a new Open Source wiki tool: Wikyblog. It was simple to install - and I like that it supports MediaWiki style wiki syntax. It includes an integrated blog feature.

    I have discovered that some features of the TikiWiki software are not quite ready for prime time. For example - the PDF generation of a page is apparently broken:
    "Tiki has a PDF export from wiki feature, but it has many bugs."

    "Marc Laport, Jason Diceman, Val Luck and, Xavier de Pedro, (add your name here) are offering a total of $300 USD to any single or team of developers that can get this feature fully functional."


    I have been leaning more and more toward a recommendation for my client engagements that suggests a technology stack that would leverage PHP for most web user interface development - Java for heavy backend integration code - Linux and Apache software for much of the baseline framework - PostgreSQL (or MySQL) for the database. This article on InfoQ seems to reflect a possible trend in the same direction: PHP on Java: Best of Both Worlds?

    AgileEVM: Measuring Cost Efficiency Across the Product Lifecycle

    Saturday, October 06, 2007

    2007-10-06 Saturday

    I'm doing some development this evening on a small Open Source project that I'm planning to release - and I'm comparing the implementation between a PostgreSQL and a MySQL implementation.

    Whereas PostgreSQL supports the common RDBMS concept of a SEQUENCE - MySQL does not (at least for the version I'm running: mysql Ver 14.12 Distrib 5.0.24a). However, MySQL Forge has a suggested workaround.
    "MySQL Forge is a place for the MySQL user and developer community to contribute content, suggestions, code, projects, and other MySQL-related goodies."


    A better way to handle this would be as an abstraction layer - such as implemented by a library (e.g. ADOdb for PHP and Python).


    "
    * Designed for speed. It is probably the fastest open source database abstraction library available for PHP. See benchmarks.

    * Provides extensive portability support such as date and type-handling and portable schema creation. See portable sql tips

    * Support many enterprise features such as database backed sessions (with session expiry notification), SQL code generation, pivot tables, SELECT LIMIT emulation for all databases, performance monitoring.

    * Easy to learn, especially if you have Window's programming experience, as it uses many ADO conventions.

    * Extensive QA, every release is unit-tested on Access, MySQL, PostgreSQL, MS SQL, Oracle 9.

    * Mature, continiously developed since August 2000. Has a large community of users.

    * Very reasonable licensing terms (BSD). This means that you can incorporate (and even compile) it into your software applications royalty-free without asking the author's permission, provided you include license.txt in your release. Also dual-licensed (Lesser GPL).
    "





    Some Open Source Code Resources
    OpenLogic Exchange
    "OLEX makes it easy to find and download certified, enterprise-ready open source software packages."



    koders.com
    "Koders helps software developers explore the collective intelligence of more than 15 million programmers and 50 years of computer science..leader in code search for enterprises, communities and software developers...allow programmers to quickly find and leverage existing source code assets to bring new software applications to market faster, with fewer defects, and at substantial cost savings."





    I've made some decisions in the last week on adopting some new Open Source tools for a client engagement:

    TikiWiki

    Pros:

    + Wiki
    + Forums
    + Newsletters
    + Blogs
    + Articles
    + Link Directory
    + Community development of 200+ plugins

    Cons:

    - I liked MediaWiki's Wiki Syntax better




    Flyspray: Task / Bug / Risk / Issue Tracking System

    Pros:

    + Clean, Simple, Intuitive User Interface
    + Customizable (e.g. Status, Task, Category)
    + Support for multiple projects

    Cons:

    - Not yet integrated with webSVN
    - Not yet integrated with Subversion
    - Doesn't support explicit component association with a bug / task entry




    Hudson: Extensible continuous integration engine

    Pros:

    + Clean, Simple, Intuitive User Interface
    + Simple configuration
    + User Interface is a core component of the application
    + Supports Ant or Maven build processes
    + Supports execution of Unit Tests
    + Email notification on build failure
    + Scheduled builds - with Source Code Management integration with Subversion

    Cons:

    - TBD?






    Coding Horror Stories

    OpenMQ




    Setting up a Windows Service for Glassfish v2


    Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance.


    FunkLoad is a functional and load Web tester whose main use cases are functional testing of Web projects (and thus regression testing as well), performance testing, load testing (such as volume testing or longevity testing), and stress testing. It can also be used to write Web agents to script any Web repetitive task, like checking whether a site is alive.

    WebLOAD is a load and stress testing tool that is sponsored by RadView. It can load-test any Internet application, including applications that use Web 2.0 and AJAX. Screenshots

    WAPT 4.0 is a load and stress testing tool for websites and web-based applications. It uses a fully customizable set of virtual users to simulate a real-life load.

    Load Testing 101: ASP.NET Web Applications

    How do I stress test my ASP application?


    Web Performance Suite™ Version 3.3 is a testing tool targeted at web sites that use standard technologies such as web forms, J2EE, ASP, .NET/C#, PHP, Ruby, ColdFusion, Java, etc


    DB2 Connect Personal Edition

    Thursday, October 04, 2007

    2007-10-04 Thursday

    A few stories to tell tonight...

    The Value of a Business Card...

    Throughout my career I have been fortunate enough to have met some very smart and successful people. Smart in terms of business, technology, and people skills. Successful as measured against multiple dimensions: achievements, recognition, wealth, relationships, and experiences.

    Through the years I have consciously sought to observe and learn something from each of these individuals - to learn what they do best, how the do it, and why they do it.

    One of those lessons learned: The value of building and maintaining a life-long network of professional contacts. A network of contacts translates into the power to help, the power to affect change.

    Even as a child, I had dreams of running my own business. In college, I had business cards made for a small venture that I launched - even as I worked part-time and full-time jobs to pay my way.

    I have seldom been without a business card in my pocket. It is a fundamental belief of mine that my value as a professional is in no small part a function of the breadth and depth of my network of contacts. I ENJOY making new contacts. I ENJOY being able to introduce people that can help each other solve problems.

    As an example, a manager I knew had a key team member suddenly resign - putting a critical multi-million dollar client project at risk. Another colleague suffered an unexpected loss of their job. Two parts of a puzzle - and knowing each, allowed me to see how they might fit together - and by helping each - I strengthened my professional network by introducing two people to each other.

    I LOVE to make those kind of connections. My only reward is the joy in helping people. I subscribe to the belief that karma accumulates - and eventually, good karma will come back to me - most often in unexpected and unlooked-for ways.

    But to make it happen, you have to plant the seeds.

    The seed is your business card. Have one. Give one. Eagerly accumulate them.

    I've worked hard to maintain my network of contacts - some going back over 25 years.

    One of those contacts: Alex VanLaningham. In 2000-2001 I met Alex. We had some brief discussions about possible opportunities to collaborate. My last business contact with Alex was in March 2002. But we know each other - and we exchanged business cards. I kept his. He kept mine.

    I'll have a little more to say about Alex a little bit later in this posting...


    No-Fluff-Just-Stuff, Redmond, September 21-23, 2007


    [begin-rant]
    So I went to the NFJS Seminar a few weeks ago. About 250 attendees. A very intense, very deep dive, series of sessions covering some leading Open Source Java projects. I looked forward to the 3-day event - to make new contacts - and possibly find some potential candidates / resources for some MAJOR upcoming client engagements that are already inflight.

    I took a lot of business cards to the event...

    Even though I TRIED to network with the people I met - it seemed no one was interested in giving or accepting a business card. A VERY strange experience. Not like anything I've ever experienced at any other software development conference that I've attended in over 25 years in the business.

    Perhaps they thought I was trying to sell consulting services. That certinaly wasn't my intent - I just enjoy networking and adding to my knowledge of people - the kinds of interesting projects they might be doing - what interesting tools and technologies they use to solve those problems - and any lessons learned. Apparently that perspective is in the minority at NFJS Seminars.

    As a matter fact, I found there to be a distinct chill in the air when I actually tried to engage in a few discussions durings breaks or at the Birds-of-Feather sessions regarding actual honest-to-god hands-on product application development experiences. Counter to the advertised "Come learn from industry experts and from each other" - I found a rather hostile response to hearing anything that wasn't either a glowing praise of their Open Source agenda - or restricted to whatever discussion agenda they had in mind.

    But perhaps I missed out on my serving of the Kool-Aid.

    [end-rant]


    Poland Calling...

    Tuesday, October 2nd - an email arrives in my inbox from Alex (see first part of this posting). He's in Poland. He's developed a business leveraging some offshore developers he's connected with in Poland. I can't use his services at the moment - but I'll keep his information handy - and try to keep him in mind as opportunities arise.

    But it-just-so-happens that I have an excellent contact in Poland for Alex to connect with - the president of a fairly substantial consulting firm based out of Warsaw: Don Bailey. Don is someone that I have done business with in the past - and know quite well. The last time I saw Don in person was February 2002 - when we had dinner and a bottle of wine in Warsaw to celebrate my departure back to the States. He's someone with a keen business sense - and has a wide network of contacts in both business and government - throughout Western and Eastern Europe - as well as exceptional connections within the Polish banking and financial sectors. My last contact with Don? A few weeks ago, via email.

    All because Alex accepted my business card almost 7 years ago...

    Tuesday, October 02, 2007

    2007-10-02 Tuesday

    This week I started working on installing and configuring CruiseControl for a client development environment - when I happened to come across Hudson. Apparently a number of JBoss teams use Hudson. I downloaded and had it up and running within about 15 minutes. So far, I am very pleased with its ease of use. The web UI is simple enough that it doesn't throw too big of yet-another-learning-curve at the team.

    So far I have an Ant build.xml firing every 15 minutes (if there are changes detected in the Subversion repository) for a test project. There are 11 JUnit test cases defined in the test project which are also executed. An email notification is automatically generated and sent out based on any failures - or after the 1st successful build.

    A must-read is Martin Fowler's paper on Continuous Integration.

    "Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage."


    Another Open Source project that is on my short-list this week: John A. Brugge's Glean



    Glean is a framework of Ant scripts for generating feedback on a team's source code. Glean's goal is to make it possible to add feedback to your build cycle with as little pain as possible. The scripts drive a number of open-source tools and collect the resulting HTML for you to deploy to a project website or some other common team area. Add it at the end of a daily build cycle and it is a quick way to keep a number of feedback sources up to date and in one place.

    There are any number of feedback tools that have Ant tasks, but applying them individually to your project build script usually involves copying some boilerplate Ant target from the tool's documentation and tweaking it a little for your project. Of course, even that doesn't help when you move on to the next project, other than now having a new place to copy and paste. And as you find more areas where another feedback tool would help, it adds an organizing challenge to the build script maintainer to figure out where to put the script for this new tool.

    Glean is a collection of these boilerplate Ant targets, tied together with some common properties that describe your source project. The goal is to give you flexibility in a couple of different directions: to let you plug in different tools that analyze, document or measure your code, and to let you apply those tools to any source project you have.



    Today I'm also trying to get Subversion's post-commit hook to fire and send out an email noification to the team - but so far, there is no joy. I have the Perl script commit-email.pl working (tested from the command-line) - but it appears as if Subversion isn't firing the post-commit event. Sometimes trying to get Open Source tools to work under Windows is a royal pain.

    Sunday, September 30, 2007

    2007-09-30 Sunday

    My current project team is evaluating Bugzilla and Mantis as possible candidates for adoption as their bug/issue tracking system. The vote was almost a clear choice of Mantis over Bugzilla - until I did a quick demo of the Eclipse plugin (Mylyn) integration with Bugzilla. We will probably spend another two weeks doing further evaluation testing. A couple of thoughts on our evaluation / decision criteria might be worth discussing.

    The team is coming from a relatively low-level of automation in their development process / environment. Mantis is a simpler solution in terms of features / interface for the team members to learn - but it lacks some richness that Bugzilla offers that (in the longer term) may prove to create other problems down the road - as the team's comfort level grows with adopting greater Continuous Integration principles & process improvements. Tough call. Very tough.

    Shane Duffy has a decent write-up on a discussion of the pros/cons: BugZilla Vs Mantis

    I've run into a possible conflict / problem with the Mylyn plugin - and some of the other Eclipse plugins I'm trying to configure as a standard configuration for the team. A very strange thing happens: The Navigator view of other project folders appears to "drop" all but one of the projects when I attempt to click on specific project folder (?). This happens even though I don't have the Mylyn task view opened. A check of the Eclipse error log doesn't indicate any component failure or exceptions thrown. I need to spend some time searching the Eclipse discussion boards and bug lists to see if anyone else is reporting a similiar problem. (btw: I'm running Europa 3.3)

    I ran into an SMTP integration problem with the Bugzilla install within the last two weeks. I burned a good number of hours trying to isolate any changes I might have made to configuration parameters before I isolated the problem to a change that was made by Network Operations personnel to the firewall connection to the SMTP server. Doh!

    I've been very busy recently - and have a lot of observations and recommendations to make on a number of Open Source tools that I'm evaluating / adopting for the team's use. But there are only so many hours in the day...

    Thursday, September 27, 2007

    2007-09-27 Thursday

    Wow. What a busy week it has been. The days have been flying by - and I've been working 10-12 hour days...

    While at the No-Fluff-Just-Stuff conference in Redmond last weekend, I noticed that all of the presenters were using Apple laptops to do their presentations from - and that they were using a cool text editor: TextMate

    It has some pretty cool features - and didn't require opening a Project (like Eclipse). One VERY COOL feature was the ability to zoom using a mouse control.

    I did some searching - and came across a comparable tool: Notepad++. Some of its features include:

    Syntax Highlighting and Syntax Folding
    User Defined Syntax Highlighting
    Auto-completion
    Multi-Document
    Multi-View
    Regular Expression Search/Replace supported
    search and replace - using the regular expression.
    Drag ‘N' Drop
    Dynamic position of Views
    File Status Auto-detection
    Reload notification
    Zoom in and zoom out
    Bookmark
    Brace and Indent guideline Highlighting
    Macro recording and playback


    I spent some time reading a few papers on Peter Norvig's web site - very thought provoking...he's the Director of Research at Google. Some additional resources created by Peter:

    There is a wealth of great content on this site: Artificial Intelligence: A Modern Approach

    Paradigms of AI Programming Source Code - (This page is the index for the Lisp source code files for the book Paradigms of Artificial Intelligence Programming)

    Peter Norvig's Keynote Address at the U.C. Berkeley Computer Science Commencement (School of Letters & Science) on 21 May 2006.



    I also spent quite a few hours reading articles on Eric S. Raymond's web site. Of particular note was an article he wrote about a trip to Japan back in the late 1990's.

    A 2005 essay by Paul Graham: Undergarduation

    Friday, September 21, 2007

    2007-09-21 Friday

    I'm attending a 3-day conference today (Redmond, Washington): No Fluff Just Stuff - Pacific Northwest Software Symposium, Sept. 21-23

    I have book concept in mind that I've been thinking about writing - and will try to submit a proposal to Pragmatic Bookshelf publishing by the end of the year.

    I installed TestLink 1.7.0 yesterday - and spent a few hours working it. So far - I'm pleased with what I see.
    "TestLink is a open source web based TEST MANAGEMENT and test EXECUTION system under the GPL license (i.e. free to use). The tool enables quality assurance teams to create and manage their test cases as well as organize them into test plans. These test plans allow team members to execute test cases and track test results dynamically, generate reports, trace software requirements, prioritize and assign. "

    Thursday, September 20, 2007

    2007-09-20 Thursday

    Next week I will be working on the installation of CruiseControl at a client site - and integrating it with Subversion, the bug tracking system, as well as some automated testing tools.


    This Continuous Integration Server Feature Matrix is worth reviewing for other possible choices.

    IMPROVING SOFTWARE DEVELOPMENT PROCESS AND PROJECT MANAGEMENT WITH SOFTWARE PROJECT TELEMETRY
    (A DISSERTATION SUBMITTED TO THE GRADUATE DIVISION OF THE UNIVERSITY OF HAWAI‘I IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF
    DOCTOR OF PHILOSOPHY IN COMPUTER SCIENCE DECEMBER 2006 By Qin Zhang)


    Driving On CruiseControl - Part 1, (Lasse Koskela, Accenture Technology Solutions)

    The Deployment Production Line (Jez Humble, Chris Read, Dan North, ThoughtWorks Limited)

    Agile Development in .NET (Neal Ford, Application Architect ThoughtWorks)

    Using Open Source .NET Tools for Sophisticated Builds




    Yesterday I was in the process of opening a 230MB XML file (a single record exported out of SQL Server 2005, from a client's customized project management system) - and trying to open it within Eclipse. As it was taking some time to open the file - I decided to fix a small annoying problem I had been experiencing with the behavior of a right-click feature I had enabled in Microsoft's File Explorer via a useful registry hack. [foreshadowing ominous music plays]...

    Eclipse decided that it did not want to play any more - and choked on loading the file. I finished making my quick change to the registry - and discovered that every time I tried to open any program - Windows had somehow mapped Eclipse as the executable.

    I couldn't open Regedit - couldn't open a DOS prompt - couldn't access the control panel or the Accessories / System Tools > System Restore.

    After a few hours of investigation - I managed to trick the system into opening cmd.exe to a DOS promopt - and was agle to run c:\Windows\System32\reg.exe to export varous registry keys. A few more hours of investigation - and I isolated the problem to a loss of Windows mapping of the EXE file type to Application. Whew.

    This link was very helpful: Broken EXE Association. The Microsoft


    I've recently spent some time researching JSON for a client engagement:

    POSSIBLE JSON PROS:
    - messages [should be] are smaller than comparable XML XSD message structures.


    POSSIBLE JSON CONS:
    - Lack of support for complex data types
    - One of the issues that is hotly debated about using JSON type data-exchanges revolves around JSON's relative weakness in doing complex data-type validation as compared to using an XML XSD.
    - JSON doesn't support namespaces (???)



    An introduction to JSON


    Debate: JSON vs. XML as a data interchange format

    The Case For JSON: What Is It and Why Use It?


    XML vs JSON writer performance issues (- ? -)


    The JSON vs XML debate begins in earnest

    Speeding Up AJAX with JSON

    Schema for JSON

    Arguments against the Semantic Web


    Tim Bray on XML v. JSON

    Don Box on XML v. JSON



    JSON REFERENCES:

    json.org

    Using JSON (JavaScript Object Notation) with Yahoo! Web Services

    Intro to JSON, Frederic Jean

    Yahoo JSON Discussion Group


    JSON PDF presentation - Gopalarathnam Venkatesan, Yahoo! Inc

    Some interesting white papers: Farallon Enterprise GIS Presentations

    Generic e-Government GIS [using JSON]





    I'm researching tools to help a client perform analysis of millions of lines of legacy mainframe code (COBOL, Natural, etc.) - some of my preliminary research has identified the following possible resources on the web:



    CASE Vendor List - David Alex Lamb, Software Technology Laboratory, Department of Computing and Information Science, Queen's University, Kingston, Ontario, Canada


    College of Staten Island - Comp-Sci Dept - CASE tools by category


    Comp.software-eng FAQ (Part 4): CASE tool vendors

    XTran

    Code Generation Network

    Code Generation Tools Discussion - (Sergey Dmitriev, the CEO of JetBrains, maker of the IntelliJ IDE for Java)


    http://arxiv.org/ftp/cs/papers/0503/0503068.pdf

    reengineer.org/

    wikipedia: List of tools for static code analysis...more

    sourcenav.sourceforge.net/

    http://www.naspa.com/supercharge-your-mainframe-applications-ridding-them-unused-cobol-code

    softwaremining.com
    SoftwareMining offers some of the world’s most advanced Legacy Modernization Tools according to independent reports by leading analysts and Systems Integrators. Our mission is to help our clients extract value from their legacy investments. Our range of tools and services includes

    COBOL to Java Translation, COBOL to C# Translation. SoftwareMining's Rapid Transformation Tools are designed to generate legible, maintainable systems, helping to lower the risk of modernisation and increase the project ROI through quick and efficient processes.


    Business Rule Extraction (BRE) is the process of isolating and reporting of Business-Rules from the application code. With text, graphical and flowchart outputs, SoftwareMining’s easy-to-use, drag-and-drop BRE toolkit enables the user to carry out in-depth analysis and reporting on the COBOL application code.


    Legacy Migration Consultancy - Our broad experience with COBOL legacy application transformation is available to assist our clients carry out transformation risk assessments, develop re-hosting, re-writing or migration project plans, build a business case, calculate ROI and more.




    dmoz.org: COBOL products and services

    raincode.com - COBOL Engine

    http://www.semdesigns.com/Products/DMS/DMSToolkit.html

    Visustin
    Visustin is an automated diagramming tool for software developers and document writers. Visustin diagrams Ada, ASP, assembly language, BASIC, C/C++, C#, Clipper, COBOL, Fortran, Java, JSP, JavaScript, LotusScript, Pascal/Delphi, Perl, PHP, PL/SQL, PowerScript, PureBasic, Python, QuickBASIC, REALbasic, T-SQL, VB, VBA, VB.NET and Visual FoxPro code



    http://search.techrepublic.com.com/search/Source+Code+and+flowchart.html


    http://www.cobug.com/cobug/docs/documentation0035.html
    http://www.cobug.com/cobug/docs/codeconver0031.html

    http://www.fileflash.com/allfiles/draw_cobol_flow/

    http://www.sharewareconnection.com/titles/flowchart-source-code-word.htm

    http://www.owasp.org/index.php/Category:OWASP_Project

    http://www.laatuk.com/tools/documentation_tools.html

    http://www.microtool.de/case40/en/sp_cobol.asp

    http://www.uni-koblenz.de/FB4/Contrib/GUPRO/Site/Home/index_html

    http://www.iste.uni-stuttgart.de/ps/bauhaus/presentation.pdf

    http://www.softscout.com/software/Website-and-Software-Development/Programming-Tools/Source-Code-Analyzers-and-Translators/all.html


    http://www.source-recovery.com/srcn-examples.html
    The ReSource™ technology determines which version of COBOL or Assembler your source code was originally written in. SRC recovers the source in the original "version" of that language.




    Very-Large Scale Code Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder (Department of Computer Science, Graduate School of Information Science and Technology, Osaka University)





    Another area of recent research has been on the topic of online meeting / collaboration software. The following items are what look interesting so far:


    Web Conferencing Tools And Technology: A Mini-Guide

    Web-Conferencing Software Comparison Chart

    Free web conferencing solutions for productive online meetings

    An independent guide to software & services enabling real-time communication

    OpenMeetings
    a web conference tool...tha...includes Video, Audio, Whiteboard, Document Importing, Invitations, and Public and Private conference rooms.


    TANGO - open source Java based system

    http://data.webjunction.org/wj/documents/12479.pdf

    Virtual Collaboratory - wikipedia entry
    "The Virtual Collaboratory provides mechanisms for users to exchange information, data, on-line resources, and ideas. In a collaboratory, individuals from different locations are able to work together using VoIP, document exchange and other features"


    WebHuddle - sourceforge

    DimDim - sourceforge - screenshots
    "Dimdim is an open source web meeting product with features like Application, Desktop and Presentation sharing with A/V streaming and chat. No attendee installation - all features are available through a web browser. Dimdim can be integrated with Moodle. "


    Yugma
    "Yugma is a free web collaboration service that enables people to instantly connect over the internet to communicate and share content and ideas using any application or software. Whether you are using Windows, Mac or Linux computer, you can connect on-demand and real-time with co-workers, clients, friends and family -- regardless of whether they are across the city, nation or even the globe."





    Open source impossible to avoid, Gartner says

    Monday, September 17, 2007

    2007-09-17 Monday

    I have really enjoyed the following book - and have found it very motivational: Make It Happen Before Lunch: 50 Cut-to-the-Chase Strategies for Getting the Business Results You Want, by Stephan Schiffman

    Thursday, September 13, 2007

    2007-09-13 Thursday

    I came across a reference to Dozer today: "Dozer is a Java Bean to Java Bean mapper that recursively copies data from one object to another".

    How a quantum computer factorises numbers

    Microsoft Installs New Software Without Permission - more details here. On XP SP2:


    cdm.dll
    wuapi.dll
    wuauclt.exe
    wuaucpl.cpl
    wuaueng.dll
    wucltui.dll
    wups.dll
    wups2.dll
    wuweb.dll


    Windows Update's Sneaky Updates
    "The only altered files that have been reported to date are 18 small executables used by WU [Windows Update] itself."


    How Windows Update Keeps Itself Up-to-Date (Nate Clinton, Program Manager, Windows Update)


    Ever had end-users who had great ideas - but sometimes didn't quite connect the dots between what they wanted and whether they could afford to do something? Here's the critical question that a friend of mine always asks at the first scoping meeting: "Got Budget?"

    Just for fun, I've launched a cafepress.com store called ITVTechShop - where you too can buy cool things like this:



    Hat'tip to Noel for the idea.

    Wednesday, September 12, 2007

    2007-09-12 Wednesday

    I've been heads-down for the last few days - making some good progress on several fronts:

  • Bugzilla


  • Mantis


  • I've recently installed Glassfish V2-b58:

  • I'm still researching some issues I've run into getting Roller 3.1 to run under Glassfish V2-b58.


  • A few people have run into some difficulty getting BIRT to run under Glassfish. A posting by Vince Kraemer discusses BIRT and GlassFish b41 integration.



  • I've also been somewhat puzzled by an apparent problem getting Subversion 1.4 integrated with Apache 2.0.59 - which is normally a straight-forward procedure - but I'm getting a failure on restarting Apache - with no error messages in the log files.

    Once I get Apache and Subversion integrated - I will be setting up Subversion authentication via Microsoft Active Directory.

    I was making modifications to the Mantis bug tracking system yesterday - and needed to locate a particular string that I knew was somewhere in a PHP file. I launched Windows File Explorer - and tried the usual "*.*" pattern for file name - and the search function reported no matching files found for the specified text string I provided. I've run into a similiar problem before (trying to locate text in files using Windows File Explorer Search before) - and was always puzzled - but usually was always pressed for time, and so never had the luxury of time to spend researching it further. Yesterday I came across this blog entry that describes the issue. Microsoft has a Knowledge Base article that discusses this as well.

    I'm looking forward to getting some time in the next week or so to integrating the team's MediaWiki site with Subversion and the team's final selection of a bug tracking system (either Mantis or Bugzilla). The following links may be helpful:


  • Mantis Integration with MediaWiki


  • Bugzilla/SVN/Wiki Integration



  • The client will also be evaluating Testopia's potential use (for test case management), if they decide to go with Bugzilla.

    Thursday, September 06, 2007

    2007-09-06 Thursday

    I downloaded a number of utilities today to perform some benchmark testing on my laptop hardware - and a new Western Digital MyBook 1 TB external hard drive (that I've configured for RAID 1):


    See [8. Benchmarks] discussion.

    3DMark®06

    EVEREST Free Edition 2.20
    "EVEREST Home Edition is a freeware system information, system diagnostics and benchmarking solution for home PC users"

    HD Tune (Hard Disk utility)


    I've been working today to get Sun's Glassfish J2EE server (V2-b58) up and running with the Apache Roller 3.1 blogging application - against a MySQL 5.0 Community Server configuration.

    I found this blog entry that may be useful for others: roller on glassfish

    Sunday, September 02, 2007

    2007-09-02 Sunday

    Wow. Amazon is now carrying a 2 terabyte external USB hard drive: 2.0TB My Book Pro II USB





    An interesting article over on IBM's DeveloperWorks: An introduction to Eclipse for Visual Studio users

    Saturday, September 01, 2007

    2007-09-01 Saturday

    What a busy week.

    I met with IBM to discuss their Z/OS Web Service integration options and strategies - and have some follow-up discussions to learn more about their Asset Transformation Workbench (AWT) - which provides faciliites for analyzing legacy mainframe code - and identifying potential business rules - as candidates for extraction into reusable components [re: potential Web Service candidates for the architecture analysis I'm doing for a current client].

    I had to do some reconfiguring of the development servers this week - to get MySQL, PHP, Apache 2.0.59, and Subversion re-installed. Before leaving Friday evening, I had Mantis 1.0.8 (PHP/MySQL based open source bug tracking software) up and running for evaluation by the rest of the project team.

    Next week I will install Bugzilla (and possibly Scmbug) for evaluation as well.

    This weekend I'm reading: "Producing Open Source Software How to Run a Successful Free Software Project" by Karl Fogel

    A friend (Thanks Terry!) suggested a web site recently for Visual Studio and .NET resources: The Code Project (tm). I haven't had time to do a lot of browsing through the web site - but after an initial glance, I decided to sign-up for their newsletter. Looks like lots of possibly interesting articles.

    I constantly search for new web resources - and have been saving the links in a somewhat haphazard manner. So I did some searching this last week, and came up with two possible candidate tools to improve the task of capturing and organizing growing library of web links:

  • PHP Bookin

  • Online-bookmarks


  • I hope to have my evaluation completed by next Friday.

    I've been wanting to setup my laptop to dual-boot Windows and a Linux distribution - but have kept putting it off due to the amount of effort it would require to reorganize my hard-disk. So today I'm downloading VMWare Player 2.0. There's a WIDE variety of "appliances" that can be loaded into the Player, see: Virtual Appliance Marketplace. TuxDistro is also a source for VMWare virtual appliance Linux distributions. For Linux distributions that are built to run on the VMWare Player - specifically for a Windows environment, checkout bagside.com

    On a related note, this article discusses running a Linux server farm using virutalization software: Run a Linux server farm for nix (they review VMWare, XenSource and Microsoft Virtual PC).

    I came across an interesting graphic tool today: terragen

    I'm planning an evaluation of some new open source message queue applications - and this article mentioned the recent release of RabbitMQ which is an implementation of the Advanced Message Queuing Protocol.

    Thursday, August 30, 2007

    2007-08-30 Thursday

    Talend Open Studio 2.1.2
    "Talend Open Studio is an ETL (Extract, Transform, and Load) tool. Talend Open Studio can perform jobs that range from datawarehouse feeding to database synchronization, as well as file format transformations. Its graphical interface is made with Eclipse RCP, and data related scripts are generated in Perl. The application was designed to be extended with components written by users"


    Tulip 3.0.0 Beta6
    "Tulip is a software system dedicated to the visualization of huge graphs. It manages graphs with up to 500,000 elements (node and edges) on a personal computer (PIII 600, 256MB RAM). Its SuperGraph technology architecture provides the following features: 3D visualizations, 3D modifications, plugin support, support for clusters and navigation, automatic graph drawing, automatic clustering of graphs, automatic selection of elements, and automatic coloring of elements according to a metric."


    Achievo ATK 6.1.0
    "Achievo ATK is a PHP business framework. It is targeted at developers who wish to focus on business logic instead of coding HTML. ATK provides a complete framework that requires only small amounts of code to get usable applications, while maintaining full flexibility. ATK has a model driven approach, but is 100% customizable."

    Wednesday, August 29, 2007

    2007-08-29 Wednesday

    John C. Dvorak: Don't Trust the Servers
    "The danger of putting your data at the mercy of a company's servers was made apparent when Microsoft's own WGA servers crashed over the weekend"

    Tuesday, August 28, 2007

    2007-08-28 Tuesday

    Microsoft co-founder's next great adventure
    "Simonyi's five-year-old startup, Intentional Software, is making software so smart that you can simply tell it what you want to do. Lay down a few basic parameters, and it will write its own code. No programming skills are necessary."



    Open-source SugarCRM eyes stock market entry

    Thursday, August 23, 2007

    2007-08-23 Thursday

    For a client project, I am setting up a number of Open Source tools to facilitate team communication and cooridination:

  • Apache HTTP Server 2.2.4

  • Cruise Control 2.7

  • Eclipse 3.3 (Europa)

  • MediaWiki 1.10.1

  • MySQL

  • PHP 5.2.3

  • Python 2.5.1

  • Roller 3.1

  • Subclipse 1.2.3

  • Subversion 1.4.4

  • Trac 0.10.4

  • WebSVN 2.0


  • Yesterday I installed WebSVN at the client site - and missed a key line in the config.php - so this morning, with a fresh pair of eyes - I quickly spotted it and it is operational. Simple, clean, efficient.

    I'm currently researching a possible comptability issue with the Apache 2.2 and Subversion 1.4 release - related to the mod_dav_svn.so


    I thought these links might have been the solution to the compatibility problem - but it appears that I have further research to do


    This link may provide some potential solutions - with recompiled mod_dav_svn.so links.


    Re: Re: svn 1.4 and apache 2.2.3
    This message: [ Message body ] [ More options ]
    Related messages: [ Next message ] [ Previous message ] [ In reply to ]
    From: Garrett Rooney
    Date: 2006-09-12 14:44:05 CEST

    On 9/12/06, Johnson, Rick wrote:
    >
    > > 1.4 works just fine with apache 2.2, as long as you're not on windows.
    > > If you're on windows it needs a patch to APR 1.x (which is what
    > apache 2.2 uses) in order to fix a bug that we > happen to trip up, so
    > you'll have to either patch your version of APR or use apache 2.0.
    > >
    > > -garrett
    > >
    > > ---------------------------------------------------------------------
    > > To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
    > > For additional commands, e-mail: users-help@subversion.tigris.org
    > >
    >
    > Can someone point to some documentation about this bug? I just did a
    > Google search and a haxx search and got a LOT of results, some of which
    > talk about patching a bug but doesn't describe the bug.


    It was a problem with how permissions were handled in APR's stat calls
    on windows and it produced strange errors inside Subversion's working
    copy code. It was fixed (I believe) in revision 425620 of APR, and
    backported to APR 1.2.x in revision 425621.

    -garrett


    Trouble upgrading SVN repository server from Apache 2.0.55 to 2.2.0 - SOLVED

    Building the Subversion version 1.4.3 Apache modules to work with Apache 2.2.4



    Here's a short summary by Martin Lindhe
    of How to run Subversion 1.4.0 in Windows [running the Subversion Windows Service - not via the Apache module].

    This may also be helpful: planet-subversion.com

    Wednesday, August 22, 2007

    2007-08-22 Wednesday

    There is a huge wealth of information for Java developers on Sun's
    JavaOne Online Technical Sessions and Labs

    Tuesday, August 21, 2007

    2007-08-21 Tuesday

    I'm pressed for time tonight...so this will be a brief post of some interesting links. One of my current client projects involves developing an Enterprise / Service Oriented Architecture. As a natural consequence of that effort, the question of versioning must be addressed. Here are a few links related to that problem space:

    W3C Publishes an Update to Guide to Versioning XML Schema 1.1

    w3.org Guide to Versioning XML Languages using new XML Schema 1.1 features

    w3.org: Extending and Versioning Languages: Strategies

    xml.com: Extensibility, XML Vocabularies, and XML Schema

    xfront.com: XML Schemas: Best Practices

    xfront.com: XML Schema Versioning

    David Orchard: Extensibility, XML Vocabularies, and XML Schema



    I came across this blog today: plentyofcode.com (Programming Resources, News and Ideas). Wow - what a treasure trove of links.

    I had an interesting meeting today with representatives of Software AG, and had some good discussions covering some of the tools that they offer for rapid development of Web Services to access legacy applications. The scope of today's discussions mostly focused on challenges around integrating legacy mainframe applications into a Service Oriented Architecture (SOA). ApplinX and EntireX were two products in particular that were discussed today.