Showing posts with label Geek. Show all posts
Showing posts with label Geek. Show all posts

Saturday, December 11, 2010

Tweet!

Simone has some new pajamas.

I noticed that one of them has a cute little purple bird on the shirt, shaped kind of like a paisley.

And it's saying "tweet. tweet."

I think it's her first geek shirt, it's a twitter shirt in disguise.

I was hoping her first geek shirt would be about Emacs, or xkcd.

Friday, December 10, 2010

Doodling In Math Class

I saw this page and was blown away by the doodles and Vi Hart's humor and explanation of the intricacies of math and doodles. They're well worth the watch.

(hat tip Ze Frank)


Wednesday, February 18, 2009

6174

I just found out about Kaprekar's operation, and the mysterious number 6174. Check it out.

People are amazing - why did Kaprekar even think about this? Similarly, some humorists boggle my mind - I've no idea where xkcd comes up with ideas like:

Saturday, January 24, 2009

ChangeDetection

One of my gripes about web pages is that too few have RSS feeds. I want to read them when they change, but it's too much of a pain to go back to that page day after day (especially when they only change every week or two).

Well, it's the internet - and somebody has solved that problem for me:

ChangeDetection - Know when any web page changes

You enter a URL, and customize how you want to be notified (email, RSS) and how often to check, and voila! You'll be notified when a change happens.

I've got two pages I'm watching, Bill Maher's New Rules which I find endlessly entertaining, and Obama's executive orders.

Tuesday, July 29, 2008

Big Dog!

Pretty cool looking robot, its walking motion reminds me of a deer (or two very skinny legged people facing each other). It covers some incredible terrain, and can even leap over an obstacle. Check it out: Boston Dynamics: Big Dog

Friday, July 25, 2008

Slick Idea

Miles pointed me to this cool product - a memory card with WiFi, allowing you to automatically upload pictures from your camera (either at home or at various hot-spots). I don't think I'm going to get one (I just bought a nice 8GB card - which is 2000 photos with highest resolution). However, if we were to travel much, this would be a really easy way to keep track of where and when pictures were taken.

Eye-Fi

Friday, June 20, 2008

Wordle!

Awesome! Wordle

The first is of my del.icio.us tags, the second is of this blog.



Wednesday, June 11, 2008

My Work In A Press Release

Just found out there's a press release that talks about what I'm working on:

Mentor Graphics Outlines IC Implementation Strategy to Address Sub-45nm Challenges: Financial News - Yahoo! Finance:
"A new Calibre nmLVS tool with interactive debugging features (to be released to the general market in the second half of 2008) that will speed layout-versus-schematic checking with automated suggestions for fixing the design, improved short identification, and overall improvements to the environment to reduce debugging time."
I'm the one writing the new LVS debugger. woo-hoo

Friday, May 30, 2008

twitter

I've heard buzz about twitter. People in the blogosphere are using it constantly, and many think it's the neatest thing since sliced bread.



I was listening to stackoverflow (or maybe this one) on my run yesterday and Jeff Atwood was waxing on and on about twitter.

And then it hit me. Twitter is just a way for people to feel connected to their community on the web when they can't be in front of their computers. Or, put another way, people who are not comfortable in their current social setting/community.

Imagine being out with friends - at a restaurant, or sporting event, or rock climbing, whatever. You pause and enter a little twitter message. Who, exactly, are you communicating with and why? Your friends probably think it's rude (I certainly would), and how does "connecting" with your titter community reflect on your current social situation? And receiving other people's twitters in those situations? Are your friends boring you?

Seriously, it's OK to not be connected all the time, it's OK to be alone for a little bit.

Thursday, May 08, 2008

Beautiful photographs of a thunderstorm meeting the plume of an erupting volcano

Check out the slide show: Fotos Tormenta eléctrica en erupción del volcán Chaitén - TERRA

Forgive my geekiness, but it looks exactly what I imagined the battle between Gandalf and the Balrog looked like had it happened in real life. Here's what others think it looked like.

Tuesday, May 06, 2008

XPilot

I've no idea what brought this memory up, but back in grad school we found the XPilot game and became addicted. You could play people all over the world, any time of the day. We hosted our own, local, games, and enjoyed seeing who would join (sometimes we got players from Germany).

The XPilot craze lasted a few months, but many of us first-year grad students lost days to playing this. I'm glad to see it is still an active game, though I doubt I'll play it again.

Friday, December 28, 2007

