20
Nis
Daha 2.8'in ilk sürüm adayının duyurulmasının üzerinden çok zaman geçmemeşti ki GIMP geliştirici topluluğundan yeni bir haber gelmekte gecikmedi. Her şey planlandığı gibi giderse GIMP 2.10 hesaplamalar için tamamen GEGL'i (Generic Graphics Library) kullanacak. Bu parlaklık, kontrast, renk tonu veya renk doygunluğunu değiştirmek gibi tüm işlemler için 16-bit renk derinliği vaat ediyor.

Geliştirici Michael Natterer günlüğünde Øyvind Kolås ve kendisinin evde bir haftalık kodlama çalışmasının bir parçası olarak GEGL'in etrafında oynamaya başladıklarını yazıyor. GIMP şu anda piksel bilgilerini saklamak için TileManager isimli bir bileşen kullanıyor ve Natterer ile Kolås ayrıca bilgileri saklamak için TileManager kullanan bir GEGL arka ucu yazdı. Natterer'ın söylediğine göre arka uç sadece birkaç saatlik programlamadan sonra çalışmaya başladı ve bundan sonraki işlevleri GEGL'e aktarmak nispeten daha kolay olacak. Bir hafta olması planlanan evde programlama tatili üç haftalık bir GEGL aktarım çalışmasına dönüştü ve sonuçta GIMP'in özelliklerinin %90'ı GEGL aracılığıyla kullanılabilir oldu.

Yakında çıkacak olan 2.8 sürümü GIMP 1.2'den beri pek fazla değişime uğramamış piksel işleme çekirdeğini kullanacak, GIMP 2.10 sürümününse tamamen yeni grafik kütüphanesini kullanması planlanıyor.

GEGL portu şu an goat-invasion dalında bulunuyor. GIMP 2.8'in yayınlanmasıyla bu dala geçilecek, böylece GIMP 2.9'un ilk geliştirme sürümleri de halihazırda bu port çalışmasını içerecek.

GIMP ve GEGL ilgili konuları geliştiricilerle yüz yüze tartışmak isterseniz iki haftadan daha az bir süre içinde Viyana'da gerçekleştirilecek olan ve GIMP topluluğundan pek çok kişinin de bulunacağı Libre Graphics Meeting'e katılabilirsiniz.

Tüm bu güzelliklere katkı vermek istiyorum ama tek satır kod yazmayı dahi bilmiyorum diyorsanız ve tüm bunların yanı sıra nereye kullansam diye düşündüğünüz birkaç liranız varsa Libre Graphics Meeting'e bağışta bulunabilirsiniz. Libre Graphics Meeting, GIMP geliştiricileri ve diğer projelerden insanların görüşmesi için çok az fırsattan biri ve bu tip toplantılar her zaman gelişim için büyük bir destek sağlar.

Kaynaklar:

25
Mar

Google bundan yaklaşık 2 ay önce “1 Mart” ‘ta yeni gizlilik politikasına geçeceğini açıklamıştı. [1] Bu yeni gizlilik politikasıyla Google nerdeyse her ürünü için ayrı olan gizlilik politikasını kaldırıp “tek bir politika” haline getirdi.

Ancak ; bu yeni politikayla Google tarayıcımız, işletim sistemimiz gibi bilgilerin yanında bizim için daha özel olan kişisel bilgilerimizi, arama sonuçlarımızı, izlediğimiz videoları, çevirdiğimiz sözleri ve bunun gibi Google’a verdiğimiz bütün bilgileri de toplayacağını açıklıyor. Zaten daha önceden Google’ın bazı bilgileri Amerika Ulusal Güvenlik Teşkilatı (NSA) ‘na verdiği biliniyordu. Hatta ilk kuşkularımın başladığı bu oalyı ben de bazı sitelere bunu yazmıştım. [2] Şimdi Google daha fazla bilgimizi edinebilecek, depolayabilecek ve ne yapacağına kendisi karar verecek. Benim gibi Google kullanıcı bundan kaçabilir ama bu şartlarda Android kullanıcılarının halini düşünmek bile istemiyorum.

Bu durum altında birçok kişi gibi ben de Google’ı bırakıp başka alternatifler aramaya başladım. Bu alternatiflerin en iyisi Türkiye piyasasına yeni girmiş “Yandex” oldu. [3] Ve kullandığım Google hizmetlerini kapatmaya başladım.

Artık;

Arama motoru olarak Google değil Yandex’i kullanıyorum.

Video izleyeceğim zaman Youtube değil alternatiflerini kullanıyorum (vimeo v.s.).

Müzik dinleyeceğim zaman da kullandığım Youtube’u bıraktım. Fizy, GrooveShark gibi alternatiflerin yanında yakında Yandex’in Müzik servisi Türkiye’ye geliyor.

Kullandığım 2 GMail’den birini kapattım. Kapatırken Web Geçmişi gibi verilerimi sildim.Diğeri ne olur ne olamz diye duruyor. Kendime bir Yandex Mail açtım ve Mail’lerimi ona yönlendirdim. Şuan gezegenci@yandex.com ve umut@kodlab.com.tr ‘yi kullanıyorum.

İnternet tarayıcım olan Chrome’u bırakıp eski tarayıcım Firefox’a döndüm. Yeni sürümü 11 gayet iyi olmuş.

Google Analitcs’i bırakıp Yandex ve Alexa alternatifine geçtim.

Google + hesabım da haliyle kapandı. Hala FB ve Twitter kullanıyorum.

Google Reader yerine de Yandex’in yayınlarına geçtim. Bir çok alternatif aksine bu o kadar başarılı değil.

Google’ın bomboş anasayfasından ve tasarımı kötü olan iGoogle’dan sa Yandex’in sade anasayfası çok daha iyi duruyor.

Ayrıca hayatım boyunca toolbar’lardan nefret etmeme rağmen şuan çok iyi tasarlanmış işlevsel Yandexbar’ı kullanıyorum. Bu kadar iyi olacağını düşünmemiştim.

Şimdilik yaptıklarım bu kadar. Bu konuda herhangi bir soru ya da görüşünüz olursa bana ulaştırabilir ya da yazıya yorum yazabilirsiniz. Zaman ayırdığınız için teşekkürler :)

