Posts Tagged ‘ myquerybuilder.com ’

MyQuery Builder in Chrome Web Store.

Tuesday, September 6th, 2011

MyQuery Builder logoGood news, everyone! MyQuery Builder is now available as an app in the Chrome Web Store. Once you install it, an icon will appear on your new tab and/or home screens. Click on that icon, and it takes you directly to the Query Builder (assuming you’ve signed up, etc.).

MyQuery Builder, if you don’t know, is a visual MySQL query editor and php code building tool designed for php web developers. Try it for free or find out more information at myquerybuilder.com.

Sphere: Related Content

MyQuery Builder Makes Editing MySQL Queries Easy

Thursday, August 18th, 2011

MyQuery Builder logoI’m proud to announce the launch of my latest project, MyQueryBuilder.com!

MyQuery Builder is a visual tool for professional PHP developers who need to construct MySQL queries reliably and easily. If you have ever needed to build database functionality into your site, you’ll want to check MyQuery Builder out. The tool is a web-based app that can run either in the cloud or locally on your dev server. It is designed work in harmony with your existing tools (e.g. Dreamweaver, Coda, BBEdit, etc.) and to be an integral tool in your production pipeline.

At the heart of MQB is the SELECT Query Builder that lets you drag and drop tables and fields on one another to build your query up interactively. It’s a really slick way to build even complex queries with multiple JOINs and condition statements. Find out more and see the SELECT Query Builder in action.

Closeup of MyQuery Builder’s SELECT Query Builder

Its counterpart is the Utility Query Builder that lets you build UPDATE, INSERT, REPLACE, TRUNCATE, and DELETE queries with just a few clicks.

Both tools can throw their resulting queries over to the PHP Code Builder that construct functions and class methods (or stand-alone procedural code) with ease. If you’re working on multiple projects simultaneously, you can use saved Sets that create code to your custom coding standards. It even supports both the old MySQL and the newer MySQLi PHP extensions.

The starter account is free, so there’s no risk at all to kicking the tires. For more advanced developers or situations where you need to access secure data, there’s an option for you to download and install MQB on your local development server. Compare the features and pricing over at MyQueryBuilder.com.

MyQuery Builder is an integral part of my development workflow, and I hope it will be for you, too.

To help spread the word about MyQuery Builder, you’ll get a free month of the Pro or Locally Hosted plans for every user you sign up. Simply put your referral link up on your blog or site and you can conceivably never pay for the service.

Sphere: Related Content

Divorcing Dreamweaver

Wednesday, August 17th, 2011

After ten long years, I’m finally kicking Dreamweaver to the curb. I’m done. I’ve had it. I’m divorcing Dreamweaver.

In this article, I’ll chronicle my journey and describe the choices I made along the way. I committed to switching away and used the productization of my MySQL query building tool, MyQuery Builder, as the testbed for this experiment. After a few jarring days, I grew to love Coda and I haven’t looked back since.

If you have ever thought about looking for an alternative to Dreamweaver but have never made the leap due to difficulties in learning new tools or finding equivalent functionality, you’ll be interested in my story.

My Breaking Point

I have been seriously thinking about eliminating Dreamweaver from my development workflow since the release of CS3. Since Adobe’s purchase of Macromedia, the app has steadily gotten worse. This is not a knock on the very capable members of the Dreamweaver development team, more the inevitable result a publicly traded company’s demand to upgrade a product that tries to serve too many disperate audiences. Designers are not developers, and the tools they need are vastly different. In an effort to serve both audiences, Dreamweaver has ultimately failed both. The app is crumbling under its own weight.

With each CS release, the app became less usable, more buggy, and increasingly bloated with shore-horned features that try to serve too many masters yet ultimately serve none. With CS5.5, Dreamweaver things reached a critical breaking point. Between the crashes, the bugs, the data corruption, and the addition of yet another bucketload of features I didn’t need or want, I’d had it. I was done.

This is the app I cut my developer teeth on; the app that used to be indispensable; the app I recommended to colleagues; the app I deployed to my teammates; the app that I could count on for professional-quality web development.

Alas, Dreamweaver ultimately became the app I loathed with every keystroke and cursed with every click.

It’s sad, really. As with the end of a real marriage, I mourned the history I have with Dreamweaver. I’ve developed hundreds of web sites using Dreamweaver. I’ve developed entire production pipelines and internal tools based specifically to work with Dreamweaver. But in the end, the relationship was rotten to its core, and I needed to move on.

