Friday, December 4, 2015

So long Firefox...

In the past half year I've largely stopped using Firefox. Day to day I've moved my browsing to Chrome with all the devices I use. Even on my iPad Pro -- the A9X SoC inside the iPad Pro is so powerful that I don't care if Safari is in fact faster, I'd rather be able to view recent browsing on my other devices and recall stored passwords versus imperceptible differences in JavaScript performance. 

My abandoning Firefox is fairly recent compared to many former Firefox users that I've known who by their technical nature emigrated to Chrome long ago. So why the delay? For the loooooongest time, I didn't see much difference between Firefox or Chome on my home PC. Unlike many people who are automatically drawn to laptops, I've never been much of a laptop person. For accessing information impromptu, I greatly prefer the portability of a high end smart phone .

I also happen to be both a videophile and an audiophile.

On my Windows 10 system I have both a 34" display with a cinematic (21:9) aspect ratio and a 27" 4K display. Both have outstanding color accuracy and use In Plane Switching (IPS) technology to provide great viewing angles and a wider color gamut. On my Mac, I use a 27" Apple Cinema Display. The small displays of laptops provide a very cramped work space compared to what I'm used to.

Then there's audio, audio on most PCs is extremely low end. The biggest player in the space is Realtek whose silicon powers audio on PCs. They sell each audio chip for less than the cost of a Starbucks Espresso. For some juxtaposition, the Soundblaster ZxR audio card inside my PC cost $250 -- it provides high end DACs for both the front and rear channels. Did you catch that part about the front & rear channels? Yep, I have a reference Klipsch 5.1 speaker system attached to my PC. 

What does this have to do with Firefox? Bear with me... 

I have a very high end PC, no doubt I've made it abundantly clear by now. Over the last few years, using Firefox on my home PC, I rarely, if ever, noticed a difference in Firefox's performance versus Chrome.

The problem started with my work PCs, which as you can imagine are nowhere as 'leet' as my home system. When I started my last job, I ran Firefox on a lower end desktop since I spent lots of time with emails and SSHing into systems were the work load wasn't immediately in front of me but in the cloud. I noticed Firefox was not its snappy self, at least compared to what I was used to at home, but I always chalked it up to the hardware sitting on my desk. 

Then one of the developers left so I took over his Core i7 tower with 16 gigs of RAM -- plenty of CPU & memory to run anything I needed. And yet... I noticed Firefox performance was still sluggish and not up to par with what I was used to at home. I had inherited the box from a developer who had installed all kinds of software on it. Who knew what was going on under the hood, right? I wasn't inclined to rebuild it from scratch so I figured something deep down might explain Firefox being sluggish.

The first nail in the coffin (moving away from Firefox) was when the hard drive on this Core i7 died after about a year of usage. I rebuilt the system with a clean install of Windows 7 and still, Firefox was sluggish. I noticed the integrated GPU was pretty low end, Intel's HD2000, so I brought in a dedicated nVidia video card I had at home that I no longer used and yet... Firefox was still sluggish.

I recollected how someone I knew was talking about how Chrome was always snappier, regardless of the hardware and one of the ZDNet bloggers always complained of Firefox's performance. Maybe they were right? Certainly my own experiences on systems that weren't my home PC were bearing this out. 

The final nail (accelerated my leaving Firefox) was when Google released 64-bit Chrome for Windows. I might mention that 64-bit Chrome is not the default Chrome download but having a 64-bit browser making various kinds of exploits much harder to pull off: 

https://en.wikipedia.org/wiki/Return-to-libc_attack

Excerpt:

Address space layout randomization (ASLR) makes this type of attack extremely unlikely to succeed on 64-bit machines as the memory locations of functions are random.


And in lieu of what's going on these days, that's a good thing:


I wrote on the latter general topic some years ago:


Tuesday, September 23, 2014

atoi (in 32 bit x86 Assembly)

During my Amazon days some years back, an inside joke was established between some of us regarding the C function, atoi. One of our teammates named Kevin was fixated on the most efficient implementation of atoi in C. Since our charter wasn't even to code or maintain any C code, Kevin was being rueful about his college days versus than anything else.

After the discussion died down, the following day another team member cracked, "Well, Kevin, now it's time to tackle itoa." We all chuckled but writing atoi became an inside joke with various wisecracks such as "Oh... Kevin's next big project probably is writing atoi with one line of code."

A couple of years later when Kevin and I were no longer coworkers, he told me he was interviewing candidates at Amazon and I wisecracked, "You should have the candidates write atoi... in x86 assembly!" Again, we chuckled.

Well, it turns out I have a degree in computer engineering and outside of electrical engineering classes during my undergrad, I had an engineering class involving the use of a microcontroller board and having to write assembly code for the labs. So that evening, I took on my own challenge, i.e., writing atoi in x86 assembly. Nowadays I work in the network engineering space so this isn't something I do on any active basis, even so, before too long, I wrote code that follows below (no "googling" involved here).

The experience back then gave me an invaluable understanding in computing that few achieve today. That's why when security advisories come out calling out arbitrary code execution, the advisory doesn't simply go in one ear and out the other. Which is a segue for an anecdote -- once a vendor in a large IT security fair was demonstrating his product and he asked a room of about 150 IT professionals, "Anyone here know what a NOP sled is?" and I was the only person who raised their hand...

atoi: push ebp
      mov ebp,esp ; Establish stack frame for args

      push ecx    ; Counter for strlen
      push edx    ; used in another loop
      push esi    ; index for loop
      push edi    ; Used for multiplying powers 

                  ; of 10
      
      mov esi [ebp+1]
      mov ecx, 0 

str_len_loop:
      cmp 0, [esi]
      je len_end
      inc ecx     ; will hold strlen at loop's end
      inc esi

len_end:
      cmp 0, ecx           ; Anything to convert?
      mov eax, 0           ; If not, return 0, like

                           ; C stdlib

      je atoi_end          ; if ecx == 0 we're done

      lea esi, [ebp+1]+ecx ; Point ESI to end 

                           ; of string passed to us
      dec ecx

      mov edx, 1           ; Start with lowest

                           ; order power of 10
      mov edi, 0

