Brian McQuay

+menu-


  • Category Archives Web Design
  • Upgrading Webster’s Classroom from Rails 2.3 to Rails 3.1

    I’ve recently tasked myself with performing a major upgrade for Webster’s Classroom. It includes both a complete site redesign and an upgrade to the latest version of Rails. We all know its a bit of a pain to upgrade from Rails 2 to Rails 3 but the longer you put off the upgrade the more painful it becomes. The app was written as a proof of concept many years ago and despite its growing user base it doesn’t have a strong enough foundation to allow it to continue expanding. We build it too quick and sloppy years ago and as a result we are testless and in need of major refactoring.

    The lack of tests actually makes the upgrade easier in some respects because instead of having to hassle of fixing a bunch of sloppy tests I’m building everything from scratch both the app and the tests. The refactoring needed for this upgrade is like writing the application from scratch anyway. The existing code I’m using more or less as a rough sketch of feature requests and I have full intention of throwing all that code away if it makes sense to in this new context. Instead of trying to upgrade the inline Prototype Javascript to jQuery and UJS piece by piece, I’ve decided its best to just throw all the old Javascript out the window and start fresh. I’m committed to getting as close to 100% test coverage as possible these days so as I’m doing the upgrade and redesign I’m making damn sure there’s proper tests in place this time around.

    I’ve upgraded a handful of apps to Rails 3 from Rails 2 already and in the past I’ve started off trying to upgrade within the current code base. I’ve had numerous problems with this approach and unless you’re really meticulous on every single file, you’re going to end up with a bunch of old junk files laying around and likely some missing new ones that you’ll want. This time I’ve taken a different approach and started off with a fresh default Rails 3.1 install and began moving over the legacy code file by file. I’m happy with taking this approach and instead of trying to take my Rails 2 code and upgrade it to Rails 3. Starting with a fresh Rails 3.1 code base and moving over code where it needs to be has given me the chance to move things into places they ought to be like moving code outside of the environment configs and into initializers. If I had just tried to upgrade the old code inline, I wouldn’t have spent the same amount of attention on cleaning up that mess. Once this upgrade it deployable, Webster’s Classroom is going to be in a position to really expand dramatically and rapidly.


  • EngineYard default configurations strike again

    It was just brought to my attention that my company’s homepage was pointing to the wrong app. This has happened a few times since I’ve switched to EngineYard. They don’t include www aliases in the default nginx configuration so you have to add them with a keep.domain.conf file. I recently migrated my company site to a new instance and left the default configuration. When I checked to make sure the app was setup on the new instance properly, http://onomojo.com , it worked fine and I didn’t think anything of it. Of course, I didn’t test http://www.onomojo.com which ended up pointing to an app that is still in the early phases of development since I didn’t customize the nginx config. What a huge goof. No wonder I’m getting mixed responses from potential new work lately. If you’re reading this and you saw the awkward half broken site with the test video please revisit the site again.


  • No Plastic Day – June 8, 2010

    No Plastic Day - June 8, 2010

    I like to do my part to save the planet and this is just one way in which Onomojo is trying to help. We’ve just recently finished a non-profit site promoting No Plastic Day which is on June 8, 2010. So far we’ve got a decent amount of people joining the event and I’m asking for your help in promoting it further. We all need to do our part to save the planet. One day without disposable plastics isn’t much to ask. Join us and together we can create a better future.


  • New Onomojo Flash Animation

    Onomojo Flash design

    I’m happy to announce a Flash addition to our Onomojo homepage. The artwork was inspired by an artist here on the North Shore of Oahu named Heather Brown. The actual artist for the Flash animation and the latest addition to the Onomojo team is Rhys Lynn. Here’s a preview of the new splash page and the new homepage. The homepage just changed backgrounds from the green dots that were there before but it looks a million times better with the blue background. Let me know what you think.

    New Onomojo homepage


  • Webster’s Classroom screencast

    Here is a screencast our account manager, Micah Friedlin, made introducing you to Webster’s Classroom. Webster’s Classroom enables teachers to create free classroom webpages. We just recently upgraded the site to include some new features including password protection, classroom archiving, file dropbox, and more. There were numerous bug fixes and security enhancements made as well.


  • Webster’s Classroom redesign

    It’s been a long time coming but we’ve finally published our redesign of the Webster’s Classroom site. Webster’s Classroom helps teachers make classroom websites. We’ve also incorporated a new school site feature which will allow schools to take advantage of the features offered with Webster’s Classroom and get their entire school online. Its a service site offering school website design through my web development company, Onomojo. Check it out and tell your teacher friends about this great free tool.

    Webster’s Classroom redesign


  • New Onomojo design services

    Its been a long time coming but we’ve finally got our new site design finished for Onomojo. We’ve also expanded our services to include graphics design, logo design, web design, and a whole slew of other graphics related services. That’s in addition to the services we already provided which were primarily programming, seo, and marketing related. Here’s a screenshot of the new design.

    Onomojo screenshot


  • SEO, online marketing, and web development

    I’ve been meaning to write about this for quite a long time but somehow never seemed to get around to it. I started a SEO, online marketing, and web development company called Onomojo a while ago. I’ve just been so busy since its conception that I found it hard to find the time to blog about it. I’ve decided to take a break from the hustle and bustle of the routine and say a few words about us.

    seo, online marketing, and web development company onomojo screenshot

    We offer a complete marketing package for online businesses who are looking to increase their exposure and increase their revenue. A lot of businesses throw money at expensive marketing firms and end up with little to show for it. We found that in most cases the marketers weren’t developers and the developers weren’t marketers. Onomojo is different. We are all programmers, designers, and marketing professionals. This gives us an edge and the ability to offer complete marketing packages that complete the necessary learning loop to achieve success.

    Any successful business must learn from what it does right and learn from what it does wrong. When your marketing agency has to communicate their wishes to developers the intentions are often lost. Programmers aren’t typically interested in the marketing aspect of development. Marketers usually have no clue how to program or design. We are different. Our developers have a passion for SEO, marketing, graphics design, and everything else it takes to make a company successful. Our feedback loop of what works and what doesn’t is extremely short with a complete package. We learn from the marketing and SEO and we directly apply that learning to your site design and content. We take learning from CPC ads and traffic analysis and we apply those lessons learned to make your site more effective. Onomojo offers complete online marketing packages for business looking for a competitive edge. Visit our site at http://onomojo.com and fill out the contact form for more information on what Onomojo can do for you and your company.


  • Open Source Keyword Tracker

    I’ve reached my limit of frustration with current keyword trackers. The technology is simple enough that it baffles my mind why so many keyword rank trackers are for profit. There doesn’t seem to be a single decent instance of an open source keyword tracker out there that I could find. I want something open and that can run in Linux of course but my searches have left me empty handed.

    I’ve started designing my own keyword tracker as a result. I will release it under the GPL because I like to keep it real like that. It will be a Rails application and I will host a version for people to use free of charge (with some limitations so it doesn’t kill my servers). Basically, you can extend the app by creating a Rails plugin for it for different search engines. I will just write one for Google for starters. Hopefully I can get some community support to get more search engines working for it. I’ve got the database mostly planned out and will be starting the project in the next week or two. I will make an instance of Trac to help the collaboration and issue tracking.

    Basically, I’ll be creating something that will have multiple users. A user can login and enter a new site or track an existing site. Each site has a set of keywords which the app tracks over time. I want graphs of the keyword activity over time and I want the ability to import keywords and export the rank history. If anyone is interested in helping me out on this project just comment on this post to let me know and I’ll set you up with a Trac account so we can get started.


  • Safari and Firefox multipart form submission differences

    I just stumbled on a strange difference between submitting multiparts forms via Firefox and Safari. When a file isn’t selected and the form is submitted, Firefox sends the variable name with an empty string as the value. Safari doesn’t send the variable at all. This caused an unexpected problem in Rails when I was checking if the variable was an empty string or not. I honest would prefer to check if the variable is nil or not and if its not nil I’d know the file was sent. I checked for an empty string because Firefox sends the variable. Not my code has to also check if its nil and if not then check if the filename is not an empty string. Lame.