Friday, July 27, 2007

Microsoft Robotics Studio

Microsoft Robotics Studio

Microsoft is a REALLY big company. Even for those of us that work in IT and make our livings off Microsoft's technologies exclusively, they still sometimes manage to slip products and technologies by us... but rarely does Microsoft have an entire development platform that manages to elude my notice.

I just came across this one. I wasn't even aware Microsoft was doing anything in robotics, much less actually had a development platform on the market.


Thursday, July 26, 2007

Reddnet now powered by BlogEngine.net

I've replaced the reddnet site with a new blogging application based on the BlogEngine code base.


Most of the scribbles section made it over to the new application, but the old posts' formatting remains a mess. I didn't move the old comments or ratings over though. I'll be fixing the formatting, tagging, and categorization of the posts over the next few weeks.


BlogEngine is a pretty neat community application. It is very simplistic in scope compared to the CSK code-base that reddnet previously used, but simplicity is a good thing since I have very limited time to manage my personal site. I will of course switch reddnet over to the CCK code-base once I've finished writing it :)


I'll be reviewing BlogEngine.net here in the near future.

Tuesday, March 6, 2007

Imaginary Usefulness

Few subjects frustrate me faster than mathematics. Math is an essential skill and a useful tool. But our school systems, secondary and primary both, totally fail to teach common sense along with it.

I’m constantly amazed at how many smart people are made stupid by an extensive education in Mathematics. Mostly this is because math is taught more as theory than applied science... especially in primary education. Through high-school most people learn a crap-ton of math theory and mechanics.  But there just aren’t many classes taught that apply math in a useful way. 

This leads to the question eventually asked in every math class, “when will I ever need to use this in the real world”. For higher math, anything above basic Algebra, the answer for most people is “probably never”.

That aside, the mechanics and theory still need to be taught so as to give students the possibility of going into a career where they could actually use higher math. A basic familiarity with more advanced math is useful to a sorta degree, but much more useful would be classes on the applied uses of math... classes that show how and when math is useful.  But what I’d like to see taught most is common sense.

For example, in my 10th grade Algebra II class we spent about three straight weeks going over imaginary numbers. Ok, let me get this straight... due to the practical limitations of the universe this math cannot be done. But if you ignore that little rule, you can still use the mechanics of our math system and generate numbers that have no meaning... they are imaginary.

Umm... excuse me, but shouldn’t that be the fucking end of the lesson?!?!?  But NOOOOoooo!  After that we had to spend weeks working math problems that result in imaginary numbers. Then we had tests on how accurately we could solve these problems.

So, we are going to be tested on our ability to come up with accurate answers to a math problem where both the question and the answer have absolutely no meaning at all?

Why can’t I just answer “turd-jam” for all the questions and still get credit? After all, “turd-jam” has just as much meaning in context with the questions as the actual numerical “answer” would... and in 10th grade it would have at least been funny, which is more useful than any other answer I might have derived. This is a classic example of the failure to apply common sense in math. As far as I can tell, the first major failure to teach common sense in math starts when they teach you the concept of negative numbers.  Numbers measure quantity. That’s fucking it... Quantity. The real usefulness of any math is in the question “quantity of what?” 

The only non-intuitive thing about quantity is the concept of zero, but this is fairly easy to explain to kids. Once zero is understood is becomes common sense. Zero also becomes the only non-positive number that remains meaningful. 

But negative numbers are NOT real. They cannot, and do not actually exist. If you solve a math problem, and the result is a negative number then all you have learned is that problem is flawed, you have incomplete information, and/or the number you produced is not a valid measure of anything that exists in the same context as the original question. Since the basis of the question was wrong, any number you derive no longer has any meaning and you should stop right there. If you continue with negative numbers then you are either just making shit up, or you are measuring something in a different context than the context assumed in the original question.... and you had better have a damned good idea what the new context of your answer is, or you are screwed! 

But they never teach that concept in school.

Let us use a practical example.
You own an appliance company. You have 1refrigerator in stock. A customer comes in and buys 4 refrigerators. How many refrigerators do you have left in stock?
If you answered negative three (-3), then just kill yourself now.

In-stock means “physically sitting in your warehouse”. If you walk back to the warehouse, I can only guarantee one thing... you, the fuck, will not see negative three refrigerators sitting back there.  The only meaningful answer to this question is “unknown”. How many refrigerators you have in stock after selling 4 of them depends on if you gave the customer the one fridge you had already, or if you are waiting to deliver all 4 fridges after your vendor deliveres them to you. The original problem contains insufficient information. When you walk back there, you will either see zero or one fridge in your warehouse... So when you see -3 in your answer, what it really means is that you are measuring the wrong thing. You don’t have -3 of anything. You may have +3 of something else, like refrigerators you need to order from a vendor, but that number is valid only in a different context, and only when the new context makes that number a positive number or zero. 

Which brings us back to imaginary numbers. How surprising is it that it is impossible to perform some mathematical operations when you are using numbers that simply mean you are working with values from a different context than the one your math problem represents? In the case of imaginary numbers you are working with numbers from a context that cannot exist at all, so you should just give the fuck up right there, rethink your math problem so that it addresses a real question in a meaningful context.

