03 Apr 2013

Windows font rendering

No Comments General

Maybe you have noticed or not, Windows has the ugliest typeface rendering engine. Of course this idea is subjective but I believe a lot of people will agree with me.

So what can be done to improve this ugliness ? ClearType is one thing and even the “best” setting is still very crisp and makes reading difficult.

The solution is the gdipp, which is a replacement to the default Windows text renderer. gdipp is free and open source. After installing it, you can immediately notice the beauty it brings. http://code.google.com/p/gdipp/

04 Feb 2013

Integer Factorization with Python

No Comments Python

Integer Factorization, which is still a challenge for everybody especially for cryptography people.

There are lots of methods to factorize an integer such as sieves, trial division, CFRAC, etc.

Normally I prefer C++ but this time Python is easier because of no limitations on integer size.

I have used precalculated prime number list which contains primes up to 1 million.
This basically means you can factorize any number with a largest factor of 999983.

Code includes prime numbers therefore it is very long, so I have put the code without primes.
You can find the full code on following link.
factorizer

25 Jan 2013

Building Boost Binaries

No Comments C++

You downloaded Boost C++ libraries, started your project and it is time to compile and run. Uh oh, what’s that ? You need libboost_ something to link the application. You looked everywhere inside the Boost folder but no luck.

The answer is you need to build what you need yourself.

No, don’t be afraid it is not that difficult. Here is the method:

1 – Open your Boost folder (where you extracted the files)

2 – Click “bootstrap.bat”, wait for it to complete.

3 – Now you will notice “b2.exe” and “bjam.exe” in the same directory.

4 – Run a CMD window and execute bjam.exe with following commands

bjam.exe –build-type=complete –with-nameofthelibraryyouwanttobuild

For example :

bjam.exe –build-type=complete –with-thread

 

5 – Press “Enter” and wait until the operation is complete.

6 – Check the “stage” and “bin.v2″ folders and voila ! Here is your lib file…

07 Nov 2012

Unconstrained Minimization with Steepest Descent Algorithm Applications

No Comments C++

Hello there, one of my assignments included finding solutions using Steepest Descent algorithm.

First, use calculation Fibonacci Search Method, secondly use Golden Section Search Method.
You can comment the part you don’t want to use, right now it works as Golden Section method.
Fibonacci method uses N as the iteration amount, Golden Section method uses “interval” variable as minimum error amount.
fibo is the recursive function for returning the “val”‘th Fibonacci number.
“funcCalc” function and “temp” variable are set according to y = x^2 – 2x + 2 mathematical function.
Other parts of code are pretty much self explanatory.

09 Aug 2012

Hidroist Design

No Comments Hidroist

Aracın tasarımcısı olarak düşüncelerim ve fikirlerim…

 Play Slideshow

Aerodinami konusuna ilgim vardır, doğal olarak uçan her türlü objeye de. Biraz daha araştırmalar yaparak, yapılması gereken araç özelliklerinde şöyle sonuçlara vardım:

  • Fazla keskin virajlara sahip olmayan yarış pisti için yüksek downforce ihtiyacı
  • Soğutma sistemi
  • Düşük rüzgar direnci

Bu ihtiyaçları tek tek ele almak gerekse de hepsini bir bütün olarak düşünüp buna göre bir çözüm üretmek şart.

Biraz daha açalım..

Hidrojen sistemi şu şekilde çalışıyor, çalıştıkça(gaz harcadıkça) soğuyan ama çalışırken optimum sıcaklıkta kalması gereken hidrojen tüpleri, girişinden soğuk hava isteyen ve çıkıştan sıcak hava veren hidrojen enerji modülü(PEM), soğutulması gereken diğer elektronik bileşenler ve temmuz sıcağında dışardan gelen sıcak hava.

Dışardan gelecek havanın çok sıcak olduğunu ve PEM‘in soğuk havaya ihtiyacı olduğunu ve aracın havayı dışardan alması gerektiğini de düşünürsek, mantıklı çözümün şu şekilde olduğu görülebiliyor:  Aracın gidiş yönüne aksi istikamette açılacak hava kanallarının önüne, giren havayı engellemeyecek şekilde tüplerin konması, tüplerin çalıştıkça çok soğumasından yararlanılarak (10 dereceye kadar düşüyor) dışardan gelen sıcak havanın kısmen soğutulması ve hemen ardından PEM‘in girişine verilmesi, bu sayede dışardan gelen sıcak havanın aynı zamanda tüpleri de ısıtıp optimum sıcaklığa getirmesi.

