jump to navigation

New Drupal Tutorials June 17, 2008

Posted by Ryan in : Site News, HowTo, Drupal, Teaching, open source, Programming , add a comment

Yes, I have yet another blog: this one is all about Drupal. Right now there are exactly 4 posts, but two of them came this week, so there may be an upturn in the posting over there. If anybody out there wants to write some tutorials, I’d be open to that.

The first howto was sort of “scratching an itch”. I got really tired of manually downloading, unzipping, uploading and activating modules when it was time to install a new Drupal site or update an existing one, so I came up with a workflow that gets it all done in record time: Using AWK to Download and Unpack Drupal Modules

The second one was a question delivered to me via chat: How to create a “related pages” block in Drupal 6, but we can’t find any useful modules and my personal recommendation, Panels, is not ported to version 6 yet. Therefore, with some Arguments magic, I bring you (now, new and improved, with 15 screenshots!): Using Views 2 and Drupal 6 to Create a Related Pages Block

In other Drupal news, the Florida Drupal User’s Group is having our 3rd meeting this weekend, June 21st, at the behest of MindComet in Maitland. I’ll be giving a talk about CCK (the Content Construction Kit), specifically using it with Drupal 6, and Mr. Mike Anello will be giving a talk on Views. The whole thing lasts about 4 hours - from 1 to 5 PM. The first two meetings were absolutely worth it, so I highly recommend coming down to check it out, if only for a shorter portion of the marathon.

The next stage for this Drupal Easy project is to build out some wiki pages that outline key Drupal concepts and relate them to each other, wiki-style. It’s something folks have been asking me for ever since the move to Bonnier and the “Drupal Expert” label, so I’m going to see if I can deliver. If that all goes well, there just might be a print version up for sale at LuLu.com as well. No promises, but that’s the plan.

P.S. Not that I want to brag, but Angie and Nate from Lullabot are coming to Orlando this week to train the staff at Bonnier in the use of Drupal. This is the only public mention I’ve made in quite some time, but I’m pretty damn excited to meet the gurus.

Orlando PHP Tonight: Drupal May 27, 2008

Posted by Ryan in : Tech, Orlando, Drupal, Events, floridacreatives, Teaching, Programming , 1 comment so far

At DeVry University near the Mall of Millenia, tonight at 7PM, I will be presenting at the 2nd ever Orlando PHP user group meeting. David and Derek asked me to come talk about Drupal after my peanut-gallery comments during last month’s framework shootout event.

Topics for discussion:

I will also be showing off some of the features we used to construct the OrlandoFringe.org, FloridaCreatives.com and Petentials.com websites.

For those curious to learn more Drupal, we have a whole slew of lectures planned into the fall through the Florida Drupal group on groups.drupal.org - our meetings are second? Saturdays of the month at the MindComet offices in Maitland, just off of 434.

In other PHP UG news, the Meetup.com PHP group, hosted first Thursday of the month at the Bonnier Corporate HQ in Winter Park Village (above Brio) will be coming up June 5th. 4 programmers representing Zend Framework, CodeIgniter, CakePHP and Symfony will be building a blog in 10 hours using the same database tables, then taking another 10 hours to extend the blog platform. Hopefully this will serve as a fun and informative hands-on introduction to the strengths and weaknesses of these 4 popular PHP frameworks.

P.S. See Eric’s Blog for a description of the Shootout rules.

Weekend Projects - Lightweight Photo Service May 5, 2008

Posted by Ryan in : Tech, Web Sites, mashups, interface, open source, Web Services, Programming , add a comment

This is a project I’ve been thinking about for a while, and I’d love to do a hack weekend to get this working sometime.

One thing that’s been a problem with us at Petentials (and many other sites running Drupal) is Photo uploading, sharing, embedding, etc. Aaron Winborn created a great tool called Embedded Media Field that abstracts the hosting of photos, videos and audio files for a Drupal installation - what I’m thinking of doing is writing a custom interface for that module that allows a user to upload the files without leaving the page, and then talks to Drupal to tell it to make a new node for the photo, add it to a gallery, or the same for a batch of images - Aaron’s module does quite a bit of this already.

I was wondering if Menalto Gallery (G2) could help us out here, but that’s really meant to be used as its own system - I really just want to create a REST/CRUD interface we can throw on a subdomain to serve up images and thumbnails, while also generating new thumbnails as needed. G2 has lots of these features, but then we’d have to keep the user tables in synch and I’m not sure we need everything they have to offer.

This is not meant to be a flickr or a photobucket, but the replacement for hosting images in-house. It should be insanely transparent to the users - they should not need to register, have any plugins or enter any extra screens.

My thoughts are the following:

The application by itself won’t do anything - you’d need a CMS to integrate it with. My choice is Drupal, of course.

Certainly on the wish list for embedded media field is the ability to integrate this content transparently in the background (see Vox’s media features). Using something like PingVision’s Drupal Markup Engine and a WYSIWIG editor might get us most of the way there. It’s an API that lets you specify custom tags - mostly these can be used to add images, video or blocks inside a node, but there are dozens of uses that have not been invented yet, I’m sure. If the editor can have plugins written (Kupu is the editor of choice for Acquia’s Carbon). I don’t think it should insert raw HTML, but a custom tag so we can abstract the method of storage - just something like [image:13456] or [video:13456] or [audio:13456] or [gallery:13456] at least until HTML5 gives us a standard for implementing this.

One reason why the Embedded Media Field is so great is because if YouTube changes the player, or if they introduce the option to turn off the related videos at the end, or even if you come up with your own .FLV wrapper, like a deep-tagging service, all your calls to videos are made through this tag - it’s an API for HTML code.

If we get an editor that supports this sort of stuff and a module/plugin for major CMSes and platforms, those can all live in one place. Wordpress has support for TinyMCE or the plain-text editor, but it must support others, yes? Another editor that would be high on my list is the YUI Rich Text Editor.

I could probably go on all day, but I think I’ve gotten a decent explanation for this cluster of projects out there.

Hacking as Art April 28, 2008

Posted by Ryan in : Reviews, Books, floridacreatives, Arts, Programming , 2 comments

Last week, I started the discussion of programming as a form of creative expression with some of the kids at work, and Kevin pointed us to John Littler’s Art and Computer Programming article. That led Eric to post a link to Paul Graham’s essay on Hackers and Painters, which I gobbled up and loved.

I’m writing this blog post so I can click on my own Amazon link to order this book for myself. If you appreciate the recommendation, you could do the same. Hackers and Painters: Big Ideas from the Computer Age is a collection of 14 essays by Graham on “the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.”

Again, I’ll say that I don’t like the use of the word renaissance, since the medium itself has hardly affected 5 generations of men and women. This next wave where we move toward semantic web and a mixture of online and offline applications shows lots of promise, but I won’t agree that this era can be referred to as a rebirth for many years to come, when I’m old and I’ve had some time to look at it from a distance.

Just that first essay where Paul talks about getting a day job and hacking at night is certainly how I’ve always felt about podcasting - I love it, and I’d love to get paid for it, but to do it 40 hours a week would really feel like implementing someone else’s plan instead of creating the art myself.

From Paul Graham’s original Hacking and Painting essay:

If a hacker were a mere implementor, turning a spec into code, then he could just work his way through it from one end to the other like someone digging a ditch. But if the hacker is a creator, we have to take inspiration into account.

I say this all the time, but one reason why I think so many folks at the Florida Creatives Happy Hour are programmers is because of the nature of the medium. We hack in our spare time, we release the apps quietly, thousands of people anywhere in the world may use and love the results of our labors of love, but we don’t get to see them face to face - painters, filmmakers, actors, poets, all have the ability to be present with their audience the first time they experience it. Television and radio are more removed. Web apps further still. We crave that human interaction, and the validation you can only get from your peers and your audience. That’s why all the hackers are there.

One of these days I’ll get some Processing projects going, and have some literal art created by a hacker to show off. When I get some free time, you’ll see. Whenever that happens.

Giving the client what they need, not what they ask for April 10, 2008

Posted by Ryan in : Markteting, Cervo, Reviews, Trends, Books, Design, Restaurants, Web Sites, Teaching, Storytelling, Programming, Freelance , 2 comments

Just now I was buying a new domain name because of a misprint in my AXIS interview - it’s probably a common mistake, so it was worth the $7.

Anyway, there was an ad for some wannabe-posh restaurant on I-Drive - “Bola”. link

OK, seriously, who has a flash website that plays music? With late-90’s slideshows?

I also love that when I link to the “blog” - check out the design they chose for that. All of the posts on said blog have this huge text right below the title and right next to the very stale and infrequent date of the posts - “No Responses”.
No Responses

Way to go on the authenticity, D*****bags! It’s not the designer’s fault, there was a breakdown in communications. Somebody has also dropped the ball on doing a follow-up with the client once the dist settled.

If you really want to create a compelling experience on a website these days, I think the only option is to use video. If your restaurant is so “high-end”, hire a damn video crew to come out once in a while and throw THAT on your site - or maybe even your non-blog.

Check out some of the stuff MindComet is doing, for example. They don’t mess around. I can’t say I always love every site they put out, but they know their strengths. I definitely appreciate the need for experienced marketing folks working along side talented designers and developers. I don’t slight the person who created this project, they just had too many things to think about all at once.