[1] http://www.google.com.tr/policies/privacy/
[2] http://www.turkhukuksitesi.com/showthread.php?t=47116
[3] http://yandex.com.tr

20
Eki
İnsanın projesine destek olmak istiyorum denmesi sevindirici bir şeymiş. Bu aralar Happy Kitty'de başıma bir iki kez gelince fark ettim. Henüz tüm belgeleri oluşturamadığım için şu an doğrudan bana ulaşılıyor ama bu durumu yavaştan değiştirmeliyim kesinlikle.

Paketçi olarak başvurmak için neler gerektiğini şurada biraz anlattım ama paketçi olunduktan sonra neler yapılması gerektiği büyük bir sır şimdilik ne yazık ki. Geçen yazdığım bir e-postayı her başvuran kişiye değiştirip değiştirip göndermek yerine metni belgeleştirip projenin wiki sayfalarına eklemek istiyorum. Taslak metin aşağıda, projeyle ilgileniyorsanız ya da ileride ilgilenmeyi düşünüyorsanız fikirlerinizi söylemekten çekinmeyin. Bir süre bekleyip sonrasında metni İngilizce'ye çevirip Happy Kitty'nin wikisine ekleyececiğim.

--- dikkat taslak belge ---
Tekrar merhaba ve Happy Kitty'e hoşgeldiniz :) Happy Kitty'e katkı vermek için başvururken kullandığınız Gmail hesabı üzerinden Committer hakları edinmiş bulunmaktasınız:
  • [+] View: Yüklemeleri, wiki sayfalarını ve durum kayıtlarını görüntüleme
  • [+] Commit: Wiki dahil SVN üzerinde kod değişiklikleri yapma
  • [+] CreateDownload: Yeni yükleme oluşturma
  • [+] EditDownload: Bir yüklemenin özelliklerini değiştirme
  • [+] DeleteDownload: Bir yüklemeyi silme
  • [+] EditWiki: Proje sayfası üzerinden wiki sayfaları oluşturma, düzenleme ve silme
  • [+] AddWikiComment: Projede aktifleştirilmişse wiki sayfalarına yorum ekleyebilme
  • [+] CreateIssue: Durum kaydı açabilme
  • [+] AddIssueComment: Bir duruma yorum ekleyebilme
  • [+] EditIssue: Bir durumu düzenleyebilme
  • [-] DeleteIssue: Bir durumu silebilme / geri getirebilme
  • [+] ViewPrivateArtifact: private (gizli) etiketine sahip durum kayıtlarını görüntüleyebilme
  • [-] DeleteAny: Herhangi biri tarafından yapılmış yorumları silebilme
  • [-] EditAnyDuties: Herhangi birinin görevlerini değiştirebilme
Google Code'da temel üç hak var: owner, committer ve contributer. Bu haklar elle özelleştirilebiliyor. Lütfen yukarıda sıralan haklarınızdan herhangi birini kullanmadan önce aşağıdaki belgenin tamamını okuduğunuzdan emin olun. Projenin içindekilerin tamamını silme haklarına sahip olsanız da bunu kullanmazsanız herkes size minnettar olacaktır :)

http://code.google.com/p/support/wiki/Permissions

Kendinizle ilgili bilgileri aşağıdaki bağlantı üzerinden düzenleyebilir ve değiştirebilirsiniz.

http://code.google.com/p/happy-kitty/people/list

Bundan sonra Happy Kitty'nin her alanına yazma hakkınız bulunmaktadır. Bunun için GoogleCode.com parolanızı kullanmanız yeterli. Size Happy Kitty tarafından herhangi bir parola (ve büyük ihtimalle onay veya bilgilendirme e-postası) gönderilmeyecektir. Parolanızı görüntülemek, değiştirmek ve diğer işlemler için aşağıdaki adresi kullanabilirsiniz:

https://code.google.com/hosting/settings

Happy Kitty'i yerele çekmek için aşağıdaki adresten ve komutlardan yararlanabilirsiniz:

http://code.google.com/p/happy-kitty/source/checkout
svn checkout https://happy-kitty.googlecode.com/svn/trunk/ happy-kitty --username hesap-adı@gmail.com
Happy Kitty'e her değişiklik yaptığınızda Subversion parolanızı girmek istemezseniz Pardus deposundaki subversion-plugin-kwallet paketini kullanabilirsiniz.
sudo pisi it subversion-plugin-kwallet
SVN'deki değişiklikler Pardus deposunda olduğu gibi atomik ve açıklayıcı bir mesajla birlikte gönderilmelidir. Önceki değişiklik (commit) mesajlarına bakarak kolayca fikir edinebilirsiniz.

http://code.google.com/p/happy-kitty/source/list
  • Yeni eklenen paketler için: add paket-ismi
  • Depo indeks güncellemeleri için: update index
  • Paket sürüm güncellemeleri için: paket-ismi: version bump
  • Paketlerde yapılan değişiklikler için: paket-ismi: yapılan değişiklikler (caelum: fix doc path, mygui: back to r4141)
Happy Kitty'nin ilk dönemlerinde yalnızca tek bir kişi olduğu için bir inceleme süreci işletmek mümkün değildi. Projeye katılan ikinci kişiyle birlikte bir inceleme süreci başlamıştır. Bununla birlikte inceleme süreci için henüz tam bir yöntem seçilmemiştir. Zamanla yapılacak tartışmalarla en uygun yöntem bulunacaktır.

İnceleme süreciyle depoya eklenen paketlerin daha kaliteli ve hatasız olması sağlanabilecek. İnceleme süreci için, küçük değişikliklerle, Pardus ve diğer GNU/Linux dağıtımlarının inceleme politikaları temel alınabilir.

