Friday, December 07, 2007

Documentation stuck in the 90's

I'd just like to put this out there: It's high time that in-application documentation systems adopt tabs. They're obviously using web browser technology, and since we're so familiar with that model, and using tabs, it's highly irritating that they don't follow suit.

Tuesday, November 20, 2007

Fuel! Cell! Consumer! Model! ....!!!!


I'm almost embarrassingly excited about this.

Last night, I saw this IMHO awful commercial with the most amazing ending ever - a fuel cell car that will be commerically available!



Wikipedia had this to say about the Honda FCX Clarity:

In 15 November 2007 at the Greater Los Angeles Auto Show, Honda unveiled the FCX Clarity, the first production model, and announced that the car would be available for lease beginning in the summer 2008. Initial availability will be limited to the Southern California market, with availability expanding as hydrogen fueling stations become available...

...The new FCX utilizes several interesting new features. The new V Flow fuel cell stack can operate at temperatures as low as −30 °C. This is achieved by allowing the gas to flow vertically in the fuel cell stack. The tanks can store up to 5 kg (171 litres) of hydrogen at a pressure of 350 atmospheres, thanks to the new hydrogen absorption materials used. This allows a longer range of up to 350 miles (570 km)...

...To support the hydrogen fuel-cell technology, Honda also introduced the Home Energy Station (HES). This home solution can convert natural gas to electricity, heat and hydrogen to refuel fuel-cell vehicles. This allows consumers to refuel vehicles with hydrogen at home, important until hydrogen stations become widespread. Alternatively, the hydrogen can be used in the HES's built-in hydrogen fuel cell, providing up to 5 kW of normal or backup electricity and/or hot water for the home.

Apparently there are 20 already-leased 2002 prototypes, some of which are here in New York. What especially excites me is that they've come up with with a home refueling solution! With a range up to 350 miles that sounds like it might be a practical enough solution to make up for the lack of hydrogen fuel infrastructure.

I wish mass production might get started sooner than 2018..

Thursday, November 15, 2007

Best Gaming News All Year

I'm super duper stoked about the news that they're going to be making Lego Batman games. I love Legos, I love Batman, and I love the Legos Starwars Games. (My awesome sister bought me the complete saga for the Wii as a birthday gift this year) Life doesn't get any more exciting than this. :)

Wednesday, September 26, 2007

Toscawidgets Forms: Passing Compound Widgets

For lack of documentation's sake, and because it wasn't initially obvious to me after poking around in the code (in fact, I got led astray, thinking there was some dot notation I would have to use), this is how you pass values into Compound Widgets in Toscawidgets:

Say you have some Widget like this:
form = Form('FormName',
children=[
FieldSet('FieldSetName',
children=[
TextField('TextFieldName')])
])

and displayed in your template like this:

${ form.display(**form_args)}


then you can pass values into it from your controller like so:
def controller(self):
return dict(form=form,
form_args={'value':{
'FieldSetName':{ 'TextFieldName':
'Desired TextField Value'}}})

I guess it's pretty obvious in retrospect, in fact, the compound Form outputs something much like this (minus the outside dictionary), and those values can be passed right back into the Compound Form again. Perhaps, had I been actually using a Model, or gotten more sleep, this all would have been more natural - but hopefully this helps someone else.

Hint: If you're overriding templates, be sure that you're still passing the right values in to fetch the children arguments, i.e.:


${section.display(value_for(section), **args_for(section))}

Monday, September 24, 2007

Aardvark: Must have Firefox Extension

