Time To Reinvent More Wheels

At CascadiaJS my friend Nick Niemeir gave a talk about how he ended up reinventing some wheels for a project a work. He went further to say that everyone should feel encouraged to go forth and reinvent. It is more than just learning. Sometimes you build something better, whether that is better for you or better for the more general case.

I’ve recently started picking up Rust. It is an interesting programming language with concurrency as first a first class citizen. It has borrowed from several languages to make that happen and it is quite enjoyable. If something I’m building is just for myself, I will likely write it in rust.

So, lets combine the first and second paragraphs. I’m finding that there is a fair amount of technology that is interesting to me, that I have never written one of. Last weekend I started in on an SMTP server in rust. I already have plans for an AMQP server and as well as a Pub/Sub server. The intent isn’t to come up with something that is better than existing tools. But more understand the problems involved and work through them.

I start out with grand plans, then I don’t always follow through. With that in mind, I’m going to set a goal to reinvent at least 6 services in the next year. All using rust as their primary language so I can feel it out in various environments. SMTP, AMQP, and Pub/Sub are definite. Other ideas I have, but aren’t solid yet, are an IRC server, monitoring server, DNS server, or maybe a key/value store of some sort.

I’m not the only one venturing into this territory, most inspiring to me is the #infoforcefeed and #stackvm crews on freenode. Between them there is are a lot of folks who’ve already reinventing all sorts of wheels together. I look forward to being more active in my participation in these communities.

 

Negativity in Talks

I was at a meetup recently, and one of the organizers was giving a talk. They come across some PHP in the demo they are doing, and crack a joke about how bad PHP is. The crowd laughs and cheers along with the joke. This isn’t an isolated incident, it happens during talks or discussions all the time. That doesn’t mean it is acceptable.

When I broke into the industry, my first gig was writing Perl, Java, and PHP. All of these languages have stigmas around them these days. Perl has its magic and the fact that only neckbeard sysadmins write it. Java is the ‘I just hit tab in my IDE and the code writes itself!’ and other comments on how ugly it is. PHP, possibly the most made fun of language, doesn’t even get a reason most of the time. It is just ‘lulz php is bad, right gaise?’

Imagine a developer who is just getting started. They are ultra proud of their first gig, which happens to be working on a Drupal site in PHP. They come to a user group for a different language they’ve read about and think sounds neat. They then hear speakers that people appear to respect making jokes about the job they are proud of, the crowd joining in on this negativity. This is not inspiring to them, it just reinforces the impostor syndrome most of us felt as we started into tech.

So what do we do about this? If you are a group organizer, you already have all the power you need to make the changes. Talk with your speakers when they volunteer or are asked to speak. Let them know you want to promote a positive environment regardless of background. Consider writing up guidelines for your speakers to agree to.

How about as just an attendee? The best bet is probably speaking to one of the organizers. Bring it to their attention that their speakers are alienating a portion of their audience with the language trash talking. Approach it as a problem to be fixed in the future, not as if they intended to insult.

Keep in mind I’m not opposed to direct comparison between languages. “I enjoy the lack of type inference because it makes the truth table much easier to understand than, for instance, PHP’s.” This isn’t insulting the whole language, it isn’t turning it into a joke. It is just illustrating a difference that the speaker values.

Much like other negativity in our community, this will be something that will take some time to fix. Keep in mind this isn’t just having to do with user group or conference talks. Discussions around a table suffer from this as well. The first place one should address this problem is within themselves. We are all better than this pandering, we can build ourselves up without having to push others down. Let’s go out and make our community much more positive.

Roasting Broccoli

While trying to eat better, I’ve found a method of cooking broccoli that is delicious. Cooking is something I enjoy quite a bit. These days I’ve been focusing on simple dishes to improve the basics of my cooking.

This broccoli is some of the best I’ve had in my life. Only method I have found that can compete is stir fry. But, I don’t always want to slice up a bunch of veggies and put sauce on it all.

Ingredients:

  • 1 head of broccoli per person
  • 1.5 cloves of garlic per head of broccoli
  • olive oil
  • lemon juice (fresh or bottled)
  • salt and pepper