Happy Kitty'nin geleceği için, Happy Kitty'deki ilk kişinin geçici süreliğine özel yetkiler alması gerekebilir. Örneğin;, Happy Kitty'ye bir kişi katıldı, paketlemeyi daha yeni öğrenmiş ya da paketlemeyi çok iyi biliyor ama paket incelemeye zamanı yok. Ne olacak? Şu an bu örnekte sadece iki kişi olduğunu unutmayınız. Böyle bir durumda Happy Kitty'ye yeni paket eklenmesi engellenecek veya daha iyi bir ihtimalle yavaşlanacak. Bu durum da projeye zarar verecektir. Bu yüzden, projeye katkı verenlerin sayısı 10 (on) oluncaya kadar Anıl Özbek (ozbekanil) bazı özel haklara sahip olacaktır. Bu yadırganabilir veya yanlış anlaşılabilir ama proje belirtilen katkıcı sayısına ulaştığında verilen bu özel hakların bırakılacağına emin olabilirsiniz. Katkıcı sayısı 10 oluncaya dek geçici olarak Anıl Özbek'e tanınan özel haklar şunlardır:
  • İnceleme sürecinden geçmeksizin depoya paket ekleyebilme.
  • Başka birisinin paketi için tek bir onay vererek depoya girmesini sağlama.
İnceleme süreci için izlenebilecek yöntemler için aşağıdaki fikirler değerlendirilebilir.
  1. Happy-Kitty'nin yanında ikinci bir proje sayfası açılır ve burası oyun alanı ve inceleme süreci için kullanılır. Temiz bir yöntem sayılır ama kontrol ve takip edilmesi gereken ikinci bir yer olacağı için zorluk çıkarabilir.
  2. Happy Kitty deposu doğrudan trunk'tan alınarak o an aktif olarak geliştirilen en güncel Pardus sürümünün sürüm numarasının verildiği dizine taşınır ve trunk'ta playground ve review isimli iki dizin daha oluşturulur: /2011, /playground, /review. Eğer SVN'nin etiketleme özelliği bir kaynak Pardus deposu için uygunsa her yeni sürüm için yeni bir dizin oluşturmak yerine tek bir dizin de kullanılabilir. Yani şöyle bir yapı da olabilir trunk'ta /happy-kitty, /tags/2009, /playground, /review. Biraz ters bir mantık ama daha iyi gibi.
  3. Şu an geçerli olan yöntem ise şudur: Paket, Happy Kitty'deki gerçek yerine konur. Kısa sürede inceleme süreci tamamlanır. Düzeltilmesi gereken yerler varsa kod üzerinde belirtilir ve sonrasında depoya girer paket.
  • Paket paketçisi tarafından depoya eklenir.
  • Diğer geliştiriciler paketi inceler, gerekli değişiklikleri belirtir.
  • Paketçi gerekli değişiklikleri yapar.
  • Paket depoya eklenir.
Bu süreç devam ederken (şu an için bir günde bitebilecek bir iş ama ileride birkaç gün sürebileceğini varsayarsak) depo indeksinin güncellenmesi gerekirse ne olur kısmı sorun olabilir ama gerekirse PiSi'de çeşitli paketlerin / dizinlerin hariç tutulması için bir parametre eklenmesini istenebilir. Bu olmasa bile Happy Kitty bir kaynak depo olduğu için çok fazla sorun oluşmayacaktır. Bunun için çeşitli pratik fikirler ve işlerin çığrından çıkmasını önleyecek önlemler uygulanabilir ayrıca.

Kısacası:
  • Oyunu depoya ekleyin,
svn add hede
svn ci hede
  • Diğer paketçilerin paketi incelemesini ve yapılması gereken değişiklikleri belirtmesini bekleyin
  • Söylenen değişiklikleri yapın veya yapmayacaksanız nedenlerini belirtin
svn ci
  • Paketin depoya girmesi için gerekli onayları alın
  • Depoyu güncelleyin
svn ix --skip-signing
Şu an Happy Kitty için üç liste bulunmaktadır. Bunları takip etmeniz iyi olacaktır:

http://code.google.com/p/happy-kitty/wiki/InternetSites#Discussion_Groups

Yukarıdakiler, süreçler ve Happy Kitty hakkındaki diğer her şey için fikirlerinizi, önerilerinizi ve düşüncelerinizi paylaşmaktan çekinmeyin.

Tekrar hoşgeldiniz. İyi günler,
--- dikkat taslak belge ---

Kaan Özdinçer ve Safa Arıman'a hoşgeldiniz diyor ve Happy Kitty adına yapacakları her şey için şimdiden teşekkür ediyorum. Umarım Happy Kitty ile uğraşmak benim için olduğu kadar onlar için de eğlenceli olur.  Happy Kitty asıl şimdi bir proje olmaya başlıyor.
15
Ağu

Gameolith, kurmanız gereken herhangi bir istemcisi olmayan, tamamen internet tabanlı bir GNU/Linux oyun mağazasıdır. Geçtiğimiz temmuz ayında aşağıdaki beş bağımsız oyunla açılışını yapmıştı mağaza:
Gameolith, DRM'li ticari oyunlara kolayca ulaşılmasını sağlamayı amaçlamaktadır. Oyun mağazasındaki oyunlar için Ubuntu, Debian, Fedora paketleri ve ayrıca oyunların arşiv dosyaları sunuluyor. Eğer şuradaki cevabı yanlış anlamadıysam oyunları aldığınız zaman sadece GNU/Linux için almış oluyorsunuz ve diğer işletim sistemlerinde oynama şansınız bulunmuyor.

Proje daha çok yeni, henüz ne kadar gelişeceği ya da daha genel bir ifadeyle tutup tutmayacağı belli değil. Projenin başarılı olup olmayacağı etrafında bir topluluk oluşturup oluşturamayacağıyla da ilgili. Gameolith proje geliştiricileri, Gameolith'in tüm GNU/Linux oyuncuları için samimi ve güvenli bir yer olmasını istiyor ve bunun için de temel bazı kurallar öneriyorlar topluluğa:
  • Kibar ve arkadaş canlısı olun.
  • Gereksiz mesaj gönderimi yapmayın.
  • Trollük yapmayın.
  • Konuya sadık kalın.
  • Yasalara saygılı olun.
Güzel bir topluluk kurmak için pek de katı olduğu iddia edilmeyecek bu beş basit kural sanırım çoğu kişi için makuldür. Mağazanın kullanım şartlarını ise şuradan görebilirsiniz.

Projeye bir göz atmak isterseniz ana sayfasını veya haberler sayfasını ziyaret edebilir ya da projeyi Twitter üzerinden takip edebilirsiniz.

