Java Karakter Sayaci

Harflerin sayi gibi muamele gormesi icin hazirlamis oldugum java methodu. Bir vakit yazdigim bir test simulatorunde string test serileri uretmek icin kullanmis idim.

Ornekler:

a verilir , b alinir
aab verilir, aac alinir
daz verilir , dba alinir
bzz verilir , caa alinir
zz verilir, aaa alinir

StringCounter.java

Bir noktaya, doğrunun üzerindeki en yakın nokta

Problemimiz şu: 3 boyutta, bir doğrunun üzerindeki iki noktayı biliyoruz (P1 ve P2). Ve doğrunun üzerinde olmayan bir noktamız var (P3). Bu doğru üzerinde öyle bir nokta (P) arıyoruz ki, P-P3 uzunluğu en az olsun.

Daha anlaşılır olması için şekille gösterelim:

Bir noktaya, dogrunun uzerindeki en yakin nokta
  1. Aradaki mesafenin en az olması için \small \vec{P_1P_2} vektörü \small \vec{P_3P} vektörüne dik olmalıdır.
  2. 2 vektörün birbirine dik olmasının koşulu skaler çarpımlarının (dot product) 0 olmasıdır. Buna göre:
    \normalsize \vec{P_1P_2}\cdot \vec{P_3P} = 0\\(x_2-x_1, y_2-y_1, z_2-z_1)\cdot(x_P-x_3,y_P-y_3,z_P-z_3) = 0
  3. Ayrıca P noktasının P1 ve P2 noktalarından geçen doğru olduğunu biliyoruz. Bu koşulun denklemini yazarsak:
    \normalsize (x_1,y_1,z_1) + t((x_2,y_2,z_2)-(x_1,y_1,z_1)) = (x_P,y_P,z_P)
    Bu denklemi düzenleyip açarsak, elimizde 3 tane farklı denklem olur:\normalsize x_P=x_1+t(x_2-x_1)\\y_P=y_1+t(y_2-y_1)\\z_P=z_1+t(z_2-z_1)
  4. Elimizde 4 tane bilinmeyen \small (t,x_P,y_P,z_P) ve toplam 4 tane denklem var (2. adımdan 1 tane, 3. adımdan 3 tane). Biraz uğraştırsa da elde çözülebilir. Lineer cebir ve bilgisayar gibi araçlar kullananlar için denklem sisteminin düzenlenmiş hali:
    en son denklem
    Denklem sayfanın dışına taştığı için, küçülttüm. Özgün halini görmek için üstüne tıklayabilirsiniz.

Peki bütün bunlar gerçek hayatta ne işinize yarayacak? Büyük ihtimalle hiç bi işinize yaramayacak, ama benim işime bir kaç yerde yaradı. Belki gerçekten bu denklemlere ihtiyacı olan birileri var orada bir yerlerde. Kim bilir.. Sevgiyle kalın efendim.

Bölütlenmiş Karakterler v0.1

Bölütlenmiş karakterler, optik karakter tanıma(OCR) gibi uygulamalarınızda test/eğitim amacıyla kullanılabilecek 0-9 arası rakam ve büyük harflerden oluşan bir veri setidir. Veriler gerçek dünyadan edinildiği için veriler gürültülüdür.
An itibariyle hayli eksik olduğundan varolan veri setinizi genişletmek amacıyla kullanabilirsiniz.
Yanlışlıkları bitkidoku *AT* anlak *NOKTA* com eposta adresine bildirirseniz sevinirim.
Verisetinden örnekler:
3 G M P

Hangi karakterden kaç adet var?

Karakter Adet
0 100
1 114
2 131
3 92
4 111
5 92
6 102
7 87
8 124
9 105
A 191
B 70
C 69
D 4
E 6
Karakter Adet
F 1
G 3
H 31
K 92
L 6
M 58
N 5
O 4
P 47
T 26
V 1
X 144
Y 4
Z 2
. .

toplam: 1821


Internet uzerinde bulunan benzer veri setlerinden bazilari:

Guvenilir bilisim

bu yazi http://www.lafkon.net/tc/ adresinde bulunan creative commons lisansli videonun iceriginin birebir cevirisidir.

trusted computing
Guven;
Guven bir seyin dogruluguna ve gercekligine dair inanctir. Ve zorla edindirilemez.
Bir kimsenin guvenini kazandiginiz anda iletisim, tecrube ve ortak degerlere dayali bir iliski kurmus olursunuz.

Guven daima, karsilikli olma ilkesine dayanir.

Ancak bu tanim, bilgisayar endustrisi tarafindan yeniden bicimlendirildi.
Bilgisayar endustrisinin guvenli bilisim olarak adlandirdigi surec icerisinde bu gorevi sizin yerinize bir mikrocip yapiyor.

