Pesimisti ir vislaimīgākie

•2008-11-11 • Leave a Comment

Vai vismaz viņiem tādiem vajadzētu būt. :) Pārfrāzējot cilvēku, kura vārdu esmu pazaudējis:

Pesimistiem vienmēr vai nu ir taisnība, vai arī patīkams pārsteigums.

Jeb, kā teica cits cilvēks (Berijs Švarcs savā prezentācijā):

The secret to happines is this — low expectations.

A different POV

•2008-10-19 • 2 Comments

I have a tendency to try to take a look at the basic essence, the core of things that have too much furnishing or are presented/supposed to be perceived in a specific way (think politic/patriotic/religious speeches that don’t say anything). If this does not make sense to you, it’s because I’m not good with generalizations. So let’s dive into example right away.

Recently I had a listen of Katie Melua’s Nine Million Bicycles. It’s a great song, and I like it, just in case anyone gets the wrong idea. However, when you take a look at the lyrics in a simple, uncomplicated way (as opposed to juxtaposition of a trivial idea (“Nine Million Bicycles”) against an important idea (“I will love you till I die”)), a different picture appears.

Let’s put down some basics — every song is either a) a text that conveys a message or b) a barely sensical or nonsensical poetry, meant to create images or feelings within the listener, without having a literal meaning. Nine Million Bicycles is the A, I would think obviously. Now, take away the music, and you’re left with a text that can be read either as a monologue or a dialog. I’ll do the dialog, and here’s what comes out (with a few surrogate words added to make it sound more prose-like). For better effect, imagine KL flipping through a “100 things you didn’t know” or something similar.

Katie’s Love(r): Huh, it says here there’re 9 million bicycles in Beijing. It’s a proven fact!
Katie: Like the fact that I will love you ’till I die!
KL: OK, I love you too, hon. But listen, it seems the universe started about 12 billion years ago, though they don’t know it for certain [this is actually an error, see the Wikipedia link]…
K: But I know that I will always be with you!
KL: How can you be so sure?
K: So don’t call me a liar, just believe everything that I say! [sic]
KL: OK, I won’t. Imagine, there are more than 6 billion people in the world…! Doesn’t that make you feel small and insignificant?
K: But you’re the one I love the most of all!

I think Kate Nash said it (sarcastically) in another song: Intelligent input, darling. The reason I chose to go with the dialog is because if you look at it as a monologue, you’ve got one schizophrenic Katie on your hands, and I don’t want to be harsh. :D

This might not be the best example, but it’s a nice one. I still enjoy the song, even more so than before I realized this, as now I can have 2 songs instead of one — a romantic juxtaposition (I don’t know why, but the word just seems funny to me. :D) or a humorous account of a crazy/schizo girlfriend. I feel enriched. :D

Another good example of what I’m talking about is found at beatriche’s blog. I’ll give the detailed translation here, as the short version seemed to piss people off. :)

A farmer, a hunter, a soldier, a reporter, even a philosopher, may be daunted; but nothing can deter a poet,. Ever heard of writer’s block?
for he is actuated by pure love. I’ll take that sentence as more than just smoke when someone gives me the one true definition for love. Otherwise it’s something so subjective and variable, it can be easily substituted with just about anything equally ethereal, say “God”, “Soul”, “World”, “Beauty”, etc.
Who can predict his comings and goings? That’s a “do/work when, where and how much or little I please” right there.
His business calls him out at all hours, even when doctors sleep. Unlike, say, police or firemen? And, ironically, emergency medics.

“Just works” skepticism

•2008-10-15 • 4 Comments

I have an almost reflex-like skepticism to anything that is advertised along the lines of “just plug it in, and it works; no tweaking or understanding is required”. Here’s why:

In 9 out of 10 cases, the main difference between something that “just works” and something that has to be configured to work, is that when the thing that “just works” stops working, it’s impossible to tweak it to make it work again.

This is why I’m skeptical to Apple products (please note that skepticism does not mean I don’t believe it could work just perfectly), religion, and generally anything that does not come with an options/configuration/settings menu that has enough entries for every person in the world.

And yes, I know I’m paraphrasing Douglas Adams.

A moment of deep, true DUH

•2008-09-23 • Leave a Comment

(I sometimes get those. :) )

Social networks are for spying on people! >:D

Google Chrome “under the hood” connections

•2008-09-07 • 1 Comment

