Tag Archives: programming

Bioshock, Archos tablet overview, Thoughts, Articles, Links

Bioshock Infinite
Just finished playing Bioshock Infinite. It’s a good game, but not as good as reviewers say. There’s reason why I will list here:
1) Low quality textures – There’s some textures that are really low quality. Most parts of the game is fine, but on some small details like doors or small objects it is noticeable on my PS3.
2) Inaccurate voice casting – The main guy is supposed to be from New York in 1912. People from NY in 1912 did not talk with a modern day California accent, they spoke with a distinct New York accent (see: Franklin Roosevelt).
3) CPUs other than Elizabeth are not exciting. Irrational Games was good with the Elizabeth CPU – its cool that she doesn’t need to be told what to do, and she’s actively looking around in her environment. But what would take this further is having all the cpus in the game be like that. For example, when I steal a drink or food from the cart, I expect people to react. When I listen in on a conversation about a guy buying hot dogs, I expect him to eventually buy and eat it, not just standing around being scripted. That part needs some work. Fallout for example, does this quite well. I can easily interact with any NPC, and all my actions have consequences. Irrational should learn a bit from Bethesda in the NPC department. (but can you imagine them doing a game together? would be awesome).

Overall the game is pretty good, but once we have all the CPUs function exactly like humans do – randomly then thats the future of gaming I think.
4) The game is short, like 12 hours, with little replay value. Thats a general trend of modern games, and one I don’t like. What happened to games like Ultima or Prince of Persia where you could play for like 100 hours? But nope, these days companies are just shipping incomplete games and gouging customers on DLC or expansions instead (you hear that Blizzard? Starcraft 1 had all the campaigns in ONE game, and people weren’t forced to buy expansions to beat the game). Yeah.. and multiplayer is often half assed. Good old 90s dedicated multiplayer games like Quake III and Unreal tournament are way better than the tack on multiplayer you find on most games these days (COD and Halo are exceptions).

Companies using programming tests and self ratings to gauge candidates
I think I wrote before about this, but let me re-iterate this, companies who use programming tests to gauge candidates are crap. It tells you nothing about the candidate, how much knowledge they actually have, how he/she would function in an actual dev environment, etc. It’s one specific problem usually, its biased based on interviewer, and there’s no hard guideline or heuristics. What is this, SAT’s? Are they evaluated based on some arbitrary score? Another thing I dislike – when people ask ‘rate yourself on a scale of 1-10 on [blah]‘. What does that accomplish? An arrogant person may rate himself a 10 but is really a 5 and a modest programmer may rate himself a 5 but is really a 9. Its completely arbitrary and doesn’t tell you anything. Big companies are notorious for this.

As an interviewer, I would rather evaluate them based on white-boarding exercises (seeing the candidate do recursion in front of you is better than giving them a recursion exercise and having them google something), broad knowledge based questions (event bubbling vs event capturing), and having their number of years of experience using the language rather than a ‘rating’ of 1-10.

Archos tablet overview

I did an overview of the Archos 7 Tablet… I like this tablet mainly because it has alot of storage room, and it can record DVR videos from any A/V input source, something that tablets these days can’t do. Do check out my little PS3 demo.

I read alot. Except I don’t read books, I read Wikipedia articles and nerdy articles. Lots of them.. here are few I came across:

Interesting Links/News
Someone was paid to hack Facebook exploiting Oath2?
Tells you some of the myths about guitar pickup tone
Someone actually made stacksort!! (based on an xkcd comic)
So this is the guy who started phreaking?
Chinese immigrants had it hard…
I wonder who still uses Telnet… if its always more insecure than SSH
Loved this game when I was young… didnt realize it was only released in Japan!
Super Audio CD?? I never knew this existed, I wonder if its actually audibly better than CD.
CGA is the PC’s first color standard – I remember the days of 16 colors.
Building a naive Bayes classifier, which has lots of uses in making complicated problems less complicated as it seems :P
10,000 year old clock
Did you know MS made a JS replacement language, that adds modules, classes, interfaces and type checking?
Chinese sites look so awful and cluttered and looking at the minified JS, they even have chinese characters in JSON… omg must be a nice time parsing that
This guy ruled South Korea for 16 years until he was assassinated!! O_O
Email loops…
Vestal Virgins!
Let’s save IE6!!! hehe
The woman who had immortal cells
extreme pogo sports…
This is the first FPS game, not Wolf3D, not Doom. This game, and I played it when I was young.. pretty decent :)
Did you know? The first Chinese dynasty was started by this guy
The first Firefox phone?? omg
The Japanese have urinal games… wow
Prions are viral infection agents caused by eating brains o_O
This is a cool name for a Apache Ruby module
The game boy printer was really ahead of its time… people barely had dot matrix printers back then
There’s a programming language based on Lolcats
The Apple Newton had a programming language…
There’s a programming language that is multi-lingual keyworded
Woody Allen’s first movie was a 1960s Japanese dubbed spy thriller (it was a good movie, I watched it)
This was the most popular bike in the world thanks to China
Did you know? in WWI, people used pigeons to take aerial photos
Did you know? This is the worst pc game of all time, mainly cause it doesn’t work. At all.
Pig toilets… yes people used to use these
This is the crater that caused the extinction of the dinos
This is the biggest extinction event in Earth’s history
The original AI program Eliza, as a Java applet
Dunning-Kruger effecta cognitive bias in which unskilled individuals suffer from illusory superiority, mistakenly rating their ability much higher than average.
Apparently this guy lived for 152 years
A PS Emulator that was sold IN STORES
Oh yeah NeXT computers used these…
Someone sued a guy named Mike Rowe for having this domain name…
Charismatic megafauna – I suppose they are “charming” to scientists? hehe
Chinese magic mirror..
Werecats exist?
Black swan theory – this actually makes sense to me. Lots of everyday things have very small probabilities of occurring, but because there’s so many probabilities in general, the chance of any individual small probability happening is actually quite big.
RDRAM.. :D
Wow this is a rare add-on for Sega saturn..
I used to own one of these guys before Pocket PCs were there…
This chinese woman worked on the manhatten project… at a time when Chinese people couldn’t immigrate to America.
A game console that downloads games for free? – awesome. The future of gaming is streaming from the cloud – and this is the first step.
4004 was the first available microprocessor

Nice JS articles and tech sites
http://www.json.org/JSONRequest.html
http://eviltrout.com/2013/02/10/why-discourse-uses-emberjs.html
http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
http://stackoverflow.com/questions/4869609/how-can-jquery-deferred-be-used
http://perfectionkills.com/extending-built-in-native-objects-evil-or-not/
http://perfectionkills.com/whats-wrong-with-extending-the-dom/
http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/
http://www.nczonline.net/blog/2009/12/29/feature-detection-is-not-browser-detection/
http://dailyjs.com/2012/06/25/this-binding/
http://markdotto.com/2012/03/02/stop-the-cascade/
http://www.igvita.com/slides/2012/devtools-tips-and-tricks/#1
http://www.webdesignshock.com/responsive-design-problems/
http://learn.jquery.com/javascript-101/
http://www.igvita.com/slides/2012/devtools-tips-and-tricks/
http://markdotto.com/2012/02/16/scope-css-classes-with-prefixes/
Java 8 looks pretty neat.. Joda time and Lambdas
http://coding.smashingmagazine.com/2012/12/05/client-side-templating/
http://www.codethinked.com/preparing-yourself-for-modern-javascript-development
Overapi kinda sucks as a Java reference (HashTables? really?) but the jQuery reference is decent. This site also compiles a nice list of Web dev articles. Here’s another checklist for web devs.
http://www.smashingmagazine.com/
http://alistapart.com/
Good front end dev interview questions
http://52weeksofux.com/
http://www.altdevblogaday.com/2011/12/24/static-code-analysis/
http://nicolasgallagher.com/pure-css-gui-icons/demo/
http://dev.opera.com/articles/view/graceful-degradation-progressive-enhancement/
http://www.mkyong.com/
http://stackoverflow.com/questions/8659390/context-to-use-call-and-apply-in-javascript
http://net.tutsplus.com/
http://calendar.perfplanet.com/2012/deciphering-the-critical-rendering-path/
http://alexsexton.com/blog/2013/03/deploying-javascript-applications/
jQuery 2.0 beta is out!
Comparing front end frameworks
http://shichuan.github.com/javascript-patterns/
http://alexmaccaw.com/posts/async_ui
http://developer.yahoo.com/yui/yuiloader/
http://kangax.github.io/nfe/
http://webaim.org/blog/user-agent-string-history/
http://www.adobe.com/devnet/html5/articles/css-shaders.html
http://accidentaltechnologist.com/javascript/7-resources-every-javascript-developer-should-know/
http://backbonetutorials.com/organizing-backbone-using-modules/
http://stackoverflow.com/questions/1906344/should-you-only-mock-types-you-own
http://hackerboss.com/the-golden-rule-of-unit-testing/
http://www.programmableweb.com/apis
http://www.chromeexperiments.com/
http://chrome.blogspot.com/
http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/
http://zacstewart.com/2012/04/14/http-options-method.html
http://jtaby.com/3/modern-web-development-part-1.html
http://www.codinghorror.com/blog/2013/03/why-ruby.html
http://blog.apps.npr.org/2013/02/14/app-template-redux.html
http://marakana.com/s
http://stackoverflow.com/questions/8659390/context-to-use-call-and-apply-in-javascript
http://www.javascriptturnsmeon.com/the-tilde-operator-in-javascript/
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html