Bu mikrocip gelecekte, masaustu ve dizustu bilgisayarlarin, sunucularin, el bilgisayarlarinin, oyun konsollarinin vesairelerin içinde bulunacak. SıZıN araçlarınızın içinde.
Peki ama guvenilir bilisim ile guven’in ne ilgisi var?
Musade ederseniz gosterelim ;
Guvenilir bilisim ortaminda ana hedef potansiyel tehditlerden korunmaktir. Ozgun, guvenilir bilisim fikri “size”, neyin guvenilir ve neyin tehdit oldugu konusunda karar yetkisi verir, dolayisi ile kararlari siz alirsiniz.

Guvenilir bilisim, kulaga hos geliyor, degil mi?

Bilgisayar endustrisinin guvenilir bilisim yorumu,buna oldukca yakin gorunuyor. Hedef ayni ; tehditlerden korunup, bilisimi guvenli hale getirmek.
Temel fark ise sizin kendi adiniza neyin guvenilir olup olmadigina karar verememeniz. Cunku onlar coktan sizin adiniza karar verdi ve onlar, coktan size guvenmemeye karar verdi.

Peki,
Eger onlar size guvenmiyor ise?
Siz neden onlara guvenesiniz?

video icin tiklayin

ayrintili bilgi icin lutfen against tcpa web sayfasini ziyaret edin. yazıda bulunan hatalar için buraya.

(more…)

C bulmacası

“condition” nedir ki aşağıdaki kod parçası Hello ve World ‘ün ikisini de yazsın.

if "condition"
printf ("Hello");
else
printf ("World");

–> Çözüm < –

bulanık zaman

gunes saati - editordenefendim hala kullanmayanlar varsa şiddetle öneridiğim bir web tarayıcı var biliyosunuz. mozilla tabanlı olan bu tarayıcının adı firefox. bu tarayıcının en büyük özelliği biz programcılara bi şeyler geliştirebilmek için çok güçlü bir platform sağlaması. yazılım geliştiricisi olmayan tüm diğer bilgisayar kullanıcılarına ise oldukça özelleştirilebilir, kişiselleştirilebilir bir ortam sunmakta.

özelleşebilir, kişiselleşebilir ne demektir?

istediğiniz şeyi istediğiniz yerde bulabilmek gibi bir tanım yapabiliriz belki bu kavramlar için. biraz abartılı gibi görünse de tanım ne istemesi gerektiğini bilen kişiler için tutarlı bir tanım olacaktır. peki firefox bize ne gibi faydalar sağlayabilmekte? öncelikle firefox’un ciddi bir tema desteği vardır. tema ne işe yarar? firefox penceresi içerisinde kalan açılan web sayfası dışında kalan herşeyin şeklini ve rengini değiştirebilmenizi sağlar. burda bir şeye dikkat çekmek istiyorum biraz geniş konuşuyor gibi görünsem de bunları yapabilmek kullanıcı merak seviyesi ile ilgilidir. yani yapmak isteyen bahsettiklerimin hepsini bi şekilde yapabilir. temalara nerden ulaşırız?

Araçlar (Tools) -> Temalar (Themes)  

açılan pencerede o anda sistemimizde kurulu olan temaları görebiliriz. açılan pencerenin sağ alt tarafında göreceğimiz tema indir (download theme) yazısına tıklarsak başkalarının yapmış olduğu ve insanların hizmetine sundukları temalara ulaşabiliriz. bunlar arasından hoşumuza gidenleri seçip install now dersek (ve sorduğu soruyu onaylarsak) bu tema bilgisayarımıza kurulacak ve biraz önce bahsettiğim yöntemle ulaşılabilecektir.

fakat burda dikkat edilmesi gereken nokta şudur ki firefox’a herhangi birşey eklersek (tema ya da eklenti gibi) firefox’u tamamen kapatıp (tüm firefox pencelerini de) yeniden başlatana kadar bu yeni yüklenen şeylerin kullanılamayacaktır.

kişiselleştirme özelleştirme için bir başka nokta ise eklentilerdir. eklentiler firefox’a ekstra nitelikler eklemek için yapılmış program parçalarıdır. bu eklentilere bir örnek forecastfox eklentisidir. bu eklentiyi kurduğumuz zaman firefox’un sağ alt köşesinde bize istediğimiz bölgenin anlık hava tahminlerini gösteren bir simge çıkar. benzer bir eklenti ise foxyTunes eklentisidir. bu eklenti ile de kullanmakta olduğunuz müzik çalma programını firefox içinden kontrol edebilirsiniz.

nedir ki bulanık olan?