core_loop:
      lea eax, [esi]-30    ; non-destructive add
                           ; *esi has a single digit 

                           ; ASCII char subtracting 
                           ; 0x30 leaves us with 
                           ; digit for that power 
                           ; of 10

      mul edx              ; MUL multplies EAX 

                           ; with arg

      lea edi, edi+eax

      mov edx, eax
      mul 10
      mov edx, eax         ; Have next highest 

                           ; order power in edx

      dec ecx
      cmp 0, ecx
      je core_loop_end
      dec si
      jmp core_loop

core_loop_end:

           
      ; When everything is said and done EDI will 

      ; hold value to return

      ; Canonically returns values are passed back 

      ; via EAX

      move eax, edi

atoi_end:
     
      pop edi
      pop esi
      pop edx
      pop ecx
      pop ebp

      ret

Friday, August 23, 2013

The Time Has Come

Microsoft's Steve Ballmer announced today that he would be stepping down as Microsoft's CEO in the coming year. 

The reasons are many but in short, things have not been going well for Microsoft when viewed through the lens of long term planning. I will direct the reader to something I wrote back in February of 2010:

How Microsoft Lost the Platform War

That very same month, here is what ZDNet's Ed Bott had to say:

Can Microsoft close the app gap with Apple's iPad?

Excerpt:

Microsoft has been refining for the past decade, and I can confidently predict that Apple will do a much better job of implementing those features than any of Microsoft's partners have done so far.
.
.
Nearly eight years after its introduction, the Tablet and touch technology in Windows is nothing short of spectacular, especially the parts that recognize handwritten input. And yet it's still nearly impossible to assemble a full suite of Windows apps that were designed to work well on a touch-enabled PC.

In reading Mr. Bott's words, you get the sense that he sees the future back in 2010 as clearly as knowing the sun will rise the next day. But if you carefully read what Ed Bott wrote it is less about prophecy and more about observing a company not wanting to change the status quo, for in his opening statement he says:

I've owned a succession of Tablet PCs over the past roughly seven years, nearly as long as they've been around.

In other words, Microsoft was dabbling with new forms of computing for many years. It just never had the vision or the moxy to cannibalize its own products:

“If you don’t cannibalize yourself, someone else will” -Steve Jobs

Moving to the present day, Dell this past week announced terrible earnings:

Dell Profit Falls 72% On Flat Revenue

Hewlett Packard noted that sales of PC continue to contract:

HP posts revenue decline as PC sales weaken further

And office supply retailer Staples did not have words of comfort for Microsoft's future in the consumer space:

Staples supplies bad news on PC sales

All of this bad news has been underscored by the extremely poor showing that was Microsoft's first direct attempt to compete with Apple in the tablet space:

Microsoft's $900 million Surface RT write-down: How did this happen?

So the news that Ballmer is stepping down is not completely shocking. Perhaps it is shocking in the general sense as many CEOs have sent his/her company into the grave (or on the path to it) before yielding. RIM anyone? When the iPhone was launched in 2007 Nokia's CEO likened Apple to a flea buzzing around its major market share. How times change.

Therefore I applaud Mr. Ballmer's decision for having the humility to accept change. It's simply time.

Saturday, November 24, 2012

"I don't need car insurance since I only drive to places familiar to me"

It has been a while since I have made a post but in the past month I've had the same conversation with two different people where the underlying logic was akin to the title of this post:

I don't need car insurance since I only drive to places familiar to me

Both are people who actively use technology and one happens to manage a fleet of server systems. What was the topic? Desktop security while browsing, i.e. avoidance of malware. I was encouraging a certain approach to browsing which I have already talked about on this blog. I've heard many arguments on this front which are usually just masks for hope as a strategy (which it isn't, i.e., hope). They feel comfortably ensconced with I only use browser 'X' for my finances or I only visit trusted sites. Unfortunately such thinking is akin to the latter statement about car insurance. Here's why:

http://arstechnica.com/security/2012/11/new-linux-rootkit-exploits-web-servers-to-attack-visitors/

The latter case is classic pharming. The idea being that unlike phishing where you spray/send malware randomly by various means, often email, to users and hope someone falls for it, in pharming you poison the water well as it were and have a greater chance of something sticking simply because the malware is being served up by a legitimate web site and the content is actively being processed by a web browser.

In the case of phishing multiple approaches have been found in the wild. Some comes in the form of spam but various email providers have gotten very good at filtering such emails and as the Internet user base has gotten increasingly tech savvy, the efficacy of this approach diminishes. There are also web sites disguising as legitimate sites trying to trick users into divulging their username and password. With all of these the chances of deceiving someone are much smaller than a situation where every single web page served up by a legitimate web site has malware embedded in it hoping to leverage exploits in unpatched software on the desktops of unsuspecting users up to and including their favorite web browser. Namely pharming.

The example that Arstechnica has brought to light is not new. Ad networks that serve up ads for popular web sites have in the past been compromised and found to be serving up malicious content:

https://threatpost.com/en_us/blogs/major-ad-networks-found-serving-malicious-ads-121210

Then there are cases of more directed attacks where a legitimate site is breached on account of having users with a given demographic profile, in this case, money to pilfer:

http://securityledger.com/web-attacks-target-foreign-exchange-payment-processing-sites/

http://arstechnica.com/security/2012/12/sophisticated-botnet-steals-more-than-47m-by-infecting-pcs-and-phones/

So, it does not matter if you are only visiting the Wall Street Journal or the New York Times or whatever web site strikes your fancy -- if your computer is fetching content on the web, you are at risk. Quite simply, most web pages are an aggregation of content from many, many sources. There is simply no way any individual can police how diligent all these content providers are with respect to their computer security maintenance and security policies.

These are the two tools I encourage everyone to install:

http://mastercobbler.blogspot.com/2010/09/microsofts-enhanced-mitigation.html

http://mastercobbler.blogspot.com/2010/06/microsoft-security-essentials.html

This all underscores why the logic of I only visit sites I trust does not work and why I liken it with I don't need car insurance since I only drive to places familiar to me.

