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 code

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.

Learning and Keeping Busy

November 7th, 2007 Posted in business, code, apple, software, django | Comment1 Comment »

Audio is not all that great. My MacBook Pro’s fan was screaming the whole time. Need to figure out why.

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 »

Silverlight - A welcome surprise from Microsoft

May 3rd, 2007 Posted in creativity, design, code, mac, apple, microsoft | Comment4 Comments »

Silverlight does represent a new model for delivering Rich Internet Applications online. What is possible is staggering. The demos provided during the Mix07 keynote were nothing short of exhilarating. Watching dreams come true is pretty cool.

As a designer and developer I am faced with the limitations of my delivery platform. Which is actually really useful. The extra challenge of figuring out how to accomplish a concept leads to innovation. But Silverlight represents a new set of limits, or lack thereof.

It will be exciting to see what happens next. You can bet I’ll be working to get a dual boot Macbook Pro so I can play with the Expression Studio suite.

Which brings me to my next thought. If a company like Microsoft can come up with Silverlight, what does Adobe have planned? Obviously, Adobe can not take a wait and see approach to this technology and must actively pursue a response. I suspect that it is the shot across the bow of companies like Adobe and Apple that a web delivered video editing application with a load of less than 50k is possible.

Which I guess is what is the most exciting. Microsoft is obviously changing. Creative innovation appears to be important again. The ideas I like to see first started popping up with the live.com release. What will Silverlight force Apple and Adobe to do? How will they respond? The next 12 to 18 months are going to be pretty dramatic.

UPDATE: LOL. I added a Microsoft category for this post.

UPDATE: In the comments below, Rob discusses Apollo and Flex from Adobe. Here are the links.
Apollo Demo
Apollo Site
Flex Demo
Flex Info

More Creativity… Easier to produce… Tumblr

April 11th, 2007 Posted in creativity, culture, ideas, code, web aps, news, how-to, blogging | CommentSay Something!

The last thing I need is another blog. This one, Pure Blue and Beta Church are enough. They keep me busy as it is and I am way behind on posts. I haven’t even begun to tackle the marvel of “300”.

But, I see stuff all the time that is worth grabbing. Or maybe I have had a conversation that is worth recording. Is it worth an entire post? An entire review? No. What am I to do?

Tumblr Logo

From the site:

Tumblelogs are like blogs with less fuss. Tumblr is your friendly and free tool for creating tumblelogs.

So, I can quickly record thoughts, ideas, things to come back to. And they don’t sit on my hard drive or as drafts in wordpress. I can note it, comment on it and share it. Wham bam thank you mam.

Tumblr is free.

To keep up with my findings you can look at davemerwin.net. Maybe if I get time… in a year ;-) … I’ll do a design for it.

To keep you from having to run to multiple sites to see my latest findings, you can simply look on this site under the “color and voice” page. I’ll syndicate all the content from there to here. Fun for you.

Things to write about but don’t have time to write: dj is back! 300 and why Leonidas won’t leave me alone. My Canon XTi. Being creative.

Ah well… Back to work.

Ruby On Rails, Krugle.com and the White Stripes

February 15th, 2007 Posted in creativity, ideas, business, life, code | CommentSay Something!

I LOVE what I do.

In the same week I am learning Ruby on Rails, discovering the White Stripes and I just saw the Scoble Show about Krugle.com. The full post is at BetaChurch.

I love what I do.

Introducing Oregon Biking Search Powered By Google

December 20th, 2006 Posted in creativity, culture, ideas, code, web aps, oregon, cycling, technology, how-to, search, google | Comment2 Comments »

I have been watching the ScobleShow a great deal lately. I love the vodcast. Well, with one exception, see below.

When I saw this, I knew I needed to give it a try. The Google Coop API is extremely easy. I was able to build a custom search engine in minutes.

The first project is called Oregon Biking Search. There is a ton of biking in Oregon. It is a wonderful place for that. But I can’t always find what I need. So I started by doing some Google searches and then began building my index.

I have sent some messages to different groups to see if I can encourage some volunteers to help out. Yeah, you can have other users collaborate with you on the engine. It is a really sweet tool. So I will be launching more projects in the coming weeks. We’ll see how it works out.

A note for Mr. Scoble. Watch your mike levels. When you use the area mic., I turn up the volume to hear the interviewee. However, when you suddenly laugh RIGHT NEXT TO THE MIC, I think my eardrums are going to explode. Get a Sennheiser Lav. mic. here. It is simple, and easy to use, and works really well.

Otherwise, VERY well done.

No, I invented the Internet!

December 7th, 2006 Posted in creativity, design, culture, business, code, portfolio, agi, wordpress, wordpresscart, software | Comment2 Comments »

UPDATE: The vodcast has since been pulled. Justin-Michael in no way wanted to infer anything and has apologized for the errors.

This post is a little unusual for me.

I am writing to correct some errors that were reported in this vodcast in conjunction with work that I have done with AGI and the open source projects WordPress and WordPressCart.

In one instance, Justin-Michael from agiprodj refers to the work that I did as one of a kind. In another instance, work that we are about to do is described as “never done before”.

This is completely untrue. The projects that I have aligned myself with are open source. By their very nature they are developed with open source ideals and by, most importantly, open source developers. The open source movement is a collaborative effort that relies on individuals and teams collaborating and turning out some great software.

So I want to clearly state that I am not the only designer or developer to discover the idea of merging WordPress and a shopping cart. I believe that our solution is fantastic and offers features that the others may not, but I would never be so arrogant as to suggest that we were the ONLY ones.

And, the second claim that what we are doing has never been done before, is also completely false. When the new concept launches, this will be very clear. We will be depending on open source applications that have been in use for some time.

So, to the folks at WordPress, I apologize for the confusion. To the other developers and designers out there that I have learned from, please accept my humble apology. I know my place.

Justin-Michael did not intend to cause a stir. He simply misspoke. My heart is to clear up the confusion.

If you have any questions, please email me directly at dave at davemerwin dot com.