1 Mart 2013 Cuma

Biraz da Android Programlama

Bir .net programcısı iseniz ve Android programlamaya geçmeyi düşünüyor şunu söylemeliyim, korkmanıza gerek yok. Android programlamasını Java ile yapabiliyorsunuz. Eclipse arayüzünden programlama yapacağınız aleti tanıttığınızda, ta da...Normal bir proje sürecine ulaşmış oldunuz. Ayrıca testinizi dış makina yani telefonunuzda veya bir tablet üzerinde yaptığınızda ulaştığınız haz çok daha fazla.
Yıllar önce Java ile programlama yapmıştım ama o zamanlar gerek yazılım arayüzü gerekse "library"lerin hepsinin elle eklenmesi gibi sorunlardan, itiraf ediyorum, Java'dan nefret etmiştim. Şimdilerde Android üzerinde geliştirme yapmam gerekti ve bende bir amanın ne yapacağım, yine Java'nın karanlık dünyasında debeleneceğim hissiyatı başladı. İlk önce "bu benim bittiğim andır" diye diye Eclipse arayüzünü kurdum ama  açtıktan sonra artık eskisi kadar karanlık bir Java dünyası olmadığını farkettim. İşler aynı eski dosya yapısında olsa da özellikle C# yazılımcısı iseniz Java çok basit gelecek.

Android programlamasında anlayacağınız üzere Eclipse arayüzünü ve kullandığım test aletinde SqlLite veritabanını kullanıyorum. İnternette kaynak olarak aradıklarınızın aşağı yukarı tamamını http://developer.android.com adresinden temin edebiliyorsunuz. Ama yapılacakları size basitçe listeleyeyim.

1- Öncelikle http://developer.android.com/sdk/index.html#ExistingIDE  adresinden toplu olarak yazılım yapacağınız arayüzü indiriyorsunuz. Bu indirilecek pakette
  • Eclipse + ADT plugin
  • Android SDK 
  • Android Platform-tools
  • En yeni Android platform
  • emulatorünüz için en yeni resimler bulunuyor.
Bu paketin içinden çıkan 
  1.  adt-bundle-<os_platform>.zip isimli dosyayı açıp kendi makinenızda geliştirme yapacağınız bir klasöre çıkartıyorsunuz.
  2. adt-bundle-<os_platform>/eclipse/ klasörü içinden de eclipse uygulamasını başlatıyorsunuz. Artık geliştirmeye başlamaya hazırsınız. 
2- Bir sonraki adım geliştirme yapacağınız aletin eclipse tarafından tanındığından emin olmak. 
Oluşabilen sorun : Aletiniz makinanızda açılabiliyor ve tanımlı gözüküyor ama eclipse debug listesinde görüntülenmiyor. 
Bazı durumlarda Eclipse sizin aletinizi tanımıyor, hata veriyor veya debug listesinde aletinizi hiç görmüyor. Bunun nedeni aletinizin generik dll'lerinin bilgisayarınızda yer almaması olabiliyor veya daha basit aletinizden ayarlarınızı açmamış olabiliyorsunuz.
Öncelikle aletinizin USB bağlantısının takıldığından emin olun. Bilgisayarınız aletinizi tanımıyorsa, June Fabrics Technology tarafından geliştirilmiş olan PdaNetZ350 isimli programı bilgisayarınıza yükleyin, bu ihtiyaç duyduğunuz pekçok dll'i otomatik yükleyecek bir program.
Sonra Debug aleti olarak kullanacağınız aletinizin ayarlar menüsünde "geliştirici seçenekleri"nden  "USB Hata ayıklaması" tikini işaretleyin ve eclipse'i kapatıp yeniden açın. Hatta USB bağlantısını çıkarıp yeniden takın. Şimdi aleti görüyor mu tekrar kontrol edin.

3 Ekim 2012 Çarşamba

Bilgisayarınızı TV gibi izlemek ister ve ekran klavyesini bir daha kapatamazsanız