Realize that the only computer system that is 100% secure is one that does not exist. So it is all about mitigating the chances of you becoming a victim. Ignorance is bliss until reality comes calling.

Sunday, December 25, 2011

Windows vs. Mac OS X (It comes down to font rendering)

When it comes to which operating system someone likes, it's very much based on what biases that person brings to the table. So no shock that people who have been on Windows for years have numerous complaints about Mac OS X or vice versa.

However, there are differences that have nothing to do with user interface design choices such as toolbars (or lack thereof), keyboard shortcuts, etc., etc. One of the biggest differences between the two platforms is fonts, but more specifically, font rendering. If you've used Windows for years, one of the first things you'll notice as you start using Mac OS X is that things, e.g., web pages, look different and indeed it's not just your imagination. It turns out how Apple renders fonts is different than how Microsoft does it on Windows:

http://www.joelonsoftware.com/items/2007/06/12.html

I became acutely aware of the latter back in 2007 on account of noticing that the Windows version of Apple's Safari browser made pages look different than what I had been accustomed to while browsing with Firefox and IE (before I stopped using it years prior).

Turns out, now that I've had a Mac for the past year, I've reached a point where I prefer browsing on my Macintosh vs. my Windows system because of this font rendering difference (how pages look).

While I would agree with Spolsky that Windows' fonts are easier to read, the difference isn't stunning. Text is clear on the Mac. It's just that Windows uses less anti-aliasing and the pixel contrast, i.e. the individual pixels that make up a single letter, is more pronounced on account of the jaggies. Spolsky also writes:

you'll find that most people don't really know what to choose, and will opt for the one that seems most familiar.

Iterating, after actively using Mac OS X for a year, I now prefer browsing on my Mac. It's created a bias that I would have to say, if I bought a laptop today, it would be an Apple Macbook. (Aside: The Mac I got 12 months ago is a Mac Mini).

While font rendering is subtle, since it is visual and vision is people's primary sense, it's a major anchor for ensconcing people into a comfort zone. And since people are wont to resist change, it's very hard to pry them away from said comfort zone once they gravitate to it. This all means that people dropping Windows in favor of Macintoshes aren't likely to come back anytime soon. As a bad portent for Microsoft, check out the following AppleInsider article that came out last month (Nov. 2011):

http://www.appleinsider.com/articles/11/11/14/mac_sales_surge_despite_slipping_european_pc_market.html

In summary, PC sales dropped double digits in both the UK & Germany and close to 10% in France. But if companies selling PCs in Europe are blaming the global recession, the Macintosh market for Apple in Western Europe grew just shy of 20% year over year. I'll also remind the reader that Apple charges a premium for its hardware.

In closing, while I very much still use Windows 7 on account of Windows Media Center and my XBox360 acting as my DVR (check out the latter video link), nowadays if I'm browsing the web, more than likely it's on an Apple device (my Mac, iPad 2 or iPhone).

Tuesday, September 27, 2011

No, Google's Chrome Browser isn't the fastest browser by leaps and bounds (anymore)

Tech people (like the rest of the homosapiens) are experts at mixing facts with opinion, a.k.a. bias. In my view Firefox by and large caught up to Chrome with release 4.0. Since then it has continued to make great strides...

Yet, I've noticed many people saying "Firefox is bloated, slow, blah, blah, blah, blah, blah". One of them (who I don't know personally) is ZDNet blogger Steven J. Vaughan-Nichols. In short, Steven trashes Firefox with every major release but worships Chrome's every release. Merely juxtapose what he wrote not even one month ago about Firefox 6 when it was released (the Mozilla team this year adopted a fast release cycle like Google's for Chrome):

http://www.zdnet.com/blog/networking/firefox-6-a-firefox-too-far-review/1380

Now compare that with what he wrote about Chrome 14 which came out a few days ago:

http://www.zdnet.com/blog/networking/chrome-14-the-best-web-browser-keeps-getting-better-review/1469?tag=search-results-rivers;item3

There's opinion, "Firefox is bloated", then there's reality, Lifehacker just juxtaposed Firefox 7 with other major browsers:

http://lifehacker.com/5844150/browser-speed-tests-firefox-7-chrome-14-internet-explorer-9-and-more

Going back not even a month ago Tom's Hardware did JavaScript performance tests comparing the major browsers:

http://www.tomshardware.com/reviews/web-browser-performance-standard-html5,3013-9.html

In terms of JavaScript performance, Firefox 6 beat Chrome 13 in 4 of 5 tests. And today Firefox 7 was released. In closing, if your frame of reference of Firefox is anchored in the distant past, you should look again. Beyond that, if the plugins you've used under Firefox have memory leaks, crash Firefox, etc., etc., that's not the Mozilla team's fault.

I should also point out that Firefox for many years has supported HTTP Pipelining. Chrome to this day does not support HTTP Pipelining which is part of the HTTP 1.1 specification that came out 10+ years ago. Chrome does feature an alternative called SPDY however this is not part of the HTTP specification and you will only benefit from this if you are visiting Google web properties. The only popular browser that readily supports HTTP Pipelining is Firefox. One notable benefit is that as your connection latency goes up, e.g., 3G aircard, tethering on your laptop or God forbid, dialup, performance improves. If you find yourself browsing a lot on a 3G connection then Firefox with HTTP Pipelining is for you. Performance also goes up as the number of distinct elements that need to be fetched goes up, e.g., lots of images (which translate to that many more HTTP requests).

HTTP Pipelining is the first thing I enable when I have a new Firefox profile. In the address bar simply type "about:config", search for "pipe" then set network.http.pipelining to true. I also change network.http.pipelining.maxrequests to 7.

Sunday, September 12, 2010

Microsoft's Enhanced Mitigation Experience Toolkit


A week ago Microsoft released version 2.0 of EMET (Enhanced Mitigation Experience Toolkit):

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c6f0a6ee-05ac-4eb6-acd0-362559fd2f04&displayLang=en

Don't know what EMET is? I highly suggest you use it to launch applications that talk on the Net, in particular your browser. Here's a very technical video from Microsoft that talks about EMET:

http://technet.microsoft.com/en-us/security/ff859539.aspx

