Kirk’s PRNG

"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." --John von Neumann

Object-Oriented JavaScript Video

Presentation given at the 2010 ESRI Developer Summit.
Higher-resolution video is available at: http://forgeapps.com/videos/oojs/Object-Oriented%20JavaScript%20HD.m4v
and slides can be found at http://github.com/kvangork/OOJS-Presentation/blob/master/OOJS.pdf

Filed under  //   devsummit   oojs  
Posted March 27, 2010
// 0 Comments

Object-Oriented JavaScript Presentation Slides

You can get all this goodness and the full source code at http://github.com/kvangork/OOJS-Presentation

(download)

 

Video is coming sometime tonight or tomorrow.

Filed under  //   devsummit   oojs  
Posted March 24, 2010
// 0 Comments

Object-Oriented Javascript Sample Extend Function

In my talk on Object-Oriented Javascript yesterday, time constraints prevented me from going through the nuts and bolts of how I like to build up class hierarchies. I wrote this after reading more sources than I can remember, so credit goes to the entire javascript developer community.

There are a ridiculous number of comments embedded, and if you want to discuss it further, please (yes, even you there in the back) feel free to email me at kvangork at gmail dot com. I love this stuff and I'm always happy to talk about it if I've got time.

Filed under  //   devsummit   oojs  
Posted March 24, 2010
// 0 Comments

Blackberry Solution: "Sorry, your device does not meet the system requirements that are needed to support Google Talk."

I experienced a near panic this morning as my Blackberry Google Talk client stopped functioning and the official download site at http://www.blackberry.com/googletalk/ gave me a “Sorry, your device does not meet the system requirements that are needed to support Google Talk” message when I tried to reinstall it, both over the air and on my desktop.

If this happens to you, you may experience a deep sense of loss, of disconnection from the entire world. The sensation may resemble claustrophobia or being marooned.

Do not panic.
Remain calm.
All is well.

Just open up the software abomination known as Blackberry App World, search for and download Google Talk, and enjoy being restored as it ignores the incorrect dependency checking code the official site is using.

For you detail-oriented folk (and Google) this was tried out on a Sprint Blackberry Curve 8330 running OS v4.5.0.77.

Posted September 23, 2009
// 1 Comment

Mike Lee: Planning for failure means never having to say "mission critical."

Planning for failure means never having to say "mission critical."

Posted June 4, 2009
// 0 Comments

One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages

1970 - Guy Steele and Gerald Sussman create Scheme. Their work leads to a series of "Lambda the Ultimate" papers culminating in "Lambda the Ultimate Kitchen Utensil." This paper becomes the basis for a long running, but ultimately unsuccessful run of late night infomercials. Lambdas are relegated to relative obscurity until Java makes them popular by not having them.

Brilliant and hilarious. No matter what your preferred code flavor, you'll enjoy this.

Posted May 23, 2009
// 0 Comments

GitHub "Permission Denied (publickey)" Error Workaround

This frustrated me for 45 minutes tonight, and hopefully this post can save someone else from similar pain.

[MyRepo (master)]$ git push origin master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

I followed all the instructions at http://github.com/guides/providing-your-ssh-key and http://github.com/guides/addressing-authentication-problems-with-ssh and verified my connection was working via the ssh git@github.com command, but kept receiving the Permission Denied (publickey) error when trying to push to github. Eventually I stumbled onto a workaround. In your local repository, remove and re-add the remote link. These commands worked for me, but YMMV:

git remote rm origin
git remote add origin <remote url>

Replace the remote url with your github clone url (looks like "git@github.com:<username>/<reponame>.git") and try your push again. If it doesn't work for you, please post a comment below and let me know why and what you did instead.

Filed under  //   github   version control  
Posted April 17, 2009
// 1 Comment

Thoughts on Google Voice

I've been a Grand Central user since the summer of 2007, and Google Voice is a great next step, adding SMS, Voicemail Transcription, and Conference Calling. I think the service is still just a preview of a real solution to the problem of routing voice communications. GV gives you one number, and incoming calls (and SMS) to that number will ring all the phones you tell it to. The problem is that your various phones still have their own real numbers, and to make outgoing calls that show up with your GV number for the recipient, you need to go online and initiate the call from the google voice web interface.

Ideally all your devices will someday be able to use your one number when making outbound connections. I wouldn't be surprised if this software is already being developed by Google and T-Mobile for the G1, but suspect it will really take another 10+ years while we wait for non-VOIP phones to be retired.

That's my hope for the future, but in the short term, there are a couple of things irritating me:
  • Each of my destination phones thinks it is my voicemail provider and should answer the phone after a few rings. If I want to use GV's wonderful voicemail I need to disable voicemail on my cell phone, skype, and office phone, which is a pain.
  • Outgoing calls initiated via the web require me and the other person to each answer the phone, and in my tests today, the calls went straight to my cell phone's voicemail without ever ringing, so the person I called answered the phone to hear Sprint asking them to leave me a message... probably Sprint's fault, but it's not usable for me right now.
That said, my thanks go to Google for buying and building the next step in voice communications.

Posted March 12, 2009
// 0 Comments

Thoughts on Safari 4's New Tab Bar

Safari’s new tab layout, placing the tabs directly in the window title bar, is a radical change.

Chrome and Safari 4's top-of-the-window tab placement irritated me at first, but I think that was mostly reaction to the required muscle memory changes, not the on the merits at all. Conceptually they're much cleaner up top, though Gruber has many well-thought out nits to pick with the implementation.
The biggest problem remaining is Safari still doesn't show me favicons in tabs. IE7 can do this for crying out loud, why not Safari?

(For those of you on the wild side, there is a browser plugin that purports to add favicons to Safari tabs. I don't do plugins as a general rule and haven't tried this one out, but if you're interested you can find Glims here: http://www.machangout.com/)

Posted March 9, 2009
// 0 Comments

Coding Horror: Paying Down Your Technical Debt

I believe that accruing technical debt is unavoidable on any real software project. Sure, you refactor as you go, and incorporate improvements when you can -- but it's impossible to predict exactly how those key decisions you made early on in the project are going to play out. All you can do is roll with the punches, and budget some time into the schedule to periodically pay down your technical debt.

As usual, Atwood does a brilliant job describing a necessary but easily overlooked part of software engineering.

Thanks Jeff, for giving my habitual refactoring some added legitimacy.

Posted March 2, 2009
// 0 Comments