When you’re young and in school memorizing math formulas or history dates or whatnot, all of it seems so silly and you wonder if you’re really going to be using all of this knowledge in real life. However, the intent of a general education program isn’t specifically to give you knowledge that will be useful to you in the future (although it may turn out to be so) The stuff school teaches you – literature, mathematics, art, history, science, and so on – are intended to give you a broad enough base from which you can freely choose the direction you want to go in life.
If you follow me on Facebook or Twitter, you’ll know I have a tendency to be pretty vocal about any problems I have with our country’s erstwhile leadership. But for the most part I’ve restricted it to those channels and have tried to avoid posting about current events in the country on this blog (outside of my personal choices for the election), but I feel that now more than ever those of us who can speak out have a responsibility to do so whenever we can, for several reasons
I like to say that software development is a challenging career because no two projects are ever the same and there are always new challenges to face and new concepts to learn, but the truth of the matter is a bit more complex. Writing software is about breaking down large problems into a series of very small technical problems for which we already have solutions. Examples of small enough technical problems include list sorting, comparison, arithmetic operations, path traversal, string concatenation, returning a string as an HTTP response, rendering text to the screen, retrieving submitted parameters from an HTTP request, and so on.
No, not that kind of history, don’t worry. Twenty-five years ago this month, the first website went up on the world wide web. That was 1991. It took a few years for the Philippines to catch on, the first internet connection in the country was only set up in 1994. My personal experience with the internet came a bit later, during our freshman year in University, sometime in the schoolyear 1995-1996.
So, Stranger Things It’s true, it’s great. I thought it might be overhyped, but it’s not. And I can see why people find it hard to explain without spoiling things. It’s about strange things happening in a small town. Creepy things. It’s a mystery. It’s suspense. It’s not a jump-scare sort of thing if you’re not into that. Well, there’s maybe a little bit of jump scares. The best description I’d say it’s about as scary as an X-Files or Doctor Who episode.
I was originally going to write a post about the problems development teams face as they get larger, but the section on development standards was long enough by itself so here we are. Having some sort of development standard in a project development team becomes a lot more important as project size goes up (for obvious reasons). There are different kinds of standards to consider, but generally I break them down into design standards and coding standards.
Thirty eight lessons I’ve learned through the years, in no particular order: Do not be beguiled by pretty things; not all that glitters is gold Remain true to yourself in the face of adversity You can’t help people who aren’t willing to change People will believe what they want to believe You don’t have to do what everybody else does Happiness often comes from small things Be thankful for what you have and appreciate the people who are there for you Other people think about you a lot less than you think Time you enjoy wasting isn’t wasted time Spend some time alone with your thoughts regularly; solitude has its benefits In most situations, a balanced approach will serve you well.
Pros: It is a very rewarding career financially. Software development often ranks in the top 10 highest-earning careers in most countries There is a lot of scope – you could be developing web applications, mobile applications, embedded applications, client-side, server-side, data analysis, artificial intelligence, games, etc It is very difficult to be bored. You can always automate away the boring stuff. Different projects always present different challenges. The field is evolving rapidly so there are always new things to learn.
Motivation is a fickle mistress. It comes and it goes. It’s easily distracted. It can vanish in a blink of an eye. When it’s there, it’s great, but when it’s not you don’t get anything done and you don’t feel terrible. Motivation is based on the principle that you need a certain emotion or state of mind to get things done. Motivation is burst damage, you can get a lot done but you don’t know when it’s gonna come out.
Evaluation of programmer performance is notoriously hard. You want to be accurate and at the same time fair such that all programmers on your staff are evaluated in the same matter. However, there are no good, objective, universally accepted standard metrics. It follows from the fact that there are no good, objective, universally accepted standard metrics for program size. Typically each programmer in a team will not be doing the same task or even the same type of task, so in order to produce fair evaluations you will need some standard metric of program size to normalize any evaluation.
When blogging and social media started to explode in popularity, it held a great promise: it would give a voice to the masses. Where previously there were gatekeepers in traditional media channels who controlled whose opinions could be published or broadcast, the internet meant that anyone with an internet connection could publish and voice out their thoughts and people would be all smart and there would be lots of intelligent discussion and it would be great.
****Since I wasn’t a graduate of computer science, there were many concepts of software development I really only got exposed to when I started working. One of those was the concept of a relational database, and hence SQL. The company I worked at gave all new hires a training regimen that started with about a week of SQL. Despite not knowing anything about it beforehand, I took to it like a mouse takes to cheese.
I found this draft blog post that I had written back in 2010. I’m not sure why I never published it, though it does end on a dire note and seems a bit incomplete. Perhaps I had some further thoughts percolating in my brain back then that never came forward. I am also not sure if I wrote this before reading about The Great Filter. I figured I’d just publish it now without further comment:
I never really put much stock in certifications. I felt that they were no guarantee of knowledge or expertise, and that many people who did have knowledge or expertise wouldn’t necessarily have a certification to say so. Add to that it often seem overpriced to even apply for the certifications, so I didn’t have a high opinion of them. That being said, I have had the opportunity to take professional certification exams twice in my life (both luckily paid for by my employer at that time).
During my the first semester of my second year in University, I failed four out of five classes I was taking due to slacking off a lot. Those same classes were only available during the first semester of each year, which meant I could not retake them during the second semester or over the summer to catch up. So effectively, I had fallen one year behind everyone I knew. When I got the news, it was devastating.
A friend of mine had an informal consultation with me the other day (read: asked me questions over FB messenger) about what their IT staff was telling them about a file upload vulnerability that had been recently exploited in one of their applications. Obviously it was difficult for me to judge given that I didn’t know all the details, but for me it was most likely a vulnerability introduced in the application code itself.
During my adult life, I’ve tried to learn or at least expose myself to one new skill or programming language every year. For example, over the past year or so I’ve been studying, dabbling, or trying out the following: game development using Unity, technical analysis of stocks, Spanish, driving a car, and even some simple cooking! I’ve also been regularly practicing to improve my skills in writing and sketching. I probably even forgot a few things I’ve tried to learn.
Some time ago, one of my many intrepid followers pointed out that this blog tested poorly on web page performance according to this Speed Testing Tool. Now, I’m of the opinion that for a personal blog such as this, web performance isn’t really a mission-critical sort of thing, but as a software developer who has often had to work hard to optimize the web applications we delivered to our clients, it kind of became a matter of pride :pUnacceptable!
I read an article recently about how we should encourage entrepreneurial spirit in kids from a very young age. It made think of a time when we were kids and we tried running a business It was a summer from years ago. Perhaps 1988 or 1989, or maybe a year or two earlier, I can’t be sure. I was young, my brother was younger by a few years, my female cousin older by a few years.
I had my first taste with working with software testers during my first project where I was involved with porting an old system to a new version of the software. My first task involved porting reports which were to be generated by the users then printed out. The task wasn’t too difficult: basically you took the source code of the report (it was some weird binary format recognized only by the particular reporting tool – that was how it was done back in the day) and open it using the newer version of the tool, and the tool did some sort of migration magic to adapt it to the new format, then you just save it back again.
Grammar note: “Biased” is an adjective. “Bias” is a noun. It is not appropriate to say that a person or an entity “is bias”. Unless you are talking to like a prejudice elemental or something (takes note of that for hypothetical hipster RPG) In a (long-winded) discussion during the recent election period, someone told me that I “obviously had a bias” and my answer was “Of course I do! Everyone does!
In the modern era of online services and applications, it is getting more and more common to hear of databases and systems being hacked and user data being exposed. The most dangerous of this data is the user’s password since it may allow access not only to your own service but to other services as well. As an application developer, the below is probably the bare minimum you need to know when handling user passwords:
Around the first week of June 2016, Mark Zuckerberg, well-known nerd and founder of Facebook, was hacked. If even the founder of the world’s largest social network can be hacked, anybody can! So it might be a good idea to review how you manage and secure your online passwords Avoid using short, simple, or commonly-used passwords! These are subject to so-called “brute force” attacks where bad actors just try a whole lot of passwords until they find one that works.
More stories from the early days. Evaluating someone’s programming ability is hard, especially someone fresh out of college. A student’s grades is in no way indicative of how well he can program after all. So most nontrivial programming jobs have some sort of complicated application process involved. I remember going in and taking an exam. Most application processes will have some sort of written exam to filter out people who look good on paper, but can’t actually do anything.
“Do you know what’s there, waiting beyond that beach? Immortality! Take it! It’s yours!” – Achilles, Troy Each person has a different view of what their life’s purpose is, but I’ve found more often than not it relates to some form of immortality. Usually that means leaving something behind, some trace of yourself so that the world remembers you, something that says “I was here, I existed.” For many people that means offspring, for others it may mean some other legacy: children taught, people helped, ideas expounded, inventions created, companies founded, and so on
Totally different yo I am of course a long-time Magic the Gathering player. Over the past year or so I’ve also been playing Blizzard’s digital CCG Hearthstone (limiting myself to free to play since who has money to spend on two CCGs?) and I’ve been thinking about the design parallels and differences between the two. If you’re a Hearthstone player, you’ve probably read a lot of these things before, since many well-known pros play both MTG and HS.
A while back I answered a question over on Quora about how I got started down the path of programming. It’s not a particularly interesting story, but I still thought I’d record it here for posterity. Sometime when I was much younger, maybe somewhere between twelve to fourteen years old, I remember having some sort of QBasic programming learning book at home. I forget how we got it, I think my uncle brought it home for me sometime for some reason.
Relevant XKCD: Sometimes I have this inexplicable urge to argue with people. With recent events I’ve found myself getting into more discussions, debates and otherwise friendly arguments online. The quality of these interactions hasn’t always been the best, and many times I feel like I should have stopped engaging sooner or maybe not participated at all. I’ve considered some points to help me decide in the future whether to bother engaging other people online.
"Everyone knows the third movie is always the worst" -- Jean still too much focus on Jennifer Lawrence/Mystique some great soundtrack choices Quicksilver scene maybe just a tiny bit too long. Tradition of defying the rules of physics continues (I hope someone does the math on how fast he was probably moving) nice 80s wardrobe lol not particularly faithful to the source material plot is all over the place, a lot of WTF moments here and there.
Or “How Did A Ceramic Pot End Up In Stellar Orbit”? Stellaris is a 4x space strategy game available on Steam. The game is created by Paradox, well-known for a number of other grand strategy games mostly with a historical basis such as Crusader Kings. I’ve owned Crusader Kings II for a while now but never got into it too deeply because (a) it’s just a bit too overwhelming; and (b) I find the combat way too obtruse.
“The price for being the best is always having to be the best”
We shouldn’t have to keep telling people that Ferdinand Marcos was a terrible president and that the Martial Law he imposed was terrible for the country. Imagine if a significant percentage of German citizens kept insisting that Hitler was a great man and the more sensible Germans had to keep trying to educate them on why that wasn’t true and why World War II was a terrible idea and that they wanted to elect Hitler’s descendant to a position of national prominence.
This has been one of the most divisive and shenanigan-filled election campaign seasons ever, and politics is normally crazy in this country so that’s saying something. There’s a strong use of social media this time around, and it’s led to the internet being a hotbed of opinions and propaganda and memes and lies and half-truths and threats of violence. I was hoping greater citizen involvement via social media and the debates would mean citizens have more information and thus would get to be more discerning, but it seems that things have only gotten worse.
I’ve had a bit more free time recently, and I’ve been filling that time by starting up some hobbies (some old, some new). One of them has been sketching. I’ve been drawing things for as long as I remember – I have elementary and high school notebooks with more doodles and x-men drawings than there are notes. And even at work, I often find other meeting participants checking out the random sketches I had been absently doing while other people were speaking.
(Originally posted on Facebook) Heaven knows we are in need of some serious income tax reform, and the government needs to work a lot on efficient utilization of the revenue they do earn, so of course when I first saw the image below like any middle-class Filipino I found it a bit enraging. But then I thought to myself: if Singapore has such low taxes, where does the government get their operating budget from?
As I write this I am at the airport, trying to kill time. As per usual, I am more than an hour early before the check-in time for my flight. It’s a thing I do, no matter where I’m travelling, that I put in lots of buffer time so I will more often than not arrive way too early and need to wait. It’s not just for flights either – I have a tendency to arrive early for any sort of time sensitive appointment.
I was sent to London for work for a few months, which meant an opportunity to play a third GP for the year after Manila back in January and Singapore back in June. This will be the most GP events I’ve played in a one year period. I didn’t have time to practice, so I went with an updated version of the Jeskai tempo deck I was playing at the start of Khans rotation.
I like to be optimistic, or at least to try to. And to believe the best of people, or at least try to. It’s not always easy. Sometimes people disappoint you. Sometimes you feel lost. Or stressed. Or stuck in a rut. And you don’t know what to do. You have to be able to look within yourself to find your own drive, to find the ability to move forward in spite of the tough times.
GP Singapore 2015 would be my first Modern GP and maybe only my 3rd or 4th Modern event altogether. Modern is a difficult format to prepare for; there are many decks to prepare for and it’s almost impossible to master all the matchups. For this reason, I felt much less prepared for this event than for GP Manila back in January. I put together Grixis Twin for this event. It’s a bit difficult to pilot, but I felt it had a reasonable matchup across the board and there’s always a chance of comboing out when you’re falling behind.
Previously: Overview | Barcelona Part 1 | Barcelona Part 2 | Rome and Vatican City | Rome Part 2 and Paris Part 1 This series of posts has taken longer than I thought it would, and I grow weary on it. We’ll cover things a bit faster from here, less of the daily stuff and we’ll stick to the highlights. This will be the final entry! Sunday March 15th This Sunday we took a long walk to visit the famous Louvre museum (why go to Paris and not see the Louvre).
Previously: Overview | Barcelona Part 1 | Barcelona Part 2 | Rome and Vatican City Friday March 13th This was our last day in Rome and we were planning to visit the Colosseum and the nearby Palatino Hill. It was a long walk and we passed by a few palaces and the usual open plazas, many of the landmarks identified by Egpytian obelisks placed there by the Roman emperors. Rome is chock-full of cobblestone roads and plazas lined with souvenir shops and pizzerias and buildings fronted by 12-foot-high steel doors with large lion-head knockers and churches liberally sprinkled every other block.
Previously: Overview | Barcelona Part 1 | Barcelona Part 2 Wednesday March 11th It’s early in the morning when the shuttle picks us up to take us to the airport for our flight to Rome. When we first planned the trip a few months back, only Spain and France were on the itinerary. But due to a last-minute change in circumstances, we decided to add Italy to the trip. We had also acquired a railpass and were planning to travel by train between Spain and France, but given the change of plans we decided to refund the railpass (up to 85% of the cost can be refunded) and we literally booked inter-Europe flights during our layover in Singapore at the start of the trip.
Previously: I went to Europe, decided I should tell you more about it and started talking about Barcelona Monday March 9th For today, we had decided to visit Park Güell, a Barcelona tourist spot created by this old-timey big shot to display the works of well-known Catalanion architect Antoni Gaudi. I say “well-known” but I’ll be the first to admit that my culturally-ignorant self had not heard of him before, but he’s kind of a big deal in Barcelona with many souvenir shops sporting some thing reminiscent of his works.
My previous post only skimmed my trip to Europe. I did not want to write too much, partly because I was uncertain at how many would be interested to hear the sordid details and partly because while I was writing the post, the words did not flow as freely as I would have wanted. Despite this, I have received good feedback and more than one person had asked for more details.
My friends know how stingy I am with money, and my family knows I’m not much of a tourist, so some might have been surprised that I took the better part of two and a half weeks off from work to travel around Europe with a couple of friends. It was my first trip outside of Southeast Asia and the first time I took a long haul flight. Other than my concerns regarding the possibility of my luggage getting lost, the trip was relatively smooth and the Singapore Airlines plane had relatively decent food, service and in-flight entertainment.
One of my many, many loyal blog readers pointed out to me that I had yet to post about Grand Prix Manila, which took place in the first week of this year. I’ve been meaning to post about it, but it got lost in my backlog. So here we are. Yes indeed, I still play Magic, “on and off”, as it happens with most Magic players with busy lives and/or multiple other hobbies.
Globe’s Spam Reports Policy A few days ago I got dragged into a debate over Twitter regarding Globe’s policy on handling reports sent in via Twitter about spam/scam text messages. When you send in reports of text spams via Twitter, one of Globe’s representatives will ask you to agree that in case the spammer disputes the allegation, they would have to disclose your mobile number to them. For me, the policy seems completely reasonable: if you accuse someone of a crime, they should have a right to know what exactly they are accused of and who exactly the victim was.
Thirty-six is a semiperfect number, meaning it is the sum of some subsets of its natural divisors. Like thirty-six, life isn’t perfect either. But there’s still much to be thankful for. I am grateful that I have a roof over my head and am able to eat at least three square meals a day (if I so choose). I am grateful that I have wonderful parents and siblings who are always ready to support me no matter what shenanigans I get into.
Well, I haven’t written anything in a while, so I figured I’d write some words on the new Spider-Man movie. Spoilers abound! Action-packed! The web-swinging is fun and looks and feels just like Spidey from the comic books. Spider-man moves and fights and banters pretty faithfully to the comic book version of our favorite wall-crawler, so that’s a definite plus. Peter’s Spider-sense is portrayed as a slow-motion bullet-time kind of deal which allows him to react quickly and save all the people while dodging everything.