Let me give you a sample scenario. You visit a legitimate site that you've used for ages which unbeknownst to you, ads being served up are coming from a compromised ad server (a scenario which by the way has happened many times). The malware then attempts to leverage an arbitrary code execution flaw. Unfortunately for you, you're not very diligent about keeping your system up to date or you've ignored updating your system because well, "I'll do it later." Malware sent your way succeeds in leveraging an arbitrary code execution flaw that just surfaced with your browser of choice two days ago installing a backdoor and thus gaining complete control of your computer at which point the remote attacker can take whatever files they please, use your computer as part of a spam network, denial of service network, etc, etc. In short, your system is completely at someone else's mercy and you don't even know it. Let's take a more optimistic scenario. You're on a fully patched Windows 7 system with UAC enabled so you're safe (usually) from getting your machine taken over but malware comes in through your browser which isn't patched. You don't have the latest browser revision because you've put it off, turned off auto-updates or worse, there's no patch for an exploit that has surfaced. You're then unfortunate enough to visit a site with malware and a recent exploit is leveraged introducing rogue code into your system. That code is at the very least capable of reading and modifying files you use day to day. Whether they be explicit documents (such as MS Word) or implicit documents (the cookies in your browser). Unfortunately, your browser doesn't prevent the malicious code from reading any file(s) belonging to you, in particular, browser cookies. After which, someone starts going into your various online accounts with your active cookies (which were conveniently sent to them over the Net) to see what they can find.

So how do you use EMET?

1) Go to the first link I provided - download and install EMET
2) After launching EMET hit the Configure Apps button in the lower right
3) Hit the Add button on the dialog box that comes up and specify the path to an executable you would like to protect, e.g.:

C:\Program Files (x86)\Mozilla Firefox\firefox.exe

4) Hit the Open button on the file browsing dialog (aka OK).
5) Restart the application in question, in this example, Firefox

(Look at blog post image)

Firefox is now protected from a variety of attack vectors often used in arbitrary code execution. The video elaborates on them quite well.

Whereas RemoveAdmin (a security tool that I authored) is all about leveraging OS level security, Microsoft's EMET is about maintaining the integrity of processes and thus, at the very least, providing application level security, e.g., your browser cookies. At worst, if you have an unpatched system (the OS) you could find yourself with a system that's been botted, has had a keyboard logger installed, etc., etc.

In my particular case, I not only have added the browsers I use day to day to EMET (Chrome, Firefox), I've added all applications I regularly use that talk on the Internet. In particular, iTunes, WinAmp, Outlook, Adobe's PDF reader, Windows' Media Player and Apple's QuickTime player. The links I've provided in the previous sentence point to security advisories for each of these applications they are not links to the products' respective web pages. If you have doubts about what I'm saying, just visits those links. Yes, as hard as it for a lay person to comprehend, you can have your system compromised by watching a video pulled off a web site. This is why you should start using EMET today. In short, I will never launch my browser from here on out without this tool.

Finally the following article surfaced after my initial blog post. Here's a scenario where an exploit of Adobe's PDF reader has surfaced, Adobe itself doesn't yet have a patch but through the use of EMET the exploit is short-circuited:

Thursday, July 22, 2010

The Rise, Rise and RISE of Apple

Is the news at this point surprising?

Apple's Profit Rises 78% on Appeal of New Devices

Apple's position is further cemented by one simple fact. The iPhone has fundamentally changed the way people operate, i.e. not only the things I can do on a day to day basis while I'm on the move but also when I'm sitting at home. In contrast neither Windows or Mac OS X have fundamentally altered how I've interacted with personal computers for years. While in some cases they do provide interesting back end services such as Windows' Media Center, Netflix's streaming service is the primary manner in which I consume video and I don't need a personal computer for that.

With Apple's latest firmware iOS 4 I leave Skype running on the iPhone in the background all the time. I can make and receive various voice calls and bypass AT&T completely. At the same time Pandora runs in the background streaming music based on previous feedback I've given it. This all the while relaxing on the couch and web surfing. If Pandora isn't doing it for me, I can fire up RemoteX and control WinAmp to start streaming music from various different sites that are in my default playlist. The music then starts over the Klipsch 5.1 speaker system on the PC. If the music streams aren't doing it for me either, I can fire Apple's remote app, search through my entire iTunes music library for a specific musician/song and start playing it:

http://www.apple.com/itunes/remote/

Then again maybe later in the day I decide that I'd rather watch some video content. I can fire up Boxee on the PC, display it on my HDTV and control the experience through my iPhone:

http://blog.boxee.tv/2009/03/15/boxee-iphone-remote-app-available-on-the-app-store/

(Aside: If you haven't tried the latest Boxee beta you're doing yourself a disservice, check it out)

You see it's about choice, choice and even more choice.

This is the fundamental difference between the Apple of old and the Microsoft of old. Many years (+15?) ago Bill Gates used to talk about "information at your fingertips" but his vision was very desktop centric and predated the rise of the World Wide Web which was spearheaded by forces not aligned with Gates' visions and Microsoft's fortes. We've reached a point where it's about consumption at your fingertips. Nowhere is this better showcased than what happened to Flipboard recently:

http://bits.blogs.nytimes.com/2010/08/04/flipboard-stumbles-in-its-first-days/


Excerpt:

Flipboard, which uses Amazon Web Services, has been doubling its server capacity each day. The company would not reveal how many people have signed up for the service, but said it is a good percentage of iPad owners, of which there are more than 3.3 million.

Personal computers have been as much about content creation as content consumption which is why a desktop centric approach placed on a small device in the palm of your hand doesn't work and helps explain the runaway success of the iPad.

One other fundamental change Apple has elicited from consumers is they've opened up their wallets. While the sales of software to corporations has been par for the course for decades, consumers became extremely frugal quite some time ago getting very used to the idea of FREE. For example, I can recall the days when you had to pay for anti-virus software for your home computer, there's no reason anyone should pay for anti-virus software today. No doubt this is one factor why CompUSA exited the brick & mortar retail space.

