Roy Tang

Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart.

Blog Photos Links Archives About

Blog: Traditional blog posts, usually longer than other types, with a title. You can subscribe to an RSS feed of this list.

Nov 2008

I’ve been busy at work so fell a bit behind with Django. Last night I worked on a WordPress importer, so that I could migrate posts from my current blog(s) into the Django-powered blog that I’m coding. I’m using BeautifulSoup to parse the WordPress export file and insert them as Django objects. Since I was running the script repeatedly, I had to figure out how to easily run it from the command line, without having to run it from inside manage.

read more (232 words)

Posted by under post at / royondjango wordpress Software Development / Syndicated: / 0 / 232 words
The PTQ was last Sunday, November 17 at Robinson’s Galleria. As per usual, I opened and registered a pretty good pool with 2 [Battlegrace Angel][1] and [Tezzeret the Seeker][2] . The pool I got passed to me and the deck I built below: Lands 1 Grixis Panorama 1 Naya Panorama 1 Plains 3 Swamp 5 Mountain 4 Forest Creatures 1 Skeletal Kathari 1 Viscera Dragger 1 Hell's Thunder 2 Hissing Iguanar 1 Jund Battlemage 1 Algae Gharial 1 Cavern Thoctar 1 Jungle Weaver 1 Manaplasm 1 Rhox Charger 1 Blood Cultist 1 Carrion Thrash 2 Goblin Deathraiders 1 Kresh the Bloodbraided 1 Rip-Clan Crasher Spells 1 Oblivion Ring 1 Resounding Silence 1 Skeletonize 1 Soul's Fire 1 Branching Bolt 1 Jund Charm 1 Obelisk of Grixis 1 Arcane Sanctum Sideboard 1 Angel's Herald 1 Ethersworn Canonist 1 Excommunicate 2 Knight of the Skyward Eye 1 Marble Chalice 1 Soul's Grace 1 Welkin Guide 1 Call to Heel 2 Cancel 1 Cloudheath Drake 2 Coma Veil 1 Jhessian Lookout 1 Outrider of Jhess 1 Resounding Wave 1 Sphinx's Herald 1 Vectis Silencers 1 Banewasp Affliction 2 Deathgreeter 1 Immortal Coil 1 Resounding Scream 1 Scavenger Drake 1 Shadowfeed 1 Shore Snapper 1 Bloodthorn Taunter 1 Exuberant Firestoker 1 Goblin Mountaineer 1 Incurable Ogre 1 Viashino Skeleton 1 Volcanic Submersion 1 Lush Growth 1 Resounding Roar 1 Soul's Might 1 Topan Ascetic 1 Carrion Thrash 1 Fire-Field Ogre 1 Kederekt Creeper 1 Kiss of the Amesha 1 Qasali Ambusher 1 Rakeclaw Gargantuan 1 Sigil Blessing 1 Waveskimmer Aven 1 Obelisk of Bant The pool had decent removal, but no big game-winning bombs.

read more (914 words)

Posted by under post at / Magic the Gathering / 4 / 914 words
Just kidding. I don’t have a draft cap or anything. I went drafting with our would-be GP Taipei contingent last November 12 (Wednesday). I actually almost never play sanctioned matches outside of the weekend tournaments, but I was a bit tired from work and wanted to blow off steam, so I went ahead to Robinson’s Galleria and waited a couple of hours for the 8-man draft to fill up. I opened with Cruel Ultimatum as my first pick, then got a couple of white weenies (Akrasan Squire and Sigiled Paladin) before getting a 4th-pick Agony Warp.

read more (640 words)

Posted by under post at / Magic the Gathering / 0 / 640 words
Simple Search -- Gatherer -- Magic: The Gathering Beta version of the new Gatherer (tags: magicthegathering) BrowserPlus™ (tags: programming javascript web framework) Snackr: an RSS ticker for Windows/Mac/Linux built using Adobe AIR and Flex. (tags: flash software cool)
Posted by under post at / Links / 0 / 38 words
Tournament was last November 2 at Robinson’s Galleria. The format is Shards of Alara sealed. Because the store lacked tourney packs, the tournament was split into two halves; one half would get 1 tourney pack + 2 boosters, the other half would get 5 boosters. I played in the tourney pack half. My pool and decklist to follow. Basically, I played Naya again, splashing blue for (this is ridiculous) 2 Kederekt Leviathans!

