Archive for the ‘Vendors’ Category

Facebook and Zynga are in Real Trouble

Thursday, July 26th, 2012

Facebook

I'm not an analyst, but I know what I believe in, and what makes me nervous. Facebook has always been in the latter category, and it's all because of how it's making it money, and what face it presents to it's users. I guess it's also that I'm willing to bet that less than a few percent of the Facebook users really understand how they make money, and what they are doing with the user's personal information.

So today was interesting… Facebook announced earnings, and the result wasn't good:

NASDAQ:FB: 24.84 -2.00 (-7.47%) - Facebook Inc

and it's still falling… down %10 in after-hours trading. But that's not the worst.

No, it seems that Zynga has had it's own round of problems - this in the form of near scandal by the underwriters and massive dumping by the principals in Zynga:

NASDAQ:ZNGA: 3.08 -0.09 (-2.99%) - Zynga Inc

It's amazing that people don't think everyone on Wall Street are crooks. Look at what they are doing to literally millions of investor dollars! It's evaporated. Done. Poof. It's almost a crime.

But I know it's not. Not really. And that's why I can't stand folks like these.

The Real Utility of Web-Based Language Tests

Thursday, July 5th, 2012

cubeLifeView.gif

It's common to hear, the company you are interviewing with wants you to take a test on the language you say you're proficient in - just to make sure that you are what you say you are. It sounds very reasonable: You say you've been doing C++ coding, then taking a little test for an hour should be no big deal, right? Java, Ruby, anything can be tested, right? And this will let the employer know if you're really good at this. Right?

Not so much.

I've been taking and writing tests for many years, and I've no problem with tests of any kind - so long as the results of the test are balanced against other factors. For example, are you going to hire an architect for your house based on his ability to take a 60 min test on the loading of certain structures? Or the standard lengths of commercially available lumber? No. You want to see what he's done. That's what's impressive (or not).

You want to look at what a person has done, and can do, in order to know if you want to hire them. It's possible that a one-hour test is a good measure for that, but I'm guessing not. I've taken too many of these tests in the past couple of years to think that any web-based test can be a good, complete, and accurate measure of a person's ability to write real-world systems.

How are you going to test their ability to design solid thread-safe code? You can ask them questions about it, but that's not the same. You can ask about immutability, but that's not the same as knowing when to apply it, and when not to.

The problem is that these tests are billing themselves as an authoritative measure of the quality of an individual, and they can't possibly be. They are far too narrow. How can you possibly measure a person in an hour? No way.

So I had to take two of these today, and it just wiped me out. I got "decent", but not "great" scores - as I'd have expected, and that's about as good as I can expect. But I guess I need to look at these tests in a slightly different light -- if the employer is taking these ay face-value, then maybe that's telling me something important about their hiring policies, and maybe that's the critical take-away for me.

In all my years, I'd never inflict this on someone. It's just not a useful metric for hiring a person. Going into a place that requires them means that I'll be forced to ask for them. Not necessarily a good thing, in my book.

UPDATE: I got a mid-40's percentile on the C++ test. From this, you'd think there are a ton of developers that are better than I am. As such, the employer that was asking me to take the test said I wasn't qualified. It hurts, I won't kid you, but in the end, I honestly believe it's saying more about them than me, and that's really what's important to me.

Twitter Issues Warning to Developers

Friday, June 29th, 2012

Twitterrific.jpg

This evening I was reading a few tweets and this popped up. Not good news for me as I'm using Twitterrific on iOS and OS X. I have no desire to be forced to use the "certified" Twitter clients. They aren't as nice, and I'm really getting to like using the same client on both platforms.

I can certainly understand why they want to do this - they need to make money, and inserting ads to the stream is about the only way to get money without getting people to pay to use the service. But do that, and all the other "second tier" services will say they are free, and they'll get all the messaging flow.

No, from a client, Twitter has to be without charge, or it will fail. But it's got to make money, so it's got to be ads. The article says LinkedIn was first, but I wonder when the other clients will be on the hit parade?

Installing JDK 6 on Ubuntu 12.04

Monday, June 18th, 2012

java-logo-thumb.png

This afternoon I wanted to get a few things going on the new Rackspace Cloud Server Joel had reconfigured to run Ubuntu 12.04. Specifically, I wanted to get the latest JDK 1.6.0 installed on the box as we need that for Mingle, which is the point of all this reconfiguration and such.

