A word on criticisms

Firstly: criticisms must be critical. That is, they must express some level of analysis of the work in question. It is insufficient to say that a work is bad. That is just a disapproval, not a criticism. You must say why you think it is bad, or point out what could be changed about it that would make it less bad.

Good criticisms can make people feel bad, but they add something more important to the picture: information that can prevent that from happening again. A criticism that doesn't do that is just noise. It doesn't help the other person create a better work. It simply pollutes the air with emotional baggage and makes it harder to get to more relevant data. Data that you can use to help you become better.

It takes every effort of will to learn to distinguish disapproval from criticism, both in its reception and in its delivery.

Take that effort. Learn it, practice it, and master it. The very least it will do for you is that the active analysis of verbal "attacks" for usable content takes so much of your attention that you have no time to actually feel the sting of insults, the most of which are really just pointless, noisy breaths that are gone in an instant. And when you get better at it, it almost gets funny.


more...

Loopholes

I haven't actually watched the Ring. I do, however, know the basic premise via cultural osmosis: if you watch the cursed video, Sadako will get you in 7 days unless you show the video to someone else.

/img/2012/05/09/tape-play-me-320.jpg

This doesn't look suspicious at all. (source [1])

I've been thinking about this quite a bit recently, partly because the shadows in my neighbor's curtains sorta kinda look like a Sadako looking out, and partly because I love to poke at and explore the technicalities of completely useless trivia.

So here goes: what happens to the curse if you watch not one, but 100 Sadako videos at the same time? Do you get 100 Sadakos after 7 days, or do you get one Sadako after 700 days?


more...

PDFize: an app for testing TCPDF performance

One of the most common requests with a web-based app is to build a report form that outputs to PDF, which, in my opinion, is the paper accounting universe's equivalent of software patents: an inevitably deprecated practice forcing the new media to behave like the old to keep itself relevant [1]. But it's there, and people request it, and people pay good money for it, so you might as well slap in an ad-hoc HTML to PDF converter to change your pretty web forms into a "printable" format [2].


more...

Starting off strong, finishing weak

What is this pop culture BS about counting off starting with the thumb?

/img/2012/02/20/640px-Jean-Leon_Gerome_Pollice_Verso.jpg

I disapprove of this nonsense. (source [1])

Think about it for a second. Your index finger is not aligned with the thumb, and being longer, is much more prominent and attention-grabbing. This means that the number 2, when done using the index and the thumb, doesn't look very different from the number 1 done with just the index, or from the pointing gesture. Ditto with numbers 3 and 4 - there is a good chance of the numbers being misread by an offset of 1.

In short, a classic UI mistake.


more...

Cracked photoplasty: 23 popular websites, 10 years from now

About a couple weeks ago, I submitted an entry into a cracked.com photoplasty contest: 23 popular websites, 10 years from now. While I didn't win, I did make 10th place, and a huge load of an ego trip. w00t!

This is actually something of a big deal for me, since I'm a regular reader (and watcher) of cracked stuff. Getting one of your works featured at a site you really love going to is completely different from winning some random contest that you just joined for the money. Besides, that joke has been hanging around in my head for ages now, just waiting to be made. The commenters treated it pretty kindly too, which is good.

Here's my entry:

Has the large hadron collider destroyed the world yet? Yep.
more...

A fool and a simpleton

A fool and a simpleton met on a road
(it was hard to tell which was which)
The fool told a story the simpleton knew:
The fool and the simpleton switched.

If Santa had a Twitter

If Santa had a Twitter, would he update every house?
Every present, every person, every parent, child, and spouse?
Or if he had a Twitter, would he keep things under wraps?
Would you never hear him coming till his sleigh had gone and passed?

more...

Deleted, Inserted elements in reStructuredText

rst

I guess one of the dangerous things about mucking around with really fundamental ideas is that you're mucking around with really powerful ideas, and it's hard to estimate exactly where you're headed with something like that. One day you think you're writing some text processing utilities, next thing you know they've all sort of merged together into some kind of obscure operating system.