read more (350 words)

Posted by under post at / Magic the Gathering / 0 / 350 words

Oct 2008

I wanted to add some basic tagging to my blog app so I tried out django-tagging. Unfortunately, the featured downloads on the Google Code site are quite out-of-date and would not work with Django 1.0, so I did a subversion checkout instead. If you’re getting an error like “ImportError: cannot import name parse_lookup”, then you need to get the source code from SVN. Adding the tagging to the blog was pretty easy:

read more (164 words)

Posted by under post at / royondjango Software Development / via royondjango / Syndicated: / 0 / 164 words
2nd Trial for Taipei was last Sunday, October 17 at Robinson’s Galleria. I open to register a very mediocre pool while the rest of the guys at my table open awesome pools with lots of bombs. “Gee, I hope we don’t keep this pool.” The judge comes over, rolls the dice and we keep our pools. Awkward. Lands 2 Crumbling Necropolis 9 Plains 1 Mountain 5 Forest Creatures 2 Akrasan Squire 1 Ranger of Eos 1 Rockcaster Platoon 1 Sighted-Caste Sorcerer 1 Sigiled Paladin 1 Yoked Plowbeast 1 Jund Battlemage 1 Ridge Rannet 1 Vithian Stinger 1 Cavern Thoctar 1 Court Archers 1 Drumhunter 1 Jungle Weaver 1 Wild Nacatl 1 Steward of Valeron 1 Woolly Thoctar Spells 1 Oblivion Ring 1 Magma Spray 1 Resounding Thunder 1 Sigil Blessing 1 Obelisk of Jund 1 Quietus Spike Sideboard 1 Angel's Herald 1 Angelsong 2 Dispeller's Capsule 1 Sunseed Nurturer 1 Call to Heel 2 Cathartic Adept 1 Coma Veil 1 Courier's Capsule 2 Jhessian Lookout 1 Kathari Screecher 1 Mindlock Orb 1 Outrider of Jhess 1 Spell Snip 1 Tortoise Formation 2 Blister Beetle 1 Bone Splinters 1 Dreg Reaver 1 Dregscape Zombie 1 Executioner's Capsule 1 Skeletal Kathari 1 Undead Leotau 1 Goblin Mountaineer 2 Lightning Talons 1 Thorn-Thrash Viashino 1 Thunder-Thrash Elder 1 Volcanic Submersion 2 Behemoth's Herald 1 Godtoucher 1 Sacellum Godspeaker 1 Savage Hunger 1 Soul's Might 1 Agony Warp 1 Blightning 1 Fire-Field Ogre 1 Hindering Light 1 Kederekt Creeper 1 Necrogenesis 1 Punish Ignorance 1 Sprouting Thrinax 1 Tidehollow Strix 1 Obelisk of Esper I guess I pretty much misbuilt the deck.

read more (786 words)

Posted by under post at / Magic the Gathering / 0 / 786 words
So I got a basic blog app up and running. Posting, paged archives, etc. Comments implemented using the django.contrib.comments. No problems here, the only caveat being most of the current documentation found by Google searches refer to the pre-1.0 version. Need to peruse the official docs for 1.0 stuff. RSS feeds implemented using django.contrib.syndication, this one seems fine. I tested it and it’s running fine on localhost. I also have a free django hosting account at http://bells-n-whistles.

read more (143 words)

Posted by under post at / royondjango Software Development / via royondjango / Syndicated: / 0 / 143 words
My dad asked me to help book a flight from Manila to Boracay for my uncle who would be a balikbayan this weekend. The rates at PAL were better, so we decided to book using their website. I did the search for the flights, booked the seats, input my uncle’s details, etc. When we got to the screen to input the credit card info, my dad went to call my uncle to confirm and to get his credit card.

read more (541 words)

Posted by under post at / Software Development / 1 / 541 words
My brother pointed me to a new (to me at least) online music service called imeem. The website caught my interest for two reasons. It uses Adobe Flex, a technology which I’ve been using for the past year or so. Any Flex developer knows it’s Flex just by looking at the widgets. (Click to enlarge the screenshot!) The service allowed me to find an mp3 which I’ve never found before and have used as a benchmark for how good an mp3 search service is.

read more (100 words)

