Skip to main content

Posts

Showing posts from 2014

Upgraded to HTC One M8

I upgraded my phone from the original HTC One to the HTC One M8, which was a really clear choice because I just loved the HTC One, but unfortunately this is what mine looked like eventually: It still works, if you want it for parts ! The M8 is exactly what I was looking for. It feels familiar, like holding a softer edged version of my One that fixes a few of a rare complaints I had, mostly around the purple-tinted sapphire lens camera. This is the first time I have replaced an Android phone without being frustrated by the performance of the previous. My HTC G1 (the first Android phone) and my LG G2 X (the supposed successor flagship) were both great phones when I got them and I still have both, in various levels of “working condition”, but they both showed signs of age as newer and newer applications ran sluggishly or refused to run at all on their dated hardware. Android hardware skyrocketed for the first few years, but I think we’ve seen it taper off now, and that’s a good t...

Handmade Hero

Handmade hero looks like an amazing project. If you're a long time game developer, new to it, or develop in some other discipline I think you have to respect the goals Casey has laid out for himself here. Developing an old style game from scratch live every weeknight is both a wonderful personal project and a beautiful piece of art. Check it out!

Codex Vitae

I've come across Buster Benson's attempt at a Codex Vitae , which he got from Robin Sloan's Mr Penumbra's 24-Hour Bookstore and I'm hooked. This is an idea that has come to me on its own, and I've made some personal attempts at it. But having a name for it, seeing others pick up the idea, it makes it feel more validated and more real. I am not sure what form my own Codex Vitae will take. Will it be public or private? Will I update it ad hoc or develop some rules around when and what to update? What topics are on and off the table for it? But I've got literally the rest of my life to figure that out. A project I can't finish until the moment I die? This is kind of perfect for me.

NaNoWriMo 2014: Days 9-16

My NaNoWriMo attempt will not complete during the competition dates, but that doesn't mean I count it a failure. Most days I'm getting some words in, some days only a hundred or two and others a couple thousand. I keep at it, and I keep solving problems in my attempt to tell the story before me. I won't win NaNoWriMo, but I will finish my novel. That's the thing I care about. NaNoWriMo is a great event and I hope to win one day, but right now what it represents for me is a springboard towards my dream of finishing and publishing a novel. I'm not going to let that same inspiration be a weight that drags me down, so not completing my 50,000 words before the end of this month isn't a failure. It is just the reality of finishing this novel. The truth is, if I don't, it isn't about what I did or didn't do today. The larger factor is how rusty and out of touch I am with writing. It takes practice, like any skill, and I am woefully lacking in that ...

NaNoWriMo 2014: Days 7-8

Day 7 I took a deliberate break, as a gamble. I was feeling some strain and I needed to show myself that I can take a break when I need it, so I spent the evening watching a movie with my son ( Honey, I Shrunk the Kids ) instead of writing that evening. I decided to catch up starting this weekend, but slowly instead of trying to do enormous days that would just kill me. 2000 words a day is enough to catch up over the next week without pushing myself too hard, and I do think I can do that. I did 2200 words on November 8th, and they were good words and a scene I was happy with. I'm feeling good. There are a lot of questions about how to get through some of the "rising action" that needs to happen between now and the planned summit of my story, but I'm feeling ever more confident that I can get there. Not just that I can get there, but that I can get there through an engaging story that someone might enjoy reading. I'm really feeling good about this. So,...

I Miss The Old Google Chrome

I miss the days when Chrome felt like a window onto the Web. Google Chrome was my favorite browser for a long time, almost since it first was released. I wasn’t just buying into the Google fanclub, or at least I want to believe it was more than that. What I saw in Chrome was something that I felt was exactly right in the world where I saw the web growing more powerful and able every day. At one point I recall saying that Firefox was about how much the browser can be for you, while Chrome was about how it can get out of your way and expose the web itself as directly and cleanly as possible. I was behind this idea of a window into the web full heartedly because I thought it was the best way to promote everything the web could be. How much has this changed? Today, I’m not sure if the situation has reversed, but I am certain that my old view of Chrome is no longer something I can stand behind. Chrome has changed a lot and shifts further from its roots as a neutral arbiter of a...

NaNoWriMo 2014: Days 5 - 6

Today was my worst day writing yet. I spent two hours writing less than 300 words. What doesn't make sense is I had a better idea what I wanted to write today than I have had on any of the days up to this, so how did I have so much more trouble getting that down? I had the scene I wanted to write all worked out ahead of time, at least the basics. I was making it all up as I went up to here and I was able to write a lot better than this. Maybe knowing something up front caused me to second guess myself like what I was writng didn't match up? I don't know, but i need to get over it. I still haven't finished the scene. My plan to catch up is to write 1500 tomorrow and then 3000 on both Saturday and Sunday. I think that will get me where I need to be. On the weekend I'm going to find an hour each day and write out on the porch in the cool air. Some change of scenery would be good. See all my posts about NaNoWriMo 2014

