I've been using Google Maps at home to find out how long it would take to get from one place to another before I actually do it.  Route planning is really essential to arriving on time, and planning ahead for traffic, when possible, is a useful way to avoid being late for that important meeting or missing the bobblehead give-away at the ballpark.  But it's with this use of Google Maps that I am frustrated, in part because it could do more, and in part because it seems like some features have been omitted in Google's latest Maps re-build.

My first issue is with a new feature that is actually something I've been longing for on Google Maps for the longest time.  I can now create a "Home" address and a "Work" address that reflect those locations, so I no longer have to enter the addresses for those places instead.  This is so handy, since (let's admit it) when Google knows everything about me already, it seems stupid for them not to use that information to make my life easier.  But it has one quirk that I'm not easily able to figure out.

Google Maps makes it conspicuously difficult to use this new feature.  If I click the "Home" entry to use it for directions, it starts edit mode to let me edit my Home location.  This is not what I want at all.  I have yet to figure out a key press that will select the Home option as my starting or ending location.  Everything I've tried turns it into an editable field instead.  I end up having to type "Home" into the box and press enter.  And while this is significantly more convenient than the prior alternative of typing out my own whole home address, it's significantly less convenient than just clicking on that option in the list.  All the while, I have the eerie impression that there's something simple I'm missing in this process.

The next thing that bothers me is that there is no way that I've seen to include directions for multiple waypoints.  It's possible to drag an existing route line to intersect with an additional location, but there seems to be no way to add an address to the list of waypoints.  Sometimes I don't know where the location of the waypoint is on the map, or would prefer to accurately target a specific place.  Google Maps doesn't seem to allow for this option.

Weirdly, I seem to remember a button in the old interface that would allow you to insert waypoints into the directions. You could then drag the waypoints to reorder them.  The new interface seems to only have a button that swaps the starting and ending addresses.  If I want to have two sets of directions from A to B then from B to C, I need to open two browser tabs and do separate searches.  This seems oddly inefficient to me.

Now, let me complain about the driving versus walking versus transit directions.  Google Maps very cleverly can combine walking and transit options in their directions.  This is great.  But it won't combine driving and transit directions at all.

As a basic example, assume I want to take the train into Philly.  I would have to get in my car and ride to one of the close Septa stations to catch the train.  From there, I would take the train into the city, and probably have to walk from the station there to my ultimate destination.

Google Maps will only show me bus directions on either end.  There are some times when I don't want to take the bus, particularly on the home side of the travel, but usually anytime! It seems like it would be a really good idea to be able to select any transportation-unique range of the route and convert it to a different type of transportation.

While I'm thinking about it, here's something I dislike about GPS/navigation in general: I shouldn't have to hear navigation out of my driveway.  Every 30 feet, the GPS will tell me to turn onto roads in my development that I'm familiar with.  It would be great if I could define a radius away from my house inside of which it would not give me directions. Instead, it would say "proceed to the intersection of 401 and 113", and from there start navigation.  Or, it would be great if I could mark a few well-known, well-traveled locations from which the GPS could start.  And if the directions don't pass through any of those locations (or some button is pressed to override it), then it would just do what it's always done and give complete directions.

Finally, where did Street View go? If you search for an address, you can click on the address' Street View image to go into Street View mode.  But in the old design, you could drop the little Street View man onto any blue-highlighted road, and see the Street View for that location.  To do that now, like if I see an interesting thing from "Earth" view and want to check it out from the street level, I have to click on the map and hope that there's a Street View image to click on to get to Street View.  I suppose this is a smallish change, but it's a totally different way of using the map, and one that doesn't feel intuitive to me yet.

Overall, I like the new design.  Some of the new features are pretty neat.  I suppose I'll just have to get used to the changes that merely bother me, and hope that they improve the usability on the ones that are more severe.

There are a ton of these things popping up these days, these small-footprint flat-file "CMS" tools, and I'm here to tell you that they are not content management systems.

Yes, they manage content. I suppose. I mean, you could say they manage content by allowing you to organize your own content in some pre-determined file structure, if that's what you mean.  If you consider that "content management".

