The times they are'a'changing. See you there.
https://medium.com/@sreekotay
January 26, 2017
October 7, 2013
iOS 7. Meh.
For the record, I am an iPhone fan -- since day 1 (and I can prove it :)).
But I'm not loving iOS 7.
Don't get me wrong: there's a lot to like. Its modern looking, less 'cutesy' (and way less cheesy), uses motion effectively, and generally improves the user interface affordances for a lot of use cases (contacts link in messages, actions in mail, etc.). And that doesn't even get into the tons of (overdue) under the hood improvements.
But I think, overall, its a cacophony of form over function that hasn't been executed or even thought through very well . It took me a little while to put my finger on it, but the things I don't like are almost exactly the things people seem excited about:
But I'm not loving iOS 7.
Don't get me wrong: there's a lot to like. Its modern looking, less 'cutesy' (and way less cheesy), uses motion effectively, and generally improves the user interface affordances for a lot of use cases (contacts link in messages, actions in mail, etc.). And that doesn't even get into the tons of (overdue) under the hood improvements.
But I think, overall, its a cacophony of form over function that hasn't been executed or even thought through very well . It took me a little while to put my finger on it, but the things I don't like are almost exactly the things people seem excited about:
- The User Interface blends with the content. I agree content should be the focus, and the UI should not be noticeable, but that is not what I (generally) see with iOS 7 - instead its a hot mess. The UI was the star in previous iterations of iOS, and while it was obnoxious, it at least delineated interaction boundaries. In iOS 7, the "edges" between the 2 are kinda blurry -- too often marking neither as the hero, to the detriment of both.
- iOS7 looks more modern. In places, it looks incomplete. In places, it looks ugly. In lots of places, it looks great -- but it's hard to argue that it Thinks Different. The aesthetic is nice - but iOS now looks like a generic (albeit polished) smartphone.
- The UI Metaphors are gone - but not really. Skeumorphism is dead (for now), and "authentically digital" is the new king. While I fully and completely agree and appreciate how much more modern iOS looks, it still uses motion metaphors that are incongruent with the look and feel -- parallax, inertia, etc. It embraces many skeumorphic action patterns that are discordant without the visual cues to anchor it (iOS Timer, I'm looking at you).
- There is no visual language. Circles used to imply pages/screens. No skeumorphism -- purely digital. Now circles are everything: scrolling, signal strength, progress indicator, etc. Blue is something clickable -- except when you can't, or sometimes its clickable anyway. Selection visibility is all over the place. Meh.
- Its been streamlined (and now too much is hidden). Click, double-click, press-and-hold, flick-in-the-middle, swipe from edge, wat - Apple, stahp. Its kinda OK when these are global and/or accelators, but in combination with the increasing context sensitivity of these guestures (*cough* search)... not great.
I'm not predicting the end of Apple, or saying it's going to impact anything about their business.
I'm just a little... disappointed. A few hero screens look great -- but the effectiveness is only skin deep.
Look and feel?
Look and fail.
February 20, 2013
Implementing brainfuck, part 2
Update: Faster binaries posted. Source coming shortly.
In Part 1, I presented some benchmarks (see here) for my brainfuck implementation against some of the best. I'll now lay out the reference interpreter, the optimized interpreter, and source code.
(I'm slower posting all this than I meant to be: apologies --- dayjob and all...)
The source code is here: bffsree_ref.c and bfsree.h.
[updated: fixed missing header]
Executables for Windows and Linux.
Its pretty basic --- pretty much add/subtract, move left/right, get/put, and then loop begin/end. It basically is as basic as you can get, though it include three things that are, only in the loosest sense, "optimizations":
Note that it is NOT materially different.
The main differences are:
In Part 1, I presented some benchmarks (see here) for my brainfuck implementation against some of the best. I'll now lay out the reference interpreter, the optimized interpreter, and source code.
(I'm slower posting all this than I meant to be: apologies --- dayjob and all...)
To start, the reference interpreter looks like this:
[updated: fixed missing header]
Executables for Windows and Linux.
Its pretty basic --- pretty much add/subtract, move left/right, get/put, and then loop begin/end. It basically is as basic as you can get, though it include three things that are, only in the loosest sense, "optimizations":
- Although the interpreter will ignore non-valid characters at runtime, they are actually stripped at parse time.
- I accumulate operations into a counter at parse time (e.g. ++++ becomes +4)
- I parse the jump locations for loops at parse time.
These are so simple to do inline that it feels like they hardly qualify, and you'll see all 3 in pretty much every implementation (I'd guess).
And presented below is the optimized implementation that I presented in Part 1:
Note that it is NOT materially different.
The main differences are:
- The collapse of the command and "helper" arrays
- Double-instructioning -- whereby it is assumed that to do anything interesting in brainfuck, you always have to move the pointer, so every instruction has a move-the-pointer offset (saves on instruction decodes)
- The inclusion of the "super instructions" that perform the following common tasks:
- Pointer shifting in a loop
- Multiplication of a cell by a constant
- Setting a cell to a value
- Multiplication of a cell by a constant, then zeroing
- Multiplying two cells
The first 2 are pretty straighforward -- most of the work is in the third item: collapsing the existing instructions into the optimized "super" instructions without breaking any contracts. The primary optimizations are around loop invariance.
There are a LOT more optimizations I didn't yet finish tackling -- dead code elimination and constant propagation, in particular -- that should yield materially better performance.
I'll post the details and source to the optimizing implementation in a future post.
(Oh, btw, forget to mention -- if you use the "-c" option with the optimized implementation from part 1, it will convert your brainfuck program to somewhat performant C code.)
February 10, 2013
Implementing brainfuck
Updated: Part 2 is now available.
For those not aware, brainfuck is a small programming language whose sole existence is to amuse programmers. It has certainly been amusing.
In that vein, I got myself a nice X1 Carbon Touch with Windows 8 a few weeks ago, and as always with a new laptop, I play with a few projects to "break it in". I have a fun little image viewer that I upgraded to touch (a few more things to clean up - may post it), and one of the other toys I thought I'd play with was a brainfuck interpreter and debugger. The debugger part is important, as I've done a few language implementations before, but not all the way through the tool chain, and thought it'd be informative. Sadly, I'm not through the whole tool chain yet -- still have to finish the editor/debugger, but the basic mechanics for the implementation are in place.
Because I'm competitive, I wanted to also try some interpreter optimization ideas. I'd been kicking them around with a Javascript interpreter I did over the holidays (*cough* 2011 --- will get back to it at some point). Brainfuck seemed simple enough that it would be a nice testbed.
Anyway, I'll post some more details and source code, but thought I'd start with some results and executables to "whet the appetite" as it were.
For those who are unfamiliar, brainfuck has only 8 operators: "<>[]+-,." ... and "Hello World" looks like this:
Performance is as follows:
Linux:
Windows:
Some notes:
For those not aware, brainfuck is a small programming language whose sole existence is to amuse programmers. It has certainly been amusing.
In that vein, I got myself a nice X1 Carbon Touch with Windows 8 a few weeks ago, and as always with a new laptop, I play with a few projects to "break it in". I have a fun little image viewer that I upgraded to touch (a few more things to clean up - may post it), and one of the other toys I thought I'd play with was a brainfuck interpreter and debugger. The debugger part is important, as I've done a few language implementations before, but not all the way through the tool chain, and thought it'd be informative. Sadly, I'm not through the whole tool chain yet -- still have to finish the editor/debugger, but the basic mechanics for the implementation are in place.
Because I'm competitive, I wanted to also try some interpreter optimization ideas. I'd been kicking them around with a Javascript interpreter I did over the holidays (*cough* 2011 --- will get back to it at some point). Brainfuck seemed simple enough that it would be a nice testbed.
Anyway, I'll post some more details and source code, but thought I'd start with some results and executables to "whet the appetite" as it were.
For those who are unfamiliar, brainfuck has only 8 operators: "<>[]+-,." ... and "Hello World" looks like this:
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.I first built a reference interpreter, and then found a few fast online intepreters: Alex Pankatrov's moderately optimizing implementation (bff) and Oleg Mazonka's "fastest in class" interpreter (bff4) (according to Wikipedia). They both crushed my reference interpreter, which lead to my optimized implementation. Compiled versions are included here:
- Alex's bff for Windows and Linux.
- Oleg's bff4 for Windows and Linux.
- My bffsree for Windows and Linux.
Some brainfuck sample programs are here.
UPDATE: Linux binaries updated; had uploaded in text mode (d'oh!).
UPDATE 02.27.13: Slightly faster binaries updated again.
Linux:
| program: | mandel.b | hanoi.b | sisihi.b | long.b |
| bff | 6.0s | 12.3s | n/a | 14.4s |
| bff4 | 6.8s | 0.5s | 5.9s | 3.1s |
| bffsree | 2.7s | 0.05s | 1.4s | 0.2s |
| program: | mandel.b | hanoi.b | sisihi.b | long.b |
| bff | 7.6s | 16.2s | n/a | 17.1s |
| bff4 | 6.8s | 1.3s | 4.1s | 3.1s |
| bffsree | 3.4s | 0.8s | 1.2s | 0.16s |
- GCC 4.7 for Windows and 4.6 for Linux were used.
- bffsree and bff can read from a file or stdin. bff4 reads from stdin.
- "sisihi.b" is a brainfuck self interpreter running itself running "hi123.b" -- basically the executable you pick runs a brainfuck program that is a self intepreter running a self interpreter (itself) that runs a simple brainfuck program. Which is why they call it brainfuck.
- The difference between Linux speed and Windows speed appears to be gcc version and console speed (Windows console is slow).
- Both bff and bff4 seem to fail with "bench.b" (or are crazy slow) --- not sure what that's about.
- Oleg's bff4 appears to have been the fastest since 2009 -- which is quite impressive.
I'll discussion implementation notes in a follow-up post shortly.
Continued here.
Continued here.
October 17, 2011
Redux: WebGL Random Pixel Toy
Fun: Check out WebGL Sand Toy.
John Robinson, at his storminthecastle blog, posted a 'cloud' version (i.e. a webpage :P) of a toy app I did 5 years ago. His version is pretty cool, all the more so because it runs in the browser, using WebGL.
Two things strike me about this (other than general fun/goodness):
By way of example for both points, consider:
In any case, enjoy.
John Robinson, at his storminthecastle blog, posted a 'cloud' version (i.e. a webpage :P) of a toy app I did 5 years ago. His version is pretty cool, all the more so because it runs in the browser, using WebGL.
Two things strike me about this (other than general fun/goodness):
- 5 years(-ish) feels about right on the Moore's law curve, and is probably the target for 'native' smartphones apps making the transition to browser based (if the W3C can get its act together)
- On the other hand, "runs like native" still seems like the highest compliment one can pay a browser based thing... so there's that.
By way of example for both points, consider:
![]() |
| Viewpoint Media Player 3D, in a browser, circa 2002 using 'SreeD' |
![]() |
| WebGL racer, in a browser, circa 2011 using OpenGL |
In any case, enjoy.
October 14, 2011
Kindle Fire: Return of the Desktop?
Much has been written about the Amazon Kindle Fire (Amazon's new Android based touchscreen Kindle e-reader/media player).
Is it a game changer? Maybe. We'll see.
I've certainly ordered one, and though many say its no threat to the iPad, given its media capabilities... I dunno --- people might be surprised. If its reasonably performant (and compatible) for browsing, and given its e-commerce, e-book, and media capabilities... well, we'll see.
Certainly its going to make it tough for other Android tablet vendors; Jeff Bezos is right in asserting that devices alone don't sell (and this is old news) -- it's devices+services, as Apple has amply demonstrated again and again.
All that said, there's another interesting thing about the Kindle Fire that distinguishes its market approach from Apple's.
It's about content.
Apple sells activities -- a lifestyle; Amazon sells content.
Contrast Amazon's pitch with Apple's:
Disagree if you want, but its a philosophy difference that extends to the VERY FIRST SCREEN: Amazon hilights the content, not the application(s) -- go watch the Amazon video at the top of the post again.
Sure, you can by music, movies, and books with your iOS device, and there's no question that's a big part of the appeal -- but Apple's metaphor is about the task (books-->'Winnie the Pooh', videos-->'Inception'), and Amazon's is the reverse.
Interesting.
And here I thought "document-centric" computing, and the desktop metaphor it implies, was dead (I even wrote a eulogy).
Is it going to work? Maybe. We'll see.
But, either way, I have to give props to Amazon, and Bezos, for, well, trying to Think Different... :P
September 12, 2009
#ihatewhengirlssay "that didn't take long"
Interesting to watch "tweetalanches" happen... and where/when they get started. For example, today at 10am, "#ihatewhengirlssay" was not a hashtag with any tweets. At the moment .... a few hundred. It should be interesting to see how much "damage" it causes before the dust settles. The whole things reminds of Scott Adams' "Avatar" concept/character in his most excellent books: God's Debris and Religion War (no relation to James Cameron's upcoming movie).
#ihatewhengirlsay "Twitter's going to make tons of money."
June 25, 2009
Comcast, Time Warner, and TVEverywhere
Comcast and Time Warner jointly announced the "TV Everywhere" initiative - much to the very vocal derision of blogs, pundits, and digital heads everywhere :)
The root of the announcement is, of course, that premium programming content will be available online, at no incremental cost to consumers (what marketers like to call "free" :)).
Hard to see why this is a bad thing - but there are lots of big words, like "anti-competitive" and "anti-consumer", being bandied about, so let's try to deconstruct the questions being asked a bit. Note that opinions expressed here, as always, are strictly my own.
1) Should content producers allowed to charge for access to their content?
I think the answer to that is "yes". There are some fair questions about who they charge, and how, and is there pricing collusion, etc. - but I don't think anyone means to imply that advertising is the ONLY model that content producers should be able to use?
So... broadcasters (NBC, ABC, Fox, et al) ALREADY make the content available for free (over-the-air) - and they monetize with advertising. The "Hulu model" was to take the same business model, and make it available online. I don't mean to parse semantics here, but... kinda sounds like the same idea here: make content available wherever consumers are, using a model that is already working for consumers. Like Hulu, this isn't a new business - its a new distribution channel.
Hmm - not sure I follow this one. "TV Everywhere" is not exclusive in any way - its simply a way for premium TV producers to get their content to consumers online, and helps identify those who are already paying for the content offline. If the content producers want to make their stuff free - well, it is their content; they're welcome to do so - not sure how this initiative impedes that idea. Yes, NBC, Fox, et al, already make their content available free to consumers (for a limited time window) - but also did so before Hulu.
The Internet is an "all bits are equal" data pipe into the home - and nothing about offering subscription video over the Internet with "TV Everywhere" changes that?
The irony, to me, of posts like Om Malik's (about the "inefficent business model" being propagated here, etc.) is that it sits on the site the same day as a post that reads "Is there a future for original web video shows?"....
There is a fair question here - will the price to consumers of content trend towards zero? And if it does, how will that impact quality (i.e. who's going to want to pay to make the good stuff)?
This program doesn't purport to answer that - mostly its just trying to get more people more convenient access to something they're already paying for.
How horrible! :)
June 1, 2009
MS Bing: The more things change...
Microsoft launched their new search engine (Bing) today. Its nice, though, as a friend on Twitter pointed out, it does have that "Microsoft smell".

For instance, Googlewhack has always been a fun past time (find a search term of two words or less, that resolves to one and only one result) - and its fairly tricky to do (check out the site for details) - on Google.
But with Bing.... not so hard! Turns out that searching for a competitve search engine (Google, Yahoo, AOL, etc). is a googlewhack, um, bingwhack.

I'm (pretty) sure that the algorithm is NOT based on that fact - but that it appears so is, well, so Microsoft smelling... try it yourself.
Bing!
May 20, 2009
Browser benchmarks: When did they get so stupid?
So, the claim that IE is faster than Firefox, Safari, or Chrome, is ridiculous at many levels (MS claims IE faster than other browsers), and Microsoft was appropriately ridiculed for it.
But so is the idea that you have a test that demonstrates that the new Safari builds are "above 15 times better performance than Internet Explorer 7 in the same system".
Seriously, that's just stupid., and renders the index meaningless.
Why not just multiple the index scores by 10? Then you can claim Safari is 150X faster than IE7.
Without scaling the index into a range that meaningfully communicates (or at least correlates) to user experience (which things like FPS and even 3DMark did for video cards), it renders the testing both invalid and irrelevant.
May 15, 2009
Comscore v. Hulu: garbage in---garbage out?
Interesting. The New York Times is reporting that Hulu is disputing audience count with Nielsen, stating "While Nielsen reported 8.9 million visitors to Hulu in March, another measurement firm,comScore, counted 42 million. "
Wow.
Slightly embarassing, but I think that the Times is confusing "Unique Visitors" (how many unique cookies are counted by a site - a reasonable proxy for people visiting the site) with "Unique Viewers" (a syndicated video player concept - how many unique cookies were counted by the syndicated player; a reasonable proxy for the number of viewers who were served video by the site).
In layman's terms, the first number would represent, in our example, the number of people who visited Hulu.com (unique visitors), while the second (unique viewers) would represent how many people watched a Hulu sourced video, whether on Hulu, a third party site (like Fancast), or embedded elsewhere (like on somebody's blog).
A visit to alexa or compete shows the number of "unique visitors" to be comparable to what Nielsen reported (a fact others have noted). And guess what? Even Comscore doesn't put Hulu in the top 50 for April 2009 - which means even Comscore suggests that the number of unique visistors to Hulu is less than 19M (if someone has the actual number, I'd appreciate it).
So... move along... nothing to see here...
April 26, 2009
Wow - what am I missing?
Pirate bay craziness...
http://www.nme.com/news/various-artists/44103
The pirate bay is (was?) a site that holds *links* to torrents. I'm NOT in anyway in favor of copyright violation or intellectual property theft - but how is this (a) wrong or (b) worthy of the punishment? ($M in fines, and time in *prison*)??
Its a search engine? It doesn't hold the content.... perhaps I'm missing something (have to admit I never used it).
Update: hiliarious (and accurate) thepirategoogle (pirate bay using google... duh, its a search engine, just like thepiratebay was)
Update 2: hmm - broken (blocked by google?)
Update 3: An update (tried to find the site owner, but couldn't)... so try this: thepiratebaygoogle on sree
March 24, 2009
Boxee v. Hulu: Endgame
For those of you who haven't been following - In this corner: Boxee's a very nice media center type "10 foot" UI for watching video content (local and internet) using your PC/Mac. In the red trunks: Hulu's a "free" browser based video service backed by NBC/Universal and Fox.
Round 1: Boxee's supports Hulu in Boxee and goes from "nice" to "useful/interesting"
Round 2: Hulu asks Boxee to drop Hulu support. Boxee complies.
Round 3: Sort of. Its not supported out of the box(ee :)), but Boxee lets users manually add Hulu support.
Round 1: Boxee's supports Hulu in Boxee and goes from "nice" to "useful/interesting"
Round 2: Hulu asks Boxee to drop Hulu support. Boxee complies.
Round 3: Sort of. Its not supported out of the box(ee :)), but Boxee lets users manually add Hulu support.
Now it gets interesting...
It's not entirely clear to me - and Boxee's end run should bring it to a head; If I connect a browser to my TV, why shouldn't I be able to play content that works on my PC? As a practical matter, there's no good way to differentiate (in the medium term - short term hacks might work)
I kind of get the point for the content guys - they want to decide how and where their content gets consumed. Here's the thing - they may not get that choice: free is free.
(Incidentally this is less of an issue for folks like us than you may think: either way its over our connectivity, and content aqcuisition is a big part of our costs - think it through. For example, note that Netflix likes streaming - because they charge you a subscription.)
It seems like the issue is that, ultimately, the Internet will erase a huge amount of value (valuation? perhaps not quite the same thing) from the world. I'm not arguing about whether that's a good thing or a bad thing - arguably, this was artificial value. Just saying its so... question is how you adjust.
February 12, 2009
ESPN makes an... interesting play
I'm surprised there's not been more coverage of ESPN's ISP extortion scheme.
ESPN's Play To Make ISPs Pay