I’ve heard a few people complain about Google Chrome “calling home” during browsing. So I grabbed the latest Fiddler and set out to explore. I’m by no means a security expert, but here’s what I’ve found.

First of all, every request sent to Google contains two unknown values (cookies). I guess these are what has some people worried most, so we’ll start with them.

  • NID, which is a long list of apparently jumbled characters, and it is the identification of your Google Account. This is every paranoid’s red flag, if you do not want Google to know what you’ve done, do not log in. However, it is worth mentioning that every browser that uses Google’s phishing database, which also includes Opera & Firefox, does the same thing, so if you’re logged into Google from any of these browsers, Google probably knows most of what you’ve done online.
  • PREF, which looks something like FF=1:LD=en:NR=20:CR=4:TM=2440682586:LM=7854321690:S=ajJRL9dTY2PKmr51. This appears to be the cookie that saves your Google searching preferences, like language, content filter, etc. It gets set and is sent to Google every time you visit any of their pages in any browser, so there’s nothing special about the same thing happening with Google Chrome.

And now for the actual requests themselves.

  • Whenever you pause while entering something in the address bar, Google starts a background Google search using what you’ve written as keywords. For example, I typed “jonathancoulton.com”, pausing after “jonathan”. Chrome made two background requests:
    GET /complete/search?client=chrome&output=chrome&hl=en-US&q=jonathan HTTP/1.1
    and
    GET /complete/search?client=chrome&output=chrome&hl=en-US&q=jonathancoulton.com HTTP/1.1
    The reply to the first one was:
    ["jonathan",["http://www.cainer.com/","jonathan cainer","jonathan rhys meyers","jonathan brandis"],["Jonathan Cainer's Zodiac Forecasts","57,800 results","1,700,000 results","209,000 results"],[],{"google:suggesttype":["NAVIGATION","QUERY","QUERY","QUERY"]}]
    Similar but with less elements was the second reply.
  • From time to time, Google Chrome makes a background HTTPS request to a Google toolbar server. No data is sent however:
    CONNECT toolbarqueries.google.com:443 HTTP/1.0
    Host: toolbarqueries.google.com:443
    Content-Length: 0
    Proxy-Connection: Keep-Alive

    That is the full request. The reply is equally plain, containing nothing but properties for SSL connection and certificates. I’m fairly certain this is just some sort of HTTP ping to check if the server is up. Maybe if I had Google Toolbar installed, there would be some data in there, but Chrome itself sends and receives nothing.
  • And then there’s the phishing site lookup, the same that’s done by Opera & Firefox. The request to static.cache.l.google.com looks something like this:
    GET /safebrowsing/rd/goog-malware-shavar_a_6186-6190:6186-6188 HTTP/1.1
    and the reply is equally unimpressive:
    HTTP/1.1 200 OK
    Cache-Control: public,max-age=21600
    Content-Type: application/vnd.google.safebrowsing-chunk
    Date: Sun, 07 Sep 2008 10:36:13 GMT
    Server: HTTP server (unknown)
    Content-Length: 1009 

    a:6186:4:5
    �h�

So that’s about it. If you really don’t like Google knowing what you’ve searched for (linking it to your Google account), then you shouldn’t have gotten a Google account in the first place, now should you? :) But eh, a simple client-side proxy (like the aforementioned Privoxy) is your friend, though if you’re paranoid enough to use it that way, you probably already have it on, cookies turned off and are standing on a street corner with a cardboard sign trying to convince people to treat Google as a government aided alien invasion. :)

Labs darbs, kas padarīts

•2008-09-06 • 5 Comments

Ja es to būtu darījis kādā veselīgākā stundā, tad droši vien būtu sanācis ātrāk, bet fuck it. Mazliet čakara, mazliet bakstīšanās, un db.lv man beidzot ir, kā pie cilvēkiem.
db.lv bez reklāmām

Tas visos pārlūkos, gan esošajos (IE, FF, Opera, Chrome), gan tajos, ko es kādreiz varētu iemēģināt. draugiem.lv beidzot varu saglabāt paroli. Tas, protams, tikai sākums.

Panākts ar Privoxy. Daudz laika patērēja atklājums, ka filterfile nedarbojas.

Ja nu kādam interesē.
user.action:
{+block{Ad}}
ad.draugiem.lv

{+filter{lv.db} +force-text-mode}
.db.lv/.+\.aspx

