Programcılık Macerası

Gerçek mesleğim öğretmenlik ama uzun zamandır hobi olarak bilgisayarlarla uğraşıyorum. Herhalde bilgisayarlara olan bu ilgimi baştan keşfetmiş olsaydım bir bilgisayarcı olabilirdim. Ama bu da pek mantıklı gözükmüyor çünkü bizim zamanımızda bilgisayar mağazalarının olduğu yerler hep dutluktu.

Aslında orta seviye assembly bilgisine sahibim ve bu bilgi bana programların nasıl çalıştığı konusunda oldukça fazla bilgi veriyor. Fakat assembly de kapsamlı bir program yazabilmek çok zor, bazen imkansız. Çünkü diğer RAD platformlarının sunduğu binlerce kütüphaneden ve bilgiden mahrum kalıyorsunuz. Ben de geçen yaz ciddi bir şekilde C++ diline eğilmeye karar verdim. Bayağı da ilerledim. Kamboçyada öğretmenlik yaparken öğrencilerimle başlattığım İngilizce-Khmerce sözlüğü yazdım. Ama günden güne bu programlama diline olan ilgimi kaybettim. Eğer bir şey ilgimi çekmiyorsa o işle uğraşmak bana zulüm geliyor.

Programı yayınladıktan sonra öğrencilerin bazıları iOS versiyonunu istediler. Bende bu şekilde biraz merak biraz bu tip yeni şeyleri inceleme isteğinden iOS programlama dünyasına daldım. iOS da program yazabilmek için MAC işletim sistemine ihtiyacımız var. Ben şu ana kadar hep PC kullanmıştım. Sadece bir heves için MAC almayı da çok mantıklı bulmadım. Bu yüzden eski HP laptopuma Hackintosh denilen yöntemle Mavericks yükledim. Daha sonra github ve google u kullanarak bir şekilde 1-2 ay içinde iPhone ve iPad lerde çalışan bir programı yazdım. Bittiğinde gerçekten bu bana bir başarma duygusu verdi. Yazdığın programı hemen cep telefonundan erişmek hoşuma gitmişti. Ben de iOS a eğilmeye karar verdim.

Apple tam o sıralar iOS 8 i ve yeni bir programlama dili olan Swift i duyurdu. Objective C nin parantezlerinden bıktığımdan bu yeni dili öğrenmeye karar verdim. Öncelikle 15$ a Udemy de iOS kursu satın aldım. Ben aldım ama sakın siz almayın. Nedeni kursu veren kişi bir Web Developer ve öğrendiği kadar Swift anlatmış. Aşırı derecede kötü kodlar ve buna bağlı alışkanlıkları size öğretiyor. Bunu anlamam biraz uzun sürdü ve sanırım kursun yarısından sonra bıraktım. Eğer video kurslarından ben iyi öğreniyorum diyorsanız, iTunes U da Paul Hegarty in Swift kursu var onu şiddetle tavsiye ederim. Kendisi Apple ın temellerini oluşturan Next Systems de çalıştığı için API lerini tarihini biliyor ve şiir gibi kod yazıyor.

Bir şeyi öğrenmenin bence iki yolu var; 1) Öğretmek 2) Pratik. Benim gibi bir öğretmenden Swift öğrenecek birini bulamadığım için ben de ufak tefek bir şeyler yazmaya karar verdim. İlk başta önceden bahsettiğim kursa bağlı programlar yazdım ama o programlar gerçek hayatta hiç bir kullanımı olmayan Kedi Yaşı(Kedi canını yisinler) hesaplaması gibi ya çok basit programlardı veya Hava Durumu gibi çok genel fikirlerdi. Kardeşime yardım olması bakımından bende interaktif bir belediye uygulaması yazmaya başladım. İşte bu aşamada artık bir şeyler öğrenmeye başlamıştım. En basit şeylerin günlerimi aldığı zamanlardı. Stackoverflow sağ olsun uzun sürdü ama çok büyük deneyim kazandım.

Sonradan sadece kendi isteğim doğrultusunda bir program yazmaya karar verdim. App Store un öne çıkan uygulamalar kısmında Deliveries diye bir programı görmüştüm. Program 10-15 tane kargo şirketini destekleyen bir kargo takip programı. Program oldukça basit olmasına rağmen ilk program olduğundan aşırı derece de rağbet görüyordu. Ben de Kargo ile alakalı Türkiyede bir program yazılmış mı diye baktım ama bulamadım. Aslında varmış ama ben İngilizce App Store kullandığımdan arama sonuçlarında çıkmıyordu. Bu gazla programı geliştirmeye başladım. Yüzlerce kargo şirketi olduğundan sadece Türkiyedeki bütün firmalar ve yurtdışındaki belli başlı firmalara odaklandım. 2015 Ocak ayında başladım ve programın App Store da gözükmesi Ağustos ayını buldu. Şubat ayında Swift 1.2 çıktığında bana bayağı bir baş ağrısı vermişti. O kadar kodu yeniden düzenlemem gerekti. Program aslında Nisan gibi bitti daha doğrusu ben öyle zannettim. iOS 7 üstü bütün cihazları desteklememe rağmen sadece iPhone 5S ve iPhone 6 ile test etmiştim. Meğerse ne kadar bug varmış :) iOS 7 de programı açtığımda program anında göçmüştü. Mayısa kadar programı çalışır hale getirmekle uğraştım.

