This was not because the package was that complex, but because each person in the line thought they were going to be paying $25 per person. In reality, the tribe was charging another $50 on top of the $25 for each person. You read that right, 75 bucks a pop. The “Question Answerer” explained it to us:
“The investor wants to get his, that’s the $25. But it’s our land, and we don’t get any of that $25, so we have to get ours too, you know?”
When I heard about the glass skywalk it sounded like a really cool idea in principle. Now that I read this, I’m definitely passing on the trip for a LONG time. No cameras on the skywalk (what!!??!), long lines, and hidden fees. $75 per person is not even thinkable. No way. Too bad they launched in the day where one guy’s blog post can touch a few thousand potential customers.
I’ve been silent again. I know, it’s not what I intended at the beginning of the year. It’s just that it’s so much fun to go off and buildstuff. I get sucked into all sorts of side projects outside work that are interesting and time consuming (not to mention time spent with the fam — two under the age of 2 is both a joy and a handful!).
So here’s one glimpse into my recent projects. I’ve been hacking away at another WordPress site. It’s a volunteer project I do mainly on the weekends. It’s been interesting to fiddle with PHP more in depth while still doing heavy Rails stuff in the evenings. I forget how functional style programming tends to work. Shared variables abound, and one file melds into another. PHP seems really good about working with files, though. It’s really amazing how easy it is to say, “now go use that file”. I’ve done stuff like that in JSP and other languages, but it’s pretty darn simple in PHP. The mental concepts of assembling a web page seem to be all about choosing the file that renders a certain part of the page. That’s different from JSF where you think mainly about assembling components, and different from Struts where you often think of Actions or logical forwards, and different from Rails where you think of the method in your Action and the responds_to block.
So it’s not likely that I’ll hang out in PHP land for long. Nor is there any danger of me evangelizing it, but I look at this as simply one of many recent experiences I’ve had while building something that confirms another of the Pragmatic Programmer’s axioms: learn a new language every year. I’d add, Do it while hacking something together.
My two year old just blasted past between my laptop and the plug. The mag adapter dropped off my MacBook Pro in silent fashion. My two year old kept quietly running (a rare thing — the quiet part). I was happy. It’s the tiny details like this where design shows its true colors. Is your app built for your users’ reality? Do your programmers need a reality check? How many “two year old” problems exist in their workspace, that you should handle beautifully instead of try to put those problems in a straight jacket?
I don’t know how many years I’ve used the following command chain to add all my unknown files to Subversion:
Inevitably I occasionally end up using that string on some directory where I have a space in the pathname, and everything bombs. So I finally got around to adding it to my ~/.bash_aliases file today, with the additional -e "s/^(.*)$/\"\1\"/". Simple, really (just make sure that something sources that file):
I may still play with the actual alias name to see what sticks in my every day practice. Maybe I totally missed a way simpler way to do this. Seems like I’ve done something like this since back when I started using Subversion at release 0.18 or 0.19. Maybe I haven’t kept up, so I’d be happy to be enlightened.
Do you have anything tiny hanging around that should be automated right now?
We’ve been grappling with a number of different problems with our app over the last week. We’ve made many improvements, including several changes to our Spring configs (which I may touch on another day), but we still had a problem where occasionally we ran out of database connections momentarily — no matter how many we had in the pool to start with.
So the other morning I got an itch to start coding while I was waiting for my carpool ride to show up. By the time I got to work, I had a rough draft of something I wanted to try out. It’s a simple logging DataSource. We converted our datasource to one driven by Spring a couple months ago, but we still have a combination of straight JDBC, an old custom in-house ORM tool, and Hibernate. Somewhere among them, we’ve got something occasionally misbehaving.
When you turn it on, you might see something like this:
All of the stacktrace lines have been removed except those that match your pattern. This is helpful to make sure you cut through a typical enterprise Java call stack to only show the calls your code is making. For us that was helpful as a poor man’s way to determine which pieces of our code were using connections frequently. One simple run turned up a few hotspots. If we need to dig in a bit more, perhaps we’ll throw together a simple Ruby script to count how often a given call stack shows up in the log.
Also note, that since this puts the info out to Log4j, you can obviously pull this logging out to a completely separate file, set a different threshold, or use any of the other standard Log4j features to capture this information in a way that’s useful to you.
Finally, please remember that I pulled lots of this together while riding to work. It’s not really meant to be used for anything serious. Please expect warts and problems, but hopefully it’s enough to help get you goin’.