I’ve recently been re-reading a book by one of my role models - Hillman Curtis. It’s called MTIV: Process, Inspiration and Practice for the New Media Designer.

I actually had “New Media Developer” printed on my business cards for a while, and people would ask “What does that mean?” I’m sad to say I didn’t have a story for them at the time, but now I think I’d have a thing or two to say about it.

In MTIV (Making the Invisible Visible), Hillman, who is a world-renowned designer with clients like Adobe and bestselling bands on his client list, tells you how he gets his work done. In fact, all of his books are like that - he goes through his creative process. He’s got some steps, he identifies the goals at each step, and he gives lots of anecdotal support. He’s clearly been working at a very high level for a long time.

People who have read this book and really understand it would have never designed that site for BOLA - at least not in the last 18 months or so.

MTIV Here’s lesson 1 (implied) from the book for me: separate the technical requirements of the project from telling the story. As a team of one, when I go into the job, I always know I am going to have to turn around and implement these ideas once I get back to my text editor, so most times when I’m in a meeting with a client, my brain is already downloading Drupal modules and clicking checkboxes. At my new job, this isn’t so much of a problem, because my role during those meetings is to translate what the editorial folks or the PMs are asking of me into technical requirements, identify sticky points, and give them an estimate of how long this new awesome feature will take.

However, even at a job I had for a couple of weeks managing an online store for a print shop, I not only had to put my propeller hat on, but my marketing/customer/business hat on, and normally the propeller hat gets priority. That means I’m donating 40% at best to thinking “is this even a good idea, does this communicate the message, will visitors understand the story?”

Then a few weeks later, I’ve started writing code, laying out the homepage, or what have you, and it hits me - THIS SUCKS! Did I design this? Then I remind myself I’m “not a designer” (which is bollocks because I’m always calling myself a “front end guy”), and I come to terms with the reality of the situation. We’re not communicating effectively here, we’re masturbating and pretending the result was a web page.

How do we fix it? Drive back to Sanford, tell the client “I’m sorry Mike, I had my head up my ass when I designed this… will you pay me to fix my own mistakes?” Nobody is going to go for that! Sure, you can give them a spiel about ROI and conversions, and maybe wrapped in the warm fuzzy blanket of “SEO”, which might as well be voodoo and divination to most clients, you might even be able to convince them to spend 30% of the original budget doing what you really should have done in the first place, in 15% of the time, without your trusty subcontractors, in your spare time, just so you feel good about work that you’d already written off as “finished”.

No, you can’t fix it. Clients don’t go for maintenance contracts any longer. Most of them don’t even want to pay you for hosting, let alone support.

The ONLY solution is to do it right the first time. That means making checklists, getting your freelancer buddy support system to consult and make sure you’re not leaving any huge gaps (oh, you do have some sort of a peer support system, right?), and above all, making sure you understand what the client needs.

I’m only feeling the slightest bit hippocritical right now, and if you’ve worked with me in the past, and you’re quietly thinking I’m full of shit as you read this, consider this my formal apology for underdelivering. In most situations during my “freelance” (”slacker”) career, I didn’t put 110% to anything work-related, and it wasn’t until my “Tabula Rasa” day (Jan 17th, 2006), that I had even decided to push myself to improve, and it looks like it’s taken about 2 years and 3 months.

So, FullSail grads, budding New Media Designers and Developers, and folks that have been doing this “since the early days”, and are planning on making a concerted effort to create stunning work, every single time, even if it’s for half of your rent money, here are a couple of tips:

BarCampOrlando Downtown April 5th and 6th, 10AM - 6PM April 1, 2008

Posted by Ryan in : Tech, Podcasts, Orlando, SEO, Music, Links, Events, Video, Coworking, Trends, Standards, floridacreatives, mashups, Graphics, OrlandoScene, Teaching, open source, BarCamp, PodCamp, Storytelling, phone, Web Services, Social Media Events, Social Networking, Programming , add a comment

BarCamp Orlando is a weekend for all types of creative folks to come together and share with each other. The event is dubbed an “unconference”, a format which derives power from the people instead of the event organizers or the presenters. Everyone has an equal opportunity to get on stage and speak, teach or lead a discussion, playing off of the idea that at any given conference, the people in the audience have more knowledge collectively than the presenter(s) on stage.

This second installment of BarCamp will be held over 2 days, Saturday and Sunday, April 5th and 6th, in downtown Orlando at the Wall Street complex, from 10AM - 6PM each day. Registration is free, and a registration promises a shirt and lunch on the sponsors of BarCamp, businesses who are passionate about the technology and media communities of Central Florida.