Life Is Too Short For Bad Code

I started a programming blog a couple of weeks ago and figure it's time to share with the vast audience of my personal blog. I thought it might be interesting to see what (if any) kind of audience I could get for programming folks. My personal blog will never grow larger than my family and a couple of friends, and that's just fine. But, it's possible I could find a small community that finds what I have to say regarding programming interesting.

Mostly the programming blog will contain tips for Emacs. During my last 3 years at Intel I had a tip of the week which was mildly popular in my department. I thought I'd keep that up now that I'm outside Intel. But I'm also going to post other ideas/revelations I've had regarding programming. It's an outlet for my programming geekiness.

I don't have any fallacies about making money with the blog (either of them), nor of even getting a readership of more than a couple dozen at most. I certainly don't have the time, and probably not even the ideas, to get a blog to that kind of popularity.

So, without further ado, here's my programming blog: Life Is Too Short For Bad Code

Thursday, December 27, 2007

Coolest Thing This December

Johnny Lee is genius, check out this 3-D hack for display, it'd make for an awesome game.



He's also got prototypes for interesting displays, auto-configuring displays, a steady-cam, and low cost interactive whiteboards.

Tuesday, November 13, 2007

SMART I Am

So I took the bus into work today. I get off I-5 in Salem and hop on s SMART bus, which frees me from driving the last half hour. When I started looking for an alternative job to Intel I told myself that I needed to expand my resume. You see, most of my experience is in the languages C++ and Tcl, and while C++ has a good reputation and reasonable job prospects, Tcl is a veritable dead end.

So I've decided to start playing around with Java, and when can I do that??? I'll do it on the bus ride to work.

We'll see how it goes.

Monday, November 05, 2007

Google Branding

This guy had an interesting question (well, ok, it's kind of mundane, but I'd thought about it recently) would you switch from Google if a better search engine came along?

Sure, if Google were *only* a search engine, I'd probably switch. However, I'm using it for more and more stuff. I use it for my primary non-work email, for calendaring, IM chat, blogging, RSS feed aggregator, the searchbar, and (obviously) the general search engine. So, they've built up enough collateral that I'd need a large jump in search improvement (like 10X better, or natural language processing) to switch.

