20
Mar
Geçen gün WebGL hakkında bir yazı okuyunca, neymiş ne değilmiş görmek için denemeye karar verdim. WebGL kullanan sayfaları açabilmek ya Mozilla Firefox'un ya da Chromium'un geliştirme sürümüne ihtiyacım vardı. Mozilla Firefox'u sürekli kullandığım için Chromium'un son sürümünü indirip denedim. WebGL etkileyici ama yazım WebGL hakkında olmadığı için sadece bunu diyor ve geçiyorum.

Chromium'u kullanırken Mozilla Firefox'u uzun zamandır kurcalamadığımı fark ettim ve serinin önceki yazılarının devamı niteliğinde bir şeyler yazmaya karar verdim. Aslında Mozilla Firefox'un Seçenekler'ine erişebileceğim bir kısayol tuşu tanımlı olsaydı bu yazı olmayabilirdi ama neyse.

Önce ilk iki bölümü hatırlayalım:

0. Hepsi bir arada



1. Silvermel

Sadece bir tema değil. Mozilla Firefox'a bambaşka bir hava katıyor. Pek fazla tema kullanmıyorum, sağlıklı bir karşılaştırma yapamam ama denediklerim içinde en iyisi.


2. Smart Stop/Reload

Tek butonla yapılabilecek bir şey için tek düğme yeterli diyenlerin seveceği bir eklenti. Sayfayı yenilemeyi (tazeleme) ve yenilemeyi durdurmayı tek düğmede birleştiriyor ve düğme açılımına önemli bir katkı sağlıyor.


3. Arama Motoru Eklentileri

Arama hedelerini (searchplugins dizininde) yedekten al, tekrar uğraşma (bu kendime nottur, geçiniz lütfen).


4. Personas

Modayı tarayıcınızda da takip etmek isterseniz, kullanmaktan zevk alacağınız bir eklenti.


5. Japanese Tattoo

Personas'ta şu an kullandığım tema, tavsiyemdir.


6. Adblock Plus

Reklam göstertmeme eklentisi.


7. ColorfulTabs

Her sekmeye bir renk (sekmeler alkışlar).


8. Fission

Adres çubuğunun ve ilerleme çubuğunun birleşmesi, işte evrim budur.


9. Download Statusbar

Her şeyi olabildiğince sessiz sedasız indirmek için kullanışlı bir eklenti.


10. Tiny Menu

Tüm menülere hükmedecek tek bir menü, işte benim Tiny Menu.


11. Weave Browser Sync

Sadece Mozilla Firefox kullandığım için benim için en mantıklısı. Farklı tarayıcılar da kullanıyorsanız alternatiflerine bakabilirsiniz. Yerimlerine her yerden kolayca ulaşma aparatı.


12. Greasemonkey

Çünkü siz buna değersiniz.


13. Mozilla Archive Format

Hala bir internet bağlantısı olmadığı için sayfaları kaydetmek bunu yaparken de en azından bari tek sayfa olarak kaydolsunlar da baş etmesi kolay olsun diyenler için geliştirilmiş olmasa da bu iş için de kullanılabilir.


14. UnMHT

MHTML'lerle çalışmak için bir eklenti.


15. foxiFrame

Penceresi cam cama Firefox. Pencere yöneticisi Mozilla Firefox'a karışmasın Mozilla Firefox küçültme, büyütme, kapatma düğmelerini de kendi sunsun, kimseye minneti olmasın eklentisi. Bunu yükledikten sonra pencere yöneticisine şunu demeniz gerekebilir: Mozilla Firefox'a çerçeve çizme. Alternatifleri Hide Caption ve Hide Caption Titlebar Plus'tır.


16. Copy Title

Günlük yazarlarının hayatını kolaylaştırmak için bir eklenti, başlığı panoya kopyala, armut da gel tam ağzıma düş.


17. Copy Plain Text

Temiz kopyala yapıştır yapmak için. Bağlantı vermek için ideal.


Eksik kalan eklentiler ve ince ayarlar için önceki yazılarımı, kontrol edeyim (ediniz). Bu yazı bir sonraki sefer için işimi çok kolaylaştıracak, ayrıca yeni eklentiler denemek isteyenler için de güzel bir deneyim olabilir. İyi eğlenceler.
19
Mar
Resim paylaşmak için Imageshack.us kullanacaksanız http://reg.imageshack.us/content.php?page=uploader adresinden Windows msi dosyasını inidirip "wine msiexec /i ImageShackUploader-2.2.0.msi" komutuyla kurup kullanabilirsiniz.
Bence Google hizmetleri çok iyi işlevselliğin sade bir arayüzle de sağlanabileceğini ispatladı, dikkat ederseniz Google hizmetleri mümkün olduğunca sade bir görünüme sahiptir ama ihtiyaç duyduğunuz her şey oradadır.

Eğer GWT projenizde Google gibi düşünüyorsanız GWT'den fazlasına ihtiyaç duymazsınız ama daha iyi bir görsel arayüze ihtiyacınız varsa Ext GWT'nin profesyonel görsel araçları ile oldukça zaman kazanabilirsiniz. Ext GWT, GWT projelerine görsel araç takımları sağlayan bir kütüphane ailesi. Çoklu lisans ile dağıtılıyor ve GPL projeleri destekliyor, eğer projenizi GPL ile lisanslarsanız kütüphaneyi rahatça kullanabilirsiniz.

