May 6th, 2008
As Gina said yesterday, I have been studying compost. Quite in depth, I may add. I won’t tell you the results of my findings yet, I will say that what I have found has been both confusing and enlightening.
I get confused because people say different things about it — “don’t make your pile too large”, “don’t make it too small or it won’t get hot enough”. “Grass clippings are bad.” “Grass clippings are great, if handled properly.” “You must have a compost bin!”, “Using a bin is optional - it will become compost either way.”
So I’m just trying different things that I have found and see if they work for me. That is why I’m not telling you my findings — I don’t know what works yet! Some things are just plain too much work for me, and others won’t work in my environment. In reality it all started because I’m too lazy to rake leaves.
But I will tell you a few things that I am doing or have learned:
- The Internet is a bad, bad place to research this topic. The basics are all there, but past that, everyone has different suggestions and some outright contradict each other. Visit your local library and get a couple books on the subject. The fact that the author had to go through all the pain of getting published probably means they aren’t totally out there on this subject.
- I did put a “bin” together — it’s actually about two dozen bricks I picked up on FreeCycle. I need at least that many more. I put half the bricks on one side and the other half on the other. Our chain link fence is the back. I needed to move the compost from our garden because we didn’t have room to plant things there! The bin does make it look better and it gets more compost up in the air, which is actually a good thing.
- You may think that composting is a natural process. And it is — to a certain extent. A better way to think about it is that it’s about controlling a natural process. Your compost pile is a delicate balance of nitrogen, carbon, oxygen, and water. If you get a good ratio and keep it there, you will have great success. Too much nitrogen and your pile will just stink to high heaven. Too much carbon and your pile will just, well, do nothing. Too much water is just like having too much nitrogen. If you have too much oxygen in your pile it may start on fire. Seriously — it would probably burn up.
- I’ve read both good and bad things about earthworms in your compost pile. To me, they are a wonderful sign. I was moving lots of compost around on Saturday and found tons and tons of worms in the pile itself — not just in the ground underneath it. I didn’t put them there, so they were attracted to what was going on in the pile. They should help the breakdown process tremendously. Most web sites say earthworms are bad or do nothing while all the books I’ve read say they are wonderful. I’m siding with the books.
I’m not sure where the greenish thumbs have come from this year.
Neither Gina nor I have had a lot of success gardening in the past. We
had some mild success in our garden last year, and Gina enjoyed working
in the front flower bed last year. Maybe we also have the gardening
bug because it’s been such a long, cold winter that we want to help
everything grow. Whatever start it, I will say that I was very excited last night to see the radishes start coming up (no sign of the onions or carrots yet). I’ve also been daydreaming of planting tomatoes, peppers, and pan squash this weekend. And I also scheduled
Backyard Farmer in our DVR — but don’t tell Gina!!
All this was started by a pile of rotting leaves. .
.
Posted in Life | No Comments »
May 6th, 2008
I’ve been using log4j for a long time, but never got into Python’s logging module. But last week I was sitting in a class about logging and my company’s new standard and toolset. The instructor kept giving Python as an example (as well as log4j) of a logging system that worked with our logging repository. During a break, I asked the instructor if there was a pocket of Python users in the company. Alas he said no, but he used it as an example of something that used the same logging standard as log4j and other Java logging utilities.
Later in the week, I was faced with a problem that needed to be solved with a Python script. I thought to myself, “Why not use Python’s logging?” I did, and it was good. Very good.
I could give examples, etc. on it, but I really don’t need to — the documentation is quite good by itself. But I didn’t see a concrete example on how to get the function name into the log message, so here is my example, as simple as it is:
def saveXml(xml):
log = logging.getLogger("saveXml")
Posted in Python | No Comments »
April 30th, 2008
Some kind soul was kind enough to give me an invite to Evernote. The features seem cool, such as:
- A Note management program for Windows and Mac.
- A somewhat limited Web version
- The Windows client doesn’t require Administrator rights, so I can install it at work!
- You can send photos from your cell phone camera and send it to Evernote.
- Evernote can search text even in the photos!
Despite those cool features, I was not very impressed with it. Here’s why:
- The Mac client is Leopard-only. I’m still on Tiger and have no immediate plans to move to Leopard. Bad, bad Evernote.
- The Windows version couldn’t get through the office firewall.
- I sent a few test pics to Evernote, but they never showed up.
So I left Evernote alone, thinking that it wasn’t up to the hype.
Then, yesterday, I was looking at my Phone Contacts backup on the web (y
es, we love you Verizon!) and I noted that the email address I had on file for Evernote was wrong. I had “euernote.com” instead of “evernote.com”. I looked at my phone again, and it seemed to have “evernote.com” as the email address. So I entered it again, and noted that the “u” and the “v” on my cell phone look exactly alike! Yikes! So I make sure that it said “evernote.com” this time. And then I resent a picture that I took once. In seconds,
seconds that picture showed up in the Web client.
Now we’re talkin’!
I took some time today to investigate the Windows client. A search on their
forums seemed to indicate that others have had this problem too but Evernote Support swore up and down that it used the same proxy settings at IE. I laughed, but thought I should try to install the latest Windows client and see what happened. I got strange errors on the first sync, so I tried it again — and it worked. Like a charm.
So then I had an image with text in it in my “thick” Evernote client, so I could try the text search in the image. And, guess what? It works nicely.
Therefore, in 24 hours I went from a “it’s a little better than hype-ware” to “Wow — it’s really cool!” But it would be cooler with a Tiger client.
Now, as a finish — I have 7 invites to Evernote. The first seven people who email me or leave a comment get them. If you don’t think I have your email address, I’ll need that too. This should be an interesting exercise, since only about three people regularly read this blog.
Posted in Ruby, Tech | No Comments »
April 28th, 2008
Exhibit A:
Passenger solves this problem by implementing user switching. A Rails application is started as the owner of the file config/environment.rb. So if /home/webapps/foo/config/environment.rb is owned by joe, then Passenger will launch the corresponding Rails application as joe as well.
It took two experienced programmers an hour and a half to figure this out. I mean, what other application runs as the user of a configuration file? It’s normal (and sensible) to run as the owner of the executable or even as the user that executes the startup but not at the user of a configuration file. If you want to do something different, mark it in big, bold letters, not some little section tucked away in your docs.
</rant>
Posted in Ruby, Tech | 2 Comments »
April 25th, 2008
We use Cobertura inside our continuous integration system and I have spent the last two hours trying to figure out why a couple value objects where showing 0% coverage because, you know, they actually had tests written for them. Because I just wrote the tests!
After some investigation, I discovered the packages of these objects were different — the classes I wrote the tests for were in the vo package and the classes that had no coverage were in the beans package. I looked a the Cobertura report for the vo package and — heck — I had 100% coverage!! And there were no beans package for this project. Things just got a whole lot weirder.
I poked and prodded and figured out what was happening. It turns out that these objects were once in the beans package, but then got renamed to vo (which is our standard package for business objects). However, whoever refactored the classes didn’t refactor the tests with them. So there were still tests in the beans package that called the classes in vo. But this confused Cobertura, because it (rightfully) thought that there should be test for the beans package.
Interestingly enough, the ghost classes still showed up after I delete the rogue tests from SVN. I had to manually go into our CI server and do an “ant clean” to stop JUnit and Cobertura from reporting on them.
Is this a bug in Cobertura? Kinda, technically, maybe. But it’s actually a problem with how this was refactored. If you refactor you objects to a new package, remember to move your tests as well!!
Posted in java | No Comments »
April 22nd, 2008
It’s been almost two weeks since I have posted anything. Must be a new record. But it’s not like I haven’t been doing anything. Here is an update:
- Leah started soccer three weeks ago. It’s about time I posted something — the season is half done! Leah loves it — she can’t wait until the next week. They don’t actually play any soccer games at this level. Instead, each kid always has a ball and they play games to work on fundamentals, listening skills, etc. It’s a great program. Gina has some pics and a video. More pictures of our little soccer star are forth-coming.
- A cold has ravaged our household. Leah was spared the worst of it, but both Gina and I had it really bad. We first thought it was allergies but it’s wasn’t. I just got my voice back yesterday, after struggling since last Thursday. It’s been horrible!
- In my not-very-copious spare time, I’ve been working a Ruby on Rails project. It’s, ah, interesting. I don’t know Rails very well but my partner does and he has been mentoring me. This is my first real work with it. The plethora of plugins are nice, but it’s “convention over configuration” thing gets annoying because they wouldn’t be conventions I would ever pick. Example: starting partials with a “_” but never actually using that character when using them. Anyway, it’s been interesting and I’m learning a lot.
- Adia posted a link about rain barrels. I’ve seen them before when I was in Australia years ago. I love the idea but I’m not spending $100 for a rain catcher. My brain is started to hatch a plan to build one myself, but I did just mention my non-copious spare time.
- On the subject of outdoors and environment and recycling . . . last fall I decided to make our compost pile bigger. And bigger it is — much bigger than it probably should be. If anyone in Omaha wants to stop by and take a bucket or two, drop me a line. Not all of it is ready, but it would make a great starter for a pile of your own. It’s just lawn waste and a few fruit peels — no manure is involved. And if you think it must stink — it doesn’t.
- Today I’ve been trying to get a handle on Wicket – the new Web UI standard at my employer. The “leader” of the Java UI team gave us a demo but it turned out to be more a sales demo than a technical how-to. He didn’t mention that you have to had a new log4j as well as SLF4J. And he forgot to mention that you have to put your HTML templates with your classes. Therefore, getting it working has been very problematic. And after I get it working, I don’t know what I would think of it. Maybe it’s like my problems with Rails — the concept is nice, but putting all your page representation as POJO’s instead of in configuration will just give you bad code instead of a bad configuration. Is that better? I simply don’t know.
Posted in Life, Tech | 2 Comments »
April 11th, 2008
Before my last post, I should have made this post. So let us time shift a bit . . .
When I fired up Intellij on Monday, it told me that there are only 6 days left of my trial. Uh-oh. And we were told that our free license from No Fluff would take a week or two before getting to us. I was enjoying my time too much!!
On Tuesday morning, I read the “5 days left . .” on the startup window and began to lament that my demo was really over, and that my license key wouldn’t be showing up for a while. An hour later, I got an email from JetBrains – with my license key!! They saved the day!!
So now I’m licensed — for a year. It’s a great product, too. I think Intellij is a lot like Emacs — or, at least, it has that feel. Eclipse has never had that feel for me. So, in that spirit, here is my first Intellij IDEA cheatsheet. These all work in Emacs mode:
Shift-Ctrl-i -> Get Definition (do it while on top of an object or a method call)
Ctrl-Alt-space -> Complete by object name in classpath
Ctrl-F12 -> Display & Navigate to methods in a class.
F12 -> return to last Tool Window
Ctrl-Shift-- -> Undo
Esc -> goto editor from tool window
Posted in intellij | No Comments »
April 10th, 2008
So I was coding away in Intellij, and did my Ctrl-Click thing to bring up a method in another class, and look what I see:

So I click on “Update Project”, I get the latest from SVN, and I move on with my life.
This, my friends, is coding bliss.
Posted in Tech, java | 1 Comment »
April 7th, 2008
I sacrificed my weekend to attend Omaha’s No Fluff Just Stuff. And I had a great time. Some of my highlights:
- I saw most of Ken Sipe’s talks, mostly because everything he talked about was applicable to me. My favorites of his were Iteration 0 (starting off on an Agile project) and the Scalability talk.
- Everyone in the room was awed by Alex Miller’s Terracotta talk. Terracotta is very, very cool stuff. Miller’s Collections talk was also very good. It wasn’t quite what I expected it to be, but that was a good thing. But Big-O doesn’t scare me.
- If you are ever at a conference with Ted Neward, you need to hear him speak. Seriously. Even if you don’t think you care about the subject, you need the experience. I learned tons from his talks and I heard that his threats on killing people for stupid things aren’t just idle threats. He also introduced me to my new best friend in the JDK — JConsole. Now if I can get JDK6 installed, I could do some serious JConsole scripting . . .
Was this conference perfect? Nah . . Sunday got a little long, I think there was too many Groovy talks, the Men’s room was too small, and there weren’t nearly enough outlets for laptops. But I don’t regret going !
Posted in Tech, java | No Comments »
April 1st, 2008
Hello world! Long time, no blog! A lot happening, though. Lots. Much. But are they things worth writing about? Some of them, but not many.
Matt recently lent me a copy of
The Four Hour Work Week by Timothy Ferris and while I think that Ferris is an arrogant jerk, I think the book is quite good. Would I do everything he suggests? No, probably not. But I am currently doing some of the things and it is working.
The whole idea is not to work only four hours a week, but instead to do what you want — instead of filling your days with working you instead should be doing the things that you want to do. To put it more succinctly, you should work to live, not live to work.
Here are some questions from the book that got an interesting discussion between Gina and I — If you had $100 million in the bank, what would you do every day? Or what would about your day would get you excited just as you woke up in the morning?
Here are some work tips that I am trying to implement. I’m not as adamant about them as he is, but they are working.
- Avoid meetings whenever possible. Simply say that you don’t have the time.
- Avoid any and all interruptions. I have big headphones and they help avoid the “chatters” who walk by my cube.
- Only check email twice a day — and never right away in the morning. He suggests 11am and 4pm. Due to my 7am-4pm schedule, I do it 10am and at 3pm. And not checking it right away in the morning is a huge help.
- Work in batches. This is especially helpful and something that I was kinda going anyway. Save common task at one time and just get * them done. It’s amazing how fast you get things done when you do this.
All of the above things are related — they really just come down to two of the rules — work in batches and avoid interruptions.
Posted in Books | No Comments »