Start by preheating your oven to 425F (220C). Slice the florets off the head of broccoli, leaving them on the larger side. Place into a large bowl, it needs to big enough to toss the broccoli in. Slice the garlic up and toss it into the bowl as well. Drizzle some olive oil on it, as well as some salt and pepper. Toss until lightly covered in oil.

Spread the broccoli out on a cookie sheet, don’t wash the bowl yet. I try to make sure they are all on their sides. Place in oven for about 15-20 minutes, or until the broccoli flowers start to brown a little. This step may be extraneous, but I shake it up half way through.

Once the little flowers have started to brown, take the broccoli out and put it back in the same bowl you used earlier. This is so you get some fresh olive oil to go with the cooked stuff. Add the lemon juice, toss again, then serve.

The lemon juice at the end is what makes this dish. It makes the broccoli taste sunny, and the browned flowers add some texture and a unique flavor.

PDX Games.js

Dave Justice suggested that we have a three.js hack day. I decided to one up him and go for a generic games written in JS hack day, thus PDX Games.js was born!

Currently all the details are tentative. I need to clear it with our office manager as well as work out food/drink sponsorship.

The reason this is exciting to me, is that I have been intending to get back into game development for years. If PDX NodeBots Day is any indicator, a hack day inspires me greatly to get into something.

My project idea: I have attempted a few times (back when I was a very young developer) to build a clone of Final Fantasy Tactics. I’ll be setting out to do this, on the day of I’ll be spending most of my time building the graphics engine for the combat board. If I have spare time, perhaps I’ll spend time on menuing and other things like that. My end goal is less a full clone of FFT but a FFT-like game that I’ve built myself and have running with modern graphics and such.

The hack day, regardless of the specific details, should be a ton of fun.

New House!

Lots of things in my life have been changing lately. I’ve been exercising quite a bit more with a trainer, my company opened an office, and finally I am moving in with my girlfriend (who is the prettiest and nice person (Hi Eva!))

I have lived in SE Portland for nearly 3 years. I’ve explored this area a lot, especially as I’ve changed jobs and trained for events. I love SE and I’ll miss it a ton. I’ve had the pleasure of living with the best roommate ever the whole time I’ve been in SE. I will no longer be coming home to a wiggly, snorty, happy pug. No longer right next to the Springwater trail.

But, the things I am giving up are being balanced with what I am gaining. I’m taking my relationship with my girlfriend to a new level. I’ll have my own office as well as a garage for working on my bikes. I’m coming back to NE, it has been several years since I’ve lived there, and last time I did both the neighborhood and I were very different.

NE has grown a bunch of new places to hang out, bike paths, and lots of my friends have moved there. I was at a far earlier point in my career, leaving me with very little money to explore anything except for the parks. Finally, my mindset these days is far healthier. I am no longer using video games and hacking as a way to escape life, I am instead embracing life in so many ways.

In short, I am excited for the change, but it is bittersweet.

The Minimap

I’ve spent my last couple games working on actually looking at my minimap. I don’t have any rules I am following to do this, just whenever I find myself with spare time, I am look at the minimap.

The first thing this made me realize was that I wasn’t scouting or getting any data about my enemy. As Protoss I get observers, I am now making a few and tossing them at various points on the map so I can catch when the enemy is moving toward me, and which base they are aiming for, as well as catching drops as they leave/approach.

A result of this has allowed me to catch drops WAY faster. See it coming and warp in a few stalkers to deal with it. As well as repositioning my army to get an more advantageous approach to kill their army. I even caught a build that would normally destroy my build, so I could tech switch and do so major damage and prevent them from doing serious damage.

Long story short, it turns out the minimap and scouting are very important. This has had me destroying every silver I play against and hope this will be the wave I ride into Gold.

Have I Blogged Yet?

This afternoon I decided to write a site that would let me track whether I’ve blogged in the various categories I have yet. http://haveiblogged.herokuapp.com/ is the site. The background for a category is red if I haven’t blogged yet, and is green if I have!

This is part of my new commitment to blog at least once a week in each category. I complain that my writing isn’t great, and I pretty consistently think of topics I could write about. This should drive me to actually put those thoughts and ideas out there in the blagosphere.

I’ll be putting up a post discussing the how I wrote the site soon in order to fulfill my programming category.