Skip to content

Google page rank sorgulama

09-Oct-11

Bugün bir iş için pagerank betiğine işim düşünce farkettim ki Google, “seo’cularin” gözbebeği olan Pagerank değerinin sorgulama sayfasında değişikliğe giderek kullandığı adres formatını değiştirmiş. Hatta son birkaç gündür forumlar ve twitter üzerinde bu konu ile ilgili çok yoğun bir mesaj trafiği varmış.

Elimdeki perl ve python betiklerinin çalışmadığını görünce ve güncellemelerden de hayır gelmeyince betiği kendim güncelleyerek github hesabıma eklemeye karar verdim. Yeni URL ve shell kullanımı ile ilgili bir iki satır ekledikten sonra commit ettim. Betiğin son haline http://github.com/dirigeant/google-pagerank adresinden ulaşılabilir. Betiği kabukta, istediğiniz adresi argüman olarak vererek ya da uygulamanızdan, kütüphane olarak çağırarak kullanabilirsiniz.

Son olarak belirtmek isterim ki, bu betik örnek bir çalışma olarak dağıtılmakta olup, kullanımından doğabilecek her türlü sorundan kullanıcının kendisi mesuldür. :)

Technorati Aktivasyon Postası

06-Aug-11

Yıllar önce Tantek Çelik sayesinde adını duyduğum microformats mevzusunu incelerken denk gelmiştim Technorati’ye. O zamanlar bu kadar büyük bir network olmadığından, sosyal medya, web 2.0 konularının henüz esamesi okunmadığından olayını pek anlayamamış, üstüne de düşmemiştim. Yıllar sonra, yeni işlere girişmenin arifesinde tekrar karşıma çıktı, bu sefer daha anlaşılır ve kullanışlı haliyle. Ben de sosyal medya canavarı modunda hemen blog’umu sisteme kaydettirdim. Biraz kurcaladıktan sonra hakkında bir iki satır yazar, laf kalabalığı yaparım belki.

Kendileri benim bu blogun yazarı olduğuma inanmak için aşağıdaki kodu sitemde yayınlamam gerektiğini söylediler. Ben de bu yazıyı vesile edip aktivasyon işini aradan çıkarayım dedim :)

TRP9HKGQEFJF

Mobil Safari Notları

06-Jul-11

ios ile gelen safari diğer sürümlerinden farklı bir arayüze sahip, bir takım özellikleri de azaltılmış/değiştirilmiş durumda.

Bunlardan dikkatimi çeken ve çözüm bulabildiğim iki tanesi şöyle.

1- Sayfa içi arama

Kısayolları kullanarak arama kutusunu açma şansımız olmadığından bu özellik sağ üstteki arama motoru kutusuna entegre edilmiş durumda. Pek dikkat çeken ve akla gelecek bir yer değil ama hiç yoktan iyidir.

Bir web sayfası açıkken arama kutusuna tıklayarak açılan menünün en altında sayfa içindeki sonuçlara ulaşabiliyoruz.

20110705-234447.jpg

2- Sayfa kaynağı görüntüleme

Web işlerinin arkaplanı ile ilgilenenler için sayfa kaynağı en sık görüntülenen ekranlardan. Fakat safaride bu özellik de bulunmuyor. Sayfa kaynağını görüntülemek için javascript kullanarak bir çözüm üretmek mümkün.

Öncelikle bu sayfayı yer imlerine ekleyin. (Valla örnek olsun diye söylüyorum, reklam olsun diye değil :) )

20110706-000128.jpg

Daha sonra yerimini düzenleyin ve aşağıdaki javascript kodunu hedef adres olarak girin.

javascript:var%20sourceWindow%20%3D%20window.open%28%27about%3Ablank%27%29%3B%20%0Avar%20newDoc%20%3D%20sourceWindow.document%3B%20%0AnewDoc.open%28%29%3B%20%0AnewDoc.write%28%27%3Chtml%3E%3Chead%3E%3Ctitle%3ESource%20of%20%27%20%2B%20document.location.href%20%2B%20%27%3C/title%3E%3C/head%3E%3Cbody%3E%3C/body%3E%3C/html%3E%27%29%3B%20%0AnewDoc.close%28%29%3B%20%0Avar%20pre%20%3D%20newDoc.body.appendChild%28newDoc.createElement%28%22pre%22%29%29%3B%20%0Apre.appendChild%28newDoc.createTextNode%28document.documentElement.innerHTML%29%29%3B

Daha sonra bu yerimini tıkladığınızda yeni bir sekmede sayfa kaynağını görüntüleyebilirsiniz.

