75 toplam sonuç 8 sayfada
Önceki Sayfa  - 1 / 8Sonraki Sayfa
kuş uçtu yuva kaldı... 11 July 10, Sunday @ 17:55

Uzun zamandır süren tatsızlıkların ardından, son çıkan bir tartışmanın sonucunda, gönüllü olarak sürdürmeye çalıştığım Pardus geliştiriciliğini tamamen bıraktım. Tartışma çok dağıldığı ve başka konulara saptığı için, bunun asıl nedenlerini buraya özet olarak not düşmek istiyorum.

Pardus ekibinin, gönüllü katkıcılara olan davranışlarından çok rahatsızım. Bu kişilerin katkısı öyle satır sayısı hesabıyla ölçülemez. Çok değerlidir. Bu katkılar olmadan da Pardus'un ölçeklenmesi ve büyümesi, ne kadar iç kaynak olursa olsun imkansızdır.

Proje yönetimi ise bu sorunu çözmek yerine daha da kötüleştirecek şekilde hareket etmektedir. Bizzat proje yöneticisi, uzlaştırıcı ve olgun olmak yerine gönüllüleri kaçıracak şekilde hareket ediyor. Gönüllülerle iletişim sorununu, gönüllüleri dahil etmeyen ve çocukça bir gizlilikle yürütülen bir planla çözmeye çalışmanın sonucunu da bu son tartışmada gördük.

En kötüsü de tüm yönetim başarısızlıklarına rağmen, hiç bir hatanın kabul edilmemesi. Proje yöneticisi; kaç gönüllü küstü gitti, kaç geliştirici hangi sebeplerle işten ayrıldı, proje süreçleri ve verim ne durumda, camianın düşünceleri nasıl, yakın ve uzun vadeli hedeflere varılabilecek mi gibi kendi sorumluluğundaki parametreler yerine, teknik ekibin başarılarını gösterip eleştirileri savmaya kalkıyor.

Son çivi ise, ekipten kişilerin, Özgür Yazılım felsefesinin bir ideoloji olduğu ve kararlarda ikinci planda kalacağı yönünde beyanları oldu.

Kendini eleştiremeyen, insanlarla bütünleşemeyen, Özgür Yazılım konusunda bilinç kaybına uğramış bir Pardus'un insanlığa herhangi bir faydası olacağına inanmıyorum.
 



Etiketler: Genel   ,  Yorumlar: 8
00100100 14 October 09, Wednesday @ 21:56

Robotlar üzerinde çalışırken, değişik algılayıcı ve devindiricileri bilgisayar aracılığıyla kullanabilmek için elektronik arayüzlere gerek oluyor. Bu tip arayüzler ve değişik amaçlı elektronik kontrol kartlarını rahat prototipleyebilmek için uzun zamandır bir kolaylık arayışı içindeydik.

Bu amaçla kullanılabilecek hazır ürünler vardı. Ancak bizim için önemli olan gömlek cebinde taşınabilecek kadar küçük olması, bilgisayarla hızlı ve kolay biçimde programlanabilme ve iletişim kurabilme, esnek ve basit tasarım gibi özellikleri karşılamıyorlardı.

Biz de, üzerinde 8 MHz, 16 Kb kapasiteli AtMega16 mikrodenetçisi olan; küçük (6x4 cm); programlanma ve iletişimini mini USB porttan kendi başına yapılabilen bir kart geliştirip ürettik.

Artık kolayca ve zevkle, motor/servo kontrolü, çeşitli algılayıcılardan veri okuma, i2c aracılığıyla başka kartlara yada entegrelere bağlanma gibi işler yapabiliyoruz.

Siz de böyle bir kart arayışı içindeyseniz bu sayfalardan detaylı bilgi alabilirsiniz.



Etiketler: Genel  Robotik   ,  Yorumlar: 0
ceeebit 14 October 08, Tuesday @ 11:34

11 Ekim Cumartesi günü, Özgürlükİçin ekibi ile birlikte Cebit fuarında Pardus standındaydık.

Bir süredir üstünde çalıştığımız robotumuz İnci'yi tanıttık, geldiği noktayı gösterdik, birkaç küçük gösterisini yaptık.