Nice tech:

Firesheep



Frameworks/Libraries

DOS games

PC / DOS games, then vs now, and how it’s affected my life

DOS games

DOS games

My interest in computers and programming have been directly tied to video games, here’s a little backstory on that.

My father was a Pascal / Delphi programmer, so we our first computer was an IBM PC with a Pentium 233Mhz and only 500MBs of hard disk space. Maybe 1 or 2MBs of RAM. He used to bring home these 5.25″ and 3.5″ floppy disks from his school, Queen’s University at that time, and I remember one of my first games being Prince of Persia, which was and still is a great game.

I have many fond memories playing on that old PC, which was running MS-DOS and then Windows 3.1 and Windows 95 eventually. My dad use to buy these CDs full of DOS games back then. As you may remember, CDs can fit about 700MBs and that was alot compared to floppy disks. In any case, these DOS games ranged from amazing little jewels to just plain awful (some crashed when you try to run it). To play games back then, you had to run them from the command line, so people who played games back then had to have had a little bit of interest in computers.

These days, you just download a game from Steam or put in the DVD and run it, but back then, you had to setup and configure the game first, like what peripherals you were using, joystick, keyboard, mouse settings, Soundblaster settings, Adlib settings, 4 voices, 8 channels, etc. There was some work required before actually running the game. Which was done in the command line, using ___.exe or ___.bat. I have many fond memories of these DOS games back then, and comparing them to now is like night and day.

Here’s some of the things that DOS games had back then that we don’t have or don’t see much now:
1) Games were usually configured and run from the command line
2) Games were usually developed by independent developers and published as shareware or in episodes by companies like Apogee.
3) Groundbreaking games such as Another World were developed by one or two developers, in contrast to the multi million dollar studios and teams that are making games these days.
4) Mostly nerds and geeks played games back then, compared to now, where everyone including your grandma and dog know how to play a Wii.
5) First person shooters evolved from Wolfenstein 3D / Doom, shoot to kill without any sense of plot or story, to Halo and Call of Duty, focusing less on the number of guns you had, and more on the story and multiplayer. I lament that because I miss old school shooters, with tons of crazy weapons and health packs.
6) Multiplayer was mostly over LAN or split screen those days. These days, it’s all about the online experience. I also have fond memories of me and my brother using the same keyboard, over a split screen game, good times that I don’t see anymore.
7) Online experience was very limited, due to 56k modems and dial up; now its blazing fast 4G/Wifi.
8) These games were played on CRT monitors with resolutions lower than that of your mobile phone
9) Speaking of graphics, you can even configure those! VGA / EGA / CGA graphics were the norm back then.
10) No FAQs or troubleshooting or help guides back then. Also games tended to be a lot more difficult. This, combined with little or no internet, leads to long playability, mostly due to getting stuck at some part of the game and not knowing how to solve it.

