Entries for month: January 2009

Database modeling for MySQL

Database , mysql , design , sqlserver 91 Comments »

I'm on a rampage to find the best, most affordable data modeling tool right now. My immediate need is MySQL, but I should probably remember that my decisions made during my freelance projects greatly influence my decisions made at the office where we use SQL Server 2005. But I've got to keep realistic here - I can't afford to invest in some of the massive architecting solutions I've found here and there. Speaking of solutions, let's have a run-down of where we are.

Requirements

I'm looking for a solution that can perform the following:

  • Entity relationship diagrams (ERD)
  • Reverse-engineer existing schemas into diagrams
  • Generate new or alter existing schemas based on diagrams (sync)


Optionally, I'd like the following additional features:

  • UML class diagramming
  • Object Relational Mapping (ORM) that integrates the UML with the ERD
  • Integration with source control, preferably Subversion

I don't need anyone to tell me that these are some pretty high and mighty features. At the very least, it's hard to find all of these in a package that costs less than four digits. So far I've looked at these two products with some level of detail.

MySQL Workbench

This is a nice product, especially because it comes straight from the heart of MySQL land. Best of all there is an open source version and a standard edition which only costs $99. This is extremely affordable. Workbench provides the reverse engineering and forward schema generation, which is really the most important pieces. The down side is that this is only for MySQL. I can't start jumping DB platforms. I've got to admin though - the diagrams it produces are beautiful and very easy to read! I give this one a thumbs up but with a regret about its targeted platform and no UML/ORM.

DB Visual Architect (by Visual Paradigm)

I'm pretty overwhelmed with this piece of work. I'm not officially a database engineer and I've never been fully immersed in a traditional SDLC. With my experience lacking in those areas I find myself falling behind with some of the terminology that's merely labeling some of the icons. I didn't know where to begin at first.

I made a few tables in an ERD and had the application push the tables out to my development DB server. It was almost too easy! I still need to take a closer look at the UML and ORM features, but I can tell they look pretty in-depth. There is also support for many types of major RDBMS players out there including SQL Server of course. Big plus right there. I think the only down sides to this program is that it's about four times the application I really need and there is a $700 price tag. Which is probably, as I consider it, an amazing deal.

Oracle SQL Developer

Nice product, completely Java-based, and its features out of the box seem to topple the MySQL Query Browser. I did have to manually install the latest JDK and the MySQL JDBC connector in order to get it to work. However, did I mention this is a freebie? I think that would have put it above the class, but it doesn't generate schema (only DDL) and it's a bit sluggish in the UI. My PC is a little old, so it's a good test for these things. There isn't any UML or ORM, either.

There was one thing with this one, though, that blew me away. They built SVN and CVS capabilities right into the application! You can even create a Subversion repository from within the program. Very nice, Oracle!

οΎ 

Well, I think that sums up my roundup for tonight. I want to take a look at some of the Redgate tools out there, I hear they have a wealth of good solid solutions. I'll know my search is over when I can feed a schema to Squidhead and have all my scaffold and beans when I return from making a coffee.

Yet another guy (me) on Google AJAX API's

JavaScript , AJAX , jQuery , Google 150 Comments »

I couldn't help it, I had to post on this topic even though it's kind of a hot topic and you'll find many other posts out there on this. Hot indeed, and yet I need to search around quite a bit for the answer to my error.

First, to follow me, here's some homework to read up on in case you're not down with Google's hosted AJAX API scripts and the google.load() function.

Basically, I ran into this thing where I was using the google.load() to first grab the jQuery core and then immediately afterwards (next line) grab the jQuery UI library. However, I was getting the following JavaScript console error everytime the page loaded:

$ is not defined

The line giving me the trouble was my document ready method, standard fare for jQuery:

$(document).ready(function(){

The problem was that the google.load() function that was off trying to get the core wasn't coming back and processing the core fast enough for the ui library. The jQuery object wasn't initialized yet. The solution was to wrap my jQuery ready method inside the setOnLoadCallback() function, thusly:

// Use the Google API Loader to bring in the jQuery libraries
google.load("jquery", "1.2");
google.load("jqueryui", "1.5.3");
google.setOnLoadCallback(function()
{
$(document).ready(function()
{
...ready code goes here...

The slight delay is actually the fault of the google loader, which kind of stinks because I think it's a pretty cool loader. According to the blog I referenced above, you never get this problem if you don't use the loader and go straight for the remote js library files via script tags. Those apparently obey ordered loading. So, I learned a little this evening. I hope it helps you, too.

Extending Fusebox's Coldspring Lexicon

Technical , Framework , AJAX , fusebox , coldspring 372 Comments »

Chronicled within this somewhat lengthy post I detail my growing knowledge about how the current implementation of the custom Coldspring lexicon for Fusebox is falling short of my needs. I decided to do some research and try to make it better. Lots of progress was made, but there's more to go. Read on for details and code samples...

Read more...

I didn't know there was a Subversion club of woe.

Technical , Upgrades , scm 131 Comments »

Woe is me, I've been sat on a stool by Subversion. Well, let's be serious. Not really by Subversion, but by a hosting provider, Apache, and my own unpreparedness. But it's easier and less wordy to simply blame Subversion (although not fair). Let me take you through my series of events.

First, the free project host Assembla made an announcement early this week that by the end of this week their initially-awesome and free service would no longer be free, and therefore not quite so awesome. They basically said they're locking things down on JAN 9 so pay up or get off the server. I'm sort of in the middle of a project I was hosting there, and I'm not feeling in the giving mood so I'm outta there. You can disregard my positive-toned blog post last year about how great Assembla was. The free SVN hosts out there many, and yes Assembla - they also do project management and ticketing solutions! For free!

BeanstalkSo all of a sudden I'm looking for a new host for my SVN repo of a private project I'm working on. A colleague recommended Beanstalk, which I had already found and was considering on my own (not to mention I saw it pimped by Versions). So with all signs pointing to Beanstalk, I'm headed over there for a little while to test the waters. I might even become a paid member. The rates are good.

XAMPP LogoI was able to download a Subversion dumpfile of my work, but it's not in a very cleaned-up state. I wanted to do some filtering with it, and I needed Subversion. So I downloaded it and tried to install it but the Apache WebDAV wasn't playing ball. Turns out I have an older (2007!) version of Apache, which was part of the XAMPP distribution from Apache Friends. That's an excellent package, by the way, and I recommend it for anyone wanting to throw together their own development server in near-zero seconds. The ColdFusion 8 installer will play nice with it, too, and get it's hooks in.

Skipping a few details and hours of frustration trying to get configuration from the Collab-bundled install of Apache into my XAMPP installation, let me just say that it was all about my older XAMPP. I threw some caution to the wind, only backing up my Apache modules and the conf directory, and did an overlay install of the latest XAMPP over the old one. Whala! It's all working. All of it, including the WebDAV SVN integration and the MySQL configuration and heck - CF is alive and well!

Looks like I lucked out this time, sort of. Now I'm going to use the SVN dump filter to trim up my dump file and import it to Beanstalk, beginning chapter two of this damned SVN hosting ordeal. And I guess I'm about to become a Basecamp man, too. I was really trying to avoid that for some unknown, inner-child reason.

I joined the CFLOGIN club of woe

Technical , Framework , cftags 110 Comments »

If I had a quarter for every time this tag, which was forged upon the anvil of evil and chaos, got the best of me and my time I'd be able to... I don't know. Hire Adobe to write my code for me?

The CFLOGIN tag and the attribute-of-disdain known as loginStorage has smote me. It's my own fault for not understanding the difference between choosing "cookie" (the default, and my God just leave it be!) and choosing "session". I chose "session", thinking of course I'd like it in the session. All session based things, authentication included, ought to be in the session. Uh... no.

What started happening was that I would authenticate fine, establish my CF login and my roles, and it all looked okay. A CFDUMP of my credentials immediately following the CFLOGINUSER would yield just what I expected. However, the very next request would forget who I was entirely!

<cflogin>
<cfloginuser
name="#attributes.j_username#"
password="#Hash(attributes.j_password)#"
roles="administrator" />
</cflogin>
<cfdump var="#GetAuthUser()#" />
<cfdump var="#GetUserRoles()#" />
<cfabort />


Now I'd like to give some credit to Ray Camden for his frustration with this a long time ago, which is featured on this blog post. Also, please take note of this adorable post in the Adobe Knowledge Base about the issue, which basically says don't use loginStorage="session" because it's a security risk. Whiskey Tango Foxtrot!?

Powered by Mango Blog. Design and Icons by N.Design Studio
RSS Feeds