Posted by under post at / Tech Life / 0 / 100 words
“when redirecting, how can I make the redirect URL decoupled from the urls.py of the parent app?” -> It turns out that HttpResponseRedirect supports relative paths, so this was fine. return HttpResponseRedirect(“../” + str(post.id) + “/”) I got the basic posting structure up. /post/new/ -> To make new posts /post// -> To view a single post /post/all/ -> To view all posts I should probably start thinking of a better url scheme.

read more (167 words)

Posted by under post at / royondjango Software Development / via royondjango / Syndicated: / 0 / 167 words
The quintessential app to learn from is of course a blog. Started using a simple Post model. Added the new post form and view. Can now successfully insert posts into the DB. Next: – create the detail page that will show the post after saving Figure out: – when redirecting, how can I make the redirect URL decoupled from the urls.py of the parent app? i.e. if the parent app has the following mapping:

read more (127 words)

Posted by under post at / royondjango Software Development / via royondjango / Syndicated: / 1 / 127 words
I haven’t had a top eight result in a while. Thank goodness for limited season! I registered a deck that I would have loved to play, with highlights such as Caldera Hellion, 2 Oblivion Rings and 2 Resounding Thunders, plus a lot of good blue/black stuff. Of course, we pass the card pools and here’s the one I ended up playing: Lands 5 Plains 2 Island 1 Swamp 1 Mountain 5 Forest 1 Bant Panorama 1 Jund Panorama 1 Naya Panorama Creatures 1 Cavern Thoctar 1 Court Archers 1 Druid of the Anima 1 Mosstodon 1 Naya Battlemage 1 Broodmate Dragon 1 Deft Duelist 2 Qasali Ambusher 1 Stoic Angel 1 Waveskimmer Aven 1 Resounding Thunder 1 Guardians of Akrasa 1 Knight of the Skyward Eye 1 Sanctum Gargoyle 1 Sigiled Paladin Spells 1 Obelisk of Esper 1 Obelisk of Grixis 1 Infest 1 Bant Charm 1 Oblivion Ring 1 Resounding Silence 1 Scourglass Sideboard 1 Obelisk of Jund 1 Banewasp Affliction 1 Blister Beetle 1 Dregscape Zombie 1 Glaze Fiend 1 Onyx Goblet 1 Puppet Conjurer 1 Shadowfeed 1 Undead Leotau 1 Cancel 1 Coma Veil 1 Courier's Capsule 2 Fatestitcher 2 Jhessian Lookout 1 Outrider of Jhess 1 Sphinx's Herald 1 Behemoth's Herald 1 Cavern Thoctar 1 Cylian Elf 1 Gift of the Gargantuan 1 Godtoucher 1 Ooze Garden 1 Resounding Roar 1 Blightning 1 Carrion Thrash 1 Goblin Deathraiders 1 Prince of Thralls 1 Sangrite Surge 1 Sigil Blessing 1 Sprouting Thrinax 1 Swerve 1 Bloodpyre Elemental 1 Dragon Fodder 1 Dragon's Herald 1 Goblin Mountaineer 2 Lightning Talons 1 Ridge Rannet 2 Soul's Fire 1 Volcanic Submersion 1 Angelsong 1 Guardians of Akrasa 1 Welkin Guide 1 Yoked Plowbeast The exalted theme is pretty good and I was glad for a chance to try it out.

read more (1961 words)

Posted by under post at / Magic the Gathering / 0 / 1961 words
If you’ve been having trouble with Bayan DSL web connections to some websites (which we have for the past few weeks or so), you may be surprised to know that they have an HTTP proxy server you can use. Strange, considering that when reporting such problems to their trunkline, they never ask whether you’re using that proxy server or not. I don’t recall ever being told about it by the Bayan DSL staff.

read more (139 words)

Posted by under post at / Tech Life / 3 / 139 words
On a whim, my brother and I went to Trinoma to see Eagle Eye, barely catching the last full show (including the trailers of course, we love watching trailers). Our mom had said we’d like the movie and she still owed us one since it was her fault we watched Big Stan. So we’re giving her a chance to redeem herself. The spoilerless review: Since Eagle Eye trailers seem to be everywhere, you probably have some idea of at least the start of the story.

read more (291 words)

Posted by under post at / Movies Review Pop Culture / 0 / 291 words

Sep 2008