Önceki yazıda Pardus'ta Eclipse, GWT SDK ve GWT Eclipse eklentisi kurulumunu anlatmıştım, Ext GWT kütüphanesini kullanmak için kullanıcı kütüphanesi olarak eklemek yeterli.

  • İndirme sayfasından "Public Release" bölümündeki SDK paketini indirin, ancak kullandığınız GWT sürümüne uygun olanı seçmelisiniz. Ben GWT 2 kurmuştum.
  • İndirdiğiniz arşivin tamamını Ev Dizinine açın, burada bir gxt.jar dosyası olmalı.
  • Eclipse açın, Window > Preferences menüsündeki ağacın Java > Build Path > User Libraries dalını açın.
  • New düğmesini tıklayın ve örneğin: "gxt-2.1.1" gibi kütüphanenin ismini yazıp Tamam tıklayarak kapatın.
  • Add JARs düğmesi ile açılan diyalog ile Ev Dizinine açtığınız gxt.jar dosyasını açın, böylece kütüphane eklenmiş olacak.
GWT projenizde kullanmak için;
  • Ev Dizinindeki GXT dizininde bulunan /resource dizini içeriğinin tamamını GWT projenizin /war dizinine kopyalayın, projeniz eğer başka bir yol belirtmediyseniz Ev Dizinindeki workspace dizinindedir.
  • Projenizi Eclipse ile açın ve war altındaki .HTML dosyasını düzenleyin, uygulamanızın CSS bağının altına GXT'nin CSS bağını yapıştırın, ve en üstteki DOCTYPE tanımlamasını resimdeki gibi değiştirin.
  • Projenizin .XML dosyasına GXT kütüphanesini ekleyin. (En iyisi resimlere bakın)
  • Proje ağacında proje kökünde sağ tıklayıp Properties seçin, açılan penceredeki ağaçtan Java Build Path dalını seçin, Libraries sekmesinde Add Library düğmesini tıklayın, açılan listeden User Library seçtiğinzde GXT kütüphanesini göreceksiniz, onu seçip Finish ve OK ile kapatın.
Artık projenizde GXT kütüphanelerini de kullanabilirsiniz.




http://www.armadayazilim.com/tr/solidWorks_tasarim_detayi--103-

Yukarıdaki adrese girerek bu tasarıma puan vermenizi bekleyen bir arkadaşımız var.
Arz ederim.
18
Mar
GWT (Google Web Toolkit), Google'ın kendi araçlarını geliştirdiği bir Javascript kütüphane ailesi. Ancak geliştirmeyi JS ile değil Java söz diziminde GWT kütüphanelerini kullanarak yapıyorsunuz, yazdığınız kodlar da SDK tarafından derlenerek Javascript kodlarına dönüştürülüyor. Geliştirmede HTML de kullanmıyorsunuz, kullandığınız GWT kütüphaneleri DOM'un kirli işlerini hallediyor. Pardus'ta Eclipse ile GWT uygulamaları geliştirebilirsiniz, kurulum şöyle;
  • Paket yöneticisi ile Eclipse kurun.
  • Alt+F2 İle açılan komut çalıştırma penceresine "xdg-su -c dolphin" yazarak çalıştırın.
  • Açılan Dolphin ile /opt dizinine geçin ve eclipse dizinine sağ tıklayıp Özellikler'i seçin.
  • Özellikler penceresindeki İzinler sekmesine geçip Erişim izinlerindeki Grubu görebilir değiştirebilir olarak ayarlayın, Sahiplik bölümünden de Grup olarak "users" yazın. Değişiklikleri alt dizinlere uygula seçin ve Tamam düğmesi ile kapatın.
  • GWT'nin Eclpise eklentisi indirme sayfasını açın ve kullandığınız Eclipse sürümüne uygun güncelleme adresini kopyalayın. (Örnekte Galileo için; http://dl.google.com/eclipse/plugin/3.5)
  • Eclipse çalıştırın, Help menüsünden Install New software seçin.
  • Açılan penceredeki Work with adresine kopyaladığınız adresi yapıştırın ve Add düğmesine tıklayın. Çıkan diyalogda isim yazmadan Tamam düğmesi ile devam edin.
  • Şu anda eklenti listesini görüyor olmanız lazım ama bilmediğim bir nedenden dolayı ben göremedim ancak liste orada :) Listenin başında göremediğim onay kutuları var, bunlara rastgele tıklayarak Next düğmesinin açılmasını sağladım. Sonra Next ile bir ileri sonra da Back ile bir geri yaptım ve liste görünür oldu :D
  • Listeden Plugin ve SDK seçin ve Next ile devam edin. En son lisansı kabul edip Finish ile kurulum işlemini başlatın.
Kurulum tamamlandığında /opt/eclipse dizininde 200MB'lık bir fark oluştu, bunun yarısı civarında bir indirme yaptığını tahmin ediyorum. Kurulum bittiğinde Eclipse'i yeniden başlatın.

