Archive for the ‘Tech’ Category

Real IPv6, Here I Come

Tuesday, April 20th, 2010

For a few months now, my entire home has been on the ipv6 internet via Hurricane Electric’s free tunnel service. It has been very cool and I’ve learned a bit about IPv6 in the process.

Today I was happy to see an email from Comcast about their IPv6 trial program. I don’t have direct IPv6 just yet, but this was the first time I had to agree to Terms of Service.

Confidentiality.  While the conduct of the Trial, the nature and quality of the Trial Service and any Trial Equipment you receive constitute Comcast confidential information, one of Comcast’s objectives is to assist the general Internet community in preparing for IPv6 and to encourage widespread IPv6 deployment across the entire Internet.  Thus, you are authorized to discuss details of the trial with non-participants, such as members of the Internet Engineering Task Force, and to post information about your participation on web-based forums, email discussion lists, social media networks, etc. However, you agree not participate in any media interviews that involves disclosure or discussion of any details of the Trial with media representatives, including but not limited to professional bloggers, print media, online newspapers and magazines, radio, and television, without the prior written approval of Comcast.

I have to admit, these terms aren’t too bad. I can blog about it, tweet about it, talk about it all I want. I can be as mean or as nice as I want. But… “no interviews” :)

Windows 7 mp3 tag editor

Monday, March 8th, 2010

I just accidentally found Windows 7’s built in mp3 (and presumably other metadata, exif perhaps) tag editor.

I looked for this thing for what felt like hours over the past year. Eventually I sucked it up and downloaded mp3tag, but its still nice to know that this is there for the next time.

Normally when browsing my mp3 files I see a window that looks like this:

Stromkern1

See that summary pane at the bottom? Select a file with editable metadata, like an mp3 and resize that pane. Then click one of the metadata values.

Stromkern2

Wow, I wish that had been more discoverable. –1 point for Windows 7 for making that far from intuitive, but 1 point for Windows 7 for having the feature.

Its 2010 and there is still not a good audio manager

Tuesday, February 9th, 2010

Its 2010 and iTunes is still slow. Windows Media Player does this 5-20 times a day:

WMP Library

So there are no good comprehensive media library managers.

Its sad but true. I think tomorrow I’ll be going back to using foobar2000 for my audio listening. WMP12 was so so so close for me, but this issue is a show stopper.

An Application of iPad

Saturday, January 30th, 2010

I really hate the timing of this post, but the ideas are fresh in my head. You can consider this ‘just another iPad post’ if you want.

Ever taken a survey on the streets from someone with a PC style tablet? I’ve taken a few. I’m always surprised by the hardware choice. For some things, it seems like a clipboard and paper would be better.

At work, there is an upcoming project that involves something like the above. Here is why I think the iPad is a better choice. It mostly comes down to boring IT Operations reasons, aka management of the underlying platform.

  • With iPad, you never have to defragment your disk.
  • With iPad, you never have to run antivirus or update antivirus definitions.
  • With iPad, you never have to run anitspyware or update antispyware definitions.
  • With iPad, there is no moving and spinning disk which is prone to higher failure.
  • With iPad, you don’t have to worry about some slick-kid or script kiddie downloading and installing some crazy software that turns your computer into a bot or even just overwrites important files preventing you from booting the next time.
  • With iPad, you don’t have to worry about not having a replacement part available if a piece of hardware fails.
  • With iPad, the user will have a more familiar experience. Given the prevalence of iPhone, it is likely that an end user will understand many of the touch and drag gestures.
  • With iPad, there is no stylus like the PC Tablets of old.
  • With iPad, there is a very clear future. When was the last time apple canceled a product line? Newton? Ok, how about under Jobs? I’ve no idea.

I’m as anti-fud as any person that I know. Yes, the above is definitely anti-windows fud cited by Mac and Linux lovers everywhere and normally I’m the first person to refute it. However, I think under that fud there are tiny grains of truth. For certain applications those bits of truth are highly amplified. It is a different risk vector. These things become very important and translate directly to cost of ownership.

Notice that I’ve listed no pros or cons for iPad as a general purpose device. I don’t care to go there. I’ve also not mentioned if there is much of a market for the above use case (there isn’t enough to sustain the device alone). These are all things to be answered elsewhere. My point in short: here is a use case if you have been wondering for what kind of things iPad can be used.

