A Solution So Simple It Could Never Work…

Again, working on the EasyBilling database on a Mac running 10.4, Filemaker Pro v. 5.5…

This time, when our client tried to create a new patient, he got an error message, a document navigation window and then a blank record where he was unable to enter a patient account number.
I watched him go through the fruitless motions of trying to create a new patient and then repeated the process myself, except when it lead me to the document navigation window to locate the document that the database claimed it could not find, I took a stab at finding it. Problem solved!

That is, until you close the database and reopen it – then it no longer knows where it’s files are. After trying to “teach” this database where its own corresponding file was located (by locating the file for it several times in several different ways), I thought to myself, “Fine, database. Obviously, I cannot teach you to fish. I suppose I’ll just have to bring you a pile of permafish so you’ll never go hungry again.” The file that it could not find was in a folder that enclosed the folder that the main database file was in. Does that make sense? Probably not.

Explanation: First off, Filemaker 5.5 is before you could have more than one table in a single file (or maybe Filemaker 5.5 could handle that, but this vertical market billing solution was designed in a version of Filemaker that separates each table into its own file) – so each table in this billing solution is its own file. That’s cool, until one of it’s files is moved – and then it freaks out (understandably – I would freak out if you moved my arm to a separate location!). You see, when we moved these files from the ancient computer to the antique computer a few weeks ago, they somehow came to be in a bit of disarray (I guess…). The EASYBILL.FP5 file was in a folder called EASY BILLING 3.5.7, in which there was another folder called EASY BILLING 3.5.7 which contained the rest of the database files. Which means the main database file was looking for its arm inside its house (folder), when really the arm was sitting just outside the house. You could point it to the right place, but as soon as you closed the database it would forget where you had told it to find its arm.

So… after the database proved itself dumb, I (figuring it would never work, that the solution could not POSSIBLY be this simple, but having no other ideas left to try) moved a copy of the EASYBILL.FP5 file into the same folder as the rest of the database files. And…. (drum-roll, please) VOILA! Magic! I restarted the computer, reopened the main file, clicked on the create new patient button and the database was able to find its arm / pile of permafish – all by itself – no learning necessary! Phew.

Rational descision making

An excellent list of how to rationally achieve a goal rationally…

1) Ask ourselves what we’re trying to achieve.
2) Ask ourselves how we could tell if we achieved it (“what does it look like to be a good comedian?”) and how we can track progress.
3) Find ourselves strongly, intrinsically curious about information that would help us achieve our goal.
4) Gather that information (e.g., by asking as how folks commonly achieve our goal, or similar goals, or by tallying which strategies have and haven’t worked for us in the past).
5) Systematically test many different conjectures for how to achieve the goals, including methods that aren’t habitual for us, while tracking which ones do and don’t work.
6) Focus most of the energy that *isn’t* going into systematic exploration, on the methods that work best.
7) Make sure that our “goal” is really our goal, that we coherently want it and are not constrained by fears or by uncertainty as to whether it is worth the effort, and that we have thought through any questions and decisions in advance so they won’t continually sap our energies.
8) Use environmental cues and social contexts to bolster our motivation, so we can keep working effectively in the face of intermittent frustrations, or temptations based in hyperbolic discounting.

Some links

Some good links for the week…

An analysis of To Do lists by 43 Folders.

This transcription of an old talk by Richard W. HammingOn scientists doing good work, but applicable in any field.

An explanation of why not all procrastination is bad.

A potentially interesting book on design.

And a business development book I’m considering getting for my sister and me.

Installing Filemaker 5.5 on OS X (v. 10.4.11) and working around unreliable printers when accuracy of alignment is of ultimate importance

We recently had to install Filemaker 5.5 on an iMac running 10.4.11. The objective was to move an old vertical-market billing solution (EasyBilling or something) database originally developed in Filemaker from a mac running OS 9 Classic to the newer machine (still quite old).

Unfortunately, at least for the copy of Filemaker 5.5 that we had, it was necessary to install Filemaker 5 first. Filemaker 5 only runs in the OS 9 Classic environment, but luckily OS 10.4.11 has a Classic simulator which allows you to run programs that will only work in OS 9.

After installing Filemaker 5, we went to install Filemaker 5.5. Filemaker 5.5 supports OS 10, but since the database that we need has been running on FM 5.5 on the OS 9 machine, we thought it’d be best to keep the changes minimal and install Filemaker 5.5 to run in the OS 9 environment on the newer computer (FM 5.5 gives you the option when installing). All seemed well, FM 5.5 installed, database moved over to new computer, database appeared to be working, but the alignment with the new printer to print onto very specific insurance forms was off.