The Range of Content on Planet Python

I've gotten a number of requests lately to contribute only Python related material to the Planet Python feeds and to be honest these requests have both surprised and insulted me, but they've continued. I am pretty sure they've come from a very small number of people, but they have become consistent. This is probably because of my current habit of writing about NaNoWriMo every day and those who aren't interested not looking forward to having the rest of the month reading about my novel. Planet Python will be getting a feed of only relevant posts in the future, but I'm going to be honest: I am kind of upset about it. I don't care if anyone thinks it is unreasonable of me to be upset about it, because the truth is Planet Python means something to me. It was probably the first thing I did that I considered "being part of the community" when I submitted my meager RSS feed to be added some seven years ago. My blog and my name on the list of authors at Plan...

NaNoWriMo 2014: Day 4

I ended today with only 6671 words. Staying on par would have been 6667 so I was only four words over, and worse I only wrote 1600 words today. That's technically under goal for the day, but I'm on pace for the month. I made the mistake of not getting even a little writing time in during the morning, before work, so I had everything to do sitting down at night. If I aim to get back on track I need to get in 30 minutes tomorrow morning and the mornings after that, giving myself a head start for the day. Jory MacKay's How I Forgot to Write was a particularly personally hitting piece to read as my daily writing motivation. If we aren't careful we can let the skills we have wane and that is certainly something I think happened to me at some point in the last five years, and regaining those skills is a big part of what I'm doing NaNoWriMo. The six-step program outlined is full of gems. Among the two that I hold most closely to my own writing: Find a routine and Lear...

NaNoWriMo 2014: Days 2 and 3

Yesterday I did my best to make up some of the time I lost in an opening day that knocked some of my pride out. I wrote a lot slower than I had anticipated on Saturday and I didn't expect that to change, so I took advantage of a Sunday with little plans to take up my time and had three writing sessions. I wrote around each meal, so three through the day. My son took it upon himself to join me for two of them, and he got a little distracted when he learned what text formatting was in his word processor (Google Docs) but setup upon himself a goal of three sentences a day as a minimum, and more if he more ideas. This is a good goal for an eight year old writer. There is a line I have to walk where I'm not encouraging him enough on one side and I'm just trying to push him because I want to share writing with him on the other. He didn't want to write on Monday, but I let it slide because of the balance I need to keep on that line. I ended yesterday above schedul...

NaNoWriMo 2014: Day 1

Word Count: 2075 / 50,000 Today I began the first writing of my 2014 entry in the popular NaNoWriMo contest. This is my second entry, but I haven't finished the challenge in the past and hope this year is the first i make it. I feel good about it. As part of this, I'm trying to read more and read more about writing, too. An exerpt from todays piece on writing, This Is Your Brain on Writing by Damien Walter: During brainstorming, the novice writers activated their visual centers. By contrast, the brains of expert writers showed more activity in regions involved in speech. Damien continues to lay out three problems caused by this disconnect in mental approach. I recommend reading his post .  See all my posts about NaNoWriMo 2014

The Curl Pipe

If anything deserves to be called an anti-pattern it is probably the common and worry-inducing practice of documenting your installation process by asking asking users to copy and paste a line into their shell that will snag some file off the internet and pipe its contents directly into your shell to execute. Sometimes this is even done as root. This is something known to be awful, but which remains a cornerstone via its use by some of the most important tools in our belts. Homebrew does it. NPM does it, too. And some projects look better, but are they? Pip asks you to download get-pip.py and run it to install, which isn’t practically any different than piping from curl, just less efficient. But worst of all, we might as well be doing this even more often, because our most depended about tooling is all just as guilty even without doing the curl pipe sh dance. What do you think happens when you pip install your favorite Python package, anyway? Pip downloads a file from the int...

Dead To Me! DomNomNom

DomNomNom was a toy templating tool for front-end web applications I built during a long ride in the passenger seat. The idea was to build a templating system that required minimal, and in many cases, no template at all. I wanted to see if it was possible to map data directly into markup structures based purely on semantics. For example, instead of some mark up that rendered a title into the page like {{ title }} we might just map the <h1> tag to the title in the data binding. $(“body”).domnomnom({ “h1”: “This is the title”, }) And it was really easy to get this basic setup in place quickly. I began to take it further. I allowed mapping lists of data, which would clone an element instead of simply inserting the text contents into it. Suddenly I could render tables and lists with ease. “ul”: { “li”: [“one”, “two”, “three”] } And the markup’s original <li> would function as a template to clone for this content. It was very clean to write t...

The Problem with Coders' Technology Focus

