8 Kasım 2014 Cumartesi

Bir tabControldeki seçilmiş checbox sayısının elde edilmesi

Eğer bir tabControl içinde birden fazla tabınız varsa ve bu tablardaki checkboxlardan kaç tanesinin seçilmiş olduğu bilgisine ihtiyacınız varsa aşaığdaki satırlar işinizi görecektir.

int number = 0;
foreach (TabPage tp in tabControl1.Controls)
     foreach (Control c in tp.Controls)
          if (c is CheckBox)
               if (((CheckBox)c).Checked)
                    number++;

MessageBox.Show("" + number);

Kodda ufak değişiklikler yaparak checkbox yerine istediğiniz control tipinden istediğiniz durumda olanların sayısını da elde edebilirsiniz.

Counting the number of checked checkboxes in a TabControl

If you have multiple tabs in a tab control and you want to know the total number of checked checkboxes in this tab the following lines will be helpful:

int number = 0;
foreach (TabPage tp in tabControl1.Controls)
     foreach (Control c in tp.Controls)
          if (c is CheckBox)
               if (((CheckBox)c).Checked)
                    number++;

MessageBox.Show("" + number);

You may change the code easily to get the number of non-null textboxes and so on..

14 Eylül 2014 Pazar

Kendime Notlar

C# byte[] to String

C#'da elinizdeki bir byte array'ini string hale getirmek için aşağıdaki kodu kullanabilirsiniz. 


string result = System.Text.Encoding.UTF8.GetString(byteArray)
Eğer UTF8 den faklı bir kodlamaya ihtiyacınız varsa ASCII ya da Unicode da kullanabilirsiniz.
kaynak: http://stackoverflow.com/questions/1003275/how-to-convert-byte-to-string


Java Dosya Yazma İşlemleri

Java'da bir dosya oluşturup bu dosyaya veri yazmak için aşağıdaki satırları kullanabilirsiniz.

Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("dosyaAdi.txt"), "utf-8"));
    writer.write("Biseyler biseyler");
} catch (IOException ex) {
  // Exceptionları yakala
} finally {
   try {writer.close();} catch (Exception ex) {}
}

Kaynak: http://stackoverflow.com/questions/2885173/java-how-to-create-and-write-to-a-file

6 Mart 2013 Çarşamba

Samsung Star 5233 Wifi "Touch Screen"


Birkaç senedir kullandığım Samsung Star telefonumun ekranı epey çizilmişti. Ebay'de gezerken telefona uygun ekranlar (touch screen digitalizer) olduğunu gördüm. Fiyatları da 5-15 lira arasındaydı. Youtube'da gördüğüm bu videodan da gaza gelerek yeni bir dokunmatik ekran almaya karar verdim. İçinde tornavida ve plastik aksama zarar vermeden telefonun içini açmak için gerekli iki parça ile birlikte 8 liraya bir ekran aldım.

Bir ki şey söktükten sonra telefonu tekrar toparlayamayacağınız hissine kapılmıyor değilsiniz, ancak biraz dikkatli olursanız telefona zarar vermeden işinizi görebilirsiniz.

Ekrana gelince, orijinal dokunmatik ekran, çok hassas olmasa da, hem parmak hem de tırnak-kalem vs ile kullanılabiliyordu. Ancak bu yan sanayi ekran parmağı algılamıyor: tırnak ve kalemle çalışıyor. Belki parmakla kullanmaya alışmasaydım çok dert olmayacaktı. Bir süre daha kullanmaya çalışıp olmazsa eskisini takmayı düşünüyorum.

8 lira yeni bir ekran için çok uygun, telefona yeni havası katıyor. Telefonu hep kalemle ya da kullanıyorsanız çizilmiş ekrandan kurtulmak için iyi bir fırsat.

Eğer tekrar eski ekranı takarsam telefonu açarken fotoğraf ya da video da çeker buraya koyarım.

Belki yanıltıcı olabilir diye belirteyim; telefonun içinde bir ekran var, bu ekranın üzerinde de dokunmatik özelliğini veren bir katman var. Yani dokunduğunuz kısımla görüntü veren kısımlar farklı. 8 liraya görüntü veren kısmı değil, dokunmatik katmanı(touch screen digitalizer) aldım. "LCD Screen" ya da "Display" olarak geçen görüntü veren kısımsa 10-20 lira arasında satılıyor.

23 Şubat 2013 Cumartesi

Ubuntu'da Eee Pc ekran parlaklığı

Eee 1005P bilgisayarıma ne zaman bir Ubuntu ya da Ubuntu türevi (Kubuntu Lubuntu Xubuntu ... ) kursam her açılışta karanlık bir ekranla karşılaşıyordum.  Parlaklık sonda olsa da, pırıl pırıl değildi. Sorunun hep temalarda olduğunu düşünüyordum. Ancak üşenemeyip ufak bir araştırma yapınca aslında birkaç satır komutla Windows kadar parlak bir ekrana sahip olabileceğimi gördüm.