When I initially looked at the database, I thought I was out of luck for fixing the forms. Since it was originally built as an independent vertical market solution, the end user was locked out of nearly everything. Also, since it was an .fm5 file, each table was it’s own file. This turned out to be my way in, because the “Forms” file was the only one where Layout Mode was enabled. Once I found that, I was able to nudge the fields on one of the form-printing layouts and got it to print acceptably.

Next problem, not realized for a few days, was that any data entry into the database on the new machine, running in Classic mode, was wonky. When you typed, some letters and numbers would press themselves five or six times in a row. It was clunky, unpredictable and uncontrollable. It seemed like a keyboard problem, but after switching keyboards and restarting the computer and installing a fresh version of the database and testing the typing capabilities in other programs (both those running in OS 10 and in OS 9) and even creating a new database in FM 5.5, the problem proved itself to be related to FM 5.5 running in the Classic environment.

So….. we uninstalled and removed all things Filemaker from the new computer and started afresh. After installing FM 5, we installed FM 5.5, but this time chose to have it run in the normal OS 10 environment. Put a fresh copy of the billing database on and viola! – problems solved. I readjusted the form layout and had it printing adequately. At first the invoice numbers were not auto-entering as they should be, but putting a fresh version of the database on the machine yet again seemed to fix that. (We couldn’t do much else as we had no access to scripts or the table structure itself.)

Final problem, again realized another day later – while the printer would print the form correctly SOMETIMES, it was not incredibly reliable. This was a problem with the printer, but not one that we knew how to fix or control – just a shitty printer was the root of the problem. Since the printer seemed to err towards printing the numbers slightly above the box they needed to be in, I moved the numbers down some on the layout – and then the printer cut off the bottom half of the numbers! (much hair tearing ensued here) Finally, after quite a few trial and error prints and thoughts of just getting the client a newer printer or resorting to hand-writing the numbers in the correct boxes, I realized that the printer printed much more accurately at the top of the page (the part it prints first). So, as my one genius move of the week, I went into the form layout yet again in filemaker and GROUPED all the fields together (important or it won’t work) and rotated them as a group – twice, so that all the fields were upside-down. I then ungrouped them and made some minor adjustments, fed the forms into the printer backwards, and VOILA! numbers in the correct boxes. I printed several copies and each worked quite well. SOLVED!!! … that is, at least until the client returns from vacation and unearths more problems for us to work on.

Can’t Keep Up

Greetings. I just spent several hours reading about Filemaker Go solutions and development. Baaaaaahhhhhh. Of what I read, about 5% interested me and 95% frustrated or bored me. Where do you begin? What is a good idea? How do you know what to invest your time and energy in when everything is CONSTANTLY changing – and changing more quickly than you even know?

I just learned that the makers of FMTouch (an iphone app to access Filemaker databases on the iphone, ipod touch, ipad etc.) are providing a service that allows a Filemaker developer to submit a standalone database that will be converted to a standalone iphone app and sold in the Apple app store. This seems like it could be a cool idea… except that it costs a TON of money for the developer and honestly, who is going to pay more than a dollar or two for an app that is just a database built by some unknown developer, that won’t really sync or do anything cool other than store data, accessible only through a very small screen? No one that I can think of. I looked at some of the available ‘apps’ on the FMTouch website and was remarkably unimpressed. First off, they looked stupid and so narrowly focused that I can’t imagine using them. Second, some of them were ridiculously expensive ($50!?!?!).

Side-note: I own an ipad and an ipod touch. Not gonna lie, I’m a huge fan of apple products – the hardware and operating system especially. The rest of Apple’s software is cute but generally not particularly exceptional. Anyway, I own these devices, and my sole computer is a macbook pro, so I think I can speak as a consumer of such apps, and in doing so I can’t see reason to buy any of these. Also, a well-known problem in the app store is the inability to test an app. Sure, you can see some screenshots, but not many, and it doesn’t let you experience the app (or database in the case of these FMTouch apps) and see whether or not it’s something you could use often.

Here’s my issue. I don’t know what kind of apps would succeed as independent database applications. In theory it sounds cool to make niche databases built for the iOS, but in practice who really wants niche products? Are there that many things that I want a solution to (or someone wants a solution to) that are so isolated they require their own app or database? Granted, it’s good to keep things simple when programming, but I do not want five million different apps (either on my computer or my iOS device) to do all the little things I may want to do and record all the data I may need recorded. I don’t really see the purpose in a niche application unless it syncs flawlessly with all the other ways I may want to access and work with my data. If it doesn’t sync with every other application I use then what good does it do me? Honestly, I’d like JUST ONE that does nearly everything. I want the user interface to be consistent and the data to be accessible system-wide. I want it to sync between devices and online storage. I want it to look good and work well. Is that so much to ask? Actually, I suppose it really is.

