WRITING ISO FILE TO USB DRIVE ON Mac/LINUX

Standard

Hi all,

I need to write iso file to usb for OS installation. I just wanted to list what I need to do for a next time. So I prepared this tutorialish text

First let’s install pv to keep track of progress.

brew install pv (in Mac)
apt-get install pv (in Linux)

For writing iso to USB drive. You can use following command:
sudo dd if=~/ISO_PATH_SHOULD_BE_HERE | pv | sudo dd of="/dev/diskNumber" bs=1m

In mac you can get this error: “Resource busy”
diskutil unmountDisk /dev/diskNumber
Then you can say run previous command again.

Hint: you can use command to figure out your diskNumber.
diskutil list

LATE UPDATE: For macs dd takes so much time. please try to use rdisk2s1 rather than disk2s1
For more information please have a look : http://superuser.com/questions/631592/mac-osx-why-is-dev-rdisk-20-times-faster-than-dev-disk

GNU PLOT

Standard

Let’s assume you have text file like that:

# Results.dat
# Months 6months 1year
# ——————————————

3 27 10
4 52 50
5 61 89
7 78 92
8 82 112
9 120 118
10 124 125

And you want to plot line chart but you don’t want to use excel or any other spreadsheet application. By the way I am kind of person who loves Microsoft tools they are make our life easier. (Like I am writing this blogpost on Word) But sometimes especially when I tried change something in chart. I always lost myself inside complex GUI even though they are good about simplifying GUI either. Nowadays, because I had to write article. My mentor recommended to me use GNU Plot. First I thought what is why we can’t use Excel. But now I really liked GNU PLOT, it is super cool.

Let’s back to our subject after talking about details…

Installation GNUPLOT

I think it’s straight for Linux environment. But if you’re MAC user like me for now. It’s bit harder than Linux to install, you need to install gnuplot_qt. You can install like that:

brew cask install xquartz

brew install gnuplot –with-x11

Now we are in fun part.

I am assuming your data named as a Results.dat also you’re in same directory with your data file.

For creating chart

plot ‘Results.dat’ u 1:2 w lp t ‘6 months’ -> It will create chart for only first data column

For adding another line to chart:
plot ‘Results.dat’ u 1:2 w lp t ‘6 months’,’Results.dat’ u 1:3 w lp t ’12 months’

Furthermore, you can use point instead of lines. For doing that just change lp top.

plot ‘Results.dat’ u 1:2 w lp t ‘6 months’,’Results.dat’ u 1:3 w p t ’12 months’

But we can customize our charts:

For changing x-axis label font -> set xlabel “Time” font “Helvetica,18”

    Or y-axis label font pretty much same only need to use ylabel instead of xlabel.

    Let’s change x axis label’s -> set xtics font “Helvetica,12”

    Then maybe we would like to change line thickness -> just add to lw 2

End of your plot command as argument so it’s look like this:

plot ‘Results.dat’ u 1:2 w lp t ‘6 months’ lw 2

    For changing line colour: lc 1 # or some other number

    For changing dash type: dashtype 2 # or some other number

That’s all from now. This blogpost mostly about introducing GNU Plot. I should say I really liked it. It saved me from Excel’s GUI. I would prefer to write one more word or even line rather than trying to remember where it was in GUI.


Tavsiye videolar – yazılar

Standard

Burada beğendiğim video ve/veya yazıları toplamaya çalışacağım. Teknik içerikli olanlar olacağı gibi sadece genel bilgi içerikli bilgilerde paylaşmaya çalışacağım. Her geçen gün elimden geldiğince güncellemeye devam edeceğim…

Premature optimization is the root of all evil ! Donald Knuth

Kenneth Cukier: Big data is better data

Linus Torvalds, The Mind Behind Linux

 

Dr. Steven Hawking ve Microsoft teknolojisini kullanan Intel Labs’in ortak bir çalışma ile yeni bir konuşma sistemi geliştirmelerinin etkileyici hikayesi

 

Computer Security – Privacy

 

Free Software(free as a free speech not as a free beer)

Coding Convention 

Java Code Geeks

SQL İpuçları

Standard

1.)   SQL de sorgular aşağıdaki sıra ile çalışır.

a.)FROM

b.)WHERE

c.)GROUP BY

d.)HAVING

e.)SELECT

f.)ORDER BY

Her tablonun primary keyi olduğuna emin ol hiç olmasa bile surragate key( yapay anahtar) kullanılmalı. Her primary key indexer görevi göreceğinden sorgu ciddi bir biçimde hızlanacaktır. Sorgu ciddi bir biçimde yavaş çalışılıyorsa ilk kontrol edilmesi gereken kısım burası.