If you couldn't tell, it sticks in my craw that these guys come along and write a 200-line "CMS" tool, slap a pretty one-page site design on it, then announce it as a new product. Mostly, they seem to be produced by designers that want to show off their "see? I can write code, too" cred (um, usually not), or as a side project by some developer that just wanted to hack something quick together and never intended this tool to be anything more than something used at home for himself.

Why aren't these tools real CMSes? Well, any fool can argue the semantics, that a CMS is a system that lets you manage content, and that any tool that manages content in some way is a CMS. Sadly, it's just the fools doing that. Even worse, often the people writing these little tools are under this same misconception.

There are a few primary characteristics of a real CMS, the most important one is authentication/authorization. It should somehow be possible to grant and deny create/read/update/delete access to users. This is not just for writing content but also for reading content. The CMS manages who can read and write the content that is being managed. This is the management part of the CMS, which is (for whatever reason) being completely overlooked to put the overemphasis on the content component. Without authentication/authorization, your system is merely a content publishing system, not a content management system.

An example of a good familiar CMS is Drupal. It has the ability to assign grant permissions to users on a granular per-content-unit basis. Habari has similar capabilities. Even WordPress has a rudimentary password-based system for restricting access to posts built into the core offering. Most static-site tools would implement write permission based on... what? Write permission to a git repo? Or execute permission on a server process? That permission is not really part of the tool, is it? That's not management.

There are a few other things that bother me when people get all gushy about some new static site building tool. One is localization. Granted, these tools are likely only ever going to be used by one person, so why would you really need to translate the tool into a language that is not the same as the coder's native tongue? Why would you bother to provide authors tools to translate internal and theme elements to their own language? Oh, I suppose I answered my own question there.

A good CMS has on-site search capabilities. This goes hand-in-hand with faceted data, which is something that, apart from the simplest blogs, I've implemented on practically every site I've constructed.

Sometimes you need to say "the category of this content is X" so that when you want to look for all of X, the related content is returned. Providing metadata for your content is something that a good CMS does naturally. Constructing extra metadata fields only for specific types of content is a common task for which a CMS is required. It may be possible to add faceted metadata to static content, but the ability to relate content elements to each other implies a tool - this is not something that would be easy without such a tool.

Some of these static site creation tools are basically the same thing as a SASS processor. It watches a directory for changes, and when something does, instead of converting SASS to flat CSS, it converts markdown (aye de mi!) into flat HTML. I wouldn't call a SASS processor a CMS, either, so why would I give these tools that much credit?

I guess my concerns are fairly petty, and potentially entirely semantic, but nothing irks me more than spending several years inventing and improving a true CMS to have someone come along and announce, "I just re-invented the CMS, so you can throw out your old, clumsy one." Not only does it have no features, but it forgot some of the truly basic ones.

I don't begrudge anyone who would switch his own simple mostly-static-already blog to one of these static site tools. They can be useful for exactly that job, and throw off the chains of maintaining some database and the hosting thereof. But please don't be under any delusion that these tools are CMSes, and if you write one, be sure you don't over-imply its non-existent CMS characteristics. I simply can't wait until my next client tries to get me to build a content-heavy site in "this new CMS" he's heard about.

Watching TV is a fast accomplishment. I can easily be a good TV watcher. I can sit down, watch a show, and be done. I can even have an opinion on what I watched and be an expert. So easy. Watch a season, watch a complete series; accomplished. Nothing like TV for a quick win. Maybe this is why people fall so easily for TV.

I want a quick win that isn't superficial. Brewing beer has been like this for me, I think. It's easy enough to get to success. Mastery is another story, but practice brings it all within reach. It's hard to brew beer all the time, though. Frankly, I'm tired of drinking it all.

Quick to start, long to master, simple to continue. What new skill? Hmm. Maybe I should go with something merely random, just to prove it can be done. What need do I have for something even interesting when the goal is merely accomplishing something? Knitting. I could learn to knit.