Geeks drive girls out of computer science

Thursday, December 17th, 2009

My wife linked me to this article about a cultural study done on certain masculine aspects of things which often surround computer science.

http://www.msnbc.msn.com/id/34437233/ns/technology_and_science-science/

She (my wife) brought it up in the context of cables and cords lying around and I’d guess that extends to the unused laptop, mouse or keyboard. She is a very neat person. I am less so, but she keeps me in check. This is good.

The article talks about the physical environment of a computer science classroom or office. I don’t know what classrooms this study is looking at. I can only assume that they are primary and secondary classrooms because the college classrooms in which I teach and in which I attended are the same boring sterile classrooms in which all subjects are taught.

I can comment on offices. The quote from the article is a quote by the lead researching Sapna Cheryan from the University of Washington. She says “… the image that immediately pops into many of their minds is of the computer geek surrounded by such things as computer games, science-fiction memorabilia and junk food.”

I’d like to address each of things. There are no computer games on my desk at home nor at work. At home, I share a desk with my wife, occasionally there is a game left out. They are hers. I have her Rollercoaster Tycoon CD in my backpack right now, because she left it in my disk drive. I do not play video games. It is a choice. I used to play a few video games. I think that when Starcraft 2 comes out, I’ll probably play that video game.

I have some science fiction memorabilia stuffed in drawers at home. A hat from the cast of the original Stargate movie. A signed Richard Dean Anderson photograph. Both of these were gifts from people who knew that I love Stargate. I don’t leave them out. I don’t talk about them. In fact, if any of my coworkers read this, both items will probably be a surprise to them, and they will probably make fun of me greatly for each of them.

Junk food is bad. I’d probably eat lots of junk food if I didn’t have my wife to take care of me and she didn’t constantly remind me about good nutrition and encourage me by talking to me about the food industry, summarizing books for me and watching movies with me such as Supersize Me and Food Inc. I bring my lunch to work almost every day rather than eat out. As I write this many of my coworkers are out at the monthly Ann Arbor “Nerd Lunch”. I try to eat healthy.

I try to eat healthy to the point that food preparation is something that I can talk at length about. Last night I made cottage cheese. I bake all my own bread. I’ve not bought bread from a store in over 6 years. I make my own chicken stock. I make a lot of things that are often bought. I do not consider any of these things add to my computer geek. If anything I’m a non-geek. These things are also traditionally non-masculine activities. Although more recently I think they are more niche hobbies than feminine activities.

What is the point? I guess I’m trying to say, look deeper. Yes, on the surface there is a video game, bad-sci-fi, junk food culture to computer science, but as soon as you peel back the first layer there is a variety and depth as wide as any other profession.

Pandion “Free Software” can go to hell

Tuesday, December 15th, 2009

I’m not entirely sure that it is what installed Ask Toolbar on my system without asking me, but I am 100% entirely sure that it is what changed my browser start page without asking me.

EVIL EVIL EVIL

Pandion IM software from http://pandion.im/ should be avoided.

It doesn’t matter that it is GPL and free as in speech. It is evil.

Professional Programmers have a Responsibility

Sunday, September 13th, 2009

…To themselves and to the industry.

On a private mailing list I recently read a message which included this paragraph – this paragraph is totally off topic to the topic of the mailing list.

Author name has been excluded to protect the unprofessional programmer. (license breaker facilitator)

I’ve been working professionally as a programmer for nearly 20 years and I’ve rarely seen businesses that pay for Enterprise licenses, much less an "Enterprise" license that is only good for one Developer.  There will be tons of license abuse at this price point within businesses. Heck, most of the places I have worked at outfit their Developers with Visual Studio they got from one copy of the MSDN.

My response is this:

It is your professional responsibility as a programmer to point out to these businesses that they are breaking a EULA and if the software make found out they would likely be on the hook for hundreds of thousands of dollars in fees.

These types of business should be buying a copy of MSDN for each developer — that is how it is licensed. Or they should be investigating other options. And there ARE other options, whether it is Express editions, or a program like bizspark or open source such as SharpDevelop.

There is more than one way to linq that

Sunday, June 28th, 2009

Eric Gunnerson has a post in which he responds to Justin Etheredge regarding “Is Programming A Generic Skill?

I’ll just say that I agree with them both. There are differences between ability, proficiency and mastery.