Test etmek için yeni bir Google>Web Application Project oluşturun, projeye sağ tıklayıp Run As > Web App. seçin. Derleme bittikten sonra http://127.0.0.1:8888/... adresinden bir bağlantı veriyor, bunu Firefox adres satırına yapıştırıp uygulamayı çalıştırabiliyorsunuz. İlk denemede küçük bir Firefox eklentisi kurmanız gerekiyor, Firefox sayfayı açınca uyarı veriyor ve onay isteyip kendisi kuruyor.

GWT İstemci tarafını hallediyor ama bunun bir de sunucu tarafı var. Eh, bu işlere bulaşan birisi zaten o tarafı da biliyor demektir. PHP, Django gibi sunucu tarafı betikler için XML-RPC yöntemi veya benim pek bilmediğim ama Google'ın kullandığı Java Servlet kullanılabilir. Şimdi GWT ile nasıl yazılır, şöyle olursa böyle mi olur diye sormayın bende daha bilmiyorum, merak eden çevrimiçi dokümanlardan devam etsin.
Bilişim alanında olanlar ile sosyal politika belirleme konumunda olanlar için başlıklara göre bazı sloganlar geliştirmiştim. Kağıttan günlüğe dolayısıyla ilgilenenlere aktarıyorum. İsteklere göre ekleme, çıkarma, değiştirme yapılabilir. Bazı sloganlar sadece sektörü ilgilendiriyor gibi, belki onlar üzerinde daha detaylı düşünmek lazım onu da her başlığa ayrı bir açıklama yazarken düzenlemek mümkün olabilir. Tabii (olursa) istekler doğrultusunda.

EĞİTİM
Bilişim Eğitimi Verilecekse Öğretmeni Özgür Yazılım Olmalı...'

KAMU
Bilişim Kamuyu Güçlü Kılacaksa Kurumu Özgür Yazılım Olmalı...'

HUKUK
Bilişim'de Yasalar Olacaksa Anayasası Özgür Yazılım Olmalı...'

İSTİHDAM
Bilişim'le İşsizlik Oranı Düşecekse İş Gücü Özgür Yazılım Olmalı...'

SAVUNMA
Bilişim'de Güvenlik Önemliyse Görevlisi Özgür Yazılım Olmalı...'

BİLİM
Bilişim'de Metabolizme Güçlenecekse Tepkimesi Özgür Yazılım Olmalı...'

GENÇLİK
Bilişim'de Dinamik Bir Nesil Yetişecekse Gıdası Özgür Yazılım Olmalı...'

TURİZM
Bilişim'de Dünyanın Dikkati Ülkemize Yönelecekse Doğal Güzelliği Özgür Yazılım Olmalı...'

SAĞLIK
Bilişim'de İyileşme Olacaksa İlacı Özgür Yazılım Olmalı...'

EKONOMİ
Bilişim'le Tasarruf Edilecekse Kumbarası Özgür Yazılım Olmalı...'

SANAYİ
Bilişim için Fabrika Kurulacaksa Makinesi Özgür Yazılım Olmalı...'

TARIM
Bilişim'den Verim Alınacaksa Tohumu Özgür Yazılım Olmalı...'

POLİTİKA
Bilişim'de Söz Sahibi Olunacaksa Konuşmacısı Özgür Yazılım Olmalı...'

AVRUPA BİRLİĞİ
Bilişim'de Avrupalı Olunacaksa Kültürü Özgür Yazılım Olmalı...'

SİVİL TOPLUM
Bilişim Kapsamlı Örgütlenecekse Konfederasyonu Özgür Yazılım Olmalı...'

KÜRESELLEŞME
Bilişim'le Evrensel Bir Dil Gelişecekse Alfabesi Özgür Yazılım Olmalı...'

SANAT
Bilişim'de Bir Orkestra Kurulacaksa Enstrümanı Özgür Yazılım Olmalı...'
Pardus geçen yıl olduğu gibi bu yıl da Google Summer of Code'a kabul edilen organizasyonlar arasında yeraldı. Hepsi bir birinden önemli bu firmalar arasında bizden birini de görmek mutluluk verici.
Linux bilgisi olan mutlaka lib dizinleri ile karşılaşmıştır iyi ya da kötü şekilde. Burada paylaşımlı olarak kullanılan kütüphanelerin derlenmiş halleri bulunur. Programlar çalışırken de bunları isterler ararlar. Kendi içerisinde bir linklenme vardır yani...


Peki nedir bu lib64 muhabbeti?



x86_64 işlemciler kendi üzerinden x86 mimarisine de destek verdikleri için, x86_64 bir işletim sisteminde 32bitlik kod çalıştırılabilir.(Tabi ki çekirdeğin bu çevirme işi için açık olması gerekmektedir.) 32 Bit derlenmiş programlar için dizin hiyerarşisinde ise lib32 dizinleri oluşmuştur. 64 bit derlenen kütüphaneler içinse (programın derlenme şekline göre değişebiliyor tabi) lib64 dizinine konuluyor. Sonuçta elimizde 3x2 lib dizinimiz olur. Biri kökte, diğeri ise /usr altında. Peki ya elimizde hiç 32 bitlik paylaşımlı kütüphane olmayacaksa (şu anki kurumsal 2 x86_64 gibi)?