I see this junk all the time in programming. I get requests like, “I need a report that shows the number of brain cells left in my head”.

Sorry... but that report results in negative numbers and therefore has no useful meaning.

Why not ask a different question like “how many brain cells will I need to have implanted before I regain the ability to chew gum and walk at the same time?”.   Any math should answer a question in such a way that the answer has some useful meaning. If you are coding with negative numbers then your code measures the wrong thing. Flip something around so you are measuring things that exist. Your code will be easier to understand and will produce results that have more meaning.

With math, please always use common sense. Mechanics are neat, but you have to understand the “why” of your math, not just the “how”. That is especially true when you are making up math that gives answers that other people have to interpret.


Thursday, July 13, 2006

World of Warcraft Idea

Though I game far less than I once did, I do play World of Warcraft. Not so much because it is the best game evar or anything (it is pretty good though), but more because there aren't any better out there that don't require massive and continuous commitments for my time.

One thing I always wondered though is why more games didn't learn from the old Jumpgate MOG (I refuse to use the longer acronyms, so MOG is Massive Online Game... that's as  much hype as you'll get from me). Like most games, especially MOGs, Jumpgate started a web site long before the game released. But from the start one thing really stood out about their web site. The site was linked very deeply into the actual game (in beta at the time). You could look up who was online, where, what they were doing, see statistics, and even manage your in game character a little.

Where the fuck is that feature in every game released since then? Jumpgate is years and years old... I don't even know how old. And it had deep integration with their game database back then.