İnci, araştırma geliştirme amaçlı, omni hareket sistemine sahip bir robot. Ayrıca üzerindeki gömülü bilgisayarında çalışan Pardus 2008 ile, dünyada Pardus'la çalışan ilk otonom robot :)

Şehre çok uzak ve biçimsiz bir yerde yapılmasına karşın, üşenmeyip gelen Pardus gönüllüleriyle çok keyifli vakit geçirdik.



Etiketler: Genel  Robotik   ,  Yorumlar: 1
eski oyunlara... 14 August 08, Thursday @ 16:06

Amiga 500'de, Balance of Power adında 85 yapımı bir strateji oyunuyla epey bir boğuşmuştum. Aradan yıllar geçtikten sonra oyunun yapım aşamasını anlatan bir tasarım belgesini görüp okudum. Eğer oyun tasarımıyla yada geopolitik ile en ufak bir ilginiz varsa, mutlaka okumanızı tavsiye ederim.

Oyunda bir dünya haritası üzerinde, iki süper güçten birini yönetiyorduk, ve asker göndererek, teröristlere para ve silah yardımı yaparak, darbeleri destekleyerek, ambargolar koyarak kendi etki alanımızı genişletmeye çalışıyorduk. Oyunun niye güncel bilgilerle yeni bir sürümünün çıkmadığına ilişkin "bilgiler değişti ama süreçler hala aynı" yorumu çok ilginç. Chris Crawford, Tukyididesten bir alıntı yapıp "Savaşı kaçınılmaz kılan, Atinanın gücünün artışı, ve bunun Sparta'da uyandırdığı korkuydu" sözünde Atina ve Sparta'yı rahatlıkla tarihteki herhangi bir andaki iki devletle değiştirebileceğimizi söylüyor.

Bir diğer enteresan nokta, daha ziyade bellek sıkıntısı yüzünden oyundan çıkarılmış olan çok kutupluluk. Oyunda yalnızca iki süper güç karar veriyor, geri kalan devletler buna göre piyon olarak hareket ediyor. Özellikle güncel tarihe ve etrafımıza bakınca aslında çok daha gerçekçi olmuş bence. Neyse...

Geçenlerde firmware yüklemesi yapmak için dandik Windows istemcisine mecbur kaldığımız bir alet vardı. Biraz ters mühendislik ile Linux istemcisini yazıverdim. Benzer bir sorun yaşayan olursa diye bazı tiyoları buraya yazıyorum:

İlk önce, eldeki yazılımın USB işlemlerinin bir logunu -maalesef Windows üzerinde- almaya ihtiyacımız var. Bu işte en iyi sonucu sniffusb ile aldım. Bağlantıdan 1.8 sürümünü çekip, sniffusb.exe yi çalıştırın. Önce sürücüsünü yerleştirecek; sonra çıkan pencerede log alacağınız donanımı seçip, Install tuşuna basın. Aleti çıkarıp geri takın (yoksa devreye girmiyor), istemci yazılımınızı çalıştırıp bir süre aleti kullanın. Şimdi View ile logu görebilirsiniz.

Logu analiz edebilmek için USB spec belgesini el altında tutun. Çok kabaca ele alırsak; her takılan aygıtın (device) bir üretici (vendor) ve ürün (product) değeri var. Aygıtlar birden fazla yapılandırma (configuration) içerebiliyorlar. Flash disk + wireless stick gibi donanımlar, üzerindeki anahtarla yada yazılım yoluyla bu iki yapılandırmadan birine geçebiliyor mesela. Her yapılandırma bir veya birden fazla arayüz (interface) içeriyor. Bu arayüzler de, mesela mikrofonlu bir webcam'in görüntü ve ses işlemlerine karşılık gelebilir. Her arayüzün de, bir veya daha fazla bitim noktası (endpoint) var. Bu noktalar bir nevi soket gibi, datayı bu noktalara yolluyor ve alıyoruz.

