Browse > Home

| Subcribe via RSS

My Minecraft Home Base Tour Video

December 24th, 2011 | No Comments | Posted in Code

My Minecraft Home Base

This is the first of hopefully many videos I’m going to make about my adventures in the land of Minecraft. I hope you enjoy, it’s my first time making any videos like this.

June 16th, 2011 | No Comments | Posted in Personal
“I wish in the past I had tried more things ‘cause now I know that being in trouble is a fake idea.”
Chris Onstad, Achewood creator (via eudaimonist)

Job Title

March 29th, 2011 | No Comments | Posted in Code

 

Job Title

 

hehe

Patio11 says Hello Ladies

March 26th, 2011 | No Comments | Posted in Business, Video, Work

Patio11 says hello ladies – Spontaneous Evolution.

A great (and short) video from a great coder about selling software to women. While the talk is about women, really the larger ideas are about anyone.

I’ve been thinking about these sorts of ideas for awhile and I’ll have a post on it soon.

Merlin Mann: Scared Shitless

March 1st, 2011 | 1 Comment | Posted in Art, Personal, Work

Sheesh, pretty much everything Merlin does blows me away in some way or another. Even without hearing the talk that goes along with these slides he succeeds in moving me in a very real way that few other writers do. You should listen to his podcast, follow his blog, and keep up with his tweets (which are more of an acquired taste but once you get on his wavelength frequently inspire me and/or make me laugh out loud (for real, not in a LOL sense)).

File uploads with CXF Multipart form posts

February 19th, 2011 | No Comments | Posted in Code

Now that the title of this post has scared off all non-technical readers of my blog (sorry Mom! :)) I wanted to come back to hopefully regular posting with a bang.

I’ve been working a side project that involves a REST web service. I needed to upload a file along with some identifying data and for the life of me I couldn’t figure it out. I could get files to upload with a PUT or send the data with a POST, but couldn’t do both in one call. I finally got it and I want to keep it here since finding full examples for CXF stuff isn’t easy.

First, here’s the interface for the method:

@POST
@Path("/stuff")
@Produces("application/json")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String doStuff(@Multipart("id")Integer id, @Multipart("data")String foo, @Multipart("image")byte[] image);

The @Consumes annotation with the @Multipart annotations on the parameters is the vital bit. These allows you to just grab the parameters in the implementation and not mess around with getting the Multipart Attachments and all that.

@Override
public String doStuff(Integer id, String foo, byte[] image) {
}

I’m sending the file with Android, using the HttpClient api.

HttpPost request = new HttpPost(url);
 
MultipartEntity mentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
ByteArrayBody imgBody = new ByteArrayBody(imageBytes, "image/jpeg", "image");
mentity.addPart("image", imgBody);
 
//add headers
for(NameValuePair h : headers)
{
    request.addHeader(h.getName(), h.getValue());
}
 
for(NameValuePair p : params) {
    mentity.addPart(p.getName(), new StringBody(p.getValue(), "text/plain", Charset.forName( "UTF-8" )));
}
 
request.setEntity(mentity);
 
executeRequest(request, url);

This is nice and simple, and it works fine for me. Hopefully this will be helpful to you too if you’re like me and Google this issue a hundred times. :)

How I Got My New Job

October 10th, 2010 | No Comments | Posted in Code

As the title of this post suggests, I’ve landed myself a new job. If I may say: whoohoo! The road to this job has been the hardest I’ve ever gone on and I wanted to lay it out because it’s not just the typical “Who you know” story like some of my other jobs have been.

When I finally decided to look for another job, I aimed high. My brother-in-law put my resume in for Google, even though without a degree I figured I’d never get in there. I did it mostly for the interviewing experience, which is a very good thing to do. Interviews (phone or in-person) are tough and the more experience you have, the more relaxed you’ll be. I put my resume in to LinkedIn, Yahoo, Netflix, Zynga, Salesforce; a bunch of places I knew had strong engineering groups where they use Java and where I would learn a lot. Not having a degree hurt more than I thought it would. I thought in 2010 we were past everybody having to have a degree but I didn’t even get a call back from a lot of places, even with a number of years of experience. I ended up having phone interviews with a couple of places and moved on to 2nd level interviews with 1 or 2 I think.

My main problem I think was lack of breadth of experience. I have 10+ years programming, mostly in Perl. I’ve spent the last 3 or 4 years doing Java but at an insurance company doing internal applications and integration work. Most of it is various flavors of “Take data from System X or File Y, put the data in System A or write it to File B”. It’s been fun and I’ve certainly learned a lot, but not about a ton of different things. A lot of people wanted specific experience with Spring or Hibernate or whatnot and learning on the job doesn’t really fit the bill. Learning on the job is mostly how I’ve learned and while I think I’ve been very successful doing that, it does leave gaps in your knowledge where you haven’t had to use some specific technology and it does take time. I set out to fill in the gaps as much as I could, going through videos on algorithms from ArsDigita University (highly recommended) to reading more books. But in the end, I knew I just wasn’t up to the Senior level most companies seem to be looking for. That’s another question I had, how can companies only hire senior people? Don’t most places need or want people at the middle level? People who can get the job done but just don’t have the experience aren’t given much opportunity at big tech companies it seems.

