Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /home/martingo/martingordon.org/blog/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/martingo/martingordon.org/blog/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /home/martingo/martingordon.org/blog/wp-includes/http.php on line 61

Strict Standards: Non-static method unfancy_quote::init() should not be called statically in /home/martingo/martingordon.org/blog/wp-content/plugins/sem-unfancy-quote/sem-unfancy-quote.php on line 55
<br /> <b>Strict Standards</b>: call_user_func_array() expects parameter 1 to be a valid callback, non-static method unfancy_quote::strip_quotes() should not be called statically in <b>/home/martingo/martingordon.org/blog/wp-includes/plugin.php</b> on line <b>166</b><br /> Martin Gordon's Blog / 2006 / February

Intel Mac mini Unimpressive

Apple's new Mac mini, with Intel Core processors, were announced today. Specs are here.

The specs are decent and fit in-line (enough below) the iMac and MacBook Pro but it is way overpriced. Gone is the magical $499/$599 price tag of the PowerPC mini, replaced with $599/$799 price points. I specced a mini as close to the $1299 iMac as possible (2×1.66 vs 2×1.83, 120GB vs 160GB, Intel GMA950 vs ATI X1600 128MB) and I'm at $1151 after adding the iSight. That leaves $150 to find a 17" display capable of displaying at least 1400×900. I don't really think this is possible and that makes the Mac mini overpriced or the iMac a great deal.

Now, the mini may not be such a great deal when compared to the iMac, but it would be fair to wait and see what Dell et al have to offer. Considering that the megahertz myth is alive and well in most consumer's minds, I wouldn't be surprised if they don't offer any desktops with the Core processors, which may be faster than P4s but at slower clock speeds.

Don't even get me started on the iPod Hi-Fi, which at $350 is more expensive than all but one version of the iPod. It may look pretty, but my Klipsch THX 2.1 are great speakers (some of the best 2.1 available) that I picked up for less than half the price of Hi-Fi.

Technorati Tags: , , , , , , , ,

Cool Flickr Message

I got a message on Flickr from someone named Anne-Sophie asking for permission to use some of my photos from the Howie Day show last October:

Hi there,

I was wondering if I could possibly trouble you for some of the Howie Day photos you have from 10.07.05. I am interested in the ones with the beautiful lighting effects to possibly use for the lighting designer's portfolio.

I look forward to hearing from you.

Cheers,

Anne-Sophie

Given that Adam Curry is in Amsterdam today to fight against a tabloid that published pictures from his Flickr photostream, I'm glad that someone actually took the time out to ask me if they could use my pictures even if I probably never would have found out that they had lifted them.

I thought that was kind of cool and of course I said yes! Here's the photoset if you're interested.

Technorati Tags: , , , , , , , ,

Apple Posts YART*

Apple posts a Rails tutorial (yet another one!) and I'm becoming ever more curious as to why the Rails community has taken a tutorial-based approach to teaching Rails.

Tutorials are nice for getting down the basics, but they are of limited utility once you start modifying the application to suit your own needs or start creating your own from scratch. When I started learning Rails, I read the OnLAMP tutorial and the others out there to get an idea of what I was doing, but now that I do know how to create links to actions, and how to render partials and what goes in where under the MVC paradigm, but there's very little out there for the intermediate-level developer like myself.

It seems like my only resource is the lackluster Rails wiki which is a mashup (and not the good kind) of half-baked tutorials and a discussion board and the Rails API, which I've only now started to get the hang of but still feels inadequate for solving algorithmic questions ("How do I go about doing X?" rather than "What's the syntax for Y?").

So while I'm having a lot of fun developing in Rails, I do run into some roadblocks where I spend an hour debugging a NoMethodFound error or why my records aren't cascade deleting.

The tutorials do a great job of "showing us how to fish", but after that, it seems like we're dropped into the middle of the ocean instead of letting us row from shore at our own pace.

One other thing I should mention: The Ruby on Rails Podcast has lots of great interviews with prominent figures in the Rails community. It's helped me get a better "big picture" view of Rails and exposed me to some existing Rails projects that are out there, so if you're interesting in that kind of stuff I urge you to check it out.