Sıfır numaralı bitim noktası, sistemin kontrol iletişimi için kullanılıyor. Diğer noktalar ise bulk (yavaş ve garantili büyük boyutlu veri aktarımı), interrupt (mouse vb gibi sürekli ve önemli küçük veriler) yada isochronous (hızlı ve sabit bant genişlikte, garanti istemeyen veriler) iletişim modlarında veri aktarmak için kullanılabilmekteler. Eğer lsusb -v komutunu verirseniz, aygıtların bütün bu bitim noktalarını ve aktarım tipi, bant genişliği vb gibi özelliklerini görebilirsiniz.

Bu noktada çeşitli tahminlerde bulunmak gerekiyor. Mesela yükleyici logunda, firmware boyutundan bi parça büyük bir bulk transferin firmware ve başlık bilgileri içerdiğini anlamak kolay. Aynı boyda değişik içerikli iki firmware yollayınca değişen küçük kısım, bize başlıkta bir kontrol toplamı olduğu bilgisini veriyor. Değerlere çeşitli endianness hallerinde rastlamak mümkün olduğu için dikkatli olmak gerekiyor. Buradan sonrası çeşitli işlemlerin ne loglar oluşturduğuna bakmak, şekil tanıma yetenekleriniz ve bolca deneme yanılmaya dayanıyor. Benzeri işler yapan açık protokollerde ne yapıldığını bilmek de işinize yarayabilir. Hadi hayırlı ters mühendislikler :D



Etiketler: Genel   ,  Yorumlar: 0
opencv boogie 28 July 08, Monday @ 15:09

Bu aralar uğraştığım yazılımlardan biri de OpenCV. Kendisi, bilgisayarda görme (computer vision) konusunda bir çok algoritma kodunu barındıran bir kitaplık.

Pardus 2008 de

pisi it opencv
komutuyla kurabilirsiniz. Malesef Python arayüzü ile ilgili sorunlar yüzünden 2007 dağıtımında düzgün çalışmıyor.

Geçenlerde geliştirici listesinde dönen, bluetooth taşıyan kullanıcının sinyal şiddetinden ne kadar uzaklaştığını anlayıp ekranı kilitleyecek araç fikri bana ilham verdi. Şu basit panel programcığını kodladım. Çalıştırdığınızda panele yerleşiyor. Bilgisayarınızı bağlı kamerayı yüzünüze yönlendiriyorsunuz (çoğu laptopta dahili kamera bu şekilde zaten). Eğer 5 saniye boyunca bilgisayar yüzünüzü göremezse ekranı kilitliyor (panel ikonunun griye dönmesinden saymaya başladığını anlayabilirsiniz). Ayrıca birden fazla yüz varsa, derhal birinci desktop'a geçiyor, bu özelliği de patron arkadan bakınca ikinci desktop'ta oynadığınız oyunu saklamak için kullanabilirsiniz :D

Programcık çok cilalanmış değil, bazı değerler hard-coded vb. Fakat KDE, OpenCV ve Python aracılığıyla bir kaç sayfalık kod ile neler yapılabileceğini gösteriyor.

Ufak bir duyuru: Hareketli zeki robotlar konusunda bir gezegen açtık: Chapek9! Konuyla ilgiliyseniz bağlantıyı rss yazılımlarınıza eklemeyi unutmayın :)

Haftanın şekeri ise Johnny Cash ve Louis Armstrong playing in black&white..



Etiketler: Genel  Robotik   ,  Yorumlar: 0
müzeleri gezelim... 22 July 08, Tuesday @ 22:23

Kültür bakanlığının güzel bir hizmeti var, 20 ytl karşılığında alabileceğiniz MüzeKart sayesinde bakanlığa bağlı tüm müze ve ören yerlerini bir sene boyunca bedavaya gezebiliyorsunuz. Çok sık gezmiyorsanız bile oldukça hesaplı. Bir incelemenizi tavsiye ederim.

Homoerotik safkan beyaz temalı Abercrombie & Fitch markası, delikanlı geçinen ve kültürlerin kaynaştığı Türkiye'de nasıl bu kadar moda oldu anlamış değilim. Böyle bir şey giyiyorsanız şunu bir seyredin hele :)



Etiketler: Genel 
atma bre atmel 18 July 08, Friday @ 11:31

