Browsed by
Category: Uncategorized

27:12

27:12

I ran the annual Intel 5k here at work one afternoon and this was my time (albeit the actual course was 3.22 miles instead of 3.10).  8:30/mile pace.   Not bad considering this was my first timed 5k race since I was in high school (and I was just running it at my normal nightly pace – not racing it); but honestly, my worst times as a freshman in high school were like this.  I think I regularly ran 22-ish minute 5k’s with a few ventures down to the upper 20-minute range.

I still keenly remember the very end of my senior year track season.  I was standing on the hill above the track at my high school with my good friend Jason Wortman after having just run a 5:02 mile and saying, “You know, this might be the fastest/best shape we’ll be in for the rest of our lives”.  Maybe I should prove that statement wrong… 🙂

Even God didn’t like it…

Even God didn’t like it…

Wow, wow, wow.  You can’t even come close to making this stuff up.

The giant ‘King of King’s’ Jesus statue in the midwest (Monroe, Ohio) that had been drawing flack for years received it’s ‘divine’ critique last night when it got HIT BY LIGHTNING and BURNED TO THE GROUND.

News article of the fire with ample pictures:
http://www.wlwt.com/news/23900484/detail.html?hpt=C2

Song by Heywood Banks from the local Indiana Bob and Tom radio station:

The goggles – they do nothing…

The goggles – they do nothing…

Green safety bike-boxes ‘do nothing’:
http://www.portlandmercury.com/portland/thinking-outside-the-bike-box/Content?oid=2122941

Portland paid $200,000 to paint little green bike boxes at a few intersections to curb bike/car accidents.  When this idea came up – a great number of voices lauded it.  Well, after an actual independent study – it’s proven they don’t do much either way – mostly because there were statistically so few accidents to begin with involving intersections such as these.  Maybe it helps raise awareness of bikers by putting them in front of you?  Don’t know, but glad someone is actually studying the effectiveness of these efforts.

A rant on some of Microsoft’s API development over the recent years

A rant on some of Microsoft’s API development over the recent years

I’m becoming more and more tired of Microsoft’s mindset of how software should be written.  As an engineer, I can see exactly how they’ve gotten to where they are design-wise – but think it’s time they took a step back and take a look at exactly what they’ve gotten themselves into.

I often frequent a MS insider’s blog who fields problems that end-developers encounter using Microsoft’s interfaces and API’s (The New Old Thing).  Again and again I’m struck by how un-developer friendly some of the newer API’s are.    The API’s can be very unforgiving and inflexible – and confusing.  And the reply you usually get when confusion results of the design decisions and logic are often condescending (actual clip from responses when users/devs give feedback):

“So, I’ve done everything according to the docs and it isn’t doing what it says it should – is the b operator broken?”
No, the b operator is working just fine. The problem is that the b operator doesn’t do what you think it does.

Back in their Win32 days – the API was relatively clean, pretty understandable, and fairly easy to pick up.  But now, with some of the ‘programming features’ in .NET stuff I’ve seen – it makes me glad I’m still in good-old C++ land.  Auto-initializers, massive use of custom data types with strange member functions for interacting with the data, metadata with your classes (Metadata EVERYWHERE in fact), it’s very hard to know what’s really going on under the covers or why the design ended up the way it did.  Maybe I’m old-fashioned or write things that don’t fit nicely into their wizards, but I LIKE knowing what’s going on under the covers. Just ‘trusting’ the API to figure out what I’m trying to do has never done anything but get me into mysterious corners that reason and logic can’t get you back out of.