During the early stages of my search, I had applied to a company in San Diego called Awarepoint who were doing very cool things with wireless networks and Java. I grew up in San Diego so this seemed perfect. When I actually got my resume together for them, the position was closed. I was disappointed for sure. A few months went by and I looked through a Who’s Hiring? post on Hacker News where people just posted positions they were looking to fill. I searched for Java and lo-and-behold there was a post by Awarepoint! I was prepared this time and sent my resume immediately. The poster was a member of the engineering team. We talked on the phone and he set me up with more phone interviews with various people. A little while later, they actually flew me out to San Diego for a day of in-person interviews. This would be a pretty big move so I interviewed them as much as they did me. I got a really great feeling from the team and pretty much knew this would be a great fit for me. They were looking for a mid-level person and with my limited experience, I know I’m a strong mid-level guy at this point. Being honest with myself about that really helped me understand that I wasn’t going to get some of those Senior positions and take some of the sting out of those rejections.

I knew I wanted to work there and I got the feeling they wanted me to come on board. I got very excited about the possibility of moving back to San Diego and working for this great company. For various reasons, my position in limbo where they kept saying they wanted to hire me but couldn’t actually make it happen lasted awhile. I knew I’d be moving if they made an offer but couldn’t tell my current boss in case it didn’t go through. This was a pretty stressful time. I got further word from Awarepoint that they wouldn’t be able to give me a firm answer for maybe a couple of months. I felt strongly enough about them that I was fine with waiting. Plus I was supposed to be running a huge project at the current job and felt better about getting that going before leaving since I was given the chance.