{+filter{lv.db_css} +force-text-mode}
.db.lv/.+\.css

{+filter{lv.draugiem} +force-text-mode}
.draugiem.lv/$

default.filter:
FILTER: lv.db
s@AC_FL_RunContent(.+?);@@gsi
s@<div class="bannerbox.+?</div>@@gsi
s@<div id="siteHeaderPanorama".+?</div>@@gsi
s@<div class="siteContentPad"></div>@@ig
s@<div id="siteHeaderPad".+?</div> <!-- siteHeaderContent -->@@is
FILTER: lv.db_css
s/(\#siteHeader \r\n{)\r\n[ ]+position: fixed;/$1/gsi
 
FILTER: lv.draugiem
s/ autocomplete="off"//ig

If death makes you re-evaluate your life, you’re wasting it

•2008-08-25 • 7 Comments

That’s about it, mostly. If you’re one of the nearly brain-dead majority that do their best to avoid even thinking of death (since it makes people sad, it must be evil, right?), then you’re wasting your life. Maybe not all of it, like someone scared to death of, well, death, but still. Most people go through life, unconsciously believing that death is something that happens to old people and others. It’s something looming in the future so far that it doesn’t seem real and thus can easily be made to not exist. People like that cannot possibly appreciate life and the time they have every day, and thus will waste loads of it. Only when someone close to them dies or they escape death by a margin do they suddenly “discover” that death might always be just around the next corner and that they might not be the “millionaires of time” that they subconsciously believe they are. But, living in our world, only an ignorant halfwit can feel even temprorarily immortal.

I wake every morning, knowing that this day would be my last. I go to sleep knowing I might not wake up. Or anyone I know or love. And you know what? It doesn’t make me sad or depressive or scared. It makes me realize how precious every moment is – not when someone dies, or almost dies, but every day of my life. I cringe when my plans (which I don’t make often) fall through and I’m forced to waste more than 15 minutes not doing anything. I hate it when people are late, because they might be wasting the last minutes or hours of my life.

Today I almost died. A speeding jeep almost ran me over in the middle of the city, even though I was crossing by green light. I jumped out of the way by a few centimeteres at the last second, before I even had time to get scared (and afterwards, there wasn’t any point anymore). I had forgotten the incident within 5 minutes. Not because I desperately tried, but because I don’t like to waste my time and energy on menial, unimportant issues.

I don not have a deathwish. I am scared of death as much as anyone, and I will do my best to postpone it as much as I can. I am extremely saddened when someone close to me dies. It takes a while to cope with the fact that someone I’ve spent a lot of time with will no longer be around, ever. But being heartbroken does not make death important, because it isn’t. It’s part of everyday life.

P.S. And I hate that you can’t joke about living people being dead. It’s stupid and ignorant, and is based on the superstitios belief that talking about death in anything other than general context (or about the deceased) will call it down on the person. Most people don’t get particulary scared if they break a mirror or see a black cat crossing the road (evil witches, anyone?). So why do I know that if I ever said one of my favorite substitute phrases for “I don’t know where he/she/it is” – “He/she/it’s dead, we buried him/her/it yesterday.” – when talking about a person, I would get dark looks, people would get all silent and uncomfortable. God, how I hate you little people with your narrow minds and made-up, superstitious fears that you enforce on everyone else.

Non-USB storage hate

•2008-06-19 • 2 Comments

Any game console that has working USB ports, but does not allow me to use external USB storage devices (like USB Memory sticks) for savegames and other data does not deserve a single cent. On games, on accessories, on anything. Download what you can, buy used and 3rd party what you can’t. I’m NOT happy about a prospect of having to pay money for an SD card (incidentally, neither one of my two photo cameras or phones use one – it’s all CF, xD and M2) when I have a perfectly working USB Memory Stick.

Jinpachi (from Tekken 5) is way overpowered

•2008-05-02 • 10 Comments

http://www.youtube.com/watch?v=mSft3IuHsGE

Video proof of how overpowered Jinpachi is. This is not a “freak success”, this is how 90% of my fights using Jinpachi. It would be 100% but sometimes I get bored and start experimenting. ;)