Specifically, the rise of micro-transactions and digital distribution has put an end to the walled garden of various middle men relegating them to the dust bin. With many applications either free or 99 cents, Apple's App Store has ushered a new age where people buy software with no significant concern for the money they spend or the value they derive. After all, if it's a lemon, the most they're out of is 99 cents. Yes, no more $9.95 and $19.95 software specials thank you very much.

As middle men's leverage disappears with new digital distribution, it allows people that actually create products to achieve independent wealth:

http://bits.blogs.nytimes.com/2010/06/25/doodle-jump-reaches-five-million-downloads/

The creators of Doodle Jump have sold millions of units. And the math is quite simple, app developers get 70% of the sale which means Doodle Jump's creators are now collectively millionaires and no surprise they quit their day jobs to focus on their new entertainment software business.

This is the kind of story that would never have happened 5 years ago if you were talking mobile applications. It's no surprise that because of stories like this along with the iPhone's market/mindshare, developers have flocked to Apple's platform. It also means that Microsoft, Google, Nokia and RIM (Blackberry) have their work cut out for them trying to establish similar mobile software ecosystems.

While Google has made lots of progress with its Android platform, I have to point out that all of the things I mentioned that I did at home with my iPhone (examples I gave earlier of controlling my PC) have absolutely no reliance on the telephone network (AT&T). Everything I talked about can be done with an iPod Touch or an iPad (via Wifi). Meaning the same software that works on the iPhone works on the latter Apple devices and such a dynamic or complementary ecosystem doesn't exist for other vendors. While there is movement in the Android space with respect to tablets, I'm talking about the here and now.

Which precisely leads into my key point. The reason why Windows has had a vise grip on the desktop is because of its ecosystem of choices. Whether its software drivers to drive an old laser printer to DVD creation software to photo imaging software, you name it, a turnkey solution for the consumer on Windows is probably there.

Switching to the mobile market, until the iPhone came along, there was no such equivalent ecosystem of choices. The telephone companies with their typical lack of vision did not make installing applications easy nor did they pioneer the smart phone category with a partner. Apple created the category and AT&T was willing to go along for the ride. With the introduction of the Apple App Store, seemingly overnight an explosion of choices for consumers became an ecosystem of choices. Which means the average consumer (jailbreakers, hackers, idealists, open source zealots need not apply) stands to lose more peripheral consumption capabilities than gain if they leave Apple's platform. Not being able to do many things you're used to becomes an extremely powerful dissuading force and people are very much creatures of habit further reducing the chances of them jumping ship.

As Microsoft, Google, RIM and Nokia will find, unseating such an ecosystem of choices is not easy. The peripheral advantages often outweigh enticements like "FREE". This is why OpenOffice hasn't suddenly supplanted Microsoft Office despite being "FREE". Or why LINUX desktops haven't supplanted Windows desktops despite, again, being "FREE".

It boils down to the ecosystem of choices and the side effect of having lots of choice (vs. few or no choices).

Sunday, June 20, 2010

Microsoft Security Essentials

This weekend I moved away from the freebie AVG as my antivirus software to Microsoft Security Essentials (MSE). This Lifehacker article clinched the deal for me:

http://lifehacker.com/5559102/microsoft-security-essentials-finds-unknown-malware-but-avoids-false-positives

However it was this Arstechnica article that elevated MSE enough in my mind and started me on the road to this decision. Basically a new attack vector was concocted in the wild that bypasses practically all antivirus software, except for MSE:


Here is an article covering the technical details on this new attack vector:


Given that Microsoft Security Essentials has better detection of malware than AVG (according to the information presented by Lifehacker, which I trust), fewer false positives, is not vulnerable to kernel hook attacks and last but not least is FREE, I was sold.
MSE is available for Windows XP, Windows Vista and Windows 7.

Thursday, June 10, 2010

"Safari 5 tested: Chrome, Opera still have JavaScript edge"

I was pretty sure it wasn't my imagination when I opined that Apple's just released Safari 5 felt significantly faster than Safari 4 on Windows (note the closing paragraph):

http://arstechnica.com/apple/news/2010/06/safari-5-tested-chrome-opera-still-have-javascript-edge.ars

Make note of the Sunspider graph, namely IE 8's performance (or lack thereof). IE 9 however seems like it might be worthwhile to use. Yes, necessity or rather, loss of market share in Microsoft's case, is the mother of invention (swift kick in the pants). Just look at the trend for IE on this chart:

http://en.wikipedia.org/wiki/File:Usage_share_of_web_browsers_%28Source_Net_Applications%29.svg

Monday, June 7, 2010

Apple Releases Safari 5 Today

As part of all the noise at the World Wide Developer's Conference today, Apple released the next major version (5.x) of their Safari web browser for the Macintosh and Windows platforms. Safari 5 is now available from Apple's web site:

http://www.apple.com/safari/download/