iPad notları – Girizgah

04-Jul-11

Son dönemlerde sürekli yeni teknolojik oyuncaklar piyasaya çıkıyor. Arz kendi talebini yaratıyor, insanlar bu ürünleri kapışıyorlar. Ben de maddi durumlar, alternatiflerin çokluğu, kararsızlıklar derken bu gelişmeleri bir süredir kişisel bilgisayarım bile olmadan, uzaktan iç çekerek takip ediyor(d)um. Lakin geçen hafta yeni bir hayata başlamanın arifesinde altyapı yatırımı olarak bu zinciri kırmaya karar verdim.

3kg’luk laptop taşımaktan belim büküldüğünden buna daha fazla dayanamayacağımı düşünüp netbook almaya karar verdim. Geçmişten kalma alışkanlıkla, netbookların en gelişmişini hedeflemek yerine bana en uyanını aramaya başladım. Açıkçası makine başında vaktimin çoğu uzak makinelere bağlı siyah ekranlarda geçtiğinden hedefimi pek de yüksek tutmadım. Tam kendime uygun netbooklar bulmuşken, tabletlerin de netbooklardan aşağı kalmadığını, hatta taşınabilirlik yönünden çok daha iyi olduğunu ve gerekirse aparatlarla netbook gibi de kullanılabildiklerini gördüm. Tuba’dan da az biraz gaz alınca fikrimi değiştirdim ve yolun sonunda bir iPad sahibi oldum.

Cihazın incelemeleri, detayları heryerde mevcut. Zaten bu konularda bana pek laf düşmez. Ama cihazı kullanırken karşılaştığım sıkıntıları, çözüm yollarını buraya kısa kısa not edeceğim. Benim gibi bu dünyaya yabancı, aynı yollardan geçen birilerine faydası olursa ne ala.

Google Summer Of Code 2011

19-Mar-11

Google Summer Of Code

Google’ın yükseköğretim öğrencilerini özgür yazılımlarla buluşturan projesi Google Summer Of Code bu yıl da başladı.
Yaz tatilinde özgür yazılımlara katkı vermek bir yandan da para kazanmak isteyen öğrenciler için kaçırılmayacak bir fırsat.

Programa katılmak için başvuru yapan yüzlerce özgür yazılım projesinden kabul edilenlerin listesi 18 Mart itibari ile açıklandı. Projeler tarafından önerilen fikirler öğrencilere sunuldu ve öğrenciler proje fikirlerini inceledikten sonra 28 Mart’ta başvurular alınmaya başlayacak.

Son üç – dört yıldır her geçen yıl daha fazla sayıda Türk öğrenciyi GSOC’ta görüyoruz. Sağolsun Necdet hoca Google’dan bile önce katılan arkadaşları listeliyor. Fakat bu yıl Türkiye’deki öğrencilerin önünde bir de sansür engeli var. GSOC hakkında tüm işlemleri gerçekleştirileceği Google Melange sitesi sansür engeline takıldığı için açılmıyor.

Başvuru yapmayı düşünen öğrenci arkadaşların en azından katılımcı organizasyonların linklerini ve “Ideas” sayfalarının bağlantılarını görebilmesi için ilgili sayfayı yansıladım. http://www.tsdesign.info/gsoc2011.html adresinden bu bilgilere ulaşmak mümkün. Umarım başvurular başlayana kadar sayfa üzerindeki sansür perdesi kalkar da başvuru sırasında da türlü taklalar atmak zorunda kalınmaz.

Uluslararası Serbest Çalışanlar Günü (International Freelancers Day)

21-Sep-10

* serbest (özgür) çalışan => freelancer.

İnternet üzerinde yapılabilecek işler arttıkça, insanların kendilerini gösterebileceği ortamlar çoğaldıkça, kendi işinin patronu olup hayatını daha özgürce yaşamak isteyenlerin sayısı da artıyor. İşi bilgisayar olup mesaiye mahkum olmadan çalışmak isteyenler bağımsız çalışmayı tercih ediyor.

Bu yolu tercih etmiş serbest çalışanları buluşturmak, yeni başlayanlara yol göstermek, tecrübeli serbest çalışanların tecrübelerini paylaşmak için 24-25 Eylül tarihlerinde “Uluslararası serbest çalışanlar günü (internation freelancers day)” adında iki günlük bir konferans düzenleniyor. Konferans adına yakışır şekilde internet üzerinden yapılacak. Katılmak isteyenler http://www.InternationalFreelancersDay.com adresinden ücretsiz kayıt yaptırabilirler.

Ruby on Rails and Thin server

26-Jul-10