Burada bir çözüm olarak lib64 dizinlerini lib dizinine linklemek en basit ve en mantıklı çözüm gibi geldi bize. Neden bu linke ihtiyacımız var sorusuna gelecek olursak; belirli programların lib64 e ihtiyaç duyması ve araması. Hatta bu lib64 sorunu yüzünden bir süre kurulan cd hazırlayamadık.


Peki bu linki kaldırmak mümkün değil mi?



Tabi ki mümkün, tool chain'i düzenlemek gerekiyordu. Burada yapılanlar tabi ki 32bit'lik halini etkilemeyecek şekilde olması gerekiyor. Bunu Onur Küçük bir hafta sonunda yaptı. Diyecek bir söz bırakmadı :) Ancak her paket bu yöntem izlenemiyor. Çünkü ati'nin ekran kartı gibi sürücüleri istediği gibi at koşturabiliyor hala...

Tarih:
20-21 Mart 2010, 11:00-16:30
Yer:
Yıldız Teknik Üniversitesi - Beşiktaş Kampüsü Oditoryum

Gelişimin,yeniliklerin sınırsızlığıyla İnternetimizin getirdiklerini Yıldız Teknik Üniversitesi Bilişim Kulübü gelenekselleşen bir etkinlikle kutluyor, Web Günleri'10 düzenleniyor...

20-21 Mart'ta yapacağımız etkinlik geçen sene bir fikir olarak ortaya atılmış ve kısa bir sürede hayata geçirilmiştir.Ve de ciddi yankı uyandıran bir etkinlik olmuştur. Adına yakışır bir şekilde birçok blogda ve haber sitelerinde yer almıştır.

Bu sene de Web Günleri'nde günümüz bilişim dünyasının yeni çizgisi olan web'i ve gittikçe gelişmekte olan sosyal paylaşım platformlarını ele alan söylemlerin paylaşılacağı etkinliğimizde Internet topluluklarından projelerde yazılım ve güvenlik süreçlerine, Internet girişimciliğinden Internet'in sanal günlüklerine, oluşmaya başlayan sosyal paylaşım kültürü, bilişimde dergiciliğe ve e-dergiye kadar çok geniş konu yelpazesinde oturumlar gerçekleştirilecek.


Etkinlik Programı:

20.03.2010 Cumartesi

11:00 - 11:45 İnternet Televizyonculuğu
Cem Evren Ateş - Pozitif TV
Gökhan Özdemir - Pozitif TV

12:00 - 12:45 Webde Müzik-Video Portalı
Ercan Yarış - fizy.com

13:30 - 14:15 Web Girişimciliği
Ercüment Büyükşener - Sony Club VAIO Türkiye Yöneticisi

14:30 - 15:15 Yoğurt3D(Oyun Motoru) - Yoğurtistan(3D Sanal Dünya)
M. Bahadır Varol - Yogurt Teknolojileri

15:30 - 16:15 Webde Kullanılabilirlik
Mustafa Dalcı - userspots.com



21.03.2010 Pazar

11:15 - 12:15 Webde Kariyer
Ömer Ekinci - Gelistrend.com Kurucusu, 2009 Yılın Genç Girişimcisi

12:30 - 13:30 Blog Yazarlığı
Gabriela Olaru - mutfaktakicadi.com
Murat Karakaş - beyinereksiyonu.com
Yiğit Kalafatoğlu - yicit.com

14:15 - 14:45 Türk İnternetinde Oyun Çağı
Sinan Ata - atagames.com

14:45 - 15:15 Web Tabanlı Oyun Geliştirme ve Anadolu Efesi
Cem Öztürk - anativa.com

15:30 - 16:15 Sosyal Konuk
Zaytung.com Ekibi


Dün QtTürkiye listesine gelen bir mesajı buradan paylaşayım istedim. Sahalarda görmek istediğimiz hareketler bunlar:

> Merhaba arkadaşlar,
> Yaklaşık bir yıldır bu gruba üyeyim. Sorulan sorulara hemen cevap
> verilmesi gerçekten takdire değer. Yine yaklaşık bir yıl önce ben de
> Qt'a merak saldım. Ancak yeterli Türkçe kaynak olmadığını düşünerek
> bahsi geçen kitabı çevirmeye koyuldum. Ve nihayet 12 bölümün
> çevirisinden oluşan bir dokümanı yayınladım. Dokümanı http://www.qtturk.tk
> adresinden indirebilirsiniz. Yeni başlayanlar için yararlı bir kaynak
> olmasını umuyorum.
>
> İyi çalışmalar.
>
> Ufuk Uzun,
> Sakarya Üniversitesi -
> Bilgisayar Mühendisliği(2. Sınıf)
17
Mar
TBD Genç Ankara ve Bilkent IEEE organizasyonunda TÜBİTAK/UEKAE desteğiyle, bu sene ikincisi Bilkent Üniversitesi'nde düzenlenen "2. Pardus Tanıtım ve Geliştirme Günleri"ne davetlisiniz.

TÜBİTAK'ın geliştirdiği Linux tabanlı milli işletim sistemimiz Pardus'un detaylı incelemesinin yapılacağı, nasıl Pardus geliştiricisi olunacağı, Çanakkale Onsekiz Mart Üniversitesi öğrencileri tarafından geliştirilen 64-bit Pardus'un öyküsü, Açık Kaynak-Özgür Yazılım Felsefesi ile ilgili Panel, Pardus kullanıcı toplulukları tanıtımları gibi konularda oturumların düzenleneceği bu büyük etkinliğe sizleri davet etmekten onur duyarız.