Removing Dreamweaver from my production pipeline has mostly been an exercise in finding—and in some cases, building—equivalent tools. But more than anything, it has been an exercise in unlearning practically every development pattern I know and overcoming ancient habits.

In the end, I write this saying it’s done. It’s over. I did it. And you can do it too. You can step off the ledge. You won’t fall.

First, the End

The biggest challenge has been finding equivalent tools. Here’s what I ultimately landed on:

  • For the day-to-day, bread-and-butter coding, Coda is the best tool around. The biggest hurdle to using it was getting past its differences between Dreamweaver. Trying to work in Coda after a decade of doing it the "Dreamweaver Way" is, in a word, shocking. There are some tricks I’ll describe later to ease this shock, but you still have to fight through it. However, I’m here to say that not only can you make the transition, you should. It’s a much better live out here on the other side.
  • One gaping hole in Coda’s feature set is support for dynamic site development ("Server Behaviors" in DW parlance). For this, I significantly upgraded and productized some internal tools I’ve developed over the years. The end result is MyQuery Builder which lets you build MySQL queries and wrap them in PHP code. In fact, it was the project to productize MyQuery Builder that I chose to ween myself off of Dreamweaver.
  • For version control (which I never really used Dreamweaver for anyway), Versions.app is the tool of choice.
  • For direct file transfer, Transmit can’t be beat even by Coda’s built in FTP capabilities.
  • I still use the Mac’s Terminal app for command line work, TextExpander for snippets, and Dropbox for seamless development across development machines.

So between these tools, I have 98% of my development work covered. The one thing I still miss is the ability to scaffold forms quickly. I’m sure I’ll figure this out, though. It has to be a solved problem. I simply have to find—or write—the right tool. In the mean time, I can code by hand.

Now, the Journey

Now that you know the end, what follows is the journey that got me here.

It took a little over a week to work through the loss of productivity learning the new tools. Here goes…

Standing at the Ledge

For years, I’ve been building up to dumping Dreamweaver. My production pipeline is a patchwork quilt of tools that all have the same characteristic: each overcomes some shortcoming in Dreamweaver. Site-wide search and replace is done in TextWrangler; complex MySQL query construction was accomplished in MyQuery Builder; code cleanup and formatting in various internal tools; JavaScript development in BBEdit. File transfer with Transmit and version control with Versions. But at the core of all of this was Dreamweaver.

Over the years, I’ve tried replacing Dreamweaver. I experimented with alternative tools like Espresso, hardcore tools like TextMate, and even <shudder>Java-based PHP IDEs.</shudder> I was desperate.

However, change is hard. My life is a series of deadlines, so I never found the time to work through that initial shock of learning a new tool. After every attempt, I would hit some brick wall of productivity and just figured it wasn’t worth the time and effort, so I kept coming back to Dreamweaver for my day to day PHP coding.

With CS5.5, the cost/benefit scales titled. Not only was Dreamweaver quirky, slow, and inefficient, it was now crashing like mad and corrupting my data. I was done.

Facing failure again, I knew that a successful jump depended on a wholesale commitment to finding and adopting the right tool for me. I knew this would be hard to do with a client site, so I chose an internal project that had no strict deadlines and upon which I could experiment.

The Perfect Guinea Pig

MyQuery Builder is a visual query builder that lets you build complex MySQL queries by dragging and dropping fields on one another. It started life strictly as an internal tool, but I knew it would be of benefit to other developers, so I decided to productize it and make it work in a wider variety of environments. Thus, MyQueryBuilder.com was born.

Being built in Dreamweaver originally, the proto-MQB was a hodgepodge of frameworks and standards all necessitated by the desire to make the tool compatible with Dreamweaver’s widgets and tools. A massive benefit to eliminating this dependency on Dreamweaver editability: much cleaner code. Dreamweaver’s tentacles reached way down into functions, classes, site structure and file organization. It was nuts.

So I had a project that had no deadlines that was also a perfect testbed for experimentation. It was perfect, so I jumped.

The rest of this article is a diary of sorts chronociling the difficulties I encountered and the techniques I used to overcome them.

Day 1: Continue development on MyQuery Builder