As it turns out, it's not that bad you just have to know where to go and what to get, and what to do with it. Isn't that the same thing with all new software for linux? Yes.

OK, first, get the latest JDK 6 download from Oracle here. Then it's a simple matter of unpacking it:

  $ chmod +x jdk-6u32-linux-x64.bin
  $ ./jdk-6u32-linux-x64.bin

Then you need to move that to someplace useful. For me, that's /usr/local and then make a few symlinks to make it easy to upgrade:

  $ sudo mv jdk1.6.0_32 /usr/local/
  $ cd /usr/local
  $ sudo ln -s jdk1.6.0_32 jdk1.6
  $ sudo ln -s jdk1.6.0_32 jdk

Then we can put it into the path using the alternatives system on Ubuntu 12.04:

  $ sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.6/bin/javac 1
  $ sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.6/bin/java 1
  $ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/jdk1.6/bin/javaws 1

and then set the default JDK (if needed):

  $ sudo update-alternatives --config javac
  $ sudo update-alternatives --config java
  $ sudo update-alternatives --config javaws

Finally, we can verify that the JDK was installed properly:

  $ java -version
  java version "1.6.0_32"
  Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
  Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)

Facebook Continues It’s Amazing Opening Slide

Monday, June 4th, 2012

Facebook

I was talking to a friend on chat this morning, and he pointed me to some code on GitHub that supposedly comes from Facebook, and has some interesting data structures designed for very high performance on highly threaded applications. It's similar to DKit, but larger, and I had a look at what was there. It's not that it's bad, but it's Facebook, and there's still something about that place that makes me think of Used Car Salesmen, and not in a good way.

While this code base has some interesting things, it's nothing that I haven't seen in TBB and other places, or that you could make with a simple TBB read/write spin lock, and a simple STL data structure. But it got me to thinking, and so I checked this morning, and the Facebook slide continues:

Facebook Slides Again

It's hard to get behind a company, and a person, that seems to act with such arrogance, and at the same time is in the middle of such a horrible IPO. I mean I'm betting there are people in Facebook that are close to jumping out the windows a la 1929. There are governmental investigations, lawsuits filed, and the stock still keeps sliding.

As some point, it has to match the real value of the company and stop, but I have no idea where that is. They have a ton of code (IP), and they have data centers, so it's not like they have no valuable assets - it's just that their valuation is based on their user base and expected returns and growth. But that's not necessarily anything like what the company is really worth.

I just wonder when it'll stop the slide.

Facebook IPO Now a Lawsuit

Wednesday, May 23rd, 2012

Facebook

This morning there's a new story about the Facebook IPO - Zuckerberg, Morgan Stanley are now being sued over the Facebook IPO based on the dismal performance - based (claims the suit) on withheld knowledge of the weak growth forecasts. I was never a fan of the Facebook IPO - but I haven't been a fan of Facebook in general. If anything, I think it's the extreme case of The Emperor's New Clothes - on a nearly global scale.

The vast majority of folks on Facebook are totally unaware that they are what's being sold. That being said, the profitability of Facebook depends on the users clicking on the ads to generate ad revenue for Facebook. Minus that, it's dead. If advertisers see that their ad dollars are being wasted there, they will simply go somewhere else - it's very simple. With the onset of hand-held apps for Facebook, the ads are gone, and therefore, the revenue - but that's just how people want to use it. Free and freely.

Looking at the chart of the first few days of trading for Facebook, it doesn't look anything like what people were expecting - or should I say hoping for…:

Facebook Decline

What you've got is pretty much exactly what Zuckerberg planned - sell the idea of a great IPO, and hope that you'll therefore have one. But business people aren't, as a general rule, complete defuses. They tend to see what's really valued and what's not. At least more often than not. And this is a classic case of The Emperor's New Clothes.

There's nothing to Facebook that the users don't bring to it. Which means the only barrier to entry is pulling those users away from Facebook. I've looked at Google+, and while the first versions weren't all that great, the latest version on my iPhone is much better. It's still the case of trying to sell me, but I don't use it that way. Nor would I think that Google were valued by Google+ alone.

This is one IPO that I wasn't ever interested in, and am glad I'm not working for anyone that's heavily invested in it. It's a smoke-and-mirrors game, and it's not going to tank immediately, there are now too many shareholders that want it to succeed, but it's the beginning of the end for the "darling" of the industry.