2.)   WordPress sitemi .com uzantılı domainden .xyz uzantıya geçirdiğim için wordpress bazı tablolarını update etmem gerekiyordu. Lakin klasik bir update sorgusu yapamazdım çünkü guid sütununda http://egemenciritoglu.com/bişeyler şeklinde devam etmekteydi. Burada sabit olan egemenciritoglu.com du buna paralel egemenciritoglu.xyz şeklinde düzeltmek istiyordum. Bunun için aşağıdaki update sorgusunu kullandım.

UPDATE tablo_Adi
SET guid = REPLACE(guid, ‘.com’, ‘.xyz’)
WHERE guid LIKE ‘%http://egemenciritoglu%’

3.)   Bir tablonun birebir içinde datalarıyla kopyasını almak istiyordum.Bunun için aşağıdaki update sorgusunu kullandım.

SELECT * INTO bugs_orj FROM bugs

4.)   Count (*) ve Count(SutunAdi) farkı . Count * bütün kayıtların total numarasını getirir.(NULL dahil)count sutun adı null olmayan kayıtların total numarasını getirir.

5.)   Varchar(max) ile Varchar(8000) arasında ciddi farklar var sorgular iki katı kadar hızlı çalışıyor. nvarchar ın max valuesu 4000 varcharın ise 8000dir. max diyince bu karekterlerden sonra tutulma şekli IMAGE , NTEXT veya TEXT dönüştürülüp yeni dosyanın pointerıeski dosyanın yerine atanıyor.

6.) COUNT ve EXISTS arasında fark var count tüm tabloyu elemanı bulsa bile döner exists tek eleman bulunca break yapıp çıkar.Bu yüzden aşağıdaki count sorgusu yerine,

IF (SELECT COUNT(1) FROM USERS WHERE FIRSTNAME LIKE ‘%EGEMEN%’) > 0
     PRINT ‘YES’
exists kullanmalıyız;
IF EXISTS(SELECT FIRSTNAME FROM USERS WHERE FIRSTNAME LIKE ‘%EGEMEN%’)
    PRINT ‘YES’

Windows 10 ‘a Güncelleme ve İlk Problem

Standard

Hali hazırda beni tanıyan herkes C# ile uygulama geliştirdiğimi fakat Windows’tan pek haz almadığımı Linuxta ise daha rahat olduğumu bilir. Lakin ön incelemem sonucundan Windows 10 başarılı buldum. Belki başarılı bulmamın sebebi bazı linux esintileri de olabilir gibi geldi.(Bknz .Görev Görünümü). Upgrade öncesinde biraz huzursuzdum çünkü hali hazırda çok stabil bir kişisel laptopum olmadığı için genel olarak donanım yazılım uyumu güven vermemekteydi.Fakat Windows 7 den yaptığım yükseltmenin ilk günün sonlarına doğru yazıyorum bu yazıyı hali hazırda Windows 10 ile mutlu sayılırım. Yükseltme sürecinde hiç problem çıkmadığı için hayret ederken hayretlerim çok da uzun sürmedi. Ekran parlaklığı sorunu ortaya çıktı. Özetle ne kısayol tuşu ile ne denetim masası üzerinden battery energy sekmesinde bir türlü ekran parlaklığını değişmiyordu. Araştırmalarım sonucunda problemi çözmüş bulunmaktayım. Hemen bulduğum çözümü not edeyim dedim.

Sorun basit bir registry probleminden öte değil. Korkmaya format atmaya hiç gerek yok.

Önce Regedit’i açıp

Sırasıyla

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Cl ass\{4d36e968-e325-11ce-bfc1-08002be10318}\0000] çift tıklayarak “FeatureTestControl” bulup 0000f048 girmek. Sonra bilgisayarı yeniden başlat yapınca hiçbir sorun kalmayacak. Ekran parlaklığı ayarı eskisi gibi olacaktır.

 

Not :[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Cl ass\{4d36e968-e325-11ce-bfc1-08002be10318}\0001] Bazı paylaşımlarda 0001 altında FeatureTestControl olduğunu belirtiyorlar bende 0000 daydı ondan ilk yaptığımı baz aldım. Ama aklınızda olmasında fayda var.

 

 

 

 

Kriptografiye Giriş ve Basit Şifreleme Algoritmaları

Standard

2015031623173367372

1970 lere kadar kriptografi, paylaşılan bir ana anahtara dayanıyordu. Yani şifreleyen bir kişi var şifreleme bu anahtar sayesinde oluyor. Şifrelenen mesaj yine bu ana anahtar tarafından çözülmekteydi. Bu anahtar ayrıca  (secret-key / shared-key / symmetric-key) şeklinde de ifade ediliyor.