Saturday is the designated “Dev Day”, playing host to everything from web programming to robot building and video game development and everything in between. iPhone hackers, guys with soldering irons, the latest technologies, and plenty that haven’t been realized yet. Every 30 minutes, both venues will have a different talk going on, so if you’re feeling lost in the jargon, apply the “rule of 2 feet” and check out what’s happening in the other room!

Sunday is dubbed “Media Day”, and is the place for storytellers, journalists, writers, designers, filmmakers, musicians, 2D and 3D artists, podcasters, bloggers and social networkers to show off their work, share their tricks or talk about the state of the industry. From 12 to 1 we will be talking about the “Past, Present and Future of Media in Central Florida”, hoping to give our community a sense of our story, and where we’re headed.

Registration is free, and the event runs from 10AM - 6PM both days with a lunch break at 1PM. The event will be housed in Slingapour’s and One-Eyed-Jack’s, with Wall St Cantina acting as our “hallway”. There will be projectors and microphones, chairs and a space to speak. All you have to do is write your name on the whiteboard and you get 20-25 minutes to share your passions with a group of energetic, engaged geeks and creatives. I would not use the words “captive audience” to describe the BarCamp crowd, because they all want to get involved.

Visit www.barcamporlando.org today and register for Dev Day, Media Day or both days. Wall Street Plaza is at 18 Wall Street Plaza, Orlando, FL 32801 - barcamporlando.org/where has a map to the venue and information about parking.

jQuery broken in Internet Explorer? Put your $(document).ready at the bottom! March 19, 2008

Posted by Ryan in : Tech, HowTo, Coworking, Web Sites, Programming, javascript, jquery , add a comment

Tonight at Cup-O-Code, David, Gabe and myself were troubleshooting a little issue with the product page javascript that Gabe uses to update the price as customers select various options. The code wasn’t working in Internet Explorer, but since jQuery should be browser agnostic, we had to go back to the drawing board. After David re-wrote my first draft of the code we’ve got there, we got the function back to a working state in Firefox, but IE was still eluding us, but not really.

We were actually trying to make the script work on two instances of an online store, Futon Planet (FP) and Futons, Etc. (FE). The first site’s product page was giving us no Internet Explorer trouble, but the second was behaving very strangely. Then we noticed that FE’s javascript wasn’t finding returning anything at all.

We used this code to help us debug and see if jQuery could find the value in question:
alert($("adjustedPrice").length());

Which returned a blank pop-up, when it should have been returning “$0.00″ instead. The script didn’t seem to be finding the value, and when the alert showed up, it was actually drawing the alert before you could actually see the rest of the page.

Apparently IE6 executes $(document).ready() at a different time or in a different fashion than Firefox, and once the javascript faults out it just stops everything.

We moved our $(document).ready() action to the bottom of the page, and everything was just fine after that.

Mission accomplished.

5 Essential Firefox Plugins for Web Developers March 13, 2008

Posted by Ryan in : Tech, Links, Drupal, Reviews, Browsers, Standards, Web Sites, PopSci, Programming , add a comment

Since I have a new job, I had to sit down at a fresh installation of Windows today and get my machine developer-ready. I already miss the Dock and Transmit and the Terminal, but I’ll deal.

One thing I noticed was my reflex-like action to go download 4 plugins no web developer should be without. They are, in no particular order:

  1. Measure It! How wide is that sidebar? Don’t pull out the DOM inspector or Firebug, just MeasureIt! I also like that once you drag the box it persists on the screen and you can drag it around to compare measurements.
  2. ColorZilla Sample any color in your browser - don’t open Photoshop, just hover over a color you like and voila! Also generates Photoshop pelletes, but I don’t open Photoshop, so I don’t use that feature.
  3. FireBug I can’t actually tell you how awesome this is. Being able to see the http response of every file that was loaded and how long each file took to load is already a killer app, not to mention dead-simple editing of any markup, CSS or JavaScript on your page, and being able to execute JavaScript on a live website without having to open any windows.
  4. Web Developer Toolbar My #1 used feature is the Resize menu. So many pages break my window from being exactly 1024 wide, and I also want to check things out at 800 wide as well. This just feeds the my OCD streak and lets me get on without worrying.
  5. Honorable mention: FasterFox This wasn’t on my list, but it is now, if only for the nifty little timer in the bottom-right-hand corner of the browser that tells you how long it took for the page to load.

These don’t include any of my plugins for personal productivity, web browsing, media sharing, or Search Engine Optimization. Instead, these are 5 plugins I think should come pre-installed on every developer’s machine.

Also, if you’re doing Drupal development, I hear very good things about this Theme Developer Module for Drupal 6. I’m not using 6 on any production sites yet, but I think it will prevent you from having to open up TextMate and do a “Find in Project”.

Leave your favorite development plugins, or other kinds below.