Science and Idea Books for 2007

Dec
29
2007

Photo: guldfisken

Yesterday, I was listening to Dave Slusher talk about his incredulity at people wondering how he'd fill 50 years without a "job". He, like me, has such a long list of books he'd like to read.

I'm guessing that he, like me, finds the very idea of being "bored" or having "nothing" to do completely foreign.

At any rate, I felt prompted to take inventory of the books I've got lying around that I haven't read yet.

So, last night, I tried to tidy up my office bookshelves and group together the books that I haven't read yet, those that I want to revisit, etc. In doing so, I noticed some distinct patterns in the type of books that I'm drawn to.

They tend to be the kind of books that let me exercise my generalist/liberal arts orientation by tapping into a wide variety of fields. They're mostly non-fiction (about 7 or 8:1) and many are scientific or philosophical. They are, however, the kind of book that is written for people outside of the field to grok.

Jason Kottke recently called them "science and idea books", which is a category I think I like better than what I've heard the publishing industry call them: popular science. I like them because they tend to fire WAY more of those synapses in my brain that make connections between things.

When I read these books, I tend to feel those sparks of insight flashing back and forth in ways that much of the online equivalent doesn't cause. I'm not sure if it's just the longer form, the context in which I read them or the form factor that contributes to that.

However, I don't really care as the effect is obvious to me after years of self-observation.

Kottke's post linked to a nice list of the best of these kinds of books that includes some intriguing title.s

I really like the end of the year for producing lists like this. They serve a handy purpose in aggregating and filtering the total list of books published in a year into a manageable list that lets me read really good books without spending a lot of time finding them.

What was disappointing was that the list itself only included the titles and authors. I didn't want to have to click each title in turn and look at them all individually.

Fortunately (at least for this particular problem), I've spent the last 2 months DEEP in the bowels of the Amazon E-Commerce API and knew that I could quickly spit out a better copy of the list.

Sure enough, it just took a quick bit of C# and I had a much better format. I uploaded a PDF of my exported list, including the editorial reviews and New/Used pricing so I can look over the whole list much more easily than looking up each of the books. You can download it too if you want. The PDF itself was generated using the techniques I mentioned earlier this week.

HTML as Page Layout Language

Dec
28
2007

Off and on over the last 6-8 months, I've been working on a project that needs PDF as its final output format. The plan has been to use DocBook and the toolchain attached to it. However, that's been more frustrating than it first looked when it comes to integrating into the whole system I'm designing.

Then, earlier today, someone posted a link to this YouTube video, which demo's the functionality of the Prince engine. That revealed a system for really nice page layout using HTML and CSS (with CSS3 handling the page breaks and other stuff like it was designed to, making Prince the only implementation of CSS3 out there that works as far as I know).

Given how my project is web-based, being able to just keep it all HTML from end to end and still get really nice PDF's out the other end would be a huge benefit. And, given how this project will be commercial and how much time I've already spent trying to do all of the conversions back and forth, even the steep pricetag for a server license will likely be a net bargain.

Fortunately, the version that puts a little logo in the top, right corner of the PDF (only for display, not printing) is free for development/personal use. So, I messed around with that a bit tonight and got a feel for it. There are versions for pretty much all of the platforms (Windows, Mac, Linux, BSD, etc.) and integration with code for automatic generation is fairly easy.

Really basic conversion using C# only took 3 lines of code. I just grabbed the normal Windows version, also downloaded the DLL and added that DLL to a basic console app.

Then, these 3 lines work to dump out a PDF of the page in question. I just threw together a quick HTML document to test with a few H1, paragraphs, etc.

IPrince pr = new Prince(@"C:\Program Files\Prince\Engine\bin\prince.exe");
pr.AddStyleSheet(@"C:\Program Files\Prince\Engine\style\xhtml.css");
pr.Convert("demo.html", "demo.pdf");