Rails hatta ruby hakkında sıfır denebilecek kadar az bilgim var. Fakat firma olarak yazılım geliştirirken ruby on rails kullandığımız için sunucu kurulumlarında elimi ruby’e rails’e bulaştırmak durumunda kalıyorum.

Bugün yine belgeler ve Alper (Karapınar) eşliğinde bir test sunucusuna kurulum yaptım. Sunucudaki rubygems, rails vb. sürümlerinin güncellemesi, eksik kalan gem’lerin kurulması gibi standart prosedürlerden sonra rails ile gelen webrick’i başlattık ve sayfaları görmeye niyet ettik. Niyet ettik diyorum çünkü sunucu yerel ağda olmasına rağmen sayfaları görebilmek pek mümkün olmadı. Her ne kadar rails sayfayı 1 saniyeden kısa sürede oluşturduğunu iddia etse de istemciye sayfanın ulaşması saniyeler sürüyor hatta bazen hiç yüklenemiyordu.

Biz de test sunucusu kullanıyor olmanın verdiği rahatlıkla Thin [1] denemeye karar verdik. Proje sayfasını açınca çıkan grafik oldukça iddialıydı ve bizim derdimize derman olacağını söylüyordu.

Durumun gerçekten böyle olup olmadığını görmek için hızlıca

gem install thin

ile thin’i kurup. Proje dizini içinde

thin start

diyerek sunucuyu çalıştırdık. Çalışacak ikinci yazılım için de tahmine binaen eklediğimiz -p parametresi ile port belirtmeyi başarınca birkaç dakika içinde ağlayan bir sunucudan uçan bir sunucuya terfi etmiş olduk.

Dediğim gibi ruby’den veya rails’den anlamam ama şu açıkça ortadaki thin ile sayfalar rails’in oluşturduğu hızda istemciye iletilmiş oluyor.

[1]: http://code.macournoyer.com/thin/

pfSense ile multi-wan failover – yük dengeleme kurulumu

07-Jul-10

Geçtiğimiz hafta boyunca iki adsl hattını kullanarak failover yapısı oluşturabileceğimiz bir sistem kurmak için uğraştım. Bu işi yapabilen bir takım donanımsal çözümler bulunmasına rağmen öncelikli hedefimiz bu yapıyı özgür çözümlerle oluşturmak olduğu için internette sistem avına çıktım.

Yaygın kullanılan sistemlerde bu işin nasıl yapılacağından, bu gibi işler için özelleşmiş dağıtımlara kadar birçok seçeneği araştırdım. Genel intiba özelleşmiş sistemlerle, arayüzlerle uğraşmadan sistem tarafında gerekli kuralları yazarak bu işi yapmanın daha kolay olduğu yönündeydi. Lakin sistemi teslim edeceğimiz sistem yöneticisine bir arayüz de sunmak istediğimiz için arayüz üzerinden ayar yapabileceğimiz çözümlere yöneldik. (İşbu noktada insanların söylediği gibi arayüzün daha zahmetli olduğunu tecrübe ettim.)

More…

“Türkiye sansüre dayalı bir ülke değil.” (!)

17-Oct-09

“Türkiye de sansüre dayalı bir ülke değil.”

Bu söz  Dışişleri Bakanı Ahmet Davutoğlu’na ait.[1] Hem de öyle eski zamanlarda söylenmiş bir söz değil, bakan, bunu bugün, sansür gazeteleri, televizyonları aşmış, yeni yüzyılın özgürlük kaynağı interneti zaptetmeye çalışırken zaptetmişken söylemiş.

Sadece 4 gün sonra gelen düzenleme: Hiçbir şekilde sansür uygulamayan TRT’ye, sansüre dayalı bir ülke olmadığımız için TRT’den bunu yapmasını isteyemeyen hükümete ve bölgenin stratejik olarak en üstün, en sözü geçen, kimseden etkilenmeyen ülkesi olmamıza rağmen nasıl olduysa bahsi geçen dizinin son bölümünde dizinin hikayesiyle tamamen alakalı sahneler makaslanmış (gereksiz görülmüş, kaldırılmış teferruat sahneler değil yani)[2]. Radikal’in konuyla ilgili ikinci haberine göre de hikayenin yönü filistin/israil ilişkilerinden duygusal ilişkilere doğru kaydırılmış [3].

Daha üzerinden 1 hafta bile geçmeden bir bakanımızın söylediği sözün doğru olmadığının ortaya çıkmasına mı, bu gerçeğin ortaya çıkmasının konuyla ilgili kimseyi olumsuz etkilemeyeceğine mi, yoksa hepsinden beteri göz göre göre sansür batağında boğulduğumuza mı yanalım bilemiyorum.