Coders focus on code. Coders focus on toolchains and development practices. Coders focus on commits and line counts. Coders focus on code, but we don’t focus as well on people. We need to take a step back and remember why we write code, or possibly re-evaluate why we write code. Many of us might be doing it for the wrong reasons. Maybe you don’t think there can be a wrong reason, and I’m not entirely sure. What I am certain of is that some reasons to code lend themselves to certain attitudes and weights about the code and other motivations might mandate that you take yourself more or less seriously. We’re taking the wrong motivations seriously and we’re not giving enough attention and weight to the reasons for code that we should. The most valid and important reason we can code is not what hackers think it is. A good hack isn’t good for its own sake. No programming language or tool is inherently better than another. The technical merits of the approach or of the individual ...

Farewell to XMLHttpRequest; Long live window.fetch!

The days of XMLHttpRequest and weird choices for capitalization are numbered. WhatWG has a spec ready for some time now to replace it: window.fetch. Just look at how easy it is. Just look at how nicer that is all with soon-to-be native APIs. But you don't have to wait, because there is a polyfill available. Start using the Fetch Polyfill in your projects today.

I Want to Write More Often

I want to write more often. I’ve been writing more lately and I hope to continue that, and I think expressing why this is important to me is valuable so here is that post. I want to explore my thoughts more concretely and have a record of how I came to my stands on the positions I believe in, and I want to keep track of the ideas for stories I have. Rather than have some bothering me constantly, I want to feel safe that I can forget things. Writing ideas can also get them out of your mind. The act of writing about it can often free your mind from the burden of so many thoughts. You can be more confident in an idea, or let it go out of your mind now that you’ve written it somewhere safe and permanent. I like the idea of turning my thoughts into essays. A thought is ill-defined. A thought is hard to grasp, even inside your own head. Thoughts are connections between so many points in your mind, but a well written essay is a single coherent position. It is a statement at a time ...

Top Articles

Along the side of my blog, for many years. I've had a section called "Top Articles". I don't remember when I put it there, but I know that it included all of the most popular posts I had written at the time and I wanted to make them more prominent. They were obviously popular topics people wanted to find. These were the things I was writing about that people found most interesting or useful. I haven't thought a lot about this list for a few years, until I just noticed it today. Top Articles  is a time capsule. This was a snapshot of my interests and knowledge from a previous version of myself. It doesn't reflect me as well today. I'm equally interested in the things that no longer worth keeping on that list as I am of the things that are still very important to me. I'll make a point to clean things up around here. What was on that list so long ago? Of no surprise, I had a number of posts about Python which still draw a lot of new readers t...

Firefox Users on Linux Deserve Better Downloads

If you download Firefox on a linux machine today what you get from their servers is a pretty unfriendly tarball. What are you supposed to do with this? Maybe you know how to extract a tarball. Maybe you even know what of the many files inside it you're actually supposed to run and  how to run it? Maybe. But does everyone else? Do non-developer users have any clue what they're doing with this thing? They experience is awful. I want to see that change and followed a ticket that tracks just that. What do you think?

Dead to Me! Trapdoor, Prototyping web-based desktop applications

This is the inaugural post in my Dead to Me! series which I announced . I’m not gonna lie. I’m pretty proud of this one. To say Trapdoor was ahead of the times might be a stretch, but really only a small stretch. My project README explains Trapdoor is a web-based desktop framework. Confused yet? The idea is to leverage how much energy is put into the web today and make developing a desktop application fun again. Again? For the first time? Trapdoor was an exploration of how to utilize web development skillsets to build desktop tools. I wanted to experiment with how this idea would play out and if it really made any sense. I was never planning Trapdoor to become are solution. I just wanted to play with the idea, but I do think I played with the idea pretty early on and that it was an extremely successful experiment. At the time I was still a KDE user and had been learning a little bit of Qt via the Python bindings PyQt4. I knew that Qt had a WebKit widget and qu...

Dead to Me!

Dead to Me! is a new thing I’m doing. This is not a new blog, but it is a specific series of posts within this blog. Dead to Me! is about those projects which I am only looking back on, but will not work on again. These aren’t all failed experiments, but some of them are. In each post I’ll talk about a project I’ve abandoned, sunsetted, or moved on from. Some of them will be recent and others will be things I worked on years ago. Some of them might be related to work, but most will be personal. I’m also doing something different with this. I don’t know how well this part will work out, but I’ve already gotten some interest in it so we’ll see: I am soliciting for guest posts to Dead to Me! and welcome anyone who would like to ask to be a part of this. If you have a project you’re no longer working on and would like to write a postmortem for, please drop me a line or a draft . If you’d like your post to appear here, go ahead and post it on your own blog or anywhere else, as ...

On Atheism Plus