Son olarak bir oyun geliştiriciyseniz ve oyununuzu bu mağazaya eklemek istiyorsanız ya da bir paketçiyseniz ve Gameolith'deki oyunları farklı bir dağıtım için de paketlemek istiyorsanız Gameolith Partners sayfasına bakabilirsiniz.


Kaynaklar:

9
Ağu
Lay Lay Lom GIMP'i uzun zamandır takip edenler hatırlayacaktır IWarp'ı yetersiz bulduğumu. Neyse ki GIMP kullanıcıları olarak yakında hayal ettiğimden daha iyi bir özelliğe / araca kavuşacağız.

Photoshop kullanıcılarının Liquify olarak bildiği şekil değiştirme aracının bir benzeri Michael Muré'nin Mayıs ayından beridir sürdürdürdüğü çalışmalar sayesinde GIMP'e de geliyor. GIMP'in gelişimini takip edenlerin bildiği üzere GIMP geliştiricileri yeni araçlarda eski çekirdeğin kullanılmasını istemiyor. Böylece geçen seneki kafes temelli dönüşüm aracı gibi Warp Transform aracı da GIMP'in yeni çekirdeği GEGL'i kullanıyor.




Bu yeni araç ve eski iWarp arasında temel bazı farklar bulunuyor, bunlar aşağıdaki biçimde özetlenebilir:

  • Şimdiki gerçek bir çizim aracı, tuval üzerinde çalışıyor, küçük bir önizleme penceresinde değil.
  • Uygulanan değişiklikler silme kipiyle bölgesel olarak kaldırılabiliyor.
  • Kuvvet ve boyutu tamamlayan sertlik seçeneği içeriyor.

Araç henüz çok yeni olduğu için birkaç kısıtlama barındırıyor doğal olarak. Bunlardan en göze çarpanları henüz bir geri / ileri alma desteğinin olmaması ve gerçekleştirilen işlemlerin görece fazla zaman alması.

Son olarak da bu güzel aracın ne zaman GIMP ile birlikte geleceğinden bahsedelim. Warp Transform'un GIMP 2.8'in bir parçası olup olmayacağı hakkında henüz verilmiş bir karar yok (kaynak haberin yazıldığı tarih itibariyle, şu an GIMP geliştirici listesini kontrol etmedim). GIMP çekirdek takımı bu tip büyük özellikleri geliştirme sürecinin son aşamalarında GIMP'e dahil etmekten pek de hoşnut değil. Ancak yine de GIMP 2.8'in çıkışına epey var, mevcut durumlar değişebilir :)



Kaynak: Warp Transform tool is coming to GIMP
26
Tem

WordPress admin panelinde Okuma ayarlarından “Her yazı için, göster” kısmını “Özet” olarak ayarlarsak rss de listelenen yazılarımızın özeti gösteriliyor. Ben ilk başta “Tam Metin” ayarını kullanıyordum, ama sorun çıkmalı ya bir ara “Özet” olarak ayarladım ve “Tam Metin” e dönmeme rağmen rss yazılarımı özet olarak göstermeye başladı. Ne yaptımsa çözemedim. Yeni kurulum yaptım vs…

Kategorilerden birine tıkladığımda /category/ kısmı gözükmesin diye WP No Category Base eklentisini kurmuştum rss sorununu çözmeye çalışırken bu eklenti pasif iken rss bağlantısı olan feed bağlantısının hata verdiğini keşfettim. Bunun sorunu çözmemde bir faydası olmadı. Zaten bende bunu okuyanların bu sorunla karşılaşması durumunda sorunun neyden kaynaklandığını anlamaları için yazmış oldum.

Baktım ki WordPress Türkçe destek sitesinden hayır yok ne yaptığımı fark etmeden wp-include dizininde feed-rss2.php dosyasını keşfettim. Bu dosyanın 44. ve 46.  satırlarında şu kod mevcut.

<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>

Bana saatlerimi lanet ettiren şey işte bu kod parçasıymış. Buna hack mi derler ne diyorlarsa artık o satırı şu hale çevirdim ve sorunum ortadan kalktı.

<?php /*<description><![CDATA[<?php the_excerpt_rss() ?>]]></description> */ ?>

Tabi isterseniz o satırı komple de silebilirsiniz. Ben zararı dokunmadığı için php yorum satırı haline getirdim. Bundan sonra böyle bir sorunla karşılaşmıyacağımı umuyorum…

Yazım hatası varsa bildiriniz.
Bu yazı Creative Commons-BY-SA ile lisanslanmıştır. Bu yazıyı ilk sahibini belirtmek ve aynı lisansla dağıtmak koşuluyla kullanabilirsiniz.

Benzer yazı yok.

15
Tem
Sıcaklar mıdır bilmiyorum yazmamı bu kadar zorlaştıran ama bu aralar çok az şey yazabiliyorum hem günlüklere hem de hayata. Bugün de açıkçası Penguenler de Oynar'a gireyim de bir şeyler yazayım gibi bir hevesim, isteğim yoktu. Ta ki telefonum çalana dek. Ne telefonu ya, bu devirde telefon mu kaldı. Choqok'u açana dek.

Choqok'u açtığımda on bin beş yüzüncü kez şu hatayla karşılaştım ve yine bu sorundan ne zaman kurtulacağımı düşündüm. O güzel günleri biraz daha bekleyebileceğim kararımda bir değişiklik yapmadan, hem identi.ca hem de Twitter üzerinden gelen yeni girdilere bakmaya başladım.

Ülgen Sarıkavak'tan gelen şu Twitter girdisi hemen dikkatimi çekti. Ülgen sağolsun, PCnet'in bu ay çıkan sayısındaki Piri Reis köşesinde Penguenler de Oynar'dan bahsedildiğini haber vermiş yazısında. Kendisi ayrıca istemem üzerine sayfanın güzel bir fotoğrafını da gönderdi bana :)
PCnet'te Penguenler de Oynar'dan bahsedilmesi, yabancı filmlerde Türkiye ismi geçince çoğumuzun hissettiği duyguya benzer bir duygu oluşturdu bende sevincin dışında.

