Palagpat Coding

Fun with JavaScript, game theory, and the occasional outbreak of seriousness

Friday, June 29, 2012

What? You're still here?

I just realized that after my last post, I never followed up with a post explaining what I was going to do with my plan to leave Blogger. This, almost two years later, is that post.

Shortly after writing my Manifesto of the Independent Voice, I did indeed go my own way with my tech blog. The result of that experiment, which I called "Tinyblog," went live on my personal/portfolio site,, at the end of September 2009. Over the next few months I built out the most important features, and I still add bits and pieces from time to time when I find something missing (I added SEO-optimized URLs about a year ago, for example).

Anyway, Tinyblog (nowadays I call it Spartan) has been a fun little itch to scratch, and whenever I hack on it, I get a little more versed in the plate of spaghetti that is PHP, and there's still some value in that, I think. Would I be happier if I had written it in Node.js or Python or Ruby or some other "hip" web language? Well, probably, yeah, but that was never the point. The point was simply to take control of my professional content... and I've done so.

I said all that to say this: please join me over at Palagpat Coding's new home. I hope you'll enjoy your stay.

Labels: ,

Monday, September 27, 2010

Reclaiming Content: A Manifesto

I've been thinking for a while now about trying to get away from using a hosted blog, but I wasn't satisfied with WordPress — I found it too complicated to do what I really wanted with it, plus it opened me up to all kinds of comment spam and malicious attacks of other sorts. Yes, I realize that I could keep it patched up and minimize my attack profile, but it would still be there. That's the hazard of using something that's widespread: it makes an attractive target.

Beyond that, I'd also like to archive the URLs to things I share online, e.g. on Twitter. There are services that help with this sort of thing:,, etc etc etc. But anytime I'm giving my data to someone else, I'm a little uneasy, for a couple of reasons:

  1. What are they going to do with that information? Google and Facebook have both gotten really good at targeting ads at me, and I don't like it.
  2. What happens if their servers suddenly dump my data, like Twitter recently did to my @-replies, or like Google Buzz did a few weeks ago to Leo Laporte?

So, here's what I'm going to do about it.

Manifesto of the Independent Voice

I reject the notion that free on the Internet can only be achieved through selling one's soul to corporate interests. I declare that search engines and blog services do not own the rights to my voice and my words; I do!

I hereby declare my intention to divorce myself from all third-party content management systems. If I cannot find a suitable open-source blogging platform or content management system, I will build my own.




Free and Independent.


Labels: , ,

In Case You Missed It: 2010 (day 2)

As expected, Day 1 of this weekend's JavaScript conference in Berlin was, as the kids say, EPIC. So much so, in fact, that I found myself following the Twitter channel all morning, and retweeting WAY more often than usual. Of course, a lot of those retweets were to presenter-uploaded slide decks, but here they all are in one place, in case you missed it:

Douglas CrockfordLoopage
Jens ArpsThe hitchhiker's guide to client side persistent data storage
Ryan DahlTechniques for a single stack world
Jed SchmidtGetting functional with (fab)
Tom Hughes-CroucherDon't write spaghetti code in server side JavaScript
Kevin Dangoor, Joe Walker & Patrick WaltonBespinSkywriter: The JavaScript Programmer's Editor
Jörn Zaefferer & Nikolai OnkenRobotic JavaScript
Mark WubbenBrowser Extensions for Web Hackers (code)
Alexander LangNot your unit test (note: Chrome on OS X)
Stoyan StefanovPerformance Patterns
Chris Williams (JSConf co-creator)Community.js

Paul IrishThe State of HTML5 : Inaugural Address (note: Webkit/Chrome required) (sidebar on polyfills)
Tobias SchneiderNot your Mother's JavaScript!
Sebastian WernerIntroducing Unify - A Framework for Cross Platform Applications
Guillermo RauchSocket.IO: Web Sockets for Everyone (nodestream, demo)
Thomas SteinerPirating the Semantic Web with JavaScript
Rotislav HristovThe Art of deep linking and AJAX crawling
Kris KowalCommonJS, I Promise
Aaron QuintThe Front-end Takeover
John David DaltonSrsly R1pp3d J@vaScript
embedJS teamWhat is embedJS (I don't see this one on the schedule, only in the Twitter stream; where was it?)

Undoubtedly there will be more slide decks uploaded as presenters return home over the next day or two, and when they do, I'll update this post to reflect those additions. For now, though, I've got plenty of reading material to digest, and to share with my co-workers. ;)

Projects released and/or updated this weekend (as compiled by Brian Leroux):