Etkinlik, Bilkent Üniversitesi Mithat Çoruh Amfi'de 23-24 Mart 2010 tarihleri arasında düzenlenecektir.

Resmi Pardus ekibinden, akademisyenlerden, firma sahiplerinden bir çok konuşmacının bulunacağı bu etkinliğimize açık kaynaklı yazılım, Linux sistemler ve Pardus gibi konulara meraklı herkesi bekliyoruz.


*** ÖNEMLİ: Etkinliğe kesin gelmeyi düşünüyorsanız sitemizden online kayıt yaptırmanız gerekmektedir. Gelmeyi düşünmüyorsanız lütfen kayıt yaptırmayınız. Hassasiyetiniz için teşekkürler.

Etkinlik sırasında ikramlar olacaktır, promosyonlar dağıtacaktır. İki gündeki toplam 8 etkinlikten dördüne katılan katılımcılara "katılım belgesi" verilecektir.

Etkinlik sitesi: http://2010.pardusgunleri.org/
Etkinlik programı: http://2010.pardusgunleri.org/program
Ulaşım: http://2010.pardusgunleri.org/ulasim
Kayıt: http://2010.pardusgunleri.org/kayit
16
Mar

Last week has mostly been taken up with QCon London. I really had a great time and I would like to give a big thanks to Google for supporting my travel and registration costs.

QCon is a conference focusing on 19 different tracks. Some to mention: Architectures You’ve Always Wondered About, Software Craftsmanship, Functional programming Irresponsible Architectures and Unusual ArchitectsPragmatic Cloud Computing, Agile Evolution, How do you test that? and Browser as a Platform. I attended to one or two talks from almost every track except .Net and Java oriented ones. Keynotes from Dan Ingalls (Forty Years of Fun with Computers), Ralph Johnson (Living and working with aging software) and Robert Martin, aka Uncle Bob (Bad Code, Craftsmanship, Engineering, and Certification) were inspring.

I also got the chance to chat with Dan Ingalls (principal architect of five generations of Smalltalk). I asked him if he follows a method while working (like Pomodore that Dan North recommended in his “Simplicity – the way of the unusual architect” talk). Hopefully, we share a similar characteristic: we can’t work if we don’t like the job but when we like it, we can’t stop working from morning till night.  He recommended me to go where I think I would have the most fun. If something bothers you, it is ok: “If it’s hot, it is hot. If it’s not, it is not!” There’s always something to do when you can’t work; empty the rubbish or wash the dishes. And when you concentrate, start to work again -but know yourself very well.


Me and Dan Ingalls

We also talked about the lack of women in computing. He shared some of his observations; for example in a conference about Wikipedia, he observed there are almost same number of women and men. But when it comes to more technical and less social conferences and events, there are really very few women participating. He also added maybe there’s a genetic factor about this. He has two boys who cannot stop being “boys” –always breaking/fixing things but in fact, that’s what all about the computers!

There are lots of ideas and keys to share, here are some main ideas:

From Uncle Bob’s keynote (slides are available here):

  • Follow the Boy Scout rule: Always leave things a little better than you find.
  • Methods should be less than 20 lines.
  • Don’t have a function that takes a boolean. It is clear that it does two things; one if its false, another if its true.
  • Cut/Paste is bug replication
  • Extract until you drop! Keep extracting until all functions only do one thing
  • Source code represent the design -not the UML tools.

Architectures You’ve Always Wondered About was one of the tracks I wondered about =] Some gems from (Facebook: Architecture and Design) by Aditya Agarwal (Director of Engineering at Facebook):

  • Services of philosophy: choose the tool for the right task. They use Thrift, a lightweight software framework for cross-language development (C++, PHP, Python, Ruby, Erlang, Haskell, etc.)
  • Most important thing in their engineering team: How quickly can you move?

Agarwal said despite being a small team (over 1 million active users per engineer) they do great because of the Facebook culture. There are three very important things in FB:

  • Move fast and break things
  • Huge impact with small teams
  • Be bold and innovate

Agarwal also gave some important tips for MySQL. They have about 6k server-years of runtime experience without data loss or corruption (can you believe it?!) Here are my notes:

  • Don’t ever store non-static data in a central database
  • Data driven schemas make for happy programmers and difficult operations.
  • Logical migration of data is very difficult. Create a large number of logical databases, load balance them over varying number of physical nodes.

There are 1,200,000 photo requests a second in Facebook and scaling takes iteration. They serve 20 billion photos in 4 resolutions =  80 billion photos (which would wrap around the earth more then 10 times!)

  • They use cachr: cache the high volume smaller images to offload the main storage systems, and only cache 300 million images in 3 resolutions. Then disribute these through a CDN to reduce network latency

There are 400 million unique home pages and 50 million operations per second in Facebook. They have a love-hate relationship with memcache; it is easy to corrupt and has a limited data model. But it is simply crucial and it does what it does, really good.

At the end of the talk, I asked to Agarwal about their operating system choice and he told me they are probably  going to use Centos.