Plus, I like the way Google does things. For one, their products/services just work. And secondly, they use open standards for their implementation. Which means, I can use their IM chat server with any client (doesn't have to be GTalk), I can read my GMail with whatever client I want (they just added an IMAP interface), and their calendar works with ical format, so I can use it to consolidate my work calendar with home. So, even if I want to move away from Google search, I know I can still use their other services because they don't lock anyone out of using their stuff via proprietary interfaces.

Monday, September 24, 2007

Wednesday, September 19, 2007

Gmail -> 1-2-3?

Joel (the author of probably the world's most popular software blog) thinks Gmail might go the way of Lotus 1-2-3:
Strategy Letter VI - Joel on Software

Thursday, August 30, 2007

Interviews

I just don't understand it. Almost everyone I interview is pretty clueless. It's very frustrating to go into an interview with a list of questions and have the candidate strike out on nearly every one.

My group is looking for a person who would be a good lead developer for the GUI portion of one of the Calibre tools. So, obviously a NUB probably wouldn't qualify. But to be honest, the recent grads probably know more than the two ... um ... candidates (biting my tongue here) I've had the ... joy of interviewing.

The first was someone already working for Mentor. He'd been there for 7 years. Turns out he had a masters - of mechanical engineering (I didn't notice the area of study until after the interview). I lined up my standard line of questions, the first couple of which I'm embarrassed to even ask. Because the the first set of questions are embarrassing, I begin by saying something to the effect that I always ask these questions and if they seem too simple, we'll blow right through them, it's not to be taken as an indication of my first impression of the candidate.

Here's essentially what I ask:

  • Name some basic data structures. What are the trade-offs of using one over the other?

  • Define the following C++ terms:
    • inheritance
    • virtual functions
    • static functions/data
    • abstract base class
    • pure virtual function
    • operator overloading
    • templates
    • polymorphism

  • When do you use templates and when should you use inheritance?

  • First programming question, complete the following:
    int string_to_int(char *str) {
    /* convert string representing a number into an integer */
    }

    Restrictions come in as appropriate: (can't use atoi, strlen, exp, use only O(n) multiplications.

  • You are given a long line and are told to cut it up into pieces.
    The restrictions are:
    .) No piece can be shorter than some MIN length
    .) No piece can be longer than MAX length
    .) Every cut must be on a unit boundary
    .) There are locations that cannot be cut, presume the function can_cut(x) tells you whether or not you can cut at a location x

    Describe how you would do this.
    Can it be done in linear time/space?
  • A design question from my brother: design a messaging system to handle arbitrary messages of a variety of types, with listeners and senders who may be geographically diverse.
  • And lastly, because we had a little time:
    Write a function `samepattern' that takes two string arguments, 
    and returns true iff the strings have the same pattern. Two strings
    have the same pattern if when elements are equal in the first string,
    the corresponding elements in the second string are equal, and vice
    versa.



Well, the first guy barely answered the data structures questions - which is a bad sign. He did marginally better with the C++ questions, and then we hit the first programming question. He had a horribly difficult time realizing that 123 is 1*10^2 + 2*10^1 + 3*10^0, and finally, after I provided that information he had a tough time figuring out the solution (we never went through refinements, I needed a break). The rail-cutter problem simply baffled him - he had no idea where to start when his algorithm reached a point where he couldn't make a cut. The design question was abysmal, I got a couple of class names out of him, but I had to hold his hand to get each one. I forget how I ended things, but I tried to keep a smile on my face.

The second guy I interviewed did better. He got a little flustered with an impromptu virtual function question I wrote, but it was obscure. He had written string_to_int sometime in his long history (he'd graduated college before I was born), so he nailed that. At that point I noticed he didn't write anything down - no big deal as he nailed the question. We moved on to the rail cutter question and he had some trouble. His code (once I got him to write things down) was horribly ugly and showed he had no idea how to actually return the results. Furthermore, he had NO confidence his program would work, and simply guessed at the runtime. The design question was like pulling teeth, he didn't seem to like talking about design, nor did he seem to think about the scaling implications of a large system. Then, with the few remaining minutes I thought I'd throw him a softball, the 'samepattern' function, so we could end on a high note. He stared at the problem (only responding by saying he understood it) for 8 minutes before giving up.

The first guy just bombed, the only feedback for him would be to go back and study your CS101 and other introductory courses. He, at least, was eager and energetic and put forth a great effort.

The second guy, well, he's been around long enough to know better.

First, be confident about what you're doing, and if you're not, have an idea where the problems might be. He literally told me he didn't think his solution would find all the test cases. Ok, that's honest, but it tells me he really didn't understand the problem he told me he did, nor can he recognize the exhaustive search he just wrote (which did cover all cases).

He then said it'd run in polynomial time, which covers most everything. I asked him to refine that, b/c that covers everything from linear to N^100000 and beyond. He had no idea, letting me know he'd just guessed. His solution ran in exponential time, much worse than polynomial.

Third, write stuff down. It's fine to talk, I encourage people to talk, talking is good because it lets me know your thought process. But if the interviewer passes you a piece of paper and a pen and asks you to "write a solution" then you'd better do that. Hand-waving only gets you so far and I, as an interviewer, am going to ask specific questions to get through your hand-waving.

Lastly, never simply give up on a problem. Try talking through it, brainstorm, do something. Staring at a problem for 8 minutes w/out saying anything is a sure way to lose the interview. Especially when the problem was literally taken out of an introductory CS course.

Lastly, at the beginning of the interviews I ask candidates how they think they rate on a scale of 1 to 10 (clueless to expert) for each of their programming languages. People seem to respond 7 or 8, regardless of their actual background. For C++, I find it very interesting that someone would answer that high of a number when they either don't use STL, or have only used STL. Now a scale is rather arbitrary (and the geeks who're reading this far are thinking, "well, is is the scale linear, logarithmic, what?"), but still. If you've never done template programming, nor can you explain *why* you'd want to do template programming, you're likely not an 7, surely not an 8. And if you stumble horribly on a virtual function question, you don't rate above a 6.

Ironically I think I'm a 7 or 8. At least I can answer all my questions.

Tuesday, August 07, 2007

Nice Math Proof

I was never very good at math proofs (I could do math classes, but I'm sure I never came up with anything that wasn't an answer to a textbook question). This proof is pretty neat in that it's solving something relatively complicated, but the math works out so beautifully.

Polymathematics: Trekking Into the Desert

Monday, July 16, 2007

Smart Simone

Wanna know how smart Simone is?

She made a meta-rattle the other day and played with it.

And you probably don't even know what one is...

(a rattle made from another rattle)