Gazetelerde, televizyonlarda, sanat dünyasında son yıllarda hiç denk gelmediğimiz (!) sansür vakalarına örnekler;

1 2 3 4 5 6 7 8 9 10

Devletin yaptığı sansürün yanısıra sansürle alakası olmayacak insanların bile korkuları yüzünden otokontrol adı altında sansüre başvuruyor olması da işin asıl kötü yanı.

[1]: http://www.hurriyet.com.tr/gundem/12711010.asp?gid=229

[2]: http://bit.ly/22YqRM

[3]: http://bit.ly/BU8Cb

Pardus 2008 üzerinde PTSP Sunucu Kurulumu

21-Aug-09

Bu yazıda PTSP sunucusu kurmak için gerekli adımları kısaca yazdım. Basit birkaç adım olmasına rağmen el altında yazılı halde bulunması, detayları kaçırıp sorun yaşama ihtimalini azaltıyor. Yazıda belirtilen değişiklikler yapıldıktan sonra oluşan dosyalar için örnekler yazının sonunda.

Tarball Oluşturma (isteğe bağlı)

İnce istemcilerinizde Pardus depolarında bulunan ptsp paketlerindekinden çıkan uygulamalar dışında uygulamalar bulunmasını istiyorsanız build-client.py dosyasında PACKAGES listesine istediğiniz paketleri ekleyin ve build-client.py dosyasını çalıştırın.
http://svn.pardus.org.tr/pardus/2008/stable/server/ptsp/ptsp-server adresinden kaynak paketi indirip “Archive” bilgilerini yeni oluşturduğunuz tarball ile değiştirip paketi derleyin.

KDM Ayarları

/etc/X11/kdm/kdmrc dosyasından Xdmcp’yi açın.

DHCP Sunucu Ayarları

Sisteminizde birden fazla ağ arayüzü varsa /etc/conf.d/dhcpd dosyasında dhcp sunucusunun dinleyeceği ağ arayüzünü belirtin.

/etc/dhcp/dhcp.conf dosyasında bir subnet yaratıp.

  • ip havuzu aralığını (range)
  • istemci sistemi için kullanılacak kök dizini (option root-path)
  • tftp sunucusunun ip adresini (next-server)
  • pxe dosyasının yolunu (filename)

belirtin.

Adres çözümlemesi yapılabilmesi için her istemci için bir host tanımlayın ve

  • MAC adresini (hardware ethernet)
  • IP adresini (fixed-address)
  • Makina adını (option host-name)

belirtin.

NFS Sunucu Ayarı

İstemci sistemi için kullanılacak kök dizini ve ilgili seçenekleri /etc/exports dosyasında tanımlayın.

DNS Ayarları

/etc/hosts dosyası içine her istemci için dhcpd.conf dosyasındakine uygun olarak “ip – hostname” çiftlerini belirtin
Eğer sunucunuzun ip adresi 10.0.0.1 dışında bir adres olacaksa /etc/pts-client dosyasını düzenleyin.

Son olarak sistemi çalışır hale getirmek için tftp, dhcp, nfs_utils ve portmap servislerini başlatın.

Örnek Dosyalar

/etc/dhcp/dhcpd.conf:

ddns-update-style interim;
ignore client-updates;

max-lease-time 500;
default-lease-time 500;
option routers 10.0.0.1;
option domain-name-servers 193.140.100.210, 193.140.100.215, 4.2.2.5;
option subnet-mask 255.255.255.0;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.2 10.0.0.25;
option root-path “10.0.0.1:/opt/ptsp”;
next-server 10.0.0.1;
filename “/pts/latest-ptsp/pxelinux.0″;

host client1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 10.0.0.2;
option host-name “client1″;
}
host client2 {
hardware ethernet 00:11:22:33:44:56;
fixed-address 10.0.0.3;
option host-name “client2″;
}
}

/etc/exports:

# /etc/exports: NFS file systems being exported.  See exports(5).
/opt/ptsp       10.0.0.0/255.255.255.0(ro,no_root_squash,no_subtree_check,sync)

/etc/X11/kdm/kdmrc:



[Xdmcp]
Enable=true
Willing=/usr/kde/3.5/share/config/kdm/Xwilling

/etc/hosts:

# /etc/hosts
#
# This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem.  It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# “named” name server.  Just add the names, addresses
# and any aliases to this file…
#

127.0.0.1 localhost PTS-pardus

# Lab machines
10.0.0.2 client1
10.0.0.3 client2