Bir bilgisayarı motor ve sensörlere bağlamanız gerekmişse, yada çok basit olmayan kararlar verecek bir elektronik devre yapmışsanız, mikrokontrolörlere illaki işiniz düşmüştür. Mikrokontrolör basitçe, üzerinde CPU, RAM, Flash bellek gibi birçok bileşen içeren ve kendi başına ufak bir bilgisayar gibi çalışabilen bir entegre devredir.

Türkiye'de çoğunlukla Microchip'in PIC serisi kullanılıyor, ama ben Atmel firmasının AVR serisini tercih ediyorum. Neden derseniz, geliştirme ortamı bildiğimiz gcc! gcc'nin çalıştığı herhangi bir platformda, normal masaüstü işlemcilere, yada gömülü ARM işlemcilere vb nasıl kod üretiyorsak, aynı şekilde AVR için geliştirme yapabiliyoruz.

Geliştirme ortamını paketledim ve Pardus 2007 ve 2008 depolarına girmiş durumda.

pisi it -c programming.microcontroller
komutuyla kolayca kurabilirsiniz. Derleme ortamı binutils-avr, gcc-avr ve avr-libc paketlerinden oluşuyor. Derlediğiniz dosyaları avrdude aracıyla entegrenize yükleyebilirsiniz.

Yükleme bağlantısı için internetten STK500 gibi bir kit satın alabilir, ya da ucuz ve rahat temin edilebilecek bir çözüm isterseniz Altaş yayıncılığın USB programlayıcı kartını kullanabilirsiniz.

AVR işlemcilerin çoğu modelini Karaköy'de bulabilirsiniz. Fiyatları oldukça ucuz ve dahili osilatörleri olduğu için, nerdeyse iki bacağını akıma bağlayan basit bir devreyle çalıştırabiliyorsunuz. Model seçerken dikkatli olun, mesela 3 PWM çıkışı var diyebilir, ama o pinler aynı zamanda programlama girişi yada RS232 gibi başka bir üniteyle ortak çıkabilir, teknik PDF dosyasını indirip pinlerin görevlerini kontrol etmekte yarar var.

Blogu uzatmamak için burada kesiyorum, ilerde yazılım araçlarının kullanımı ile devam ederiz.

Nota tanıma programı ise sevgili Löker'in katkısıyla ölçeklenebilen SVG bir arayüze kavuştu. Qt4'ün QGraphicsScene sınıfına da ayrıca teşekkür ediyoruz.



Etiketler: Genel  Robotik   ,  Yorumlar: 1
doremi 03 July 08, Thursday @ 12:26

Harmonika öğrenirken ilk çıkan zorluk notaları bükebilmektir. Diatonik tabir edilen harmonikalarda her oktav için 12 notanın hepsi direk olarak bulunmaz. Mesela üçüncü delikten üflerseniz Sol (G), nefes çekerseniz Si (B) notasını çalarsınız. Nefes çekerken ağzınız içindeki hava akışını değiştirmeyi başarırsanız, notayı aşağı çekeceğiniz her yarım adım için sırasıyla Si bemol (Bb), La (A), La bemol (Ab) şeklinde Si'den Sol notasına doğru ses titreşimini indirebilirsiniz.

Bu hava akışını değiştirmek yazıldığı kadar kolay öğrenilen bir şey değil tabi. İşte bu tekniği çalışırken çok işe yarayan Bendometer adlı bir program vardı. Mikrofona çaldığınız sesten harmonika üzerinde hangi notayı çaldığınızı ve ne kadar bükebildiğinizi gösteriyor. Ağzınızla sesin frekansıyla istediğiniz gibi oynayabileceğiniz için (perdesiz gitar vb gibi düşünün) bu notaları tam frekansında çalabilmek önemli.

Faydalı olduğu için parasını ödeyip register da olmuştum. Ancak aylarca yanıt gelmedi, şimdi de yıllık abonelikli ve yüksek ücretli bir hale gelmiş. Ben de bari oturup yazayım işimi görecek bir şey dedim.

Python ve Qt4 ile hızlı bir prototip çıkardım, işte buradan erişebilirsiniz. Sesten notayı çözmek oldukça zor bir problemmiş, bunun için şimdilik Aubio adlı python kitaplığından faydalanıyorum, daha iyi bir algoritma hazırlayana kadar. Programı denemek için onu da çekip kurmanız gerekli.

