Development of Dynamic Engine and Graphical User Interface Software for Railw...Mahmut Bulut
TREN SİMÜLATÖRÜ İÇİN DİNAMİK MOTOR VE
KULLANICI ARAYÜZ YAZILIMI GELİŞTİRME
* MAHMUT BULUT
* LİSANS TEZİ
* OGÜ Bilgisayar Mühendisliği Bölümü
SUMMARY
In future for all the world, air pollution from emission from motor vehicles and economic problems in conjunction with this reason oblige to use rail transportation systems in public transportation increasingly. According to research, major part of Turkey is going to be weaved with rail system networks in the next 20 years.In this case, it is necessary to increase number of educated machinist. Using train simulators is the best economic and fast solution to educate machinist.This driving simulation products help beginner machinist, preparing them for real drive and teaching them how to use train in every conditions. Context of this report contains real-time simulation of railway systems and train dynamic engine software interface for test driving of machinists who are employee of TCDD. All the main theme relies on this subject.
Rust programming language introduction book for Turkish developers.
It is just the first version, so it will be updated during the development of Rust.
Mahmut Bulut
=================
Bu kitap Rust programlama diline basit bir giriş olması niteliğinde yazıldı, dilin kul-
lanımını arttırmak ve Türk geliştiricilere/kullanıcılara dili tanıtmak amacı güt-
mektedir. Rust şu anda prototip seviyesinde olduğundan; keskinleştirilmiş ve
yapının iskeletini oluşturan kısımları buraya aldım. Dilin daha üzerinde tartışılan
ve gelecek versiyonlarında yer alacak tüm semantik ve sentaks yapısı bu kitabın
içeriğinde değildir. Rust’ın derin semantik yapısına ve çekirdek ilkelerine değinerek
okuyucu zorlamak istemediğimden basit ve sade, günlük hayatta kullanılabilecek
cinsten örnekler vermeye önem verdim. Kitap Rust’a yeni başlayanlar ve ilgi duy-
anlar için birebirdir. Ayrıca bu kitap Rust programlama dilinin yazıldığı zamana
ait Türkçe dökümantasyonu olma özelliğini de taşır. Türkçe bilişim terminolojisine
girmeyen ama yeni tanımlanmış bazı terimleri de Türkçeye kazandırmak amacı
da gütmektedir.
Development of Dynamic Engine and Graphical User Interface Software for Railw...Mahmut Bulut
TREN SİMÜLATÖRÜ İÇİN DİNAMİK MOTOR VE
KULLANICI ARAYÜZ YAZILIMI GELİŞTİRME
* MAHMUT BULUT
* LİSANS TEZİ
* OGÜ Bilgisayar Mühendisliği Bölümü
SUMMARY
In future for all the world, air pollution from emission from motor vehicles and economic problems in conjunction with this reason oblige to use rail transportation systems in public transportation increasingly. According to research, major part of Turkey is going to be weaved with rail system networks in the next 20 years.In this case, it is necessary to increase number of educated machinist. Using train simulators is the best economic and fast solution to educate machinist.This driving simulation products help beginner machinist, preparing them for real drive and teaching them how to use train in every conditions. Context of this report contains real-time simulation of railway systems and train dynamic engine software interface for test driving of machinists who are employee of TCDD. All the main theme relies on this subject.
Rust programming language introduction book for Turkish developers.
It is just the first version, so it will be updated during the development of Rust.
Mahmut Bulut
=================
Bu kitap Rust programlama diline basit bir giriş olması niteliğinde yazıldı, dilin kul-
lanımını arttırmak ve Türk geliştiricilere/kullanıcılara dili tanıtmak amacı güt-
mektedir. Rust şu anda prototip seviyesinde olduğundan; keskinleştirilmiş ve
yapının iskeletini oluşturan kısımları buraya aldım. Dilin daha üzerinde tartışılan
ve gelecek versiyonlarında yer alacak tüm semantik ve sentaks yapısı bu kitabın
içeriğinde değildir. Rust’ın derin semantik yapısına ve çekirdek ilkelerine değinerek
okuyucu zorlamak istemediğimden basit ve sade, günlük hayatta kullanılabilecek
cinsten örnekler vermeye önem verdim. Kitap Rust’a yeni başlayanlar ve ilgi duy-
anlar için birebirdir. Ayrıca bu kitap Rust programlama dilinin yazıldığı zamana
ait Türkçe dökümantasyonu olma özelliğini de taşır. Türkçe bilişim terminolojisine
girmeyen ama yeni tanımlanmış bazı terimleri de Türkçeye kazandırmak amacı
da gütmektedir.
When it comes to marketing there is no more common request than sales asking for more leads. And while the marketing team knows that sponsoring the next industry event or buying a new list may produce an increased quantity of leads, the question always remains: are they good quality leads?
If there is one thing that Sales and Marketing can agree on when it comes to sales leads it’s that high volume does not always guarantee results. Conversely, working with a smaller number of high quality leads, can make all the difference when it comes to converting prospects into customers.
In this session, Samantha Stone, Founder and Senior Analyst of The Marketing Advisory Network, will provide attendees of a comprehensive overview of the four essential factors that go into delivering high quality leads for the Sales organization. Attendees will learn the crucial components that make up a quality lead and how they can transition their organization from a volume model to a quality model.
Attendees will walk away from this presentation with a clear understanding of how to ensure their marketing programs deliver a reasonable amount of high quality leads. Additionally, they will learn new tools for working in concert with their Sales team to form a unified, collaborative unit.
Android mimarisinin linux çekirdeğine extradan yaptığı bazı değişiklikler anlatıldı ayrıca android de linux un init fonksiyonunun çalışma mantığı ve yaşam döngüsü anlatıldı.
When it comes to marketing there is no more common request than sales asking for more leads. And while the marketing team knows that sponsoring the next industry event or buying a new list may produce an increased quantity of leads, the question always remains: are they good quality leads?
If there is one thing that Sales and Marketing can agree on when it comes to sales leads it’s that high volume does not always guarantee results. Conversely, working with a smaller number of high quality leads, can make all the difference when it comes to converting prospects into customers.
In this session, Samantha Stone, Founder and Senior Analyst of The Marketing Advisory Network, will provide attendees of a comprehensive overview of the four essential factors that go into delivering high quality leads for the Sales organization. Attendees will learn the crucial components that make up a quality lead and how they can transition their organization from a volume model to a quality model.
Attendees will walk away from this presentation with a clear understanding of how to ensure their marketing programs deliver a reasonable amount of high quality leads. Additionally, they will learn new tools for working in concert with their Sales team to form a unified, collaborative unit.
Android mimarisinin linux çekirdeğine extradan yaptığı bazı değişiklikler anlatıldı ayrıca android de linux un init fonksiyonunun çalışma mantığı ve yaşam döngüsü anlatıldı.
2. Disk üzerindeki her bir dosya çalıştırıldığında
windows için birer işlem(process) olurlar. Bir
işlem Windows için fazla bir şey ifade etmez.
Çünkü işlemler sadece hafızada belli bir
bölgede var olmaktan sorumludur. Esas işlemi
yapan kısım kanallardır(thread). Bir işlem en
az bir adet kanala sahiptir. Win 3.1 gibi işletim
sistemleri sadece bir adet kanala sahiptir.
Ama Windows 95 ve üstü, Unix, OSX gibi
işletim sistemleri birden fazla kanala sahip
olabilirler.
3. İşletim sistemi bir programı ya da bir DLL’i ilk
başta işlem olarak hafızaya taşır. Bu esnada
işlem eylemsiz olarak durur. Bu işleme ait
kanallar ise bizim belirlediğimiz ölçüde
programın kodlarını çalıştırmaya başlar.
4. Bir Kanal Oluşturalım
Kanal oluşturma ile sorumlu Windows
fonksiyonu CreateThread fonksiyonudur ve
aşağıdaki gibi tanımlanmıştır:
6. Kanal Fonksiyonlarına Parametre
Gönderimi
CreateThread fonksiyonunun parametrelerini
açıklarken lpParameter‘den söz etmiştik ve bu
parametre ile kanal fonksiyonuna istediğimiz
parametreyi gönderebileceğimizi belirtmiştik.
Şimdi bunu nasıl yapacağımızı görelim.
7. Bunun için de yaptığımız örnekten
faydalanacağız.
İlk başta type bloğunda aşağıdaki record
tanımlamasını yapalım.
22. Kod karıştırmanın diğer bir kullanım alanı da
kodun daha iyi ve efektif hale getirilmesidir. Kod
karıştırma için kullanılan araçlar kodu analiz
ederek gereksiz/yararsız kodları ve metadata
bölümlerini kırpabiliyor ve bu sayede kod
boyutunda azalmayla birlikte performans artışı
sağlanabiliyor.
23. Java ve .Net gibi just-in-time derleme ve
çalıştırma yapılan ortamlarda kodların açık edilme
riski derlenerek makina koduna çevrilen ve bu
şekilde dağıtılan programlara göre çok daha
büyüktür. Bu makalede özellikle .Net çalıştırılabilir
dosyalarının (EXE) ve sınıf kütüphanelerinin
(DLL) kodlarının ne kadar açık seçik erişilebilir
olduğunu ve kod karıştırıcı kullanarak kodların
nasıl anlaşılamaz hale getirilebileceğini
inceleyeceğiz.
25. Kodda ClsTest isimli sınıfta kasıtlı olarak değişik
tipte değişkenler ve property'ler tanımlayarak
bunları çeşitli şekillerde kullandık.
26. Şimdi derleyerek elde ettiğimiz EXE'yi Lutz
Roeder tarafından geliştirilmiş Reflector isimli
programı kullanarak demonte (disassemble)
edelim.
27. Şimdi ClsTest sınıfı üzerinde
sağ tuş yaparak Disassemble
komutunu verelim ve sağ
kenarda açılan bölümde
bu sınıfın kodunun
açıkça görelim.
28.
29.
30. Resimlerde görüldüğü gibi kodu eksiksiz bir
biçimde, tüm değişken ve belirteç (identifier)
adları aynı kalmış olarak ortaya çıkartmak çok
kolay; daha gelişmiş araçlar kullanarak
uygulamanın tüm kodunu eksiksiz bir şekilde elde
etmek de mümkün. Yani biz her ne kadar derleme
işlemine tabi tutarak EXE üretiyorsak da bu
EXE'ler (ve tabi DLL'ler) makina koduna
değil CLR tarafından işletilmek üzere ara koda
(intermediate code) dönüştürülüyor.