In the end, they were able to make me an offer after a month or so and I accepted immediately. I’m incredibly excited to be able to join such a great company (they were just named #1 Best Place To Work in Healthcare) who is doing really cutting edge stuff. The product also makes a real difference in hospitals and could very easily save lives, literally.

So in the end, the road to this job included the Java Posse Roundup where I first started thinking about a new job, the Hacker News community, this blog, and my writing on AgileSoftwareDevelopment.com (which I got because of this blog and Twitter).

I haven’t been writing here for awhile because the stuff I wanted to write about was my job hunting experiences but while I still had my old job I couldn’t exactly do that. Now that I’m moving on, I’ll be writing more.

On Books And Paper

September 27th, 2010 | No Comments | Posted in Books

There’s a big discussion going on in the comic book world about digital comics. For a lot of people the physical comic is of a piece with the art or writing. I used to be that way too, collecting many long boxes full of books over the years. Recently though, what I’ve discovered is that while I love comics, I don’t love paper. Now part of my decision when buying comics is “Do I want to take care of this paper?”

With the coming of the iPad, the digital comics world has blown up. Once upon a time comics were sold at the newsstands but switched to comic book shops selling only comics. That transition is probably about to happen again with downloadable comics. There will always be physical comics and graphic novels are here to stay, but most people will buy digital. It’s happened with music and it’s probably going to happen to books.

The question for me is, how do I feel about that? I’m not sure. I love books. I’ve been a reader since I can remember. Buying books is a special event for me. Last year I spent a couple of hours in the local bookstore Page 1 with a bunch of store credit and ended up spending $180 on brand new books. It was one of my favorite experiences of the year. I have multiple bookshelves all over my house and can barely fit all my unread books on one six-foot shelf. I’ve bought books I already had just for the cover. But a few weeks ago I bought a Kindle, the new version 3 one. And I love the hell out of that little thing. I’m reading Jonathan Franzen’s new book Freedom which I had originally pre-ordered in hardcover but cancelled and bought on the Kindle (saving a few dollars in the process). It’s unbelievable how much easier it is to carry around the 1/4 inch thick Kindle than it would be to carry a 500 page book. There’s a couple of books I’ve been wanting to read that I’ve been avoiding due to their sheer bulk. Not having to take into account the physical object means I can focus on the reading, which is what I really love. Now that I have the option, I’ll still some books if I want the physical object for what it is. But that’s what the paper is now, an option, not a requirement of the reading experience.

After a lifetime as a book nerd, I’m learning to love books without having to love the paper.

Career Thinking

April 12th, 2010 | 3 Comments | Posted in Code, Personal, Work

Both of the Java Posse Roundups I’ve been to, I’ve made some fairly big decisions about my career. Now, I didn’t even really consider my career until fairly recently. I’d had some great jobs, a couple of not-so-great jobs, and I was finally working as a professional programmer. A couple of years ago though I started thinking about what I’d like to be doing as a programmer in the future, whether I’d want to be a manager at some point, all of that stuff. At the 2009 Roundup, I’d just been reading about managers and finally figuring out that all programmer managers aren’t just wastes of space with the help of some people who had been good managers or had good managers. I realized there that I shouldn’t just sit around and put up with the bad manager I had at the time, that it was time to move on and try to find a good manager who could actually help me grow. I got a couple of good job offers but for various reasons decided it would be worthwhile to stay put.

At the 2010 Roundup, I was once again faced with seeing people doing things with their career that I want to do. I want to be learning and growing as a programmer the way a lot of Roundup attendees are. I decided that once again I would reevaluate my job and try to figure out what the best thing would be. The difference is, this time I want to figure out what to do not to escape a bad situation but to go towards something good. I haven’t decided what to do yet but I have refocused my efforts toward learning and getting better rather than just sitting comfortably.

I’ve always learned on the job and I’ve found I’m very good at that. The problem with that kind of learning is it tends to leave gaps in your knowledge since you don’t learn as much that you don’t need right then. I’m rectifying that with a renewed course of study in the areas I feel I’m missing. I’m also focusing on the quality of the work I do and the code I write even more. I don’t work for a software company so I’m a little limited in the efforts I can put forth here but now that our boss has decided we’re to run our own projects I’m definitely pushing more quality into my work and I’m prouder than I’ve ever been with my code.

Like I say, I haven’t decided exactly what to do so this blog post doesn’t have some big conclusion. My new focus is a big deal to me though so I wanted to write it here and not forget. More to come!

Roundup Thoughts

April 9th, 2010 | 1 Comment | Posted in Code, Geekery, Personal

This is a roundup of my thoughts about the Roundup, the Java Posse Roundup 2010 that is. If you don’t know, the Roundup is the yearly conference put on by the guys who do the Java Posse podcast and tech writer/speaker Bruce Eckel. If you’re a Java person, you should be listening to their podcast, no question. The conference is an unconference/open space conference/camp/etc. where it’s not about getting lectured to or watching slides but discussing topics with a group. There’s no speaker, just a bunch of smart people talking. This was my second Roundup and I very much hope it won’t be my last.

One of the best parts of the Roundup is seeing people I met and made friends with in person again. We drove up on Sunday and Bruce had a get-together for early attendees at his house that ended up being mostly returning folks catching up. It was great to see people again, even though I felt like I hadn’t spent any time away from some people thanks to Twitter.

The next day was Day 0 of the Roundup, the language dojo day. I had left last year’s Roundup with a great feeling about JavaFX and had done a little coding in it since then so I went to the JavaFX day Dick Wall of the Posse proposed. We spent the day writing a JavaFX version of OmmWriter (called ZenWriterFX) and fighting with git/github. If we hadn’t had so much trouble with git, we would have made it a lot farther but even so we made good progress. I helped a little generally and ended up doing the little bit that played the background sound for the app. Dick has since moved the project to Bitbucket so we can use Mercurial and I’m going to be participating in further development for sure. I already have some cool ideas I want to try out and I really like JavaFX.

I’ll go into the individual sessions at some later point when I can go over my notes but overall, the sessions were great again this year. I learned a lot, as always, and actually had something to say in more than a few. I do find that I like the sessions where I don’t talk as much more though. :) The Roundup attendees are all super smart people and it’s great to get everybody’s perspective and uses of things.

One of the best parts of the Roundup is the Lightning Talks. These are 5 minute talks people give on any subject that interests them, technical or not. This year there were talks about car engines, shaving, donating bone marrow, open mapping technology, and much more. The talks are recorded and will be on YouTube at some point. I even gave a talk this year! I did a short demo of the note taking system I use in my notebooks. Despite some technical difficulties (turns out Ubuntu does not like to be plugged into a projector while it’s coming back from sleep mode), I think my talk went well. I was super nervous so I rushed and forgot a couple things but people seemed to like it. I’ll have the video here when it’s up.

The Roundup is a very unique experience. If you’re expecting a regular conference or want to just blend in with a crowd it’s not for you. We don’t do technical stuff all the time (though of course if you want to, it’s up to you) and this year I did much less programming than last year. I spent my afternoons snow-shoeing and shooting a shotgun, watching the movie Vertigo, shopping, watching an impromptu demo of Scala, and lots else. It’s kind of a Geek Summer Camp, but in the blowing snow of Crested Butte, Colorado.

Like I said, I love going to the Roundup and hope to do it every year. I have a bunch of new friends because of it, I learned a lot, made some decisions about my career, and recharged my batteries to better attack the year to come.