Eğer siz de Ubuntu kullanırken ekranın yeterince aydınlık olmadığını düşünüyorsanız;

  • /etc/default/grub dosyasını açın 
  • Değişiklik yapabilmek için muhtemelen "sudo" komutu ile açmanız gerekecek: 
    • Ubuntu için sudo gedit /etc/default/grub 
    • Kubuntu için sudo kate /etc/default/grub  
    • Lubuntu için sudo leafpad /etc/default/grub 
    • vs..  
  • Sonra bu dosyada "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" satırını bulun ve o satırın yerine "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor" yazın.
  • Ardından sudo update-grub komutunu çalıştırın.
Bilgisayarı yeniden başlattığınızda ekranınız ışıl ışıl olacak!
Eee 1001 bilgisayarlar için önce bir BIOS güncellemesi yapmak gerekiyormuş. Ayrıntıları buradan bulabilirsiniz.

11 Şubat 2013 Pazartesi

Sıkıştırılmış dosyaların arşivden çıkartılması

Hangi sıkıştırma yazılımı kullanırsam kullanayım beni en çok rahatsız eden durum büyük boyutlu dosyaların çıkartılırken önce geçici bir klasöre daha sonra çıkartmak istediğim yere kopyalanmasıydı. Zaten bir dolu beklemişken bir de kopyalama için tekrar bekliyordum ve disk yazma işlemi de bilgisayarı epey yavaşlatan birşey olduğundan başka birşey yapmak da hiç kolay olmuyordu. Artık isyan ettim ve neden doğrudan istediğim yere çıkartmıyor diye internetten araştırdım.

Sorun şuymuş; eğer arşivdeki dosyayı fareyle sürükleyerek çıkartmak isterseniz kullanıcı arayüzünün işleyişi dolayısıyla dosya önce geçici bir klasöre çıkartılıp sonra istenilen dizine kopyalanıyormuş. Ama fare ile sürüklemek yerine biraz uzun yoldan, dosyaların çıkartılacağı dizini seçerek işleme başlarsanız doğrudan istenilen dizine çıkartıyormuş.

Bknz: Kaynak


6 Ocak 2013 Pazar

DES ve DES hakkındaki İddaalar

DES, 56-bit anahtar, 64-bit mesaj bloğuna sahip Feistel Yapıda bir şifreleme algoritmasıdır. 1977 yılında standart haline geldi ve 2000 Yılında yerini AES'e bıraktı. DES ile ilgili dokümanlara buradan ulaşabilirsiniz.

DES, kriptografi tarihi açısından bir milattır. O zamana kadar kalem-kağıt ve basit, çarklı makinelerle yapılan şifreleme-şifre çözme işlemlerinin bilgisayar(ya da çip) üzerinde yapılmasını sağlamıştır. Aynı zamanda DES, tasarım süreci ile birçok komplo teorisine sebep olmuş ve güvenliğine şüphe ile yaklaşılmış bir algoritmadır.

Aşağıda, Steven Levy tarafından yazılan ve tasarım sürecine dahil olanların birinci ağızdan anlattıkları beyanları içeren "Crypto" isimli kitabın DES ile ilgili kısmının bir özetini bulabilirsiniz.

1970'li yıllarda özellikle finansal kurumların bilgisayar kullanımına geçmesiyle birlikte elektronik olarak iletilen bilginin şifrelenmesi gerekliliği ortaya çıkmıştı. Ancak, henüz bu tür bir iş için geliştirilmiş güvenli bir algoritma yoktu. Bu ihtiyacı farkeden IBM, Lucifer isimli blok şifre algoritması tasarladı. Lucifer, 128-bit anahtar ve 128-bit blok uzunluğuna sahip, Feistel yapıda bir algoritmadır.

Ancak, IBM Lucifer'i yurt dışına pazarlayabilmek için NSA( National Security Agency – daha sonra NIST adını almıştır) 'dan onay almak zorundaydı ve NSA, 128-bit anahtar uzunluğuna sahip bir şifreleme algoritmasının herkesin kullanımına açık bir şekilde ortalıkta dolaşmasına sıcak bakmıyordu. Ayrıca, tasarım aşamasının dışında kalmak da istemiyorlardı. Bu sebeple IBM'le, ortaya çıkacak ürünü onaylamak, kısıtlı da olsa ihracına izin vermek karşılığında tasarıma dahil olmak ve algoritmada istedikleri değişiklikleri yaptırmak konusunda anlaştılar.