One of the most interesting talks was Building Skype. Learnings from almost five years as a Skype Architect by Andres Kütt (architect of Skype). First, some stats:

  • There are about 650 employees at Skype (which makes 800k users per employee)
  • 27.2 billion minutes of Skype to Skype calling per quarter.
  • 210k minutes of calls each minute (71k contains video)

Points Kütt made:

  • Rules of thumb does not apply: It is always tempting to use patterns that have worked previously but they should be used as a starting point for discussion – not as a solution.
  • Functional architecture is important. You neglect how the functionality of your system is organized at your own peril.
  • Simply things work. The simplier things are the more intelligent they are.
  • Buzz words are dangerous: They are both dangerous as carriers of meaningless chance but also as a catalyst for breaking down relationships.
  • Architecture needs to fit your organization. There’s no such thing as a beautiful system design. The design either fits what your organization needs or it doesn’t.

Dan Ingalls keynote was very entertaining. He showed his early codes and he made all the demonstration in Squeak and also shared demonstrations of lively kernel. One wise quote from Ingalls talk:

We’re bad at learning the lessons from the past because:

  • we don’t have enough storytellers and
  • our generation doesn’t listen very well.
  • I have a lot more notes in my Moleskine but I need to take some time to transfer them into the blog.

    I also had the chance to visit the gorgeous O’Reilly stand and buy some books (I even have Erlang Programming and 97 Things Every Project Manager Should Know signed by the authors!)

    I had a great time and I look forward to being back the next time. Thanks to Google, again!

    15
    Mar

    Oldukça eğlenceli bir lisans olan WTFPL (Do What The Fuck You Want To Public License) ile bir program yazma girişiminde girdim. Aslında bu program Pi Günü Şenlikleri için hazırladığım basit bir pi hesaplayıcıdan başka bir şey değil. Ama gene de işe egzotiklik katmak için lisansını WTFPL gibi, adından da anlaşılacağı üzere abzürt bir lisans seçtim.

    WTFPL nedir?

    Türkçeye baya özgün bir çeviri ile Ne Halt Edersen Et Kamu Lisansı şeklinde çevrilmesine karşın orijinal hâli Do What The Fuck You Want To Public License olan bu eğlenceli lisans’ın tek bir maddesi vardır.

    Orijinal metin:

                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                        Version 2, December 2004
    
     Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
    
     Everyone is permitted to copy and distribute verbatim or modified
     copies of this license document, and changing it is allowed as long
     as the name is changed.
    
                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    
      0. You just DO WHAT THE FUCK YOU WANT TO.
    

    Özgün bir biçimde çevrilmiş hâli:

    NE HALT EDERSEN ET KAMU LİSANSI
    Sürüm 2, Aralık 2004

    Telif Hakkı (C) 2004 Sam Hocevar <sam@hocevar.net>

    Herkes bu lisans belgesini kopyalama ve dağıtma hakkına sahiptir,
    ayrıca ismi değiştirildiği sürece değiştirilmesine de izin verilmektedir.

    NE HALT EDERSEN ET KAMU LİSANSI
    KOPYALAMA, DAĞITMA VE DEĞİŞTİRME İÇİN ŞART VE KOŞULLAR

    0. Sadece, NE HALT EDERSEN ET.

    Yazdığım basit program:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #
    # Copyright 2010 Göktuğ Korkmaz
    # Licensed under the “Do What The Fuck You Want To Public License” (WTFPL), version 2.
    # See the file http://sam.zoy.org/wtfpl/COPYING
    # Lisansın Türkçesi http://www.ozgurlukicin.com/forum/haberler/14607/
    #
    # PiMan
    # Pi sayısının yaklaşık değerini hesaplamak için kullanılmış basit ama hızlı, terminal tabanlı bir uygulamadır.

    import math
    print “Resmi kaynaklara göre pi sayısı = 3,14159265358″
    n=int(raw_input(“N kenarlı çokgene göre pi sayısının yaklaşık değerini hesaplamak için bir N sayısı belirleyin: “))
    print “Hesaplanıyor…”
    sum=0
    for i in range(1,n,1): sum = sum+(1.0/(i*i))
    p=math.sqrt(6*sum)
    print “N kenarlı çokgene göre pi sayisinin yaklaşık degeri =”,p

                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                        Version 2, December 2004
    
     Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
    
     Everyone is permitted to copy and distribute verbatim or modified
     copies of this license document, and changing it is allowed as long
     as the name is changed.
    
                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    
      0. You just DO WHAT THE FUCK YOU WANT TO.
    

    Filed under: Özgürlükİçin Gezegenine Tagged: Öpözgür yazılım, Özgür Yazılım, Özgürlükİçin Gezegenine, Komedi, Linux, Pi sayısı, WTFPL, yeeehuuuuu!!!
    13 Nisan 2010 tarihinde Yakın Doğu Üniversitesi'nde düzenlenecek olan I. Uluslararası Kuzey Kıbrıs Özgür Yazılım Konferansına katılacağım. Erdinç ve Oğuz'la dört gün geçirebileceğim çok iyi bir fırsat olacak benim için. İnternetin babasının da konuşmacılar arasında bulunacağı pek güzel bir etkinlik olacak. Fırsatı olanları bekleriz.

    ULAKBIM'deki bazı servislerimizin yedeklerini ve muhtemelen Pardus 2011 derleme tarlasını barındıracağımız sunucumuza PAE destekli bir Linux paketi kurup 4GB üzeri RAM'i yalandan kullanmak yerine, Kurumsal 2 x86_64 kurdum bugün.

    Üniversite kütüphanesinin tozlu raflarında kalmaya mahkum olmayan bir bitirme tezi hikayesindeki ufak bir paragraf bu. Tarih 15 Mart 2010.

    Başta ÇOMÜ asıllı Pardus geliştiricileri olmak üzere, emeği geçen herkese teşekkürler.

    Bu yazı içerisinde PHP ile memcache havuzlarına ait bilgileri alan Memcache fonksiyonundan bahsedeceğim.
    Örnek olarak kullanacağım memcache ip ve portu şu şekilde:

    • IP: 10.0.0.100
    • Port: 20000

    Memcache portları birer havuzu temsil etmekte. Aynı sunucu üzerinde birden fazla port için memcache havuzları oluşturabilirsiniz. Bu havuzdan alacağım bilgiler ise şunlar:

    • Aktif Öğe Sayısı (Currents ıtems)
    • Aktif Bağlantı Sayısı (Current Connections)
    • Port Numarası
    • Süreç Numarası (Pid)

    Bu bilgileri almak için Memcache sınıfına ait getStats() fonksiyonunu kullanıyoruz.
    Php kodu:

    <?php
    $ip="10.0.0.100";
    $port=20000;
    $memcache = new Memcache;
    $memcache->connect($ip,$port);
     
    $status=$memcache-&gt;getStats(); // Memcache istatistiklerini bir değişkene atıyoruz (dizi şeklinde alınıyor)
     
    #Çıktı kodlarımız
    echo "Süreç No:". $status['pid'] ."<br/>";
    echo "Öğeler:". $status['curr_items'] ."<br/>";
    echo "Bağlantı Sayısı:". $status['curr_connections'] ."<br/>";
    echo "Port No:". $port ."<br/>";
     
    ?>

    Bu kodun çıktısı şu şekilde olacaktır (sayısal ifadeler örnek olarak verilmiştir):

    Süreç No: 741
    Öğeler: 152
    Bağlantı Sayısı: 321
    Port No: 20000

    14
    Mar

    GIMP 2.8 sürümü için çalışmalar devam ederken dikkatimizi çeken bir başka nokta da Krita‘da yaşanan gelişim süreci. Pardus depolarından  indirdiğim Krita 2.0.2 sürümü açıkçası beni fazlasıyla etkiledi. Örneğin yazı aracının sahip olduğu yetenekler kullanıcının işini oldukça kolaylaştırıyor. Alt/üst indis, metin içinde istediğin harfin yazıtipini, biçimini değiştirebilmek… Kısa sürede bu noktaya gelişi takdire şayan.

    Öncelikle tamamen kendisine ait bir web sitesine sahip olmuş. Bu sitede Krita’nın gelişim sürecini hafta hafta takip edebiliyorsunuz. Forum bölümünde soru/sorunlarınıza cevap bulmak, Krita ile tasarlanmış güzel çalışmaları görmek mümkün. Yeni sürümle birlikte kullanıcı rehberini (Krita Hand Book) de yenilemeye başlamışlar ama henüz başlangıç aşamasında. Bir başka eksik kalan nokta da derslerin (tutorials) olmayışı.

    Krita önemli özelliklere sahip. GIMP 2.8 yeni özellikler yazısını okuyanlar beklenen özelliklere Krita’nın şu an sahip olduğunu duyduklarında şaşıracaklardır. Tuhaf ama gerçek bu. Hızlı bir gelişim süreci içinde Krita. Tabi bu noktaya gelinmesinde  GIMP tarafından da tartışılan ve pek kabul görmeyen ücretli geliştirici tutma politikasının etkisi görülüyor. (Gerçi GIMP geliştiricileri 2000′li yılların başlangıcında bu yöntemi GEGL için denemişler ve sonuç alamamışlardı. Şu anki tutumları yaşadıkları olumsuz tecrübeden kaynaklanıyor olsa gerek.)

    Krita’nın bizlere sunduğu özellikleri kısaca göz atalım;

    Dosya Formatları

    • bmp: sadece dışa aktarma
    • jp2:
    • jpeg
    • ora
    • pdf: sadece içe aktarma
    • png
    • ppm
    • raw: sadece içe aktarma
    • tiff
    • xcf: sadece içe aktarma

    .gif ve .psd dosyaları için çalışmalar devam ediyor.

    Katman Çeşitleri

    • Katman Grupları: katmanları belli bir hiyerarşi içinde gruplar
    • Boya Katmanı
    • Fitre Katmanı
    • Kopya Katman
    • Vectör Katman
    • Transparency Mask: İlişkili katmanların parçalarını maskeler.
    • Filtre maskesi
    • Bölgesel seçim maskesi

    ARAÇLAR

    Vektörel Araçlar

    • Nesne Manipülasyon aracı
    • Bağlantı aracı
    • Yol aracı
    • Serbest yol aracı
    • Şablon aracı
    • vector shape filter tool
    • Güzel yazı aracı
    • Gradyen aracı
    • Zoom aracı
    • pan aracı

    Izgara Araçları

    • Serbest boya
    • Çizgi
    • Dörtgen
    • Elips
    • Çokgen
    • Çoklu Çizgi
    • Başla
    • Darbelenmiş yol
    • dynatool
    • Renk veya desenle doldur
    • Renk seçici
    • Gradyen

    Tuval Araçları

    • Kırp
    • Katmanı taşı
    • Dönüştürme aracı
    • Mesafe hesaplama

    Kılavuz Araçlar

    • Cetvel
    • perspektif ızgara
    • Izgara

    Seçim Araçaları

    • Dörtgen seçim
    • Eliptik seçim
    • Çokgen seçim
    • Ana hatları seç
    • Seçimi doldur
    • Benzer renkleri seç
    • Yol seçim

    Renk Modelleri

    • RGB: 8, 16 bits integer, 16, 32 bits floating point
    • CMYK: 8, 16 bits integer
    • Grayscale: 8, 16 bits integer
    • La*b*: 16 bits integer
    • YCbCr: 8, 16 bits integer
    • XYZ: 16 bits integer, 16, 32 bits floating point
    • Painterly colorspaces: colorspaces that represent 3-10 wavelength channels in 16/32 bits floating

    Krita bunların yanında çeşitli fırça motorları ve filtreler ile kullanıcılarına bir çözümler bütünü sunuyor. Peki görünüm ve işleyişi ile Photoshop muadili olma yolunda önemli gelişmeler kaydeden Krita yerine neden hala GIMP kullanılsın ki? Bu sorunun cevabı kişiden kişiye değişir. Benimkileri şu şekilde sıralayabilirim;

    • Zengin filtre, fırça ve desen seçenekleri.
    • Her geçen gün sayısı artan kaliteli betikleri.
    • .gif desteği. Özellikle animasyonlar için. (Henüz Krita’nın .gif desteği yok)
    • Desteklediği uzantıların çokluğu.
    • GAP
    • Çok sayıda kullanıcı forumu olması
    • Geniş kullanıcı kitabı, uygulamalı derslerin çokluğu
    • TR desteği
    • Geniş kullanıcı kitlesi.
    • Krita’nın çizim üstüne odaklanması.
    • Yukarıda bahsedilen özelliklerin yakın zaman içinde GIMP’e eklenecek olması.
    • Tabi ki uzun süredir kullanmanın vermiş olduğu alışkanlıklar.
    • GIMP üç platformda da ( Linux, Mac, Win) bilinen bir marka.
    Pardus 64 bit projesi ile ilgili teknik ve teknik olmayan yazıları bundan sonra kendi günlüklerimiz yerine 2uzeri6.blogspot.com adresinde yazacağız. Rss okuyucularınızın ayarlarıyla oynayabilirsiniz.
    13
    Mar

    Bu yazı, staj başvurusunda bulunmak isteyenler ve Özgürlük İçin Podcast'teki staj ipuçları bölümü sonrası gözü korkanlar için. Staj başvurusunda bulunmak istemiyorsanız, Öİ Podcast'i dinlemediyseniz ya da gözünüz korkmadıysa bu yazısı okumayabilirsiniz :)

    Geçen sene, staj duyuruları sonrası "Programcılar CV'leri Nasıl Okur?" başlıklı bir karikatürden bahsetmiş, başvuru yapanların nelere dikkat etmesi gerektiğini göstermeye çalışmıştım. Bugün yayınlanan Podcast'i dinlerken, karikatürün gereğinden fazla ciddiye alınabileceğini fark ettim. Sevgili Seda (Akay) ve Gizem (Belen), karikatürdeki "işletim sistemi ya da derleyici yazdıysanız puan kazanırsınız" derken, duyduklarım beni bile ürküttü. Geçen sene o karikatürü günlüğümde yayınlamam ve Gizem'e "geçen sene gönderdiğim karikatürde güzel tavsiyeler var" demem o kadar da iyi bir fikir değildi sanırım.

    İşletim sistemi ya da derleyici yazmadıysanız, 3+ programlama dili bilmiyorsanız, bilgisayar kulübüne başkanlık yapmadıysanız, yarışma kazanmadıysanız korkmayın. Benim çizmediğim bir karikatür bu, bazı maddelerini çok beğendiğim için eklemiştim günlüğüme. Okunmasını tavsiye ederim (hâlâ), ama çok fazla da ciddiye almayın. "Pardus'a staja girmek, TÜBİTAK sınavını geçmekten zor" diye söylenmeyin, yok öyle bir şey :)

    Ek: Karikatürü, Podcast'e konu olsun ve ziyaretçi sayım artsın diye yayınladığıma dair iddialar asılsızdır :)

    Bildiğiniz üzere Özgürlük İçin E-Dergisi'nin 20. sayı editörlüğünü ben yapıyorum. Şu başlıkta belirttiğimiz gibi bu sayımızın konusu Pardus ve Masaüstü Ortamları olacak. Bu ay Sürüm Camia Temsilcisi sevgili, Kubilay KOCABALKAN ile röportaj gerçekleştireceğiz. Kendisine sormak istediğiniz soruları şu başlık altından sorabilirsiniz. Yazıların son teslim tarihi 15 Mart olarak belirlenmiştir.

    Bu sayı ile ilgili çalışmaları şu başlık altından izleyebilirsiniz...