reStructuredText is simply supposed to be a text representation of a document using human-readable markup. Unfortunately, there are some missing elements here and there that would really help to round out the whole thing. If you're interested in writing meaningful plaintext, then you're going to have to write the relevant extensions yourself.


more...

Pyblosxom plugin: comments_time

I was busy customizing a few emacs files, specifically, mucking around with ERC's chatlog history, when I came across an old Q and A I had with Will Kahn-Green regarding some template variables. I then remembered the reason why I was asking those questions: I was already mucking around with Pyblosxom plugins back then.

So whoops, my bad. Turns out rst_youtube was my third rather than second Pyblosxom plugin. I just completely forgot about the one I wrote back then because it was really so trivial [1].


more...

Pyblosxom plugin: rst_youtube

While in the process of writing an article (trying to get something distracting off my chest), I found that I wanted to embed a youtube video into it. Now, I write my articles in reStructuredText, and a quick google search showed that there wasn't a native directive for embedding foreign objects. Uh-oh.

And on second thought, even if there was, it wouldn't be semantic, would it, to have some snippet saying <object $(gibberish) /> in my plaintext?


more...

kurochan

I just bought an android tablet, the Samsung Galaxy Tab 10.1, from an online trading site. I am naming it kurochan, after the anime cat.

kurochan relaxing:

/img/2011/12/13/kurochan-manga-sitting-320.jpg /img/2011/12/13/kurochan-tablet-sitting-480.jpg
more...

Surreal

She laughed and said "you're poem's surreal"
And I replied you cannot spell,
The you're you placed was in poor taste:
apostrophe, possessive case.
"Well yeah? Well you can't write quotations,
diatribes or recitations.
You firstly put the quotes all wrong.
and something-something,", shook her thong.
but I said "whats your problem, momma,
at least I use the Oxford comma."
And she said back, in opposition,
OC prick!, an apposition.
Well what's important is the feeling!
(by now, her underwear was peeling)
and I'm not sure who's saying what,
but damn! you have a pretty butt.
To more confuse the situation:
we just ran out of punctuations
our train of thought and metaphors
were sinking in the fog of war
heck even our rhymes were hit
and the rhythm went to shit
Im not quiet sure i can still spell
theirs a special hell waiting for me
where the bard himself will write whole plays insulting
the epic catastrophes of poetry
we never wrote down
between our private playful pealing breaths
and secret slutty sinful bets
and everything she made me feel?
it's not my poems that were surreal.

A Traveller's Heart

Whenever a traveller's heart you wear,
the most menial of errands is a wonder to bear.
But the finest of views at the grandest hotel,
a prisoner's heart can turn to a cell.

A web server in bash (part 1)

Enough with the boring stuff. Let's write a webserver.


more...

PyBlosxom plugin: hide_future_mtime

One thing some bloggers tend to do is write articles meant to be published on some future date. Before the desired date, the blog hides the article, after the desired date, the blog shows it. That makes it convenient to prepare for "timely" pieces such as Christmas and Valentines well in advance, or otherwise just to make sure there's a healthy pipeline of new stuff.

A similar feature has been requested on the PyBlosxom mailing list before, and there's been talks planning to integrate such a feature into the core. However, as of 1.5rc3, it's not there yet, and you'll have to rely on a plugin to get it done.

Here is my first attempt to write a PyBlosxom plugin, meant to scratch my own itch. It removes articles from the listing whose published date is later than the present date.

Learn Vim

You might have seen this image floating around on the net:

/img/2011/09/06/code-editor-learning-curves-negative.jpg

(source [1])

Now it's no secret that I'm a big Emacs fan, and if you've been around on the net long enough you might have heard that there's a big Holy War going on between us righteous defenders of Good and the evil invaders from Vimland. If nobody has yet attempted to recruit you into this Holy War, it's only because you are too young or harmless to be perceived as a threat.

Be harmless no more. Much as it will pain you to try, you must at least learn Vim. And perhaps, one day, when you are ready, you will try to learn Emacs.


more...

Style change: DejaVu Sans Mono

Just changed my default font from the generic monospace to the DejaVu Sans Mono font. Now my blog can look even more like my Emacs session, and is much easier to read. Yay!