Yet another great conference has come and gone, but now we can start looking forward to JSConf 2011. And next time, I'm going to do all in my power to give my recap first-hand.


  • 9/27 0747 - Added link to Jed Schmidt's slides
  • 9/27 1403 - Added link to Sebastian Werner's slides
  • 9/27 1732 - Added link to Tom Hughes-Crouche's slides
  • 9/28 1108 - Added link to Jens Arps' slides
  • 9/28 1442 - Added link to Alexander Lang's slides (note that they require Chrome on OS X for best experience)
  • 9/28 2330 - Added link to Tobias Schneider's slides

Labels: , ,

Saturday, September 25, 2010

In Case You Missed It: 2010 (day 1)

This weekend, the second annual conference was held in Berlin, Germany. If you've been keeping track, this JSConf juggernaut just keeps getting bigger and more epic with each successive iteration. Continuing my series, In Case You Missed It, let's take a peek at this weekend's published schedule and the accompanying Twitter stream to see if the trend continues.

Day 1: Saturday, September 25, 2010
Dion Almaer & Ben GalbraithUsing the Web to deliver the next wave of computing experiences
Peter HigginsYour library sucks, and why you should use it
Jenn LukasJavaScript + Web Standards II: The Quickening
Tim CaswellTechniques and Tools for Taming Tangled Twisted Trains of Thought (PDF)
Ulrike MüllerServer-side JavaScript the untold story
Nicole SullivanCSS Lint for Massive Sites
Brian LeRouxPhoneGap: Love the Web and Lose the SDK
Ben FirshmanLessons learnt pushing browsers to the limit (links: 1 2 3 4)
Mutwin KrausUsing canvas to develop classic 2D games
Rebecca MurphyThe jQuery Divide
Pete LePageChakra: Building A New JavaScript Engine For Internet Explorer 9
/be (Brendan Eich)Proxies are Awesome!

Robert NymanHTML5 APIs - The new Frontier
Nicolas Garcia BelmonteCreating Interactive Data Visualizations for the Web
Sebastian Deutsch & Stephan SeidtIf it moves they will watch (sample code)
Paul BakausAves Engine: High performance browser games
Mikeal Rogersnode.js + CouchDB == Crazy Delicious
Felix GeisendörferDirty NoSQL (code, blog)
Philip Hofstetternode.js in production use:
Markus FranzBetter Life with shared resources
Joe McCannRapid Prototyping for Multiple Platforms with JavaScript
Fabian JakobsKick ass code editing and end-to-end Javascript debugging

Some of my favorite finds/revelations of the day:

Look for tomorrow's recap late in the afternoon, and as always, if there are slide decks from other talks online that I don't have linked here, please note it in the comments below, and I'll update accordingly.


  • 9/26 0530 - Added link to Rebecca Murphey's slide deck
  • 9/26 1813 - Added links to Jenn Lukas & Fabian Jakobs' slide decks, and removed speakers whose sessions were cancelled.
  • 9/26 1839 - Added link to Philip Hofstetter's slide deck
  • 9/26 1847 - Added link to Mutwin Kraus's github repository (which includes the slides)
  • 9/28 0549 - Added link to Brendan Eich's slides
  • 9/28 1119 - Added link to Felix Geisendörfer's slides & recap

Labels: , ,

Thursday, September 16, 2010

IE9: Microsoft Strikes Back

After pretty much ignoring Internet Explorer for the last few years, I'm surprised to find myself using the latest and greatest version this morning. And so far? I like it.

The first thing I did once I got the new browser beta up and running was to check out my own site, where I've got a pretty good idea of what previously didn't work well (or at all) in IE. What I found surprised me:

What Works

  • Surprisingly, Canvassa! IE9 runs my little HTML5 Canvas game quite well, in fact.
  • My resume looks great. The only advanced feature it doesn't do right is liquid columns, but that's relatively minor, really.

What Doesn't Work

  • My portfolio doesn't work. Time to revisit some of that code.
  • The new "pinning a webpage as an app" functionality doesn't look very good for my site yet; I need to figure out what <meta> tags to include to make it look better.

Everything else seems to be working well. The new developer tools are nice, addon-disabling feature was pretty sweet, and the minimal browser chrome gets out of the way on my tiny netbook screen and lets the Web shine through. Overall, I've got to hand it to the IE team: this is a great step in the right direction, and I for one welcome the return of the Browser Wars... because Competition = Innovation.

Labels: ,

Monday, August 23, 2010

Cloning Zelda: Candles, or the Magic of dojo.connect

The versatile blue candle

It's been a while since I've worked on Canvassa, my HTML5 love letter to the original 8-bit NES Legend of Zelda. If you remember last time, we worked out some kinks in the code that were causing it to crash in Google Chrome. Today, it's back to implementing missing functionality: namely, how to make the blue candle behave appropriately. Fortunately, Dojo provides us a way to do this, and it's actually a pretty cool feature of the framework. Read on to see how it works.

Read more »

Labels: , , ,