Şimdilik çok basit halde, bazı şeyler hardcoded falan, ama keyifli bir şekilde gelişeceğini umuyorum. Belki ilgisini çeken olur diye de yazdım buraya :)



Etiketler: Genel   ,  Yorumlar: 0
2. özgür yazılım konferansı 24 June 08, Tuesday @ 16:21

Geçen hafta sonu yapıldı. Ben de cuma günü özgür robotik yazılımları üzerine bir sunum verdim. Konferansın ardından Linux Kullanıcıları Derneği genel kurulu da yapıldı. Yönetim kuruluna yeni seçilen ekibe başarılar diliyorum. Umarım derneği yeniden idari işleri hızlı işleyen ve özgür yazılım camiasını bir araya getiren eğlenceli bir çatı haline getirmeyi başarırlar.

Nice zamandır düşündüğüm, bilgisayar bilimleriyle ilgili güzel kitapların listesini nihayet toparladım. Daha eklenecek şeyler var, ama iyi bir başlangıç sağlıyor meraklısına.



Etiketler: Genel   ,  Yorumlar: 0
Zangetsu! 23 May 08, Friday @ 12:26

Günlük yazılımımı Zangetsu ile değiştirdim, böylece etiket ve yorum desteği de olacak artık. Daha sık günlük yazmamı sağlayacağını da umuyorum bu değişikliğin :)

 Bir program üç satır da olsa eninde sonunda maintain edileceği gün gelecektir diye bir laf vardır. Piside inşa sırasında sisteme taşmaları önlemek için kullandığımız catbox modülü için de bu hafta bakım sırası geldi :)

 Bu modül bir türlü doğru dürüst çalışmamıştı ve belirsiz bir şekilde bilmediği bir süreçten (process) gelen sinyallerle karışıyordu. Sorun şuymuş, bir programın sistem çağrılarını takip için kullanılan ptrace() çağrısının PTRACE_O_TRACEFORK diye bir seçeneği var. Takip ettiğiniz süreç fork ettiğinde, size buna dair bir sinyal ve yeni sürecin PID değeri geliyor, o süreç ise SIGSTOP ile hayata başlıyor ve çalışmak için sizin kontrolü ele almanızı bekliyor. Böylece takip ettiğiniz süreçler fork ederek sizden kaçamıyorlar.

 Şu kodda decide_event() içinde görebileceğiniz gibi, oldukça karışık olan sinyal takibi sırasında, yeni sürecin çok hızlı açılıp SIGSTOP sinyalini ebeveyninin PTRACE_EVENT_FORK sinyalinden önce yollayabilmesi mümkünmüş. Bu durumu da dikkate alınca sorun düzeldi. Bu tür "race condition" tabir ettiğimiz zamanlama sorunlarını yakalamak ve incelemek çok zor oluyor. Burada şu anki halinden daha karışık olan core_trace_loop() u parçalara ayırıp basitleştirdikçe bazı ipuçları ortaya çıktı, sonra da bir kaç basit testle problemi yakalamak mümkün oldu. Hatanın nedenini bir türlü bulamıyorsanız, kodu yeniden yapılandırmayı deneyin yani :)

Bütün bu mambo cambo basitçe, son kullanıcıların eline daha iyi denetlenmiş dolayısıyla daha kaliteli paketlerin geçeceği anlamına geliyor.

Günün bilimsel eğlencesi ise "Kıllı top teoremi" :D

 İlk aklınıza gelen şey değil tahminen. Bir bilardo topunun üstündeki saçları tarayamazsınız şeklinde eğlenceli bir izahından dolayı bu ismi vermişler. Bir küre etrafındaki vektör alanın en az bir noktasının sıfır değerinde olduğunu söylüyor. Mesela rüzgarı dünya etrafında böyle bir vektör alan kabul edersek, herhangi bir anda dünyanın bir yerinde mutlaka bir siklon olduğu gibi enteresan sonuçları var.



Etiketler: Genel   ,  Yorumlar: 0
Önceki Sayfa  - 1 / 8Sonraki Sayfa