Bilgisyarımdan izlemek istediğim dizilerimi koltuğumda rahat rahat yayılarak dev ekranımda izlemek istiyorum diyorsunuz. Bunun için size gereken laptopınızı TVnize bağlamanıza yardımız bir kablo, bir kablosuz heryerde çalışan mouse(A4Tech padless mouse'unu tavsiye ederim, her zeminde  çalışıyor), ve de bilgisayarınıza internet adresini girebilmeniz için ekran klavyesi.


Ekran klavyesini windows giriş (log-in) ekranından direkt açabilirsiniz. Ama asıl sorun bunu kapatabilmekte :)
Her ne kadar kapat desenizde ekran klavyesi devamlı her açılışta yeniden belirmeye devam ediyor.
Kapatmayı gerçekleştirmek için öncelikle
Başlat>Denetim Masası>Erişim Kolaylığı Merkezi>altta Bilgisayarı Faresiz ve Klavyesiz kullan seçeneğinden ''Ekran Klavyesini Kullan'' ifadesinin yanındaki tik'i kaldırmak ve kaydetmek...

ArrayList ler mi List<> ler mi daha performanslı?

Verileri taşımak için kullandığımız liste yapılarında her zaman ArrayList'lerin mi yoksa List'lerin mi daha performanslı olduklarını düşünürdüm. Web uygulamalarında zaman ve yüklenme sıkıntılarını yaşamamak için her zaman dikkat etmemiz gereken performanlı kod yazımında hangisi daha avantajlı denemek için bazı testler yaptım.
Test sonuçları aşağıdaki gibi:

  • Öncelikle eğer kullanma durumunuz varsa mutlaka ikisinden birini kullanın. Bu şekilde elinizdeki verileri taşımak hem daha kolay hem de bu şekilde gerçekten performans elde ediyorsunuz. Ama sonuçta ikisi arasında önemli bir performans farklılığı bulunmuyor.
  • Taşınacak veri valuetype ise (Int32 gibi sayısal veriler) ArrayLists yüksek verilerde yavaşlık gösteriyor. Milyonlarca kayıtla uğraşıyoranız List<int> kullanmak daha yararlı olabilir.
  • Reference-type verilerde (string gibi) yine List<string> daha performanslı çıktı. Ama bu performans farklılıkları 8 milyon kayıtta 100 milisaniye gibi yani elinizdeki ArrayListleri List'e dönüştürmeye değmeyecektir. Yeni başlangıçlarda List kullanmayı düşünebilirsiniz. 
  • Tanımlama yaparken her ikisi için de ilk uzunluk değeri atayabiliyorsanız yapmanız yararlı oluyor.

  • ;)

     

    10 Ağustos 2012 Cuma

    Web sitesinde çoklu dil desteği - Global Resources dosyaları

    Eğer web siteniz veya internet uygulamanız çoklu dil desteği vermek durumunda ise size de Global resource dosyası oluşturmaktan başka çare kalmıyor.

    1- Öncelikle projenizde App_GlobalResources isimli bir dosya oluşturmalısınız.

    2- İçine Add->Resources File ile resx uzantılı yeni bir dosya oluşturun. Bu dosya açıldığında değeri ve karşılık gelecek değeri girebileceğiniz alanlar göreceksiniz. Örnek için bir iki tane doldurun. Mesela "TamamButonu" değeri "Tamam" olsun.
    Diyelim resx dosyasına WebResources.resx adını verdik.

    Bu da örnek bir resx dosyası


    3- Aynı dosyadan başka diller için de oluşturduğunuzda, otomatik browserın dili değiştiğinde uygulamanız o dile ait resx dosyasını kullanmaya başlayacak. Otomatik değişimin sağlanması için unutmadan Web.config dosyasının içine de 1 satır kod eklemeliyiz.
    <system.web> içine
           <globalization culture="auto" uiCulture="auto" /> 
    4- Dil desteği için oluşturulan dosyanın adı örneğin ingilizce için
    WebResources.en-US.resx   şeklinde oluşturulmalıdır. Diğer diller için de başka dosyalar oluşturabilirsiniz.

    5- aspx sayfasında kullanıma geldik bile. Aşağıdaki kullanım ile de oluşturduğumuz bir butona yazı hanesinde kaynak dosyamızdaki değeri getirmesini bildirdik.
    <dx:ASPxButton ID="butGiris" runat="server" OnClick="butGiris_Click"
    Text="<%$ Resources:WebResources,TamamButonu%>" />

    Bu kadar kolay :)

    8 Haziran 2012 Cuma

    Pahalı yazılımlara, bedava açık kaynak kodlu rakip uygulamalar

    Bildiğiniz gibi pekçok programın fiyatlandırmaları, Türkiye'de küçük işletmeler için ezici olabiliyor. Profesyonel kullanım yapılmayacak uygulamalara, firmaların ücret ödemesinin yersizliği de, yatsınamaz bir gerçek.  Çoğu zaman profesyonel kullanımlarda bile uygulamaların belli bir bölümü iş görmeye yetiyor. Open_source yani açık kaynak kodlu bedava yazılımlar için dikkat etmemiz gereken tek noktada bu, deneyerek görebileceğiniz, işimi çözmeme yetiyor mu?
    Sizlerle bir derlemeden aldığım uygulamaların muadilleri listesini paylaşmak istiyorum, böylece belki hiç ihtiyacınız olmayan yazılım yatırımları yapmanıza gerek kalmayacaktır.
    MUHASEBE PROGRAMLARI
    1. QuickBooks Pro yerine kullanabileceğiniz programlar
      1. Mac için Edoceo Imperium ,FrontAccounting
      2. Windows için TurboCASH
      3. Linux için XIWA
    MÜZİK KAYIT/DÜZENLEME PROGRAMLARI
    1. FL Studio Producer Edition ,Apple LogicPro yerine kullanabileceğiniz programlar
      1. Mac için Audacity ,Frinika ,
      2. Windows için Audacity ,Linux MultiMedia Studio
      3. Linux için Audacity ,Linux MultiMedia Studio
    İŞ ZEKASI PROGRAMLARI(Business Intelligence)
    1. Oracle Business Intelligence Standard, SAP Crystal Reports, DBxtra yerine kullanabileceğiniz programlar
      1. Mac için Pentaho , Jaspersoft, Palo BI Suite, OpenReports , JMagallanes
    İŞ AKIŞLARI/SÜREÇ YÖNETİMİ DÜZENLEME (Business Process Management)
    1. Oracle Business Process Analysis Suite  yerine kullanabileceğiniz programlar
      1. Windows için ProcessMaker
      2. Linux için ProcessMaker
    CAD PROGRAMLARI
    1. AutoCAD yerine kullanabileceğiniz programlar
      1. Tüm işletim sistemleri için BRL-CAD, Archimedes
    MÜŞTERİ İLİŞKİLERİ YÖNETİMİ PROGRAMLARI(CRM)
    1. Sage ACT! , Microsoft Dynamics yerine kullanabileceğiniz programlar
      1. Mac için Sugar Community Edition
    VERİTABANLARI
    1. Microsoft SQL Server Standard , Microsoft Office Access 2010 yerine kullanabileceğiniz programlar
      1. Mac için 
      2. Windows için
      3. Linux için
      4. Hepsi için Firebird, MySQL, Kexi(MS Access)
    BASILI EVRAK TASARIM PROGRAMLARI
    1. QuarkXPress , InDesign CS5 yerine kullanabileceğiniz programlar
      1. Hepsi için Scribus
    UYGULAMA GELİŞTİRME ARAYÜZLERİ(Development Tools)
    1. Microsoft Visual Studio 2010 Professional with MSDNAdobe ColdFusion 9 yerine kullanabileceğiniz programlar
      1. Windows için SharpDevelop, , Open BlueDragon (ColdFusion için)
      2. Hepsi için MonoDevelop , KDevelop
    EMAİL PROGRAMLARI
    1. Microsoft Exchange yerine kullanabileceğiniz programlar
      1. Linux için Zimbra , Citadel
    ÜRETİM YÖNETİMİ PROGRAMLARI (ERP)
    1. Microsoft Dynamics, SAP yerine kullanabileceğiniz programlar
      1. Mac için Openbravo , ADempiere , Phreedom
      2. Windows için OpenERP , ADempiere
      3. Linux için OpenERP , ADempiere
    ÇİZİM PROGRAMLARI
    1. Visio Professional , Photoshop CS5 yerine kullanabileceğiniz programlar
      1. Windows için  Gimp-win, Dia(Visio), Paint.Net
      2. Linux için Gimp , Dia(Visio)
      3. Hepsi için Illustrator , CorelDraw yerine Inkscape