(Somehow I now have a series of posts about blogging in 2018. Here’s the first one. Two is a series, right?) Great comment the other day on reddit (found via r/bestof), in response to Twitter’s inaction vs Alex Jones. Quoting part of the comment: How can the OG generation of web users possibly hope to maintain the Internet as a free and decentralized medium when a growing majority of the current userbase accept centralization of content and audience, as not only the status quo but as the way things should be?
"Life begins at forty" -- Walter B. Pitkin It’s supposed to be a milestone of some kind, isn’t it? Like any other birthday though, I don’t feel much different. I still feel like a kid (hence the “kid-at-heart” in this blog’s header), no more an adult than I was twenty years ago. More or less still the same person. I still enjoy the same pursuits, prefer the same foods, have the same hobbies, appreciate the same things.
It has been a while since I had a bit of free time (work is busy busy busy). I thought I would post about something here. And I’ve decided (just now), that I need to post more frivolous things, a bit of dumb blogging as some might say. Today I will talk about what games I’ve been playing in the whatever little spare time I’ve been able to scrounge up. I find that if I don’t distract myself with some gaming, my brain tends to overthink about silly things like problems and deadlines that I can’t do anything about anyway.
This book was on sale on Amazon Kindle a while back, I figured I’d give it a whirl. Some years ago I had read one of the author’s previous books, The Four Hour Workweek, and I wasn’t too impressed. It was interesting at least, but a lot of the advice seemed either difficult to apply to my personal situation or involved doing stuff I wasn’t really interested in (i.e. sales and marketing and whatnot).
I had an out of country trip last weekend to Kuala Lumpur to play Magic, but I was a bit tempted to not write about it all. The reason being that inevitably after one of these MTG-related trips the first thing people ask me is “Nanalo ka ba?” (Did you win?) and this time, the answer was sadly no. (Let’s get the spoilers out of the way early shall we.) However, I realized that not all stories have to have happy endings.
A couple of days ago I was rummaging through some old files and found a folder of some personal files I had copied from work computer at my old long-time place of work. One thing I was hoping to find there was this TODO text file that I kept throughout the years I worked there, even as I moved from one computer to another. It was a very long, append-only file, accumulated over some number of years.
Ever since I came of age, I’ve exercised my right (and duty) to vote in every election that comes around. Except for Barangay/SK elections. I’ve never voted in Barangay elections. I understand that voting is a civic duty, and I have no real justification for shirking it. But the fact is that my level of awareness re: barangay-level government is very low. I have no idea what their responsibilities or jurisdiction is supposed to be.
Google recently had a demo of their new AI assistant Duplex at Google IO 2018: It’s an amazing demo to watch, from an engineering perspective. Basically a combination of natural language processing + text-to-speech that can emulate human speaking patterns. It’s not that much of a breakthrough (more like putting several different things together), but it’s impressive and is a good indicator of where we are with regards to true conversant AI.
When Game of Thrones entered its sixth season in 2016, it was true spoiler territory for those of us who had read the GRRM books before HBO’s TV adaptation turned the property into a worldwide phenomenon. Due to the author’s glacial writing pace, at this point the TV series went past the point that the novels had reached. Thus nobody – book readers or tv viewers – knew what events would unfold in the story.
As a programmer, I’ve always been a big fan of StackOverflow. I asked my first question there and also wrote my first answer in September 2008, which was the month the site launched, so I was pretty much there from the beginning. The site was a huge boon to programmers when it first came out, because the internet as a venue for asking questions and answers back then was a horrible fragmented landscape of small forums and mailing lists and sites like Experts Exchange, all of which were terribly designed.
There’s been a recent brouhaha lately over Facebook’s data privacy issues after the Cambridge Analytica scandal came out. For a while, a #DeleteFacebook hashtag even made the rounds. I will admit that I had been considering reducing my own Facebook usage for a while, but not because of any data privacy issues. While I understand that Facebook probably mishandled private data and that this is a serious concern for a lot of people and even for society at large.
While browsing through my old blog posts, I found one about my setup from 2010. I figured it was a good time to do an update. I like doing posts like these because it provides an easy reference for me to look back and see what I was working with at a certain point in time. What Hardware Do I Use? Desktop. I bought a new desktop rig back in late 2015, here are the specs:
(Image credit: r/ProgrammerHumor) I’ve been meaning to add SSL to this blog ever since I first heard of Let’s Encrypt last year. Unfortunately, support on my otherwise awesome webhost was not yet first-class and seemed complicated at the time, so I kept putting it off. But recently I was testing something unrelated and found out that I needed to have SSL on my server in order for OAuth2 to work, so I grudgingly got to it.
Around four years ago (give or take a few days), one of my many Twitter interactions with Globe Telecom’s CS account went a little bit viral due to them trying to justify their Fair Use Policy by calling 3% of their users “rotten bananas”. Apparently I didn’t bother writing on the blog about it back then, so I thought I’d do it now. View post on imgur.com The exchange went a tiny bit viral on social media, with friends telling me about people I don’t know sharing the image of the conversation on Facebook and Twitter.
I decided to try learning some 3d modeling. For the past couple of weeks I’ve been following this beginner Blender tutorial where I had to make donuts. (Link to the tutorial series on Youtube.) Here’s my output!(click for full size) This image took around 40 minutes to render. I had to do 2000 samples per tile which is why it was so slow. I was getting too much noise/graininess at lower sampling rates.
I’m not super big on New Year’s Resolutions anymore. (I seldom even do the 1920×1440 joke these days.) I mean, I’m all about productivity and improvement and changing for the better, but I’ve found that very specific resolutions don’t often work for me. Mostly because I have very little focus (obviously something that an be improved). New Year's resolutions: Read, write, watch, play, create, destroy, win, learn, improve, chill, move forward
Happy new year! Last year I posted some year-end statistics. That seems like a good way to recap the year, so let’s do it again. Random statistics from 2017: 45 blog posts (including this one; total of 818 currently on this site according to wp-admin, though that number doesn’t add up to last year’s stats; down 34 posts from last year, an indicator of increased busyness) 0 words written for Nanowrimo (hopefully I can have another go next year) 59 sketches submitted to r/sketchdaily (a far cry from last year’s 321, yet another indicator of busyness) Duolingo streak: 0 days.
I was thinking about my typical approach to coding. When writing a new feature, I tend to implement in the direction of where the data flows, starting from the user interface then to the backend and back to the frontend and wherever else that goes. I will build incrementally, using debugging tools or console printouts to ensure that each step is working correctly. As an example, here’s how I did a recent web-based function:
I had booked the Singapore trip earlier in the year, since I almost always attend Grand Prixs in Singapore as its an easy trip and gives a good opportunity to visit friends. Unfortunately, I ended up not having time to prepare for the tournament itself. Fortunately, it was a limited event rather than constructed, so I figured maybe I could wing it and still do well. (Spoiler: I could not.)
I took a 5-day trip to Singapore last weekend, mostly to play in the Grand Prix, but the opportunity to get away from the country for a while was appreciated. These are some notes and anecdotes from the trip. (Not about the GP itself, that’s a separate post on its own.) By my count this would be my 5th visit to Singapore. That means Singapore now ties Hong Kong for my most visited foreign destination.
I had been looking into a software performance problem for a few hours now and had decided to call it quits for the day. I turned off the lights and climbed into bed, hoping to get to sleep early for a change. I hadn't been in bed five minutes when I thought about something I hadn't tried yet. I picked up the tablet that was beside my bed and did a few google searches and soon I was back on my desktop trying out some parameters I hadn't tried yet.
I haven’t had much time to write recently. Been busy. (I’ll write about that some other time.) But I’ve kind of been posting regularly on this date for a while, so here we are. Ah, time. And the inexorable passage thereof. There’s some kind of big milestone for me in around three hundred and sixty-five more solar cycles. Well, I don’t personally consider it big, since that’s kind of arbitrary. But as people are wont to say, life begins… maybe I’ll save that for next year.
Last week the local gaming shop had the Steam Link on 70% discount so I figured I’d give it a try. We recently got a new TV at home, so I was eager to try out some Steam games on the big screen. If you’re too lazy to click the link above, the Steam Link is basically a set-top box that streams your gameplay to a TV via HDMI, allowing you to enjoy your steam games from the comfort of a couch.
Last weekend I watched Aureus Solito’s movie Pisay at the UP film center with a couple of friends (both of whom were my Pisay batchmates of course). For the uninitiated Pisay is the nickname for our beloved _Philippine Science High School. _It’s a system of government-run schools with a special focus on science and math subjects. There’s a highly-competitive entrance exam and we’ve always been told that students who make it in are considered the “cream of the crop.
Random thoughts while walking at night: The structure of government can be a bit analogous to the structure of a software development project. The Constitution is like the requirements for a project. It’s kind of high-level and (I believe) shouldn’t be too detailed. Supposedly the requirements are written by the client. For a country like the Philippines the client is “we the sovereign Filipino people”. Slight tangent: I used to know this guy who was one of those rabid “we need to amend the constitution” types and he asked me to review a “mathematical model to track the budget as a function of tax collection and monetary policy” that he wanted to include in a proposed new constitution.
Some time ago a friend from high school invited me to her daughter’s debut. And I had to proxy for her daughter’s ninong and maybe give a few words on what it means to become an adult. My first two reactions were (1) wow I’m so old one of my batchmates has an eighteen-year-old daughter; and (2) what the heck would I know about becoming an adult? (I guess (3) was “oh, it’s a debut, so it’s formal and I have to dress up?
"Grabe naman kasi ang ginagawa nyo sa pasahero" (This is too much for the passengers), she said. She was a short, old lady trying to get to the front of the bus so that she could disembark. But like most city buses in Metro Manila during rush hour, the bus was filledto the brim with people, many of them standing tightlypacked in the aisle, holding on to handrails on the bus ceiling or the nearby seats.
I don’t really play Magic regularly anymore; Last year I only played Standard because I was Q’ed for the WMCQs. But when there’s a local Grand Prix, oldies like me crawl out of the woodwork and try to believe we can still do well in a tournament with minimal prep. Grand Prix Manila 2017 was to be Standard format, held on June 2-4, 2017, at the SMX convention center. At the start of the year I already knew I would be playing in this year’s GP Manila, but since I hadn’t played Standard for well over a year, I didn’t really know what I would be playing.
So last April my friends and I took a second trip to Japan. This time we mostly stayed around Tokyo, while taking a few days off in-between to visit Fuji, Hakone and Nikko.I went to Fuji, but that’s not in Tokyo! I like Tokyo, so I’ll talk about Tokyo for now. I’ve only been here twice, but I could imagine myself living here for an extended period of time. It solves my top three problems with Metro Manila: overly hot weather, poor transportation options, and poor internet.
My first Persona game was Persona 4 Golden on the Vita – a fantastic game. After that I dived into Persona 3 Portable and eventually the spin-off games Persona 4 Arena (and Ultimax) and Persona Q on 3DS. So it was no surprise that one of the game releases I was most looking forward to this year would be the next numbered game in the series: Persona 5 on the Playstation 4.
I haven’t been blogging too much recently. I got busy for a while and had to skip a few weeks, and then general laziness prevented me from resuming a regular posting schedule. (Hopefully that ends now.) Most of the time my ranting was on social media, which got me thinking: Is writing on your own blog still useful in this day and age of social media? I’ve been blogging for a long time – my archives say 2002 – waaay before Facebook or even Twitter came around.
First, the spoiler-free summary (spoilers after this part): overall a very entertaining movie to sit down and watch popcorn and to enjoy the jokes and the space battles and the different colored lights and the tiny adorable tree creature GOTG’s humor was one of its strong points and for the 2nd movie, they push the comedy up a notch, perhaps a little too much in some places. Lots of funny gags and one-liners I felt like some of the character/background development stuff was pushed a bit too hard as well the movie’s plot also felt a bit thin and straightforward.
I recently attended a few training sessions for MarkLogicheld at an office in a nearby business center. Now, I'll forgive you for not knowing what MarkLogic is, as even I hadn't heard of it before six months ago. MarkLogic is (apparently) the leading Enterprise NoSQL provider. NoSQL is big and sexy right now because of the supposed advantages in handling big data, and large web companies like Google and Facebook use a lot of NoSQL in the backend.
A couple of years ago, two friends and I were being tourists in Barcelona. With its wide, spacious streets and strangely uniform city blocks, we walked around a lot. During one of our tourist days, we decided to eat some _paella_ on the way back to our AirBNB. Who comes to Barcelona and doesn’t eat paella right? We ended up walking for quite a while. Every time we came upon a new restaurant that served paella we would consider the price and the restaurant and would think, hey maybe we can find somewhere better or cheaper further along the way.
With The FFXIII trilogy not being particularly well-received and FFXIV being an MMO, Final Fantasy XV has been a long awaited as the next mainline single-player game in the much-acclaimed series. This review will have minor spoilers. Story FFXV follows the story of Noctis, prince of Lucis and his band of brothers (okay they’re not really brothers, but they might as well be). They’re supposed to be on a road trip to get Noctis married, but things happen along the way and eventually they have to figure out how to liberate their homeland from The Evil Empire.
Back in 2004, I signed up for the Google Code Jam for the first time. Unfortunately I didn’t make it past the qualifying round. I was a bit luckier in 2008 and 2010, making it to round 2 both times. In fact in 2008 as I recall I was one of only two participants from the Philippines who made it to round 2, which allowed me to jokingly brag about being the #2 programmer in the country.
I’m not a fan of scary movies. I don’t appreciate the idea of paying money to get surprised by jump scares or whatever. Back when I was a kid I remember my dad watching a Betamax copy of The Gate back home and me and my younger brother were watching with him and the movie seriously creeped me out. There was this one scene where a demonic eye manifested on the lead kid’s palm and that scene stuck with me for a while.
Recently, a developer needed to undergo a tech interview at US immigration:1 This may surprise some people I’ve worked with, but I didn’t have formal computer science training in school. I’m not actually a computer science major. Yet I’ve worked as a software developer for more than a decade now. Literally zero times have I needed to write a sorting function or balance a BST. I have a rudimentary understanding of some sorting algorithms (mostly just bubble sort and selection sort), and I have some idea of how to balance a BST.
4k XLocal tech blog YugaTech is doing a giveaway of a Sony X8000D Bravia 4K TV. To be honest I wasn’t sure about using this blog to participate in a promo, but I was already in the market for a new TV since our living room TV is already starting to have some problems. I checked out the product features of the Sony X8000D Bravia on their website. Some of the features stood out for me specifically:
At any point in time, what you are doing can be grouped into one of four buckets: Planning Executing a plan Reacting to something Relaxing (leisure time) Overthinkers tend to do too much of #1. The most efficient people probably spend most of their time in #2. People whose lives are chaotic do too much of #3. Almost all people don’t get enough #4. (I might be doing too much of #4~)
I’ve been hesitant to try Python 3.x because it’s not backward compatible with Python 2.x which I’ve been using for scripting since forever. But recently I found out that since Python 3.3, they’ve included a launcher in the Windows version that supports having both versions installed. You can use the launcher to specify the Python version to use at the command line (it defaults to whichever version was installed first):
We put people into boxes because it is convenient. It’s easier for our mental model of the world to say to yourself things like “This guy works with computers, maybe he can tell me how to fix my printer.” or “This person is from [school] and they are very arrogant.” or “You’re from [country]? You guys do [that country’s thing] right?” or ”This person is a supporter of [politician] so he must support all the things that politician does, even the things I hate.
I had been meaning to try writing a Twitter bot for a while now. I figured a trivia bot would be pretty easy to implement, so I spent some time a couple of weekends to rig one together. It’s (mostly) working now, the bot is active as triviastorm on Twitter, with a supporting webapp deployed on http://trivia.roytang.net/. The bot tweets out a trivia question once every hour. It will then award points to the first five people who gave the correct answer.
There’s this well-known idea that it takes ten thousand hours of practice to become an expert in something. But of course, it has to be ten thousand meaningful hours of practice. Meaningful here means that you are actually learning something from your practice. If you are repeating the same hour ten thousand times, that’s not worth very much. Instead, we should be actively learning while we practice. This means identifying our weak points and learning how we can improve.
After Hearthstone, I tried out a couple of other digital CCGs: Spellweaver and Eternal, but neither one hooked me. The one I enjoyed the most and did pick up to play regularly was Duelyst. So this review is written from the perspective of someone who has played both Magic the Gathering (MTG) and Hearthstone (HS). Hearthstone, Spellweaver and Eternal played like digital MTG with some advantages, as I outlined in the HS post linked above.
There are a few things that one should consider when using and integrating an open source library into your application: What are the licensing terms for the library? There are some liberal licenses that mostly let you do anything you want. The MIT license is an example of a very permissive license. Other licenses may provide a number of restrictions. Can you integrate with closed-source software? Can you distribute binaries without the source?
As of today, our country (The #Blessed Republic of the Philippines) is already at war with: Drugs Illegal gambling Communist rebels Some other things we might consider declaring war on (in no particular order): Poverty Ignorance Misinformation (sorry, “Alternative facts”) Abusive government officials Traffic Rights abuses Pollution High power rates Political dynasties Poor quality of local cinema offerings Politicians putting their names everywhere Internet trolls and bullies Lack of critical thinking Redundancy Overtime without overtime pay Government officials blatantly lying or pulling statistics out of thin air Slow and expensive internet The MRT breaking down Cruelty to animals Poor quality of local anti-piracy ads Jejespeak SMS spam Typhoons Taxis that don’t give exact change War Irony Spoilers Pineapples on pizza Poor grammar and/or spelling Hashtags Hypocrisy Multi-level marketing Working at “Edi sa puso mo” Redundancy Low effort blog posts that start out serious but end up trying a bit too hard to be funny People who don’t understand sarcasm People who stand in malls and shove fliers in your face Commenting on posts without reading the actual article Lists that end abruptly at weird numbers so you’re not sure if there’s more or what
Back when I was starting out as a software developer, webapps weren’t really a thing. Not as much as they are now anyway. My company provided training to new hires, but I didn’t get any web development training at the time, even though they already had a few web development projects in play at the time. Instead my initial training involved mostly development of so-called client-server software. This was software that was installed and run on the client machine but they would connect to a remote database server.
Old gamer rants follow. Gaming has changed a lot over the years. For one thing, there’s the internet now. If you got stuck in a game, you just head on over to GameFAQs or some other site and someone on the message boards will tell you how to get unstuck. Or you can even watch Youtube videos on how to do it! (Side note: I dislike having to watch Youtube videos to figure stuff out.