bu kısa ve aslında çok da anlam taşımayan girişten sonra konumuza gelelim. fuzzytime adında bir firefox eklentisi var. en son olarak 1.4.1 versiyonu çıkan bu eklenti şu işe yarıyor: saat kaç sorusuna insani yanıtlar veriyor. şöyleki eskiden dijital saatler olmadığı için saat kaç dendiği zaman insanlar birbirlerine 12:37:46 demezlerdi. bunun yerine “saat bire yirmi var” derlerdi. bu sırada da insanlar çelişkiye düşer acaba “yirmibeş var” mı deseydim diye düşünürlerdi. 4 dakika sonra saat tekrar sorulduğunda ise yine “saat bire yirmi var” cevabı verilir, bunun üzerine soran kişi, ruh haline göre tonlayarak “yahu sen de ne zaman sorsam aynı cevabı veriyorsun” der diğeri de ya “e daha yeni sordun değişmedi ki saat” diye cevap verip üste çıkmaya çalışır ya da “yea biraz önce tam yirmi var değildi şimdi de yirmi varı biraz geçiyo aslında” diye açıklama yapma gereği hisseder ve benzer anlama gelecek cümleler sarfederlerdi. tabii o zamanlar milisaniyelerin bile önemli olduğu silikon işlemciler hayatımıza bu kadar girmemişti.

zaman konusunda bu tutarsız gibi görünen bu tür olaylar yaşanırken bir yandan da saat taşımayan insanlar her seferinde birilerine saati sormamak için biyolojik saatlerini geliştirmeye çalışırlardı. şöyle ki; belli bir zamanda birilerine saati sorar sonra da geçen zamana göre yeni zamanı tahmin etmeye açlşırlardı. dakik olmanın çok da gerekli olmadığı durumlarda bu uygulama yerinde kabul edilirdi ve pratikle birlikte bir kaç saatlik dönemlerde +-7 dakika hata payıyla sonuçlar verirdi ki bu gayet yeterli idi.

bir de şundan bahsetmeden edemeyeceğim ki saat kullanılmadan bahsedilen zamanlar vardı. örneğin “akşam sana geleceğim” dendiğinde iki tarafta aynı zamanı anlar ya da “sabah buluşalım” dendiğinde “saat kaçta?” diye sorulmazdı. çünkü insanlar daha ortak bir zamanda yaşıyorlardı.

işte efendim eklentimiz de bu insani özellikleri biraz bünyesinde barındırmaya çalışıyor ve bilgisayar az da olsa insaniyet katmak için çabalıyor. Ingo Oppermann (sanıyorum beyefendi) tarafından yazılan bu eklentiyi türkçe’ye çevirdim ve burdan da insanlara sunuyorum. türkçe’ye çevirirken türkçe’nin sondan eklemeli bir dil olmasından dolayı ortaya çıkan zorlukları biraz daha fazla kod yazarak aşmam gerekti. (normalde eklentilerin yapısı diller arasında geçiş yapmayı oldukça kolay kılan bir yapıya sahiptir.) çevrilmiş haliyle birlikte yeni halini ingo (sanıyorum) beye gönderdim fakat henüz bir yanıt alamadım. umarım yakın zamanda firefox’un eklenti sitesinde bu eklentiyi türkçe’yi de destekler halde görebileceğizdir. eklentinin türkçe halini sınayıp onaylayan tüm gg ekibine burdan teşekkürü bir borç bilirken eklenti ile ilgili tüm sıkıntılarda bana ulaşmanızı rica ederim. ayrıca yorumlarınız benim için önemlidir efendim.

nasıl? – kurulum

eklentinin gereksinimi adından da anlaşılabileceği üzere firefox’tur. firefox olan herhangi bir makinede, firefox açık bulunduğu sürece, firefox penceresinin sağ alt köşesinden size zamanı söyleyecektir. firefox’u indirmek için ise www.getfirefox.com adresine gidebilir ya da google tool bar bulunan bir firefox’u indirebilirsiniz.

firefox’u hazır ettikten sonra bu link üzerinden eklentiye ulaşabilirsiniz. şimdi burda şöyle bir durum ortaya çıkacaktır. normalde firefox eklentinin eklenti olduğunu anlayıp kurmak isteyecektir. fakat her siteden her türlü eklentinin kurulamaması için iki site haricindeki herhangi bir siteden eklenti kurmak yasaklanmıştır. bu nedenle firefox eklentiyi bu şekilde kurmayacaktır. eklentinin kurulabilmesi için bu siteye gerekli izinleri verebilirsiniz. fakat en sağlıklısı linke sağ tıklayıp “Farklı kaydet…” mek ve daha sonra inen dosyayı firefox penceresinin içine sürükleyip bırakmaktır. firefox bu dosyanın eklenti olduğunu yine anlayacak ve kurmak isteyip istemediğinizi soracaktır. sayaç saydıktan kur diyip kurabilirsiniz. firefox’u yeniden başlattığınızda o anda kullanmakta olduğunuz dile uygun olarak bulanık zamanı firefox pencerenizin sağ alt köşesinde görebilirsiniz. unutulmaması gereken şudur ki programın verbileceği zararlardan sorumluluk kabul edemediğimiz gibi yine de her türlü sorununuzda size yardım etmek isteriz. bize buralardan bi yerden ulaşabilirsiniz. adresimiz belli yani…

memin – bulanık zaman, bulanık mekan