*Yet Another Rails Tutorial

Technorati Tags: , , , , , , , , , ,

The 4/5 P's of Blog Marketing

After having the 4 P's of traditional marketing drilled into me last semester in MKTG 101, it's cool to see that Steve Rubel has come up with the 4 P's of blog marketing.

Let's take a look:

Passionate - Write about issues that are near and dear to your heart
Purposeful - Make sure you keep the end in mind; why are you blogging?
Present - Keep an eye on what's topical today
Positional - Take a stand on an issue and follow it

Mike Sansone also adds

Participate - Share what you learn with others

How do they stack up within the traditional 4 P framework?

At first, it seems that the blog itself is the product and all five of the new P's fall under product. I think we can bend things around and fit multiple things into the old model.

Product - By being passionate, you give people a reason to visit your blog. Your products are your thoughts and you put out no better products than the thoughts you have about the things you derive passion from.

Why should people care about you? Undirected passion can create a mishmash of topics that in your mind may be interrelated, but to others may be completely random. Make sure your posts are purposeful. By giving yourself a reason for writing, you give others a reason for reading.

How do you differentiate yourself amongst other bloggers who share your passion? Be positional; offer to the world what no one else can: your opinion. "Blog like no one is reading." Don't be afraid to be in the minority. Others may present more compelling arguments but that doesn't take value away from yours. The only truly wrong opinion is the one not shared.

Price - In the blogosphere, the price one charges for their products (posts) is time (and to an extent, links, though those are unlimited and so slightly more irrelevant). What is going to make people check your blog today? The fact that if they read today's post tomorrow, they won't know when they'll read tomorrow's post. Create urgency by staying relevant.

Be present. This doesn't mean blog every day about every topic under the sun, but if you have something to say about a two week old news item, make sure it brings something revolutionary to the discussion or accept the fact that you should have written about it two weeks ago.

Place (Distribution) and Promotion - I've combined these two because blogs are an experiential good, and the act of distribution also serves promotional purposes as well.

This is where the 5th P comes into play. The only way to get people to notice you is to participate. Do this indirectly by getting the search engines to track you. Include Technorati tags in your posts. Get indexed by Google. Make the rest of the world be able to find you.

Speak with those who are relevant to your discussion. Comment on their blogs. Link to their posts. Do what it takes to prove to those who have made it that you also matter.

Technorati Tags: , , , , , ,

Ruby on Rails Snippets #1

I've started to keep notes on various little things I'm learning in Ruby on Rails that I might easily forget when the next project comes along.

Here are a few little snippets:

Pseudo-global variables
In ApplicationController, before_filter :action_in_AppController can be used to create pseudo-global variables that are accessible from any controller. The syntax for limiting to certain actions only is:
before_filter :method, :except => [:act1, :act2]

AJAX code pair
In View:
< %= javascript_include_tag :defaults %>
< %= link_to_remote "text",
:update => "div_to_update"
:url => { :controller => "Con", :action => "act", :id=>"id" } %>

In Controller:
def act
@foo # any vars to pass to partial, if necessary
render :partial => "partial"
end

Technorati Tags: , , , , ,

Brrreeeport

Scoble is testing out blog search engines (particularly the speed in which the update, I suppose) and he wants bloggers to include the word "brrreeeport" in their posts to "mess with the man."

I've always had pretty good luck getting my posts to show up on Technorati, but either not many people are blogging the word or its taking Technorati a particularly long time to index posts. I wonder how long it's going to take this post's trackback to show up on his blog? I have a feeling that it'll be sooner than Technorati…

Technorati Tags: , , , , , , , , ,

Skype to offer Intel-only features

Let the lock-in begin!

News came today that Skype will begin to offer some features, such as 10-way conference calls, to users of Intel's latest dual-core processors.