Today is just bread-and-butter development attempting to integrate the Google Checkout XML API–which is maddening, by the way, having nothing at all to do with my choice of tools. The person who architected the Checkout API workflow needs to be taken out back and shot in the head. This is the single most convoluted process to get a credit card payment I’ve ever seen. Rube Goldberg would scratch his head at this one.

  • Switching back and forth between BBEdit and Coda.
  • I’m really struggling in Coda without the ability to click on a page location in design view to drill down on it in code view. I’ve found no replacement functionality in Coda, though it seems that the feature should be there. Obviously there’s no design view to speak of in BBEdit.
  • I discovered that you can create web site definitions in BBEdit, but aside from triggering the preview in browser feature, I’m not sure what purpose this serves. I’m really missing CMD+D in DW where you can open an included page with a keystroke.
  • Still bouncing around a lot between apps. That certainly hasn’t gone away.
  • Living without server behaviors is getting easier as MyQuery Builder matures.
  • Productivity still sucking, and I’m really struggling with the different syntax highlighting, believe it or not. That turns out to be a big psychological barrier to making the jump.

Day 2: Continue development on MyQuery Builder

Like yesterday, I’m continuing my maddening efforts to implement the Google Checkout API. So today’s work is mostly straight PHP class development.

I’m going to attempt an all-Coda day. This will be tough. I really cannot wait until Coda2 comes out.

  • I keep tripping over the different syntax coloring in the different apps. Coda’s PHP syntax coloring is especially troublesome in that most everything is either blue or yellow. There definitely needs to be more granularity in their coloring.
  • It drives me nuts that Coda forces you to reopen a site every time you launch. That and the fact that you have to manually split and then put the second pane into preview mode.
  • I keep tripping on clicking in the Preview pane and expecting the cursor to move to the corresponding bit of code in the code view pane. Let’s hope this shows up in Coda2.
  • I bit the bullet and created an Automator service that splits the doc and throws the right-hand pane into Preview mode. That should make things a bit easier.
  • Out of the box, Coda sucks at generating forms or any standard elements, and Clips isn’t cutting it. Looks like a good feature for MQB where I can tie in a query directly into a form generator.
  • A quick google search for "coda dreamweaver php syntax coloring" revealed a thread that linked to
    César Estrada’s Dreamweaver style themes for Coda
    . Exported my HTML, CSS, and PHP see styles and imported the new DW-based ones. Ahhhhh….
  • I’m really missing DW’s autocomplete for included CSS styles. No replacement that I can find in Coda (so far).

Day 3: A mixed bag

Continued implementation of Google Checkout into MyQuery Builder with some form development, some JS development, and more PHP class development.

  • Did I say that I was having an “all-Coda day?” Well… I can’t seem to kick the habit of keeping TextWrangler open for scraps, clipboarding, and odds and ends. I can say honestly, though, I didn’t use anything but Coda for development.
  • Also, did I say how much I’m detesting Google Checkout’s API. Seriously. It doesn’t seem to have evolved in three years. Not an inch. You still can’t delete integration console messages. Subscription options are a joke. And please tell me why on Earth I can’t simply use GC as a standard payment gateway. It’s like they’re 99.8% the way there, but they just don’t want to let me do exactly what I need to do. I think I’ll be kicking GC to the curb after this project.
  • I’m not sure I’m *ever* going to get used to the way Coda’s file manager handles double clicks. I really wish it just dropped the folder down instead of opening it in its own sub-hierarchy.
  • I’m also really missing BBEdit’s and Dreamweaver’s variable introspection and code hinting. I prefer Coda’s code hinting UI better, but it only looks on the current page without traversing included pages or the framework. I find I’m having to guess at my framework variable names a lot which is obviously prone to error.
  • The same introspection goes for class names. As with framework variables, Coda doesn’t provide hinting for included classes either. This results in a lot of unnecessary clicking, opening, copying, and pasting.
  • I’m loving the speed of Coda’s site-wide search, but the UI blows. Not as bad as Dreamweaver’s but, it seems unnecessarily wedged into the top of the window rather than popping out like it should. This is one of those cases where Coda’s "all in one window" paradigm gets in the way of actual productivity. Really, BBEdit and TextWrangler nailed it. There’s no better Search & Replace on the planet. Side story: We all know Dreamweaver’s site-wide search is pathetically slow. But how does it compare to the competition? As an experiment the other day, I started a site-wide S&R in Dreamweaver on a site with 10k+ files. Then I opened BBEdit, performed the same search, completed manual edits on each found instance, saved all the files, closed BBEdit, and came back to Dreamweaver which was only 50% of the way through it’s initial search. That’s just inexcusable. The good news is that Coda’s search, if anything, seems faster than BBEdits. I didn’t think that was possible.
  • Here’s an odd one: I really miss Dreamweaver’s cmd+return-triggered insertion of “
    ” in code view. I’d set up another service, but services take about a second or two to launch which isn’t good enough when typing. Hmmm…
  • Really missing a feature equivalent to BBEdit’s Tidy or DW’s Apply Formatting to clean up code.