A Java programmer can jump into C# and be an able C# programmer immediately. It will take time to become proficient and even more time to develop mastery.

I am proof of this with python. I’ve been an able python programmer for over 10 years now(actually closer to 15), but I never spent enough time in python to call myself proficient and I’m certainly far from a master.

But the thing that Eric said which triggered me to write this is not the generic skill discussion with Justin, it is instead a remark that Eric said about Perl, “… because of TMTOWTDI”.

C# is very much becoming afflicted with There is More Than One Way To Do It. It certainly is both the language and library.

Consider LINQ. LINQ to Objects is a new way to do something which everyone has done differently in the past. When new programmers are exposed to linq, I often hear the question “When do I use linq?” The answer I give is typically “whenever you would use a for loop or foreach loop and if you can’t, figure out how you can".

If we throw away the ‘idiomatic code” to which Eric refers, then a giant bucket of TMTOWTDI is thrown in our face. Do we use properties or fields, events or delegate fields?

For public interfaces, FxCop helps a great deal with guidelines for these things and helping to learn the idioms of the language and framework, but for other things, you are left to yourself. That is why reading others source code is so important. (see the weekly course code)

Expand into libraries and TMTOWTDI explodes. From MSFT alone there is Remoting, Web Services (asmx), WSE, WCF, RIA Services, ASHX, ASP.NET Data Services, all of which have some overlap. Then for data access there is ADO.NET, Linq2Sql, Entity Framework. Even within ADO.NET alone, TMTOWTDI. Do you use a reader? Table Adapter with DataSets? Strongly Typed DataSets?

Open to non MSFT and TMTOWTDI explodes again, to the point where I won’t bother listing anything. There is too much.

I think that library TMTOWTDI will always exist. Even Python has SqlObject, SqlAlchemy and ORM as parts of other frameworks like Zope and Django. But language TMTOWTDI is reasonably well mitigated in Python. This is stated in a single line in PEP20 – The Zen of Python

There should be one—preferably only one –obvious way to do it.

C#, perhaps because it was not a goal and because of its C/Java/Delphi roots, has never had that. There has always been TMTOWTDI in C#.

How useful are your error messages?

Thursday, June 18th, 2009

F.cs(334,8): error CS0539: ‘I.M’ in explicit interface declaration is not a member of interface
F.cs(20,15): error CS0535: ‘C’ does not implement interface member ‘I.M(out string)’

This is a fun example of a poor error message, and I don’t mean because I named my file F, my interface I, my method M and my class C.

Its poor because the underlying code looks like this:

interface I { bool M(out string); }

class C:I { void M(out string); }

Sure, this is obvious now what is going on, I have void, but I should have bool, but my error message doesn’t include that when it shows the type signature.  Now consider what happens when interface I is in an assembly which is given to me. I do not have its source, and there is no documentation. My means of finding the signature of this method are three fold:

  1. lean on visual studio press F12 to go to reference of the interface and VS shows me type signatures
  2. use reflector
  3. monodis mylibrary | grep MethodName

I usually use #1, which is probably why I’ve never seen how horrible this compiler error message is until today. Today, I used #3.

* monodis is from Mono

Internet Explorer 8 in Windows 7 is Not All Bad

Tuesday, June 16th, 2009

The number one feature that has been in Opera for longer than I can remember, and in Firefox via add-in or by default for nearly as long, is that of restoring a session when the browser or system crashes.

I lean on this feature. I use browser tabs as a todo list. Sometimes I have to-read tabs open in my browser for only minutes, and other times those to-read tabs are around for weeks and into months.

Internet Explorer was a no-go on this feature, until I noticed it today.

My laptop (I blame hardware – or poor Dell drivers) did not go to sleep when I shut the lid this evening. After a 5 mile bike ride and a 12 mile car ride home in a well insulated back pack, the laptop was frozen and pretty warm when I got home and unpacked. I had to reboot.

As soon as I logged in I remembered that I had left an Internet Explorer window open with something I wanted to read. I cursed because I thought I would have to find it and I usually struggle finding things in browser “history”.

I was surprised when I was greeted with a “restore last session” prompt from Internet Explorer.

Good job on a great feature, Internet Explorer team.

Will I be using IE as my default browser? Absolutely Not. RequestPolicy and NoScript are required browser add-ins for my daily browser usage.