PCnet ekibine ve okurlarına merhaba ve teşekkürler (teşekkürler kısmında Penguenler de Oynar yazarları da var, araya ekleyemedim ama parantezler ne güne duruyor). Sanırım bu işte Merve Gülbiçim'in payı da var, ona da ayrıca teşekkürlerimi iletirim :)

Çok daha güzel bir yazı olmalıydı bu ama eriyorum anlasana.
21
Haz

Yeni bir proje geldi aklıma aslında benim aklıma gelmedi bir yerlerde görmüştüm bunu ama durumu ne bilmiyorum ayrıca uzun zamandır ses çıkmıyor benim de aklıma bu projeyi gerçekleştirmek geldi. Proje şu ki; bir program düşünün masaüstünde ve bilumum kde programlarındaki görsel değişiklikleri bir dosyaya kaydediyor ve yine bu program yardımıyla yüklüyor.

Örneğin Özgürlükİçin Tema bölümünde bir masaüstü tasarımı gördünüz, çok sevdiniz. Bir bir masaüstü arkaplanını, sistem temasını, ikon temasını buldunuz ve yaptınız ama çok yorucu oldu ve tam olmadı gibi. Artık buna gerek yok bu program sayesinde tek bir dosya ile o gördüğünüz tasarıma kavuşacaksınız. Eve gelen pazarlamacılar gibi konuştum :) .

Tabii daha fikir aşamasında olduğunu belirtmek lazım, şimdilik bu dosyaları nasıl toplayabilceğim, bu ayarların sistemin nerelerinde olduğunu bulmakla uğraşıyorum biraz yol katettim gibi. Bunları tamamlarsam gerisi kolay gibi gözüküyor. Ha ayrıca kde ile içli dışlı olan arkadaşlarda da yardımlarını bekliyorum.

20
Haz
Happy Kitty de benim çılgın projem. Bir yere deniz getirmiyorum veya bir ili üçe bölmüyorum ama yine de yeterince çılgın.
Kısaca bir giriş yapmak gerekirse -ki gerekir-, Happy Kitty, Pardus için PlayDeb benzeri, resmi olmayan bir oyun deposu projesidir. Pardus kullanan oyunculara ve oyun geliştiricilerine özgür ve yeniden dağıtılabilir ücretsiz oyunları, oyunlarla ilgili araçları, kütüphaneleri sunmayı ve Pardus'un hem kullanıcılar hem de geliştiriciler için en iyi özgür oyun platformlarından biri haline gelmesine yardımcı olmayı hedefliyor.

Şu an için oldukça yeni bir proje Happy Kitty ve depoda yalnızca 147 paket bulunuyor, daha paketlenecek yüzlerce oyun var. Pardus kullanıyorsanız ve oyun oynamayı, geliştirmeyi seviyorsanız göz atmanızı istirham ederim.

Projenin isminde herhangi bir marka politikasına karşı hareket edilmemesi için Pardus'un resmi projelerinden biri olan PiSi'yi herhangi bir şekilde özellikle kullanmadım. Bunun yerine bu ismin İngilizce'deki yaygın bir kullanımını tercih ettim. Genel anlamda proje dilinin İngilizce seçilmesinin nedeniyse hem İngilizce'mi ilerletmeye çalışmak istemem hem de projenin daha kolay bir şekilde katkıcı bulabilmesini sağlamaktır.

Happy Kitty, bir kaynak paket deposu olduğu için kullanımı normal ikilik depolara göre biraz daha zor gelebilir ama hem konsol üzerinden hem de Kitty gibi basit bir araç yardımıyla grafik arayüzden kolayca kullanılabilir.

Happy Kitty deposunu Pardus'a eklemek için
sudo pisi ar happy-kitty http://happy-kitty.googlecode.com/svn/trunk/pisi-index.xml.xz
komutunun sadece bir kez kullanılması yeterli. Daha sonra depodaki herhangi bir oyun
sudo pisi em hede-oyunu
 komutuyla yüklenebilir.

Projenin şu an tek geliştiricisi, paketçisi ve hatta belki kullanıcısı benim. Umarım bu durum fazla uzun bir süre böyle devam etmez ve Happy Kitty kendisini çok sevecek yeni katkıcılar bulur. Siz de Happy Kitty için bir şeyler yapmak isterseniz proje sayfasına göz atabilir ya da bana e-posta üzerinden ulaşarak bilgi alabilirsiniz. Paketlenecek çok oyun, yapılacak çok iş, geçilecek çok yüksek puan var, sizsiz olmaz :)

Happy Kitty hakkında gelişmeleri yakından takip etmek isterseniz projenin identi.ca sayfasına ve bloguna abone olabilirsiniz.

Yazdıkça şu kısmından da bahsedeyim, şurasını neden öyle yaptığımı da açıklayayım vs. diyorum ama sanırım bu uzunluk ideal. Görüşürüz.
Yurt dışındaki gelişmeleri takip ederken ülkemizdeki gelişmeleri kaçırmışız biraz. Az önce yaptığım bir Google aramasında şans eseri gördüğüm Oyuncu Penguen'di bunu fark etmemi sağlayan.
Oyuncu Penguen hakkında duyurular görebildiğim kadarıyla Ubuntu Türkiye ve Linux Mint Türkiye üzerinden Mayıs ayının sonuna doğru yapılmış ve tüm GNU/Linux kullanan oyun severler projeye katkı vermek için davet edilmiş. Bu duyuruların bir kısmını burada da alıntılayarak daha çok kişiye ulaşmasını sağlayalım:
Biz Linux kullanıcılarının yakınıp durduğu şeylerden biridir oyunlar. Pek oyun olmadığını düşünürüz, geçmek isteyen de bu yüzden vazgeçer Linux'a geçmekten. Ben de hem benim gibi oyun meraklısı Linux kullanıcılarının takip edebileceği, hem de "Linux'ta oyun var mı ki ya?" diye merak eden Windows kullanıcılarının da ilgilenebileceği, adını da Oyuncu Penguen koyduğum bir blog/platformun çalışmalarına başlamış bulunmaktayım. Kısa süre içerisinde aktif etmek istediğim bu platforma desteklerinizi, fikir önerilerinizi ve düşüncelerinizi bekliyorum. 
Site dediğim gibi, Linux'ta oyun ve oyunculuk üzerine olacak. Aynı zamanda önemli Linux ve oyun haberlerini de elimden geldiğince yazmaya çalışacağım. Şimdilik bir "portal" olarak düşünüyorum, ancak istek ve ilgilenen olursa bir forum da hazırlarız . 
Hadi bakalım, bindik bir alamete, gidiyoruz kıyamete..
GNU/Linux ve oyunlarla ilgili daha çok Türkçe site görmek çok güzel. Proje şu anda "Yakında, çok yakında. Az kaldı. Sabredin :)" diyor, bekleyelim bakalım.
28
Nis

