Read on →
Personal and development blog of Kamran Ayub
Hi, my name is Kamran. I am a web developer and designer, residing in Minnesota. I’ve been programming since 2001 and I am familiar with many different languages, both web-based and server-based. I love to tinker around and think of new ways to solve problems.
My wife and I have been living abroad in France for the past six months, since December. We had originally planned for me to work during this time (and to stay longer) but sometimes things just don’t work out as planned. Still, it was truly a blessing in disguise as we’ve been able to travel and I’ve been able to observe and learn about how people around the world use technology that has affected the way I think about how I design software and websites.
Here are 5 things I’ve learned during my 6 months living abroad.Read on →
If you’re an app or site developer, you’ve probably got a bunch of tabs or bookmarks for your dashboards, social network accounts, blog, and more. For Keep Track of My Games, I have UserVoice, Azure, RavenDB, social profiles, etc. that I need to manage and track (haha).Read on →
I made a tiny Knockout extender called
urlSync that syncs an observable with the URL.
For Exalibur.js we wanted to be able to keep our
master branch documentation up-to-date on the website. The website is built using Assemble.io and GitHub pages and after successfully automating my blog, naturally I turned to Travis CI to set up automated documentation generation.
This last weekend I finally released the beta version of the new Keep Track of My Games site. It’s been a long time coming but now it actually lets you keep track of your games. The original site only let you track new games and the new version still offers notifications but now you can organize and tag your collection to track games you’ve played or haven’t played yet (backlog) or new games.
Over the next few months, I want to add social features and more syncing capabilities to services like Steam, Xbox, and PSN. I also want to add deal notifications for any game in your wishlist.
If you use the site, let me know what you think or vote up ideas on the roadmap!
This last weekend I spent 72 hours working on a game for the Ludum Dare 29 game jam. LD is a competition where you get a prompt for a game and then have to spend 48 hours (solo) or 72 hours (jam) and bang out a game. The solo competition has strict rules but the game jam has looser rules and allows for team development. It was a caffeine-filled rush and I hope to write a blog post shortly about how it all went down. It was a ton of fun! I worked with my friends Erik Onarheim and Josh Edeen, both primary contributors to the Excalibur.js game engine. I am also a contributor but I haven’t done a ton with the engine core, moreso the usability of the API, opening GH issues, and the website.
In the meantime, be sure to check out the fruits of our labor! It’s a game where you play as the Kraken and you destroy ships. We originally had a ton of ideas, as you can see in our GitHub repository, but with only 72 hours your scope is pretty narrow. Still, we’re very happy with what came out and we’re glad that Excalibur.js pulled through!
You can also view the entirety of the source code on GitHub!
I was banging my head against the wall for the past hour or so wondering why I was falling back to XHR polling when I deployed my Node.js application to Azure. I’m using socket.io and everything looks like it’s in order, works locally, etc. It was failing with a WebSocket handshake error.
What I saw in the Chrome developer console was something like:
Error during WebSocket handshake: Unexpected response code: 502
In my Azure Node.js console (
azure site log tail SITENAME), I was seeing
It turns out, this little tidbit from the original Windows Azure blog post on Web Sockets did the trick.
Modify your web.config and add:
<webSocket enabled="false" />
system.webServer configuration. Also, another good point in that blog post is to use SSL, since you get SSL for free with a
Hope this helps someone else out there. This should be added to the official Azure tutorial on using web sockets with Node.js.