Bu şekildeki çözümde havayı önden aldığımız şekilde arkadan da atmak gerekiyor, atılmadığı zaman rüzgar direncini çok fazla artıracak ve soğutma işlevini yerine getirmeyecektir. Aracın kurallara göre tasarımı gereği, arka tarafa doğru alçalan yapısında, önden yükselen hava arkaya geldiğinde aşağı inemiyor ve diffuser da kullanılamadığından, aracın arka kısmında bir hava boşluğu oluşup girdaplara ve lifte sebep oluyor. Bu sorunun çözümü için önden giren havanın kabuk tarafından yönlendirildiği kısımların sonunda, PEM‘in de sıcak hava çıkışından destek alıp havayı hızlandıracak bir noktada bir hava çıkışına ihtiyaç olduğu anlaşılır (Stack Effect). Bu açılan hava çıkışı düşünülürken önde çift taraftan alınan havanın hacmini tahliye edebilecek büyüklükte olmasına dikkat etmek gerekiyor.

Ön kanat ise, ihtiyaç duyulan ön downforceu sağlayan en önemli parçalardan biri. Dönülecek virajlarda hız kesmemek amacı olduğundan aracın dönüşler sırasında g kuvvetlerinden ileri gelen dengesizlikler ile rüzgara karşı seyretmenin verdiği lift etkisini yenebilmek ve uçak kanatlarının aksine lift yerine downforce kazanabilmek için yere göre negatif bir angle of attack ile (çok fazla drag oluşturmayacak şekilde) belli bir miktar camber verilen airfoil formu kullanılarak aracın önüne karbonfiberden imal edilen kanadı monte ettik.

Aracın kendi formunu da önden arkaya doğru yükselecek şekilde yaparak, yine ön tarafa downforce vermeyi ve aynı zamanda rüzgar direncini azaltmayı amaçladım.

  Yandaki CFDde de görüleceği üzere kanat, öndeki hava girişleri ve arkadaki hava çıkışlarının uyumlu çalıştığı gözlemleniyor.

İmkan olsa yapmak istediğim birkaç şey daha vardı, öncelikle aracın arka kısmında alta bir diffuser sistemi aerodinami konusunda
kesinlikle daha yararlı olacaktı ama arkada tek tekerlek ortada bulunduğundan dolayı bunu yapmak kabuk kısmına kalacağı için işçiliği
artıran bir etken olacaktı.

Araçlar daha hızlı gitseydi bu aerodinamik düşünce ve hesapların çok daha büyük bir fark göstereceği anlaşılabilir.

 

 

 

Ayrıca araştırmak isteyenler için şöyle linkler vereyim:

http://en.wikipedia.org/wiki/Downforce

http://en.wikipedia.org/wiki/Airfoil

http://en.wikipedia.org/wiki/Drag_(physics)

http://en.wikipedia.org/wiki/Camber_(aerodynamics)

http://en.wikipedia.org/wiki/Stack_effect

http://en.wikipedia.org/wiki/Angle_of_attack

 

09 Aug 2012

Hidroist Start

No Comments Hidroist

Serin bir ekim akşamında oturuyorduk. Belki de kaşınmıştık biraz, durduk yere dert mi arıyorduk acaba ?

Shell Eco-Marathon varmış, katılalım mı ?” fikriyle devam ettik. Hidrojen… Düşündük, düşündük, düşündük…

“Yaparız ya” dedikten sonra, arkadaşlara haber verip çekirdek kadroyu oluşturduk. İlk düşünce Eco-Marathon’a (EM) katılmaktı.

Araştırılacak çok yer, okunacak çok şey vardı ama zaman da çok sayılırdı. Hani öğrendikçe aslında hiçbir şey bilmediğini anlamak vardır ya, işte öyleydi tamamen bu olay. Çok fazla hesap, çok fazla düşünceye ihtiyaç vardı. Verimlilik yarışıydı sonuçta EM, en hızlı giden değil, en az yakıtla en çok mesafe gidenin kazanması gibi çok hoş ve mücadeleci bir konsepti vardı. İnsanı düşünmeye ve araştırma geliştirmeye itiyordu. Ayrıca hem urban hem prototype kategorileri ile, yarışta geliştirilen deneysel teknolojilerin gerçek hayatta uygulanabilirliğini sağlıyordu. Vay be, basit görünen bir yarış aslında herkese çok yararı dokunacak bir olaydı. Sıfır emisyon ile çevre, teknolojiler ile hayat, düşünce ile insan…

Maddi işler, proje yazımı, araştırmalar, vizeler derken zaman hızla aktı gitti. Arada şanssızlıklar, yanlış anlaşılmalar, işini bilmeyen kişiler yüzünden çok gecikildi. Başvurumuz kabul edilmesine rağmen zaman sıkıntısı EM’ye gitmemize engel olan tek şeydi.