Python ile program yazıyorsanız, karakter dizileriyle işlem yapmış ve operatörleri kullanmışsınızdır mutlaka.

  >>> kelime = "deneme"
  >>> print "kelime: %s" % kelime
  kelime: deneme

Ve tahminen, metnin sağa ya da sola dayalı olması için “%s” yerine “%#s” operatöründen yararlanmışsınızdır. Sıfırdan büyük bir sayı kullandığınızda sağa, sıfırdan küçük bir sayı kullandığınızda sola dayalı oluyor:

  >>> kelime = "deneme"
  >>> print "kelime: [%10s]" % kelime
  kelime: [    deneme]
  >>> print "kelime: [%-10s]" % kelime
  kelime: [deneme    ]

Biz bugün, Python belgelerinde bulamadığımız bir operatör kullanımı ile karşılaştık PiSi kodlarında: “%#.#s”. Noktadan önceki # işaretinin “yaslama” anlamına geldiğini biliyorduk, ancak noktadan sonraki ne işe yarıyor ilk anda çözemedik. Birkaç denemenin ardından, noktadan sonraki operatörün “sınırlama” anlamına geldiğini gördük:

  >>> kelime = "denemeeeeeeeeeeeeeee"
  >>> print "kelime: %10s" % kelime
  kelime: denemeeeee

Bu operatör, PiSi’nin dosya indirme modülünde kullanılıyordu. Test etmek için, aşağıdaki gibi bir kod yazdık ve 0-50 karakter arası değişen bir metnin 20 karakterlik sınırlamaya uyup uymayacağını denedik:

  import random
  import sys
  import time

  while True:
      msg = '*' * random.randint(0, 50)
      sys.stdout.write("[%-20.20s]\r" % msg)
      sys.stdout.flush()
      time.sleep(0.1)

Beklediğimiz gibi çalıştı, ve yeni birşey öğrendik.

15
Nis
icculus (Ryan C. Gordon) GNU/Linux ve oyunlar hakkında güzel bir konuşma yapmış, geçen hafta Free Gamer'da görünce sunum videosunu indirmiştim, ancak izleme şansını yeni buldum.

Konuşma, özgür platformlar üzerindeki oyun tarihine Zork'tan birinci tekil şahış dövüş oyunlarına kadar değiniyor. Oyunlar, oyuncular, şirketler ve harika atılımlar yapmış iş modelleri hakkında pek çok şey bulabilirsiniz konuşmada. Eğlenceli bir video, özgür yazılım ve oyunlarla ilgiliyseniz ve daha önce izlemediyseniz izlemenizi tavsiye ederim.



Gaming on Linux başlıklı bu konuşmayı yukarıdaki gömülü oynatıcıda izleyebileceğiniz gibi .ogv ve .m4v olarak bilgisayarınıza indirip sevdiğiniz bir medya oynatıcıda da izleyebilirsiniz. Flourish 2011'deki diğer videoları da şuradan izleyebilirsiniz.
10
Nis

SQLAlchemy ile uğraşırken, veritabanından çekilecek nesne listesinin filter() metodu ile filtrelenebildiğini görünce şaşırmadım, ancak bir anlığına, dökümandaki örnek bende “nasıl ya?” etkisi bıraktı:

  query.filter(User.name == 'ed')
  query.filter(User.name != 'ed')

User.name == ‘eq’ kodu, normal şartlar altında, True ya da False üreteceğinden, filter() metoduna gönderilen True/False değeri nasıl istediğim filtrelemeyi sağlayacaktı? Birkaç saniyelik afallamanın ardından, User.name nesnesi (ve ona benzer nesnelerin) “==” operatörünün davranışının, sınıfa ait __eq__ metodu yeniden tanımlanarak değiştirilebileceğini hatırladım:

  class Object:
      def __init__(self, name):
          self.name = name

      def __eq__(self, other):
          if isinstance(other, Object):
              return "%s__equals__%s" % (self.name, other.name)
          else:
              return "%s__equals__%s" % (self.name, other)

Bu sayede filter() metoduna True/False değerleri yerine, yukarıda yaptığıma benzer bir şekilde, metodun anlayacağı bir formatta veri üretilip gönderilebilirdi. SQLAlchemy’nin koduna bakmadan aklıma gelen bu teoriyi hemen konsolda denedim ve bu yöntemin çalıştığını gördüm:

>>> o1 = Object("object1")
>>> o2 = Object("object2")
>>> o1 == 1
'object1__equals__1'
>>> o1 == o2
'object1__equals__object2'

SQLAlchemy‘deki filter() metodunun, yukarıdakine benzer bir metni işleyip SQL’e çevirmesi yeterliydi, bu da gizemin çözüldüğü anlamına geliyordu :)

Not: Davranışını değiştirebileceğiniz operatörlerin tamamına Python Data Model belgesinden ulaşabilirsiniz.

6
Mar
SFML'nin resmi bir IRC kanalı olmasa da gönüllülerce BoxBox.org üzerinde oluşturulmuş bir IRC kanalı bulunmaktadır. Kanala herhangi bir IRC istemcisiyle bağlanarak SFML hakkında hızlı bir şekilde yardım alabilirsiniz.

SFML IRC kanalı freenode üzerinde kurulu olmadığı için, kanaldan önce kanalın üzerinde bulunduğu sunucuyu eklemeniz gerekmektedir.

Sisteminizde Konversation yüklü değilse paket yöneticisiyle Konversation'u yükleyerek, KDE Menüsü'nden açın.

