<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkANRH48cCp7ImA9WxBTE0w.&quot;"><id>tag:blogger.com,1999:blog-19646899</id><updated>2009-12-08T15:26:35.078-08:00</updated><title>Technical Revenue</title><subtitle type="html">Watch this one closely...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://paultyma.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/TechnicalRevenue" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DUANQXkyfip7ImA9WxRaEEw.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-843422730784686312</id><published>2008-12-03T07:52:00.000-08:00</published><updated>2008-12-11T09:49:50.796-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T09:49:50.796-08:00</app:edited><title>Why you shouldn't be reading this blog</title><content type="html">Last March I wrote a blog entry called &lt;a href="http://paultyma.blogspot.com/2008/03/few-ideas-about-negotiation.html"&gt;"A few ideas about Negotiation"&lt;/a&gt;. It wasn't too beefy, was a simple collection of things I've learned, and from the feedback, a few people even got some information from it.&lt;br /&gt;&lt;br /&gt;As is common, it found its way onto a few Internet news and/or blog aggregator sites. On one of those sites, someone posted a comment to my article. It was:&lt;br /&gt;&lt;br /&gt;"I haven't heard of Paul Tyma -- what's his credibility in writing this article?"&lt;br /&gt;&lt;br /&gt;Original &lt;a href="http://news.ycombinator.com/item?id=140307"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wow. Good damn question right there. And I'm pretty confident I have a pretty damn good answer. Which would basically be "none, nada, and zip". Who the heck am I to tell you on how to negotiate? Nobody - that's who.&lt;br /&gt;&lt;br /&gt;Now I'll note that my article wasn't called "How you should negotiate" it was just "a few ideas about negotiation". To get technical, I suppose anyone is qualified to write such an article. Heck, my ideas could have been dead wrong, but true to my title - they were still ideas.&lt;br /&gt;&lt;br /&gt;Regardless, there are most definitely more qualified people in the world than me in the area of negotiation. I've certainly done a bit, but guys like used car salesmen do it nearly every day. They're the ones who should be writing a negotiation blog. &lt;br /&gt;&lt;br /&gt;What got me more about the commenter's post is that particular site was an entrepreneurial news site that commonly referenced blog articles. Many of those articles were giving advice - and just like my article, I basically had no reference as to the "qualifications" of any of the authors.&lt;br /&gt;&lt;br /&gt;Some of the authors had started many companies and gave experiential reports. But other ones, in fact some of the popular ones, were someone who made a website over a few weekends, called it a "start-up", then wrote down a post-mortem about why their grand launch had failed. I was a bit surprised that my commenter saw fit enough to question my qualifications in writing that article. I mean, thats what the Internet is - isn't it? A collection of anyone saying anything for any reason they want.&lt;br /&gt;&lt;br /&gt;They say that the Internet has started to make us dumb. I'm not sure I agree with that statement. What I do think is happening is that the Internet has given everyone (or anyone) a voice. And although that sounds all democratic, it might not be all its cracked up to be. What I mean is that the Internet is fantastic at disseminating information - but nothing is even partially guaranteeing that that information is correct.&lt;br /&gt;&lt;br /&gt;Before the Internet we read things in books or magazines or newspapers. Now by no means were we sure that the authors of those works were correct or even worth listening to, but they did typically have an editor or boss or someone supporting their work. That editor's job, at some level, was tied to the writer's work being good (and if intended, accurate). In other words, it is by no means a sure thing - but there was a human on the planet with a vested interest in that writing being what it intended to be. Whether that be factual, entertaining, or blasphemous.&lt;br /&gt;&lt;br /&gt;On a large scale, I think its safe to say that writing in that context is going to be higher quality than someplace like the Internet where any single person can write down anything they like and publish it for all to see. Then according to the snazziness of the title or the controversy of the topic, it may be read by thousands or even millions (or of course, maybe no one).&lt;br /&gt;&lt;br /&gt;Quoting from the Internet is like quoting a 9-year old. I have nothing against 9-year olds, but in my experience their viewpoint tends to be limited and their agendas rather linear. Even if what you're quoting isn't from a 9-year old, you basically need to treat that as the lowest common denominator. If you don't have assurance of the source, then you simply can't be sure.&lt;br /&gt;&lt;br /&gt;So, to my fair commenter who strongly questioned my qualifications on writing that article on negotiation, I'll meekly admit that I have none. On the other hand, from an opposite perspective I could claim that I have plenty - or at least as much as every other random blogger on the Internet. So either you really shouldn't be reading this blog - or - if you feel it brings you value, then logic be damned. I'm glad you're here.&lt;br /&gt;&lt;br /&gt;The Internet itself isn't making us dumber - but it is muddying the waters between facts, lies, and misinformation. Surely at times we find written works that are great, but there's less guarantee than we ever had before that they are worth anything at all. The Internet has added a whole new dimension to the phrase "Don't believe everything you read".&lt;br /&gt;&lt;br /&gt;And ironically, if you think my whole idea is flawed and what I've written here is total garbage - then I dare say, we are in complete agreement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-843422730784686312?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/QzRJass4RGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/843422730784686312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=843422730784686312" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/843422730784686312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/843422730784686312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/QzRJass4RGc/why-you-shouldnt-be-reading-this-blog.html" title="Why you shouldn't be reading this blog" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/12/why-you-shouldnt-be-reading-this-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHSHk-eSp7ImA9WxRVFE8.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-3927564165655386534</id><published>2008-11-11T09:46:00.000-08:00</published><updated>2008-11-11T10:47:19.751-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-11T10:47:19.751-08:00</app:edited><title>A thought experiment on the end of Humanity</title><content type="html">Pretty slick title huh? Thought of it myself.&lt;br /&gt;&lt;br /&gt;My girlfriend used to be a high school teacher. She told me an interesting fact - she said one of her bigger issues was that sometimes when a student handed-in an assignment, it wasn't uncommon for it to be something the student simply found on the Internet, cut-and-pasted into their word processor and handed it in. If you're like most people I tell this too, you're a bit unhappy about the laziness of these students. Instead of learning something for them self, they simply used Google to find it, and (effectively) recite what they found. Pretty weak, eh?&lt;br /&gt;&lt;br /&gt;Einstein was once asked how many feet are in a mile. He replied something like "I don't keep information in my head, when I can just open a book up" (I googled that). Einstein apparently didn't have google.&lt;br /&gt;&lt;br /&gt;Funny thing is that when Einstein was alive he'd look up simple facts (i.e. 5280 feet) in a book. Ten years ago we had the ability to look it up on our computers. Now I can look it up on my phone that's with me at all times. What do you think is next?&lt;br /&gt;&lt;br /&gt;Let's say that what's next is mind interface to the net. Surely, this isn't a new idea and people are working on this right now.&lt;br /&gt;&lt;br /&gt;But think a second - what happens when we have instantaneous access to the Internet without moving a muscle. If you ask me how many feet are in a mile and I answer - you won't know if I knew it, or if I "looked it up". And at that point, it pretty much won't matter. If it takes more effort to memorize it (to my real memory) than it will be better and faster to just leave it on the Internet and grab it there whenever I need it.&lt;br /&gt;&lt;br /&gt;Like all technology this promises to have its glitches at first - but eventually, it will be pretty reliable. And what then? Well, if our minds work like our flabby bellies, then our human memory will atrophy. We'll slowly but surely lose the ability to remember things.&lt;br /&gt;&lt;br /&gt;We tend to describe the idea of "knowing things" as wisdom. And we tend to describe the idea of "figuring out things" (like math or connecting disparate concepts) as intelligence. A way to distinguish this is that you can be born intelligent, but you can't be born wise.&lt;br /&gt;&lt;br /&gt;Tomorrow's Internet has the potential to fully replace wisdom. We won't be any less wise - in fact, we'll all be instantaneously super-wise. And equally-wise (which may be weirder than being super-wise). Even children.&lt;br /&gt;&lt;br /&gt;If you think this is crazy - I argue its already happening. Those kids in my girlfriend's old class already find memorizing things to be more effort than simply googling it. As soon as they get a faster interface to that information, they'll take it.&lt;br /&gt;&lt;br /&gt;Most people that disagree with me on this don't actually disagree, they simply fear it. It does spell a fundamental change in humanity - and that's rather frightening. Surely things will change fast. At a minimum, all business that relies on hiding information will be, ya know, gone.&lt;br /&gt;&lt;br /&gt;But it doesn't end there.&lt;br /&gt;&lt;br /&gt;If we all gain super wisdom, then the only mental differentiation between us is intelligence. How fast can you multiply two numbers? How many times must some explain particle physics to you before you get the relationships between the elements involved?&lt;br /&gt;&lt;br /&gt;The first computer beat the first human chess grandmaster in 1998. We pretty much always associated chess with intelligence, but chess is actually a pretty unfair example. Humans approach chess abstractly. In some sense considering the board as a whole, processing it in parallel, and extrapolating opportunities from it. Computers work far differently. They simply examine every possible combination (with some smart algorithms to not examine useless moves) of the game from this point forward. Chess has so many possibilities that it took awhile for computers to get fast enough and computer programmers to get clever enough to search enough possibilities to beat a human.&lt;br /&gt;&lt;br /&gt;Computer "intelligence" is likely farther off than computer "wisdom". But you're fooling yourself if you think it isn't coming. The human brain is in essence, just a machine - damage it and it stops working. Give it alcohol and it gets off kilter. Computers will reach it - maybe not computers as we know them, but computational machines will.  Ray Kurzweil predicts this sometime in the 2020's or so (per the book I read anyway, he might have changed his estimate - incidentally, he predicted computers would beat a chess grandmaster in 1997 - he was off by a year).&lt;br /&gt;&lt;br /&gt;So what happens then? To us I mean.&lt;br /&gt;&lt;br /&gt;By that time we will have farmed out our personal memory long ago. And then, we'll start farming out our thinking. We already happily do this with calculators or spreadsheets. We all know computers kick our ass when it comes to math. Who wants to do long division anymore? Let the computer do it. We've already farmed that part of our intellect out. If you told me I could get a chip put in my head that let me do all math instantly, I'd sign up for sure.&lt;br /&gt;&lt;br /&gt;What happens when computers can do more? I mean, literally think for us. It won't happen overnight. But just like long division and multiplication today - we'll do it little by little. As computers get smarter and smarter, and as our interface to them gets faster and simpler, we'll slowly but surely, give them our thinking tasks.&lt;br /&gt;&lt;br /&gt;And just like the dumbification of our kids today - and just like our fat bellies and long atrophied human memory, our unused thinking capacity then gets lazy too.&lt;br /&gt;&lt;br /&gt;What happens then? Seems like, in some sense, we sort of cease to be as we know us.  We become conduits to some consciousness we created elsewhere. You can call this extinction, paradigm shift, or apotheosis - it probably doesn't much matter.&lt;br /&gt;&lt;br /&gt;I'm not smart enough to know what happens in this borgian future - but I have a feeling, that in 20 or 30 years, I sure will be. And so will you.&lt;br /&gt;&lt;br /&gt;Kurzweil is a great read on ideas of the future: &lt;br /&gt;&lt;a href="http://www.amazon.com/Age-Spiritual-Machines-Computers-Intelligence/dp/0140282025/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1226426009&amp;sr=8-1"&gt;Age of Spiritual Machines&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-3927564165655386534?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/fIc_XVuns6M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/3927564165655386534/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=3927564165655386534" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3927564165655386534?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3927564165655386534?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/fIc_XVuns6M/thought-experiment-on-end-of-humanity.html" title="A thought experiment on the end of Humanity" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">11</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/11/thought-experiment-on-end-of-humanity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMCQXk5fCp7ImA9WxRVE0s.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-608855836424191934</id><published>2008-11-10T10:56:00.001-08:00</published><updated>2008-11-10T16:14:20.724-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-10T16:14:20.724-08:00</app:edited><title>Finally figured out my own view on Agile/Extreme Programming</title><content type="html">Personally, I've always felt agile development (and previously extreme programming) simply took credit for a few existing good ideas, added a few dumb ones, and then WAY overhyped it.&lt;br /&gt;&lt;br /&gt;I've always met some resistance to this - which made me think two things. &lt;br /&gt;&lt;br /&gt;1) It acted an awful lot like a religion - faith with no proof and overzealous defenders.&lt;br /&gt;2) Anytime lots of people disagree with you, you're likely wise to reconsider your position - its not infallible, but its a decent indicator you could be wrong.&lt;br /&gt;&lt;br /&gt;Anyway, with almost no surprise on my part, Don Knuth has made me realize my own position via a recent interview:&lt;br /&gt;&lt;br /&gt;"With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term "extreme programming" sounds like exactly the wrong way to go...with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me..."&lt;br /&gt;&lt;br /&gt;- Don Knuth, quoted from &lt;br /&gt;&lt;a href="http://www.informit.com/articles/article.aspx?p=1193856"&gt;http://www.informit.com/articles/article.aspx?p=1193856&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-608855836424191934?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/zY-i96D0TQk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/608855836424191934/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=608855836424191934" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/608855836424191934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/608855836424191934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/zY-i96D0TQk/finally-figured-out-my-own-view-on.html" title="Finally figured out my own view on Agile/Extreme Programming" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/11/finally-figured-out-my-own-view-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFRXc4fSp7ImA9WxRWEU8.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-3304669527308472769</id><published>2008-10-27T08:50:00.000-07:00</published><updated>2008-10-27T10:38:34.935-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-27T10:38:34.935-07:00</app:edited><title>Never send your Application out alone again</title><content type="html">Anyone that reads my blog knows I was one of the founders of a company called Preemptive Solutions, Inc.  Preemptive was my first startup and has a very been very successful in evolving its &lt;span style="font-weight:bold;"&gt;DashO&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Dotfuscator&lt;/span&gt; product lines.  Those products are near and dear to my heart as the initial incarnation of DashO was spawned from my Ph.D. dissertation work. People often now associate it as a Java Obfuscator, but to me that was largely an afterthought. Its a static analyzer of an interesting sort for Java. I had originally set out to write a Java bytecode optimizer, but I quickly realized that given Java's nature, you fall pretty flat on how and when you can do static analysis.&lt;br /&gt;&lt;br /&gt;Java (and .NET) have very many dynamic components (the more you look, the more you tend to find). My dissertation (http://portal.acm.org/citation.cfm?id=1087610) was most interested in a scheme to identify closed systems inside of Java applications. Basically cordoning off open hooks into Java applications and not trying to optimize across them. In essence, it identifies sub-applications within Java and .Net applications and optimizes those one at a time.&lt;br /&gt;&lt;br /&gt;This is all well and good, but its basically old news.&lt;br /&gt;&lt;br /&gt;Whats new news is Preemptive's new product line. As Preemptive evolved those static analyzers, they got really really good at instrumenting code. In fact it became second nature. Preemptive's new product line takes advantage of this know-how.&lt;br /&gt;&lt;br /&gt;They call it "Runtime Intelligence" - I call it fricking cool.&lt;br /&gt;&lt;br /&gt;I explain it like this... In past decade application servers popped up to provide an application services cradle for which you to drop your business logic code into. Basically, you write a nice little piece of business logic, put it into an application server, and that server took care of all boilerplate details like database access, fault-tolerance, load-balancing, etc. Its a silly idea to think every website had to write code to handle these generic ideas.&lt;br /&gt;&lt;br /&gt;The heyday of application servers isn't what it used to be as many discovered that they added a ton of overhead for applications that weren't using all those shiny services.  In fact, new web or server frameworks pop up all the time to literally "part out" application server functionality. You used to ask someone their server infrastructure and they'd say "Weblogic" - now its not uncommon to hear "Spring, Hibernate, Struts2 and GWT".&lt;br /&gt;&lt;br /&gt;Runtime Intelligence is sort of the inverse of the idea of an application server. Simply put, Runtime Intelligence allows you to "inject" prebuilt functionality modules into your application. So, does your super application need licensing? Does it need to update itself through patching? How about statistics on how people are using the product?&lt;br /&gt;&lt;br /&gt;You got it.&lt;br /&gt;&lt;br /&gt;Write your code like you planned to without worrying about "generic" functionality pieces and "inject" them later.&lt;br /&gt;&lt;br /&gt;Whats more is that Microsoft has bought into this idea in a big way for .NET.  Microsoft today announced a joint press release &lt;a href="http://www.microsoft.com/Presspass/press/2008/oct08/10-27PreEmptivePR.mspx"&gt;(See it here)&lt;/a&gt; with Preemptive at PDC about this product. If you're familiar with how Microsoft works, you know that joint press releases are pretty rare. Its clear to me that they "get it". This is big.&lt;br /&gt;&lt;br /&gt;Preemptive's first round of injectable functionality is pretty slick too. Basically a statistical package for your application. Like web analytics, only for applications. Ever implement a feature and wonder how many people really use it? How about finding out that 33% of your customers never get past the 2nd page on your wizard (maybe its design is too confusing?)  How about finding out that 68% of users tend to do 5 features in the same order everytime - and you could easily add a new feature that does that for them. Simply put - releasing an application into the wild unknown and "guessing" how users use it is a thing of the past.&lt;br /&gt;&lt;br /&gt;Surely, this kind of application monitoring makes a lot of sense for certain types of applications (of course, its not right for every application just the same way other boilerplate functionality like licensing or patching would or wouldn't be). Either way, this opens up all new possibilities in development planning for applications. I expect plenty of meetings between sales teams and project managers discussing this data.&lt;br /&gt;&lt;br /&gt;Some people have compared this to aspect oriented programming, but that's quite inaccurate once you look deeper. I've used both and aspects feel like a sledge hammer (and at least for the packages I've used, an annoying-to-configure one at that).  Runtime intelligence is surgical (as far as I know, no one is doing feature stats with aspects). You write the code and inject real business boilerplate functionality anywhere and anyway you want.&lt;br /&gt;&lt;br /&gt;As you can tell, I'm really excited about this - and I'm doubly excited that Microsoft is on board with it too. If you're going to PDC this week, definitely check these guys out.&lt;br /&gt;&lt;br /&gt;Disclaimer: I have an unhealthy crush on this company.  It has gone farther than I had ever imagined and I'm continually impressed of their accomplishments and future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-3304669527308472769?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/vY5r1Qz-uhI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/3304669527308472769/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=3304669527308472769" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3304669527308472769?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3304669527308472769?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/vY5r1Qz-uhI/never-send-your-application-out-alone.html" title="Never send your Application out alone again" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/10/never-send-your-application-out-alone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEAR3k6cCp7ImA9WxdaGUg.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-7201571386310697658</id><published>2008-08-28T12:37:00.000-07:00</published><updated>2008-08-28T12:44:06.718-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-28T12:44:06.718-07:00</app:edited><title>Probably the hardest sales job ever</title><content type="html">The VP of Marketing of my old company is an absolute master at analogies. One of my favorites was when he described to me the idea of selling a new product that creates a brand-new niche - often a very difficult task.&lt;br /&gt;&lt;br /&gt;He likened it to the first person that had to break ground selling thermometers. Not the "How's the weather" thermometers, I mean the "Do you have a fever thermometers". Surely nowadays these are digital little gizmos, but when they came out they were the old-fashioned mercury based ones.&lt;br /&gt;&lt;br /&gt;I can imagine the sales-pitch:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; So, whats it good for?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; It will tell you your temperature.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; Why do I care about that?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; Well, then you will know when you have a fever.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; Um. I &lt;span style="font-style:italic;"&gt;already&lt;/span&gt; know when I have a fever.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; Yeah, but now you'll be sure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; Erm.. k.. What's it made of?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; Glass&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; Whats that stuff inside it?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; Mercury - careful, its toxic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer:&lt;/span&gt; How do I use it?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; You just put it in your butt for 2 minutes.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Customer:&lt;/span&gt; Um. So basically, you want me to take this toxic-substance filled thermo-thing made of breakable glass, stick it and leave it in my butt for 2 minutes so that I'll know something I pretty much already knew.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Salesman:&lt;/span&gt; Yepper.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Customer&lt;/span&gt;: Awesome - I'll take 2 !&lt;br /&gt;&lt;br /&gt;That had to be a hard job. Solve a problem that was perceived as not needing solving and then do it in a new, dangerous, and highly uncomfortable way. And you thought software was hard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-7201571386310697658?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/AWzcySq0mqo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/7201571386310697658/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=7201571386310697658" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7201571386310697658?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7201571386310697658?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/AWzcySq0mqo/probably-hardest-sales-job-ever.html" title="Probably the hardest sales job ever" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/08/probably-hardest-sales-job-ever.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYBQXs8fCp7ImA9WxdUEks.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-825855670419981960</id><published>2008-07-28T07:10:00.000-07:00</published><updated>2008-07-28T11:02:30.574-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T11:02:30.574-07:00</app:edited><title>Left Google, Starting up</title><content type="html">If you know me personally, you know I left Google a week or two back. I learned a great deal there and had a blast all along the way. It was by any measure a fantastic experience - and although the perks were great, the experience of working with the smart people there is the true draw.&lt;br /&gt;&lt;br /&gt;I thought through this decision a long time and it just came time that circumstances finally tipped in the direction of me leaving.&lt;br /&gt;&lt;br /&gt;Prior to Google I was in my own startup. And thats what I plan to do now. I was fortunate enough to be introduced to a start-up idea that I really like - and for me, thats a pretty rare thing these days (if you read my &lt;a href=http://paultyma.blogspot.com/2008/04/young-mans-business-model.html&gt;previous article&lt;/a&gt;, this is most definitely an old-man's business model). I'm also very excited about the people involved. Everyone involved has rock-solid successful track record of already building successful businesses. We're really off to an exciting start.&lt;br /&gt;&lt;br /&gt;Technically, we'll be on the cutting edge with scalability and performance and of course, turning a billion dollar industry on its head. If you're a crack-shot Java developer with experience in things like Mysql and hibernate, have a near-obsession for clean and fast code, and are interested in getting in on the ground floor of a new startup in San Francisco, California - send me your resume (paul.tyma at gmail.com).&lt;br /&gt;&lt;br /&gt;Edit: Thanks to Bob Cringely for &lt;a href=http://www.pbs.org/cringely/pulpit/2008/pulpit_20080728_005308.html&gt;writing about&lt;/a&gt; my new web service Talkinator - but the startup I mention above has nothing to do with that. The startup is far bigger and I'm very excited at the impact its going to have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-825855670419981960?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/pjoSFfmxziI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/825855670419981960/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=825855670419981960" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/825855670419981960?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/825855670419981960?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/pjoSFfmxziI/left-google-starting-up.html" title="Left Google, Starting up" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/07/left-google-starting-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNQns6eCp7ImA9WxRbF0U.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-5990797205767164099</id><published>2008-04-14T10:08:00.000-07:00</published><updated>2008-12-08T17:28:13.510-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-08T17:28:13.510-08:00</app:edited><title>The Young Man's Business Model</title><content type="html">I've had an idea bouncing around in my head for awhile that randomly came together recently. And given I have a blog, I thought I'd write it down. This idea came from 3 experiences I've had - and here they are:&lt;br /&gt;&lt;br /&gt;Mini-story #1:&lt;br /&gt;&lt;br /&gt;In my early 20's I pretty much did 2 things. Ride motorcycles and code. Oh, and given my motorcycles were always sort of junky and I beat the snot out of them, I spent plenty of time fixing motorcycles too - I guess that's 3 things then. (If you think I forgot dating or went to bars or some such - nope. We're good. 3 things).&lt;br /&gt;&lt;br /&gt;Every now and then we needed an "old man" (like in his 40's or something) to help us fix something when it was beyond our self-taught abilities. Now when I say "old man" here and throughout this article, I don't necessarily mean "old" (and I don't necessarily mean "man") - I mean "experienced". Experienced at whatever I'm interested in at the time - or more specifically, experienced at what I wasn't experienced in at the time.&lt;br /&gt;&lt;br /&gt;And as far as fixing motorcycles, what struck me was the way he'd go about it.&lt;br /&gt;&lt;br /&gt;A rather common case would be something like there being one final screw holding on some engine part that we needed to replace, but it was buried deep inside the engine - i.e. you could barely see it. My first reaction was to wedge a screwdriver in there as far as I could - and see if, with luck, brute force, and karma, I could turn it enough to get it out.&lt;br /&gt;&lt;br /&gt;The old guy on the other hand never went this route. He merely looked at it a moment, then immediately started taking off the neighboring easy-to-remove piece of the engine. Once that was off, he then effortlessly put his screwdriver in to remove the now exposed screw. Now mind you, the old-guy's way was my back-up plan - but I was betting that my brash exuberance would payoff in a slightly quicker result. Sometimes it did - sometimes it didn't - and sometimes I broke screwdrivers.&lt;br /&gt;&lt;br /&gt;This trade-off of investment up-front versus brute-force hope became so obvious that my friends and I used it as vernacular. "Do you want to try this the 'young man' way or the 'old man' way?". It was surprising how without any further explanation we would know all the precise steps involved in both for whatever situation.&lt;br /&gt;&lt;br /&gt;Ok. That was mini-story #1, here's mini-story #2. This is a business story but its actually surprisingly similar to the previous one whether you know it or not.&lt;br /&gt;&lt;br /&gt;In 1997, I was writing a Java optimizer (this made a lot of sense when Java was interpreted) called &lt;a href="http://www.preemptive.com/"&gt;DashO&lt;/a&gt;.  Somewhere along the line I was introduced to a guy at Adobe, who (I was told) wanted exactly what I was building.&lt;br /&gt;&lt;br /&gt;When I finally spoke to him, it turned out that the Adobe guy didn't really want Java optimization at all. What he wanted, was Java application size reduction. It had literally become a show-stopper for what he was developing. He was clear that money wasn't a problem - if I could solve his issue, he was a customer.&lt;br /&gt;&lt;br /&gt;Wanting to please my newfound (big-time) customer I said "Sure! I can add that in!". Then I shrewdly secured the Adobe guy as a beta tester. This changed the direction that my product took and added about 2-3 months of development, but given the payoff, it seemed worth it.&lt;br /&gt;&lt;br /&gt;About mid-way through those 2-3 months my partners and I had lunch with a veteran ("old man") business guy that for some reason seemed to like us and liked to keep tabs on our progress. As I excitedly told him the story of Adobe waiting anxiously for our product, his reaction wasn't as I expected. I thought he'd be excited for us, but instead he had a look of disappointment on his face.&lt;br /&gt;&lt;br /&gt;Me: What? What's wrong - this is awesome - Adobe is our first customer!&lt;br /&gt;Old-guy: So you spoke to Adobe. Directly to an internal guy that's a customer&lt;br /&gt;Me: yeah!&lt;br /&gt;Old-guy: And he has plenty of money to solve his problem.&lt;br /&gt;Me: yeah, tons!&lt;br /&gt;Old-guy: And how much of that money are you going to get in the best case?&lt;br /&gt;Me: erm. um. We'll sell a copy.&lt;br /&gt;Old-guy: Right. A copy. Maybe a few if you're lucky.&lt;br /&gt;&lt;br /&gt;Old-guy went on to discuss how that deal should have gone. Adobe had effectively contracted me to build them a product that didn't exist (this was true).  It was possible that no other customers would ever want that functionality (possible). Simply put, they had a specific business need, lots of money to solve it, and had hand-picked me to be the solver.&lt;br /&gt;&lt;br /&gt;I should have structured the deal as a contracting agreement. Charging on a per-hour basis to develop their product using what we already had as a base.  Then, give them a discount rate on the hourly rate in exchange for full-rights to further develop and sell the product as our own. This would have been a 6-figure deal which would have meant a lot at that time. What's worse is you might be thinking that I missed an opportunity to fleece a customer - but I argue you're wrong. In fact, that arrangement would have actually brought &lt;b&gt;more&lt;/b&gt; value to the Adobe.&lt;br /&gt;&lt;br /&gt;In the old-guy's arrangement, Adobe would have then had a hand in guiding the project and making sure all the features they wanted were in the soup. Not to mention, if I didn't build this for them, they simply would have had to hire someone else to do it - probably spending lots more.&lt;br /&gt;&lt;br /&gt;Once in awhile, you have a fucking-duh moment - and for me, this was one. If you're thinking "well obviously" then clearly you've done this before, at that time - I hadn't.&lt;br /&gt;&lt;br /&gt;Story 3 - a recent breakfast.&lt;br /&gt;&lt;br /&gt;I recently had breakfast with a guy I met at an entrepreneur event. He was CTO of a pretty popular website. When he first described his site, I liked the business model a lot. His site fed him data that allowed him to refine his real product: pre-built server boxes which he sold to companies that allowed them to use his software internally.&lt;br /&gt;&lt;br /&gt;Visions of sugar-plums and multi-million dollar deals immediately started dancing in my head. As he talked, the rolodex in my mind quickly flipped from person to person. I thought of potential customers, potential partners and even maybe people appropriate to join his team. His product was good, and not that he asked me to, but I couldn't help forming a deal network in my head.&lt;br /&gt;&lt;br /&gt;I asked about his sales infrastructure. His answer left me wanting but I figured he was probably still fleshing it out (a very hard task). I almost rhetorically asked about the sales cycle. There wasn't one. Now I was getting confused.&lt;br /&gt;&lt;br /&gt;As we talked more it became clear that he and his company were following what I'd call the young-man's business model.&lt;br /&gt;&lt;br /&gt;He was basically building a (good) product, then laying it out on the web for all to see and hoping to get a million eyeballs. The viewpoint of the business is to get eyeballs, often from things like Digg or Techcrunch, and then figure out how to keep them. And then amazingly often, this really is the step where entrepreneurs have no clue what happens except they are sure the next step is "and then Profit!".&lt;br /&gt;&lt;br /&gt;This is an extremely innocent look at business - and in some sense, its the most logical one if you simply have no other avenues.&lt;br /&gt;&lt;br /&gt;This model isn't wrong but now to me (who has of course only recently come to rather shocking self-realization that I am... an "old-man" at how I view business) it seems like a business model without considering connections. Deciding to make connections for your business of course isn't conscious. When something  happens, the first thing that pops in your head is "Boy, Fred needs to hear about this". And depending on how many Freds you know dictates how often that idea pops in your head. (and of course, the more Freds you know, the more Freds you will know).&lt;br /&gt;&lt;br /&gt;My old-man/young-man nomenclature may not be perfect but it might be statistically correct. Its probably safe to say that on average a 30 year old has a generally more business connections than a 20 year old. From there people simply follow business plans as they occur to them.&lt;br /&gt;&lt;br /&gt;To me, my friend at breakfast had a sure winner if he had put together a solid sales and marketing infrastructure. His product should have been selling inside 6 figure deals with several month sales cycles. Now clearly, this model doesn't apply to everything. And plenty of new Web 2.5 startups don't fit this mold - but I also think many people underestimate the idea. So far it seems the evolution of all businesses, even something so webby as Facebook eventually becomes about making deals with big partners at least as much as its about eyeballs.&lt;br /&gt;&lt;br /&gt;It wasn't so long ago that saying your new startup was monetized by ads wasn't scary.  Some companies go right from eyeballs to ads and to sell-out. Thats great work if you can get it. But the number of eyeballs is limited. Its scary to think that, but on the web, we tend to give value away and "make it up on volume". The only problem is you need a hell of a lot of volume to make up for free. And 6 billion people isn't all that many when it comes down to it.&lt;br /&gt;&lt;br /&gt;Personally I think web businesses are growing up. The eyeball business model is getting to be like Market street in San Francisco. Everyone is pierced, shaved, screaming, or on fire. They're crying for attention and they have to keep shouting louder than everyone else to get it.&lt;br /&gt;&lt;br /&gt;I have plenty of opinions about business models, but to me, the best business model is one that &lt;span style="font-weight: bold;"&gt;makes your customer money&lt;/span&gt;. I didn't say "saves" them money - big difference. Also, its better yet if that customer is a business. You need less businesses as customers to be successful than if you had individuals as customers. A common sweet-spot is BtoBtoC. Supply to businesses that supply to consumers (and of course, make them money).&lt;br /&gt;&lt;br /&gt;(I am very sadly not affiliated with Paul Martino's company &lt;a href="http://www.aggregateknowledge.com/"&gt;Aggregate Knowledge&lt;/a&gt; if you want an example of a business model that's simply beautiful.)&lt;br /&gt;&lt;br /&gt;If you don't have a ton of business experience, try this - think about your next great web app, then imagine the slickest (or sleaziest, your call) old-man salesperson you ever met sitting in front of you. Picture the idea that this guy is really good at persuasion and networking. He can't code, you may not like him, and he wears shoes you wouldn't wear on halloween, but he's good at what he does. Then imagine handing the old-man 5% of the company (I know its hard, try - remember, its just pretend). You need him truly on your side.&lt;br /&gt;&lt;br /&gt;If you had access to the old-man and his imaginary immense rolodex of connections. How else could you sell this? What value could you bring to some customers that currently you can't reach?&lt;br /&gt;&lt;br /&gt;Your real business model might be hiding like that last screw holding on part of the engine. Despite you stubbornly breaking screwdrivers, you might not get to what you need. It might  just be worth asking yourself, "WWTOMD" - What would the old man do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-5990797205767164099?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/QwLwkSGtDVQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/5990797205767164099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=5990797205767164099" title="26 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5990797205767164099?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5990797205767164099?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/QwLwkSGtDVQ/young-mans-business-model.html" title="The Young Man's Business Model" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">26</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/04/young-mans-business-model.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMNSXczfSp7ImA9WxZWGEU.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-6370483118841780892</id><published>2008-03-17T16:32:00.000-07:00</published><updated>2008-03-18T15:48:18.985-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-18T15:48:18.985-07:00</app:edited><title>A few ideas about Negotiation</title><content type="html">A good friend of mine asked me for some negotiating tips. This is what I told her. Use, agree, or disagree with them at your own risk.&lt;br /&gt;&lt;br /&gt;1) Never put numbers in email. Email lives forever. Numbers are only discussed on phone or in person. Only written down when you're signing the contract.&lt;br /&gt;&lt;br /&gt;2) There's an old saying "Whoever puts the number on the table first - loses". In general, this is good fallback advice.&lt;br /&gt;&lt;br /&gt;I modify this according to several factors:&lt;br /&gt;a) The less you can predict the outcome, the more likely I let the adversary say the first number. (i.e. revenue-less company valuations are often voodoo - its quite possible your buyer will give a higher number than you ever imagined).&lt;br /&gt;b) The more I need a deal, the quicker I am to say this first number. This sets a tone.&lt;br /&gt;c) Conversely, the less I need a deal - I'm willing to let them show me just how bad they want it. The danger is if they give an extreme lowball, I need to be able to walk.&lt;br /&gt;&lt;br /&gt;3) No matter what they offer, ask for more. How forcefully depends on how good the deal already is. If they offer you 10% when you were expecting 3, meekly ask for 12% and back down fast if needed. If they offer 1%, strongly go for 4% and settle for 2.5.&lt;br /&gt;&lt;br /&gt;4) Don't answer the phone if they call to discuss the negotiation. You are probably thinking about the chicken mcnuggets you just ate and they have been thinking the last 20mins how the phone negotiation will go. In short - they are prepared, you aren't. Let them goto voicemail. Wait an hour.. spend 10 minutes focusing on the possibilities of the negotiation and call them back. Their mind will be elsewhere now. You'll be ready.&lt;br /&gt;&lt;br /&gt;5) Seriously - don't ignore #4. Fifteen seconds is just not enough time to swap your mind into the right context. Besides, information they leave in the voicemail could be advantageous.&lt;br /&gt;&lt;br /&gt;6) (Unless you're reading this and you end up negotiating with me - then we might as well set a time in the future to chat otherwise we'll never answer each other's calls.)&lt;br /&gt;&lt;br /&gt;7) *Everytime* you sign a contract, you are giving up something. Take a step back and make sure you fully understand all that you are giving up - and all that you are receiving in return. Never sign a contract (or sleep with someone for that matter) because you feel bullied into it.&lt;br /&gt;&lt;br /&gt;8) A common negotiating tactic is to put your adversary in an uncomfortable situation. The hope is that the adversary will compromise some just to relieve the discomfort (the more experienced the negotiator, the less likely this is). If you can, reverse the discomfort instead. (This is a class used-car-salesman tactic - think "But you told me yesterday you were going to buy this car!")&lt;br /&gt;&lt;br /&gt;Surely negotiation is an art and there's plenty more to it. These ideas are at best a few tricks and tips. Negotiation is a dance - you can't exactly know what you'll have to do until you are forced to react to what your partner does.  Thus just like dancing, practice does wonders for your skill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-6370483118841780892?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/95yjUqJ3jTE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/6370483118841780892/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=6370483118841780892" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/6370483118841780892?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/6370483118841780892?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/95yjUqJ3jTE/few-ideas-about-negotiation.html" title="A few ideas about Negotiation" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/03/few-ideas-about-negotiation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDRXg4cCp7ImA9WxJXFU0.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-2097966715892553569</id><published>2008-03-05T08:05:00.001-08:00</published><updated>2009-06-08T16:09:34.638-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-08T16:09:34.638-07:00</app:edited><title>Writing Java Multithreaded Servers - whats old is new (PDF Slides)</title><content type="html">I'm giving another talk tomorrow at the &lt;a href="https://www.cmpevents.com/SDw8/a.asp?option=C&amp;amp;V=11&amp;amp;SessID=6293"&gt;SD West conference&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Here are the slides&lt;br /&gt;&lt;b class="subhead"&gt;&lt;a href="http://www.mailinator.com/tymaPaulMultithreaded.pdf"&gt;Thousands of Threads and Blocking I/O: The Old Way to Write Java Servers Is New Again (and Way Better)&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I've encountered some very strong misperceptions in the world that:&lt;br /&gt;&lt;br /&gt;1) Java asynchronous NIO has higher throughput than Java IO (false)&lt;br /&gt;It doesn't. It loses by 20-30%. Even with single thread against single thread. If multiple threads enter the equation (and multiple cores) which of course blocking I/O is intent on using - its skews even farther.&lt;br /&gt;&lt;br /&gt;2) Thread context switching is expensive (false)&lt;br /&gt;New threading libraries across the board make this negligble. I knew Linux NPTL was fast, but I was quite surprised how well Windows XP did (graphs inside notes).&lt;br /&gt;&lt;br /&gt;3) Synchronization is expensive (false, usually)&lt;br /&gt;It is possible for synchronization to be fully optimized away. In cases where it couldn't it did have a cost - however given we have multicore systems now its uncommon to write a fully singly-threaded server (synch or asynch), in other words every server design will pay this cost - but, non-blocking-data-structures ameliorate this cost significantly (again graphs inside show this).&lt;br /&gt;&lt;br /&gt;4) Thread per connection servers cannot scale (false)&lt;br /&gt;Thats incorrect at least up to an artificial limit set by JDK 1.6. 15k (or 30k depending on the JVM) threads is really no problem (note linux 2.6 with NPTL using C++ is fully happy with a few hundred-thousand threads running, Java sadly imposes an arbitrary limit). If you need more connections than this (and aren't maxing your CPU or bandwidth) - you can still use blocking IO but must depart from thread-per-connection. Or fall back to NIO.&lt;br /&gt;&lt;br /&gt;I'll try to spruce up the benchmarks I used and try to post them. I'd like to point out that writing Java benchmarks is very hard. I spent a great deal of time making sure I warmed up the VM and insured there were no positional biases or other overzealous or skewing optimizations.&lt;br /&gt;&lt;br /&gt;I was then *extremely* lucky to get help from &lt;a href="http://blogs.azulsystems.com/cliff/"&gt;Cliff Click of Azul systems&lt;/a&gt; (if you want to write a benchmark, a VM engineer is the right kind of person to get help from). He spent half a saturday tweaking my benchmark in ways I never thought of. Then ran them for me on his 768core Azul box (graph inside)!! thanks Cliff !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-2097966715892553569?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/QONPoTOtYo4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/2097966715892553569/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=2097966715892553569" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2097966715892553569?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2097966715892553569?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/QONPoTOtYo4/writing-java-multithreaded-servers.html" title="Writing Java Multithreaded Servers - whats old is new (PDF Slides)" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMNQXY_eip7ImA9WxZXFEQ.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-7899483852583540092</id><published>2008-03-02T14:11:00.000-08:00</published><updated>2008-03-02T14:21:30.842-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-02T14:21:30.842-08:00</app:edited><title>Notes for my SD-West talk tomorrow on Interviewing in Silicon Valley</title><content type="html">I'm giving a half-day tutorial tomorrow at SD-West 2008 in Santa Clara on &lt;a href="https://www.cmpevents.com/SDw8/a.asp?option=C&amp;V=11&amp;SessID=6111"&gt;How to Pass a Silicon Valley Software Engineering Interview&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Its the first of 3 talks I'm giving this week (subsequent notes to come subsequently).&lt;br /&gt;&lt;br /&gt;You can download the slides &lt;a href="http://www.verifiedidentity.com/tymaPaulInterviewing.pdf"&gt;Here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you're not attending the talk, please note that as with all slide decks, they are in a sense only half the story - as I'll be filling in many pieces during the lecture itself.&lt;br /&gt;&lt;br /&gt;This is the third year I've given this talk and I'm amused to mention that I got a thank you a few weeks back from a veteran SD speaker that attended last year's class and now is just starting his new job at Google. He said the class was very helpful (he also offered to buy me dinner, but given that dinner at Google is free, I countered and offered to buy him dinner instead :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-7899483852583540092?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/r1FgcNKf_0c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/7899483852583540092/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=7899483852583540092" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7899483852583540092?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7899483852583540092?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/r1FgcNKf_0c/notes-for-my-sd-west-talk-tomorrow-on.html" title="Notes for my SD-West talk tomorrow on Interviewing in Silicon Valley" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/03/notes-for-my-sd-west-talk-tomorrow-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4NQHg_fyp7ImA9WxZQGUg.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-5422456553009497820</id><published>2008-02-24T20:44:00.000-08:00</published><updated>2008-02-25T09:03:11.647-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-25T09:03:11.647-08:00</app:edited><title>Customers are the most honest people you'll ever meet</title><content type="html">My first startup was &lt;a href="http://www.preemptive.com/"&gt;Preemptive Solutions, Inc.&lt;/a&gt;, where apart from other activities, I turned the core of my Ph.D. dissertation into a Java bytecode optimizer called DashO. It was named after the javac (and gcc) command line option "-O". I thought it was a dashingly clever name at the time (The idea of "hypen-O" seemed nowhere near as cool).&lt;br /&gt;&lt;br /&gt;In hindsight, it was a pretty dubious product idea. Developer tools are a tough business. For all the talk of application performance, people don't often pay for it except in the form of bigger hardware. However, as I came close to completion of the code, the idea morphed itself into something much more viable (as startup ideas are wont to do).&lt;br /&gt;&lt;br /&gt;Turns out people weren't willing to pay for performance so much, but at the time, Java applets were taking off. And people were dying on applet download times - making applets smaller became a component of business success. A wonderful side effect of my code optimizer was that it also made code smaller. And with a few added features focusing on that, it made Java applications amazingly smaller than the original. Getting a 50% size reduction (mostly via bytecode manipulation, dead class/method removal, and identifier renaming) wasn't unusual. The product was a hit.&lt;br /&gt;&lt;br /&gt;As time went on, applets gave way to Java ME - and source code protection was added later - but the idea of small code prevailed. If your Java ME application doesn't fit on the phone, then you really can't expect to get many users.&lt;br /&gt;&lt;br /&gt;While writing that code, I had just finished writing the book Java Primer Plus. Honestly, I thought I was a pretty crackshot Java programmer. As time went on, of course I kept learning. There really is a teenager phase in your lifecycle of learning a language. It's a distinct point where you're convinced that you know it all. As Mark Twain said (summarizing), "When I was a boy of 14, my father was so ignorant I could hardly stand to have the old man around. But when I got to be 21, I was astonished at how much the old man had learned in seven years."&lt;br /&gt;&lt;br /&gt;In your &lt;span style="font-weight: bold;"&gt;post-&lt;/span&gt;teenager phase, the biggest thing you often learn is how little you actually knew. Thereafter, coding in the language moves from your brain to your brain-stem and finally to your fingers. I can palpably tell the difference. When I code in a language I've done for more than a few years, I don't have to think about the language at all. My brain does things like data structures, concurrency, and algorithms whereas my fingers do the coding.&lt;br /&gt;&lt;br /&gt;It was about the time that DashO made its first million in sales that I really sat down and realized how bad the underlying code was designed. My deficiency in Java when I had first coded the app was now obvious to me throughout the code base. The first thing that struck me was that I had made nearly every method in the damn application static. Talk about a C programmer moving to Java. I remember being convinced it would make things run faster (of course I probably never tested that given I was so sure of myself).&lt;br /&gt;&lt;br /&gt;I remember thinking that it almost seemed wrong that such bad code could be so successful. But it was. To be fair it was quite bug free and actually did  do what it advertised. Its success was that it consistently brought value to its users - and they were more than willing to pay for that. They really didn't care if every method was static or if I was bubble sorting my way until Tuesday - if it shrunk their J2ME application by 50% that was good enough for them.&lt;br /&gt;&lt;br /&gt;Customers are honest. They vote with their credit cards and their attention. I've heard of more than a few startup launches be delayed because they "needed to rewrite some core pieces". Clearly, rewriting your code is essential at times, but at other times I've seen it be a feel-good technical decision and a downright bad business one. Quite often its like polishing your car's engine. It might make you feel better, but the car won't run any different and no one else is really going to notice when you drive down the street. Simple moral is that if you're going to delay your product launch because of a rewrite, just be sure its worth it. Delays have been known to be fatal.&lt;br /&gt;&lt;br /&gt;These days, I don't get to visit Preemptive as often as I'd like but I'm happy to report it is a very successful &lt;b&gt;25+&lt;/b&gt; person company, still growing, and is moving into some very exciting (to me anyway) new product directions. A new set of developers work on DashO and it continues to grow in both features and users (and happily, they've evolved the code-base into something far more reasonable to maintain). I'm still amazed at how well the application sells, but I guess I shouldn't be. As long as DashO keeps bringing more and more value to its customers, it will remain a successful product. And things like where-you-went-to-school or how static you decided to code your methods be damned. Value is value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-5422456553009497820?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/0ymhdXEyaA8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/5422456553009497820/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=5422456553009497820" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5422456553009497820?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5422456553009497820?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/0ymhdXEyaA8/customers-are-some-of-most-honest.html" title="Customers are the most honest people you'll ever meet" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2008/02/customers-are-some-of-most-honest.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGQHo7eSp7ImA9WB9VE0o.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-8742626136173060637</id><published>2007-11-29T12:27:00.000-08:00</published><updated>2007-11-29T14:02:01.401-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-29T14:02:01.401-08:00</app:edited><title>Your business model called; its leaving (and its not coming back)</title><content type="html">Let's say you found yourself a cash cow. Something that made you tons of money; day after day. And let's say that you get better and better at making your cash cow efficient. Pretty soon, you're rolling in dough. At some point you can nearly rest on your laurels while your money machine keeps churning. Eventually, you probably don't need anymore money, but that doesn't stop most people it seems. You just keep on wanting more (and why not, if the cash cow keeps delivering).&lt;br /&gt;&lt;br /&gt;Its probably pretty safe to say that at this point in time, the advent of some technology enabled your cash cow. Maybe it was recorded media or a new video format or some computers in need of an operating system. Whatever it was, its likely that some recent technology gave you the building blocks to create your new cash cow business.&lt;br /&gt;&lt;br /&gt;And, as you realized that technology enabled your cash cow, you also know that it's just a matter of time before it's going to disable it too. Usually by the advent of yet newer technology obsoleting yours. What do you do then? The best option is to see if you can morph your cash cow to be in synergy with the new technology. Kodak is a good example, they moved from pure film to a strong embrace of digital photography. AT&amp;T is another - land phones are dying - they made sure they were in the mobile business.&lt;br /&gt;&lt;br /&gt;Other models however aren't so easy to move with. Music CDs are sort of silly now and the new technology doesn't leave a lot of room for a new business model. What do you do then? You might think that you're the kind of person that if you spent a few years making millions (or billions) producing music CDs that you might eventually have enough of it all. If you truly can't save it then - you can take your millions, smile back upon the fun ride of building something great, and move on to something new.&lt;br /&gt;&lt;br /&gt;You might be. But it doesn't seem like this is the way it works. Instead (statistically speaking) if you had an un-save-able dying cash cow, you'd defend it anyway. You'd start to use the millions your cash cow makes to try to change laws, start lawsuits, or stifle technology to artificially keep your cash cow alive. Quite literally, you'd use its own resources to hinder future technology that will hurt it (regardless if thats good, bad, or indifferent for humanity).&lt;br /&gt;&lt;br /&gt;Technology enables business, art, and science. And it kills them too, usually by advancing to a point that makes the existing ideas obsolete. A few people miss LP records these days, and surely some still play and collect them. But that number will continue to diminish. I'm sure plenty of folks stuck with a horse-and-buggy because they thought automobiles were a stupid idea. Those people are mostly dead now, just like LP records will be some day.&lt;br /&gt;&lt;br /&gt;Now, it might seem like I'm picking on the record industry. I'm not really, they're just a poignant example. Whatever you think, the people in that industry are not idiots. They *know* their business model is dead. Dead, dead, deaddity, dead, dead, dead. Music is really a service, the idea of putting in on a CD was always an artificial means of trying to turn a service into a product. &lt;br /&gt;&lt;br /&gt;Instead of teenagers idolizing manufactured rock stars, the internet gives every indie band in the world an open forum. It wasn't that long ago that rock bands begged and prayed to get signed with a big label. Now they can start their own label and reach thousands of listeners, all for the cost of a website. Add a marketing and sales manager and you have a music-making company.&lt;br /&gt;&lt;br /&gt;You don't need to be a futurist to predict some corporate business models that will be dead (remnants always remain for awhile) in the near future. Shrink-wrapped software, music CDs, desktop computers, and purely-gasoline automobiles to name a few.&lt;br /&gt;&lt;br /&gt;What about if we go just a little longer term - say 30 to 50 years. Now I'd venture to say things keyboards, mice, paper books, bullets, telephones, and batteries.&lt;br /&gt;&lt;br /&gt;You might disagree, but I think you're not thinking far enough ahead. I don't think people disagree because they think this idea is wrong. I think just like (or depend) on some of those things and don't want them to go away. If you sell batteries, you'll probably vigilantly tell me that we'll ALWAYS need batteries. In fact, although "30 to 50 years" might not be accurate, my predictions above are pretty guaranteed in some time frame. &lt;br /&gt;&lt;br /&gt;A friend of mine disagreed with me when I said libraries were destined to disappear. He argued they won't because people will always like to read from books. "Will always" is a very long time. Most people like books because they're used to them, kids today are pretty used to reading off screens a fair bit of the time. Tomorrow's kids will be even moreso. And would you really be willing to bet we won't invent something better (in all ways) than a paper book in a 100 years? 200? Heck, I'd bet reading itself will be gone by then.&lt;br /&gt;&lt;br /&gt;Coming back to the nearer future, the title of this article talks about dying business models. Finding ones in the global corporate marketplace is easy. What I'm more thinking about is *your* business model.&lt;br /&gt;&lt;br /&gt;Whether you're a assembly-line worker in a Ford plant in Michigan, a C++ programmer (sorry, I mean "software engineer") in silicon valley, or a McDonald's fry cook. Its pretty damn likely that technology is going to kill your job or career (i.e., your "business model") in your lifetime. &lt;br /&gt;&lt;br /&gt;I've read around the net that its a "bad time to be a photographer". Simply put, thousand dollar digital SLR cameras and photoshop have destroyed the historical profession of a photographer. Surely, a skilled photographer can take better photos on average than an amateur. But the rules are now changed. With multi-gigabyte memory cards, I can snap photos all damn day long. And the camera has gotten far better at helping me take great photos. And Photoshop can come in the backside and fix any minor problems I might have. Maybe its a bad time to *be* a photographer - but its a great time to *become* a photographer - anyone can be one in just a few hours! (Of course, thats exactly why existing photographers might think its a bad time to already be one).&lt;br /&gt;&lt;br /&gt;Seriously, if I snap a quick thousand photos, its getting more and more likely that I'll snap a really good shot. Then I can sell it on the internet in many instant-gratifying ways for a fraction of historical stock photography. The profession as we knew it is likely soon gone.&lt;br /&gt;&lt;br /&gt;I've seen this even in computer programming. Coding used to be much harder than it is today. It takes much less devotion and study to make programs these days and its getting easier all the time. You might argue that good programmers write the best code, but you rarely need the best code to get a website up and running. And programming is perpetually going to get easier. (It used to take HTML expertise to make a website, now it just takes a MySpace account).&lt;br /&gt;&lt;br /&gt;Scary enough I can boot up Adobe Illustrator (or more precisely, Gimp in my case since I use linux) and I can do things that a professional graphic designer of 20 years ago could only dream of. This is really a frightening thought - I have a really exceptional lack of artistic ability, but Gimp gives me a baseline. I might not be able to reproduce Van Gogh, but I can make all the graphics I need for websites or Christmas cards or whatever.&lt;br /&gt;&lt;br /&gt;In a grand view, this is probably a great thing for our world. More people can do more things faster. It all sounds great unless you're personally be obsoleted in the process. Complaining photographers have somewhat of a point. They spent years perfecting their craft. They learned tricks of lighting and developing and who knows what else just to have it taken away by some fancy new camera. Technology obsoleted their craft overnite (like the song says, "Video killed the radio star").&lt;br /&gt;&lt;br /&gt;If you're not a photographer and you're sort of not feeling sorry for them, thats ok as long as you're careful to shine that mirror on yourself too. Like I said, if you spent years learning the intricacies of C++, tax law, medicine, or anything else - you surely have job security likely for awhile. But definitely not forever. &lt;br /&gt;&lt;br /&gt;Whatever your business model - it is indeed, at some given rate, dying. And its always possible that a technology will come to be tomorrow that will destroy it instantly. And every year we shall see more fights ensue with people looking to save their business model.&lt;br /&gt;&lt;br /&gt;Create a cure for cancer? Watch the chemotherapy companies go into action. Build an electric car thats cleaner, faster, and more economical than any gasoline one? Watch the oil and car companies head to Washington. Invent teleportation? Airline industry sponsored laws will quickly be up for debate.&lt;br /&gt;&lt;br /&gt;If you're complaining that your business model is dying, you might as well complain that the sun is going to come up tomorrow. Its going to happen and you have two options - keep moving or retire. Be ready to throw out what you learned if you see it becoming obsolete. &lt;br /&gt;&lt;br /&gt;If you're lucky you'll be on the forefront of that technology and you can start a company giving you your own technology-induced cash cow. Once that happens, you can sit back counting money. Until the next wave comes and your once new cash cow starts to crumble. Then, of course, you can adapt again or you can become the technology stifler yourself. Somehow I have a feeling that thats one job that will never go out of style.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-8742626136173060637?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/VBvF3BRoS-s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/8742626136173060637/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=8742626136173060637" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8742626136173060637?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8742626136173060637?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/VBvF3BRoS-s/your-business-model-called-its-leaving.html" title="Your business model called; its leaving (and its not coming back)" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/11/your-business-model-called-its-leaving.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFR3c5fSp7ImA9WB5XFkQ.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-2608299260837685206</id><published>2007-07-17T11:32:00.000-07:00</published><updated>2007-07-17T11:35:16.925-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-17T11:35:16.925-07:00</app:edited><title>Don't Chase your Dream Too Fast</title><content type="html">I thought of a funny quote today (which is oh-so-true):&lt;br /&gt;&lt;br /&gt;Don't chase your dream too fast - chase someone else's first, and after you screw that up and learn a little; then go after yours.&lt;br /&gt;&lt;br /&gt;(this applies to dream jobs, dream dates, pretty much "dream anything")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-2608299260837685206?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/PtZwHbmBx7s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/2608299260837685206/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=2608299260837685206" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2608299260837685206?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2608299260837685206?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/PtZwHbmBx7s/dont-chase-your-dream-too-fast.html" title="Don't Chase your Dream Too Fast" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/07/dont-chase-your-dream-too-fast.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEABRHk-fCp7ImA9WB5QGUs.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-8159633429741687518</id><published>2007-07-08T23:22:00.000-07:00</published><updated>2007-07-08T23:32:35.754-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-08T23:32:35.754-07:00</app:edited><title>This blog made the Top 50 Google Blog list</title><content type="html">SEO-Space has ranked my blog #47 on the &lt;a href=http://seo-space.blogspot.com/2007/07/google-blogs-googles-top-50-blogs.html target=_blank&gt;Top 50 Google Blogs&lt;/a&gt; list. That's pretty cool given how many blogs by googlers are out there.&lt;br /&gt;&lt;br /&gt;They mentioned my earlier article on &lt;a href=http://paultyma.blogspot.com/2007/01/why-i-work-at-google.html&gt;Why I work at Google&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks SEO-Space!  &lt;br /&gt;&lt;br /&gt;(Of course, I work for, but do not speak for Google. All words are my own.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-8159633429741687518?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/UZJ3d5xzg8k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/8159633429741687518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=8159633429741687518" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8159633429741687518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8159633429741687518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/UZJ3d5xzg8k/this-blog-made-top-50-google-blog-list.html" title="This blog made the Top 50 Google Blog list" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/07/this-blog-made-top-50-google-blog-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUARXc8fCp7ImA9WB5RGEw.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-4199663102624706357</id><published>2007-06-25T13:54:00.000-07:00</published><updated>2007-06-25T15:57:24.974-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-25T15:57:24.974-07:00</app:edited><title>Using Tricky Assertions</title><content type="html">I'm not sure why, but I never got much in the habit of using the java assert keyword. Its a nice idea, but I somehow just checked what I wanted the old fashioned way.&lt;br /&gt;&lt;br /&gt;And, although I'm a big fan of IDEs and I love debuggers, I still find having some print statements here and there sometimes is really helpful.&lt;br /&gt;&lt;br /&gt;Of course, print statements suck when you're done and you no longer want them. That is, you need to go delete (or comment them out) all over the place.  &lt;br /&gt;&lt;br /&gt;I've sort of combined these ideas into a pretty obvious trick (which I seem to get asked about a fair bit, hence this post). Its basically a comment-out-less, performance-free debugging (or stats, or logging, or whatever) facility.&lt;br /&gt;&lt;br /&gt;Simply:&lt;br /&gt;&lt;br /&gt;assert(Debug.out("test code val="+val));&lt;br /&gt;or&lt;br /&gt;assert(Stat.increaseHitCount());&lt;br /&gt;&lt;br /&gt;The only trick is that the method (like "Debug.out") must always return true.  Now run the app with assertions turned on "java -ea Main" and you get the messages. For production, simply don't run with -ea and the VM will ignore those statements (I hope) altogether.&lt;br /&gt;&lt;br /&gt;This basically gives you an application-wide, command-line way to turn on or off (with no performance hit if the VM is smart) some code. If you think about, there's many possible uses for such a thing.&lt;br /&gt;&lt;br /&gt;Edit: Code for Debug.out would look something like:&lt;br /&gt;&lt;br /&gt;class Debug {&lt;br /&gt;&amp;nbsp;public static boolean out(String x) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;System.out.println(x);&lt;br /&gt;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-4199663102624706357?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/Pndf4EI0XT4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/4199663102624706357/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=4199663102624706357" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/4199663102624706357?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/4199663102624706357?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/Pndf4EI0XT4/using-tricky-assertions.html" title="Using Tricky Assertions" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/06/using-tricky-assertions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QFQXcyeSp7ImA9WB5RF0w.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-5032705132502356995</id><published>2007-06-24T11:24:00.000-07:00</published><updated>2007-06-24T11:55:10.991-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-24T11:55:10.991-07:00</app:edited><title>Been Reading Crappy (Half)Books</title><content type="html">I don't read a lot of books. At least under the definition of, you open it, flip pages over several days or weeks, get to the last one, read the last sentence, say "huh", and put it down. I mean, I don't finish a lot of books, at least nowhere near the number I start.&lt;br /&gt;&lt;br /&gt;I *do* read a lot of half books - that is I only get half-way through. I have a feeling I'm rather hard on books - I expect a lot.&lt;br /&gt;&lt;br /&gt;The problem I see is that there is simply an absolute deluge of books that should be articles. Simply said, books are about ideas. However (fixing the english of that last sentence), every book should be about multiple ideas.&lt;br /&gt;&lt;br /&gt;So so so so many (half)books I read are only about one idea. They have a wispy chapter 1 introduction, chapter 2 introduces the idea (which sometimes is so simple it takes a paragraph), and then the rest of the book cites contrived/researched/induced examples about how that idea is so great.&lt;br /&gt;&lt;br /&gt;That's fine and all. Some of those ideas are pretty luminary (i.e. Freakonomics comes to mind) but one single idea has to be pretty damn big to make a book. (Meta-note: the idea that books should be about multiple ideas and not just one idea is probably not a big enough idea to be a book, just an article, or maybe even a stinky little blog post).&lt;br /&gt;&lt;br /&gt;I read a lot of technical books (not halves usually) and technical books are pretty hard to be stuck on one idea. Brian Goetz' &lt;a href=http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=java%20concurrency%20in%20practice&amp;tag=mailinator-20&amp;index=blended&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325&gt;Java Concurrency in Practice&lt;/a&gt; is a great example. If you're a Java techie, this is an incredible page turner. (Another amazingly great techie book is Warren's  &lt;a href="http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=hacker's%20delight&amp;tag=mailinator-20&amp;index=blended&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"&gt;Hacker's Delight &lt;/a&gt;.) &lt;br /&gt;&lt;br /&gt;I also read a lot of (half)books about business. I just read a (half)book called &lt;a href=http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=selling%20blue%20elephants&amp;tag=mailinator-20&amp;index=blended&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325&gt;Selling Blue Elephants&lt;/a&gt;. The basic idea was to do market research using actual customer testing. Cool. Good idea. They even gave a spiffy acronym to try to add it to the world's business vocabulary (much like "tipping point" and "long tail" have done in the past few years).&lt;br /&gt;&lt;br /&gt;But that was about it. The rest was case studies on how customer testing helped a bunch of products. Yip.&lt;br /&gt;&lt;br /&gt;I also have been listening to &lt;a href=http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=good%20to%20great&amp;tag=mailinator-20&amp;index=blended&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325&gt;Good to Great&lt;/a&gt; lately, a pretty heavily lauded book. I don't usually do books on CD but it was a gift. There was a lot of solid empirical research in it which was helpful but it seemed (much like Built to Last) to be fraught by survivorship bias. And I don't discount the strong research, but the results were somewhat expected (that's no ones fault, its just that everyone loves a plot twist).&lt;br /&gt;&lt;br /&gt;The entire section devoted to how people in "great" companies tend to be stay friends is what really ended up ejecting the CD however. It almost seemd to imply was almost that if you were only in a "good" company, you'll never make any friends.&lt;br /&gt;&lt;br /&gt;My expectations are probably too high. Business vs. technology is largely analogous to art vs. science - and its damn hard to write about art (as compared to science). Its just too subjective.&lt;br /&gt;&lt;br /&gt;Becoming a great businessperson is analogous to becoming a great techie. It simply takes some level of innate talent that can't be replaced by hard work (and after you have that, then you still need a lot of hard work). After that however, the tech stuff is arguably easier to document. &lt;br /&gt;&lt;br /&gt;Now I definitely might be too hard on books but how I figure it, I only get so many days on this planet (and this planet is the only one I know with books). I really can't afford to waste time on any book I find anything less than insanely great (&lt;a href=http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=influence&amp;tag=mailinator-20&amp;index=blended&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325&gt;Influence&lt;/a&gt; by Cialdini).&lt;br /&gt;Ah well, onto the next - maybe I'll read some Call of Cthulhu. Or even better, "How to run a business like Cthulu would" - I bet there'd be more than one idea in there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-5032705132502356995?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/wr27WyI7N_g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/5032705132502356995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=5032705132502356995" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5032705132502356995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5032705132502356995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/wr27WyI7N_g/been-reading-crappy-halfbooks.html" title="Been Reading Crappy (Half)Books" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/06/been-reading-crappy-halfbooks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBQ3o4fip7ImA9WB5REko.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-8361540117753483231</id><published>2007-06-18T23:19:00.000-07:00</published><updated>2007-06-19T11:20:52.436-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-19T11:20:52.436-07:00</app:edited><title>Doing Wheelies</title><content type="html">In a vain effort to remedy the situation where my friends are starting to call me names like boring, settled, and overall rather linear; I attended a wheelie class this weekend. If that sounds odd, well it is. I don't think there are that many such schools in existence.&lt;br /&gt;&lt;br /&gt;It was a one day, 8-hour class and let me tell you, by the end of the day I could have not been more tired.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_wdOYAcPCMJE/Rnd2J5ZfF0I/AAAAAAAAAKY/p9tUbUAIPK4/s1600-h/simon2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_wdOYAcPCMJE/Rnd2J5ZfF0I/AAAAAAAAAKY/p9tUbUAIPK4/s320/simon2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5077657017282139970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The instructors definitely knew what they were doing. The bikes were outfitted with a dual-stage limiter. It had settings 1-5 each at a progressively higher angle. Once the limiter was hit, the center cylinder (of the 3 cylinder speed triple) was turned off. So you rose up, hit the limiter, and then the engine lost 1/3rd power usually sending you back down.&lt;br /&gt;&lt;br /&gt;After that at level "6" another limiter engaged that hit the back brake. The bar you see on the back (btw, that pic is of Simon my classmate as it was sort of hard getting a pic of myself whilst wheelie-ing and all) is not a hard stop bar, its merely there to engage both limiters.&lt;br /&gt;&lt;br /&gt;I flipped a dirtbike a few years back screwing around which always instilled a good deal of respect in me for wheelies. Now the limiter was there to not let me do it again. By the end of the day I was at level 5 with pretty consistent wheelies. I really did go from nothing to finding the balance point in one very tiring day (I can't believe how sore I am today).&lt;br /&gt;&lt;br /&gt;If you think this all sounds dangerous, well it can be. While I was standing by the side of the run, one of the students came out of a wheelie and in the process of trying to stop, locked the front brake and washed the front tire. He and the bike hit the ground doing about 50mph. The bike went skidding on its side right off the cement into a field like a hockey puck. The rider tumbled awhile and came to rest with (luckily) just a broken wrist (we were all wearing head-to-toe leather armor plus helmet).&lt;br /&gt;&lt;br /&gt;That was an unfortunate cap to the day. Although I do get to add wheelies to my ever-increasing list of possibly interesting but mostly useless skills. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-8361540117753483231?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/7NqrIA1cgtI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/8361540117753483231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=8361540117753483231" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8361540117753483231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8361540117753483231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/7NqrIA1cgtI/doing-wheelies.html" title="Doing Wheelies" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_wdOYAcPCMJE/Rnd2J5ZfF0I/AAAAAAAAAKY/p9tUbUAIPK4/s72-c/simon2.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/06/doing-wheelies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQBRH4_fSp7ImA9WB5SEk4.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-1116987508639203829</id><published>2007-06-07T09:01:00.000-07:00</published><updated>2007-06-07T09:39:15.045-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-07T09:39:15.045-07:00</app:edited><title>Sprint Customer Support</title><content type="html">I've had my share of bad customer support experiences, but this one is special. :)&lt;br /&gt;&lt;br /&gt;A few months back I logged onto sprint.com to turn off receiving text messages on my phone. I was simply getting too many spam texts.  Not being able to receive friendly texts however eventually turned into a problem. At times, friends would text me and rely on the fact that I received it. Sprint doesn't notify the sender the message isn't delivered. This caused a few annoying instances.&lt;br /&gt;&lt;br /&gt;Anyway, I decided I needed to turn texting back on and simply accept the spam (seems like spam would be relatively easy to stop on an SMS network, but then again phone companies also make money on that spam, so maybe they're not all that motivated to do so. Who knows - regardless, I was getting a fair bit).&lt;br /&gt;&lt;br /&gt;I went to the website again (now a few months later) and tried to login so I could turn texting back on. Well, as I'm wont to do with websites I dont login to for months at a time, I forgot my password. I cheerfully clicked the "forgot your password?" link which asked for my phone number.&lt;br /&gt;&lt;br /&gt;Ok.. I entered my phone number which then gave me a message - "We have sent you your password via text message!".&lt;br /&gt;&lt;br /&gt;Um. Hey smarty-head - your database has a bit that says my text messages are turned off. Maybe you could, ya know, CHECK THAT BIT before you go off and send me my password via text message so that I could login with the sole purpose of turning my text messaging back on. (Hey btw... I have a new advertising campaign for you: "Don't have any access to a phone whatsoever but want one? Call us!")&lt;br /&gt;&lt;br /&gt;So.... off we goto customer support. I dial their customer support number and funny enough the first thing the automated system does is to ask me is to enter my phone number.&lt;br /&gt;&lt;br /&gt;Um. Dear Sprint - this is YOUR phone service. Maybe you should spring for caller ID for yourself and then check the incoming number against your database (you have this database thingie turned on right? Its the big pretty box that says "Oracle" on it) and then ask that given I'm on a Sprint number, maybe thats the number I'm calling about. You never know - it just might work.&lt;br /&gt;&lt;br /&gt;From here I  deftly navigate their convoluted automated phone tree (which consisted of just pressing 0 a LOT) and sat on hold for about 20 minutes.&lt;br /&gt;&lt;br /&gt;Finally, I get a customer support person. She greets me... and then.. with what I perceived as a tint of "this is gonna be good" in her voice, she asks:&lt;br /&gt;&lt;br /&gt;"What's your phone number?"&lt;br /&gt;&lt;br /&gt;WTF. So.. you're Sprint. Its your line. You'd think you'd have caller ID. If not, You just made me enter my phone number 20 minutes ago (prior to hold) and the first thing the real live person does is ask me again?&lt;br /&gt;&lt;br /&gt;If this system was designed to frustrate customers away from using it, its pure user interface art.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-1116987508639203829?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/JYkO5NvgRyQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/1116987508639203829/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=1116987508639203829" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/1116987508639203829?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/1116987508639203829?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/JYkO5NvgRyQ/sprint-customer-support.html" title="Sprint Customer Support" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/06/sprint-customer-support.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYASH09eSp7ImA9WBFUE0g.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-2246666035417025211</id><published>2007-04-23T09:54:00.000-07:00</published><updated>2007-04-23T10:42:29.361-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-23T10:42:29.361-07:00</app:edited><title>I was a Windows Vista user for like 2 minutes.. but not anymore</title><content type="html">So I bought a new laptop yesterday. Try as I mighted, I had to buy Vista along with it. I bought this laptop with the sole purpose of doing work on it (its replacing an older machine that was for that purpose). &lt;br /&gt;&lt;br /&gt;What this means is that I wanted decent ram, decent CPU, but I really don't care about graphics performance. That is, I have no worry of ever playing games with this machine. Thus - if I don't need it for games, then I don't need windows either. I considered a Mac but to me Ubuntu is at least, if not more, functional as a mac (you might be different I understand - but for me, this is the truth) - and I get many many more choices for hardware possibilities.&lt;br /&gt;&lt;br /&gt;Anyway, like I said, I was forced to buy Vista with no intention of using it. I got the laptop home and thought I might boot-up Vista just to see it before I wiped it clean. As it started up, I got visions of it asking for my personal info and despite the fact that I would not of course actually enter it, it would somehow still get my name, address, and food preferences sent into some database somewhere being tagged and locked in as a forever Vista user slated to have to pay over and over and again and again for.. um.. I dunno.. something that I didn't want but that all locked-in/slated people have to pay for.&lt;br /&gt;&lt;br /&gt;Vista got as far as the "Preparing your computer for starting for the first time" message and my paranoia became too intense.  &lt;br /&gt;&lt;br /&gt;I shutoff the machine. Put in the Ubuntu CD and wiped the drive. Phew. Its really amazing that when I buy a laptop (desktops not as much given I usually build me own) it feels like I don't really own it. After Ubuntu was installed however, the laptop is now mine.&lt;br /&gt;&lt;br /&gt;I think I'll leave the Windows Vista sticker on it though. It's pretty and I did pay a lot for it.&lt;br /&gt;&lt;br /&gt;&lt;a href=http://digg.com/submit?phase=2&amp;url=paultyma.blogspot.com/2007/04/i-was-windows-vista-user-for-like-2.html&amp;topic=tech_news&gt;Digg!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-2246666035417025211?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/82tlVhzqZkY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/2246666035417025211/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=2246666035417025211" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2246666035417025211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/2246666035417025211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/82tlVhzqZkY/i-was-windows-vista-user-for-like-2.html" title="I was a Windows Vista user for like 2 minutes.. but not anymore" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/04/i-was-windows-vista-user-for-like-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGQ3szfip7ImA9WBFVEU4.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-8827388118637301936</id><published>2007-04-08T22:55:00.000-07:00</published><updated>2007-04-09T09:20:22.586-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-09T09:20:22.586-07:00</app:edited><title>A Few Book Reviews</title><content type="html">The very last book I completed was the California Driver's handbook. Man, what a snorer. I have to get my CA driver's license this week, so I figured I better know what the speed limit is in a 2-lane alley with a bike-lane on thursdays is. In any case, avoid this book like the plague - its only to be read as an aching reminder that driving is a privilege and the DMV is a perfect example of a system without competition (i.e., its inefficient, broken, and is barely preferable to getting hot pokers stuck in your eyes).&lt;br /&gt;&lt;br /&gt;Apart from that, tonite I also finished &lt;a href="http://www.amazon.com/gp/product/1591840694?ie=UTF8&amp;tag=mailinator-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1591840694"&gt;Perfectly Legal: The Covert Campaign to Rig Our Tax System to Benefit the Super Rich--and CheatEverybody Else&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mailinator-20&amp;l=as2&amp;o=1&amp;a=1591840694" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; which does not disappoint. &lt;br /&gt;&lt;br /&gt;On one hand its a basic consideration of what we all know. Want to avoid taxes? Get rich. It does however examine in detail some pretty amazing tax loopholes (and downright scams). From a surprising number of people that simply don't pay because they don't think they should (and the IRS having scant resources to catch them) to companies like Stanley Works and Ingersoll-Rand that try (or succeed) in moving their theoretical corporate headquarters to Bermuda to avoid US taxes.&lt;br /&gt;&lt;br /&gt;In the end it's a pretty grotesque look at our tax system. If you're easily made mad, then by the end of this, you'll definitely be mad (if you're not in the top 1% of our country's wage earners, you'll be mad because of how much you pay and they don't. If you are in the top 1%, you'll be mad because you're bound to find some tax loopholes you're not taking advantage of).&lt;br /&gt;&lt;br /&gt;In any case, I found myself looking forward to getting back to reading this book every time I had&lt;br /&gt;to put it down.&lt;br /&gt;&lt;br /&gt;A few weeks back I got done with a long read of&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/0071421920?ie=UTF8&amp;tag=mailinator-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0071421920"&gt;The Birth of Plenty : How the Prosperity of the Modern World was Created&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mailinator-20&amp;l=as2&amp;o=1&amp;a=0071421920" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;. Its an interesting book in that it basically qualifies as "economic history". A methodical study of why somewhere a hundred or 2 years ago, human civilization went from basic subsistence to spurt of radical productivity. The examination is done on a country-by-country basis and is a pretty great read.&lt;br /&gt;&lt;br /&gt;Interestingly, the same author wrote &lt;a href="http://www.amazon.com/gp/product/0071385290?ie=UTF8&amp;tag=mailinator-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0071385290"&gt;The Four Pillars of Investing : Lessons for Building a Winning  Portfolio&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mailinator-20&amp;l=as2&amp;o=1&amp;a=0071385290" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; (which I haven't read.. yet). He seems like he'd be an interesting guy to meet.&lt;br /&gt;&lt;br /&gt;Its quite long but wonderfully researched. If economics or history interests you, its worth the time.&lt;br /&gt;&lt;br /&gt;At the end of last year I got through about half of &lt;a href="http://www.amazon.com/gp/product/1570628556?ie=UTF8&amp;tag=mailinator-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1570628556"&gt;A Theory of Everything: An Integral Vision for Business, Politics, Science and Spirituality&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mailinator-20&amp;l=as2&amp;o=1&amp;a=1570628556" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;. It was recommended to me by a member of the board of my Ohio company &lt;a href=http://www.preemptive.com&gt;Preemptive Solutions&lt;/a&gt;. Simply said, he's the kind of guy that if he recommends a book, you might just want to check it out. &lt;br /&gt;&lt;br /&gt;Anyway, this is not a leisurely saturday afternoon read. Its dense and it makes you think with every section. I plan on getting back to it soon, but Chapter 2 alone was worth the price of admission (after I reread it a time or two). &lt;br /&gt;&lt;br /&gt;It lays out a theory for levels of thinking. From the most basic levels concerned with food, water, sex, etc. to the highest levels that only (an estimated) 1-2% of our population functions at. Its really a fascinating way to consider simply how we think.&lt;br /&gt;&lt;br /&gt;Oh.. and finally.. I read about half of &lt;a href="http://www.amazon.com/gp/product/0743201140?ie=UTF8&amp;tag=mailinator-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0743201140"&gt;Now, Discover Your Strengths&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mailinator-20&amp;l=as2&amp;o=1&amp;a=0743201140" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; before I fell into a reading induced coma.&lt;br /&gt;&lt;br /&gt;This book purports to be an analysis of how to analyze people and play to their strengths. The one worthwhile message was that we tend to look to improve people's weaknesses (for example, if you are a manager, you might do this to an employee). However, this is misguided - you're better off to play to their strengths. If they're a great coder, let them be that. Encourage it - help it. Don't force them into management (for example).&lt;br /&gt;&lt;br /&gt;Thats a fine idea but I found most of the rest of the book arbitrarily contrived. I really hate it when I see a bulleted list presented as fact thats clearly just someone's opinion. Such lists can be added to or deleted from and be just as correct.&lt;br /&gt;&lt;br /&gt;In any case, I'm pretty done with that book. If you're interested, you can have my copy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-8827388118637301936?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/4b5iQfJEU8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/8827388118637301936/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=8827388118637301936" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8827388118637301936?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/8827388118637301936?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/4b5iQfJEU8w/few-book-reviews.html" title="A Few Book Reviews" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/04/few-book-reviews.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAFQn4-eSp7ImA9WBFWEEw.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-7990900989515942637</id><published>2007-03-27T10:28:00.000-07:00</published><updated>2007-03-27T10:31:53.051-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-03-27T10:31:53.051-07:00</app:edited><title>Notes from my Java Generics talk at SDwest</title><content type="html">Sorry - meant to put these up earlier.&lt;br /&gt;&lt;br /&gt;They are &lt;a href=http://www.mailinator.com/tymagenerics.pdf&gt;Here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-7990900989515942637?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/jr2T8PR3sMI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/7990900989515942637/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=7990900989515942637" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7990900989515942637?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/7990900989515942637?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/jr2T8PR3sMI/notes-from-my-java-generics-talk-at.html" title="Notes from my Java Generics talk at SDwest" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/03/notes-from-my-java-generics-talk-at.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIHR3o9fip7ImA9WBFVFU0.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-5691934383891403277</id><published>2007-03-22T14:15:00.000-07:00</published><updated>2007-04-13T15:48:56.466-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-13T15:48:56.466-07:00</app:edited><title>Howto Pass a Silicon Valley Software Engineering Interview</title><content type="html">I do a fair bit of interviewing. This probably averages about 2 to 3 interviews per week - mostly for Java developers. I'm also giving a birds-of-a-feather at the Software Developer's conference tonite in the Santa Clara Hyatt bar on just this topic (7:30pm if you're interested).&lt;br /&gt;&lt;br /&gt;Now mind you, being an experienced interviewER does not necessarily give you relevant information on being an experienced interviewEE. However, the latter is hard to gain a lot of experience at. Because of course, if you're good at it, you tend to not do it for very long (i.e., you get hired).&lt;br /&gt;&lt;br /&gt;Before Google, I interviewed at several startups in the valley. And combining that experience plus what I know about how I interview at Google and how I interviewed at &lt;a href=http://www.preemptive.com&gt;Preemptive&lt;/a&gt; I do have a few guidelines.&lt;br /&gt;&lt;br /&gt;1) &lt;b&gt;Don't interview at your dream job first&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;If you haven't interviewed in awhile, your first interview is likely not going to be great. It's not because you're not a crackshot developer or a math whiz. It's just because you aren't familiar with the whole process. From getting used to jumping from topic to topic all the way to saying why you want the job. Its always a good idea to interview at your 3rd or 4th choice first.&lt;br /&gt;&lt;br /&gt;2) &lt;b&gt;Be positive - no swearing&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;You will get asked about your last job. Saying your manager sucked and the dev team was a mess wins you nothing. I've seen candidates attempt to put down some technical faction or previous employers seeking my solidarity with them. Nuh uh. Doesn't happen.&lt;br /&gt;&lt;br /&gt;Why are you leaving your current job? Simple - because this new job is a better opportunity. Your last job was a fine career builder but this one's business model or development principles or philosophy or job description or reputation suits you way better. Not to mention your skillset can bring significantly more value in this new position.&lt;br /&gt;&lt;br /&gt;Don't tell your new employee what's wrong with their products - mention you hope you can (non-specifically) improve such products. Even if asked what you'd improve, phrase it such that it is indeed an improvement and not a fix for something you think is terrible.&lt;br /&gt;&lt;br /&gt;Also - forget technical religion. If you love Agile say so - but don't pretend its the only solution. Millions of people get work done on windows, linux, agile, waterfall, C++, java, .NET everyday. All are solutions - sure, some are better than others and defensible positions are great - but unfounded zealousness is not.&lt;br /&gt;&lt;br /&gt;And, I am amazed I need to write this - don't swear. Its a respect issue. You don't know your interviewer. Some people don't mind swearing - some do. There's really no need.&lt;br /&gt;&lt;br /&gt;3) &lt;b&gt;Check your attitude at the door&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;As I've said in previous articles, &lt;b&gt;if you are the smartest person at where you work - QUIT&lt;/b&gt;. Similarly, its a silly idea to join a company where you will be the smartest person the day you start. Therefore, if you ARE smart, you will be looking to join a company where you AREN'T the smartest person. Therefore - you should leave your arrogance about how great you are outside.&lt;br /&gt;&lt;br /&gt;I ask most every candidate to rate their Java and C++ skills on a scale of 1-10. Then I write that down for the next interviewer. At Google, you never know who your interviewers are going to be. If you say you're a Java or C++ expert that rates a 10 - you darn well better be - because you never know - your next interviewer could be &lt;a href=http://en.wikipedia.org/wiki/Joshua_Bloch&gt;Josh Bloch&lt;/a&gt;, &lt;a href=http://www.accu-usa.org/Speaker-MattAustern.html&gt;Matt Austern&lt;/a&gt;, &lt;br /&gt;&lt;a href=http://www.python.org/~guido/&gt;Guido van Rossum&lt;/a&gt;,&lt;br /&gt;or &lt;a href=http://en.wikipedia.org/wiki/Ken_Thompson&gt;Ken Thompson&lt;/a&gt;. Or worse, someone else you've never heard of that's a super crackshot - and there are plenty of those.&lt;br /&gt;&lt;br /&gt;Again, I'm amazed at people that give their interviewer attitude. It's such an obviously stupid act that I have to question the person's intelligence in addition to being annoyed by their arrogance.&lt;br /&gt;&lt;br /&gt;4) &lt;b&gt;Be passionate about development&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;I have a dirty secret - if Google stopped paying me tomorrow, I'd still come to work (unless they like took my badge too and got Hector the security guard to watch out for me - that dude could smoke me). God forbid that while sleeping I have a dream that solves a coding problem I've had the day before. When this has happened in the past, I found myself sitting awake in bed with my mind racing. I was too excited to sleep and figured I might as well drive into work and start implementing the solution (despite the fact that it happened to be 4am).&lt;br /&gt;&lt;br /&gt;The number one thing I look at on resumes (and I don't look at resumes all that much) is extra-cirricular coding activities. I want to hire engineers that I want work with. And those engineers are passionate about cool algorithms, slick code, and new ideas. They do that stuff in their spare time - its not just a job, its what they do because they love it.&lt;br /&gt;&lt;br /&gt;5) &lt;b&gt;APIs really don't impress&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;People seem so proud they know a lot of APIs. As far as I know, APIs were designed to be easy to learn. I'd really rather hire a smart person that I know can learn most any API than one that brags about the few they already know.&lt;br /&gt;&lt;br /&gt;I'm not saying knowing APIs is bad - it's not. It's just not the most interesting thing on your resume.&lt;br /&gt;&lt;br /&gt;6) &lt;b&gt;Know algorithms and data structures&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;One theme in Silicon Valley is massive amounts of data. And its not always of the classic relational database type of data. Its massively huge datasets that require plenty of processing (imagine the graphs made for &lt;a href=http://en.wikipedia.org/wiki/PageRank&gt;page rank&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;One of my favorite/fun interview questions (actually, probably one of my ex-favorites given that posting it here means its too well-known) is simply how to sort some objects. The absolute beauty of this question is that very many software engineer interviewees have given me a suboptimal answer for this - whereas my mom (who, despite making crazy good pirogis, has zero computer training) got it right.&lt;br /&gt;&lt;br /&gt;Here it is, as I ask it of engineers, and as I asked it of my mom:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Engineer's version&lt;/b&gt;: Say you had a million objects in memory (assume we have no memory constraints) all of type UniversityStudent. These objects have two fields:&lt;br /&gt;&lt;br /&gt;String name;&lt;br /&gt;int numberOfYearsOld;&lt;br /&gt;&lt;br /&gt;What is the fastest way to sort these objects by "numberOfYearsOld"?&lt;br /&gt;&lt;br /&gt;... So.. whats the answer? quicksort? mergesort? whats the running time?&lt;br /&gt;The most common answer I get is something like quicksort with an average running time of O(nlogn). For a million objects, that's something like 20million operations (comparisons) to do the sort.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mom's version&lt;/b&gt;: Say you came into a very large room with a million papers in a stack. On each paper is written the name and number-of-years-old of a given student. Whats the fastest way to sort these papers by hand by number-of-years-old?&lt;br /&gt;&lt;br /&gt;Mom made stacks. A stack of 18yr olds. A stack of 19yr olds, etc. She needed a possible of about 100 stacks maybe (ages 10-110). How many times do you need to look at each paper? Once. Right. That's 1 million operations or O(n). Go mom.&lt;br /&gt;&lt;br /&gt;Of course, Mom got it right because she had no preconceived notions about the problem or sorting in general. A candidate that memorized sorting algorithms before coming to the interview probably robotically responded with O(nlogn) without really thinking about the problem.&lt;br /&gt;&lt;br /&gt;If you've written plenty of code, you should be familiar with when to use what data structures and to know their runtime characteristics. You should know that a hashtable's worst case search time is linear - and you should have an idea how to avoid it. And why you might use a binary tree instead of a hashtable even though it's an O(logn) lookup. And that O(1) is effectively the same as O(100). Surely the subtleties are situation dependent - but that's why you understand it - to apply it in the right situation.&lt;br /&gt;&lt;br /&gt;This is all datastruct and algorithms 101. I perpetually hear developers tell me that they learned that stuff in school but now forgot it. Personally, I wonder what the hell they have been coding? If you've just been gluing APIs together then thats nice, but its not very interesting. Even if you don't interact with them directly, knowing data structures and algorithms is key to understanding performance. This is not premature optimization - this is choosing the right tool for the job. And that choice is often wonderfully subtle.&lt;br /&gt;&lt;br /&gt;And if you decide to do 20million operations when you could very easily instead do 1million, eventually we're going to have some problems.&lt;br /&gt;&lt;br /&gt;7) &lt;b&gt;Be an engineer that your interviewer would want to work with&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I don't know exactly what that means because it will vary with every interview and interviewer. Obviously be genuine but be passionate.&lt;br /&gt;&lt;br /&gt;8) &lt;b&gt;Know the language you say you do&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I try to phrase all language questions as things that I think any developer that has worked in a language for a year couldn't possibly not know. Tell me about wait, notify, and notifyAll (3 methods every Java class ever created has).&lt;br /&gt;&lt;br /&gt;I'm not worried if you don't know Java generics, but if you say you do, I'll ask for some code.&lt;br /&gt;&lt;br /&gt;Good interviewing coding questions in my opinion should be meaty, do something, and take no more than a whiteboard.&lt;br /&gt;&lt;br /&gt;-------------&lt;br /&gt;&lt;br /&gt;There really is a spectrum of good to poor engineers. And the one theme that runs through it all is passion. Not for a given language or system - but for problem solving. And building things. Certainly a good degree doesn't hurt but I promise you its not the whole story. I have flunked MIT Ph.Ds. and recommended-for-hire people with very modest formal educations.&lt;br /&gt;&lt;br /&gt;As I've said before - the interview is very very honest. Its about you, the whiteboard, and what you can do.&lt;br /&gt;&lt;br /&gt;Bottom line is I want smart, passionate, crackshot developers. They're out there and I want them here - partially because they'll help to make my company better. But also because they're very likely going to be smarter than me - and working with them is going to make &lt;b&gt;me&lt;/b&gt; better.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Notes from my BOF can be found &lt;a href=http://www.mailinator.com/tymainterviewing.pdf&gt;HERE&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://digg.com/submit?phase=2&amp;url=paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-software.html&amp;topic=tech_news"/&gt;&lt;br /&gt;&lt;img src="http://digg.com/img/badges/180x35-digg-button.gif" width="180" height="35" alt="Digg!" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;/p&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-5691934383891403277?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/qfRuY09c8Gs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/5691934383891403277/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=5691934383891403277" title="24 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5691934383891403277?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/5691934383891403277?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/qfRuY09c8Gs/howto-pass-silicon-valley-software.html" title="Howto Pass a Silicon Valley Software Engineering Interview" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">24</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/03/howto-pass-silicon-valley-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYMQHk7fip7ImA9WBFRFko.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-1909697422931229356</id><published>2007-02-27T10:27:00.000-08:00</published><updated>2007-02-28T07:39:41.706-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-02-28T07:39:41.706-08:00</app:edited><title>Knuth Weekends</title><content type="html">I'm a big believer in the idea of mental atrophy. Just like most any other part of your body - its a use it or lose it proposition.&lt;br /&gt;&lt;br /&gt;&lt;a href=http://www-cs-faculty.stanford.edu/~knuth/&gt;Don Knuth&lt;/a&gt; is exceedingly well-known in the computer science world. I'd say he's a luminary or a leading-mind or something like that, but I really wouldn't be able to do it justice. Let's just say he's a really (really) smart guy. He's also a retired computer science professor from Standford and happily, I see him bouncing around Google from time to time.&lt;br /&gt;&lt;br /&gt;Of particular practical application is that on reading his home page a few years back, I noted that he said he started his day with an hour in the pool and 2 more in the library. This made all kind of sense to me. Physical exercise the moment I wake-up works really well. Mostly because I'm usually a bit too groggy to get much done mentally, and by the time I'm done working out I'm finally awake enough that I hardly remember doing it.&lt;br /&gt;&lt;br /&gt;Two more hours in the library thereafter also makes perfect sense. Now I'm awake and I can personally attest I'm sharper at this time of day more than any other (when I was writing my book, I'd write in the morning and do code examples later in the evening. Presumably, because pretty prose was harder than pretty code :)&lt;br /&gt;&lt;br /&gt;Anyway, I've always struggled to try to do Knuth's schedule. But given I'm not a professor (or a retired professor), there simply was never enough time - at least during the week. I have however started this regimen on weekends.&lt;br /&gt;&lt;br /&gt;When I wake up (no particular requirement at what time) - I go for a few mile run (not much of a swimmer like Don, nor do I have easy access to a pool) and then read for an hour or 2 (note: for me, its key to do this *away* from internet access). I need to find a close-by library but so far my own pile of need-to-be-read books has a ways to go.&lt;br /&gt;&lt;br /&gt;Officially, I'm doing "Knuth Weekends".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-1909697422931229356?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/P_VQqWtWcus" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/1909697422931229356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=1909697422931229356" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/1909697422931229356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/1909697422931229356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/P_VQqWtWcus/knuth-weekends.html" title="Knuth Weekends" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/02/knuth-weekends.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04NRno8fip7ImA9WBFTEko.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-3695295435159740563</id><published>2007-01-30T10:26:00.000-08:00</published><updated>2007-01-31T11:33:17.476-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-01-31T11:33:17.476-08:00</app:edited><title>Why I work at Google</title><content type="html">I seem to get asked this a lot. But only by people that have known me for awhile. Noting that, I have a warning/disclaimer: If you don't know me or you only have known me since working at Google, this is probably not what you are expecting and might be excruciatingly boring or irrelevant. (you've been warned!).&lt;br /&gt;&lt;br /&gt;The reason I get asked this is that I left a perfectly good start up called &lt;a href=http://www.preemptive.com&gt;Preemptive Solutions&lt;/a&gt; to come here. When I say "perfectly good" its one that I am a co-founder, is now 10 years old, and was President (which I later became VP as I decided I wanted to live away from the HQ). In addition, the company has been by all measurements, a great success since inception - profitable every year, great product lines (and more coming down the pike!), and has over 20 employees (and aggressively &lt;a href=http://www.preemptive.com/company/Careers.html&gt;hiring!&lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;The other original founder Gabriel and I have been friends since the 5th grade. I'm happy to say the company gave our friendship a foundation in lives that otherwise were diverging. I'm still a part-owner of the company and we talk almost daily.&lt;br /&gt;&lt;br /&gt;In early 2005, I basically became ready to leave Preemptive. Not for any nefarious reason. I had been working remotely for a few years and I was ready for a change. No matter how you slice it, being remote leaves you out of the action - and I missed the action. Myself and 2 other guys (Bill joined us 6 months after we incorporated) built the company from scratch and it was a blast - but not being there, I was unavoidably an afterthought. &lt;br /&gt;&lt;br /&gt;This was nobody's fault except my own. I really had 2 options - move back to Cleveland (where HQ is) or look to advance my life in another direction. &lt;br /&gt;&lt;br /&gt;As luck would have it - life brought me to Silicon Valley. I had lived here before, but here I was again. And this time - I was looking for a job. At the time (April 2005) I was hearing plenty of buzz about Google, but honestly, after doing some comprehensive research on slashdot (*snicker*) it seemed like the luster might be have been off.  I read (again, from the reliable people in-the-know that post comments on slashdot) that the hard problems had been solved. The big money had already been made. The cool people had come and gone. It seemed like the "party was over".&lt;br /&gt;&lt;br /&gt;Just before my move, I attended the &lt;a href=http://www.sdexpo.com&gt;Software Development&lt;/a&gt; conference in the valley where I chair the Java track. Its a fun conference and the timing was perfect to give me a chance to look for a place to live. The thing about that conference is that it does a great job of attracting big names in the industry to speak. Consequently, the speaker party is always a ton of fun. &lt;br /&gt;&lt;br /&gt;During that party I had a conversation with two very well known Java authors (who were appropriately snooty) where we got into a discussion about Google. It turns out that both of these "industry pundits" interviewed and were rejected (obviously, I'm carefully leaving their names out). I had heard about Google's "legendary" interviews - but I figured with a few books on your resume, how could you not get in?&lt;br /&gt;&lt;br /&gt;Now mind you, after writing a computer book of my own and meeting many computer book authors, books don't impress me much. Writing a computer book is like getting a Ph.D. - its 10% talent, 10% luck, and 80% persistence (Ph.Ds "usually" take longer, but not always). And that's that. I'm not saying its easy, but a book definitely doesn't make computer book authors necessarily luminary or anything. This is probably especially true for books that don't invent anything (i.e., just cover an existing language or API).&lt;br /&gt;&lt;br /&gt;Anyway, both of these snooty guys then proceeded to snoot on me how I probably shouldn't even bother as I don't have a chance (Again, I only wrote one book). Well, as you can imagine, it was now a moral imperative that I at least give it a try. If I didn't get in, I wouldn't be stupid enough to brag about it at parties. If I did get in, I could snoot back next time we met.&lt;br /&gt;&lt;br /&gt;I'll admit that stories of Google's interviewing process scared me a bit. There was also a nagging question as to whether I'd apply as a manager or engineer. For the past 8 years I had been in management running my own start up. I hired, I fired, I made marketing plans, I built products, I built teams, I schmoozed clients, I did strategy. Granted, after 5pm I often found myself still coding - but that wasn't at all my main job. &lt;br /&gt;&lt;br /&gt;I needed to decide whether to apply at Google as a (probably technical) manager or as an engineer. I preferred a managerial role but two things worried me. 1) I had no formal business education (which turned out to be way less important than I thought, read below). And, 2), business interviews (anywhere) are what we call non-deterministic. Basically, you can give great answers, but if the interviewer doesn't like you, you can get a bad review. With engineering, the questions have a "right" and a "wrong" answer - or reasonable facsimiles thereof. The interviewer can dislike you, but they can't say you're wrong if you're right.&lt;br /&gt;&lt;br /&gt;Personally, I think I'm a better manager than I am an engineer. But I had no metric to know what they'd think. &lt;br /&gt;&lt;br /&gt;Now keep in mind, those two assumptions above are BEFORE I ever set foot on Google's campus. I had no idea what to expect, I was just making calculated risks. But based on these unknowns, I chose to apply as an engineer.&lt;br /&gt;&lt;br /&gt;I interviewed at several companies in the valley (become.com gave me an offer on the spot. It was surprisingly low and the CTO informed me it was a mandatory 54hour work week - wtf?). I also started interviewing at Google. At that point, I was still pretty skeptical about the idea of working there. I expected a lot of "attitude". I was pretty surprised when I got none.&lt;br /&gt;&lt;br /&gt;The engineers I met in my interviews were passionate about development. That was it. They wanted to know if I was passionate about it too. They were excited about Google. They were excited about making cool stuff. There was no attitude, no snoot - just dev talk. &lt;br /&gt;&lt;br /&gt;It also became immediately clear to me why the snooty authors didn't get whisked in based on their resumes alone. It was, in my estimation, the most honest interview I had ever been given. It was me, the interviewer, and the whiteboard.&lt;br /&gt;&lt;br /&gt;The logic is pretty clear. Your resume tells what you did, which is great. And they did look at it. But they were far more interested in what I could do. &lt;br /&gt;Right now. &lt;br /&gt;On the whiteboard. &lt;br /&gt;&lt;br /&gt;Understanding that no system is perfect and assuming they were allotting for interviewing nervousness, like I said, I felt this was pretty darn fair. The interviews were challenging, but also damn fun. When one was over, I found myself looking forward to the next.&lt;br /&gt;&lt;br /&gt;The interview process took a long time. The longer it went on, the more I liked the idea of working at Google. &lt;br /&gt;&lt;br /&gt;There is a very important old saying about jobs: "If you're the smartest person where you work, quit". Basically - if you work with people smarter than you, you'll learn a lot. If you don't, you won't.&lt;br /&gt;&lt;br /&gt;I wasn't really working anywhere at the time, but it was evident just from my interviews that there were plenty of people smarter than me at Google. I liked that idea a lot. The atmosphere was college-like. Engineers seemed excited and unencumbered. &lt;br /&gt;&lt;br /&gt;It dawned on me that every decade there seems to be a "place" to work as an engineer. In the 80's it was Xerox Parc, in the 90's it was Microsoft. The 2000s, to me, felt like it was Google.&lt;br /&gt;&lt;br /&gt;Needless to say, I took the job. &lt;br /&gt;&lt;br /&gt;In a week or two I'm changing to a Java team working with Josh Bloch, Frank Yellin, and Pablo Bellver. How frickin cool is that? I can't think of a better place to be as an engineer (unless you're in Cleveland! then go work for Preemptive! :).&lt;br /&gt;&lt;br /&gt;And as far as the snooty authors go, I still see them. Of course, they've written off my working at Google as "lucky" or a fluke. That's all not very relevant now as I pretty much blotted them out of my mind the instant I started interviewing. In fact, I completely forgot about them until the next year when I saw them again and they re-applied their snootage. &lt;br /&gt;&lt;br /&gt;I'll admit my entrepreneurial side itches every now and then, and, as usual, I have a half-dozen projects/websites I work on in my free time. But as far as a day job goes, I'm good. Now when I'm asked why I work at Google, I pretty much ask back "where else would I want to?". And I assure you, there are still plenty of hard problems, plenty of passion, and the party - is - most definitely, not over.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://digg.com/submit?phase=2&amp;url=paultyma.blogspot.com/2007/01/why-i-work-at-google.html&amp;topic=tech_news"/&gt;&lt;br /&gt;&lt;img src="http://digg.com/img/badges/180x35-digg-button.gif" width="180" height="35" alt="Digg!" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;/p&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-3695295435159740563?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/jyUZMt-BFHs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/3695295435159740563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=3695295435159740563" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3695295435159740563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/3695295435159740563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/jyUZMt-BFHs/why-i-work-at-google.html" title="Why I work at Google" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">16</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/01/why-i-work-at-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUASX08fip7ImA9WBBbFk8.&quot;"><id>tag:blogger.com,1999:blog-19646899.post-116827915985836527</id><published>2007-01-08T09:46:00.000-08:00</published><updated>2007-01-12T09:50:48.376-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-01-12T09:50:48.376-08:00</app:edited><title>2007 Update</title><content type="html">Sorry.. havent posted in a bit. Just been busy with travel and such. Thus, here's a quickie update on things that you probably don't need to know, but I'll tell you anyway.&lt;br /&gt;&lt;br /&gt;1) Spam Spam Spam. Down below I have a post about how mailinator hit a new high of like 3million emails a day and that spammers must be going wild. Well, they're going wilder - I saw 4.7 million the other day with one hour's surge heading for 6.1 million. Woot!&lt;br /&gt;&lt;br /&gt;2) I am *not* hot enough. Ever see &lt;a href=http://www.hotenough.org&gt;www.hotenough.org&lt;/a&gt;? Its a dating site for people 18-35 who are, well, "hot enough". Basically you send in 3 pics and if the admins approve you, existing members then vote on your hottageness. You need 8 out of 10 from 25 votes to get in. Well.. firstly I'm not 35 (so I lied) but I am also NOT hot enough!!!!  Only scoring a paltry 5.5/10 after 10 votes. Ugh.&lt;br /&gt;&lt;br /&gt;3) After reading this &lt;a href=http://www.pcworld.com/article/id,128206-page,1/article.html&gt;article&lt;/a&gt; I doubt I'll ever do business with NetZero, AOL, Bluemountain, classmates.com, etc. I hate companies that do this junk. I just cancelled 2 credit cards (to get some decent cashback ones) and I must say, I expected a fight and didn't get one. Kudos Amex and Chase.&lt;br /&gt;&lt;br /&gt;4) For those that don't know it (which means you don't know me) - I am in the &lt;a href=http://www.vanguardsoh.com&gt;Vanguard&lt;/a&gt; beta. Its a new MMORPG by Brad McQuaid, the creator of the original Everquest. And... all i gotta say is .. uhoh. Here we go again. This looks really good.&lt;br /&gt;&lt;br /&gt;5) Google got voted the best company to work for by &lt;a href=http://money.cnn.com/magazines/fortune/bestcompanies/2007/index.html&gt;Fortune.&lt;/a&gt; Irrespective of this article, I am perpetually amazed at how great of a place this is to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19646899-116827915985836527?l=paultyma.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalRevenue/~4/4zmI2-opHn0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://paultyma.blogspot.com/feeds/116827915985836527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=19646899&amp;postID=116827915985836527" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/116827915985836527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19646899/posts/default/116827915985836527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalRevenue/~3/4zmI2-opHn0/2007-update.html" title="2007 Update" /><author><name>Paul Tyma</name><uri>http://www.blogger.com/profile/11412172362500455307</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10507225897651170435" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://paultyma.blogspot.com/2007/01/2007-update.html</feedburner:origLink></entry></feed>
