Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Wednesday, April 15, 2009

Filemaker Table Joins - FINALLY!!!

I've been searching high and low for any way to perform a table join in Filemaker using a foreign key relationship without using a blasted portal! With a little bit of ingenuity and a lot of brute force, I finally found a way. I'm hereby declaring April 13th forevermore Victory over Filemaker Day! Here's how I did it.

Say you want to list organization affiliations on a given contact's record and you have two tables:

  • organizations: with the fields - organization_id(PK) and organization_name
  • contacts: with the field - organization_id(FK)

To display a list of organization names on the contact record:

  1. Create a layout based on the contacts table.
  2. Go to Manage... in the File menu and in the Relationships view (looks like an ERD or schema) link the contacts:organization_id field to the organizations:organization_id field.
  3. Now go to the Tables view and select the contacts table.
  4. Select the contacts table and add a calculation type field: calc_organization_names.
  5. For the calculation, insert the following formula which will take the matching organization names based on the table relationship and replace the line feeds with a comma:
    • Substitute ( List ( organizations::organization_name) ; ¶ ; ", ")
    • You may use a calculated field in the formula, e.g. if you wanted to concatenate organization_name with organization_city.
    • NOTE: Unfortunately cannot combine fields directly within List() function (with multiple fields the first field's values get listed followed by the second, and so on).
  6. Click OK to save the database changes then return to the new contacts layout.
  7. If it wasn't added automatically, add the newly created calc_organization_names field to the layout.
  8. If you already have the appropriate data filled into the tables, you should be able to see the comma-separated organization lists as you browse through your contacts.

For me this was a huge victory because finally it meant getting Filemaker to behave more like a proper database as opposed to the kneecapped desktop-based monstrosity I've come to know over the years. Being forced to use this on projects instead of the real SQL databases (MySQL, PostgreSQL, mSQL, Oracle,...), this comes at nothing less than sweet relief!!! (Sweeter relief if I didn't have to use Filemaker at all, but that work's in progress. One step at a time.) Thanks to my colleagues who've put up with my ceaseless bellyaching about Filemaker over the past few months.

...but what the heck. One more rant for the road:

The Foreign Key Relationship is basic database functionality. It shouldn't be SOOOO hard to find out how to implement this properly on anything calling itself a database. Yet for all my searching I found absolutely no documentation pointing to me a solution that didn't involve portals which lock it into a stupid scroll box in layouts, hamstringing further use of the resultant data.

So short of buying a Filemaker book that may or may not have the answer I needed, paying for a training class or one of those infernal pay-as-you-go help forums I was stuck coming up with the solution above k-solo. Yes, that makes me a cheap bastard, but it's the principal, dammit!

SQL's been around since the 70's and is a de facto standard for relational database interaction. If you produce a product that mimics a relational database, then pay your developers properly, give them a few more Red Bulls and let them make it work the way a database is supposed to. Or at least document it properly so these basic functions aren't hidden! Cute quirky history with Apple aside, obfuscation doesn't equal value!!!

Thursday, April 09, 2009

getting drupal's big picture

The Pro Drupal Dev book is great. Halfway through having learned about modules, nodes, hooks, menu items, etc I was having trouble pulling together the big picture: how do all these make a site?

Took a step back and thought about a target site archetype: sections, pages, page types, page sections/modules. Mapping the site out this way, creating a page taxonomy (page types and their content components) I was better able to relate to the nodes I’ll need, modules, and even admin behavior and permissions (what should be enabled/disabled, and for whom).

This will help a lot as I go forward with the reading (will probably be revisiting a few chapters) and will probably be revisiting this (both the notes I took and the exercise itself) several times in the near future.

Sunday, March 22, 2009

Support a Music Revolution - Ardour.org

More importantly, keep someone doing good in the world out of the kindness of his own heart from having to quit his altruism altogether.

Ardour is an Open Source digital audio workstation. Think ProTools, FL-Studio (formerly known as FruityLoops), ACID Pro and other home to professional studio production tools. Now think FREE as in beer and speech. The tools above range in price from $200-$2000 per license. Ardour is an industrial strength tool, that's free AND runs on a similarly free operating system - Linux (something those other clowns DON'T do).

As Ardour's creator put it, when you buy a car, the hood isn't welded shut. Likewise with Ardour, except you don't have to pay anything for it. You download it, you install it, you own it, and it's TRULY yours. Tinker with it, install it anywhere you want as many times as you want, upgrade it for free, copy and share it with all your friends. ALL of them! Let's see Microsoft offer you all that!!

Huh? What's that? You don't make music and you don't use Linux, so what does this mean to you? Think of a kid with an old used hand-me-down computer running a free operating system (Linux) who uses a beat-up hand-me-down guitar and this free audio production software to make beautiful music that will finally blow all the nauseating crap you hate off of the airwaves once and for all.

It's a dream, I know, but that can't happen if the developers can't afford to support it, upgrade it, and keep it solid and competitive. Doing that is a fulltime job that Ardour's creator and contributing developers do for free. All they ask is a dollar and a dream...a dream of better software, a dream of better music.

Friday, December 12, 2008

There's more to the HeliOS story

After a teacher put a kid in detention and confiscated the Linux CD's he was handing out when that kid was demonstrating a Linux computer donated by the HeliOS project, then contacted HeliOS claiming that handing out software free-of-charge was probably illegal, public outcry at Slashdot and Digg followed. Of course, there's more to this story...I was impressed with this story because it exemplified the term "learning moment". And it resulted in the type of real learning, both technical and social, that work with Open Source uniquely brings.

read more | digg story