What I'd love to see is WoW implement a way to actually log into the web site and see your character info, spend your talent points, talk to in game players (at least ones in your guild), and most of all... monitor and participate in the auction house. Man I'd love to be able to watch the AH for those rare items from work without having to actually log into the game itself (which is a sure way for the boss to know you aren't working :P).

Anyway... I do hope future games take some Qs from Jumpgate. Make your web site PART of the game... not just a bullshit marketing ad.

Monday, June 20, 2005

Pirate Who?

One of my favorite bloggers sums up my own recent acts of piracy in a post titled: Doctor Who, the BBC, the Rest of the World, and Bittorrent 

I have been increasingly annoyed by the practice of broadcasters releasing TV shows or movies in one part of the world long before they come out in another. Or in the case of Doctor Who (one of my all-time-favorites) the fact that it doesn't air in my own country at ALL!

And what really chaps my ass is that there aren't any plans for the show to be distributed in the U.S.Aanytime in the foreseeable future... and please don't even get me started on the region encoded DVDs that make it super annoying to buy the show so I can watch it legally.

But there is a REAL proposal for a workable solution to the issues of digital piracy and media distribution in this two part article titled "Piracy is Good?" (part 1 and part 2). This article is aimed primarily at the most threatened of all of the traditional media productions; broadcast TV, but the solution would apply well to any video media distribution.

This is a truly amazing piece, that explains the existing problem that all forms of TV currently face. But most importantly, it proposes real solutions that will work. 

Wednesday, February 16, 2005

I hate your wiki!

I fucking hate your wiki! I'm serious. It makes me want to gouge my eyes out with a cheese grater.

The basic idea of Wiki is that you can slap up a site devoted to some topic, and then anyone interested in the site can post content. Users are encouraged to edit other user's content to make corrections, expand on the subject, ask questions, or whatever. The result of a well implemented wiki should be a living library of constantly evolving data with a community of people working together to maintain and grow it.

Technologically, a wiki is just a simple content management and publication system. It combines etiquette guidelines with simple text formatting rules to make authoring content as simple as possible. The concept is based on the idea of implementing "the simplest thing that can still work”, a design principle from extreme programming. The etiquette rules are easy to follow for any reasonably mature person. And most wiki systems maintain a version history of each page so you can see what has been changed (and sometimes even who made the changes).

There are many different wiki sites on all kinds of topics (including a massive encyclopedia project), but in actual practice most wiki sites are devoted to software projects. Wiki is especially popular with open source projects where the wiki acts as open source documentation. It is expected that the people that write code for the app will add to the wiki too. Users of the software are also asked to contribute to the wiki if they have insights that other users may find useful. Since I'm a developer, this is where I personally run into wiki sites most frequently.

The geek in me loves the simple elegance of wiki, and I'm a big fan of collaborative works and online communities too. But I have come to loath all things Wiki. The phrase "have you checked the Wiki?" makes me want to vomit.

No, I didn't check the fucking wiki!

The reason I didn't check the wiki is because the wiki sucks! It is a giant garbage heap of trivial shit that anyone who can spell "wiki" already knows. The answer to my question, if one of your lazy wikizens even bothered to add it to the wiki, is buried so deep in the tangled mess of irrelevant and obvious junk that it'd take me longer to find my answer than it would take me to correct every spelling error on the entire site. If I do find something vaguely like what I am looking for, it'll be based on a version of the software so old that the information will not be useful to anyone still alive. Of course, there will be a note by one of the developers related to the new version, but the note will be in indecipherable indian-pseudo-engrish. In an act of desperation, I'll try to follow one of the links to an external site only to find that the site was recently bought out by pumpkinfuckers.com where someone wants to hook me up with some horny house-wives and sell me Russian vioxx.

It's about this time that I reach for the cheese grater.

There seems to be one overriding (unwritten) rule in wiki-land. Every useful piece of content in the wiki must have an evil twin page. It works like this. I'll be snooping the wiki for information about some aspect of some software. I'll come across a page with good info. This page will have nothing to do with my immediate question. Two days later, I'll have a new problem and need to find that good page again. I KNOW the answer is on the wiki because I've seen it before. But a search, no matter how carefully crafted, will only turn up the evil twin page. The evil twin will have a simple bullet list of summary trivia almost but not quite related to my investigation. It'll also have 900 links to other pages in the wiki and a few vioxx-sponcered external links. But NOT ONE of those links will lead to the good page I'm looking for. Every other page in the wiki that references the topic will link to the evil twin page... except ONE... and that one page with the magic link will be the page in the wiki most unrelated to my question.

It is also a rule that every wiki has to devote 1/2 or more of the links to other sites that explain what a wiki is about. These sites are written by permanent residents of wonderland, who write prettily yet manage to miserably fail to explain the concept of wiki. These "about wiki" pages will all make wiki sound like some sort of deity, and that any involvement in wiki is a religious cult affair (this may be true). No where in these pages will anything about wiki actually make coherent sense.

There are a few other unpublished wiki rules:
  • The most well documented topics on the wiki must be devoted to explaining the most obvious and mundane aspect.
     
  • Any commonly asked about topic must have no less than 10 different pages explaining the topic in great detail, but every single one of them must provide completely contradictory information or be so outdated as to simply be misleading or confusing. You should also throw in a couple of pages on the topic that provide no useful information at all. This can be achieved by visiting a Denny’s about 5am on Friday night and collecting napkins with drunken scribbles all over them. Just post the contents of the napkins and make sure as many pages as possible sneak in a link to the drunken-dumb-dumb page.
     
  • You must link to the same page every time the name of the page is used, the author of the page is mentioned, or the content of that page is even hinted at. That way a page containing only five different links will appear to be an index for the library of congress. This will scare off most people before they truly comprehend just how damned useless your wiki is.
     
  • You must avoid useful navigation at all costs.
     
  • You must make sure that anyone moderating the site removes all content that is relevant within 1 day of posting. This is to make sure that any helpful contributor feels unwelcome and never posts again. Be sure you email the contributor and explain how their post was inappropriate (make up a reason). This is especially important for software wikis since it will spare the pride of your programmers by ensuring that they remain the most informative of your site's contributors even though they stopped updating the wiki 5 minutes after it was put online and have long since forgotten it was there.
     
  • You must enlist the aid of at least one user who always posts something that starts like this: "I disagree with this because...” This user must update every page in the wiki, several times if necessary, so as to argue against any point previously made by another user. This user's posts must be condescending, irrelevant, and argue the most minute and irrelevant detail possible. This user should, if possible, be completely ignorant of the topic under discussion and constantly refer to open source, Linux, and must refer to Microsoft as M$.
       
  • It is most useful to have a very pretty front page on the wiki with a nice clean and professional layout and design, but completely random layouts and color schemes on the rest of the pages in the site.
     
  • You must make absolutely sure that you have a completely different menu and navigation system from any other wiki ever made. If your navigation fails to resemble any previously encountered anywhere on the internet then you get bonus points. Also, make sure the words and phrases used in any navigation system are the most obscure synonyms possible.
     
  • Any search feature of the wiki must omit all of the useful content pages. It must also omit at least 30% of the evil twin pages just in case one of them accidentally links to a page someone would want to read. Don't worry about Google... Google's spiders will get so frustrated trying to navigate around your twisted redundant-link infested wiki that it'll give up long before it actually makes it to a page with useful content.
And that is why I hate, hate, HATE  your piece-of-shit wiki!

Where is my cheese grater?


Friday, January 28, 2005

Got 'em with a fax-back!

So, Caress tells me a story today about how her co-workers don't trust her. For background, she works at a security alarm company. For security reasons I can't name the company, lets just say it is a pretty big security franchise that rhymes with steamroll if you get really drunk.

Anyway, it fell on Caress's shoulders to order new electronic door passes for a customer. To do this she had to contact the parent office in a nearby city and have them make the passes and send them to her. She also asked for a list of the new pass codes (numbers) and who each code was to be assigned to (so she could make sure the right people get the right pass).

One employee at the parent office who we'll simply call Ms. Bee took Caress's issue, and then faxed her the requested list of codes.

Later another person at the parent office, who we'll call Jewel, came to the conclusion that Caress shouldn't be allowed access to those codes because she isn't certified in North Carolina (where the parent office is located).

Never mind that Caress is certified in South Carolina where her office and the customer are both located. These details are not directly relevant to the story.

So... anyway, Jewel calls Caress up and says something very much like this:

“You shouldn't have those codes, so I'm going to have to ask you to fax them back to me.”

<blink>

<blink>

Of course, Caress must not have been on her game today because her reply was:

“I'm going to make a copy first”