I hit the first flight at Eastwood City last Saturday, September 27. Here’s my sealed pool: Lands 1 Arcane Sanctum 1 Bant Panorama 1 Crumbling Necropolis 1 Savage Lands 4 Plains 4 Island 5 Forest Spells 1 Obelisk of Esper 1 Courier's Capsule 1 Resounding Wave 1 Branching Bolt 1 Sigil Blessing 1 Magma Spray 1 Oblivion Ring Creatures 1 Cloudheath Drake 2 Kathari Screecher 1 Kederekt Leviathan 2 Druid of the Anima 1 Drumhunter 1 Jungle Weaver 1 Mosstodon 1 Naya Battlemage 1 Mayael the Anima 1 Rafiq of the Many 2 Steward of Valeron 1 Bant Battlemage 1 Yoked Plowbeast Sideboard 1 Relic of Progenitus 1 Bone Splinters 1 Deathgreeter 1 Dregscape Zombie 1 Glaze Fiend 1 Onyx Goblet 1 Puppet Conjurer 1 Skeletal Kathari 1 Undead Leotau 1 Viscera Dragger 1 Call to Heel 1 Cathartic Adept 1 Courier's Capsule 1 Etherium Astrolabe 1 Etherium Sculptor 1 Fatestitcher 1 Outrider of Jhess 1 Spell Snip 1 Tortoise Formation 1 Godtoucher 2 Lush Growth 1 Mighty Emergence 1 Manaplasm 1 Ooze Garden 1 Savage Hunger 3 Soul's Might 1 Topan Ascetic 1 Wild Nacatl 1 Grixis Panorama 1 Blightning 1 Grixis Charm 1 Kederekt Creeper 1 Kiss of the Amesha 1 Necrogenesis 1 Qasali Ambusher 1 Realm Razer 1 Rip-Clan Crasher 2 Tidehollow Strix 1 Bloodpyre Elemental 1 Dragon's Herald 1 Exuberant Firestoker 1 Goblin Mountaineer 1 Lightning Talons 1 Ridge Rannet 2 Thorn-Thrash Viashino 1 Vithian Stinger 1 Volcanic Submersion 1 Akrasan Squire 1 Angelsong 1 Dispeller's Capsule 1 Excommunicate 1 Gustrider Exuberant 1 Marble Chalice 1 Soul's Grace 1 Sunseed Nurturer The pool was pretty good, decent removal and I built the deck around fatties (Naya, obviously).

read more (811 words)

Posted by under post at / Magic the Gathering / 2 / 811 words
After trying out usernamecheck.com, I decided to try claiming my username “roytang” at various websites. Here’s a list of various websites where I have this username. http://friendfeed.com/roytang– This one actually seems useful. http://twitter.com/roytang– Okay, I admit it. I’ve actually had this for a few weeks now. http://pownce.com/roytang/– I’m not yet too clear on what it’s used for. http://roytang.posterous.com/– would be useful if I didn’t already have a blog http://roytang.livejournal.com/– now I can be emo!

read more (162 words)

Posted by under post at / Meta / 0 / 162 words
I was looking to try out some Flex stuff at home, but of course I didn’t have a personal Flex Builder license I could use. (A coworker of mine wisely advised me not to try using my work license at home.) So I looked around to see if there were any free (as in beer and as in speech) alternatives. The one I found was FlashDevelop. Although the IDE looks Eclipse-like, it’s actually built using .

read more (247 words)

Posted by under post at / Software Development / 0 / 247 words
Catching up on my tournament reports now: Sep 7, Pre-Alara Triple Treat (Prerelease passes at stake) I’m playing the same deck as I did in the GP Manila Day Two PTQs. Round 1 vs 5-color merfolk: 2-0 win. Round 2 vs Kithkin (mirror match) 0-2 loss. I generally don’t know how to play the mirror match. Round 3 vs 5-color control: 1-2 loss. His build was too strong against Kithkin; in addition to Firespouts and Hallowed Burials, he also had Soul Snuffers.

read more (398 words)

Posted by under post at / Magic the Gathering / 0 / 398 words
Grand Prix Manila 08 has come and gone and is in the history books. While the Wizards official coverage gives you the play-by-play and the results, I’ll see if I can’t provide any interesting stories about my first constructed Grand Prix event. For the PTQ on day two, I decided to just use the Kithkin build we made for Paul, except that I put in Stillmoon Cavaliers maindeck, taking out Knight of Meadowgrain.