When I started playing Tekken 5 I quickly became annoyed at how insanely, unfairly overpowered Jinpachi is. With characters that I wasn’t much good with I could spend half an hour trying to defeat him. It wouldn’t be too bad if it was because of skill on Jinpachi’s part, as that is what fighting game should be all about – skill. However, Jinpachi is not more skilled than any other character, and doesn’t even have to be. He is so hard to beat because his moves are extremely easy to do and cause insane amounts of damage. Some of them, like the fire (featured in the video), cannot be blocked or avoided by jumping/ducking, only sidestepping (and you have to be careful not to do it too fast). The non-damaging stun attack (used at the start of the attack) is something sompletely otherwordly. It’s nearly unblockable, has a huge range and requires almost no recovery time. You can actually keep the enemy paralyzed indefinetly. And the most devastating moves are so easy to do. Here is the entire button sequence from the video: Back+LP+RP, LP+RP, LP+RP, LP+RP

I’m guessing that that is the main reason why Namco decided not to give players any “legitimate” way of unlocking him, and players are forced to use cheat devices like CodeBreaker, Action Replay or Gameshark to achieve this. I’m quite angry with Namco for doing this.

For the interested, here’s the Codebreaker code that I use. You can select Jinpachi by holding down R1 in the character selection screen and selecting a character to play with using one of the four attack buttons (each will give different appearance for Jinpachi, as with normal characters). Works for both players:

If you use this mastercode:
9010C128 0C04627E
Code is:
DA27C242 B200160F
1A16C179 0000004B
DA27C242 B20F860F
1A16C179 0000004C
DA27C242 B20FD60F
1A16C179 0000004D
DA27C242 B20FF60F
1A16C179 0000004E
DA27C243 B200160E
1A16C17A 0000004B
DA27C243 B20F860E
1A16C17A 0000004C
DA27C243 B20FD60E
1A16C17A 0000004D
DA27C243 B20FF60E
1A16C17A 0000004E

If you use official mastercode:
B4336FA9 4DFEFB79
99A26F0F 67C04144
1BB2FE10 8530631E
7BC719B4 E44055F2

Code is (untested):
ECF98633 BED00C10
549512D2 E678ED34
83CDDADB A2D2BAEB
43593DAB 8BCA1EF1
9948A466 1A6BBEEB
B4E619BC 34FCC308
7C4A927C 1C16E521
D48CB686 E5358494
2E0C2507 5B8A7634
746D7512 7F1D6F71
943BFB50 B1DFBBBB
C9235631 C4BEDE01
91F0CEDF 053721BF
8F0E78C4 D203FAB6
DCC818E9 4DA8189C
CD881D4F ED65DB97

Permanent cure against comment spam

•2008-04-01 • 2 Comments

Came up with this a long time ago, but didn’t have the time or will to implement in my own (old) blog. I’m sure it works though. So. The algorithm is hellishly simple, but effective. And better than:

  • Text analyzers (Akismet), because it doesn’t require any extra sever resources.
  • Captcha, because it doesn’t require any complicated setup and there are no problems with “handicapped” users.
  • Hiding fields with CSS, because that can be circumvented (for example, elevating spambots to do some basic CSS-parsing).
  • Moderating, because everything is automatic.

The algorithm:

  1. When a visitor opens a page, we check if he has a cookie saying he’s human. If he does, we show the normal comment form and let everything happen.
  2. If the visitor does not have the cookie, we add an extra field to the form, asking a question along the lines of “how many fingers does a human hand usually have” or similar. This is the creative part of the algorithm, where everyone can express himself fully. You can, for example, ask a harder (meaning – to be googled) question to ensure you only receive comments from people not afraid to think and/or do.
  3. Anyway, if the visitor responds correctly, we accept the comment and in return give him the aforementioned cookie and from now on we’ll always know he’s human.

So, I hope to see a huge number of links to this page, along with a lot of cash for ridding the Internet of comment spam. ;D Anyway, it should work 100% for nearly everyone (some more popular pages might have to change the question regulary or pick a random one from a list everytime), and if combined with any other methods (moderation would probably be most effective and humane) will make the page completely spam-proof.

Addendum: This post refers to the automated, mass-produced spam comments made by bots on thousands of blogs, formus and the like on the Internet. There is always possibilty of manual spam done by actual people, as well as custom-coded bot (once you’ve found out the question(s)/obtained the cookie) that can spam a single blog. For these very specific and comparitively rare occasions the addition of such security measures as moderation (in case of manual spam) or IP-ban/captcha (in case of custom-coded bot[s]) are the way to go.