Bundan sonraki aşama App Store a yüklemek. Öncelikle App Store a paşa paşa yıllık 99$ bayılmanız gerekiyor. Benim için bu uzun zaman aldı. Çünkü önce bankadan debit hesabı açtırdım. Fakat “güvenli” bankamız debit kart ile 3D güvenlik olmayan yerlerden alışveriş yaptırtmıyor. Belki bir gün bu ismi bende mahfuz “güvenli” bankamızın iOS programının ne kadar “güvenli” olduğu ile akalalı bir yazı yazabilirim. Neyse en sonunda Ağustos gibi App Store da iki programım yayınlanmaya başlandı. Yazdığım kargo takip programı Kargom Nerde bana çok şeyler öğretti. Öncelikle Swift dilini öğrenmeme yardımcı oldu. Daha sonra Software Testing in gerçekten önemli bir şey olduğunu anladım. Eskiden her bir kargo şirketini manuel olarak test ediyordum(Çaylak alarmı!!!). Şu an ben de artık Unit Testing yapıyorum. Eylül 2015 gibi Swift 2 dili çıkacak ve yine yeni şeyler öğrenmem ve eski yazdığım kodları tekrar dan düzenlemem gerekecek. Fakat bu sürekli yeni şeyleri öğrenebilme hali beni gerçekten motive ediyor. Bu yazıyı yazma nedenim günlük 20 kişiye varan devasa kitleme şu mesajı vermek:
Yeni bir şey öğrenmek için eğer ölmediyseniz hala geç kalmış sayılmazsınız.

Linkler:
Kargom Nerde: http://www.mustafadur.com/findmyparcel/indextr.html
Stanford Swift Kursu: https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099

osTicket Türkçe Çevirisi

Bu benim ilk Türkçe içerikli yazım o yüzden işe yarar birşey hakkında yazayım dedim. Kardeşimin bir işi için bir destek yazılım sistemine ihtiyacımız vardı ve açık kaynak kodlu bir destek yazılımı olan osTicket‘ta karar kıldık. Fakat kardeşimin İngilizcesi olmadığından yazılımı iyi bir şekilde kullanamıyordu. osTicket’ın eski versiyonları bir ara Türkçeye çevrilmiş ama 1.9 versiyonu için oldukça fazla eksik vardı. Bayağı uzun süren bir çalışmadan sonra 4 gün önce çeviriyi bitirdim. Bayağı uğraştığımı söylemek zorundayım. Çevirdiğim onca satıra ilaveten ayrıca yanlış ve eksik çevirileri de değiştirmek zorunda kaldım. Gerçekten birisi ‘Agent’ keilmesini neden ‘Agent’ diye çevirir anlayabilmiş değilim. Türkçe konuşan Şotanın röportajını Türkçeye çeviren muhabir aklıma geldi.

Çeviriyi kontrol etmek ve gördüğünüz hataları düzenlemek için bu adrese gidebilirsiniz. Yeterli kişi onayladığı zaman bu çeviri osTicket’ın çeviri paketlerine eklenecektir. Eğer siz de benim gibi bu kadar bekleyemem derseniz size bu işi kendi başınıza nasıl yapacağınızı anlatayım.

  1. Bu siteden bütün çeviri dosyalarını tek tek indirin.
  2. Sitede olduğu gibi aynı klasörleri oluşturun ve indirdiğiniz dosyaları doğru yerlerine kopyalayın.
  3. Bu siteye gidin ve messages.po dosyasını ‘Convert .po to .mo’ ile çevirin ve oluşan dosyayı messages.mo şeklinde kaydedin.
  4. osTicket yazılımın içindeki include/class.translation.php dosyası ile şu komutları yazarak .message.mo.php dosyasını oluşturun
    php include/class.translation.php messages.mo > messages.mo.php
    Hata oluşup oluşmadığını anlamak için messages.mo.php dosyasının içeriğine bakın
  5. Oluşan bu dosyayı çevirinizin içindeki LC_MESSAGES klasörüne kopyalayın ve bu klasörde eğer varsa messages.po dosyasını silin.
  6. En son olarak phar-util i indirin aşağıdaki komutlar ile .phar dosyasını oluşturun
    phar-build.bat -s /ceviri-klasorunun-adresi -n
  7. Oluşan dosyayı osTicket klasörünün /include/i18n/ klasörüne kopyalayın.

