About

david merwin. designer. dad. passion. life. entrepreneur. husband. disciple. pure blue. What's up? Stuff is broken.

Projects

ORCAS, PBI, NI, BC and WPC are just a few of my favorite things. NEW: Oregon Biking Search Engine

Fun

Preview

you are currently browsing development

Defending Loose Coupling in a Corporation

December 27th, 2007 Posted in design, ideas, code, technology, development, django | Comment2 Comments »

I am working on an argument for loose coupling. I have had several instances lately where I have had to defend the practice to entrenched ideologies. There are still a lot of folks that want to mix content, logic and presentation.

I completely understand wanting to have the freedom to mix presentation and content. the need to quickly “see” how a page is taking shape makes sense. However, the practice can really muddy the waters.

Read the below draft and let me know your thoughts:

Keep Em Separated

How loose coupling provides more profitability.

The tech team’s basic development philosophy is based around an idea called loose coupling. This philosophy is designed to keep three very important elements separate from each other. These elements are called Business Logic, Presentational Logic, and Data.

Business Logic is simply the how and what of an application. When a user clicks this link, what happens. When this form is submitted, what response will the user get? The logic is the “magic” that make the application do what we want it to do.

The Presentational Logic is what does the site look like? What are the colors, where are the buttons and more. Basically, what is the end users visual experience with our products.

The final piece of the puzzle is data. The data is the raw “stuff”. The images, video and text. The content for the site.

Keeping these elements separate helps facilitate four very important strategies.

  1. Scalability
  2. Accessibility
  3. Portability
  4. Flexibility

Scalability:
Keeping an application scalable is crucial to its continued success. As a product becomes more successful, or the user’s needs change, being able to scale the product will ensure future use. Scalability does this by planning ahead for growth to avoid being surprised by inefficient processes and slow designs.

Accessibility:
By practicing loose coupling, you can also ensure that as much information as possible is getting into the “hands” of those that need it. If the data and the design are separate from each other, a screen reader will have a much easier time reading content that does not have code embedded in it.

For example, when using a screen reader, the user must listen to the reader read through the text. If styling is embedded in the content, then the reader will read that as well. It can be very disorienting for users.

Portability:
Loose Coupling is very import for portability. We have already begun to discuss making some of the ORCAS project available to mobile devices. Additionally, Adobe Air offers some excellent user opportunities as well. But if the content that we use, or the design we have created, has been mixed with another element, than this will need to be removed, often at great expense, to be used in a different way.

NEED TO ADD NOTES ABOUT SCORM HERE

Flexibility:
Being able to move a program form one use to another helps the bottom line. If you can repurpose content, or logic, or design, that is one less time that something needs to be created. If I can develop content and store it in such a way as to have it used in different place, I have made that content more profitable. If the design that we have created turns out to not work in Firefox 3 or in Internet explorer 8 it is much easier to just modify the design instead of the design and content enmeshed together.

So, when you are creating or inputting content, please make sure to keep these ideas in mind. If what you are inputting will somehow effect the behavior, position, or coloring of a piece of content directly, please reconsider. Please keep your styling of content to a minimum. For example, h2 and h3 tags are great, but applying the header tags and a color would be inappropriate. This would mix the content and the presentation and would need to be removed later.

The designers and developers are rapidly working to make as much as possible happen automatically. If there are tools that you feel you need to have added, please let us know. We want to give you the flexibility that you need to get your job done.

Video Journal 12.6.07

December 6th, 2007 Posted in culture, web, development | CommentSay Something!

iGTD 2 is Coming

November 25th, 2007 Posted in faith, emma, software, development | CommentSay Something!

But when dang it?

BlueChannel

September 12th, 2007 Posted in creativity, design, ideas, business, code, web aps, news, agi, technology, mac, software, google, development, django | Comment2 Comments »

Well, it has been 2 months of work. Lots of weekends and 2 in the morning nights. BlueChannel is here. This would also explain my complete lack of posts in the past few weeks.

BlueChannel is a content management system built on Django. It is being used by one of my clients now and will be deployed by AGI and another clients in the coming weeks.