So… if I were to develop something that I thought was worthy of marketing and selling to others, it would have to be infinitely complex and perfect… which is impossible. Alas, I suppose the niche market is the way to go until I can think of a way to exponentially surpass the bounds of my abilities.

A long week.

David has been away, and there is nothing like having your boss gone to make you think about what you do and how you do it.

I figured there would not be a whole lot for us to work on while David was gone – we each have some smaller projects we are working on, but for larger stuff it’s better to have David around to ask questions and get constant feedback. So I assumed that I’d end up working about half-days for the days David was gone… I couldn’t have been more wrong!

I don’t understand what happened or why, but it seemed like as soon as David left town things started breaking. It has almost felt like someone is sabotaging us. Instead of spending half-days, I have spent double-days, trying frantically to fix all the little problems that have cropped up in the past week – some of which became major problems for a while.

It may be timing, it may be attitude, it may be … chance??, but it’s interesting the way things have turned out. First of all, it’s made me appreciate David as a boss even more: one – that he trusts us to fix stuff and deal with problems (even when maybe he shouldn’t have) and two that he commands a respect for his abilities that makes us feel confident in our abilities when he’s there as our safety net. It has been fascinating to me to see the way we’ve each dealt with all these mishaps – at first we tackled the problems confidently, then failed, started floundering in an ocean of problems and doubt, and slowly, slowly dragged ourselves out of the depths in the best way we knew how. Wendy may have had a different experience, as I think her endeavors of the past week have been slightly more successful, but Christian and I have certainly taken a beating trying to set up a VERY old database on a VERY old computer system.

Anyway, despite having worked for hours and hours on end to make very little progress, it’s been a good week. I worked really hard, learned a lot, eventually fixed things a little bit, and had fun drowning in the sea of computer ignorance. Thanks David (but don’t leave again anytime soon, please)!

Also, side-note: Mac OS 9 is something else! It makes me eager for the day OS 11 arrives (or something).

How to get a CMS to read code

A recent problem I’ve had with working in WordPress and Magento has to do with their code ‘helpers’.  If you write a post in WordPress or a Page or Block in Magento, you may have discovered the same thing that I did:  These CMSs let you view the HTML, but they don’t always actually read it or show it.  For example, I recently needed to edit a page (that I didn’t originally make) on Magento.  Unbeknownst to me, there were empty divs for design purposes that Magento didn’t show to me in the HTML view.  (I’m guessing because they were empty.)  I made my little change to a link, must have backspaced an ‘empty’ space and saved…. Voila!  The front page is now missing its main photo.  I had no idea where the main photo had been saved, what it was called, or even why it disappeared to begin with.  Needless to say, I stressed for a little while.

I finally figured out what had happened when I decided to add an empty div to place the photo back in place, only to not be able to see the HTML I had just typed in after I saved it.  Thank you Magento; your design helper for HTML illiterates is so helpful!

I had seen this problem before in WordPress.  In the past I’d tried to recreate a page in WP by copying and pasting an entire page of code.  When I did that, I realized that everytime I had hit ‘enter’ while typing in a normal editor, WP had interpreted that into a paragraph or break.  (and didn’t show that to me in the HTML.  You can only see how many paragraphs or breaks it’s adding by viewing the page source after it’s live.)  However, when I wanted to code in a ‘break’, it completely ignored it!

What is the point of letting one ‘view’ the HTML, if it is going to hide some of the code and ignore other bits?  I know there are plug-ins for WP to let you override the HTML ‘helps’.  However, I don’t want to have to add the plug-in on every single site I work on and I also don’t think there is an equivalent for Magento.  You’re so unhelpful, ‘helper’!

Visit the “competition”

Karen Weaver at Desert Dog is a competitor and if you’re looking for custom FileMaker databases, I recommend contacting her.

Karen is not only a competitor, but she may be the ONLY other shop in the STATE of New Mexico doing FileMaker work.  Now that I write this I realize I haven’t actually seen any of her work, I’ve just discussed FileMaker with her. (Note to Karen: I’d love to compare dbs sometime). She knows what she’s talking about and is a trustworthy person.  That’s good enough for me for an endorsement.

“David”, you’re thinking, “why the hell are you advertising for a competitor???  How stupid is that??!”

“Well, friend, I have good reasons. And ‘stupid’ is a crappy argument. Like calling something ‘crappy’.”

Anyone spending any significant amount of money ought to check with three professionals.  Whether you’re looking to invest ten grand into a database or see a therapist or find a seller’s agent, you should find three professionals and get their free or nominally priced opinion before even considering one. Obviously, it will give you perspective on the task you’re trying to accomplish. But you also need to match your business and personal needs with that developer.