What I really want as a developer is to be able to develop QUICKLY.  However, I think MS has misunderstood that term.  QUICKLY doesn’t mean getting “Hello World” up in the fewest number of mouse clicks/lines of code typed.  Quickly doesn’t mean I can use some kind of wizard. Speed of development depends firstly on how quickly I can LEARN THE PHILOSOPHY AND DESIGN OF THE LANGUAGE I’M USING.  If I understand those two things – then when I hit a moment of saying “I need to do operation X (which I currently don’t know how to do), I can REASON OUT what it is I need to look for.  However, if you say to yourself, “I need to get the current working directory”, then find out that you need to learn a special new kind of string class with all kinds of new struct types for initializing/interacting, a new kind of file system iterator, etc – you find yourself spending 2 hours trying to learn how to interact with the monstrosity of the language instead of developing real working code.  I could do the above operation in 1-2 lines in Unix c and Win32, but some .NET and other MS API’s have becoming horribly confusing to figure out.  Why?  Because the API’s seem so certain that you need lots of help to write anything, they’ve re-worked every old data type and API call you know and love. THIS kind of attitude is what slows development to a crawl when working on new API’s/languages.

The final nail that makes it all disappointing as a developer is knowing that NOBODY else is using the language that you’re now spending all this time learning.  You feel like you’re spending all this time as a wasted effort in learning non-transferable knowledge.  As a computer scientist – I know the theory behind languages – I have the transferable part of computational/languages theory down.  What I’m really doing is learning the non-transferable parts – and I find myself doing that in spades with some of Microsoft’s newer API’s and not in a good way that helps my career along the path of inevitable growth and change.  At least it’s starting to get compacted down in C#; but it’s taken a LONG road from Win32->MFC->COM to get us there – and I’ve forgotten more of that stuff than I care to try and recall.  But if I learn C or Haskell or Java – at least it works cross-platform and I know I could write it on a Mac/Unix too.  It’s a good use of my time.  But I just don’t get that feel with most modern MS stuff.

It’s frustrating; but I don’t know what the right answer really is.  Maybe this is the way things need to develop.  Perhaps I should ponder and write up a bit about the comparison of how new platform solutions are designed by MS, open source, and Apple OS’s…

Washington state considers 10% tax on ‘custom software’ development

Washington state considers 10% tax on ‘custom software’ development

“The largest policy problem for me, however, remains the fact that it is not technology neutral and would result in a direct disincentive (in the form of 10% higher costs for not doing so) for a company … to use ‘insource development resources’ as opposed to ‘outsource development resources.’  What does this mean? It means that a 5 person team of entrepreneurs building a cool custom software suite, or a group of system integrators, would face a 10% tax on their services while keeping the exact same project in-house would not be taxed. It would be a massive blow to the entrepreneurial community in our state. ”

http://reuvencarlyle36.com/2010/03/24/custom-software-and-turkish-baths-now-thats-an-interesting-tax-policy/

While I’m no fan of the tax, I don’t see it as quite the dis-incentive to entreprenurialism as he claims.  This bill seems to only impact those doing CUSTOM work for a customer.  If they’re developing a retail product to be marketed to many customers, they won’t be affected.  Custom software work usually is exclusively licensed to that one company….BUT…

I find the interesting point that he makes a big deal that this bill will likely encourage big companies to do in-house development instead of out-sourcing it.  While I think this would be mostly good for employees as in-house jobs are usually full-time positions with better benefits and more stable employment; I do see that it would likely hurt a community’s goal of getting a seed company in and then developing an robust ecosystem around that business.  One that would encourage an ecosystem around that industry – instead of one large mass in one single company.  This bill would likely encourage more monolithic companies with less support companies around it.  And that WOULD be bad for a community in the long run in two ways.  First, if the big seed company failed or moved out, there would be nothing else for the workers to do but move too (ala company mining towns of Appalachia).  Secondly (and probably closer to this politician’s heart), is that it also put the city/government in a tough negotiating spot with said monolithic company who could push their weight around.  I believe he’s thinking very much of Boeing outside of Seattle.  They asked for some big tax breaks, then shopped around till they got them elsewhere.  Seattle couldn’t/wouldn’t match the offer and they moved.   Puts city officials in a terrible spot if your economy is a one-trick pony, and if you lose that, you lose everything.  It would be far better to have a big, diversified portfolio of support companies around your seed that could re-direct to other work, or even create new industries, if the seed company left.  It also has the nice effect of giving the government more leverage if a big company threatened to take their toys and go home.

