Beagleboard ve Ubuntu

Published 31.08.2011 by Admin

 

Beagleboard furyasına ben de katıldım çünkü TV'ye bağlanarak çalışan bir cihaz ve bu cihazda çalışacak yazılım üzerine çalışıyorum ve donanımı hazırlamanın zamanı artık geldi :) Beagleboard-xM versiyonu edinemedim (512MB ram 1GHZ İşlemci) onun yerine bi arkadaştan Beagleboard rev-C buldum (256MB ram ve 720MHZ İşlemci). Beagleboard disk olarak sd-card'lar kullanıyor. Bu konuyla ilgili zor kısımlardan biri eğer board'un yanında gelen demo sdcard'tan fazlasını istiyorsanız yeni bir sdcard hazırlamak :) İlk olarak Android çalıştırmaya çalıştım ama başarılı olamadım. Bootload yüklemesinden sonra bir türlü android loading ekranını göremedim. Ubuntu'yla çok daha az süre harcadım ama bayramın boş geçen 1. gününü böylece doldurmuş oldum :) Resme tıklayarak video'yu izleyebilirsiniz. Sevgiler.


2 haftadır sunucu ve mobil cihazlar arasındaki şifreleme işlemine kafa yoruyorum ve böyle birşey için bir geliştiricinin önündeki temel sorun tam olarak şöyle : "Hem bütün platformlarda çalışsın hem de düzgün ve uyumlu şifrelesin" :) Şimdilik Android ve IIS arasında bu olayı hallettim.

 

 

 

 

 

 

 

 

 

 

Uygulamanın android java kısmı :

Gerekli importlar

       import javax.crypto.Cipher;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;

     String key = "abc122**"; // secret key'iniz
     byte[] keyBytes = key.getBytes();
     SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "DES");

     String iv = "321cba**"; // vector byte'larınız
     byte[] ivBytes = iv.getBytes();
     IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);

     try {
           Cipher cipher = Cipher.getInstance("DES");
           cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
                           
           byte[] encrypted = cipher.doFinal(parameter.getValue().getBytes());

           String encryptedBase64 = Base64.encodeBytes(encrypted);
      } catch (Exception e) {
           e.printStackTrace();
      }

ve C# ASP.NET kısmı

       byte[] keyBytes = Encoding.UTF8.GetBytes("abc123**"); // secret key
    byte[] ivBytes = Encoding.UTF8.GetBytes("321cba**"); // initialization vector

    byte[] dataBytes = Convert.FromBase64String(cryptedString);

    System.Security.Cryptography.DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    cryptoProvider.Mode = CipherMode.ECB;
    MemoryStream memoryStream = new MemoryStream(dataBytes);
    CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoProvider.CreateDecryptor(keyBytes, ivBytes), CryptoStreamMode.Read);
    StreamReader reader = new StreamReader(cryptoStream);

       string decryptedString = reader.ReadToEnd();

Bu işlemler sırasında dikkat etmeniz gereken iki husus var. Birincisi şifrelenmiş veriyi diğer tarafa Base64 formatında taşımanız ve taşırken aynı zamanda URLEncode işlemine sokmanız. Eğer bunu yapmazsanız hem URL safe olmayan karakterlerle baş edemiyorsunuz hem de veride bozuklık oluyor. Defalarca denemeden sonra Base64 işimi çözdü şükür ki. Diğer husus ise .NET tarafında Mode property'sinin ECB olarak set edilmesi çünkü Java şifrelerken .NET tarafında bu profile uygun şifreliyor. Buna da saatlerimi harcadım malesef :) Neyseki şükür bu da çözüldü :) Sevgiler.


Doktorlar! Bu ne ya :::)))))

Published 17.08.2011 by dogan

Bu ne yaaaa :) Saat 3:44 ve 23:30'dan beri Doktor'lar dizisi var. Yüzüklerin Efendisi bile 3 saat yaaa :)))

Güncelleme : 4:21 Hala devam ediyor...

Güncelleme : 4:31 Zenan yaptığı anlamsız gurur ve kaprislerden vazgeçip Mehmet'in evlilik teklifini kabul etti... Oh beeee :D ve dizinin bu bölümü bitti.

Sonuç : DOKTORLAR! STAR WARS'a bile kök söktüren bitmeyen dizi!

Güncelleme : Ertesi gündeyim ve yine DOKTOR'lar var saat 1:53. Bu ne yaaaa :D 4 doktorun evinde herkes birbirine bağırıyor ve herkes birbirinden özür diliyor ve bundan hiçbir şekilde bıkmıyorlar :))))

Güncelleme : 2:32 Abi yok böyle bi olay :))) Salak bakışlı kıza Levent bey geliyor diyor ki "ben seni asla bırakmam" kız gidiyor evde Zenan'a "galiba beni sevmiyor istemiyor evlenmeyi" diyor. Gerçekten de böyle insanlar var ya dünyada ve bunu bilmek bende tuhaf bir ürpertiye neden oluyor :)))