Any discussion on Firefox Extension recommendations must include the obligatory "Firebug is the most amazing tool ever" note. (Because it's really fantastically useful, and it just keeps getting better)

Today, I'd like to mention Aardvark. It's super useful for isolating parts of the page for easy printing, and quite easy to use, once you learn the keystrokes. I use it all the time for printing out comics and lolcats for posting on my cubical walls.

Gotcha: Toscawidgets and Mochikit

So, after much annoyingness, I've finally realized why I was having so much trouble using the Mochikit extension to Toscawidgets. As the Toscawidgets docs state, you need to include this template if you're using Genshi, which basically adds these lines (plus matching matching body top and bottom lines):

<link for=\"css in tg_css\" replace=\"css.display()\">
<link for=\"js in tg_js_head\" replace=\"js.display()\">

Now, if you're silly, like me, and don't really pay attention, you just include it, without looking too hard at your master template, which includes these lines by default:

<link for=\"css in tg_css\" replace=\"ET(css.display())\">
<link for=\"js in tg_js_head\" replace=\"ET(js.display())\">

As soon as you put the widget in your controller:

from toscawidgets.widgets.mochikit import mochikit
class Root(controllers.RootController):
@expose("genshi:mumapp.templates.sections")
def info(self):
return dict( form = InformationForm,
js = mochikit )

You start to get funny Genshi errors, mine was "AttributeError: 'Stream' object has no attribute 'tag'" which prompted me to try various combinations of adding ET() and HTML() to my templates, when the problem was that Toscawidgets cleans that whole ET/Genshi issue up and breaks when you leave them in.

So, long story short, add the site template and remove the conflicting lines from your master template. (Though, if you are mixing Toscawidgets and Turbogears widgets, you'll have to do something like what's outlined here.)

Wednesday, September 12, 2007

Security Camera Shenanigans

One of the funniest things I've seen in a while: At the Port Authority in Tampa, they have a whole bunch of security cameras, in a really nice movie looking setup. Unlike the movies, though, a whole colony of ants has built a highway across one, so it looks like something out of Them!.. and on another camera, a huge fuzzy spider crawling about a pier. It was quite alarming at first, out of the corner of my eye, but ultimately quite amusing. I wish I could have taken a picture, but I doubt they would like me whipping out a camera in their security room.

Tuesday, September 11, 2007

Announcement: GenshiColumnTemplate

I've made a quickstart Genshi template for Turbogears that gives you a ready made 3 column layout, using the excellent 3 column layout from A List Apart's Holy Grail article. If you spent 5 minutes, you could do it yourself, but it's kinda nice to have something ready made. I pull out the layout css in a separate file, and relaid out the welcome page to use 3 columns. The master.html template uses Genshi's Xpath select function to pull content together into the columns.

To Install:
easy_install genshicolumntemplate

To Use:
In your templates that include master.html, make divs that have ids of 'left', 'center', 'right', 'footer', and 'header', or just add your static content to master.html. The only caveat is that there must be some sort of other element inside the positional div wrapping your text, it can't be just text, as xpath won't select it for replacement.

ToDo:
  • Documentation. It should be mercifully short, yet I still haven't done it
  • Fix up the welcome page a bit
  • Figure out some sort of decent unit test for templates
  • Wait for suggestions, criticisms, etc :)
Please let me know if you try it out.

Monday, September 10, 2007

Python Cheeseshop and Eggs

I've been playing with putting a package up on the Cheeseshop, Python's Package Index. There isn't a lot of documentation out there, but there really doesn't need to be, it's pretty easy. I cheated and modified someone else's egg for my own use, but the file setup isn't all that hard, and you can get paster to make a ready-eggable template for you.

Anyways, the quick commands to use, after creating an account and setting up your egg and metadata:

  • python setup.py register
    this creates an entry in the cheeseshop for your project and populates it with the metadata from your egg. If something is wrong, just fix it and rerun this command.
  • python setup.py sdist upload
    this creates a source distribution (the egg folder tarred and gunzipped) in dist/ and uploads it to the cheeseshop
  • python setup.py bdist_egg
    upload this creates a binary distribution (the egg folder all zipped up) in dist/ and uploads it to the cheeseshop


Super bonus hints:
python setup.py develop installs the egg using a link to your source code instead of putting it in the site-packages folder, so you can test things.
easy_install -m package_name
takes the package name out of the appropriate places, allowing you to uninstall a package by deleting it from the site-packages folder.

Sunday, September 02, 2007

Toscawidgets and Paster

So, I'm playing around with making a bunch of Toscawidgets (Toscawidgets widgets?) and found, by hunting around a bit, that you can get a pretty handy package template by using PasteScript. Try:
paster create -t toscawidgets
and answer the questions. For a list of what other templates paster create has, try:
paster create --list-templates
For some reason, figuring this out took me way longer than it really should have last night. (Thanks Daniel)

A super bonus bbedit command line hint: bbedit *.py --new-window

Friday, August 24, 2007

Genshi Templates: include and select()

Hint for today: If you don't know Xpath select stuff at all (like I didn't a couple minutes ago) and you want your Turbogears templates to be a little more intelligent about column content placement, you can do something like this:

<!-- in master.html -->
<div id="centercontent">
<div id="status_block" py:if="tg_flash"
class="flash" py:content="tg_flash">
</div>
<div
py:replace=
"select('//div[@id=\'centercontent\']/*|text()')">
</div>
<div id="rightcontent">
<div
py:replace=
"select('//div[@id=\'rightcontent\']/*')">
</div>

<!-- in welcome.html -->
<div id="centercontent">
<!-- all your base here -->
</div>
<div id="rightcontent">
<!-- navigation stuff here -->
</div>