"Owen, what do you do in your spare time?" "Well Frank, I'm so glad you asked. Knitting! I so enjoy the frequently mindless weaving of yarn to produce a garment or throw." "Fascinating..." "Fascinating? No, not really. Just something that produces some physical evidence of something accomplished."

Life-based merit badges for mundanity. TV Watcher level 1. Sounds fascinating.

The kids are basically home on their own this summer.  Nana is there to keep them out of my hair three days a week, but apart from that, they're on their own to figure out what they're going to do all day, be it outside or playing games indoors.  But this undirected summer "activity" selection more often than not ends up with the kids on the couch staring at the screen, with or without a game controller in hand.

This summer, we wanted to give them something to focus on, maybe attract their attention and learn something.  We wanted to provide them a direction for discovery, and not necessarily some mandatory activities to try to force them to enjoy.  Obviously, there are chores to complete.  And there are some activities that are mandatory for this discovery, but I think we've worked out a good plan.

Every week, we choose a topic. On Monday, Berta or I write up a bunch of questions, then later in the day the kids go to the library and research those questions. The intent of the questions isn't necessarily to obtain answers, but to get the kids looking into things that they wouldn't necessarily look into themselves while at the library. To pique their curiosity.

Then, each day of the rest of the week, they do something we've selected that is related to the topic and to the things they uncover in their research. All of this culminates in a weekend trip to somewhere fun (and educational) related to the work they've done all week.

The first two weeks of their summer have been about producing video.  I sent them to the library with some questions about lighting and some terms that they wouldn't know.  They looked up some things and checked out some books.  We now how a green screen in our basement, made of some cloth from Walmart and pinned to the wall in front of some lamps to cut out the shadows.  Abby's been using Sony's Movie Studio on her computer to assemble all of the clips and photos that they've been taking into some coherent video that they'll post online to mark their video "week".

The video segment was cut up a bit by some trips to the beach (which supplanted my weekend plans for a trip to the QVC studio or WHYY), so many of the photos and video they have to work with will include the bay/ocean.  If they are able, they'll produce a video each week of what they did that week during the summer, keeping a kind of video log of the whole summer's progress.

This week is food week.  The kids did a great job researching Berta's questions yesterday, and spent some time today sampling and comparing some of the spices and herbs from our cabinets.  Berta left out two loaves of banana bread last night - one using a Food Network recipe, the other using a Martha Stewart recipe.  The kids have been comparing.  Tonight's "homework" is to think of how to use the broccoli from our raised-bed garden in a dinner.

I've got designs for a physics week which would hopefully involve some amusement park science. There's an art week on Berta's schedule, where the kids will sample a bunch of different media for producing art. (I'm personally anxious for clay.) I'd really like to do a games week, where the kids play a bunch of different kinds of games - board, card, dice, role-playing - and then design their own game in the end.

All of this intermingles with their regular camp and grandparent visits.  There are only 13 weeks in summer, and we're going to have enough ideas that the kids will never say "Dad, I'm bored".  So far, so good.  I'm looking forward to the rest of the summer activities.

I've been thinking lately about what my ideal, realistic job might be, and what concessions I might make to get close to that job.  I'm going to just spew those ideas here, in no particular order.

My ideal job would have a corporate office close to home, and have the ability to work from home on days when it would be preferable to have focused solitude away from the office or necessary to participate in home activities, like A/C installation or other home maintenance. "The office" would be in a building that is not a soulless corporate center building filled with sterile cubicles and Ikea-Lego desks, but would have some character all its own -- something you would enjoy showing off to family and other people in the industry, who would envy your daily environs.  It would be a place you would look forward to going.  And yet, the company would be flexible enough to let you work completely remotely for months at a time, for whatever reason.  As opposed to the sentiment I hear a lot where people who work remotely come into the office and learn to like coming into the office, I'd like the sentiment to be more one where the office is just one of many potential tools that builds team cohesion.