Obviously, you have specific business needs, like pushing data to the web, or managing rental inventory, or connecting to your company’s ‘big’ database.  And Karen and I have different specialties that may match those technical needs more effectively.

But the BIG mistake we make in forming service business relationships (and my friend, building a custom database IS a service business), is not recognizing that our personalities mesh.  It’s not necessary that the designer and the client like each other.  I crossed that out.  It’s not necessary, but it sure is helpful.  If not like, then at least be able to communicate effectively. We’ll be spending a lot of time together. Clear open communication is really important.

I don’t want you to be a client of mine, I want you to be happy client of someone.  If you’d be more satisfied working with Karen because you mesh better, then godspeed.

There’s only one way to find out.

Gather my thoughts

Organization of Thoughts.

The more I work with Filemaker, the more small tasks I find myself having to juggle in my head while working on an element of a database. Today I was deciphering (attempting to, at least) SeedCode’s Free Calendar for Filemaker. It is INSANE (in a brilliant way). And as I pondered how they were making things work, I found myself unable to juggle all the pieces in my head at once and becoming progressively more amazed at how they seem to have thought of all these things in advance.

I have this problem often when I’m fixing one small part of a layout or script in a database that I’m working on. As I tinker, I think to myself “Oh!  I need to fix a similar thing on ______ part of the database. Oh, and that one. And then I’ll have to change this thing here and make it consistent over there. And…” etc. It’s difficult to maintain a balance of focus on the task at hand while not forgetting the various other tasks that need doing as a result of this task.

I had the same problem while coding my mom’s website (STILL IN PROGRESS) yesterday. I am not using a content management system for it because I’m not familiar enough with any of them to install and customize it in a reasonable amount of time… but it would be MUCH easier if I were. There are so many simple pages, and every time I change one thing on one page, I have to go through and see what other pages will need a similar change and update them all.

Filemaker is good at keeping track of such things for me (the developer), but clearly it cannot catch inconsistencies between my layouts or ways that I wrote different scripts. It just keeps track of the names of tables, fields, scripts and layouts so that when I change a name it updates the names universally.

These challenges intrigue me. I want to know how one goes about designing a content management system. Where do you even begin your plans to ensure that the whole system is as consistent and infallible as possible? I want to learn more about not only software development and coding, but about the planning process. I think it would help us in our database designs and builds. Having a thorough, straightforward planning template would help ensure we don’t have to backtrack making consistency updates so often.

This problem was more apparent to me when using SeedCode’s Calendar today because I didn’t even know all the connections and dependencies that I was affecting as I worked (which caused me many problems). It’s amazing – their code is SO well-documented and clean, and yet I still broke the whole layout by moving around things which I thought I then put back in place!

Another element of this whole planning and organization of thoughts is documentation. Before I started working at Wing Forward, I didn’t put any documentation into websites that I made for people – or into anything, actually. And while we’re not documentation experts (by ANY means), David encourages me to comment scripts so that we can see later what they are doing and how. I’ve found that I’ve started doing that for my own sake on my own projects – even in Illustrator templates that I will return to later. It’s SO helpful!

Summary of thoughts:

Plan first. THOROUGHLY. Design with consistency and maintenance in mind. DOCUMENT your work as you go. And there you have it, the makings of a content management system, yes? I don’t know.

Processing

In general, I’m a results driven person. I like seeing what my goal is, figuring out what steps I need to take to get there and then putting the first foot down for the first step. Then, ideally, the second foot for the second step and so on. I don’t really mind if I get to a point where I think my original plan won’t work and I have to rethink the steps I need to reach my goal. What I do mind is if I have trouble coming up with the steps in the first place.

This sometimes happens in design work for me. For example, if I’m told ‘the favicon isn’t showing up on certain pages: fix it’, then I have a list of things I know to check for to find out why it isn’t showing up. If, however, I’m told ‘the front page of the website needs to look simpler’, then I have more trouble. This isn’t because I don’t have any ideas about what would make it look simpler; I think this is because I have trouble determining what is the most important thing to change first. I can’t see a clear line from not simple to simple.

At this point I either jump right in and try changing the first thing which comes to mind and continue at random until I feel like I’m completely wasting my time or I try to make a list of my ideas until I have trouble beginning at all. Lately, I’ve been trying to change it up a little, though, and I’ve learned a few things about the process.

First: Don’t be afraid to ask other people’s opinions. I’ve found that having sounding boards is the surest route to success. If I stop every 30 minutes and ask someone’s opinion of my latest idea I narrow down the options and cut some out altogether.

Second: Take a break! Time, not coffee, will help you see your own results more clearly.

Third: Relax. I often feel that if I work faster and harder I will come up with a good idea faster. It’s not true. But if I relax and have more fun trying out my ideas, I will certainly come up with a better one.