Breaking down the Xpath select statement a little more (removing the quote escapes):
//div[@id='centercontent']/*
//div == in all 'div' elements
[@id='centercontent'] == where the (@) attribute 'id' is equal to 'centercontent'
/* == select all the children elements

Tuesday, August 14, 2007

Coolest Hotel Design Ever - Eco-Aqua Hotel in a Quarry

It won't be completed for at least another 2 years, but I would so fly to china just to stay here:

http://atkinsdesign.com/html/projects_hotels_songhotel.htm

It's already cool enough that they're apparently using an old quarry as a lake, so the whole thing is sunk into a pit and looks like an especially fantastical Bryce creation, or that they're using geothermal power. The thing that drops my jaw is the ginormous *waterfall-like elevator* that apparently runs over the glass face of the building. A
t least, I think it's an elevator.




Really nice flash sketch widget

I really like the texture aesthetic of this online sketch app, it's the best I've seen. I really like the background "paper," he thinner-line tools resemble actual penstrokes (after they're scanned, anyway).

http://www.odopod.com/sketch/

If only I had a spare second to doodle :)

Thursday, August 09, 2007

Really Awesome Ad.

This is the best ad I've seen in a long, long time. Well, the iphone ads are really, really good and everything, but they do lack in a certain... initial bafflement. :D

http://www.youtube.com/watch?v=FsBvMvHk1BE

Sunday, August 05, 2007

Website Teaser

It's coming! Got my MossyStone.org domain name, got hosting through Webfaction, who gives half their turbogears related signup fees to the turbogears project. They keep on top of tech, I like it, and I like the hosting so far. Site is running in Turbogears on Python of course.

More to come in the future. :)

Saturday, August 04, 2007

Turbogears Banner

I couldn't find a small Turbogears banner / logo / powered by image to my liking, so I just whipped one up. Also, here's a Python logo I found through a google search. Enjoy.


Wednesday, August 01, 2007

reCAPTCHA: Stop Spam, Read Books

This is by far the coolest captcha service ever. (Blogger, you should pick this up) Out of Carnegie Mellon, this service aids in digitizing books. It gives you two words to type, the first is a known word, the second is a word that their OCR algorithm couldn't figure out. If you get the first word right, it assumes that you also got the second word correct.

I think it's a fantastic idea, putting captchas to a good purpose. :)

Gotcha: Turbogears Form Widget

So, I had one of those barking up the wrong tree moments this morning, where I was sure as can be there was something going on with SQLObject caching, but it turned out to be much simpler than that. I have a simple sort of application linking products to the company that makes them, but when you added a new company, then tried to add a new product for that company, the company didn't show up in the pull down box. (a SingleSelectField)

As it turns out, when you create your form widget:
editform = widgets.TableForm(
fields=EditFields(),
action="/editsave")
the field class gets created once, at the controller load, and that's it.
Therefore, if you populate your fields when you create the form, they won't be updated, possibly causing you to learn more than you wanted to about SQLObject caching. I found the solution on this page. Similar to passing values, you just pass a dictionary of the options to the appropriate widget. Since I have a generic CRUD controller, I created a function in my EditFields class that returns a dictionary of all the options fields and updated values, like so:
def updatelists(self):
"""Return a dictionary of any lists
that need to be updated due to new objects"""

companylist = Company.build_list(
'name',
orderBy=Company.q.name)

#in my form, companyID is the
#name of the SingleSelectField
return dict(companyID=companylist )

(using the build_list method here) then, in my controller:
return dict( form=self.editform,
values=objvalues,
options=self.fieldswidget.updatelists())
and finally, in my model:
<div py:content="ET(form.display(
value=values,
options=options))">
(I'm using Genshi, which is why I have the ET function there)

Thursday, July 26, 2007

Unfortunately Linden

Ran into this little exercise of Googling "unfortunately [yourname]". My results, removing all of the Linden Labs press release junk.
  • Unfortunately Linden seems to be content with generating bullshit instead of pushing the state of the art. (ouch)
  • Unfortunately, Linden doesn't include enough of them, nor explore their implications sufficiently, to do justice to his argument.
  • Unfortunately, Linden has not been the tonic for the offense that I was hoping for.
  • Unfortunately, Linden was completely sold out of their Cabernet Franc. (damn)
  • Unfortunately, Linden is still around to fret, cry, whine, and hesitate in Covenants stead.
  • Unfortunately, Linden is a 23 year old corner outfield prospect who has yet to crack an 800 OPS in two attempts at AAA. (I am 23, and also not good at baseball.. creepy?)
  • Unfortunately, Linden's future in the 21st century is threatened by a combination of factors. (oh noes!!)
  • Unfortunately Linden lifted the ban on fireworks after that "little" rain last weekend.
  • Unfortunately Linden was there.... refusing to leave, dag nab him. And I believe that the elbow and knee combo, to the right of shot, belongs to Mr Krad.
  • Unfortunately, Linden's papers have disappeared, and Land is forced to piece together the story behind the discovery with the dubious aid of Linden's young mistress (woo!)
Much fun. :)

Wednesday, July 25, 2007

Gotcha: Turbogears urls

So, this didn't really waste too much of my time, but watch for trailing slashes in your links. If you have a setup like (Stolen from the SimpleFormsWidgetTutorial):
comment_form = widgets.TableForm(
fields=CommentFields(),
action="save"
)

@expose(template=".templates.form")
def add(self, tg_errors=None):
if tg_errors:
flash("There was a problem with the form!")
return dict(form=comment_form)

@expose()
@validate(form=comment_form)
@error_handler(add)
def save(self, **data):
#...

And, for whatever reason, your user ends up at "host.com/add/" instead of "host.com/add", the form will display fine, but will point to "host.com/add/save" instead of "host.com/save". Then you'll get all kinds of fun errors, like "TypeError: add() got an unexpected keyword argument ''", and you'll scratch your head, wondering if you got an error that the validation somehow threw and the form error handler somehow didn't catch. Or, at least, I did.

Friday, July 20, 2007

open.ended

Yay, arstechnica, my absolute favorite newsite (they have just enough news to keep me busy, but not so much I can't keep up, plus it's all the stuff I care about), is opening a new open source journal. I'm very stoked, since this is the last geeky interest that they didn't cover specifically. (I follow their gaming, mac, and science journals)

Go ars, go. =)

Thursday, July 19, 2007

The Movie Entertainment Standard

Back in State College, PA, our little social group of gaming dorks used the Movie Entertainment Standard to determine what was worth spending money on. I think this was a function of our being poor college students, and also completely addicted to MMOs. Basically, you compare whatever purchase you're considering to watching one movie. So, monthly subscription to FFXI was $15, which gave us (way too) many hours of entertainment, compared to the 4 hours that we would get watching 2 movies for the same price. (Actually, 3 movies, since we got the student discount) Games are getting more expensive, but it's a neat way to justify dropping 50 dollars on the newest release, since you're bound to play the game for more than 10 movies worth (20ish hours). Movie prices have gone up quite a bit recently, but it evens out, since average movie lengths have also increased.

Puzzle Pirate's Subscription FAQ is the first time I've seen this concept written out, though I'm sure it's pretty common. (No, I don't play Puzzle Pirates, but it's always appealed to me. If only they'd make a Ninja themed puzzle game)

Tuesday, July 17, 2007

Turbogears Interpreter Goodness

I'd just like to say that I officially love working with Turbogears. It's just so great to be able to run interactive commands, with the environment that your code is working in already loaded up. (This isn't advertised enough in the Turbogears docs. They should have you do it in the tutorials) I hope it's still this fun when they switch everything over to Pylons, Genshi, and SQLAlchemy in 2.0. Maybe I am just odd, but it brightened up my so far kinda crappy week.

Tuesday, July 10, 2007

Gotcha: C# Windows.Forms Madness

So, if you are ever creating dynamic forms in C#, and things aren't showing up for some reason, and you sillily left one non-dynamic thing there, just to be sure that you're not loosing the whole container, check that the dynamic stuff isn't being created underneath other things. For some reason, I expect them to show up over older stuff, but apparently I'm wrong. (I.E. set form.Location = new System.Drawing.Point( [not 0], [also not 0]); )

[Spell check doesn't think that sillily is a word. Pssht.]

Monday, July 09, 2007

Gotcha: Unicode Error with SQLObject + Turbogears + mysql

I spent a bit of time this morning trying to figure out why the code I wrote at 3am last night wasn't working. I kept getting a crazy Unicode conversion not supported error, and all the solutions that I found Googling were not satisfactory. Eventually, I found that I had used the wrong validator on one of my fields (specifically, a Date field, though I imagine this will happen with others as well). If you run into this, double check your validators before you do anything crazy like change your model to use all UnicodeCols.

Also, on the subject of validators in Turbogears, I recommend using the FormEncode documentation directly, it's much more complete than what you find listed in Turbogears docs.

Python Syntax Goodness

List comprehensions in Python are awesome. I saw one for the first time, knew exactly what it did, and started using them immediately. Yay for Python! Boo for me not being on top of these things like I should be. (PHP, I shake my fist at you)

Friday, July 06, 2007

Wii!

Woot! I got a Wii. I'm stuck without a car for the weekend, because my mechanic took it half apart and discovered he needed to replace some sort of cam shaft seal. So, it's a good excuse to spend the last 2 days running everywhere and trying to find one in stock, right? (I bicycled home with it ^^)

Anyways, I bought Elebits, a game I've been fascinated with. It's a lot of fun, very unique sort of gameplay. After getting past Nintendo's incredibly finicky credit card authorization, I just downloaded the Opera browser (6 days ago, could have gotten it for free.. oh well). I'm pretty sure I won't be using the Opera browser for reading the news, the text doesn't display well at all on my screen, and zoom is annoying, but I've tried YouTube, and I think I'll definitely be using this as an internet solution for my home theatre. (Full Screen mode looks good, and I have the sound going to my surround system, the Grayson trailer looked good, sounded great)
Google Maps works OK as well, I'm glad that this version of Opera isn't limited in the realm of flash and javascript, like the DS was.

Oops, I spoke too soon. Flickr worked well, until I tried a slideshow, and got an out of memory error after 3 pictures. :( I was pretty stoked about slideshows during parties and whatnot. Anyone know if there's a way to get around this?)

Now, I'm off to look at Virtual Console stuff, the reason I finally decided to plunk down the money for this thing in the first place.

[I've been going nuts on the blog recently, there's so much stuff I've been meaning to post, now I have some time, it's all getting pushed out of the queue]

[Update: wow, if they brought out Marble Madness for Virtual Console, I'd rush home, and take all of tuesday off just to play it. Virtual Console is just as amazing as I had hoped. Childhood memories, here we come!]

NPR Car Talk

There are a few loves that I've inherited from my dad, as if transferred directly from his heart to mine at some nebulous point in my childhood. One of these is my love for sail boats and planes (particularly the older ones). We used to build models when I was little, I think I've spent more time working with balsa wood than any other 3 dimensional medium, including Legos and playdough. Another is my love for Apple computers, on which I was raised; and, also in the vein of brand names, my unflinching respect for BMW's.

Anyways, my father and I used to get in the car (always a beamer), and if we were really lucky, Car Talk would be playing on NPR. I have so many fond memories of listening to Car Talk with my dad, just hearing Click and Clack's voice makes me smile. Not to mention that they have a great show, and I learn interesting things about debugging cars. Which is good, since my car is starting to do funny things.

Since I don't really drive much during the week, I've downloaded the Car Talk podcasts, and I'm listening to them on the bicycle ride to work in the morning. It's fantastic, helps me wake up a little more, and starts my day off right. I would highly recommend it.

ExKate - Coolest thing on 4 wheels, evar

So, the reason I've been thinking about all the activity I do is that I'm completely enamored by this amazing contraption of fun, back to the future style. Wireless remote controlled electronic skateboards, who would have thought? Hidden behind an awesome toy is actually some interesting technology. It boasts: "It is the first time in the history of mankind where the human body is used as an antenna between a transmitter and receiver." Basically, you hold the control in your hand, and it uses the body as the link between controller and skateboard, so when you fall off, it actually stops. The thing is pretty heavy with batteries, but it gets a 10 mile radius, and speeds up to 22 mph. I dug around in the FAQ, and they mention regenerative braking, which is a fantastic idea, I'd love to see more stats on that. It also has a really awesome turning radius.
Wow, I would love to have one of these. I do wake board, and the control scheme is pretty similar, toe/heel flexion to steer. It would really help my balance. That's a good reason to buy it, right?

Thursday, July 05, 2007

Sports, Whee

So, I've started roller blading with my friends, I've stepped up running to twice a week, I go to swing dancing once a week(ish), wake boarding maybe twice a month, I'm still playing volleyball 3 times a week, and I've been bicycling to work 5 times a week for a couple months now. I'm contemplating doing stance training with some of my friends. I bought a Nike+ sensor for my iPod, something I've been meaning to do for a while (the reason I got a nano instead of a video iPod when someone stole my precious 1st generation 5gb iPod), partially motivated to do so by ars. Also, I'd like to do get some sort of bike trailer so that I can do groceries and picnics on my bike (though I might stick with my backpack), and I'd like to get some snorkeling gear to play with, as soon as I find a decent, easy way to get to a beach on the gulf side. I really do miss swimming, and I'm confused as to why I don't do more here, I suppose the water in the bay isn't really the best. I really am trying to get back into shape, I think the next step is to actually get back into martial arts.

Whew, typing all that made me tired. At least I'm not sitting in front of my computer dorking out *all* the time. Speaking of dorking out, I've really got to write that sample AJAX program in Turbogears for the next Tampa Bay Python Meetup.

Fireworks Photos, Again

Well, I got a flickr Pro account, because I'm quickly running past 200 photos on the thing. Put some more fireworks photos up, and a couple older ones. Have a looksee here.

Edit: Holy mackerel, I had over 300 pictures.

Ask A Ninja

Bill was cheering me up today by playing Ask a Ninja episodes over lunch. We watched Ninja Omnideuce, which is definitely one of my favorites. I couldn't help myself, had to make this picture. The Ninja answers the question "Why do I suck at life?".


Probably, though, you should just watch the episode. It's much funnier when he says it. :) Other gems from the episode:
  • What is the most deadliest move you know? "Probably, from New York to Florida. People don't come back."
  • Hey are there self help books for lousy ninjas? "Yes, they're called funeral directories."
  • How many people have you wrongly killed? "Just one, but I went back the next day and I killed him correctly."
If you haven't seen this yet, go and watch them all. There's even a handy podcast. Do it, do it now.

Friday, June 01, 2007

Epic cute!


from the flickr comments, this says it all -

One turtle to rule them all
One turtle to find them
One turtle to bring them all
And in the cuteness bind them


Thursday, May 31, 2007

The madness that is interior decor

Lately I've been utterly consumed with moving, & trying to set up house now that I'm finally over here. This has been consuming my every waking thought (all my will is bent on it) - and I didn't even realize just how much until like 25 out of 30 of the tabs I have open in firefox are home-deco related. 0_0

I have stumbled upon some utterly astonishing stuff in my wanderings, some more useful than others -

Apartment Therapy has a ton of photo tours of people's apartments, some of it is just jaw dropping:

This apartment has some really insane stuff in it, like the cityscape relief cut into panels as art in the dining room! And a crazy awesome chandalier that I want an excuse to try and make myself.


This loft/apartment has some things I would never do for sure, but so many amazing elements - like the icechest/cabinet with the vases, and the crazy rounded (reverse?) column shelves designed for climbing on! I'm very intrigued by the clear chairs, I looked them up and dang, are they pricey, but a cool idea. Also the fireplace is just jaw-dropping, although I do wonder a tiny bit about its fire-safety... plus I would probably want it to be more of a faux-slate type effect.

I like from a different apartment the use of this way more awesome clear chair much better... also the textures and stencils in this apartment are insane!

And this apartment is just HELLA cool.


On a more practical front,
this blog is all IKEA hacks, which I am so totally down with. In fact out of all the many IKEA things I have, I can think of maybe one that I have used 100% as is intended by the manufacturer : )

My favorite "hack" by far - I would so do this in a second. Too bad I don't really have any doors that I can do up bat-cave-entrance style.

The other thing I found today was Rollerwall.com. Which, knowing well the evils of wallpaper, I think I have actually thought up before :)



Thursday, May 24, 2007

Flavored Vodka

Pandora keeps advertising vodka at me, which is my alcohol of choice. (Creepy, or coincidental?) A couple months ago, Absolut came out with a pear flavored vodka which is not really good for cranberry juice, but quite wonderful in Sprite. Now, Smirnoff has a black cherry vodka, which they're suggesting be mixed with Coke. I'd very much like to try this.
I used to be not a big fan of flavored vodka's, but I've learned that it's neigh impossible to get a decent cosmopolitan these days, and the Poor Man's Cosmo, cranberry with citrus vodka is the next best thing. Plus, you really can't argue with a great tasting drink that can be made by pouring two things together in a glass with ice.

Wednesday, May 23, 2007

My New Favorite Caffeine Source

So, I never found Bawls on sale in Pennsylvania, but they have it in Publix down here in Florida (one more reason to like Florida). I love this stuff, it's tasty, has an awesome blue bottle, and gives me just the perk I need in the morning. Especially when I need to pore through startup logs of huge unwieldy java applications. Also, since I don't drink coffee, and coke is just too harsh before lunch.

Friday, May 18, 2007

Infinite Loops

Ooh! Infinite loops are so cute! I almost forgot about these things, just ran into one and it made me smile. There's definitely something wrong with me. :)

Wednesday, May 16, 2007

When syntax highlighting affects coding practices

In eclipse, using the php extension, both 'and' and 'or' get colored in a bold dark purple, but && and || don't. Normally, the symbols are interchangeable in my head, I've coded for long enough by now, but I find myself preferring 'and' and 'or', just because it makes my code look more readable to me due to the syntax highlighting. Unfortunately, there's a difference in meaning, the operator precedence goes like:
||, &&, ... =, ... and, or
which could be a problem for me if I'm not paying attention some time in the future, and expect the wrong behavior. (And is also kinda goofy, this is why we use parenthesis)

o.O

Monday, May 14, 2007

Geek Laws

I love this stuff:
  • Hofstadter's Law:
    It always takes longer than you expect, even when you take into account Hofstadter's Law.
  • Godwin's Law:
    As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.
  • Benford's law of controversy:
    Passion is inversely proportional to the amount of real information available.
  • O'Toole's Corollary of Finagle's Law:
    The perversity of the Universe tends towards a maximum.
  • Hanlon's razor:
    Never attribute to malice that which can be adequately explained by stupidity.
(You can find more here)

Weekend of Fun!

So, this was a fantastic weekend. Friday, I watched an ep of Band of Brothers with some of my friends. I've discovered people that like WWII films, but haven't seen it yet, and I'm determined to right this wrong. If you're reading this, like WWII films, and haven't seen Band of Brothers, please go do it now. Really, it is that fantastic. The style is unbeatable, and really pulls you into the moment, and probably the best parts are the interview bits before and after each episode with actual surviving members of the 101st Airborne. It just doesn't get any more real than that. We made yummy burritos for dinner.

After that, I went to Blues Dance, a party held by my good friend Bill, which starts at 1am, and goes until early in the morning. This was a very successful party, even though I didn't dance much, I had a fantastic time talking all night with another geek. (Look, I found another person I can geek out with. Awesome.)

Saturday was consumed by sleep and going to the Tropical Heatwave concert in Ybor city, Tampa. We got there early to get a good parking spot for the mobile home, and walked around a bit. If you ever go to Ybor city, and you like crepes, you must try out Le Creperia Cafe. Not only is the atmosphere delightful, but our waiter was definitely one of a kind, and the food was amazingly fantastic. I would love to go there again with someone for a relaxing meal. Ybor, by day, is a really neat place to walk around. They have a great motif going, the brick, tile, and iron wrought architecture has a lot of character. There's even a trolley that goes through it. Tropical Heatwave was also very good. I really liked Poetry n' Lotion, though most of the bands we saw were quality. The only issue I had was the loudness of the sound system in the Cantina. For crying out loud, it was actually painful to stand in there towards the end of the night. Saturday night, we went to a friend's house and played Katamari Damacy, Guitar Hero, and watched FLCL. FLCL is funny, strange in a crazy way, and has a good soundtrack, but the best part is the graphics. Some of the artistic style is truly unique, all of it is very well done.

After a little sleep, I went to North Shore to play Beach Volleyball. Again, the crew I play volleyball with is full of great people. Nothing beats hanging out on the beach and playing some good games of co-ed doubles. I went home, got dressed, and went to Swing Dancing in Tampa with Bill. Most of the swing dancers I've met are pretty cool, and all of them are nice. It's an interesting crowd to hang out with.

Well, that brings me to now. Quite a good time, but I have to get to sleep and go to work in the morning. Cheers.

Friday, May 11, 2007

Rasterbation Part 1


Bedroom
Originally uploaded by Kusmeroglu.

Here's the first poster I made. I got white wrapping paper, and used lots of spray on glue, so that I can take it up and down pretty easily. If anyone else wants to do this, I *highly* recommend spray glue, just be careful not to spray it on too thick to wet the paper, and you're golden. Catwoman is by far my favorite comic book character. I hope that they make a new batman movie with her in it. I would die so, so happy.

Tuesday, May 08, 2007

Rasterbator


Funny name aside, Rachel pointed this out to me in an email, and it's freaking awesome. So cool, that I was obsessed until I found the perfect pictures to rasterbate. (My house needs some decor, haven't had a chance since I moved in to really do anything) My pictures? Batman for the living room, Catwoman for the bedroom. Both Bruce Timm (of course.. remember this?)

Spiderman in the Rain


So, I've been telling people about this piece for years, I saw it a long time ago and it's stuck with me all this time as my favorite Spiderman picture, but never found it again. Apparently I hit the right Google terms this time, and I've finally found it. Too bad it's so expensive. Anyways, done by John Romita. There was a scene in Spiderman 3 that reminded me of it, which is why I brought it up again.

Saturday, May 05, 2007

Kentucky Derby: Street Sense

So, it looks like Street Sense is already a favorite, but I'm going to have to agree. He's a great looking horse. Plus, he's part Irish, and who can argue with that?

[Edit: I win!]

Tuesday, May 01, 2007

Snowy Lotus Elise 8


Snowy Lotus Elise 8, originally uploaded by Fleur-Design.

With an Apple sticker! Dude, you are my hero. *drool*

python.struct

I've been doing a lot of work on translating data spit out by various sensors recently, so I now know intimately what bit-twiddling means. At one time in my life, when I was more impatient, I swore I would never enjoy this sort of thing. Python's struct module sure does make it easy, if not enjoyable(ish). If only bit-twiddling in C was this quick..

Monday, April 30, 2007

Cygwin is my secret hero

In trying to develop in C on my Windows machine at work *nails scratching on blackboard here*, I installed Cygwin. At first, I only used it when I had to, but today, I noticed myself using it constantly. Thank the gods for decent command line on windows. And GCC. I was getting tired of lugging my personal laptop in just to do some coding. I guess when you learn everything in a *nix environment, it's just a pain to get anything done in windows.

ls > dir any day of the week.

Spring In Florida


Purple Trees
Originally uploaded by Kusmeroglu.
I've been taking pictures all over the place, this is an awesome place to live for photo-ops. We don't have season changes, the *only* difference between winter and spring so far has been the slight rise in temperature, and these gigantic purple trees. They're quite surprising at first, when you're driving along, and there's a shock of purple over the road.

Monday, April 16, 2007

Fireworks Photos

We watched some fireworks off of the St Petersburg pier from a boat this weekend, and I went a little crazy taking pictures of fireworks. Some of them actually came out really nicely, as long as you cropped them right. Very abstract-arty. You can check out the lot of them here on flickr.

Sunday, February 25, 2007

Florida

So, I live in the world of beaches and sun now, tomorrow will mark my one month anniversary of moving down. Everything here is strange and different, but in a good way. The weather is fantastic, the winter here is like spring or summer up in Pennsylvania. I'm told that the summer will be unbearably hot and humid, but I've never been one to complain too loudly about such things. The plants and animals are all odd, there are squirrels, but just as many lizards, the palm trees out number normal trees, and there's spanish moss hanging off of everything, giving the scenery a hint of the exotic and ancient. The sunsets are fantastic, and even the crappy beaches have a hint of clear blue water. Living between the gulf and the bay, I see water all the time.

The people at work are all great, I haven't had a bad experience yet. Things are hectic and the politics are at an extreme because there is a lot of upheaval going on, but everybody is still nice. People down here are nice in general, except when they are behind the wheel. Everyone has this friendly, laid back sort of attitude in the city. (I hear it isn't so in other places nearby) I just ate at The Chattaway, which is this adorable 'best burger in st. pete' type place. I've never ate somewhere with such an interesting and comfortable setting. On the way there, I passed my neighbor, Moe, and her husband, who asked if I was going to "the chatty", since it's only 3 blocks from me in an otherwise residential area. The guy I ate with is my new beach volleyball partner, V, a truely nice guy. We ate and sat by a firepit type thing and talked about life and relationships, then chit chatted with a couple who were also sitting by the fire.

Charlie, one of the guys from work, invited me out to play beach volleyball, and got me totally hooked. I played for the first time on tuesday, and I've probably logged 20 hours since then (thursday, saturday, and sunday). V wants to train me for a co-ed team and participate in tournaments. Apparently I'm a natural beach volleyball player, I'm picking it up much quicker than I did indoor volleyball. I blame martial arts and wallyball for my quick reflexes, and the scenery and company for my enthusiasm. Everyone I play with is really cool, and spending hours out on the beach can't be beat. Between games, you get to lay back and watch the boats go by on the water, or the sunset. I should have a dark tan in no time, which is odd for me, since I don't have the patience to lay out.

The nightlife down here is odd, it's all beer, wine, and music. There's a lot of jazz and blues down here, and most of the places have live music, then there's First Friday, where they shut down a couple blocks on Central Ave and have a band playing out in the street. Everybody drinks beer all the time. I'm assuming that it tapers off in the summer, when beer becomes heavy, but I wouldn't be suprized if people just switched to wine. It's very vacationy. Even people that have lived here their whole lives remark on how it's like a vacation everyday. (I think this is where the laid back attitude comes from)

Anyways, I just wanted to chat about my thoughts on moving to Florida. I like it here very much, I'm keeping myself busy seeing new places and trying out new things.

Wednesday, January 24, 2007

Google Calculator and Suggestions

(Woo, Trebuchet is my favorite font. == happy with new dashboard)
So, I just noticed today that if you have Google suggestions turned on, like in my search bar in Firefox, you can do the calculator stuff, and it will pop up as the first suggestion. I use Google for a calculator, spell checker, and thesaurus all the time, this just makes my life two buttons easier/faster.
If you're not familiar with the calculator stuff, check this out. You can type stuff like "1440 minutes in hours"
, and the conversion (=24 hours) will show up as the first suggestion.