read more (817 words)

Posted by under post at / Magic the Gathering / 0 / 817 words
I was going through some old files today, I found this screenshot of my desktop from 2004: (Click for larger image) Actually, I still like that wallpaper. It’s well-drawn. It’s from RPGamer Theme Central. Items I had in the quick-launch toolbar: mIRC (for downloading comics) Thunderbird IE IE again (?!) I believe this is EditPad, a notepad replacement Chami.com HTML-Kit WinAmp Windows Media Player DivX Player No idea Shortcut to some folder Kazaa (pirate!

read more (134 words)

Posted by under post at / Meta / 0 / 134 words
I caught Groundhog Day for the Nth time today on HBO (N roughly around 50). My father claims it’s his favorite movie of all time; high praise considering he watches every movie that comes out EVER. I’m not actually going to talk about the movie; it’s awesome, if you haven’t seen it, you should. You’re missing half your life. If you had one day of eternity, what would you do?

read more (173 words)

Posted by under post at / Movies Pop Culture / 0 / 173 words
Grand Prix Manila 08 has come and gone and is in the history books. While the Wizards official coverage gives you the play-by-play and the results, I’ll see if I can’t provide any interesting stories about my first constructed Grand Prix event. ** Day One Tournament Report ** As mentioned in the previous post , I’m playing QnT and I hope to fight aggro decks all day long. ** Round 1.

read more (1716 words)

… starts next week. Taking a break from typing up my Grand Prix Manila blog entries, here’s my prediction for the type of manafixing we’ll see in Alara: Grixis Land Land (Common) T: Add 1 to your mana pool. 2, T: Add RBU to your mana pool. Whenever you would add G or W to your mana pool, add 1 to your mana pool instead.
Posted by under post at / Magic the Gathering / 0 / 65 words
Grand Prix Manila 08 has come and gone and is in the history books. While the Wizards official coverage gives you the play-by-play and the results, I’ll see if I can’t provide any interesting stories about my first constructed Grand Prix event. ** Grand Prix Manila, Day Zero ** I met up with Switch and Alex at the venue (Megatrade hall in SM Megamall) early and got in by 10 am.

read more (1032 words)

Posted by under post at / Magic the Gathering / 0 / 1032 words
Grand Prix Manila 08 has come and gone and is in the history books. While the Wizards official coverage gives you the play-by-play and the results, I’ll see if I can’t provide any interesting stories about my first constructed Grand Prix event. Cast of Characters It was about three weeks before the Grand Prix, and I still had no idea what I was going to play. I didn’t have a regular playtest group, and I needed some people to bounce ideas off.

read more (901 words)

Posted by under post at / Magic the Gathering / 0 / 901 words

Aug 2008

In my continuing quest to become better than everybody else, I spent some time today learning Django (a Python webapp framework) and the Google App Engine. I tried following the tutorials included in the Django Book for a while, but I’ve never taken too well with just typing up examples from a book, so I decided to write something from scratch. I decided to write a simple message board application.

read more (376 words)

Posted by under post at / Software Development / 0 / 376 words
2nd PTQ was last Saturday, August 23 at Robinson’s Calleria. I brought a slightly modified version of the greedy deck: Lands 2 Mutavault 4 Reflecting Pool 4 Secluded Glen 3 Sunken Ruins 4 Vivid Creek 2 Vivid Marsh 3 Wanderwine Hub 2 Mystic Gate Creatures 4 Merrow Reejerey 2 Mirror Entity 4 Silvergill Adept 4 Stonybrook Banneret 4 Sower of Temptation Other Spells 4 Bitterblossom 4 Cryptic Command 4 Nameless Inversion 3 Unmake 3 Sage's Dousing Sideboard 2 Shriekmaw 2 Crib Swap 2 Pollen Lullaby 2 Hallowed Burial 4 Wispmare 3 Vendillion Clique The venue is crowded as the PTQ is the same day as WoW TCG Nationals.

read more (885 words)

Posted by under post at / Magic the Gathering / 0 / 885 words
I needed to transfer a file to my phone today, but could not find my USB cable. I figured I’d try out the Bluetooth with the laptop. After around 30 minutes of struggling with the unintuitiveness and some helpful googling I finally was able to transfer my file using the ff steps, for future reference: Turn on Bluetooth on the Acer Aspire using the Bluetooth button. Right-click the Bluetooth icon on the systray -> Show Bluetooth Devices -> Options -> tick “Allow Bluetooth devices to find this computer”

read more (269 words)

Posted by under post at / Tech Life / 0 / 269 words
Upon the prodding of Mikong, I attended the recent Barcamp Manila held in Ortigas last Thursday. I wasn’t really sure what to expect, as I’ve never attended any such conference before, and I’ve never been particularly involved with the local developer community, but I said I’d go anyway, I figured it’d probably be fun. The event was held at the Orient Square building at the offices of Exist Global and Morph Labs, who sponsored the event.

read more (253 words)

Posted by under post at / Software Development / 5 / 253 words
The tournament was last Saturday, Aug 16 at Robinson’s Galleria. I played the same deck as last week, except I had the following sideboard: 2 Hallowed Burial 2 Shriekmaw 2 Eyeblight's Ending 2 Crib Swap 2 Pollen Lullaby 4 Wispmare 1 Jace Beleren The extra removal was geared towards the kithkin matchup, which was unknown to me at the time.

read more (1184 words)

Posted by under post at / Magic the Gathering / 0 / 1184 words
The Philippine Open tournaments (one Standard and one Block) are held as side events to the Philippine Nationals. (I was not qualified obviously). I played in the block portion last Saturday, August 9 at Robinson’s Galleria. I played a version of the PWC Special from GP Kobe, the so-called “Greedy Deck” Lands 2 Mutavault 3 Reflecting Pool 3 Secluded Glen 4 Sunken Ruins 4 Vivid Creek 2 Vivid Marsh 3 Wanderwine Hub 2 Mystic Gate 1 Swamp Creatures 4 Merrow Reejerey 3 Mirror Entity 4 Silvergill Adept 4 Sower of Temptation 4 Stonybrook Banneret Other Spells 4 Bitterblossom 4 Cryptic Command 4 Nameless Inversion 2 Peppersmoke 3 Sage's Dousing Sideboard 2 Austere Command 1 Jace Beleren 1 Puppeteer Clique 1 Arbiter of Knollridge 4 Wispmare 2 Pollen Lullaby 2 Eyeblight's Ending 2 Shriekmaw As usual, assembled the day before with zero playtesting.

read more (1448 words)

Posted by under post at / Magic the Gathering / 0 / 1448 words
I joined this year’s Google Code Jam. It’s part of my characteristic competitiveness and arrogance that I actually imagined I had a chance at winning the contest. No such luck, see my results. I was eliminated in the second online round. That I managed to get there at all was surprising considering the level of difficulty. I’m not really a com-sci guy, so I’m weak with regards to algorithms, I don’t always know what the best approach for particular classes of problems – I usually just brute force it then try to optimize based on my on-the-spot analysis of each problem.

read more (242 words)

Posted by under post at / Software Development / 0 / 242 words
A bit late, but for the record I went 1-3 in the Eventide Release Party with my very lame pool. (I swear, I get Dramatic Entrance all the time in sealed!) After the release event, I played in an EVE-EVE-EVE draft, where I went 2-1 and didn’t manage to raredraft anything valuable. Tomorrow: Philippine Open (Block)!
Posted by under post at / Magic the Gathering / 0 / 56 words
I’ve been submerged in work for the past two weeks or so, not having much time to do anything else aside from work and the DS, which lets me sneak in some Professor Layton, FFTA2 or Civilization Revolutions while waiting for bug fixes to be confirmed. So I took a break this weekend and won’t be reporting back to work until Wednesday. No plans really, just some unplanned downtime to unwind a bit…

read more (78 words)

Posted by under post at / Gaming / 0 / 78 words

Jul 2008

I came across the Stylish Firefox Extension, and the GMail Redesigned project, which gives the GMail user interface a sleek facelift. [ ]3 _ (I’m not sure if it was necessary to blot out the names of contacts!) _
Posted by under post at / Tech Life / 0 / 39 words

Roy Tang is a:

roytang.net is a personal site, an E/N site, and kind of a commonplace book; I post about a random assortment of topics that interest me including software development, Magic the Gathering, pop culture, gaming, and tech life. This site is perpetually under renovation.