Öncelikle, algoritmanın 128-bit olan anahtar uzunluğu 64-bit'e düşürüldü. Ardından, 64-bit anahtarın 8 biti de "kontrol basamağı" olarak adlandırılarak şifreleme işleminden çıkartıldı ve anahtar uzunluğu 56-bit'e indi. Bu sırada, algoritmanın güvenliğini inceleyen IBM geliştiricileri "T-Attack" adını verdikleri bir analiz yöntemi keşfettiler. Bu saldırı, sadece DES değil, birçok algoritmaya uygulanabilen genel bir yöntemdi. NSA yetkilileri, bu yöntemle ilgili her türlü dokümanın gizli kalmasını istediler ve DES üzerinde de bu saldırıya karşı koymasını sağlayacak değişiklikleri yaptılar. Bundan 20 yıl sonra, Biham ve Shamir tarafından yapılan diferansiyel atağın ardından DES tasarım takımında yer alan Don Coppersmith, diferansiyel atağın tasarım aşamasında IBM tarafından bulunan "T-Attack" olduğunu, bu atağın NSA tarafından da ayrıca bilindiği ve literatüre yansıması halinde Amerika Birlişk Devletleri'nin diğer ülkelere karşı kriptanaliz yeteneğini zayıflatacağı endişesi ile gizli tutulduğunu söylemiştir.

Ancak, anahtar boyutundaki büyük değişim, akademisyenlerin büyük tepkilerine yol açmıştır. IBM, 56-bit'in yeterince güvenli olduğunu savunsa da hiçbir şekilde mantıklı bir açıklamasının yapılamaması NSA'nın "sadece kendisinin kırabileceği kadar güvenli" bir şifre tasarlattığı görüşünün hakim olmasına sebep olmuştu. Adını daha sonra anahtar değişim protokolüyle duyuracak olan Marty Hellman DES için 20 Milyon dolara yapılacak bir makina ile şifreli bir metnin bir günde kırılabileceğini iddaa etmiş ve, 5 yılda hergün bir anahtar kırarak, anahtar başına maliyetin 10 bin dolar olacağını söylemiştir. Bu miktar, petrol madenlerinin yerleri, ülkenin alacağı ekonomik pozisyonlar gibi bilgilerin yanında neredeyse bir hiçti. Ancak bütün teşebbüslerine olumsuz yanıtlar verildi.

Algoritma, tasarımının tamamlanması ve standart halini almasıyla açık hale gelmiş ve akademinin incelemesine taabi tutulmuştur.1990 yılındaki diferansiyel kriptanaliz ve arkasından gelen linear kriptanaliz artık DES'in anahtar uzunluğunun kısa olduğunu ve gelişen bilgisayar teknolojine karşı koyamayacağını gösteriyordu.

1998 yılında, RSA Labaratuarlarının açtığı DES kriptanaliz yarışmasında verilen şifreli metin EFF (250.000 $) isimli makine tarafından iki günden biraz fazla bir zaman içinde kırıldı. Ardından 1999'da verilen bir metin ve karşılık gelen şifreli metin için anahtar EFF ve dağıtık ağ üzerinden 22 saatte kırıldı. Daha sonra CopaCabana (10.000 $) ile DES anahtarları 9 günde ancak çok uygun maliyetlerle kırılabilir hale geldi. 

Bir yandan kaba-kuvvet saldırılarının kısalması, bir yandan da akademik makalelerle güvenliğin düşürülmesi  üzerine NIST(National Institute of Standards and Technology) yaygın olarak kullanılan DES'in güvenliğinin artırılması için Triple-DES'i duyuruldu: DES'in 3 defa ardarda farklı anahtarlarla çalıştırılması güvenliği kullanılan farklı anahtra sayısına bağlı olarak 2 yada 3 katına çıkartıyordu. Bir yandan da bir yarışma düzenleyerek yeni şifreleme standardını belirledi. AES'in genel kabul görmesi ve güvenlik seviyesi DES'ten AES'e geçiş sürecini hızlandırdı.

DES, bugün hala kabul gören bir algoritmadır. Birçok alanda DES ya da Triple-DES yaygın olarak kullanılmaktadır. Bunun sebebi DES'in donanımda hızlı olması ve az yer kaplaması, yazılımda eski ve yeni birçok uygulamada ortak olarak desteklenmesi ve 56-bit anahtarın bireysel saldırganlarca kırılmasının henüz mümkün olmamasıdır. Anahtar uzunluğunun bugünkü algoritmaların yanında çok kısa kalmasına rağmen, üzerinde durulduğunda DES'in gerçekten titiz ve ayrıntılı bir çalışmanın ürünü olduğu anlaşılacaktır. DES, elektronik ortamda şifrelemeye geçişteki görevini başarıyla gerçekleştirmiştir.