Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
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ı.
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
www.cihanozhan.com
*It is the presentation of my blockchain event that I presented in 2019.
Teknopark Istanbul Announcement : https://www.teknoparkistanbul.com.tr/egitimler/blockchain-decentralized-uygulama-gelistirme-sunumu
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeEmre Akış
Yüksek performanslı ve ölçeklenebilir mesajlaşma sistemleri konusunda açık kaynak kodlu bir çözüm olarak ilk akla gelenlerden biri olan Apache Kafka hakkında bir sunumdur.
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ı.
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
www.cihanozhan.com
*It is the presentation of my blockchain event that I presented in 2019.
Teknopark Istanbul Announcement : https://www.teknoparkistanbul.com.tr/egitimler/blockchain-decentralized-uygulama-gelistirme-sunumu
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeEmre Akış
Yüksek performanslı ve ölçeklenebilir mesajlaşma sistemleri konusunda açık kaynak kodlu bir çözüm olarak ilk akla gelenlerden biri olan Apache Kafka hakkında bir sunumdur.
5. • Bilinen / genel yöntem
• Blok 0larak çalışır.
• UI, arkadaki kodun çalışmasını bitirmesini bekler.
6. • Operasyonları diğer thread’lere dağıtır.
• Main ve diğer thread’lerle senkronizasyonu bizim yapmamız
gerekir.
• Thread’lerin çalışma koşullarını biz kontrol ederiz.
7. • Tanım olarak multithread’dir.
• Task / kaynak havuzunda çalışır.
• Konsept olarak birden fazla core’u, işlemciyi kullanabilir.
8. • Parallel programlama değildir.
• Uygulamadaki kodlar aynı thread’de çalışmaya devam eder.
• Kodun UI’dan alınıp arkaya konulması demektir.
• Yani;
• Metodun çalışması bitene kadar UI cevap verebilir.
• Metod arkada çalışır.
• Metod işini bitirdiğinde UI’ya sonucu iletebilir.
• Böylece kullanıcı takılma yaşamaz.
9.
10. • Tabletler günümüzde daha fazla kullanılmaya başlandı.
• 2011’de PC satışlarının % 15’i tablet pc olacak. (IDC)
• Ipad, Android tablet, RIM, ....
• Yakında Windows 8 tabletler çıkacak.
• Tabletlerle birlikte UI daha fazla önem kazanacak. Çünkü
UI’ın daha hızlı / kısa sürede cevap verebiliyor olması
gerekiyor. Herne kadar yapılması gereken işlem
tamamlanmamış olsa bile. Örneğin haber okuma gibi.
Haberin özeti, ilgili resimler, ilintili haberler, haber detayı vs
• UI’ın daha fazla cevap verebiliyor olması gerekiyor.
• UI’yı bloklamadan uzun süren işlemleri yapabilmek
gerekiyor.
11. • Tek çekirdekli / işlemcili bilgisayarlarda concurrency
• Aynı anda birden fazla uygulama çalıştırırız!!!
• Bir karsonun iki masayla aynı anda ilgilenmesi gibi.
• Asenkron çalışma da benzer mantıktır.
• İşler küçük parçalara bölünür.
• Parçalar sıraya konur, kuyruğa alınır.
• Kuyruktan sırası gelen iş alınır ve işlemci tarafından çalıştırılır.
• Bu işlem aynı thread’de gerçekleşir.
• Birden fazla core / CPU olmadan multitask çalışma
• Her iş için bir task oluşturulur ve caller, task’in
tamamlanması bekler.
• Aktivite tamamlandığında – metod tamamlandığında –
caller’da bir senkronizasyon yapılır.
13. TPL TAP
CPU yükü fazla olan işlemlerde CPU yükü fazla olmayan işlemlerde
kullanılır. Main thread / programın kullanılır. Resim download etme,
dışında çalıştırılır. network işlemleri,vb
Multiplethreading ve multi core’un Multithread veya multicore kullanmaz.
avantajlarını kullanır. Core’lar boşta kalır.
İşlemleri concurrency kullanarak çözer. TAP bu özelliği extend eder.
UI serbest kalır ve uygulama pekçok
thread açmaz.
TAP sadece UI’da kullanılmaz.
Multithread ortamlarda da
kullanılabilir.
15. • Derleme sırasında compiler «continuation code» generate
eder.
• Callback’leri otomatik olarak yakalar.
• Callback yakaladığında caller’a geri döner.
• Kodun normal akışını devam ettirebilmesi için task’in
tamamlanmasını bekler.
• Kodu çağıran metoda hataları ve cancellation token’ları yayar.
16. • Compiler’a metodun asenkron olduğunu belirtir. Metodu
asenkron olarak işaretler.
• Asenkron olarak işaretlenmiş metodlar en az bir tane await
içermelidir.
• Bu metodlar birden fazla await içerebilir.
• Async olarak işaretlenmiş metodlar beklenebilir. (can be
awaited)
• Asenkron metodlar void olabilir, Task veya Tast<T>
döndürebilir.
17. public async Task<string> GetXmlAsync(string url) {
var client = new HttpClient();
var response = await client.GetAsync(url);
var text = response.Content.ReadAsString();
return text;
}
22. • Asenkron kullanırken işler küçük parçalara bölünür ve işlerin
tamamlanmaları beklenir. Burada dikkat edilmesi gereken
işleri ne kadar çok sayıda parçaya böldüğümüzdür. Fazla
sayıda küçük parçaya bölmek iyi değildir.
• TAP herne kadar iyi olsa da her derde deva değildir.
Kullanırken dikkat etmek ve iyi ölçmek gerekir.
• İşlem 50 milisaniyeden fazla zaman alıyorsa asenkron
yapılabilir.
• Async metodlar cascading olarak çağırılabilir.
24. __FILE__ ve __LINE__
public static class Logger
{
public static void LogDB(string message,
[CallerFilePath] string file = "",
[CallerLineNumber] int line = 0,
[CallerMemberName] string member = "")
{
var err = string.Format("{0}:{1} – {2}: {3}", file, line, member, message);
// log error message to db
}
}