This was originally published on That Liberal Extremist, a blog on social and political issues I began with my wife Heather. "Atheism Plus" has been making rounds for a while now. The basic premise seems to be Atheism, plus a lot of social justice movement elements. And, completely, I support that. And I'm glad for the wide support from others I see from that. We should support women in the Atheist community, and gays and bisexuals and the transgendered among us. And those outside of us, who are still marginalized even by religions they're a part of. We should support people of color, and the poor, and immigrants and single mothers more. Intersectionality is the word. I came across this idea first from  Greta Christina's post .  But, I don't think we need a label for this. That doesn't mean there isn't a reason for it, and maybe I should phrase it "I don't think we should need it.", so let me explain. ...the rest of the post c...

Alternate Computer Science History

I'm basically putting a giant sign on me by even saying this in public, but for a while now I've been sketching notes on the side for a series of writing I call Alternate Computer Science History . The idea is to envision alternate histories for how we may have developed computers over the years, both in how those differences would have played out in the past and the impact it would have on what we've built on top of all these things since then. What makes this so fascinating? Legacy. Computers are so steeped in legacy to such a remarkable degree, but they're still so young. What kind of boxes are we putting ourselves in? So I find it fun to explore what could have been different. What we have today, built on so many layers built up over the decades, is really nothing short of accidental. We could have ended up with a lot of other paths these developments could have taken over the years... couldn't we have? So maybe I'll just keep these private, or maybe I...

CARDIAC: The Cardboard Computer

I am just so excited about this. CARDIAC. The Cardboard Computer. How cool is that? This piece of history is amazing and better than that: it is extremely accessible. This fantastic design was built in 1969 by David Hagelbarger at Bell Labs to explain what computers were to those who would otherwise have no exposure to them. Miraculously, the CARDIAC (CARDboard Interactive Aid to Computation) was able to actually function as a slow and rudimentary computer.  One of the most fascinating aspects of this gem is that at the time of its publication the scope it was able to demonstrate was actually useful in explaining what a computer was. Could you imagine trying to explain computers today with anything close to the CARDIAC? It had 100 memory locations and only ten instructions. The memory held signed 3-digit numbers (-999 through 999) and instructions could be encoded such that the first digit was the instruction and the second two digits were the address of memory to operat...

Caktus Ship It! Day 2014 Q3 Post-Mortem - Part 2: Playlists and Peers

As of my first hour playing around I was able to share and synchronize play of any MP3 between multiple users with a simple drag and drop interface. Things were going pretty well for my project, but I had some work to do getting from there to the collaborative playlist I had in mind. I was already just assuming we were only caring about one file, because that worked well to get things up and running fast. My next step was to remove that assumption and start keeping a list of songs. This was pretty easy, in fact. I started writing a simple list of songs as they were downloaded, each with a play button which performed the <audio> tag set and play that previously done automatically. Each user could now play any song that was shared and to restore the previous synchronized playing that happened when they only dealt with a single done I incorporated broadcast changeTrack messages. I added two other broadcasts, pause and play, which would allow any users to pause and play the songs ...

Growing Up With Your Long Lost Brother

I grew up with my long lost brother, but that fact does not make the label any less true. I don't know much about him. There are people I worked with at short retail jobs in my teens who I got to know better than I ever knew my little brother. There was not a drifting apart and there was not any kind of animosity that kept us apart from the start. I care for my brother and love my brother like anyone would. But I do not know my brother. If you think it is disingenuous of me to call him a "long lost brother" when we grew up together and I remember him smiling from his crib, please understand. If a man reached my age of thirty and only then learned they had a brother they had never met, never spoken with, never heard of before they would know that brother better than I know mine. They would know at least that he, too, had a long lost brother. It is not accurate to say that I miss my brother, because you cannot really miss those who you don't know. I missed by brot...

Death by Drawing

A while back I joined the effort of my friend Russell Hay to draw more often by way of a blog dedicated just to posting our drawings. I'll be honest and say we haven't made the best habits so far. I'm not giving up, so when I draw it will be posted there. Every now and then I'll post a few things here, just to remind you that I do that. Tonight I draw a bunch of monsters! Enjoy .

Caktus Ship It! Day 2014 Q3 Post-Mortem - Part 1: Proof of Concept in Under an Hour

Today was one of our very fun Ship It! Day  events at Caktus Group and the first in our new office. It snuck up on a lot of us, what with the busy move we're still settling down from, but it also is a great chance to unwind and to really enjoy our new shared workspace. I'm going to start ending these events with a personal post-mortem on what I worked on. I decided to learn about WebRTC by building a tool I'd love to have with friends: a shared music player. The problem is simple: some of us think the room is to quiet and some of us like quiet. What we need is a way to play music together with headphones. The goal was a simple app that can play MP3s. Everyone with the app open should be able to play songs and everyone connected would listen at the same time. We all hear the same thing. If someone leaves, they'll take their music with them. So, I set about this yesterday afternoon (when our Ship It festivities officially begin) and I had a vague idea where I wan...