After some initial empirical testing, Safari 5 (on the PC) feels much faster than Safari 4. It seems Apple made a real attempt at polishing the Windows version of Safari whereas in the past it seemed Apple was releasing a tool so web developers & testers could see how things might look on Mac OS X (the premise being it wasn't readily available). It feels snappy as I write this entry on Blogger.com.

Here's Lifehacker's writeup on Safari 5:

http://lifehacker.com/5557731/first-look-at-whats-new-in-safari-5

Finally, the question of whether to make Safari or any other particular browser my default is irrelevant for me since I use the most excellent Browser Chooser:


Wednesday, June 2, 2010

Pioneer's Kuro Elite: Best flat-panel HDTV ever

The subject of this blog post is a quote from CNET:

http://news.cnet.com/8301-17938_105-10054347-1.html

A couple of weeks ago my Sony CRT HDTV died. The particular model I had it turns out was extremely prone to failure. Visiting forums, I found them littered with people with issues. In some cases within two or three years after the TV was purchased in the early 2000's. As I did my research I weighed the pros and cons of trying to get the damn thing fixed. It turns an electronics repair place happened to be literally one block away from where I lived and they were well acquainted with the Sony model and its failure problems (a bad sign). They told me it would likely be $350 if it was fixable.

The "if" caught my attention and started me on the path of moving to a flat panel. It was a difficult decision for me since the video fidelity of the CRT was unmatched by flat panels. Even so, based on the reading I did on various forums the CRT could be a lost cause and I didn't want to sink any money on a 250 lb. dead weight.

So two days after its death I visited both Fry's Electronics and Best Buy and I was not impressed with the flat panel HDTVs I saw. Then on the same day on a whim I decided to visit Magnolia Hi-Fi in Seattle. When a salesman approached me I immediately commented that all the HDTVs I had seen that day were mediocre and that I was there hoping to be wowed by an HDTV but that I wasn't holding my breath. Before not too long he asked, "Are you familiar with Pioneer's Elite line?" I nodded. He then said something that immediately raised an eyebrow, "Are you familiar with the Kuro line of displays?" I responded with an affirmative but I also knew Pioneer was no longer making the Kuro line and that that even used they were expensive. Pioneer's Kuro line were reference displays and they blew everything else out of the water when it came to 1080p video fidelity. But as my luck would have it, Magnolia's manager actively tries to find Kuros for 'finicky' people like myself (aka videophiles). I had already seen BluRay playback over HDMI on a 50" Kuro in early 2009 and was utterly and thoroughly impressed (up until then no flat panel had impressed me).

I didn't need to be sold on the Kuro line. I didn't act back then because my Sony CRT was still working and I was extremely content with it given it didn't exhibit the graininess of flat panels when playing non-HD content (there's still a lot of non-HD content out there, e.g., streaming Hulu). I had been hoping the CRT would last me until 2015 when perhaps 50" OLED flat panels were available en masse but that wasn't meant to be.

When the salesman told me they had a brand new 50" Kuro in house, there was nothing else for him to say, I laid down the plastic. Magnolia didn't have a stand for it in stock so I picked it up two weeks later (back ordered). As I made small talk with my sales person I asked him if he still had the other Kuro in stock (they had 2 when I picked mine up) and he said, "I'm not sure but now you have me curious." He dug around in his inventory system and not only was the other one gone but there were 20 individuals who had laid down money at Magnolia stores across the US to get their hands on a Kuro when and if they became available.

The other small detail is that the CNET review is for the Kuro with the TV tuner, the Kuro I purchased doesn't have a built in tuner:

http://www.pioneerelectronics.com/PUSA/Products/HomeEntertainment/PlasmaTVs+Monitors/EliteMonitors/ci.PRO-101FD.Kuro

I'm using the Samsung HD tuner I had been using on the Sony CRT. I pointed out the CNET review since they're a third party singing the praises of the Kuro. It's not uncommon for CNET to make a comparison to the Kuro displays when reviewing a higher end HDTV. However, up to this day, no one has surpassed the Kuro line.

All I can say is, I lucked out and I'm extremely pleased with the Kuro.

Friday, April 2, 2010

A Tale of Two iPads

This NYTimes review sums up the two sentiments that are behind the iPad.


In short, many tech people convince themselves of the lack of the iPad's utility due to comparisons with traditional computers. I might point out that some people privy to the early Internet believed it should not be made readily available to the masses. The reasons were varied but I assure you, the root of some of it was mere technical snobbery.

I completely agree with the New York Times reviewer's assessment, if you are not a tech person, Apple has created the computer for the rest of us. Funny thing is, I decided to do some googling to try to find references to that old Apple slogan but instead I found someone saying exactly what I'm saying here:


The iPad is not even out yet (2 more days) and when you view the applications that are being released for it, it is truly impressive (the Netflix one took me by surprise):


I ask you one simple question - when was the last time you saw such a movement for any other device?

Sunday, March 21, 2010

Ha! We beat Apple! (Dream on)


The nay sayers lined up when Apple announced the iPad but arguments such as "I'll get a general tablet so I can run whatever I want" miss the point. The point being these same critics aren't running off to buy a competing device like the HP slate gizmo announced roughly two months prior. In short, the Apple iPad isn't intended for them (barring hot air).

I read an excellent article on Tom'sHardware entitled 5 Reasons Tablets Suck And You Won't Buy One

Point number 4 is key. It should have been number 1, underlined and accentuated with a headline tag <H>. Interface is why previous tablet offerings have been relegated to niche status. Is there a particular reason for this? Yes, Rob Enderle sums it up nicely:


Excerpt:

Now the most successful company as measured by profitability is Apple–who appears to be still locked into the proprietary hardware and software model that proceeded Windows’ success.

The problem with the PC model and the even more complex cell phone OS model was that no one person owned the customer experience. As a result, with the exception of Apple, PC vendors started doing stupid things like not assuring the service experience or putting software that reduced reliability (crapware) on the systems they were selling. In addition, complexity and an excessive focus on cost reductions got out of hand, significantly reducing the perceived quality of the system.

When the iPad's sales numbers are announced in a year (with unit sales in the millions), the usual will happen. Microsoft will feel the need to duplicate Apple's success and will assemble a crack team to provide a competitive offering. Haven't we been here before? Yes. Zune trying to take on the iPod. This after Microsoft's first response to the iPod Plays for Sure completely fell on its face.

Do you see a pattern here? Continual reaction to Apple's market success stories. This all underscores my strong opinion that Microsoft's leadership lacks vision. Steve Jobs despite his warts (he's not the nicest person if rumors are true) is a tech visionary.

Up until now, Microsoft has simply told hardware vendors to slap plain jane Windows on a keyboardless computer. Once again, complacency and myopia hold Microsoft back.

Friday, February 26, 2010

How Microsoft Lost the Platform War

I'm a big fan of Joel Spolsky's blog:

http://joelonsoftware.com/

Joel Spolsky has a lot of software development experience. While having worked at Microsoft in the 90's it is clear from his writing that his talents are mutually exclusive from those days. Microsoft was just another employer on the road of life. Today he runs FogCreek Software in New York City. One of my favorite postings from Joel was entitled How Microsoft Lost the API War written back on June 13, 2004. In technological terms this is now ancient history. However, what Joel wrote back then is still relevant in terms of how Microsoft lost the hearts and minds of software developers. While writing that column Joel took a tangent:

Why Apple and Sun Can't Sell Computers
Well, of course, that's a little bit silly: of course Apple and Sun can sell computers, but not to the two most lucrative markets for computers, namely, the corporate desktop and the home computer. Apple is still down there in the very low single digits of market share and the only people with Suns on their desktops are at Sun. (Please understand that I'm talking about large trends here, and therefore when I say things like "nobody" I really mean "fewer than 10,000,000 people," and so on and so forth.)