Eğer hata yapmadıysanız oluşan klasörün boyutu 340 KB civarı olacaktır. İyi günlerde kullanmanız dileğiyle.

English-Khmer Chemistry Dictionary for iOS

As I told you before, I would publish iOS version of the dictionary if people keep editing the wiki. After I released PC version, I checked the wiki. Guess how many people edited the wiki? Let me give you a hint, it is less than 1 :) I realized that, this wiki won’t mature in near future. So I decided take one more thing off my bucket list.
Let’s talk about the dictionary. Unfortunately, I didn’t/don’t know much about Objective-C and iPhone programming. I read lots of code, installed Yosemite to my old HP PC(hint:hackintosh) and start learning it. After a month, and banging my head more than I can remember, I made something that worked. You should have seen me when it worked. Haha silly me. Anyway, I hope it also works for you. It is a universal app that should work both on iPhone and iPad which has iOS 7 or above. I tested on iPhone 5s and iPad Air and it worked. Since I don’t have a developer account, you need a jailbroken device to install this.

  1. First of all, jailbreak your device.
  2. Open Cydia and install Apple File Conduit “2”. Reboot.
  3. Open Cydia and add http://cydia.angelxwind.net repo and install AppySync Unified v5.2-1 or above
  4. Finally, grab Dictionary.ipa file and install with iFunBox.

Enjoy.

English-Khmer Chemistry Dictionary

For a long time, I tried to make English-Khmer chemistry dictionary to help Khmer students. I setup a WIKI at http://zischem.wikispaces.com ask students to fill it with chemistry terms. In the beginning, it was progressing very well. However, after some time, students stopped entering new words and project stopped. When I began this project, I promised my students that I will release dictionary as a software and put the name of most contributing students to about box of software. I was waiting for WIKI to mature. I found out that this is not going happen soon. Therefore, Today I give you Jericho my dictionary software. I know there are some bad entries or poor translations. However, I don’t know which ones and I hope someone who knows Khmer, English and some Chemistry edit the WIKI and fix those errors. If people start editing the WIKI, I may release updated version of this software. Anyway, I hope you like the software.

PS: Software only works on Windows. If dictionary matures, I will release iOS version :)

Download Dictionary

Cracking RSA-2048(not really)

Another boring day and another tinkering post. For couple of days I was just resting at home and learning new stuff about computers especially programming. When I was tinkering with my old Dreambox 800, I found a cool plugin named AirPlayer. It turns your Dreambox to Apple TV so that you can stream the media on your iPhone to your box easily. However there was one problem. Cool features aren’t enabled unless we pay. Continue reading

CCcam Line Tester

During my holiday, I wrote a small utility for my own usage. It allows you to check CCcam details. Because I was tired of using CCcam to check username and password. Frankly I also don’t trust some websites which allow you to check your CCcam details. Therefore I coded one program for myself called CCcam Suite. This software allows you to check your CCcam details. It achieves this by doing exactly how CCcam does. More information is in the readme file.

Download CCcam Suite

Updating cheap Realtek RTD1073 media player

Tags

, ,

My brother told me that he just bought cheap media player named MyGica R6. It is actually cool device because it can play all kind of media files and it has network connectivity as well.

MyGica R6

MyGica R6

However he said that subtitles has kind a brown color and very hard to read. First of all I tried to go to its website but I couldn’t find any firmware or information about my model. After some Google search and Archive Way back machine, I achieved to find latest firmware for my model. I tried to update it through system menu but it didn’t work. I have found couple of methods to update media players which has Realtek chips.
Continue reading

Goodbye Cambodia

Empty word document is staring at me and I don’t know what to write. I am going back to Turkey on 2nd of July 20:25 and I am full of emotions. However, it is hard to express it with my poor vocabulary. I wish we could upload our emotions but, unless someone really intelligent finds a solution (winks to himself) you are stuck with my poor English. I will leave the drama behind and talk about the good things that I remember. I will write it at once so don’t expect structure, grammar or any sense at all. Anyway here it goes…

Continue reading

Having fun with crypto

Tags

, , , ,

I don’t write much in my blog because I don’t have some interesting stories to share. Today I am kind a bored and want to talk about some old story. I want to talk about some crypto, security and Gangnam style in a single post. As you know, Gangnam style video was my inspiration to prank students. After I have pranked them in their presentation, I was looking something big. It had to be something that should affect everybody in the school and yet it shouldn’t be tracked back to me. Challenge accepted!

Continue reading

Follow

Get every new post delivered to your Inbox.