Sunday, October 17, 2010

Boris Grebenschikov on authors' rights

Boris Grebenschikov on author's rights, in an interview at
У меня могут быть какие угодно цитаты из кого угодно. Я за это извиняться не буду. Я использую те слова, которыми я пользуюсь в жизни. Я не собираюсь согласовывать свою песню с комитетом по охране авторских прав, потому что я не признаю авторских прав. И все мои песни могут любыми людьми расхищаться, как им это нравится, потому что мы все звенья одной цепи. Те, кто знают, как пишутся песни, знают, что это естественный процесс. У всей музыки – один источник. Никто ни у кого не собирается красть. Т.е. есть люди, которые специально берут и крадут, потому что им нужно заработать денег. Мы пишем песни не ради денег. Поэтому, когда я пишу, я использую тот материал, который мне доступен.
I can have any quotations from anyone. I'm not going to apologize for that. I use the same words that I use in everyday life. I'm not going to run my song by some Committee on Authors' Rights, because I don't recognize authors' rights. And all my songs can be freely looted by anyone in any way they like, because we're all links of the same chain. All music has the same single source. Nobody can steal anything from anyone. Of course, there are people who intentionally steal because they need to make some money. We don't write songs for money. So when I write, I use the material that is in front of me.
Boris Grebenschikov (Борис Гребенщиков) is a quintessential founding figure in Russian rock of the late soviet and post-soviet period. Together with his band, Aquarium (Akvarium, Аквариум), he pioneered the pay-what-you-can approach to music distribution on with his recent albums White Horse (Лошадь Белая) and Our Life From The Trees' Point of View (Наша жизнь с точки зрения деревьев).

Friday, October 15, 2010

RIM: Bug-fixing, platinum edition.

Earlier this year, I filed an issue with RIM's issue tracker, TOOL-118, detailing my experience of trying to connect to Blackberry JDWP tool with IntelliJ IDEA. JDWP tool is the proxy to the simulator or actual mobile device that implements the Java Debug Wire Protocol on the outside, allowing an arbitrary JDWP-compatible debug tool to connect for a remote debug session. IntelliJ IDEA is the best damn Java IDE in the world, period.

The problem was basically that RIM's JDWP tool apparently wasn't fully compliant to the actual JDWP protocol, choosing instead to focus narrowly on its compatibility with Eclipse's debugging implementation. After some screwing around, it seems that RIM's JDWP tool expects something along the lines of jdb's "resume" command after the connection is established, otherwise it just keeps the simulator/device's JVM in a suspended state indefinitely.

Well, they promised to look at it, and this morning, roughly half a year later, their work was complete.
twindsor   updated TOOL-118:

       Status: Investigation (Closed)  (was: Investigating)
   Resolution: Fixed

JDWP with other development environments is no longer officially supported.

Only the use of JDWP with the Eclipse plugin is currently supported.
Because, you know, "we want to meet you on your turf, we want to make it easy for you to use the tools you're already using". Thank you RIM, I love you too.

(to Tim Windsor, the developer liason who helped me initiate the issue: no offence, I understand that you're not the one making decisions such as what IDEs and dev environments to support. Thanks for your help.)

Tuesday, October 5, 2010


Someone make a monospaced Faktur please... I would use it!

There is one out there actually, Erika Mono Faktur, but doesn't seem like it's publicly available. Credit: Andreas Brietzke

Friday, September 17, 2010

Blue jerboas have arrived

My beautiful and extremely industrious wife has finally put together a blog where she's constantly putting up her works that she's doing at the Academy of Art. Here she is:

And here's the kind of stuff she does:

I have no idea how long it took her to do all those stripes.

Tuesday, August 24, 2010

Inter's multiethnic Ukraine

Just stumbled upon something really cool. One of Ukraine's prime TV channels, Inter, shot a series of video clips for Ukraine's 19th anniversary of independence (24th of August, today). Each of the clips is dedicated to an ethnic group living in Ukraine -- it starts with a short scene in the language of the ethnicity in question, and ends with the representatives of that ethnicity singing the Ukranian National Anthem, translated into the language of the ethnicity. There's also a caption that says how many of the representatives of this ethnicity live in Ukraine (e.g "there are 150,000 Ukraininan Romanians who call Ukraine Motherland") and it ends with a tagline "We're different, but we're all one!".

Here are the links to youtube videos that I spotted:

Pretty darn great. I was really pleasantly surprised to see this. Those of you who know me also know my peculiar attitude to national matters, but this is just fantastic. This is the best I can possibly wish to Ukraine in the years to come -- and with that, happy birthday, Ukraine!

Wednesday, April 28, 2010

Russian government uncovers secret documents related to Katyn

The scanned originals are here on the RusArchives site (in Russian). That's big. The Poles should've discovered those natural gas deposits of theirs earlier, I say -- these documents would've been public for years now.

Guido van Rossum and David Pollak on Scala

There's an insightful blogpost and thread followup on Guido van Rossum's blog from 2008 on Scala. Guido skims through the Programming in Scala book and comes out nonplussed:
I have to agree with Steve -- if this is what it takes to have compile-time type-safety in a language, I'll take dynamic typing any day. There's got to be a better way -- perhaps Haskell? Haskell is a pure functional language with a fast implementation that seems to have solved the I/O problem of functional languages well -- while its Monads are truly deep and take real work to create, their use seems quite straightforeward.

Perhaps my biggest disappointment in Scala is that they have so many rules to make it possible to write code that looks straightforward, while being anything but -- these rules all seem to have innumerable exceptions, making it hard to know when writing simple code will work and when not.
David Pollak, the guy behind Lift web framework then makes a valuable point that I think I agree with very much. Scala is about tradeoffs, and getting the compiler involved in validation of your library design while keeping the glue code / code that uses the library pretty and transparent.
Unlike any other language I've used (C, C++, Objective-C, Java, Ruby, etc.), the kind of thinking I have to do as a library consumer and library producer are radically different.

As a library consumer, I rarely concern myself with Scala's type system... or most of the other language complexities. My consumer code looks and feels a lot like my Ruby code did. I've got great DSL support. For the most part, the types that the compiler doesn't infer are the ones I need to document anyway. But, unlike my Ruby code, I only need 50%-60% test coverage (vs. 95% coverage) to have stable, deployable code.

As a library producer (, I spend a lot of time reasoning about the types of parameters. This allows the compiler to flag illegal types (e.g., passing an Int into a query against a VARCHAR column). The type system also allows me to reason about my code and how the consumers will use my libraries in a way that I could not do in any other language I've ever used.