I wrote to Joel Spolsky in the past year and mused how those words no longer hold true (about Apple anyway). I pointed out that half of my team members at work were operating with Apple Macbooks.  

Then today I caught this on the New York Times:

OS X Share Up 29% in Past Year, Slowly Chipping Away at Microsoft

Excerpt:

Apple’s relative share has grown by 29.4% in the past year, while Windows lost 3.8%. Mobile increased the most in the past year, more than doubling its share of web consumption.

Adding fuel to the fire is another potential paradigm shift - tablet/slate computing. While there will be various Windows 7 based tablet products on the market, I have a very high degree of confidence Apple's sales of the iPad will likely marginalize these offerings. This is an opinion I immediately formed when the iPad was announced and it is write ups like that of Brian X. Chen from Wired that reinforce this, i.e. he didn't write "What the HP slate Means for the Future of Computing."

What the iPad Means for the Future of Computing

At this point you're guessing I'm writing this on a Macintosh. Nope. I use Windows 7 day to day. However, I'm not an ostrich with its head buried in the sand. I see reality. Microsoft ZDNet blogger Ed Bott seems to be on the same wavelength:

Like I said, apps matter.

So why is Microsoft incapable of responding appropriately? Read the words of a former Microsoft Vice President:

Microsoft’s Creative Destruction

In short, Microsoft is severely hobbled by a Balkinzation stemming from differing agendas among its product groups, a lack of vision (Ballmer at best is a Chief Operating Officer, he has no vision whatsoever and the longer he stays the more Microsoft is damaged) and the usual myopia found at a large company wanting to protect cash cows originating in the distant past (Office, Windows).

Until Microsoft has a come to Jesus moment (often precipitated by lots of layoffs & loss of market share) nothing will change. Except by then, it could very well be too late...

Thursday, February 4, 2010

Adobe's Flash R.I.P.?

Adobe is frustrated at Steve Jobs as Apple's mobile devices increasingly become a bigger player in the Internet experience. The iPhone platform which was released three years ago still does not have Flash and that does not seem like it will change anytime soon. But it's not entirely Apple's fault. Adobe's Flash platform isn't conducive to long battery usage. Simple as that.

The recently announced Apple iPad along with advances in HTML5 will only accelerate the trend of companies rebuking Adobe's Flash platform over the long term.

It turns out, Adobe's frustrations are well grounded (in fear). If content creators start considering the growing Apple userbase and stop leveraging Flash because they'd rather not alienate Apple device users, it means a long and slow death spiral for Adobe's platform. Fact: Adobe makes a LOT of money selling content creation software, Adobe doesn't make any money on people downloading the Flash plugin. Adobe is one of the largest software vendors for the Windows platform outside of Microsoft itself, e.g., Photoshop, Dreamweaver, PDF software, etc., etc. In short, Adobe makes a large portion of its revenue selling content creation tools. If one of its major formats dies, i.e. Flash, that's a serious blow to Adobe.

Case in point, remember when Real Networks blazed trails with respect to streaming audio/video over the Internet? Well, look where they are now. I can't remember the last time I installed any of Real's software and given the fact that practically no one puts out content in Real's format anymore, that won't be changing anytime soon.

I wrote about HTML5 a few days ago which shimmys itself in a position that essentially starts loosening Flash's vice grip on video playback. It seems I'm not the only one with this opinion:

"HTML vs. Flash: Can a turf war be avoided?"


Here's an excerpt:

Bruce Lawson, Web standards evangelist for browser maker Opera Software, believes HTML and the other technologies inevitably will replace Flash and already collectively are "very close" to reproducing today's Flash abilities.

"The Web (including video, games, animation) is too vital a platform for business, communication, and society to be in the hands of any single vendor," Lawson said. "But it'll be a while; there is a huge body of existing content that uses Flash."

Both Lawson and I have come to the same conclusion - the long term future for Adobe's Flash platform is not bright (pun intended).

Thursday, January 28, 2010

The (Internet) World In Two Hands

David Morgenstern a blogger from ZDNet cuts to the heart of the matter as far as what Apple's newly iPad announced represents, "The iPhone is a device that puts the world into one hand; the iPad, two hands." Read on if you like:

http://blogs.zdnet.com/Apple/?p=5890&tag=wrapper;col1


I could not agree more. A consistent behavior I've seen of naysayers is a continual comparison of the newly announced iPad vs. laptops.

Here's one scenario that I don't see any laptop or netbook taking on. Increasingly HDTVs are coming with Ethernet ports to stream content off the Net. But who says they have to act purely as clients? That is, reading information, e.g., movies off Netflix's video servers. Why can't the TV be the server? Albeit a really simple server. Like the kind where instead of relying on infrared signals it abides by a well known command protocol coming through its Ethernet connection.

So before too long the TV industry devises a standard (that would be layer 7 application protocol for all the geeks) for controlling televisions via Ethernet interfaces. Then, before you know it, you'll see a remote control application for the iPad (or its posterity) where every living room device that has a remote will have its buttons represented as a skin overlaid on the iPad's surface. This is one of many scenarios that comes to mind where a laptop or netbook simply does not make the grade and looking at the iPad strictly through such a lens falls short.

Which is why I couldn't agree more with the title of Morgenstern's blog post "Dude, the iPad isn't a notebook - get over it!"

If you have doubts about the enthusiasm the iPad generated, I can tell you empirically that as Steve Jobs unveiled Apple's latest creation, tech sites were being hammered with traffic. I found Engadget and ZDNet to be noticeably slow as the morning of the iPad's unveiling wore on. I was following the announcement through:

I visited other tech sites since I was curious to see the buzz elsewhere - I found them to be very slow.

Tuesday, January 26, 2010

Chrome 4.0 / HTML 5 Video Playback

Google's just released the next major revision of its Chrome browser, version 4.0, to the masses in the last day:


Previously Chrome 4.0 was only available to the initiated (development release). Updating to 4.0 for existing users is simply a matter of clicking on the wrench icon in the rightmost toolbar area and then selecting About Google Chrome.

DownloadSquad featured a variety of Chrome plugins in a November article (only useful at the time to folks with the development release):


With 4.0's release Chrome's extensibility goes up dramatically and thus its utility.

HTML 5

Chrome's addition of extensions overshadow its in HTML 5. Among them, video playback. The ramifications of this while not immediately forthcoming are significant. For quite some time most web designers/developers have assumed their users to have Flash but it turns out Flash has its issues. For starters, Flash's performance under Mac OS X is very poor and something that many Mac fans continually scoff at. The proof is in the pudding:


For a variety of reasons including the fact that the HyperText Markup Language (HTML) originally was focusing on document publication and not rich multimedia experiences, Macromedia (a well known company later acquired by Adobe) entrenched itself with the novel idea of extending browsers with video playback. Before you knew it, its Flash platform became the defacto standard for video playback. The fly in the ointment is that as the Macintosh user base has grown dramatically, they're increasingly a louder voice and unhappy with a second rate video playback platform. Rest assured, the number of Macintosh users is growing faster than Adobe (and Steve Ballmer) would like - Apple's recently announced latest quarterly results were phenomenal.

There are two big issues with Flash. First, Adobe has struggled with lots of security issues with both its Flash plugin and PDF reader. Secondly, as much as I've been a fan of Flash for blazing trails, I hate to say this but I'm liking the idea of not requiring it on my desktop. It turns out performance-wise, by today's standards its architecture poorly leverages my hardware. Despite Flash being pervasive for the better part of a decade Adobe only now has seen it fit to leverage GPUs during video playback. GPU acceleration within Flash is still in beta:


In other words, Flash can be very CPU intensive while your computer' graphics subsystem and its computational prowess goes unused. It turns out decoding video is intrinsically a parallel computation, something GPUs excel at.

I'm willing to bet anyone with a laptop, even a powerful one, knows all too well what happens when you start playing lots of Flash content - the fan starts cranking.

I'll close with pointing out that if you are running Chrome 4.0, you can opt to use HTML 5 video playback by default on YouTube instead of Flash by visiting the following page:



Monday, November 9, 2009

New Toys


The past week and a half has been a bit more tech filled than usual for me. I upgraded to Windows 7 Ultimate, I got ATI's latest über DirectX 11 compliant video card the 5870 and I've become more active with Twitter on account of the slick TweetDeck client.

The combination of the 5870 and Windows 7 Ultimate has resulted in me essentially having a new system. Despite having a motherboard dating back to mid-2006 this is the second time I've wound up putting off a motherboard/CPU upgrade with a new video card (I'm waiting for ubiquitous USB 3.0 and PCI Express 3.0 before I upgrade my motherboard). My previous video card, the 4870 was an excellent performer but state of the art is a state of change. The 5870 is an amazing product and it definitely falls into the techno-sybarite category. With gaming consoles providing an extremely compelling experience in the form very large communities (XBox Live), large displays (HDTVs) and the ability to ensconce oneself on the sofa, it's not surprising many gamers have eschewed high end PCs for consoles.

The 5870 however proved its power when I pulled out my old Crysis disc. Crysis was a PC game that came out in 2007 receiving lots of press for a couple of reasons - amazing visuals and the fact that probably 99% of people did not have the kind of hardware needed to make Crysis a compelling experience. My guess is Crytek, the developer, had more in mind developing an engine that was capable of realizing the visions of game studios for several years into the future (a.k.a. licensing its engine) and the casualty was everyone that didn't have a PC of the future. I'm happy to say that the 5870 is capable of rendering Crysis @ 1920x1200 with Full Scene Anti-Aliasing (FSAA) and Very High settings. I cheated with my 4870 by playing Crysis on an old 21" CRT I had (since given away) and thus I didn't need to enable FSAA. You see, a graphics card expends quite a bit more cycles applying FSAA. Nowadays I use Dell's excellent 24"2408WFP LCD and my initial reaction to seeing Crysis running on it smoothly was a bit of dissonance as Crysis has had a long standing reputation of bringing hardware to its knees.

Moving along, check out the TweetDeck client, either you get Twitter or hopefully you will realize its utility at some point. I must confess I wasn't blazing trails with Twitter but my coworkers (I wrote about the light bulb going off in a prior post) made me realize how effective it was to ferret out information on a topic that while impromptu was also suddenly very important even if only ephemerally. I will close with an article from the NYTimes I just read that echoes my recent post on Twitter:


Thursday, November 5, 2009

OpenDNS - Your Robust Internet "Phone Directory"

On this late night (2AM) Comcast's Seattle DNS servers appear to be offline. For the layperson, DNS (Domain Name System) is the magic that happens when you type www.google.com and you're automagically routed to a numeric address (208.69.36.230 - in my case). Every device in your home or office ultimately talks to far off servers through such numbers and not with the text you're used to typing at your browser.

While writing this I received some IMs leading me to believe I've been offline for a couple of hours. Initially I thought it was perhaps hiccups I've seen in the past where power cycling the cable modem clears things up. That wasn't the case this time. I went into my router's dashboard and released my TCP/IP address and asked for a new one by way of DHCP. With each attempt (since I still wasn't getting anywhere) I promptly received the same IP address which gave me a hunch basic network connectivity was available. I then pinged Comcast's DNS server and promptly got a response

Pinging 68.87.69.150 with 32 bytes of data:
Reply from 68.87.69.150: bytes=32 time=55ms TTL=105
Reply from 68.87.69.150: bytes=32 time=54ms TTL=105
Reply from 68.87.69.150: bytes=32 time=57ms TTL=105
Reply from 68.87.69.150: bytes=32 time=54ms TTL=105

Armed with that knowledge I setup OpenDNS. I had actually been running with OpenDNS under Windows XP for quite a while but I moved to Windows 7 last week and hadn't yet bothered. Well, suffice to say, the only reason I can even post this at this hour is because of OpenDNS. In short, OpenDNS rocks, use it.