Pretty easy startup as far as I'm concerned. The video is worth watching, despite being somewhat irritating to watch. Like many presentations to a room full of geeks, there's quite a bit of not seeing the forest for the trees. Lots of people shooting it down by saying, "this is would be REALLY great if it supported my one pet feature" kind of stuff. They got a bit hung up on those little nit-picking details and I wonder how much of their presentation ended up left out as a result.

Based on what I've seen so far, I definitely think it's worth tinkering with a bit more and doing the math on that license fee as part of my project budget.

Stuff I Found Interesting This Week

Dec
22
2007

Play on Zune - VideoLAN Wiki

Play on Zune - VideoLAN Wiki

The commandline for encoding video for Zune manually. I hate "magical" conversions in things like the iTunes or Zune software because it often eats disk space where you don't have the space via "cache" directories, etc. I'd rather just batch encode the files when I want them.

24 ways: Christmas Is In The AIR

24 ways: Christmas Is In The AIR

Scott Hanselman's Computer Zen - Coding4Fun Hardware Boneyard - Using the CueCat with .NET

Scott Hanselman's Computer Zen - Coding4Fun Hardware Boneyard - Using the CueCat with .NET

I've actually got one of these CueCat's laying around. Stumbled across the article when looking for how to use the Amazon REST services and got a bonus use as well.

SketchPath - SketchPath - The XPath Tool

SketchPath - SketchPath - The XPath Tool

If you're dealing with XML, embracing XPath makes your life much easier than other methods of ferretting out data. However, you have to have some way to write those queries outside of your application to get them right.

MyGeneration - Code Generation and OR Mapping

MyGeneration - Code Generation and OR Mapping

We have an uncertain database schema on a project that will likely change several times before it settles down. MyGeneration provides a handy way to re-generate the CRUD code/stored procs whenever the schema changes.

Radio-Locator: Vacant Channel Search Results

Radio-Locator: Vacant Channel Search Results

Find an empty frequency for that FM transmitter you bought for your MP3 player. No more of some random talk radio station butting in to the middle of your music.

Delayed Startup

Delayed Startup

It's always bothered me that Windows essentially has 2 states for an application to start up: at boot or manually. I often want something to be up an running, but if I started 15 minutes after booting, that'd be good enough.

Coding4Fun : YeahTrivia: Creating a Trivia Server/Client with WPF and WCF

Coding4Fun : YeahTrivia: Creating a Trivia Server/Client with WPF and WCF

I seriously want a decent trivia game for my home theater as a party game. Maybe this is a decent starting point.

View all my bookmarks on Ma.gnolia

My Eyes Bigger Than My Stomach? Really?

Dec
17
2007

Photo: Théo

All my life, I've heard people talking about how their "eyes were bigger than their stomach" or warning their children against such a misjudgment. I always had to guess at what they meant. That's because for as long as I can remember, it never really applied to me. If it could fit on a plate, I could finish it.