Without DejaVu, the font style falls back to Bitstream Vera Sans Mono (which the DejaVu family was based on), then Lucida Console (the current Sans Mono windows font), Andale Mono (the previous Sans Mono windows font), then, in order, the generic Sans Mono and Sans fonts.

I like monospace fonts. They leave a lot of room around each letter, resulting in widely spaced text that has less eye strain. The default monospace font, however, has somewhat thin stems, likely because the serifs in the characters eat up a lot of room. Fortunately, Sans Mono fonts take care of that relatively well.

Oh, and check this out: 1 and l. O and 0.

Neat, huh?

Admit Ignorance Early

Admit ignorance early. Admit ignorance often.

One of the things that baffles me is the fact that people often call me smart. It's flattering, and perhaps statistically correct, but the thing is, they often say that before I've had any chance to display just how wrong they are. I honestly think it's the glasses.

The surprising thing is that, in an average conversation, I typically say "I don't know," or some variation of it, a lot more often than most people I talk to. Actually, it's relatively rare for me to hear variations of "I don't know" from other people, but I hear my admissions of ignorance so often that I hear my own voice tone as a mannerism to poke fun at. So the question is, if I'm so ignorant, then why don't others think that so as well?

The answer, I think, has to do with how people remember dead ends.


more...

UnPLUG LPIC Training Series

I'm currently (as of 2011-09-01) title [1] to an LPI Level 2 Certification. I'm also studying for the Level 3 Certifications which I'll be taking later this month. The IOSN is ordering the exams in bulk to take advantage of a group discount, so I'll be taking my exams at the same time as a batch of L1 and L2 takers as well. Some of them are from my org, UnPLUG, and I'm helping them out with exam reviews. I'll be posting our review notes here for reference.


more...

The LPIC exam

Before you dive into an LPIC exam study, first you might want to consider what you're studying for. Specifically, I want to talk about what the LPI is, what their goals are, and what kind of person should be expected to easily pass their exam. And not that I want you to try and game their system, but let's talk about some of the biases that you should expect to find from the LPIC exam in particular and how you might orient yourself to be a better sysad in spite of them.


more...

Blogging as yourself

What is a blog? Why blog? Why this blog?

A blog is a form of two-way communal communication initiated by essays published at large on the Internet, primarily serving the dual purposes of socialization and expression. Socialization, in the sense that the blog helps to shape a picture of a social role in the eyes of the readers, and performs functions that the readers expect of that social role. As a form of socialization, blogging is a form of introspectively analytical social lubricant: the writer voluntarily presents more information about himself than can normally be solicited through conversation, and so the readers become better informed on how to understand and deal with the writer. On the other hand, as a form of expression, bloggers communicate their ideas and attitudes towards various topics, and the ideas, attitudes, topics, and their treatment becomes one of the main driving forces behind the blog.

Imagine a spectrum of "artistic utility" spread out on a line. On the one extreme of the spectrum, there is art for arts' sake (bohemianism), and on the other extreme of the spectrum, there is expression as a social utility (didacticism / functionalism). Writings in the domain of blogging material tend to fall in various places within that spectrum. On the bohemian side of the spectrum would be public postings of poems, fiction, narratives, and meta-works, that are meant to communicate an intrinsic value in their craftsmanship, formation, treatment, or even publication. On the functional side of the spectrum would be howtos, guides, journal entries, and reports, that are meant to communicate useful information and inform, convince, or otherwise affect the readers in some practical sense.


more...

Association: UnPLUG

I claim membership of the University of the Philippines Linux Users' Group, also known as UnPLUG.

I officially joined the group around 2006, although I was friends with several founding / active members since 2002.

A PyBlosxom-based blog

This blog is powered by PyBlosxom.

I've been wanting to get started blogging for a long time, but I've always found some excuse to keep it in the back burner. One of the most convincing ones I'd used was that I couldn't make up my mind on what blogging platform to use. In fact, I was 3/4ths of the way through planning a blog focusing on the topic of evaluating and testing blogging systems when I realized that I wanted to use PyBlosxom.


more...