Açılıştan sonra gelen Sunucu Listesi penceresinden Yeni düğmesine basın.
Ağ Düzenle'de ağ adı olarak BoxBox.org'u girin.
Sunucu olarak irc.boxbox.org, port olarak 6697'yi girip Güvenli Bağlantı (SSL) seçeneneğini aktifleştirin.
Otomatik bağlanacak kanal olarak da #sfml'yi ayarlayın.

Sunucu Listesi'nden BoxBox.org'u seçip Bağlan düğmesine basın.
Bu kadar, bundan sonra kolayca #sfml kanalına bağlanıp yardım alabilirsiniz.


Kaynak: Inofficial IRC chat


5
Mar

Tam iki sene önce yani ben daha lise hayatıma yeni başladığım zamanlarda, Python öğrenme çabalarım sürüyordu. O günlerde öğrendiğim yeni şeyleri oturup, uygulamam akılda kalması için ve pratikleşmem için çok gerekliydi. Ben de bir oyun yapayım dedim. Arkadaşlarımla nasıl bir şey yaparız diye fikir yürütürken en son aklıma – Bir odadan kaçış oyunu yapalım, karakter bir şekilde odadan kaçmaya çalışsın, kendini yesin, şeklinde bir konsept geldi.

Nasıl yapılır demeden oturup, direk başladık. Henüz Okan ile Furkan’ın Python’dan haberi olmadığı sıralarda oturup ana harita çizimleri yapıp, üzerinde x,y de hareket ettirdim. Hikaye konusunda fikirlerini alarak bilgisayar odasında çalışarak bitirdiğimiz,(inanılmaz bir şekilde ilkeldi, o yüzden kayboldu diyebilirim.(görmek bile istemiyorum)) projemizin adı F(urkan)O(kan)D(oğan) projesi oldu. Google Code sayfası fod-project idi. Neyse bir sene sonra Furkanlar Eskişehir’e taşındıklarında OD – project olarak kaldık. Baş harfi eksikti.

Yeni proje arayışlarıda olan ben, bir ada-yaşam oyunu yapalım diye bir fikir ortaya attım. Kareli deftere haritayı çizdik. Okan artık Python hakkında az da olsa bilgiliydi. Okan’a harita tasarımcılığını üstlendi. OD olarak kalan projenin başına Mert’in (sözde) katılması ile proje “mod-project” oldu. (hala adı da öyle)

İşleri svn deposundan götürdük. Kayıtlara şuradan(ilk zamanları) bakabilirsiniz. Yeni öğrendiğim dictionary(sözlük) nesnesini kullanarak şöyle bir harita sistemi oluşturdum.

elf.map11 = {
“15,2″:[ "             ___","            /  X","         __/    ","        /       ","   ____/        ","  (             "],
“14,2″:[ "             ___","            / X ","         __/    ","        /       ","   ____/        ","  (             "],

gibi  bir yapısı vardı. Yani x,y’de kordinatı veriyordunuz o konumda X’in durduğu haritayı alıyordunuz. Bu zahmetli yazım işini Okan üstlendiği için benim için pek problem olmadı. Ama bu tüm yapı hem zaman kaybı hem de büyük bir karmaşıklığa sürükledi oyunu.  mod-tra yani mod-training aslında haritası planladığımızdan küçük olan ve bizim için denemelik alt proje idi. En son bütün bir karmaşıklık beni deli etti. Her şey birbirine girdi sinirlenip geliştirmeye ara verdim. Zaten M ve O’da pek oralı olmamıştı. :)

Bu arada ben, o mod-project deposunu çok ilginç denemelerde kullandım. Örneğin QTCPServer kullanarak internet üzerinden oynanabilen bir taş-makas-kağıt oyunu yaptım. (Sunucu tarafında yaptığım hileden sinirlenen arkadaşlarımın hala o “Nasıl ya?” diyişleri kulaklarımda)

Okan da bu arada “Rus Ruleti” çalışmalarına başladı “Ek” klasörü altında. Ben de PyQt denemelerime devam ettim. En son mod-xml diye XML’den de haritayı çağırıp üzerinde oynatabilmiştim.

Ocak ayında Okan ile eski günlerin anısında mod-xmlv2 yapalım dedik. O bir daha harita tasarımcısı oldu. Oturdu uğraştı. XML biçimini değiştirdi. Ben de mini bir oyun motoru yazdım. W-A-S-D-E-Q ile anında konsoldan oynanabilen, oyun bitişinde şu kadar saniye de kaçtın diye zevkli bir oyun denemesiydi. Oyun motoru aslında oyun yapmak isteyenler için örnek olabilir, hatta istediğiniz büyüklükte harita yapabilirsiniz. Onun dışında en son oyunu bitirdiğimizde aklımda XML’de oyunu bitirebiliriz gibi fikirler geldi. Tüm o karakter hareketlerini vs. Kısacası yeni bir dil gibi bir şey olacaktı. Ama zaman yetmedi.

Şu an oyunu proje sitesinden svn ile çekip mod-xmlv2′den oynayabilirsiniz.(mod-project’in M’si olan Mert ise 14 saniyelik rekorunda çok iddaalı.)

Oyunun hikayesinden sonra biraz teknik detaya inersek oyun, XML’i okuyan minik bir motoru var. Bu parça XML’deki tagleri parçalayıp alan ve harita olan kısmı okuyan bölüm. xml.dom.minidom ile yapıldı. Oyun aslında gitmek için sadece bir ileride verdiğiniz ilerleme komutuna bağlı olarak kordinatın yürünebilir (-,/ vs) işareti olmayan yer varsa boşluk ise yürüyor. Nesneler Y(yatak), M(masa) şeklinde isimlendirilmiş şekilde. Üzerine geldiğinizde nesne hakkındaki bilgiler, eğer yapabiliyorsanız masanın altına bakabiliyorsunuz. En son odadan çıkmaya çalışıyorsunuz.

Mantık olarak böyle biz yaparken çok eğlendik, denerseniz sizde eğlenebilirsiniz. Oyun projeleriniz varsa alıp, bu mini oyun motorunu ilham alarak(ya da direk kopyalayıp) kendi oyununuzu yapabilirsiniz. Bizim 3 senedir uğraştığımız, en doğru yöntemi nasıl buluruz diye harcadığımız 3 yılı kazanabilirsiniz. (Baya ara verdik ondan 3 sene oldu.)