Galaxies Out There

Published 9.08.2011 by Admin

En sonunda 8 parçadan oluşan ve hazırlayabilmem 2 yıl süren experimental müzik albümü tamamladım. Umarım beğenirsiniz.


Apple TV Jailbreak

Published 2.08.2011 by dogan

Bugün biraz zaman ayırıp elimdeki Apple TV 2'yi jailbreak'ledim. Umarım yaptığım işlemler için yazdığım bu klavuz işinize yarar.

Bir çok jailbreak inceledim bunlardan redsn0w, greenposi0n, PwnageTool ve seasonpass. Greenposion'ın kırabildiği appletv versiyonu anladığım kadarıyla baya bi düşük o yüzden başarılı olamadım. Amacım olabildiğince güncel bir versiyon üzerinden cihaz kullanmaktı. Seasonpass ile başarılı bir şekilde jailbreakleme yapabildim.

Seasonpass'in güzelliği cihazın ipsw firmware'ını otomatik çekmesi. Çektikten sonra patch'leyip Mac'inizin ana Mac klasöründe yeni bir ipsw firmware dosyası oluşturuyor. Otomatik olarak itunes'a script komudu yollayarak bu dosyayı kurdurmaya çalışsa da başarılı olamayıp kendin elle kur dedi. Ben de cihazu kumandadan menu ve play tuşlarına 7 sn basılı tutarak DFU moduna aldıktan ve bilgisayarıma bağladıktan sonra iTunes restore bölümünde alt tuşuna basılı tutarak Restore düğmesine tıkladım. Oluşturulmuş ipsw dosyasını seçtim ve jailbreak'leme işlemi tamamlandı.

Sıra XBMC kurmaya geldi ki jailbreak yapmamın sebebi xbmc ile NAS sürücüsü üzerinde film izleyebilmek. Bunun için Applications > Utilities > Terminal açıyoruz. Daha sonra

ssh root@apple-tv.local

yazarak cihazımıza ssh bağlantısı yapıyoruz. Size güvenli bir bağlantı kuramadığını yine de bağlanmak isteyip istemediğinizi soracak yes yazın geçin.

Şifre sorduğunda eğer değiştirmediyseniz default password alpine kelimesidir.

Bağlandıkta sonra sırayla bu komutları girin

apt-get install wget
wget -O- http://apt.awkwardtv.org/awkwardtv.pub | apt-key add -
echo "deb http://apt.awkwardtv.org/ stable main" > /etc/apt/sources.list.d/awkwardtv.list
echo "deb http://mirrors.xbmc.org/apt/atv2 ./" > /etc/apt/sources.list.d/xbmc.list
apt-get update
apt-get install org.xbmc.xbmc-atv2

ve XBMC'li yeni Apple TV 2'niz hayırlı olsun. Güle güle kullanın :)


Empati tecrübenin çocuğudur

Published 27.07.2011 by dogan

Evet bu sözü geçen gün düşünürken buldum :) Çıkış noktası da şöyle oldu. Bir arkadaşım aşık olduğu kız için hüngür hüngür çocuk gibi ağladı omzuma dayanıp. Aynı ortamda olan bir arkadaş ta onu kınar gibisinden bişeyler söyledi ama ben çocuğu çok iyi anlamıştım. Aradaki empati farkı neden diye düşündüm. Her ikisinin de düşüncelerine saygı duyuyordum. Çünkü olayı kınayan arkadaş benim görüşüme göre gerçekten hiç aşık olmamış, sevmemiş, sığ düşünceli biriydi ve fikri böyleydi ve hadise gerçekleşirken öyle bir yorum yaptı. Ben benzer seviyede bir aşkı daha önce birkaç kez tatmıştım. O yüzden olay bana hiç yabancı ve kınanacak şekilde gelmemişti. Bence burda dikkat edilmesi gereken nokta olayları yorumlarken, insanları değerlendirirken daha fazla dikkat etmemiz gerektiği. Ok evet eğer bir konuda belirli bir tecrübeye sahip değilseniz bu örneğimizde olduğu gibi kişinin empati kurması biraz güç bi iş. Ama en azından bunun farkındalığında olmak bile bizim hayatımızda fark yaratacaktır. Son söz olarak :) Empati tecrübenin çocuğu gerçekten :) Sevgiler...


Verilmemiş sadakam varmış...

Published 26.07.2011 by dogan

 

