Jun 12

I have a client that requires an Enterprise Resource Planning system in order to comply with an upcoming FDA audit. In searching for an acceptable solution I ran across systems that cost hundreds of thousands of dollars (aparently some of the larger companies like Dell pay millions of dollars for their ERP systems). How is the little guy to enter the fray which such prohibitive barriers to entry bar the way? The answer I discovered was in an opensource project on sourceforge.net called “Compiere” (which apparently in Italian means “to accomplish, fulfill or deliver” – very appropriate). This particular project has consistently been in the top four active projects on sourceforge which bodes well as it has a huge developer community and is growing rapidly with plenty of new modules and features to accomodate every conceivable business need. I was stoked to find such a system that was: 1) free 2) cross-platform 3) very much alive 4) and has no shortage of consultants to help in a bind. The only problem was that it requires Oracle 10g database to run on – and everyone knows Oracle licensing ain’t cheap.

I hunted around and found something called CODAF (Compiere and Daffodil db) which sounded promising but after tinkering with it for about an hour and digging through their site grappling w/ various problems getting the database working, I realized it wasn’t truly a free solution after all so I kept up the search. Then I discovered a database called Fyracle which promised to emulate Oracle closely enough to where Compiere wouldn’t know the difference. Their install instructions for Windows were very straightforward and I ran into only a few rough spots before I had the whole thing setup and running on XP. I was tempted to try their install for linux but they were pretty involved, about 3pgs long and I’m honestly not comfortable w/ linux and the command-line yet. I gotta say both installers ran flawlessly and so far so good- I had it up and running in less than an hour.

Even with a fairly-simple install process, I thought making a video tutorial with RoboDemo would help give people a good overview to see what’s involved before actually diving into the specifics and plus it might clear up some of the minor weirdness I discovered in the docs (like having the compiere install dir default to the D: drive which on most machines is the CD-ROM). For me, learning how to use this ERP system is the next step in this project but if the Compiere user guide is anything like install documentation I’ve seen so far, it should be fairly smooth to pickup. I would really like to see some tutorials like this one made by some of the more experienced Compiere users to show how the software is used for common daily tasks like inventory control, supply chain tracking, accounting integration and CRM functions. Perhaps someone at Compiere will dig this method of teaching and adopt this idea of producing some video tutorials. Enjoy!

Watch video tutorial on Compiere ERP setup on Fyracle databse and Windows XP in five minutes
7.1MB ~5min

PS. I know my blog is now syndicated from a couple different sources ranging from ColdFusion to legal technology-related. I generally post about whatever “ah-ha” moments I have and stuff that I find useful and interesting to myself. I have my feet in both the legal and CF swimming pools – hopefully peripheral topics like this one do not alienate either camp by falling on the side of being too technical or not technical enough. My rule of thumb for writing here has always been “stuff I wish someone would have told me in the first place” and that continues to be the compass by which I align my postings here.

Tagged with:
Jun 02

I’m pretty sure that K2 was that insane mountain that John Cusack tried to ski down in Better Off Dead (“have you any idea of the street value of this mountain it’s pure snow!!”). Well the “street value” of Verity K2 is no less amazing. It’s not often you have the opportunity to improve your application’s performance by10,000% through an hour’s-worth of work. In migrating an application to a new server tonight I was reminded of just how much better verity k2 server is than the standard VDK version that comes bundled with CF and yet not everyone is utilizing this feature. VDK apparently is a file-based approach for indexing while K2 is a server-based approach to do the same thing. If you’re on windows you can (and should) set it up to run as a service. I would say anyone running CF enterprise who is doing any type of searching with verity would strongly benefit from the hour or so investment it takes to get going w/ K2. There is a good tutorial here that walks you through the process of switching modes. I’m using Verity now to index a giant application-scoped query of 5000 contacts against which I compare a user-submitted list of names in my Sentinel Application. My app literally performs 100x faster with K2 than it did with the vanilla install of verity. Just look at the speed comparison using the getTickCount() function:

The only gotcha I ran into in migrating this app to a new server is that you can’t create a k2 index without first creating your standard verity collection. Once you have your regular VDK collection running successfully, follow the steps in the tutorial above to make it hum w/ K2. Also, when moving from one server to another, simply copying the collection files does not work, you need to create the collection through the administrator from scratch. Performance gains on the order of 20% are generally impressive but 100-fold improvements are unheard of. Chalk one up for CF.