I have to say that I'm a bit disappointed with this news. There's really no good reason for these features to not work on AMD's dual-core chips and I think Skype is being a bit short-sighted in their partnership with Intel. The primary reason for AMD's market share gain over Intel is due to enthusiasts who have overcome the MHz myth and prefer AMD's slower-clocked, cooler-running, but faster chips. I'd also venture to say that a majority of Skype's users are also enthusiasts. While the app is simple to use, the real barrier is that it just hasn't really had the exposure yet to be taken up by the mainstream. The end result is that the large subset of Skype users who run AMD chips will continue to do so.

Simply put, Skype doesn't have that killer-app status that would make many people switch to Intel chips if they don't have to, especially die-hard AMD fanboys. So what do Skype and Intel gain from this partnership? Not much. Joe Keyboard may not necessarily be more likely to use Skype even though his Dell has dual Intel cores. If Skype really wanted to reach the average consumer, they would be better off partnering directly with Dell and have Skype be one of the many icons plaguing a default Dell installation. Intel, on the other hand, believes that it could get a lock on die-hard Skype users who are willing to switch to their chips.

Though there is something to be said about network effects, if an AMD user absolutely needed an Intel-only feature, they would look for an alternate piece of software to serve their needs instead of upgrading their entire machine. Given that these Intel-only features are targeting the long tail of Skype users (how many actually need 10-way calling?) and that you need to have Intel chips on all ends for the feature to work, its very easy for a small group to switch to a different application if they absolutely need a feature and so network effects, if any, are diminished by how much easier it is to switch software over hardware.

Technorati Tags: , , , , , , , , , ,

False Pretenses

Last semester, the University set out to do something about that blasted wind tunnel between the high rises. When that "something" debuted a short while ago, it should have come at no surprise to everyone that brick paths, lots of mulch and a handful of trees do absolutely nothing to mitigate the winds.

Instead, it seems that fixing the wind tunnel was just a ploy to satisfy the unholy fetish that the University has with destroying green spaces. I mean, the Pythagorean Theorem is great and all and while I have utilized that newly minted diagonal crosswalk that stretches from 39th and Spruce to 39.5th and Locust a few times, it's just wasn't worth losing yet another recreational space to the brick and mortar gods for the convenience. The loss is especially bad considering that it was done under the pretense that it was going to do something about those horrific winds that toss me around daily like some 1st grader about to lose his lunch money to that mean ol' bully.

This post brought to you by the numbers 3 and 0 and the letters m, p, and h.

Technorati Tags: , , , , ,

DMB Lyrics DB Now Up

The new lyrics database written with Ruby on Rails is finally up. I had everything ready to go Friday night, but there were a couple of server configuration things that I had to figure out before the site actually worked. Because of the way it's set up now, you have to add a trailing '/' to the URL or else you'll get an error. I've updated all the links on this page, but you may need to update your bookmarks.

DMB Lyrics Database v2

I'm in the process of rewriting the DMB Summer 2004 Lyrics Database using Ruby on Rails. All the logic is done, I just need to work on upholding the DRY (Don't Repeat Yourself) principle by putting some reusable components in layouts or partials. The CSS should be relative simple so I think I'll have this up by the end of the week.

The current database was written in PHP in a purely procedural way. Yeah, it was pretty easy to write that way, but I paid for that ease when I looked back to see how I did something and the code was pretty hard to follow. Contrast this with Ruby on Rails, which enforces a Model-View-Controller framework. At first I found RoR a bit restrictive, but once I started to learn how to use it, I really enjoyed the simplicity of it.

I have to admit, it was that "Creating a weblog in 15 minutes" screencast that got me to drink the Kool-Aid. In reality though, it has taken me a long time to finish the relatively simple lyrics database. The 15 minutes thing may be true, and I know it is mostly a marketing device, but there is a caveat that they don't mention: you have to have some knowledge of the framework (and that's something that takes a lot longer than 15 minutes).

That said, Rails makes programming database access trivial. Both the PHP I wrote for the lyrics database and some SQL access stuff I've written in my C# class last semester were pretty painful. At the very least, scaffolding gives functionality in one line that might take a few dozen in C#, however limited scaffolding might be (after you see what you can actually do with Rails).

Anyway, keep an eye out for the new DMB Summer 2004 Lyrics Database and a few other things I'm working on in Rails.

Technorati Tags: , , , , , , ,