Alas, sometimes I do miss the 1990s and those were the golden age of DOS games, some standout games being:
Traffic Department 2192 (great story), Rise of the Triad, Catacomb 3D, Commander Keen series, Raptor (awesome music), Duke 3D, Dark Sun (played this game for months), Blake Stone (the sound fx are classic), Shadow Warrior, Pharoah’s tomb, Monster Bash, Jazz Jackrabbit, Hunter Hunted, Liero (modded this one many times), and many more.

These games influenced by childhood and in high school I would become interested in Korean multiplayer games such as Ragnarok Online, Gunbound, Maple Story, and try to hack and mod those games (packet sniffers, sprite/texture swapping, etc), directly influencing my decision to become a programmer and go into computer science.

So yes, sometimes these days I look back with nostalgia and remember how games were made back then, and how its affected me today… good times. Long live DOS games; you may be neglected compared to your console counterparts, but you will not be forgotten.

DOS games

DOS games

End of the term

Work

I’ve now concluded my internship at Environment Canada.

How do I feel about it? I think I’ve learned alot now that I’ve actually had some hands on time to apply my knowledge in the real world. However, I realized not alot of what I learned in university were applicable. There’s alot of theory in school such as turing machines, algorithm runtime, minimizing truncation error or catastrophic cancellation, stuff that in the real world doesn’t really come into play. Yes, there are alot of design patterns used and using SAX instead of DOM to parse large XMLs saves alot of resources. But never did I use anything that involved Finite State Automatons, Context free grammars or NP-complete problems.

Overall, I felt that it was a good time for me to mature as a computer programmer. I did meet alot of new people, made new friends, and learned new things. Details of my work can be found here. Now, back to school again… sigh.

To-do List

My to-do list has gotten shorter! here it is now.

Need to keep track of things…

School:

-Pay off tuition

-Get accepted into ECO major

-Find potential buyers for my car and sell it for decent price

-PEY Evaluation

-Get accepted into the capstone design course

-Get into waitlisted ECO courses

-Eliminate 75%+ of my debt

TekkieValley:

-Allow users to feature videos and submit their own related links to blogs, videos, articles, etc

-Add mobile phone support

-Do more SEO on it

-Add fb/twitter connect for login

-Wikipedia, Twitter, Blogger, Stack overflow, Google latitude content aggregation

-Procuring investment capital for hiring

-Assessing and developing more cohesive business plan to present to investors

-Finding source of advertisement and promotion

-Consolidate domain names into one dedicated server and one shared (dedicated for video,shared for blog)

Starcraft 2

I found there’s strengths and weaknesses to pooling resources. In a 4v4 match, we have one guy who just expands and gives the other 3 resources. This saves the time needed for that guy to research/build buildings so that the other 3 guys can pump out units much faster than the other team. Since resource trading is disabled for 5 min, this build is susceptible to early rushes and cheese. However I compiled a graph of army strength of the latest game in which our team won:

Pool vs Non Pool resources

Pool vs Non Pool resources

Notice how they have the advantage of army up until the 7-8 min mark. Then we (the pooled team) started beating them in terms of resources and army. There’s an anomaly where at the very end their army is increasing much higher than ours. I suspect its because at the end of the game, we weren’t building anymore units (we had enough) and they were desperately pumping out units to try and defend, and because I counted units lost in the graph, hence the spike up. In short though, I think it could be a good strategy if your opponent is trying to build up, and you are quickly expanding with your other player and pumping out guys non stop. Another thing to note: their team had at least one expansion each, if they didn’t expand as fast, our resource and army advantage would be higher still.