Written on December 2, 2009 at 7:40 pm , by Brian Schwartz
There is never anyone else on it when I am.
I’m a member of 6 or 7 big public waves, each with hundreds of users. Other than when I first got my invite (and when a few of my friends got theirs) have I seen another person actively using the same wave as me.
If you zoom in on the picture below you should see green dots next to people online (unless I’m missing something) and there are none. Most of the public waves I go to haven’t been updating in a couple days (if that recently).
In order for Wave to be truly effective, it needs to be an interactive experience. Once my team at Spoke get their invites, we can give it a run for collaboration, but until then, it’s a ghost town, and it bores me.
Written on November 21, 2009 at 10:36 pm , by Brian Schwartz
I needed to create a category thumbnails page for a client’s magento installation and after scouring google results and looking through templates, I couldn’t find any examples that did exactly what I wanted, so I created my own, based mostly on this post from Jake Rutter. I figured I should share this in case someone had a similar need to mine.
I ran into a few problems one of which I solved, one of which I didn’t:
To make this code work, I created a new PHTML page under my template (specifically app/design/frontend/default/myskin/template/page) added a new layout to my skin (app/code/core/Mage/cms/etc/config.xml or if you prefer your own local.xml)
and made a static page use this template. That was it.
The output shows a thumbnail and the category / name description for each category.
Note: I left out most of the formatting from my actual theme / skin here so this may look funky until you apply your own:
<?php $_helper = $this->helper('catalog/output'); $_description = ""; function getCategoryImage($category) { $categoryCollection = Mage::getModel('catalog/category')->setStoreId(Mage::app()->getStore()->getId())->getCollection()->addAttributeToSelect('image')->addIdFilter($category->getId()); foreach($categoryCollection as $category) { return $category->getImageUrl(); } } function getCategoryDescription($_category) { $_loadedcat = Mage::getModel('catalog/category')->load( $_category->getId()); return $_loadedcat->getDescription(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>"> <head> <?php echo $this->getChildHtml('head') ?> </head> <body <?php echo $this->getBodyClass()?'class="'.$this->getBodyClass().'"':'' ?>> <?php echo $this->getChildHtml('breadcrumbs') ?> <div id="main"> <div class="wrapper"> <h3>All Categories</h3> <?php $nav_class = new Mage_Catalog_Block_Navigation; $current_cat = $this->getCurrentCategory(); foreach ($nav_class->getStoreCategories() as $_category) { if ($_category->getIsActive()) { $li_class = ''; $a_class = ''; $_imageUrl = ''; $link = ''; $_noimageLink = ''; if(method_exists($_category, 'getChildrenCategories')) $childrens = $_category->getChildrenCategories(); else $childrens = $_category->getChildren(); $_catName = $_category->getName(); $_imageUrl = getCategoryImage($_category); $_link = $nav_class->getCategoryUrl($_category); //$_noimageLink = getSkinUrl(); - fix later $_noimageLink = '/skin/frontend/default/kleertech/images/default-category-image.jpg'; if (trim($_imageUrl) == '') { echo('<div class="category-box"><div class="category-image-box">'); echo('<a href="'); echo($_link); echo('"><img src="'); echo($_noimageLink); echo('" alt="No image available" /></a>'); echo('</div><div class="category-name"><p><a href="'); echo($_link); echo('">'); echo($_catName); echo('</a></p>'); echo('<p>'); echo(getCategoryDescription($_category)); echo('</p>'); echo('</div></div>'); } else { echo('<div class="category-box"><div class="category-image-box">'); echo('<a href="'.$_link.'"><img src="'.$_imageUrl.'" alt="'.$_catName.'" /></a>'); echo('</div><div class="category-name"><p><a href="'.$_link.'">'); echo($_catName.'</a></p>'); echo('<p>'); echo(getCategoryDescription($_category)); echo('</p>'); echo('</div></div>'); } } } ?> </div> <?php echo $this->getChildHtml('footer') ?> <?php echo $this->getChildHtml('header') ?> <?php echo $this->getChildHtml('before_body_end') ?> <?php echo $this->getAbsoluteFooter() ?> <?php $layer->setCurrentCategory($_maincategorylisting); ?> </body> </html>
Let me know if this works for you (or if it doesn’t) and if you have any questions about the code.
Written on November 11, 2009 at 9:22 pm , by Brian Schwartz
So last week I had an unexpected problem with my MacBook Pro when it just stopped working… Uh oh:

I guessed based on what was going on that it was a problem with the hard drive and decided to schedule an appointment with the “Geniuses” at the Apple Store [Mistake 1].
I was running late due to an accident on the highway, so I politely called to say I’d be a few minutes late [Mistake 2], the nice woman I talked to said:
No problem, I booked you a backup appointment in case you can’t get here on time.
So I showed up about 5 or 10 minutes late for my appointment and I wasn’t listed as still having an appointment at that time, but instead for 2 or 3 hours later. I explained the situation and the “concierge” said they could still get me in at my original appointment time because the woman with an appointment before me wasn’t finished yet… Nor did her appointment finish for a while. So I sat there waiting patiently… fast forward a 1/2 hour and the “Genius” tells me that since I missed my appointment he would try to fit me in between his next appointment… Which of course, is wrong, because he was running 30 or 40 minutes late for my appointment. I explain the situation, he looks at my Mac and says:
I think it’s the hard drive
Umm, really, Genius, me too. Got anything to help confirm that suspicion?
Well I could try a boot DVD or drive?
That would be great since I’m here and all, and by this point I’ve been here about an hour. For the next hour or two he tries this to no avail, asks me if I brought the original Leopard install disk with me [mistake 3] and of course, I didn’t. He explains he can’t confirm it’s the hard drive without taking out the hard drive (?) and if I want the repair it’ll cost upwards of $300, at which point I said I’d be happy to do it myself. My only real reason for bringing it in was to confirm it wasn’t a logic board or something worse, nevertheless, I left went to Best Buy and bought a new hard drive (after googling it myself since the Best Buy staff had no clue what size hard drive fits in a MacBook Pro).
I followed these great instructions on iFix for replacing my hard drive, and in the process fixed my loose bluetooth antenna and put it all back together. 
So I take the laptop to the office, install that boot DVD the goofball from the Apple Store told me about and tried to restore from my Time Machine backup that I had from about an hour before my Mac crashed, waited three and a half hours and… nothing. 
Why? Well since I’m running Snow Leopard, I can’t restore from a Leopard install disk. Thanks again guy at Apple Store.
So after another 3 hours of booting from Snow Leopard install DVD, success, MacBook Pro is working, good as new (faster / bigger hard drive, better Wireless antenna).
What did I learn in this process? Well a few things:

Written on November 9, 2009 at 8:10 pm , by Brian Schwartz
This coming Friday (November 13th) is our next SpokeFriday, it’s also our official anniversary party.
If you are coming, click here to tweet about it, view event and RSVP on facebook, or click on the image below to download the PDF to share with friends.
If you’ve never heard of SpokeFriday, it’s Spoke’s monthly networking happy hour that is open to the public. We invite our friends, clients, vendors, friends from social media, etc… Basically it’s open to all, it’s free and drinks and appetizers are provided (pretty good deal huh)?
Written on October 13, 2009 at 4:54 pm , by Brian Schwartz
So if you’re a designer and you’ve ever had to create a Microsoft Word or Powerpoint template for a client, you’ve felt this pain.
One huge UI improvement that would make my life easier is the ability to swap out one image for another but keep everything else the same. Size, layout, placement, etc.
If I need to export a new image in Illustrator or Photoshop because the client decides they want the color to be different (or if it doesn’t look right printed, or whatever), I end up having to reset all of these settings, by hand. Every time.
Instead of just choosing a new version of the image in Word, I’m forced to do a screen scrape and paste them in Photoshop just to be able to try a new version of the image. This is stupid and should be fixed.
Here is the screen grab of my settings in Photoshop with my feelings on the matter:

Word Failure
Written on October 5, 2009 at 6:01 pm , by Brian Schwartz
Ok, so with some time to kill (or basically being at home sick and bored with TV), I’ve mostly finished this new design and did a ’soft launch’ of the new design as my own hand coded Wordpress theme.
I have a few tweaks to finish (like a javascript bug on internet explorer that I haven’t looked into yet)… but for the the most part, this is it. I’d love your feedback… even constructive criticism, I can take it.
But with this now mostly complete, I’ll be blogging more often and I’ll be starting on my next Wordpress project (a redesign of Spoke and Spoken Whirred) and probably combining them into one site.
Written on September 21, 2009 at 9:36 pm , by Brian Schwartz
I’ve got my new custom wordpress theme about half done over the weekend. The page layout is working great, a few features are different than what is live on creativereason.com right now. Definitely a step in the right direction.
I’ve got to finish the blog page layout and add in a few widgets (test in several browsers) and wrap it up. Looking forward to having this finished. It’s been my first experience with a new / from scratch wordpress theme and I’ve been happy with the progress.
I’ve probably spent about 12 hours on it thus far and will probably need another 3. Not bad at all for my first time, including design / coding xhtml / theming it.
Written on September 13, 2009 at 12:42 am , by Brian Schwartz
So I’m switching things up. This site is now blog.creativereason.com, new site is live at www.creativereason.com and I’m in the midst of a redesign.
Soon the blog will look like the new site and I’ll add some new features to the new site (recent posts, tweets, etc.). It’s possible I’ll make the whole thing wordpress, right now it’s handcoded xhtml.
I’d love to hear what you think. Consider this a soft launch.