Düşündüğünüz üzere anahtar şifrelemesi 3 temele dayanıyordu:

  • Anahtarı oluşturan algoritma (çıktısı sadece anahtar)
  • Şifreleme algoritması( parametre olarak  anahtar ve metin  alır- çıktısı ise şifrelenmiş metin(ciphertext) )
  • Şifre Çözme algoritması (  parametre olarak anahtar ve şifrelenmiş metni alır – çıktısı metin yada hata olur.Tahmin edildiği üzere hatanın sebebi metin veya anahtar da oluşan hatalardır. )

Shift Cipher Algorithm( Sezar Algoritması)

Bu şifreleme metodundaki temel amaç harfin alfabedeki sırasına göre bellirli ölçüde kaydırmaktır. Mesala anahtar olarak c yi seçelim bu durumda her harf, 3 harf ilerletilecektir(shift).(Örnekte ingilizce harfler baz alınmıştır.)

egemenciritoglu

ccccccccccccccc

_______________

hjhphqflulwrjox

Şifreyi çözmek içinse yapılması gereken sadece 3 harf geriye gitmektir.

The Vigenere Cipher Algorithm

Bu algoritmada ise anahtar bir kelime veya cümle olarak seçilir.Tekrar edilerek bütün metin sezar algoritmasındaki gibi çevirilir.Mantıklı olarakta, sezar algoritmasına göre kırılması daha güçtür. Sezar algoritmasında her harf birebir eşleşirken yani metinde her “a” harfine karşılık bir harf vardır. Fakat Vigenere metotunda ise “a” harfine karşılık “e” ve “c” gelebilir çünkü her harfine kaydırma oranı farklı olacaktır.(bknz Sezar Algoritmasında sadece belirli bir miktar kaydırıyorduk.) Tabi anahtarınız ne kadar büyükse(uzunsa) “a” birden çok harfe karşılık gelicek bu yüzden kaydırma oranı arttığından kırılma ihtimali de artacaktır. Örnek olarak anahtar olarak deneme seçelim. Şifrelenecek metin yine egemenciritoglu olsun bu durumda aşağıdaki gibi bir şifreleme oluşacaktır.

şifrelenecek metin : egemenciritoglu

anahtar:                 : denemedenemeden

________________

şifrelenmiş metin:    ilsrrsgnfngtkqi

Peki gerçekten bu algoritmalar güvenli mi ? Sezar algoritması tamamiyle güvensiz çünkü belirli bir kural var her harfi bellirli bir şekilde ilerlettiğimiz için aynı şekilde geri alınabilir. İngilizce metinler için 26 ihtimal türkçe metinler ise 29 ihtimal.Tabi yeterli değil.

Sezar algoritmasında her harfi rastgele kaydırarak mesala bütün a ları e, b leri v ile değiştirerek rastgele bir sıralama ile şifreleyebiliriz. Böyle olunca teorik olarak 29! gibi bir olasılık ortaya çıkacak tabi sadece teorik olarak kalmakta, eğer kırmaya çalıştığımız şifrelenmiş metinin hangi dilde olduğunu bilirsek mesala türkçe olsun. Türkçede kullanılan harf sıklığı bellidir.(bknz: Vikipedi: harf sıklığı)”Türk alfabesinde en yüksek dereceye sahip olan yani en sık kullanılan harfler A, E, İ, N, R, L, üst-orta derecede olanlar I, D, K, M alt-orta derecede olanlar U, Y, T, S, B, O, düşük dereceli olanlar Ü, Ş, Z, G, Ç, H, Ğ, V, C, Ö, P, F, J’dir.” Böyle olunca eğer metin uzunluğu yeteri kadarsa(fazlaysa) tekrar sıklıklarını karşılaştırarak kırmamız çok daha kolay olucaktır.

Vigenere algoritması nispeten daha güvenli çünkü anahtar olarak kelime ne kadar uzun seçildikçe o kadar kaydırılacak olan tekrar oranı azalacaktır. Bu da algoritmayı daha güvenli hale getirecektir. Bir sonraki yazımda Vigenere nin ne zaman ve  neden güvensiz olduğundan bahsedeceğim.

Bizim için şifrelemeyi yapan java kodlarını yazdım. Aşağıda bulabilirsiniz:

Bilgisayar şifrelemesi olunca düşünmemiz gereken ASCII kodları da olmalı bu sebepten yukarıdaki java kodu ingilizce harfleri yine baz almıştır.


 

  1. http://tigger.uic.edu/~jleon/mcs425-s05/handouts/Vigenere-Cipher.pdf
  2. https://en.wikipedia.org/wiki/Caesar_cipher
  3. Enigma

  4. Şifrelerin Matematiği: Kriptografi