But hey… it's just a social networking site. There were others, there will be others. And this will be just a distant memory - like Napster, Netscape, and AOL.

Interesting Bug in OS X Lion – and Great Service

Tuesday, March 27th, 2012

Mac OS X Lion

Today I had a crash in MarsEdit, and it had to do with looking up a word in a post I was generating, and I sent the data to the author. Amazingly, Daniel got back to me that there's a known bug with Mac OS X Lion when it comes to the window animations - and specifically turning them off, as I had. This was one of those hidden preferences that I found and used, and, as Daniel said, many have used as well.

The bug is that it's not really working right without it, and so the right thing to do is to turn it back on:

  $ defaults delete -g NSAutomaticWindowAnimationsEnabled

And things will go back to normal.

The real kicker for me is not that there's a bug in OS X Lion - it's that Daniel was on top of this support issue that wasn't even emailed from me to him. It was a crash report that I sent in, and he responded to it. That's amazing customer service. I'm certainly going to remember this as I (hopefully) move towards indie Mac developer. It's something to respond to emails, it's another thing entirely to respond to crash dumps.

Amazing.

Skitch 1.0.6 is Out – On the Mac App Store

Monday, June 20th, 2011

Skitch.jpg

This morning I saw that Skitch 1.0.6 was out, so I went to my Skitch app and hit "Check for Updates...". I was then told "You're on the latest version - 1.0.4". OK, something's not right. So I went and did a little digging. It seems that the free version is crippled now, and the good version I had was no longer available in that format, so I had to purchase it again for a "mere" $25. Even though, it said on the web site it'd be $10. Hmmm...

OK, I like Skitch, and I'd probably have bought it without a grumble if I'd read about it in some email from the Skitch crew, but that's not how it happened, and I can't help but feel a little miffed at the way it was done. No warning, I'm stuck on an old version and not getting updates. No upgrade path, no continued support. Kinda bites.

I'm sure I'll get over it. I'm still a huge fan, but this is liable to prompt me to send them a letter and say "Hey guys... not nice. Try harder next time."

Setting SQLAPI++/iODBC/FreeTDS for Minimal Impact

Wednesday, June 15th, 2011

database.jpg

This morning I spent a little time looking at the SQLAPI++ manuals looking for the way to make it minimal impact on the SQL Server I'm hitting. I was hoping to find a way of setting a timeout on the SQL statement's execution. What I'm seeing now is that every so often the act of reading from the database will hang the thread doing the reading, and it doesn't give it up for long enough that I restart the process.

This isn't good.

So I wanted to put in a timeout without resorting to a boost ASIO timeout. What I found was that there isn't a timeout in the SQLAPI++ code, and there isn't really one in the iODBC layer, either. There is one in the server configuration on FreeTDS, but I'm not really keen on putting a timeout value there for all connections and queries to a database. I just wanted to be able to put one on this set of queries.

What I did find was that I could make the SQLAPI++ command quite a bit nicer to the database with a few options on the command:

  cmd.setCommandTest(aSQL.c_str());
  cmd.setOption("PreFetchRows") = "200";
  cmd.setOption("SQL_ATTR_CONCURRENCY") = "SQL_CONCUR_READONLY";
  cmd.setOption("SQL_ATTR_CURSOR_TYPE") = "SQL_CURSOR_FORWARD_ONLY";
  cmd.Execute();

where the middle three lines are new this morning. The default for the command is to fetch only one row at a time - that's very bad, and to allow a more liberal reading/updating policy with the cursor. I don't need any of that, and this will make sure that I'm about as lightweight on the database as possible.

With no timeout to fall back on, I'll have to just see if these changes are enough to make sure I don't get the lock-up again. Sure hope so...

Twitterrific for Mac 4.2 is Out

Tuesday, June 14th, 2011

Twitterrific.jpg

This afternoon I saw that Twitterrific for Mac 4.2 was out with a nice list of features, improvements, and bug fixes. Unfortunately, among them is not my bug with the graphics-mode switching. It seems that this guy is still not smart enough to properly detect this and cope. Kinda depressing. I'm still having to stay on integrated graphics or deal with a broken Twitter client. Not like it's the only one, Twitter's Official client is just as bad.

Sad.