Day 4: Final QA & some odds & ends on a client project

This is a mixed bag of cleanup on aisle five with a little bit of everything: form development, some JS development , PHP R&D, and more PHP class development.

  • Form development by hand sucks. Like falling back into bed for the occasional quickie with the Ex, I had a weak moment and fired up Dreamweaver to build my form. What can I say? I didn’t want to take all day coding it by hand.
  • Note to self: looks like a form builder is going on the to-do list for a MyQuery Builder tool.
  • Loving Coda’s integrated Terminal, although it is no functionally and productively better than my current setup using OS X’s Terminal with TextExpander.
  • <joy> (and by that I mean <FAIL>): BBedit 10 came out, but the upgrade prompt’s change dialog was blank so I blindly clicked Upgrade and Relaunch without thinking about it. Unfortantely BBEdit 10 requires a new license key, so now I’m back in Demo land until I can get this sorted. I feel tricked and used.

Day 5: Play Ticket to Ride while Lion downloads and installs

In the mean time, I’m continuing development on the Google Checkout API in Coda. Sigh.

  • I’m really warming to Coda’s brand of Code Navigator. While I like BBEdit’s drop-down menu, I’m finding Coda’s graphical icons are a little easier to intuit on a page that has combined classes, methods, and stand-alone functions.

Day 6: nuts and bolts site maintenance across a variety of sites originally built with Dreawmweaver.

I’m getting very close to removing Dreamweaver from my Dock. =)

Day 7: massively rearchitect a site

I now face the daunting task of separating the public facing side of MyQuery Builder from the tool side that can be downloaded and installed locally on your system. Since the tools existed long before the need to make them available to other web developers, and since both the tools and the public site are built on the same CORE framework, this is a challenging task of a) extricating the tools so they can be installed as a stand-alone site, and b) ensuring the public site works without replication. Bug testing will be tough, too, since the tools and the main site use all the same function calls. Anyway, the task at hand involves widespread file manipluation and site-wide search and replace to update links.

  • Sadly, Coda isn’t up to the task alone. I’m finding it necessary to divide the tasks between two apps. For site-wide search & replace, nothing beats BBEdit. For moving the files, I’m relying upon Versions to handle anything that requires renaming or duplication. Anyone who has tried to rearchitect a project under Subversion version control can attest that this is a difficult process fraught with hurdles, and Coda’s SVN support simply isn’t up to Versions’ level of flexibility and reliability. For the first time ever, Versions is the only version control software I’ve used that didn’t make a total hash out of this process. Kudos to them.
  • During this experiment, BBEdit updated itself to version 10, so on top of everything else, I’m having to get used to the new UI. So far, my review can be summed up in one word: “meh.” Seems they moved some stuff around, but is it really worth $40 for a cleaned up Preferences panel? Not for this developer, no. To be fair, I’ve only begun to use the new BBEdit, so maybe the brilliance of the new features will become apparant with continued use. On the surface, though, there’s not much new to love. The now-permanantly-open “Currently Open Documents,” “Recent Documents,” and “Worksheet & Scratchpad” subpanels are intrusive. I found the Drawer style from v9 much more efficient and clean, and it seems we even lost the ability to define web sites (though, again, to be fair, this feature was never well-implemented in the first place). In my personal workflow, BBEdit is still relegated to big Search & Replace operations and little else. v10 does not bring enough to the party yet to change that.

Day 8: Take a breath

Big day. I removed Dreamweaver from my Dock. I’m fully over to Coda now.

Epilogue

So it’s been about a month since I removed Dreamweaver from my Dock. That was a huge psychological moment for me. Since then, I’ve opened Dreawever twice; once to build an unbelievably complex form, and the other time to open a legacy site that wasn’t set up in Coda yet for a quickie, one-sentence edit.

My conclusions:

  • Coda is the bomb. Coda2, I hope, will overcome a few of the rough spots that remain in the feature set, but they don’t need to change much.
  • Not only is it nicer working in Coda than in Dreamweaver, I never realized how deeply the "Dreamweaver Way" impacted my site architecture choices and coding style. It’s like getting rid of a limp you never realized you had.
  • Replacing Coda’s default syntax highlighting themes with ones that more closely matched Dreamweaver’s overcame one of the biggest, yet most subtle, psychological barriers in this process
  • If anything, this effort has made me realize just how bad Dreamweaver is. I never knew…

So there you have it. It’s done. Dreamweaver is out of my life, and I’m better for it.

Sphere: Related Content