Tokens — Page 12

Yapay Tatlandırıcılar

edebiyat


Zaman zaman çeşitli nedenlerle ortaya atılan kimi görüşler çevresinde birilerinin kısa yoldan gündem oluşturma gayretlerine tanık oluruz. Çoğu kez sorunları ele alış yeteneğinden, olguları kavrayış derinliğinden yoksun "taklit" kişilerin önemli biriymiş gibi yapmak, kısa yoldan ün sahibi olmak, ortalıklarda görünmek, biraz daha gündemde kalmak ve benzeri nedenlerle kalkıştıkları bu çeşit sivri çıkışlar, cakalı sataşmalar günün konusuymuş sanılır.

Sahici boşlukların sahte gündemlerle yamanmaya çalışıldığı bir ortamda derin ve önemli oldukları izlenimi verilmeye çalışılan bu fosforlu söylemlerin çoğunlukla ciddi bir karşılığı yoktur; herhangi bir tartışma değeri taşımaz, ama emeksiz fikrin dolaşımda olduğu her toplumda görüldüğü gibi çeşitli kişilerin katkısıyla zihinler bulandırılır, ortalıkta dolanan mikrofonlar konuyla ilgili olduğu varsayılan kişilerin ağzına uzatılıp onların ne düşünmüş oldukları takibe alınarak gürültü çeşitlendirilir.

Oysa siz bu konuda bir şey demiyorsunuzdur. Zaten böyle bir konu yoktur; hatta hiç olmamalıdır. Bu tür kof tartışmalar, beyhude soruşturmalar toplum çoğunluğunun zihinsel diyette olduğu bir kültürel iklimde yapay tatlandırıcılar gibidir. Pek çok kişinin işini hakkıyla yapmadığı, bilir bilmez her konuda söz aldığı bir ülkede, okuma yazmayı yeterince sökemeden multi-medya görselliğinin taarruzuyla sersemlemiş, zihnini toplamakta güçlük çeken bir toplumda, çağın sersemletici hızında, yüzeydeliğin yedeğinde üç gün sonra kimsenin hatırlamayacağı bu kuru gürültüler, yaşamın, toplumun, politikanın, kültürün, sanatın sorunlarını tartışmak sanılır.

Her seferinde ağzınızda kötü bir tatla kalırsınız.


Murathan Mungan, Milliyet Sanat Ocak Sayısından.

Apache "Address already in use"

linux

Say you are configuring SSL for your website and after enabling mod_ssl, creating self signed certificates and adding necessary configuration options to your virtual host definition you are still getting errors of the sort:

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

in your logs, what do you do? You check who is using the port of course,

$ sudo lsof -i :443
$

But that doesn’t lead you anywhere because, guess what, nobody is using port 443.

So what is the problem? It might be because there multiple definitions of the same type. In my case it was because of this line:

Listen 443

which got executed twice. One problem of Apache is that the configuration files are all over the place. It used to be that many configuration options were in the same apache.conf file before but there’s a restructuring going on and newer releases emphasize this. You might find old articles and when you use them you can get in these kinds of troubles.

Luckily these problems are not that hard to solve. Just be on the lookout for extra definitions and try to understand which declaration is where and does what. You’ll avoid most problems by doing that.

Kitap Yorumu: Coders At Work

kitap

Eylül 2009’da Apress tarafından basılmış bir kitap, Coders at Work. İzlediğim çeşitli sitelerde ve bir de çok sevdiğim StackOverflow Podcast‘de kitapla ilgili olumlu yorumlar çıkınca ben de Amazon’dan siparişimi verip kitabı beklemeye başladım. Amazon’dan şimdiye kadar büyük çoğunluğu kitap olmak üzere 70’e yakın ürün aldım ve hizmetten çok memnun olduğumu söyleyebilirim. Yolda kaybolmuş bir siparişimi de hiç soru sormadan tekrar yollamışlardı, çok iyi bir müşteri hizmetleri var (hepsiburada.com ile karşılaştırıldığında özellikle). Kitap 2 hafta gibi hızlı bir sürede elime geçti ve ben de hemen okumaya başladım. Amazon’dan sipariş etmeyi düşünenler için şunu söyleyeyim, siparişiniz kitap olduğu ve 150$’dan fazla tutmadığı sürece gümrükte vs. bir sorun çıkmadan elinize ulaşıyor. Tabii aynı kitaptan 10 tane almadığınızı varsayıyorum (o durumda ticari işlem görebilir gümrükte).