The team would be a diverse but allied crew of developers, designers, marketers, and managers. No position would be valued more than any other, because they would all be essential to the operation of the business day-to-day.  The environment would be casual, perhaps with optional "dress-up Fridays" (note the contrast to "dress-down Fridays"), emphasizing that the work product is more important than dressing for a role. Employees would not be encouraged to bring their pets to work, but a co-worker's love of a dog or cat or bird or marmot would be respected by his/her peers.

It's important to me that the team gels socially.  There has always been that separation for me from people who really like sports, which I can take or leave, but don't really get excited about at all.  I'm not looking for everyone to want to hang out all the time, but it would be nice if the people I worked with were mostly people that I would want to spend or enjoy spending time with outside of work.  Ideally, there would simultaneously be enough diversity in interests to keep things interesting, but enough similarity in interests to prevent alienation.

I don't really want to put in my time at work and then go home.  I'd like to believe in the work that I do. That certainly does not mean that I'd want to "do good works" all the time. There's a time and place for philanthropy and charity, and while I recognize that there are companies that focus on doing good works, that's not precisely what I'm interested in.  I'd be interested in any type of work where I could go home at the end of the day and feel good about the work I had done.  That could be contributing to a video game, or making it easier for business people to collaborate, or even enabling the transfer of large sums of money between companies. I suppose there is the care in the back of my mind that I would prefer the companies with which I do business to be "good", but I wouldn't rule out anything but obviously sleazy partners. I want to do "good work" not necessarily "good works".

As to the work itself -- Maybe it seems strange, but I'm not really picky about that.  I'm actually more interested in the technology stack that gets me there, and the ability to have something new and advancing to work with often enough that I don't get bored by drudgery. The web, desktop, mobile... It doesn't matter to me.  The product itself - as crazy as it may sound - isn't too important to me, as long as it's interesting enough to hold my attention and ultimately make money for the company.  In fact, the more interesting-sounding projects from a "hey friend, guess what I work on!" perspective tend to also have the characteristic of being the least exciting to actually work on.  While working on a fancy project ("I make the special effects software that they used to make the latest Hollywood blockbuster!") might be fun to tell friends, it might also be less rewarding from my "good work" perspective ("Oh great, more matrix math in the CPU...") than something that seems more mundane to an outsider.  It needs a good balance.

In terms of technology, where I am right now is working in a lot of PHP.  What I'd like though, is a company that understood a need to transition from PHP (maybe not immediately) to something more modern and/or upcoming as a team.  Have everyone on the team learn Ruby or Python or node.js all at once and get good at implementing it together, as a team.  More mobile would be good. Yes, some employer should teach me to write native mobile. But really, periodically evaluating what technology the company uses introspectively and encouraging employees to contribute to any decision for change is something very attractive to me.

