The other big obstacle to Ruby's adoption is ActiveRecord

I have been using Ruby for a few months now, doing development of small projects of up to 1000 lines. But I still bite into the naming clashes with ActiveRecord regularily. They appear at random places and it takes a lot of experience to figure out what is happening. Here's an example with the type attribute clash. Of the two code snippets below, the first one does not work (thing.type equals nil, after execution), and the second one works.

thing = Thing.new(:type=> Type.new)
thing = Thing.new
thing.type = Type.new

Another example is having an attribute named transaction.

thing.transaction

Calling .save on a model with such an attribute will produce no output in the logs and leaves the developer in frustration about what happens.

Tags: 

Как учат космонавтов или "Азбука выживания в космосе"

Попалась в руки мне недавно прикольная книжка, ATV RVD for Dummies. Учебник по стыковке космического корабля ATV к МКС, оформленный в жёлто-чёрном стиле книжек For dummies. Так вот, там между прочим говорится, что у космонавтов есть такой инструмент - прозрачная линейка. Они прикладывают её на экран монитора, вдоль диаметра ATV, и получают дистанцию до ATV в метрах.

What are the options for project management software?

Mind maps

Mind maps are unstructured, so if your project is unstructured, use it. It is a safe bet to acknowledge the lack of structure altogether than to invent funny names like Inception, Elaboration, Construction to the project stages that do not exist.

The lack of structure brings in a subtle problem. Someone else looking at your mind map will have a hard time reading it. First, because of the lack of the predetermined structure does not allow to grasp the content through the common knowledge of that structure. Second, because mind maps are only half-language, inadvertently using the noun phrases and dropping the predicates and prepositions, together with the grammatical relationships. You may know that the line between "flies" and "arrow" mean "time", but not necessarily your reader.

So, use Mind Maps to acquire new knowledge, but do not pass them onto others.

See Free Mind.

Gantt charts

Gantt charts are only practical to track the deadlines and to keep various participants accountable in case of a high parallelization of work. It may look to the newbie that the length of the bars in those charts represents the actual amount of effort, but this is largely false, in reality.

Remember that: Gantt charts are the tool of choice to organize the work of multiple parties at the beginning of a project.

See Projity.

А в Минске-то интели орудовали, не иначе.

Интели не гангстеры, это отчаявшиеся люди, патриоты... У них одна задача - расшевелить это болото. Любыми средствами. Дать этому городу хоть какую-нибудь цель, заставить его оторваться от корыта... Они жертвуют собой, понимаете? Они вызывают огонь на себя, пытаются возбудить в городе хоть одну общую для всех эмоцию, пусть хотя бы ненависть...

Tags: 

Tutorial on NetBSD 4.0 i386 setup in kvm.

Create a 10G disk image:

qemu-img create -f qcow2 netbsd-4.0-i386.qcow2 10G

Avoid hangup on boot with --no-acpi and the default network card timeout by trying out a different card, e.g. -net nic,model=ne2k_pci:

kvm -hda netbsd-4.0-i386.qcow2 -cdrom i386cd-4.0.iso --no-acpi -net user -net nic,model=ne2k_pci

Walk through the installer.

Install additional packages with pkg_add:

export PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/packages/4.0/i386
pkg_add vim ctwm firefox wget

Include them in path:

echo "PATH=$PATH:/usr/pkg/bin" >>/etc/profile
. /etc/profile

Install the latest stable pkgsrc:

wget ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2008Q1/pkgsrc-2008Q1.tar.gz
tar xzf pkgsrc-2008Q1.tar.gz -C /usr

Make sure that pkgsrc fetches binary packages for dependencies, when possible:

echo ".ifdef BSD_PKG_MK
BINPKG_SITES=ftp://ftp.NetBSD.org/pub/NetBSD/packages/4.0/i386
BINPKG_SITES+=/usr/pkgsrc/packages/All
.endif" > /etc/mk.conf

Configure pkg_online to be able to search for packages

cd /usr/pkgsrc
cvs -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip login
cvs -z3 -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip checkout -P wip
cd /usr/pkgsrc/wip/pkg_online
unset PKG_PATH
make package DEPENDS_TARGET=bin-install

Search for additonal packages

pkg_online_find :s:pptp

P.S. Thanks to Aleksey Cheusov <vle@gmx.net> for implementing and making available pkg_online.

Attack on the tax calculation: it is the law, dude!

I must admit that I was wrong in my previous stance over the tax calculation issue. Apparently, The Ministry of Finance has nothing to do with such a strange calculation process. It is prescribed by the law.

Article 134 CIR 92

§ 2. La quotité du revenu exemptée d'impôt est imputée par contribuable 
sur les tranches successives du revenu, en commençant par la première.

What I took for ingenuity was plain stupidity.

Tags: 

Pages