Other than on days like Thanksgiving (and maybe one or two other days a year) I don't manage to approach that "full" feeling everyone else seems to experience at most meals until a half hour after I'm done eating, if at all. Unfortunately, I also get REALLY hungry (think "willing to walk miles to get food) fairly often, no matter how much I eat.

That, of course, coupled with a move from farming to sitting on my butt all day pretty much guaranteed that I would top 300 pounds, which I did a few years ago. That's when I went to a weight loss doctor and spent nearly a year on a weight loss program resulting in a loss of 60 pounds.

The thing that made that program work for me was the included an appetite suppressant you probably know from countless spam emails: phentermine. When I took those pills, it was amazing. It was as though rational decision-making was returned to my interactions with food. Instead of *needing* that food, I was just *wanting* that food: an impulse I had some control over.

Unfortunately, that doctor turned out to be a bit flaky. She went on "vacation" and didn't come back for MONTHS. That, of course, derailed my progress and eventually I gained about 10 pounds back. A few months later, I tried to start back up with this doctor only to have her disappear again after a couple of months.

Then, this summer, I decided to try to find another doctor and get back on the prescription. It's clearly the only thing that's worked for me. I headed in for a couple of appointments only to have the reality of keeping clients happy collide with getting to appointments.

When I missed my last one, I sat back to do some reflection. See, while the phentermine worked for me, it has always bothered me that I needed to be on a prescription in order to have control over my weight and appetite. I was never quite sure what the final exit strategy would be when I reached my target weight.

Obviously, I can't stay on that kind of prescription as a long term solution. That's why the last few days have been so exciting for me. I have been unable to finish any of my last 4 meals without any surgery or other drastic measures. The results I'm getting have every possibility of being permanent and for the rest of my life.

Read the rest of this entry »

Software Development and Alchemy

Dec
17
2007

Photo: Stian Martinsen

In several conversations recently with other software developers (yep, those are just as exciting as your wildest dreams) and their frustrations with the process, as implemented in modern corporate America, the same analogy kept popping into my head.

More and more, I feel like the things that businesses are after in their software development are similar to medieval alchemy. For 2500 years, the entire field that eventually became chemistry was obsessed with 3 basic questions:

  1. How can we change lead (or other metals) into gold?
  2. How can we create an elixir that will cure all diseases and prolong life indefinitely?
  3. Can we discover a universal solvent?

All of these strike us as goals that weren't even attainable. Yet, the underlying desires often did get met when the focus shifted to what eventually became modern chemistry. By dropping the focus on the single, universal solution and just figuring out how to treat individual diseases or how to dissolve individual compounds or just fundamentally understand chemistry, many advances did happen.

Many/most of the diseases that the alchemists sought to cure or treat are under control today. There's very little in the world of chemistry that we can't tear apart and we can do things like convert coal or corn into one of the most sought after substances on earth: liquid fuel for transportation.

One of the consulting firms I worked with had a project manager that was constantly pushing the developers to find and use "automagical" tools to build our solutions. What he was after was the kind of IDE or tool that, with a few clicks, would just spit out a nearly complete solution.

That would, of course, result in the sales force being able to sell expensive solutions that could be fulfilled in minutes instead of days and weeks. It didn't matter how often I pointed out that, as a consulting company, if our clients' solutions were so simple that a few clicks and config options could solve them, they wouldn't bother coming to us: they'd just buy the software themselves.

This same person wasn't very excited about things like loosely-coupled systems and/or Service Oriented Architecture unless they also came with wizards that let you choose 4 or 5 options and they'd just spit out a fully-realized application. Yet, those approaches keep working for me as a way of looking for patterns in companies' problems and solving them quickly and completely.

Instead of looking for the tool that spits out C#, PHP, ColdFusion and Ruby, I'm looking for repeating problems like managing queues of objects to be processed. Once you have an approach to that general problem, a good developer can probably implement it in whatever language they're most comfortable with.

That's due, in large part, to the fact that the bulk of the work as a software developer is NOT in typing in the text of the programming language in question. Douglas Crockford said in one of his Yahoo video lectures something along the lines of: a developer could probably type up all of their code for an entire year in a day or 2.

Yet, many of these automagical tools really only seem to automate the stuff related to typing code, not for solving problems. And, like I said a couple of days ago, if you're in the consulting game or just looking to stay employed as a developer, the money and jobs are where the problems are.

That's why, when I hear someone looking for that quick and easy tool that will "just" take care of it this afternoon, I tend to interpret it as, "Can't we just change this lead into gold instead of getting real gold?"

« Older Entries  

J Wynia

For better or worse, I'm the guy who runs things here. I'm a web consultant, software developer, writer and geek from Minneapolis, MN. This site is a fairly wide cross-section of the things I'm interested in and enjoy writing about.

Oh, and if you happen to be looking for hosting for your Subversion repositories or just web hosting in general, take a look at Dreamhost. It's what I use for Subversion and your signup helps me out.

Feeds and Links


www.flickr.com
This is a Flickr badge showing public photos from J Wynia. Make your own badge here.

Search


Pages

Archives

Computers Blog Directory
© 2003-2009 J Wynia. All original content is licensed under the terms of the Creative Commons Attribution license unless otherwise noted. Content from other sources is licensed under its original terms.