Öncelikle şunu söylemem gerekiyor, insanların meslekleri hakkında neler düşündüklerini, nasıl çalıştıklarını okumak çok hoşuma gidiyor. Bir meslek hakkında öğrenmenin en iyi yollarından birisi onu en iyi şekilde uygulayanların düşünüş şekillerini, küçük alışkanlıklarını, geliştirdikleri teknikleri öğrenmek belki de. Bu yüzden Paris Review mülakatlarını çok severek okudum, veya Inc. Dergisinin “The Way I Work” serisini. Yine aynı nedenle Stephen King’in On Writing kitabı da bence yazmak konusunda en iyi kitaplardan. Eğer kitapta samimi bir ortam oluşturulmuşsa ve sohbet çoğunlukla özgür bir şekilde akıyorsa konu hakkında çok şey öğrenebiliyorsunuz. Yazarlık ve programcılık gibi meslekler için bu daha da önemli bir konu. Çünkü örneğin bir doktorun nasıl çalıştığını az buçuk anlayabilirsiniz, veya bir inşaat mühendisini gözlemleyerek mesleğinin nasıl işlediğini kaba hatlarıyla görebilirsiniz. Yazarlar ve programcılar ise genellikle kapalı alanlarda (kendi karellerinde, odalarında vs.) akıllarında bir sürü şey düşünüp, karalayıp ve en sonunda karar verip bir ürüne dönüştürüyorlar. Başka insanlarla etkileşim minimum düzeyde. Yazarlarda en azından bitirilmiş kitabı okuyup verilen kararların, seçilen yolların sonuçlarını görebilirsiniz; programcılarda ise araya bir katman daha giriyor. Son kullanıcı olarak ancak üretilen programı kullanarak kod hakkında çıkarımlarda bulunabilirsiniz. Programı kullanarak kod hakkında sonuçlara varmanın çok da doğru olmadığını söylememe gerek yok herhalde.

Coders At Work bu boşluğu doldurmak amacında. Kitapta tüm zamanların en iyi programcıları ile röportajlar var. Bunlar arasında
<ul><li>Netscape’i yazan adamlardan efsane isim Jamie Zawinsky</li>
<li>LiveJournal kurucularından, memcached’nin yazarı ve şimdilerde Google’da AppEngine üzerinde çalışan Brad Fitzpatrick</li>
<li>Yahoo’da çalışan JavaScript gurusu Douglas Crockford</li>
<li>JavaScript’in yaratıcısı Brendan Eich</li>
<li>Başka şeyler yanında ODTÜ Bilgisayar Mühendisliği Yapay Zeka dersinde kullanılan kitabın da yazarı Peter Norvig</li>
<li>UNIX’in yaratıcısı Ken Thompson</li>
<li>TeX’in yaratıcısı ve çok etkili The Art of Computer Programming kitabının yazarı Donald Knuth</li></ul>
gibi insanlar var.

Kitaptaki röportajları gerçekleştiren yani kitabın yazarı Peter Seibel medyadan teknoloji sektörüne geçmiş ve arada bir de Common Lisp kitabı yazmış bir isim. Röportajlarında insanlara benzer soruları soruyor. Bilgisayar Bilimlerindeki büyük isimlerin aynı sorulara verdikleri farklı cevapları karşılaştırabilmek güzel. Soruları programlamaya nasıl başladıkları, kendilerinin rol aldıkları önemli olaylar ve bunların içyüzleri, tartışmalı (yani herkesin hemfikir olmadığı) çeşitli konulardan oluşuyor. Nispeten çok kısa olan bilgisayar bilimleri tarihine giriş bile denebilir kitabın içeriğine.

Bilgisayar bilimleri tarihi bence Türkiye’deki programcılar için önemli bir konu çünkü ülkemiz teknolojiyi ıskaladığı için biz bu ilk gelişmelere çok uzak kaldık. DEC’in PDP’lerinin, Apple’ın 1984’de çıkardığı kişisel bilgisayarın veya yazılım tarafında Fortran’ın, C veya C++’nın hangi sebeplerle (hangi sorunlara çözüm olarak) ve nasıl geliştirildiğini en azından şahsen bilmiyorum. Aynı durum daha teorik konular için de geçerli, çeşitli algoritmaların tarihini bildiğim söylenemez. Bunların arka planını öğrenmek ise sadece bugünü anlamak için değil, geleceği daha iyi tahmin edebilmek açısından da bence çok önemli.