(from slashdot)
Its kind of interesting - on the one hand, its their site, their content, they should be able to do what they want... on the other hand, well, it seems like deals like this seem like a bad idea on many levels. I guess the markets will speak on whether this makes sense.
But amusingly, this was also covered on BroadbandReports (see here) - the amusing part is that the article ran with an advertisement (contextually served by our overlords at Google) from, you guessed it, ESPN.

Karma's a fickle beast.
February 2, 2009
Twitter, really? You're surprised?
I'm always a bit surprised at the media's surprise of media darlings (to wit: "Twitter's Risk of Ubiquity"). First, we're all lemmings - where "all" especially includes anybody who thinks they are a subject matter expert, analyst, or pundit.
Secondly (specific to this instance), Twitter is Second Life for the "cool" geeks (what's the emoticon for sarcasm?). Which is to say, though not as nerdy as 3D, it is an interesting indicator of future interaction patterns ("follow the alpha geek"). But, its never going to be a interesting business, and the early pioneers will likely not stand the test of time.
An ex-VP of Business Development of one of my endeavors once said "Our goal is to have a business model that you can't disprove in a finite amount of time." (I probably should have listened to him - but that's a story for another day)
Secondly (specific to this instance), Twitter is Second Life for the "cool" geeks (what's the emoticon for sarcasm?). Which is to say, though not as nerdy as 3D, it is an interesting indicator of future interaction patterns ("follow the alpha geek"). But, its never going to be a interesting business, and the early pioneers will likely not stand the test of time.
An ex-VP of Business Development of one of my endeavors once said "Our goal is to have a business model that you can't disprove in a finite amount of time." (I probably should have listened to him - but that's a story for another day)
So here's my new axiom for the new economy (I'll warn you in advance that its not as pithy as my former colleague's):
If you have a Chief Revenue Officer, you might be a jack-ass.
The business of EVERY business is to make money. Seriously. Its right there in the definition and everything.
December 19, 2008
Redux: Touch UI and the Art of Intent
Some very interesting research into touch UI from Microsoft Research, University of Toronto, and the good folks at Mitsubishi (MERL's been doing some great work) illustrates how to improve the precision and efficacy of touch screen computing. This isn't strictly a technology problem (touch screens are pretty accurate) - its a human factors problem (an affordance issue).
I wrote on this a while ago - the mouse is pretty accurate, but one of the significant reasons I think it succeeded as an "intuitive" input device was that it created an interface paradigm that allowed "intent".
Touch screens allow us to create programmable input devices (the hardwares becomes "soft" - the rest is just wiring) - I don't think its tactility that's makes it intriguing.
While the article posits that they solve the "fat fingering" problem by allowing the interactive to happen "above" your fingers - that is, you can touch the front *and* back of the screen, I'll posit that its actually the recapturing of *intent* in the interaction flow that makes the difference here.
Judge for yourself:
In any case, pretty cool.
I wrote on this a while ago - the mouse is pretty accurate, but one of the significant reasons I think it succeeded as an "intuitive" input device was that it created an interface paradigm that allowed "intent".
Touch screens allow us to create programmable input devices (the hardwares becomes "soft" - the rest is just wiring) - I don't think its tactility that's makes it intriguing.
While the article posits that they solve the "fat fingering" problem by allowing the interactive to happen "above" your fingers - that is, you can touch the front *and* back of the screen, I'll posit that its actually the recapturing of *intent* in the interaction flow that makes the difference here.
Judge for yourself:
In any case, pretty cool.
December 10, 2008
I've seen the future!
Not so much.
Microsoft Plans VR Simulation of Everything? (from slashdot)
"Microsoft's research chief has been promoting the idea of commerce applications and other tools built on top of what he calls the 'Spatial Web', a blend of 3D, video, and location-aware technologies. He gave an example of a shopkeeper creating 3D models of his store's interior and goods with Photosynth and then uploading the results into a large 3D model of local shopping district. Customers could 'visit' the area, browse products, and order them for real-world delivery"
As a colleague of mine once said, quite some time ago:
"Sounds like Doom, without the fun"
(Or... was that me? Can't remember....)
Microsoft Plans VR Simulation of Everything? (from slashdot)
"Microsoft's research chief has been promoting the idea of commerce applications and other tools built on top of what he calls the 'Spatial Web', a blend of 3D, video, and location-aware technologies. He gave an example of a shopkeeper creating 3D models of his store's interior and goods with Photosynth and then uploading the results into a large 3D model of local shopping district. Customers could 'visit' the area, browse products, and order them for real-world delivery"
As a colleague of mine once said, quite some time ago:
"Sounds like Doom, without the fun"
(Or... was that me? Can't remember....)
December 9, 2008
Review: Best Javascript book EVER.
Douglas Crockford's "Javascript: the Good Parts" - go get it. Its concise, and takes you through the semantics of Javascript from first principles. Unlike most such books, which try to make learning JS easier by over-analogizing to other languages, Doug's book also highlights the differences from the very beginning - building a much better foundation for understanding the language, pros and cons.
Heartilty recommended regardless of your level of sophistication or intimacy with Javascript. At a minimum, you'll come away with a better framework for approaching your web applications. And if you're language geek, you'll just like it.
Plus, its concise.
Probably my favorite programming book since the red book (level 1, natch).
Heartilty recommended regardless of your level of sophistication or intimacy with Javascript. At a minimum, you'll come away with a better framework for approaching your web applications. And if you're language geek, you'll just like it.
Plus, its concise.
Probably my favorite programming book since the red book (level 1, natch).
November 10, 2008
Practical Joke?
I read this headline on Slashdot:
Halliburton Applies For Patent-Trolling Patent
It's GOT to be joke... see the original article: http://www.techdirt.com/articles/20081107/0118162765.shtml
Is it April 1 somewhere in the world? *Somebody's* got to be kidding... please?
Halliburton Applies For Patent-Trolling Patent
It's GOT to be joke... see the original article: http://www.techdirt.com/articles/20081107/0118162765.shtml
Is it April 1 somewhere in the world? *Somebody's* got to be kidding... please?
November 5, 2008
Election '08 (that's a wrap)
"There's no question about it - In the next 40 years a Negro can achieve the same position that my brother had." - Robert F. Kennedy, 1968.
Subscribe to:
Posts (Atom)