The name comes from the channel that is created by surf as it interacts with the shore. You use the channel to get out through the waves quickly, and often without even getting your hair wet! A good channel can make a great surf trip. If you follow the analogy, Blue Channel will help your project get it’s content on the web with ease.

Django is an amazing framework for development. They have not even hit 1.0 yet, and they already are an incredibly powerful, fast, and flexible platform for developing applications. Adding features to BlueChannel is simple and quick.

For instance, Jason DeMoe came to me the other day and said that he wanted to change the sort order for a given page of staff descriptions. I could have written a custom SQL statement to sort the results. However, I don’t need to be involved if he wants to change his mind later on. So instead, I added a field to the data model called order. Now, he just changes the number in the order box and the system will show his new order. It took me less than 5 minutes to add.

I am so excited about both Django and BlueChannel. As I hinted at earlier this summer, I have two more ideas coming… but it will be fall at this point. But the fact that I know what is involved, it is just finding the time, is thrilling. It helpss take creativity to a whole new level.

If you are interested in using BlueChannel, I have released the code under a MIT license at Google Code. Please post any questions on the Google Code site.

Retro Encabulator

May 17th, 2007 Posted in creativity, design, culture, business, life, code, cycling, humor, photography, development, django | Comment1 Comment »

Most folks in the business world could care less about the terms I use to describe the different pieces of my profession. I have a vocabulary that is different. And it doesn’t matter what the topic is. Movies, photography, development, even cycling. My world can get very small when it comes to describing things in it. Not because I am smarter than anyone, I just have a different vocabulary.

And the funny thing is I know and work with people who have yet again another vocabulary. When they are talking I just laugh because I have no idea what they are saying. I recently told my students at A3 that if you can translate between the geeks and the designers you will always find work. Because you will be the one that can bridge the gap and enable communication.

We were sitting in a meeting recently and I was asked a question. I gave an insightful answer. The client looked at me a little bewildered. My partner Luke, sensing the confusion, looked at the client and said “No”. We had a good laugh.

This morning I was watching a Scoble Show with John Nack from Adobe about Photoshop CS3. He started to talk in jargon and Scoble called him on it. John cited this video as an example of what he was doing.

I am glad I have translators in my life. Now if someone could just explain to me what my wife is saying!

How to Install Django on a Mac

May 16th, 2007 Posted in code, web aps, mac, how-to, development, django, ruby on rails | Comment6 Comments »

UPDATE 5/16: I added links to tutorials for getting started with Django.

Introduction

I have been asked lately to talk about or refer to how to get Django onto a Mac for local development.

There are several ways to do it. I tend to like the easy, neat and tidy solution. For me that means using MacPorts.

Django, and Ruby on Rails for that matter, rely on open source software and libraries. I have used Fink in the past but found it to be difficult to maintain. That’s just me, not necessarily a reflection on Fink. I was introduced to MacPorts 8 months ago and I have loved it.

Assumptions

Before we get into it, I need to list some assumptions that I am making.

  • You do not need Apache. This is for local development. Django has a development server built in.
  • You are using OS X 10.4
  • You understand that you are taking some risks by setting up a development machine. You could mess up your computer by using Terminal incorrectly.
  • You know how to use Terminal.

    Install XCode & MacPorts

    MacPorts provides an easy way to manage all your open source apps and, most importantly to me, automatically downloads and installs dependencies. So for Django, you need Python. When you install Django, MacPorts will look at the dependencies and install Python for you.

    And I do mean download and install. No more make or make install etc. You issue one command and it downloads and installs the app. Pretty sweet.

    So to get started, read the instructions at the MacPorts site. Be forewarned, this is going to take a while. I recommend putting a movie in… You need to install Xcode from Apple. You will want the latest version from Apple. It is a large disk image so its going to take a while.

    When its all said and done, make sure you update MacPorts. To do so, enter the following: $ sudo port selfupdate

    Once you get Xcode and Macports installed, things get a little easier.

    Read the rest of this entry »

New Series On Django vs Ruby On Rails

May 14th, 2007 Posted in development, django, ruby on rails | Comment2 Comments »

I have started a series on Django vs Ruby on Rails over at BetaChurch. Have a gander, lemme know what you think.