Bir arkadaşım, annesinin eski telefonunu olan iPhone 2G telefonu idareten kullandığını fakat özelliklerini nasıl arttırabileceğini sordu. Youtube falan çalışmıyordu. Dedim olur. Şimdi durum şöyle : Ortada iPhone 2G bir anne telefonu var. Alındığı günden beri muhtemelen iOS update'i görmemiş. Telefonun update versiyonu 1.1.4 gün itibariyle mevcut iOS versiyonuysa 4.3.4. Yani gerçekten de hiç update edilmediğini düşündüm. Dedim güncelleriz ve hallolur. Cihazı iTunes kullanarak şirkette birlikte güncelledik ve telefon sim-lock'lı bir şekilde kilitlendi. Cihaz, mevcut sim kartla çalışamayacağını uygun sim kart takılmasını söylüyordu. Arkadaşa mahçup olarak bir çözüm bulacağımı söyleyip cihazı almadan şirketine göndermek zorunda kaldım. Sonra cihazı neden almadıysam gittim cihazı istedim, aldım şirkete geldim ve macera başladı :) Cihazı 3.1.3 olan geçerli versiyondan 3.1.2'ye downgrade edebildim fakat hala aktif hale getiremiyordum. Sonra gidip unlock için blackra1n'in hazırladığı patch'i cihazı macbook pro'ma bağlayıp kurdum. 2 denemeden sonra çalışmadığını gördüm. 3 kere redsnow jailbreak kurdum, kurarken unlock özelliğini işaretledim. Herşey ama herşey inanılmaz düzgünken hala cihaz çalışmıyordu. Kafayı yemek üzereydim ve başladığımdan beri 5 saat geçmişti :) Tam bir sıçış yani :) Ardıdan bootneuter denilen iPhone 2G'ler için özel bootloader'ı kurmaya çalıştım ama cihazda Cydia açılmıyordu. Nedenini bilmemekle birlikte Cydia'nın yazılım çektiği repository adreslerinde bir sorun vardı. iFunBox indirip dosya sisteminden Cydia repository dosyalarını sildim. Cydia yeniden çalışmaya başlayınca bu sefer bootneuter'in olduğu repository olan TheBigBoss repository'sini eklemeye çalışırken sorun çıktı. Repository'i elle adres yazarak eklemeye çalıştım ama adres 403 forbidden hatası veriyordu. Gittim BigBoss'un cydia plist dosyalarını buldum onu yine iFunBox ile cihaza atıp cydia'da bigboss'u 1,5 saat sonra görebildim. Ardından bootneuter'i güç bela kurdum. Ama ama amaaaa hala cihaz şebeke görmüyordu. Bootneuters baseband versiyonunu 3.9'dan 4.6'ya çıkarmak için takla attım bu sefer de cihazda No Wi-fi hatası çıkmaya başladı ve wi-fi'ı görmüyordu. İyice çıldırmaya başladım :) Bootneuter'in birkaç ayarını değiştirdikten sonra herşeyi tekrar çalışır hale getirdim ama hala cihaz No Service durumundaydı. Sonra aklıma birden, ama birden :D cihazın kayıt dışı olabileceği geldi ve hemen telekomunikasyon kurumunun sitesinden kontrol ettim. O da nesi aboooov :D cihaz kayıt dışı. Dedim resmen rezil oldum nasıl anlatıcam kıza bahane falan zannedecek dedim kendi kendime :) Bir yandan da keşke cihazı ilk başta update etmeden önce IMEI'sini bir yere not etseydim dedim. Çünlü başta da cihaz fake IMEI sahibiymiş ama çok geç anladım :) Sonraaa başladım nasıl fake imei kullanarak cihazı düzeltirim diye. Eskiden kalma kullanmadığım bir telefon vardı kayıtlı. Onun IMEI numarasını bi kağıda kaydettim. Sonra internetten okuyunca anladım ki cihaz ancak 1.1.4 versiyonu yani ilk aldığım versiyon'da fake IMEI yapılabiliyor. Başladım versiyonu düşürmek için tırım tırım yol aramaya. 4 saatin sonunda iTunes'un eski bir versiyonuyla cihazı 1.1.4'e geçirmek için bir yol buldum. Ama bir türlü 1.1.4 olmuyordu. Ana bilgisayarda, Macbook pro'da defalarca deneme yaptım. Bi yandan da arkadaşa ne diyeceğim diye düşünüyordum :) Sonra aklıma hiç iTunes kurulmamış bir makinada sıfırdan kurulum yapıp denemek geldi. Mini masaüstü bir bilgisayarım var müzik çaldığım, ona kurulum yapıp denedim veeeee 1.1.4 2 saat sonra kurulmuştu :) Sonra zibri nicki bi hacker'ın hazırladığı ZiPhone yazılımını kurdum ve fake IMEI ile güncelleme yaptım. Cihaz VODAFONE yazısını ekranda yazdığında defalarca şükrediyordum "Allahııııımmm" diye :) Başlıkta da yazdığım gibi galiba verilmemiş sadakam varmış :) Şükür oldu ve yarın arkadaşa büyük bir huzur içinde toplam 11 saat uğraşarak ve 30-35 yükelem denemesi sonunda cihazı geri teslim edebileceğim. fiuuuuvvvvvv :)