Tagged with:
May 23

I was roped into this chain letter by Rob Brooks-Bilson :-) My contribution to the meme:

Total Volume (of my MP3 library): 74.3 GB

Last CD Bought: “Garden State Soundtrack ” – Various Artists

Song Playing Right Now: “Unsung” – Helmet

Five Songs I Listen to a Lot:

  • Boombastic Radio shoutcast stream
  • Flying Horses – Dispatch
  • Trip Like I Do – Crystal Method (Filter Remix)
  • Lucky Denver Mint – Jimmy Eatworld
  • Collide – Howie Day

Five People to Whom I’m Passing the Baton:

May 19

With the miracles of modern technology, this morning at 35,000ft I was able to get a full install of Fedora Core 3 running on my new laptop under Virtual PC. This Inspiron 9300 I got is nothing short of amazing- i tricked it out w/ 2 GB of RAM earlier this week and w/ the 2.0 Pentium M chip, this thing just smokes. Hats off to Virtual PC too – this program is amazing, software that can emulate a machine to the point where the installed OS THINKS it’s running on a real box. I got to thinking about the possibilities of virtual pc’s running other virtual pc’s but it became a bit too “malkovitch malkovitch” in trying to grasp the existential implications of this type of virtual recursion so I let it go and screw around with linux instead.

The Fedora install is part of a larger goal I have right now of getting Subversion source control running first locally on my laptop and then on my buddy’s linux box. I will say that getting Fedora on VPC is not without its headaches- first you gotta get the ISO’s which are a full 2.3GB in all. I found this torrent tracker hosted at Duke University and was able to use BitTorrent to get about 250Kbps on my cox@home connection. Once you have the ISO’s, you can walk through the wizard for creating a new virtual machine in VPC. You then use the CD > Capture ISO option to fool the virtual machine into thinking it’s got the CD-ROM in its drive. So far so good- the rest of the Fedora install is very clean and they have a nice GUI wizard interface to customize it for your needs. There is one major hack however you must apply to the kernal in order to get it to recognize your monitor. The first time I went through it, it installed flawlessly but when I rebooted it threw an error saying “ID 2 Respawning too quickly – shutting down for five minutes.” After some serious digging in various forums I found this post that contains the necessary set of instructions (56 individual steps in all) to get it to work (and I can confirm that it does in fact work). The crux of the issue apparently stems from the OS’s inability to recognize the monitor of a virtual machine, you have to explicitly set this using some linux commands and installing a kernal modification. Once that was done, the intstall worked perfectly.

On another note, tomorrow is my brother’s wedding. I’m sitting here in my room at the Marriot in Monterrey watching seagulls out my window (which is an absolute novelty for us Arizonans) and trying to come up with a creative slideshow that will embarrass the hell out of him at the rehearsal dinner tomorrow night. I snapped this pic on my treo and stored it to the SD card:

What’s cool is my laptop has a built-in SD reader so transferring pics is simple- you pop in the card and it runs a quick sync tool and maintains a folder on your harddrive called PalmOne that has everything your card has. From my room I can see no less than twelve separate wireless networks on my laptop (about half of which are unencrypted) but apparently all have mac address filtering turned on or are just too weak a signal as packetloss is about 75%. I have this nifty program called PDAnet for my treo that turns it into a modem for my laptop. It gets decent speeds too (about comparable to a 56k modem) and I hear the Sprint network can do about twice that (I’m on Cingular). Anyways, I will definitely post my experience in getting Subversion to work as it seems like quite a process from their site. Looking forward to this weekend. In a span of three weeks it’s been Connor’s bachelor party, followed by my 30th b-day, followed by his wedding – June is shaping up to be a month of detox for sure!

May 05

Here’s a simple trick for any ColdFusion developers working on windows and running a development server on their machine to make your system run faster when you’re not developing.

If you are like me then you are running a webserver, an app server and a database on your laptop while you’re developing from an IDE. But this is only when you’re developing- at least 70% of the time you boot up your system, you’re not doing development work at all. The resources consumed by your app server, your web server, your database server and all the pre-requisite services on my machine for instance take up about 70MB of RAM. Since I currently only have 512MB to work with, that’s a significant chunk of my machine’s memory resources that 70% of the time is allocated to services that I’m not even using, making whatever else I’m doing (3d modeling, multimedia, browsing) 15% slower than it should be! Turn the developer-specific services to “manual” by default in your services control panel and then use these two simple batch scripts to start and stop all development-related services when you need to put on your developer hat:

<!— WebStart.bat —>
net start “World Wide Web Publishing Service”
net start “Simple Mail Transport Protocol (SMTP)”
net start “FTP Publishing Service”
net start “IIS Admin Service”
net start “ColdFusion MX Application Server”
net start “ColdFusion MX ODBC Agent”
net start “ColdFusion MX ODBC Server”
net start “MySQL”
<!— WebStop.bat —>
net stop “World Wide Web Publishing Service”
net stop “Simple Mail Transport Protocol (SMTP)”
net stop “FTP Publishing Service”
net stop “IIS Admin Service”
net stop “ColdFusion MX Application Server”
net stop “ColdFusion MX ODBC Agent”
net stop “ColdFusion MX ODBC Server”
net stop “MySQL”

And you can easily customize the scripts to add other services, just open up your services panel and get the name from there.
The ideal setup (and I’m moving to this method) is to add a crapload of memory and run something like virtual PC and have an entire environment that mimics your production server and do your development there. That way you can create a “throw-away” space to work with, break it all you want and then just copy the single file that contains the environment to clone it and start again. For the resource-thrifty developer on a budget though, this trick can greatly improve your system performance when you’re not developing.

On a completely unrelated note- big shoutout to Neil and Sara for their recently-released Technolawyer Blog. It’s actually more of a track-back since they were kind enough to publish my Sentinel Article that didn’t make Law Office Computing’s magazine. If you’re in the legal technology consulting industry, then you’re familiar with Technolawyer. It’s a top-notch newsletter aggregating peer-reviewed posts by experts on topics of technology for lawyers. .

Apr 24

There was a recent discussion on our CF User Group list that regarding a general purpose form generation tool that could store form definitions in XML and be used to abstract the form logic and circumvent the tedious process of writing forms. I for one HATE writing forms- it’s just one step above cleaning the bathroom on my list of “mindless, repetitive yet necessary annoyances.” So basically I had this same idea a couple years ago to distill the logic of forms down to the critical portions that change from instance to instance and then write a very simple message format and engine for storing form definitions in XML and then rendering them to a browser. I called this project Instaform and from the recent renewed interest in this technique on the AZCFUG list, I have dug up the code and made it freely available here.

A couple things:
Just for background, the birth of this concept for me came after I had played around with a tool that was used to develop a Macromedia developer survey I had taken. The tool InfoPoll.com’s windows client for creating surveys that could be hosted on their site. At the time I was sick of writing forms and facing the need to make a ton of forms for various projects I had while working for Act.com. I was also reading a book on design patterns. that gave me this whole idea for “encapsulating the variation” in systems. When I used the Infopoll client, it made me realize that form elements are really just different variations of the same class and that surveys are composed of questions and common form object blocks which consist of these elements. Adding new elements was just a matter of writing the necessary “handlers” for displaying them. The result was some tinkering that lead to Instaform. I have since seen a better implementation of the same idea called Facile Forms which is really worth checking out if you’re serious about this stuff. Facile Forms is an add-on component to the php-based Mambo framework (i know i know, not cf…) and it achieves the same thing as InstaForm plus some added advantages like:
-a nice GUI for administration
-extensible validation scripts
-automatic handling of the database logic for storing responses
-a slick mechanism for sharing and deploying forms via XML
-positioning information to place the form elements where you want
-support for multi-step “wizard” forms

Feel free to try out InstaForm – if it gives you an idea you can use, great. I made this same disclaimer on the azcfug list:
1. it was pre-cfmx when it was written and therefore did not make use of cfc’s and the cfxml tags since they did not yet exist. Instead it relied upon a tag from SiteObjects called “soxml” that was a wrapper for the MSXML com object that parses XML.
2. I haven’t actually tested it since 2002 so the code may need tweaking to work
3. I don’t see what harm could come from playing with it, but I suppose I need to make the standard “use at your own risk” disclaimer and I’m not responsible if something breaks.
What would be really cool is if someone would port the Facile Forms component to ColdFusion and sell it as a mini-app or customtag. Anything to eliminate the tedium of forms is money well-spent.

Tagged with:
preload preload preload