2006.02.27 18:51 Filed in:
Tech
My answer might surprise you.
An
article on lxer.com talks about
perceived changes in the culture of
LinuxToday.com. It blames the widespread adoption
of Linux as the culprit which shooed away the
hard-core geeks from the site. Of course Linux
adoption was a slow, gradual process brought out
by a series of events in the computer world. The
article gives several examples including IBM
embracing Linux at the LinuxWorld Conference &
Expo in 2001 and a congressman from Venezuela
telling Microsoft to drag its underhanded business
practices elsewhere because he was going to adopt
Linux for use in his country.
I personally think the shift started back during the
United States vs. Microsoft case. I can't remember, but
I think it was Ballmer who stated, "We're not a
monopoly, because there's that Linux thing." Well, that
statement unleashed the curiosity of the American
media, gave Linux plenty of free press on national
television, and launched it into the mainstream.
Why? Linux had been around for almost a decade,
existing only as source code passed around the Internet
between only the most hard-core of geeks. But now Aunt
Helen, located in a little town somewhere in the Corn
Belt of America, found out about Linux by watching Fox
News even before she was able to get broadband.
This is one of the few times I will say, "Thank you,
Microsoft".
2006.02.25 18:30 Filed in:
Tech
How to get MarsEdit working with Quills (kind of).
I have been wanting to find a better way to write blogs
rather than using the Plone interface. I was happy to
find that MarsEdit and Quills both implement several
blog APIs. Though it seems the implementation for both
the BloggerAPI and the MetaWeblogAPI are not complete,
MarsEdit can still be used to post articles using the
BloggerAPI.
I'll put up screen shots later, but here are examples
of necessary configuration:
Name: MyBlogHome URL:
http://www.davidmccuskey.com/weblogSoftware: Other
Blogger-compatibleRPC URL:
http://www.davidmccuskey.com/weblogBlog ID:
weblog.2006-01-10.2395214781
The tricky part is the Blog ID. Plone uses an immutable
identifier for all objects so that they can be found
even after renaming them.
Quills uses this ID to get at your weblog object. To
get this ID you'll need to login to your Zope
Management Interface (ZMI) and go digging through the
uid_catalog in Plone. When you have
clicked on the catalog, click on the tab labeled
Catalog. In the list of results, find your blog object
and click on its link. On the popup page, look for the
key UID. The value of this key is what
you will need to use for the Blog ID.
Because of errors in the implementation of the
MetaWeblog API, you will see a Zope error after
posting.
2006.02.14 18:22 Filed in:
Programming
| Tech
The Decorator was the focus of our second design
pattern discussion.
Tonight was the second night of my design patterns
meeting I hold with some friends from work. Most of us
already had the book Head First Design
Patterns by O'Reilly Publishing, but never made
the time to go through it. Jennifer was the one who
came up with the idea to start having a meeting every
two weeks. We all agreed that it was a good idea.
We're currently working on our format, but so far have
settled on one person being the 'teacher' for the
evening. This person is responsible for presenting the
highlights of the chapter to everyone even though we
have all read it. After they are finished presenting,
we then go around the table and share our ideas on how
the pattern could be used at work or on personal
projects.
Tonight we discussed the Decorator Pattern.
Here were my solutions:
• Recipe card
In this design, the recipe card is the base object and
the decorators are ingredients. As per the design,
ingredients would be stacked up to create the
ingredient list.
Some of the interesting characteristics of recipes is
that they often have to be scaled (4 to 12 persons) or
translated to another type of measurement
(metric/english). This functionality can easily be
added down at the ingredient level. The different
ingredients could also have superclasses based on their
type - liquid, solid, etc. This makes it easy to
separate scaling and measurement translation as
necessary.
Here is a rough cut at the recipe card class diagram.
• Invoice discounts
In this example the base object is an invoice and the
decorators would be different types of discounts or
rebates. This would allow a sales team to be creative
with the types of discounts given to a particular
client.
Discount objects could be applied to different
products, plus you have them expire at certain times
(free for 3 months), also be percentages or flat dollar
amounts.
Next time I'm presenting the Command Pattern.
2006.02.14 08:20 Filed in:
Tech
With just a little bit of work, I managed to add Google
Ads to my web site.
One thing that I like about Google is that they make
things easy.
One thing that I like about Plone and Zope is that they
make things easy.
In about an hour or two, I managed to put AdSense ads
on my web site.
1) Go to Google.com/adsense and sign up for your
account. Click on all of the emails to activate your
account. Log in and grab your AdSense code.
2) Add a portlet to your custom area in Plone. Paste
Google's AdSense code in the body of your portlet.
3) Add portlet to your root Plone
right_slots property. Refresh your
browser to see your Google ads.
Resources
• Plone book errata
An example of Google AdSense portlet
http://www.agmweb.ca/plone/book/scripts.html
(look for "Page Template: google_ad_portlet")
• Plone.org
Page with an example page template used for a portlet
http://plone.org/documentation/how-to/create-static-slot
• Plone.org - how to control portlets
Reminder for properties used to activate portlets.
http://plone.org/documentation/how-to/control-portlets
2006.02.13 18:06 Filed in:
Photography
Last week I received shipment of my Canon Digital Rebel
XT.
Last week I received my Canon Digital Rebel XT from
Dell. It's my third digital camera in 6 years and I'll
say I'm happy again to have come back to an SLR with
real lenses.
For the past week I've been taking photos around my
apartment and outside just to get used to it and its
controls. I have shot around 700 photos.
Here are the top reasons why I chose the Digital Rebel
XT:
• (almost) instant on
• real lenses (SLR)
• low shutter lag
• highly rated
• upset at Nikon's decision to lock down their RAW
format
I looked through many of my old photos taken with my
Kodak DC240 and Nikon 4500. I saw that many of the
photos were unusable for these following reasons:
• slow focusing (missed photo)
• shutter lag (missed photo)
• slow boot up time (missed photo)
• difficult manual focusing (blurry photo)
Also there are some features of the camera which have
pleasantly surprised me:
• the battery life !! (350 photos)
• speed of autofocus (fast)
• flash range (really far)
I have no regrets at all buying this camera. All of the
previously mentioned issues I had with my other cameras
are now a thing of the past. I feel like a have a
real tool in my hands. The experience has been
very very liberating.
Thanks Canon!