Sonuç olarak Coders At Work kitabından kaptığım, aklımın bir köşesine yazdığım pek çok fikir var. Bunları kitapta okurken altını çizdim ve en sonunda kitapta altı çizili bir sürü cümle oldu :) Gerisi bunlar üzerinde düşünüp işlerimde uygulamak artık.

5 Things I Hate About Mac OS X

rants

Apple had this one coming. I have been using Mac OS X at work for about 5 months now and having Linux as my primary operating system at home I thought transition to a Mac would have been more smooth. After all, isn’t Mac OS X, Unix based? Turns out I had to experience a few frustrations, the last one after upgrading to Snow Leopard. MySQL was broken after the upgrade as was all the software I had installed from MacPorts.

I’m now reinstalling all those software and it’s not something I like doing. I never experienced any of this while upgrading my Ubuntu to 9.10 a few months ago. It was a smooth transition, everything continued working like it should. Having such a huge (and profitable I might add) company such as Apple behind it, I would have expected the upgrade process to be better.

Joel Spolsky and Jeff Atwood were talking about programming languages in one of their StackOverflow podcasts and they said that one is not really knowledgeable about a programming language unless he can elaborate upon it’s weaknesses. I like that approach, and I present my own thoughts about Mac OS X.

<ol><li>Mac OS X does not have an official repository of programs. Of course there’s Fink and MacPorts but they do have their weaknesses. Apple really should provide a central repository of programs that can be installed easily. Ubuntu and Debian make a great example of this, it shouldn’t be hard for Apple. </li>
<li>The keyboard and peripherals are not standard. You can have various keyboards for various models and I don’t like it because it forces a learning curve each time. There are keyboards without number pads (like the one I’m using), keyboards without Page Up, Page Down, or Delete buttons etc. It is all the more mess when the keyboard you have is not a US one. If you have local characters in the keyboard then good luck trying to get the shortcuts working.</li>
<li>Proprietary programs that do not work as expected. OK this one is a general problem of the Unix vs. Linux world but still I’m gonna rant about it. Linux is widely used as servers and if you are developing on a Mac you want to be able to create a similar environment (with web servers, continuous integration stuff, MySQL, Java JDK etc.) But this is not easy because Apple provides its own system tools and programs are not installed where they normally would be. Look at the MySQL website and you start to wonder where Apple put this executable and where it put the other instead of what the official website tells it to. It really doesn’t help that Apple lags behind many programs like Java also.
One implication of the above is that some programs do not work fully when you are on a Mac. Take vim for example. Sure you have MacVim but it still has problems with my vim configuration working on Linux. The colors don’t work because Mac’s terminal is so primitive. Many plugins have to be disabled because the Mac does things differently. I don’t want to manage two different set of configurations for vim, that’s a hassle.</li>
<li>Mac’s are not easily customizable. I want to be able to fine-tune some of the features but there does not seem to be a way to do it. Take the program switching shortcut for example, which is Cmd Tab. Windows and Linux change the application based on its window, but on a Mac it is done based on the application. Say you have 5 terminal windows open, you can only move through one of them. I don’t like that. You can use your mouse or keyboard to have every window rearranged and highlighted but that’s not what I want. The trouble is you can’t customize it easily.</li>
<li>Some basic programs are lacking to say the least. The first one that comes to my mind is the Finder. You can’t even write the location you want to go to it! You can’t copy the location you are at! I use terminal often and I want that ability. And it is so basic. Even MS Windows has it :-) People see this as lacking and there are commercial alternatives to Finder. But why should I be paying for such a basic app? The OS should have provided one for me anyway.
</li></ol>
Rant mode OFF.

All these deficiencies notwithstanding I think I’ll continue using my Mac at work so that I can see where Apple is going. With the iPod and the iPhone they have become an important player in the tech world and the design is simply an eye candy to look at. I wonder if there are nice designed products (laptops and desktops also) that are not from Apple, but inspiring nonetheless.

The Pursuit of Happiness

books


[...] we cannot reach happiness by consciously searching for it. "Ask yourself whether you are happy" said J.S. Mill, "and you cease to be so." It is by being fully involved with every detail of our lives, whether good or bad, that we find happiness, not by trying to look for it directly. Viktor Frankl, the Austrian psychologist, summarized it beautifully in the preface to his book "Man's search for Meaning": "Don't aim at success -the more you aim at it and make it target, the more you are going to miss it. For success, like happiness, cannot be pursued; it must ensue... as the unintended side effect of one's personal dedication to a course greater than oneself."


From Flow by Mihaly Csikszentmihalyi.