Bu arada sadece tek bağımlılığı var o da Python :) Konsoldan güzel güzel oynamanızı ve odadan kolay kaçmalar diliyorum.

svn checkout http://mod-project.googlecode.com/svn/trunk/ mod-project

‘i konsola yazıp direk indirebilirsiniz.

(Bunu unutmadan yazmam gerekiyordu. :) )

20
Şub
Doğru düzgün makale yazmışlığım yok. Bilimsellik noktasında da iddalı bir tip değilim.. Çünkü ben bilim insanı değilim. Ama son zamanlarda özellikle fazla mesai bünyesinden gidip okuduklarım ve okuduğuma şaşırdıklarım bana TÜRK AKADAMİSYENLERİNE ders verme cesareti verdi. Kendini akadamisyen zanneden abilerimiz ablalarımız umarım bu yazıyı okurlar ve biraz birşeyler öğrenirler. Çünkü sanırım bizim öğretme zamanımız geldi, [...]
19
Şub

Kendime bir alan adı alınca yaptığım paketleri de paket deposuna dönüştürdüm. Depoyu aşağıdaki kodla ekleyebileceğiniz gibi paket yöneticisi üzerinden de ekleyebilirsiniz. Depo bilgileri:

  • Depo adresi: http://pardus.isamert.net/pisi-index.xml.xz
  • Depo adı: isamert (yada ne isterseniz :) )

Konsoldan eklemek için komut:

sudo pisi ar isamert http://pardus.isamert.net/pisi-index.xml.xz

Şunu belirtiyim depo 32-bit, 64-bit kullanıcılar pisi inşa dosyalarını derleyip kullanabilir, inşa dosyaları için de sizi buradan alalım:  http://www.wuala.com/isamert/Documents/Pisi-Packages

  • Not: Programları kendi sorumluluğunuz altında kuruyorsunuz herhangi bir zarardan ben sorumlu değilim :) . (Bir zarar geleceğini tahmin etmem, sistem bileşenleri yok yani depoda ;) ) Yaşadığınız bir sorun olursa da buraya yazarsanız sevinirim.

İnşa Dosyalarından Kurulum Yapmak

Verdiğim adreste direkt link olayı olmadığı için dosyaları bilgisayarınıza kaydetmeniz gerekiyor. Daha sonrasında konsolu açıp “sudo pisi build pspec.xml” komutunu veriyorsunuz ve pisi paketi o dizine oluşuyor. Çift tıklayarak kurulum yapabilirsiniz.

  • Not2: Depoda ne var ne yok, buraya girip öğrenebilirsiniz.
  • Not3: Benimde paketlerim var ben nasıl kurarım diyorsanız buradan.
18
Şub

Artık yayın hayatıma buradan devam edeceğim :) . Eski blog yazılarımı almayı düşünmüyorum onlara buradan ulaşabilirsiniz. Yeni bir sayfa açtım artık. En büyük değişiklik, yandaki reklamlar oldu :O . Bu  reklamlar ilk amacım ödediğim parayı çıkarmak ;) . Açıkçası ilk defa ücretli bir hosting alıyorum, çok heyecanlıyım :) .

Belki fark etmişsinizdir her yerde, kullanıcı adı olsun başka bir şey olsun isamert’i kullanıyorum yine bu geleneği bozmadım. Şimdilik  bu kadar, yeni bir yazıda buluşmak üzere.

19
Oca

İyi derecede Python bildiğini iddia eden bir geliştiriciden, mülakat sırasında faktöryel hesaplayan bir kod yazması istenmiş. Geliştirici de aşağıdaki kodu yazmış:

def factorial(n):
    x = 1
    while 1 < n:
        x *= n
        n -= 1
    return x

Mülakatı yapan, geliştiricinin bu problemi recursion kullanarak çözmemesi karşısında şaşırmış ve “Recursion’dan haberdar mısınız?” diye sormuş, ulaka bir tavırla. Beklediği kod, aşağıdaki gibiymiş:

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

Geliştirici soğukkanlılıkla “Peki siz Python’daki recursion limitten haberdar mısınız?” demiş bunun karşısında. Mülakatı geçebilmiş mi, bilmiyorum. Uzun zaman önce duyduğum bir hikaye bu. Kullanılan araçları tanımanın, en az veriyapıları ve algoritmalar kadar önemli olduğunu hatırlatır bana.

Python’daki recursion-limit yüzünden, en fazla sys.getrecursionlimit() kadar (son baktığımda 1000 idi) derine inebilirsiniz. 1000!‘e kadar olan değerleri iki fonksiyonla da düzgün hesaplarken, 1001! ve sonrasını recursive olarak çözmeden önce sys.setrecursionlimit(x) ile limiti yükseltmeniz gerekir. Python ile kod yazıyor ama Python’u yeterince tanımıyorsanız, ilişkinizde inişler yaşamanız muhtemel. “Python ile program yazdım” ya da “Python ile proje geliştirdim” diyebilirsiniz, ancak “Python biliyorum” demeden önce iyi düşünmek gerekiyor :)

Pythonic bir yol istiyorsanız, aşağıdaki kodu da kullanabilirsiniz:

  import operator
  factorial = lambda x: reduce(operator.mul, range(1, x + 1))
  print factorial(1001)
18
Oca

Aşağıdaki kodu derleyip çalıştırdığınızda çıktı ne olur?

#include <stdio.h>

#define f(x) x*3

int main() {
    int y = f(1 + 2);

    printf("y = %d\n", y);

    return 0;
}

y = 9 diyenler yanılıyor. f bir makro olduğu için kod derlenmeden önce aşağıdaki hale getiriliyor pre-processor tarafından:

...

int main() {
    int y = 1 + 2 * 3;

    printf("y = %d\n", y);

    return 0;
}

Çarpma işlemi, toplamaya göre öncelikli olduğundan (2 * 3) + 1 işlemi 7 sonucunu veriyor:

$ gcc -o test test.c
$ ./test
y = 7

Makroları bilerek kullanmak gerekiyor, ezberlemeden.