A vegetarian friend of mine told me that I'm not "evolved" because I eat meat. He said people only started eating cows thousands of years ago because they were savages, they were barbarians and they didn't know any better. People who eat cows now are not evolved. What a bunch of bullshit. People ate cows thousands of years ago for the same reason we eat cows today. Because they are easy to catch. We're not savages, we're just lazy. A cheetah could taste like chocolate heroin, we'll never know. Those little bastards are fast!I love the idea of "tasting like chocolate heroin" and look for ways to work the phrase into casual conversation.
Friday, October 21, 2011
Words to Live By
A story I heard somewhere ...
Sunday, October 16, 2011
We Don't Need No Steenkin' Cable!
Back in March, I wrote a post about The Ultimate Set-Top Box. I've been thinking a lot about it lately and the fact that I just don't watch much cable TV anymore. Sure, when I'm bored I occasionally flip through the things on my TiVo, but it wouldn't be any huge hardship to choose something else like reading a book, playing a video game or working on a programming hobby project. So the question is ... how much extra am I spending on a cable subscription that I don't need?
I did some research. Actually, I did some digging because Frontier Communications made it very hard to find out this information. I tried going through their website via my account to see if I could change my plan. They would not allow me to deselect TV from my current plan. I could add or upgrade services, but I could not remove anything. I finally had to resort to logging into their website as a new customer and look up the currently available plans that way. Still, they didn't make it easy because of the dizzying array of choices available. But I was able to finally select just FIOS Internet without TV, without Home Phone, at my current speed rating. Making this change would save me $30 per month. It also turns out that the next higher speed rating might save me an additional $10 per month.
As Marco Arment recently pointed out in a podcast, $40 per month can buy a lot of TV or movies on iTunes (or Amazon or Hulu or [insert your favorite video service here]). Approximately thirty dollars will buy you a full thirteen-episode season of Doctor Who in HD from Amazon Video-on-Demand. A full season of House in HD will run you about $56. iTunes runs slightly more at $37 and $60, respectively. Remember, these are HD videos that are yours to keep (so long as the DRM continues to be supported) with no commercials or other claptrap getting in the way. $40 per month is $480 per year or eight full American-style seasons in HD. So I could still have the shows that I really do want to watch, in a format that may allow me more freedom to watch when, how and on which device I want to watch it, and possibly still save me money.
Now I just need to figure out how to break the news to my daughter ...
I did some research. Actually, I did some digging because Frontier Communications made it very hard to find out this information. I tried going through their website via my account to see if I could change my plan. They would not allow me to deselect TV from my current plan. I could add or upgrade services, but I could not remove anything. I finally had to resort to logging into their website as a new customer and look up the currently available plans that way. Still, they didn't make it easy because of the dizzying array of choices available. But I was able to finally select just FIOS Internet without TV, without Home Phone, at my current speed rating. Making this change would save me $30 per month. It also turns out that the next higher speed rating might save me an additional $10 per month.
As Marco Arment recently pointed out in a podcast, $40 per month can buy a lot of TV or movies on iTunes (or Amazon or Hulu or [insert your favorite video service here]). Approximately thirty dollars will buy you a full thirteen-episode season of Doctor Who in HD from Amazon Video-on-Demand. A full season of House in HD will run you about $56. iTunes runs slightly more at $37 and $60, respectively. Remember, these are HD videos that are yours to keep (so long as the DRM continues to be supported) with no commercials or other claptrap getting in the way. $40 per month is $480 per year or eight full American-style seasons in HD. So I could still have the shows that I really do want to watch, in a format that may allow me more freedom to watch when, how and on which device I want to watch it, and possibly still save me money.
Now I just need to figure out how to break the news to my daughter ...
Making Your Own Tools
I remember reading somewhere that you aren't a real carpenter until you've made your own tools. Not being a carpenter of any sort, I'm not sure if its true or not, but I've started to feel like it might be true for programmers.
More and more I've noticed that IDEs are becoming required to work with code. And more and more, these IDEs have very similar, but not the same, features. They all offer customization of one form or another, but what's more custom than something that works exactly the way you want it to, because you wrote it that way?
So I've set out on a quest to take the journey of my programming forefathers and write, to begin with, an editor and a language with its own compiler/interpreter. Perhaps the two will be related, perhaps not. Perhaps the language will be generally useful or maybe it'll only be the extension language for the editor ... or perhaps it will be nothing more than an experiment in language design and have no practical purpose whatsoever. But I expect that once I get to a certain basic level of usefulness with the editor, it will become my sole text editor since I do believe in eating my own dogfood.
Since my platform of choice nowadays is the Mac, I have already started writing my editor as an Objective-C OS X application. I started out with the code from the article: Building a Text Editor in 15 Minutes. It has given me a huge appreciation for the underpinnings of OS X and gotten my editor almost all the way to that basic usability level I mentioned before.
As I move forward, I'll be sharing thoughts and discoveries from my journey here. I hope you find them useful ... or at least entertaining.
More and more I've noticed that IDEs are becoming required to work with code. And more and more, these IDEs have very similar, but not the same, features. They all offer customization of one form or another, but what's more custom than something that works exactly the way you want it to, because you wrote it that way?
So I've set out on a quest to take the journey of my programming forefathers and write, to begin with, an editor and a language with its own compiler/interpreter. Perhaps the two will be related, perhaps not. Perhaps the language will be generally useful or maybe it'll only be the extension language for the editor ... or perhaps it will be nothing more than an experiment in language design and have no practical purpose whatsoever. But I expect that once I get to a certain basic level of usefulness with the editor, it will become my sole text editor since I do believe in eating my own dogfood.
Since my platform of choice nowadays is the Mac, I have already started writing my editor as an Objective-C OS X application. I started out with the code from the article: Building a Text Editor in 15 Minutes. It has given me a huge appreciation for the underpinnings of OS X and gotten my editor almost all the way to that basic usability level I mentioned before.
As I move forward, I'll be sharing thoughts and discoveries from my journey here. I hope you find them useful ... or at least entertaining.
Tuesday, August 16, 2011
Pet Peeve - Silicon vs. Silicone
Silicon is an element used in construction of semiconductors, most notoriously computer chips. Silicone is a type of plastic used for all manner of things, most notoriously breast implants. Silicon is a component of silicone, but they are not synonymous. Please stop using them as if they were.
Tuesday, May 10, 2011
Taxes Kill Developer Passion
I read Process Kills Developer Passion earlier today and could not wait to get home and write up my thoughts. The essay posits that "Over the past few years, the software industry has become increasingly focused on process and metrics as a way to ensure 'quality' code." I think the software industry as a whole has been tilting at that particular windmill for almost as long as there has been code. I think the shift in focus is that now it is developers themselves that are trying to build systems to ensure quality code, not just managers.
It lists a bunch of ways that one would be spending time on process rather than not-process, presumably getting real work done. He also lists a few horror stories like "... the test cases took two- or three-times as much time to code as the actual code ...". My only question there was, "Were they good test cases?"
I agree that spending more time than is necessary on process can be seen as a tax, resources that are spent on things that do not benefit the end result of the project. But in the cases of things that are objected to, they are not necessarily a tax. Perhaps they were on the projects he has worked on. But I have also seen counterexamples of the things that are listed:
It lists a bunch of ways that one would be spending time on process rather than not-process, presumably getting real work done. He also lists a few horror stories like "... the test cases took two- or three-times as much time to code as the actual code ...". My only question there was, "Were they good test cases?"
I agree that spending more time than is necessary on process can be seen as a tax, resources that are spent on things that do not benefit the end result of the project. But in the cases of things that are objected to, they are not necessarily a tax. Perhaps they were on the projects he has worked on. But I have also seen counterexamples of the things that are listed:
- Doing full TDD, enabling the developers to write less actual code because the tests proved that it wasn't necessary.
- Requiring a high percentage of code coverage, ensuring that the tests that were written don't just test the same code over and over again.
- Having full code-reviews on all checkins, giving newer developers a chance to learn from their more experienced colleagues ... and even their more experienced colleagues being exposed to new techniques.
- Using tools to measure code complexity, so that there isn't a bunch of time wasted in code reviews saying, "I think this is too complex" and "I don't think it is".
So the processes that the article decries can be useful (or at least some of them). It is only when there is a bunch of wasted effort through mindless devotion to "the process" that something quickly becomes a tax. And taxes kill developer passion because a developer gets their pleasure out of creating something. The more taxes that are heaped on top of creating something, the less pleasure they feel. The less pleasure, the less passion.
But let us not forget the biggest tax of all, bad code. Bad code forces one to do battle with it in order to make changes. Bad code drags on a project so that it is moving slower and slower and slower until any change is moving the project backward because fixing one bug leads to the introduction of at least one new bug. Bad code is a tax because the time spent fixing bad code could be spent moving the project forward.
As a wise man once said, "The only things certain in life are death and taxes." You are going to pay taxes on your project, whether it is in the form of process to prevent bad code from entering your code base or in the form of fixing the bad code once it was in there. Does that mean we should just suck it up and accept the drudgery of process? Hell no! But there's no reason process should be drudgery. For example:
- There are many code review tools out there that significantly speed up the code review process as well as make it a searchable system that can be mined for information and learnings. (Malevich and Mondrian are two that spring to mind.)
- Keeping track of time doesn't have to be a chore. The Evidence-Based Scheduling in FogBugz uses a very simple system. When you start working on a work item, you click a little dropdown and say which one you're working on. When you stop, you set it to Nothing. It even auto-stops for you at lunch and quitting time if you configure it so.
- Planning Poker and other practices have been developed to make planning easy, accurate and fast.
The article points out that there is a spread of skill levels amongst developers and that it isn't fair to force the best developers submit to process that is designed to prevent the worst developers from making mistakes. Checklists and following process have shown time and again that they reduce defects even amongst the most talented. Because all developers make mistakes.
So just as we shouldn't perceive mindless process as a magic bullet, neither should we perceive all process as evil. Let's just strive for more and more ways to keep the taxes down.
Friday, April 15, 2011
The Evil That is the Credit Industry
I've had my problems with credit. I never got to the Confessions of a Shopaholic level, but a long time ago I realized my limitations and simply cut myself off from the credit world. I paid in cash or money orders for a couple years and then when debit cards came out I used them. The last two cars I've owned were paid for in cash and there is almost nothing more liberating than knowing you don't have that $200-500 per month payment that it seems all your friends have. It was a good way to live.
Unfortunately, if you want to buy a house before you retire ... you pretty much need credit. And this is one of the areas where I think credit is a good use. Unfortunately, to borrow that much money you need a credit rating and in order to have a decent credit rating, you have to have some credit. So, I've delved back into the ugly world of credit by getting myself a secured credit card and just a couple weeks ago I got a credit card based on the modicum of credit I now have.
When filling out the application for the newest credit card, I specifically stated that I did not want a cash advance PIN for it. I have money in savings for emergencies if I truly need cash and really ... who doesn't accept credit cards nowadays? Loan sharks? And have you read the cash advance terms on your credit card policies? They're always way, way worse than just buying something on credit. (And the terms I have for my credit cards, because of my history, are already onerous.)
What did I get in the mail yesterday? I got a cash advance PIN. Y'know ... just in case I might need it, even though I checked the box that said I didn't want it. There were all these instructions on how to make sure it didn't fall into the wrong hands, including destroying the letter that I held in my very own hands ... the ones that I didn't trust with this kind of temptation ...
So I shredded it without looking at the number.
Unfortunately, if you want to buy a house before you retire ... you pretty much need credit. And this is one of the areas where I think credit is a good use. Unfortunately, to borrow that much money you need a credit rating and in order to have a decent credit rating, you have to have some credit. So, I've delved back into the ugly world of credit by getting myself a secured credit card and just a couple weeks ago I got a credit card based on the modicum of credit I now have.
When filling out the application for the newest credit card, I specifically stated that I did not want a cash advance PIN for it. I have money in savings for emergencies if I truly need cash and really ... who doesn't accept credit cards nowadays? Loan sharks? And have you read the cash advance terms on your credit card policies? They're always way, way worse than just buying something on credit. (And the terms I have for my credit cards, because of my history, are already onerous.)
What did I get in the mail yesterday? I got a cash advance PIN. Y'know ... just in case I might need it, even though I checked the box that said I didn't want it. There were all these instructions on how to make sure it didn't fall into the wrong hands, including destroying the letter that I held in my very own hands ... the ones that I didn't trust with this kind of temptation ...
So I shredded it without looking at the number.
Sunday, March 27, 2011
The Ultimate Set Top Box
I struck upon an idea the other night while talking to a friend on the phone. Wouldn't it be great if I could get rid of the series of boxes in my entertainment center? Ok, perhaps getting rid of all of them is too much to ask, but I don't think that reducing down to the TV and one "set-top" box is going too far.
I currently have the following in my entertainment center:
I currently have the following in my entertainment center:
- Xbox 360 - for playing games and streaming Netflix
- TiVo - for cable, DVR and Amazon video downloads
- Sony PS/3 - almost exclusively for BluRay movie watching
I honestly think that the Xbox is really close to being my one and only box in my entertainment center. Here is what it would take for this to happen:
- Add CableCARD support to the Xbox
- Add DVR capability to the Xbox
- Add a BluRay drive to the Xbox
- Add Amazon Video-on-Demand support to the Xbox
Currently, my TiVo is my cable television set-top box because it supports CableCARD. I just plugged in a card I rent from my cable company (for a cheaper amount than if I rented a digital set-top box) and my TiVo now controls my cable television. True, it doesn't have some of the extra features that the cable company provides, but mostly that's video on demand and DVR capabilities ... which my TiVo provides. So if Microsoft puts a CableCARD slot and DVR software into the Xbox, then I can replace most of my TiVo.
If Microsoft puts a BluRay drive in the Xbox, then I can get rid of my PS/3 ... along with being able to store a bunch more data on my game discs.
If Microsoft adds Amazon Video-on-Demand support to the Xbox Live service, then I can get rid of the one remaining feature of my TiVo.
I would love to be able to just use my Xbox as my sole entertainment hub. It already does so much, from watching movies, to streaming video, to listening to music, to playing games. And if they rolled the "guide subscription" that most DVR devices charge for access to channel listings and such into the Xbox Live annual service, then they might even boost Xbox Live subscription numbers.
Microsoft, please make this happen!
Subscribe to:
Posts (Atom)