But even with this greater diversification of support industries, I don’t think you could avoid a hit like Detroit and surrounding areas are seeing.  When a whole industry goes south – it’s necessarily going to drag the others with it.  The black hole’s even horizon is just too big and it’s very hard to switch a profitable business model from machine tools that stamp car parts to stamping bread tins.  Still, it’s better than those old single-company towns and the abuses there.

Guess company towns aren’t quit a thing of the past at all.

Smash Putt!

Smash Putt!

Went to a great little putt-putt activity over the weekend.  The economy has not been kind in Portland, and businesses are shuttering at a somewhat alarming rate.  Right on NW Burnside there were no less than 3 shops right next door to each other that went vacant.  So what to do?  Invite a bunch of art folks in to design some putt-putt golf courses in the empty space.

 

Virtually every course had some kind of automated/moving parts.  The top left had rising/lowering sections and ramps that toggled with the push of a button. The middle “infinity” symbol had it’s hole was at the top – and would kick your ball  out the opposite direction you hit it in.  So if you got a hole in one, it would kick your ball out down the other ramp and end up right where you started (infinite putt-putt), and the picture on the far right had Foosball guys sliding back and forth.

Other notably fun holes had power tools that would turn on and kick your ball out.   Air cannon guns on the ‘shooting range’ course that shot your ball out into a shooting range full of targets (30+ feet!), and all kinds of other fun courses.  Below are clips of some of them, but I was using my iPhone and it was quite dark:

Overall, I’d say it was some good fun – and still going on for another weekend – so get on in and enjoy some fun!

Google interview question

Google interview question

In a certain country, a family continues to have children until they get a boy.  When they get a boy, they have to stop having children.   Otherwise, they keep going.  Assuming there is always a 50/50 chance of a boy/girl when having any one kid and nobody stops ‘early’ – what’s the ratio of males to females in such a society?

Answer(spoilers):
At first your gut tells you there needs to be more females than males – after all, there’s going to be families out there with 2,3,4,5 or even more girls.  Yet only 1 boy.  However, if you start thinking about it this way, a shocking revelation comes:

A families first birth:
1/2 = boys -> they stop here, no girls at ALL in 1/2 the households
1/2 = girls -> they go on….

2nd birth for those families with one girl:
1/2 = boys -> they stop with 1 girl, and 1 boy
1/2 = girls -> they go on….

so now it becomes a sum of:
boys = 1/2 + (1/2)*(1/2)+ (1/2)*(1/2)*(1/2) + (1/2)*(1/2)*(1/2)….
girls = 1/2 + (1/2)*(1/2) + (1/2)*(1/2)*(1/2) + (1/2)*(1/2)*(1/2)…

Whaaaa?? – its the SAME.  Yep – the count of the number of boys and girls will be the same.  See, we forget that 1/2 of the families will have NO girls at all – and that’s a big smack to the overall number of girls.  Sure, there may be families with 2,3,4 or more girls, but always one boy – and that combined with the fact half the population’s families will only have a single boys child equals out.  Crazy but true.

Project Offset hits the news wires…

Project Offset hits the news wires…

 Been a busy week for the project I’m helping with, Project Offset:

After a early drop of information here:
Article:  http://ve3d.ign.com/articles/news/53216/New-Project-Offset-Tech-Demo-Trailer-Released
Movie:  http://www.youtube.com/user/intelswnetwork

Yesterday Offset then gets on the frontpage of Slashdot: http://games.slashdot.org/story/10/02/22/2312200/Real-Time-Movie-Quality-CGI-For-Games

Or you can see it straight from their site here (you’ll find me on the Meet the Team page if you need proof)
http://projectoffset.com/