Friday, November 21, 2008

Ahmet Ümit'in "Kar Kokusu" (1998)

Çok sevdim bu polisiye romanı*! Yitip giden ve bir daha asla gelmeyecek bir ortamda geçiyor roman. İnsanlarda "ideal"lerin halen olduğu, Dünya'nın bu kadar "Amerikanlaşmadığı" ve birbirlerine safça "yoldaş" diye hitap ettikleri bir dönemi anlatıyor. 1980'lerde Moskova'da eğitim gören TKP'liler arasında bir cinayet işlenir. Tabii KGB olayı hemen incelemeye başlar. Soğuk Savaş halen sürmekte ve Türkiye'de askeri cunta baştadır. Cunta MİT'den TKP'nin içine sızmasını ve çabucak sonuç almasını istemiştir. Döneme özgü birçok ayrıntı, sıradan insanlar, kırgın insanlar, TKP yöneticileri, Rus bürokrasisi, MİT görevlisi ve köstebek...Tavsiye ediyorum kesinlikle.

* Kar Kokusu, Ahmet Ümit, Doğan Kitapçılık, 2006, 11. Baskı, İstanbul, 264 sayfa, ISBN: 975-293-057-3

Creating an Objective C Development Environment

For your information, I am using Ubuntu 8.04 and I intend to develop something for the iPhone in my spare time. Certainly I am at the very begining of a long learning curve!

First, I installed the GNU Objective C compiler. Next, I decided to set up a development environment. After a quick search I have found that GNUstep is what I need: "GNUstep is a cross-platform, object-oriented framework for desktop application development....GNUstep is generally compatible with the OpenStep specification and with recent developments of the MacOS (Cocoa) API...". Please see: http://www.gnustep.org/. I installed GNUstep via the Synaptic tool: I simply searched for "GNUstep" and then installed the relevant packages.

Then, I compiled an example form the following link:

http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_1.html

I created a directory named "objc" and created two text files shown below there:

source.m:

#include

/*
* The next #include line is generally present in all Objective-C
* source files that use GNUstep. The Foundation.h header file
* includes all the other standard header files you need.
*/
#include

/*
* Declare the Test class that implements the class method (classStringValue).
*/
@interface Test
+ (const char *) classStringValue;
@end

/*
* Define the Test class and the class method (classStringValue).
*/
@implementation Test
+ (const char *) classStringValue;
{
return "This is the string value of the Test class";
}
@end

/*
* The main() function: pass a message to the Test class
* and print the returned string.
*/
int main(void)
{
printf("%s\n", [Test classStringValue]);
return 0;
}

GNUmakefile:

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = LogTest
LogTest_OBJC_FILES = source.m

include $(GNUSTEP_MAKEFILES)/tool.make

In order to setup the GNUstep "environment", one of the following scripts should be run:

/usr/share/GNUstep/Makefiles/GNUstep.sh
/usr/share/GNUstep/Makefiles/GNUstep.csh

Note that the paths are installation specific. As I used bash and don't bother to maintain user settings being the only user, I added the following lines to my bash global settings file:

/etc/bash.bashrc:

# Oguz Kupusoglu @ 20 Nov 2008
. /usr/share/GNUstep/Makefiles/GNUstep.sh

Then I launched a bash shell and make the build which was a piece of cake:

..objc$ make
This is gnustep-make 2.0.2. Type 'make print-gnustep-make-help' for help.
Making all for tool LogTest...
Compiling file source.m ...
Linking tool LogTest ...

In order to run the application I swicthed to the "obj" subdir:

..objc$ ls
GNUmakefile obj source.m
..objc$ cd obj
..objc/obj$ ls
LogTest source.d source.o
..objc/obj$ ./LogTest
This is the string value of the Test class

That is all! Now you have a working Objective C development environment.


Karakin Demirciyan'ın Demiryolu Projesi (1911)

Doç. Dr. Mehmet Okur'un "Karakin Demirciyan'ın Demiryolu Projesi" * makalesini yeni okudum. Erzurum mebusu Karakin Demirciyan ve arkadaşları Meclis-i Mebusan'a "Şark-i Anadolu Şimendifer Projesi" sunmuşlar: "Doğu Anadolu vilayetlerine asırlardan beri hükmeden sefaletin başlıca sebebi nakliye vasıtalarından büsbütün yoksun olması olup...Bu olumsuz durumun değişmesinin yegane çaresi ise Trabzon-Sivas-Erzurum-Bitlis-Mamuratül-Aziz ve Diyarbakır vilayetlerini Karadeniz limanlarına bağlayacak bir demiryolunun acilen inşa edilmesidir." Aynı sıralarda Gümüşhane mebusları İbrahim Lütfi ve Hayri beyler Meclis-i Mebusan'a bir takrir sunarak Trabzon-Erzurum arasına demiryolu yapılmasını istemişler. [Bu sırada söz alan] "Erzurum mebusu Ohannes Varteks Efendi, Rusların kısa bir süre içinde Kafkasya'dan Sarıkamış'a kadar şoseler ve demiryolu hattı inşa ettiğini, buna karşılık Osmanlı tarafında bırakın demiryolunu, şose dahi bulunmadığını belirtmiş ve iki devlet arasındaki bir savaşta Rusların binlerce askeri bir haftada cepheye yığacağı, Osmanlı Devleti'nin ise böyle bir imkandan mahrum olacağı üzerinde durmuştur." Maalesef bu öngörü 1. Dünya Savaşı çıkınca gerçekleşdi! O zamanlar Ruslar Kafkas ticaretini ellerinde tutmak için Osmanlılar'ın bölgede demiryolu yapmalarını istemezken Almanlar Bağdat demiryolu için ugraşıyorlardı. Ermeni yurttaşlarımızın Doğu Anadolu'nun kalkınması için kabul görmeyen böyle bir öneride bulunmaları bence ilginç.

* Toplumsal Tarih, Kasım 2008, s 52-57

Monday, November 10, 2008

A Script to "Abuse" MS Outlook Voting Buttons

As is well known Microsoft Outlook Voting Buttons are designed to send one vote: the "final" vote is the valid one. However, assume an MS Outlook user needs to send more than one vote. Consider this scenario: new people without MS Exchange accounts are around and you need to know the voting of all the people immediately. Hence, some MS Outlook users have to send more than one vote and all of them should be counted. Finally, a report on the outcome is expected. My solution is a VBScript to abuse the MS Outlook Voting Buttons. [To be posted later]