Real Time Wave/Water Simulation

Published 7.07.2011 by dogan

Geçen yıl Flash için Actionscript'le hazırladığım dalga simulatörünün Unity3D versiyonu, buyrun :) Unity3D hardware rendering yaptığı ve birçok gelişmiş özelliğe sahip olduğu için sadece dalga hesaplamasına daha rahat odaklanabildim doğal olarak daha gerçekçi ve daha kaliteli bir sonuç ortaya çıktı :) Sevgiler.

http://www.youtube.com/watch?v=HPIH0SbJSDg


 

       Avea'nın 2 ay önce düzenlediği Avea Inovasyon yarışması için hazırladığım ve daha önce yine burdan tanıtım videosunu paylaştığım uygulamanın uzun bir hikayesi var. Daha önce izlediğiniz tanıtım video'sunu çektiğim gün, yarışmanın son başvuru günüydü. Herşeyin tam olması ve tam bir ajans işiymiş gibi olması için son güne kadar hep güncelleme yaptım. Son gün dosyayı yarışma sitesinin içindeki formdan postalayınca hiçbir mesaj, işte ne bileyim bi "katıldığınız için teşekkür ederiz, başarılar dileriz" gibi bir yazı bekledim ama çıkmadı. Aynı submit sayfasına geri döndü ben de emin olmak için bir kere daha formu kullanarak gönderdim ve beklemeye başladım :) Fakat 20 gün sonra ilk 10'a bire giremediğimi gördüm. Hayatta her zaman insan kazanamaz, doğal olarak ben de belki inovatif değildir diye beğenmediler dedim. Amacım Avea'nın dereceye soktuğu anda AppStore'a gönderip tek kerede approve alabileceği kaliteli, güzel görselli bir uygulama yazmaktı. Daha sonra ODTÜ Tekokent'te Halıcı yazılım evinde ODTÜ Arge Günleri düzenlendi ve şu an Sebit için hizmet verdiğim Sobee firmasının standına gün içinde çalışma arkadaşlarımı görmek için uğradım. 2 yan standta da Avea'nın Invasyon bölümünden bir yetkili varmış, Sobee Ankara yöneticisi Erdal bey beni bu şahısla tanıştırdı. Bu beyfendinin 15 dakikalık sohbet sonunda inovasyon sorumlu yöneticisi ve geçmiş yarışmanın da jürisi olduğunu öğrendim ama bana yarışmaya katılan bütün uygulamaları tek tek incelediğini ve benim uygulamamı görmediğini gayet emin bir şekilde söyledi. O anda yarışma sitesinde bir form sorunu olduğunu anladım. Konuşma sonunda mutlaka kendisine mail atmamı ayrıntıları anlatmamı istedi. Ben de aynı gün mail attım. 1 hafta sonra Avea Maslak binasından bir bayan beni aradı ve uygulamayı çok beğendiklerini bikaç ufak rötuşla hemen AppStore'a göndermek istediklerini söyledi ve beni tanışmak ve konuşmak için Maslağa davet etti. 2 hafta sonu gittim ve istedikleri ayrıntıları öğrendim. 1 hafta sonra uygulamadaki bütün değişiklileri hazırlayıp gönderdim ve AppStore submit işlemini gerçekleştirdik. 10 gün sonra da yani bugün tek seferde reject olmadan uygulama approve aldı şükür ki :) Böylece iOS development cycle'ımın doğru bir şekilde işlediğini bir kere daha kanıtlamış oldum. Çok mutluyum ve şükrediyorum çünkü doğru insanlarla tanışmasam ve doğru şeyler olmasa bu sonuca ulaşamazdım, birçok yeni insanla tanışamazdım, para kazanamazdım :) Şükürler olsun bin kere :)

Ayrıca Avea Yetkilileri benim adımın uygulamanın iTunes açıklama metinleri içinde de geçmesini doğru bulmuşlar. Çok teşekkürler :)

Uygulamayı cihazınıza indirebilmeniz için iTunes linki :

http://itunes.apple.com/gb/app/aveabayileri/id445331583?mt=8&ign-mpt=uo%3D2


Hard Disk Fix with hot-air gun

Published 28.06.2011 by dogan

Bir hafta kadar önce çok sevdiğim 500GB bir darbeye dayanıklı harddiskimin usb girişi kırılmıştı. Bu hafta tamiri için yeni bir mini-usb soketi buldum ve değiştirmeye karar verdim.

Buyrun izleyin :) Sevgiler

http://www.youtube.com/watch?v=p_fsmmq0k48