Bu olaylardan sonra hedef mecburen Tübitak Alternatif Enerjili Araçlar Yarışı oldu. Aynı umutla ve aynı istekle ilerlerken, yarış konseptinin EM’nin tam zıttı olduğunu öğrendiğiniz zaman biraz olsun üzüntü oluyor. Yanlış anlaşılmasın, kişisel değil bu üzüntü, ülkemizin durumuna acımak olay…

Shell Eco-Marathon‘un aksine Tübitak’ta amaç en hızlı giden aracı yapmak. Sarfiyata bakan yok, sistemlere bakan yok, çalışmayı takdir eden yok, organizasyon desen o da bulunamıyor. Kurallar ve disiplin desen “O ne ?” diye soracaklar..

EM için seçilen yüksek verimli motor, batarya sistemlerini, çeşitliliği bir kenara bırakıp yüksek güçlü ve torklu motorlara bakmak ihtiyacı vardı artık. Zaten hidrojen yakıt modülü çok iyi(!) bir şekilde uyulan kurallar gereği belli bir limitte olduğundan dolayı seçilecek motorlar da azalıyor. Okul olarak güneş enerjili araç takımımızın başarısından hareketle, öğrencilerin düşünebildiği, iyi fikirlere sahip olduğu, yenilikçi ve mücadeleci olduğu ortada. Bu işe başlarken kendimizden daha azını falan da beklemedik kesinlikle, birinci olmak amacı ile başladık. Motorlar diyorduk, seçilebilecek kabaca 2 çeşit motor var, bunlar standart fırçalı DC motor ile DC hub motor. Hub motor teorik düşünce ile zincir/kayış gibi aktarma organlarına ihtiyaç duymadığı için kısmen daha verimli oluyor. Aksine standart motorda ise, düzgün düşünülmediği ve yapılmadığı takdirde kullanılacak zincirin verim kaybına yol açacağı bilinen bir olay. Devam edelim… Standart DC motorda birçok marka mevcut fakat bunlar arasında PMG göze çarpıyor. Hub motor cephesinde ise solar araçlar için özel olarak üretilen ve piyasada bulunabilecek neredeyse en verimli motor olan Mitsuba ve diğerleri var. Burada diğerleri kısmını açarsak, ihtiyacımız olan güç, tork ve rpm değerleri düşünüldüğünde Mitsuba harici 2-3 seçenek kalıyor. Bu seçenekler de Ankara’da bulunan ve yarıştaki tüm takımların her seferinde hiç iyi anmadıkları bir şirkette mevcut. Bu şirketin sattığı bu “diğer” motorlar ise Çin malı ve kalitesini anlatmama gerek yok  kolaylıkla tahmin edersiniz.

Doğal olarak kalite ile maliyet doğru orantılı, Mitsuba ilk sene için bizi fiyat olarak zorlayacağı için iki seçenek arasında kalmıştık, PMG veya Çin malı olacaktı. Tekrar hatırlayalım, PMG zincirli standart, çin ise hub motordu. Maliyet olarak eşitler hatta PMG daha ucuz, bu arada laf arasında PMG’nin Alman malı olduğunu da dile getireyim. Buna ek olarak PMG’nin, şu ana kadar 4 yıl şampiyon olmuş araç tarafından kullanıldığını ve şampiyonluk için uğraşan diğer araçların çoğunda da bulunduğunu da şöyle fısıldamış olayım.

Hangi motorun seçileceği kararı biz öğrencilerin çoğu tarafından PMG yönünden oylanıyor olsa da sayın hocamız, zincirin çok fazla verim düşüreceğini, zincir sisteminin yapılmasının çok zor ve uğraştırıcı olduğunu, herhangi bir aksilik durumunda  tamirin zor ve aslında bu sene amacımızın birincilik değil de sadece katılıp yarışabilmek olduğunu söyleyerek çin motoru konusunda karar aldı. Yeni kurulan bir takımda öğrencilere karşı bir güvensizlik ve başaramayacaklarını düşünmek olası tabii ki. Neyse, baştan beri yüksek olan hedeflerimizden aşağı doğru çekilmek, neyse…

Motor konusunu kapayalım.

Diğer ekipmanlara gelirsek, kurallar gereği çoğu takımın neredeyse aynı malzemeleri kullanması gerekiyor. Ayırt edici kısımlar mekanik işçilik kalitesi, aerodinamik dizayn ve yine yazıyorum ama motor oluyor siz de takdir edersiniz ki.