The company would emphasize doing things well over doing things quickly.  The marketing and sales people would understand development at least enough to do their jobs well and respect both the customers and the developers, which has been a problem at places I've worked in the past.  Development itself wouldn't live and die by best-practices (there's a handy and quick way to kill innovation), but discover a reasonable process that they'd be proud to introduce to new hires who are familiar with more traditional methodology.  This is not to say that some emphasis wouldn't remain on speed, just that it would be pragmatic and tempered by process, to adequately address things like technical debt and scalability.

While I appreciate the rigor of a positive work-life balance, the 9-to-5 workday does not resonate with me as a way to produce the best work for work I love to do.  Development, as much as it is a rigorous and meticulous practice, is actually incredibly creative.  It is sometimes difficult to convince people that staring blankly at a monitor for a couple of hours to sort out a problem in my head truly is hard work.  Sometimes, staring blankly isn't the best use of time, and it's rather better to shake the cobwebs out with some completely other distraction.  This is where the Foosball tables come from.  This is why there are coin-op consoles in some good development studios.  But the hours that you work can make a big difference, too. I know I'm more "business-productive" at certain times of the day.  I know that I'm worthless to put in front of the computer at other times of day.  If I have to worry about putting the kids on the bus and then rushing in to the office, that's stress that work should not cause in me.  These ranges of time shift throughout the year. Having flexible and yet reliable work time is really important, not just for my happiness but for company productivity.

What about compensation and benefits?  It would be nice to have a health plan available, even though Berta's does well for us. A retirement plan, even a simple one, would be useful. Vacation is a big deal for me, since working from home has gotten me into a habit of never feeling like I can take or deserve one even though, after two years on my own without one, I think I desperately need one. Pay is important, when it comes down to brass tacks. I've looked at what a developer of my experience makes in my area, and I think I'm worth that salary -- I'm currently billing out hourly at well beyond that rate. I think of equal importance to all that is the ability to improve the situation.  At many previous positions there have been no reviews and no raises even for general inflation. It would be nice if that was just part of the deal - no questions 3%/inflation per year, within the company's ability to do so, with opportunity for bonuses based on performance - without having to beg for it.

A lot of these concerns seem like places where a worker could take advantage.  I think when I present these ideas to prospective employers, that's how they hear them.  But it's not about trying to pull one over or get something for nothing.  When it really comes down to it, I want to provide my best work.  These conditions are what produce that best work.

So.  Given that my "dream job" doesn't exist, where am I likely to trade off and what would I trade for? 

I could probably live with a longer commute.  Most people commute longer than I do (since I work from home, currently).  Maybe it seems strange, but I scoff at the idea of having to drive 30 minutes to get to work.  It seems excessive to me.  Plus there's gas and car maintenance to think about, especially if I'm driving every day.  There's also the issue of a commute becoming dangerous in inclement weather, which has been a perplexing problem for employers to understand in the past.  ("I'm in the office. Why aren't you in the office?" "Maybe because I'm not as willing to stupidly risk my life as you to get to your cube farm?")

I could probably live with regular hours.  It's tough because right now I have to get the kids on the bus in the morning.  Riley's too young yet to be responsible for this himself, alone.  I don't really have any reliable recourse for the kids if I don't do it myself.  If my commute for a new job would require me to leave the house before 8:30, then that pretty much rules that job out.

I suppose I could live with having to replace my entire wardrobe.  Berta would probably approve.  I'm a jeans and t-shirt guy.  Not "ratty t-shirt", but "humorous print t-shirt". (See also: Woot!) In most cases where I must impress someone with my clothes, I'm not going to do any justice to the interaction with what I say, either.  But hey, if everyone else is doing it, sure, I'll blow a thou' on some new khakis.

I'd easily give up the charismatic office for a good, friendly, competent team to work with.  I'd give up Foosball (really? Foosball?) and the like for a manager that understands the creativity that is sometimes required to do this work.  I'd allow for even a non-existent development process as long as the desire and intent to develop and apply one existed.

Remote work is hard to give up after nine years.  Companies should really consider not whether they'd allow remote work, but how they will eventually accommodate remote workers. The price of gas is an issue.  Getting the best workers is an issue.  I see the benefits of face-time, but even for teams that are always completely on-site, the tools used for disparate teams are an advantage.  Why not get started early?  Be lithe.  Anyway, I suppose I could always work in an office, depending on how far away it is (read: how much of my life/free time is drained by commuting to your remote location).

The trade-offs for these things are few.  More pay?  More vacation?  Is an employer willing to pay me for a full 10-hour day on a 8-hour day job with a 1-hour one-way commute?  Someone should compensate me for that time, no?  Maybe that's built into the salary.  It seems... unequal somehow, to trade being willfully strapped into a moving prison for cash.

I also wonder if I'm missing or overlooking anything. Some of the perks here have the potential to be pretty great. And realistically, I know plenty of people who aren't in a position to demand the conditions that I'm even considering as "standard", so I feel plenty privileged. I mean, I never forget when I was living in Johnstown above the barber shop, working at Little Caesar's and ditching the landlord because I wasn't making enough to cover rent.  I've been there.  I am appreciative.  Perhaps even some of these things I consider negatives are actually positives in disguise.  I could certainly stand to dress better.

I suppose now that I've gotten into words what I'd love to work at, I should determine what each of my concessions is worth to me, in terms of time or other compensation.  Then maybe I can use that to figure out what I want to do with myself, overall.