• Nov
  • 18
  • 2014

Sonunda Lizbon…

Tags: | 105 kez okundu. |

Senenin son seyahatini uzun zamandır gitmek isteyip de, fırsat bulamadığım Lizbon ile geçen hafta tamamladım. Mevsim olarak daha iyi bir zaman tercih edilebilirdi belki. Yine de hava oldukça güzeldi. Hatta tam kıvamında, ne soğuk, ne sıcak, yer yer hafif yağmurlu ama mutlaka güneşi gördüğüm bir zaman dilimine denk geldim. Son baharda gidilir mi tereddütü yaşayan varsa, yaşamasın…Gidilir.

Lizbon

Bayaa önceden ayarladığımız için, direkt merkezde, Baixa(bayşa)’da kaldık. Ulaşım ve belli başlara yerlere yakınlığı konusunda Baixa kesinlikle süper bir tercih olmuş. Kaldığımız otelin reklamını da yapmazsam olmaz, Brown’s Downtown… Reklamını yapmazsam olmaz diyorum çünkü cidden değişik ve güzel bir oteldi. Önceden de ayarladığımız için oldukça güzel bir ücret ödedik. şiddetle tavsiye ederim. şahane bir ücret demişken, Lizbon’nun diğer Avrupa şehirlerine göre oldukça ucuz olduğunun altını çizmek isterim, ahaa da çizdim…

Lizbon, İstanbul’a çok benziyor…Büyük bir ihtimal giden herkes bunu direkt fark edecektir. İstanbul’un daha makul bir kalabalığa sahip halinin, geliştirilmemiş ama korunduğunu düşünün…Ahaaa da işte Lizbon. Lizbon oldukça eski bir şehir. Zaman kavramından ayrı olarak, yaşanmışlıkların yarattığı bir eskilik şehrin genel havasına hakim. 1700’lerin ortasında gerçekleşen büyük depremin bir çok binayı yıkmış olmasına rağmen, bir çok şey de korunmuş. “Yenilemek” kavramı yerine “korumak” kavramını seçen bir şehir olmuş. Bir çok Avrupa ülkesi gibi, Lizbon’da da şehri yenilemek yerine korumayı tercih etmişler. Olması gereken de bu zaten… Biz ise, korumak yerine, yenileme ayağına şehirlere tecavüz ediyoruz…Neyse…Lizbon

Çok tarihi özelliğini bilmiyorum ama seramik kaplamalar, Lizbon’nun mimarisinde oldukça önemli yer kaplıyor. Bir çok eski binanın cephesi seramik taşlar ile kaplanmış. Her Avrupa şehri gibi, Lizbon’da da çeşitli meydanlar mevcut. Ama ilginçdir ki, meydanlarında kilise ve kathedral yok. Kocaman bir kaç heykel ile yetinmişler… Meydan ve kilise ikilisi ile standart Avrupa havasından uzak olması açıkcası hoşuma gitti. Farklı geldi… Bu meydanlardan en büyüğü ve en ünlüsü Praça do Comércio. Etrafı binalar ile çevrili bu meydan, Tagus nehrine bakıyor. Bir ıstanbul Boğazı gibi olmasa da, manzarası andırıyor diyebilirim. Evetttt, her gittiği yeri Türkiye ile kıyaslayan turist görevimi tamamladım. Artık daha rahat devam edebilirim sanırım.

Rossio ve Praça da Figueria, kıyıdan içeriye doğru girdiğinizde karşınıza çıkan diğer büyük meydanlar. Metroyu çok kullanacağım derseniz zaten, Rossio ister istemez çok çıkacağınız bir meydan olacak. Ayrıca Sintra’ya gitmek isterseniz,-ki isteyin, Rossio’dan trene biniyoruz…Buraya yeniden geleceğiz yani Sintra‘ya gitmek için.

Devam…

  • Nov
  • 05
  • 2014

AngularJS BootCamp @ 22-23 Kasım, İstanbul…

Tags: | 249 kez okundu. |

İstanbul’da AngularJS ile ilgili en kapsamlı etkinlik VNGRS‘ın organizasyonu ile 22-23 Kasım tarihlerinde YTÜ Beşiktaş kampüsünde gerçekleşiyor. AngularJS’yi tanımak ya da uzmanlaşmak isteyen kişiler için oldukça dolu bir programa sahip olan bu ücretsiz etkinliği kaçırmamaınızı tavsiye ederim. Katılım ve diğer ayrıntılar için http://bootcamp.vngrs.com adresini ziyaret edebilirsiniz.

AngularJS

22 Kasım - AngularJS Hakkında Temelleri Oluşturma Günü

Başlangıç: Temeller
•09:00 – 09:24 Bootcamp programı, Pomodoro, Angular Dev Tools
•09:30 – 09:55 Web Uygulamaları ve AngularJS’in Getirdiği Çözüm
•10:00 – 10:25 Basit olarak AngularJS’i Oluşturan Parçalar

AngularJS ile Mikro Proje: Kitapcim
•10:40 – 11:05 1/3 Bölüm Projeyi oluşturma ve Routing
•11:10 – 11:35 2/3 Bölüm Dataları Listeye Dökme, Arama, Tarama vs.
•11:40 – 12:05 3/3 Bölüm Animasyonlarla Zenginleştirme

Öğlen Yemek Molası (12:05 – 13:00)

Direktifler Dünyasının Derinlerine Doğru
•13:00 – 13:25 Ne la bu Direktif Dedikleri?
•13:30 – 13:55 İzole Skoplar ve Direktiflerin Derinlikleri
•14:00 – 14:25 Controllerları Direktifler içinde Kullanmak

AngularJS için Voltran’ı Oluşturmak
•14:40 – 15:05 Projenin Hammaliyesini Gruntjs’e Yüklemek
•15:10 – 15:35 UI-Router ile Zincirlenmiş Ekranlar Oluşturmak
•15:40 – 16:05 AngularJS ve Ionic Framework ile Mobil Uygulama Geliştirmek

AngularJS ile Backend Entegrasyonu
•16:20 – 16:45 Nodejs ve Express ile Hızlı Backend Oluşturmak
•16:50 – 17:15 Parse ile Backend Servisleri Oluşturmak
•17:20 – 17:45 Firebase ile Backend Servisleri Oluşturmak

23 Kasım – AngularJS Profesyoneller Günü

•09:00 – 09:50 AngularJS’in Farklı Projelere Uygun Doğru Kullanım Tarzları
•10:00 – 10:50 AngularJS ile Çoklu Dil Desteği İçeren Web Uygulamaları Yapmak
•11:00 – 11:50 AngularJS ve Firebase ile BackendSİZsiniz
Öğlen Yemek Molası (11:50- 13:00)
•13:00 – 13:50 AngularJS’i Büyük Projelerde Kullanırken İzlenecek Yol Haritası
•14:00 – 14:50 AngularJS Projelerinin Yükünü Gulp.js ile Hafifletin!
•15:00 – 15:50 Jquery’den AngularJS’e geçiş
•16:00 – 16:50 Web Sitesinden Web Uygulamasına: Sahibinden Frontend
•17:00 – 17:50 Temel Phonegap Eklentilerine Giriş ve Ionic Framework Entegrasyonu
•18:00 – 18:50 Panel: Web Uygulamaları, SPA, MV Frameworkleri ve AngularJS’in Geleceği

  • Nov
  • 05
  • 2014

Yazılım Teknolojileri Semineri @ 29 Kasım, Ankara…

Tags: | 164 kez okundu. |

Geçen ay, İstanbul’da gerçekleşen Yazılım Teknolojileri Seminerleri‘nin yeni bir ayağı, bu sefer 29 Kasım 2014 tarihinde Ankara‘da gerçekleşecek. Windows Programlama Topluluğu’nun daveti ile gerçekleşen bu etkinlikte, Muhammed Cuma Tahiroğlu’ nun Fonksiyonel Programlama, Ercan Bozkurt’ un Sanal Gerçeklik ve Burak Selim Şenyurt’un NoSQL ile ilgili sunumlarına ek ben de  SCRUM ile ilgili bir şeyler paylaşıyor olacağım. Ücretsiz gerçekleşecek olan etkinliğe bu adresten kayıt olmanız gerekmekte.

ankaraseminer

 

 

  • Oct
  • 18
  • 2014

NedirTV – Yazılım Teknolojileri etkinliğindeki sunumum…

Tags: , , | 286 kez okundu. |

Daha önce yine buradan duyurduğum, NedirTV Yazılım Teknolojileri etkinliğini bugün oldukça keyifli bir şekilde gerçekleşti. Microservices ile ilgili benim de küçük bir sunumum vardı. Umarım, az biraz da olsa faydalı olmuştur. Buradan tüm katılan arkadaşlara bir kez daha teşekkür etmek isterim. Açıkcası ummadığım bir şekilde, çok güzel bir kalabalık vardı. Teşekkürler…

Etkinlikteki sunumumu aşağıda bulabilirsiniz. Başka bir etkinlikte görüşmek üzere.

 

Microservices Sunumu NedirTV etkinliği

  • Oct
  • 10
  • 2014

“Code Contracts” da kullanmak lazım…

Tags: , , , , | 412 kez okundu. |

Code Contracts‘ın, uzun bir süredir .NET platformunda da olan ancak çok fazla kullanılan bir kavram olmadığını, ama oldukça önemli bir özellik olduğunu düşünüyorum. Alışkanlıkların ve kolayı tercih ediyor olmamız, avantajlarının önüne geçtiğinden öneminin çok farkında olmuyoruz sanırım bu tarz özelliklerin.

Code Contracts, temelinde yazdığımız koda, adından da anlaşılacağı üzere, statik kontratlar belirlememizi sağlıyor. Bu kontratlar, pre-condition ve post-condition olarak kodun belirtilen yerlerinde derlenme aşamasından sonra(statik analiz) ya da belirtilirse run-time sırasında da çalışıyor. “Pre-Condition” ve “Post-Condition“  dışında, koddaki sınıfların durumlarını da kontrol etmek için Code Contracts’dan faydalanabiliyoruz. Ayrıca test otomasyonu ve test edilebilir kod yazmak için, Code Contracts oldukça önemli bir özellik ve hatta kolaylık.

contracts_Yazdığımız metotların aldığı parametreleri doğrulamak ya da parametrelerin durumlarını kontrol etmek, bir yazılım geliştirirken mutlaka yaptığımız bir şey. Bu, iş kurallarının oluşturulması ve kodun sağlıklı çalışması için olarak iki açıdan yorumlanabilir. Örnek olarak, kodun sağlıklı çalışması için null kontrolünün yapılması ya da iş kurallarını oluşturmak için yaşın 18’inden büyük olmasını kontrol etmeyi verebilirim.

Bu tarz kontroller daha doğrusu ihtiyaçlar yazdığımız birim testleri ile zaten sağlanacak ya da sağlanması gerekliliği ortaya çıkacaktır. Bu noktada Code Contracts bu gerekliliğin ortaya çıkmasında oldukça faydalı.

Sizden başka kişilerin de geliştirme yapması için sunacağınız, API, kütüphane falan tarzı şeyler geliştiriyorsanız da ayrıca Code Contracts oldukça faydalı olacaktır. IsAgeValid(int age) şeklinde sunduğunuz bir metoda, statik olarak verilecek parametrelerin kontrolünü, Code Contracts ile gerçekleştirirseniz, bu metodu kullanan yazılımcı, 18’den küçük bir değer girdiğinde, derleme aşamasında hata/uyarı alacağından ilerleyen adımlarda oluşacak hataların önüne geçilebilir.

Neleri, nasıl yapıyoruz kısaca kod üzerinden de bakalım. System.Diagnostics.Contracts namespace’indeki sınıfları Visual Studio ile entegre olacak şekilde kullanabilmek için öncelikle Code Contracts Tools’u kurmak gerekiyor. Bu adresten ilgili kurulumu hemen yapabilirsiniz. Code Contracts, proje seviyesinde ayarlanabilen, açılıp, kapatılan bir özellik. Proje özelliklerini açarsanız aşağıdaki gibi bir ekran ile istediğiniz ayarı yapabilirsiniz.

CodaContracts

Sarı ile belirttiğim ayarları özellikle yapmanızı tavsiye ederim. Bu ayarlar kodunuzun statik olarak analiz edilmesi ve kontratların işletilmesini, eğer bir uygunsuzluk var ise de Error olarak çıkmasını sağlıyor. Eğer Fail build on warnings seçili olmaz ise, uygunsuzluklar Warning olarak gözükecektir.

Code Contracts’ları peki nasıl tanımlıyoruz?

Aşağıdaki gibi AddUser(User user) şeklinde bir metodumuz var diyelim. Ve bunu metodun parametresindeki User sınıfının hangi özelliklerinin tanımlanması ve nasıl tanımlanması gerektiği, metodu çağıran kişi tarafından bilinemez, -eğer farklı bir şekilde belirtilmediyse. Contract.Requires() metodu ile metotların input’larını yani parametrelerini, belli koşulları(pre-conditions) sağlıyor mu diye kontrol edebiliriz.

Devam…

  • Oct
  • 09
  • 2014

C# 6.0 ile ilgili…Bakmakta fayda var…

Tags: , | 468 kez okundu. |

İlerleyen aylarda C# 6.0 çıkacak bildiğiniz üzere. Compiler’ın komple değişmesi, servis olarak sunuluyor olması gibi bir çok büyük yenilikten ve dilin yeni özelliklerinden hep bahsetmek isteyip hep tembelliğime yenildim. Ayıp bana… Yakın zamanda bunlar ile ilgili bir şey yazmak istiyordum ki, ay başında C# 6.0’ın daha önceden duyurulan bazı yeniliklerinden vazgeçildiğini okudum. Tüm motivasyonum gitti…Nasıl bahane ama… :)

C#'ın evrimiEskiden beri blog’u takip edenler belki hatırlar; bir ara “Bakmakta Fayda Var” diye, Türkçe kaynaklar paylaşıyordum. Çeşitli bloglarda, hoşuma giden ve faydalı olduğunu düşündüğüm yazılara, görmeyen,okumayan kalmasın diye link veriyordum. C# 6.0 motivasyonumun düşmesi(!) ve bu paylaşımları uzun zamandır yapmıyor olmanın verdiği utanç ile, C# 6.0 yenilikleri hakkında yazılmış Türkçe kaynakları paylaşarak biraz ayıbımı kapatmaya çalışacağım. Belki ilerleyen zamanlarda ben de bir şeyler karalarım. Ama zaten konusunda uzman kişiler çok güzel yazıp, yenilikleri anlatmış. Daha son hali çıkmadan, neler geliyoru takip etmek için mutlaka bakın derim…

Haa bu arada C# 6.0 yeniliklerinin son durumu aşağıdaki gibi. “Primary Constructors”, “Declaration expressions” ve “Event initializers” son durumda tamamen kaldırılmış gözüküyor…Üzülmedim desem yalan olur… Son halini alana kadar, gelişmeleri ve yenilikleri http://roslyn.codeplex.com/ adresinden takip edebilirsiniz.

Feature

Example

C# VB
Primary constructors class Point(int x, int y) { … } No No
Auto-property initializers public int X { get; set; } = x; Done Exists
Getter-only auto-properties public int Y { get; } = y; Done Done
Ctor assignment to getter-only autoprops Y = 15 Done Done
Parameterless struct ctors Structure S : Sub New() : End Sub : End Structure Done Done
Using static members using System.Console; … Write(4); Done Exists
Dictionary initializer new JObject { ["x"] = 3, ["y"] = 7 } Done No
Indexed member initializer new JObject { $x = 3, $y = 7 } No No
Indexed member access c.$name = c.$first + ” ” + c.$last; No Exists
Declaration expressions int.TryParse(s, out var x); No No
Await in catch/finally try … catch { await … } finally { await … } Done Maybe
Exception filters catch(E e) if (e.Count > 5) { … } Done Exists
Typecase Select Case o : Case s As String : … No Maybe
Guarded cases Select Case i : Case Is > 0 When i Mod 2 = 0 No No
Partial modules Partial Module M1 N/A Done
Partial interfaces Partial Interface I1 Exists Done
Multiline string literals “Hello<newline>World” Exists Done
Year-first date literals Dim d = #2014-04-03# N/A Done
Binary literals 0b00000100 No No
Digit separators 0xEF_FF_00_A0 No No
Line continuation comments Dim addrs = From c in Customers ‘ comment N/A Done
TypeOf IsNot If TypeOf x IsNot Customer Then … N/A Done
Expression-bodied members public double Dist => Sqrt(X * X + Y * Y); Done No
Event initializers new Customer { Notify += MyHandler }; No No
Null propagation customer?.Orders?[5]?.$price Done Planned
Semicolon operator (var x = Foo(); Write(x); x * x) No No
Private protected private protected string GetId() { … } No No
Params IEnumerable int Avg(params IEnumerable<int> numbers) { … } Maybe Maybe
Constructor Inference new Tuple(3, “three”, true); No No
String interpolation \{p.First} \{p.Last} is \{p.Age} years old.” Planned Planned
TryCast for nullable Dim x = TryCast(u, Integer?) Exists No
Delegate combination with + d1 += d2 Exists No
Implicit implementation Class C : Implicitly Implements I Exists No
nameof operator string s = nameof(Console.Write); Done Planned
Strict modules Strict Module M Exists No
Faster CInt Dim x = CInt(Math.Truncate(d)) | Exists No
#pragma #Disable Warning BC40008 Done Done
Checked and Unchecked blocks Checked : x += 1 : End Checked Exists No
Field targets on autoprops <Field: Serializable> Property p As Integer Maybe Maybe
If(b,e1,e2) uses type context Dim x As Integer? = If(b,1,Nothing) N/A No
  • Oct
  • 08
  • 2014

ING Bank’dan bankacılık hackathon’u…

Tags: | 282 kez okundu. |

Hackathon kavramı son bir kaç yıldır oldukça yaygınlaştı. Türkiye’de de artık şirketler bu tarz yazılım etkinliklerine çok yavaş da olsa destek vermeye başlıyor. Bu desteğin en sonuncusu, Hack-ING ismi ile ING Bank’ın düzenlediği, 31 Ekim – 2 Kasım arasında gerçekleşecek olan ”Bankacılık Hackathonu”.

ing-hackathon-posterFinansal sektör için, teknoloji ve hayal gücünüz ile beraber, bir sınır olmadan tüm fikirleriniz bu hackathon’da yer alabilecek.

Aslında tek bir konu yok! İnternet bankacığılını geliştirmek, alternatif kişisel finans çözümleri veya sistemleri üretmek, alternatif mobil ödeme çözümü veya sistemi icat etmek, daha iyi veya fonksiyonel bir ATM arayüzü ya da sistemi geliştirmek, kimsenin aklına gelmeyen bankacılık işlemleri veya sistemleri alternatifleri üretmek! Kısacası bankacılıkla ilgili her şey bu etkinliğin konusu! Bankacılık hayatımızı daha nasıl kolaylaştıra bilir?

Herhangi bir sınırlama olmadan, teknoloji ve hayal gücünü kullanarak istediğiniz şeyi üretebilirsiniz!

İster takım, ister bireysel katılabileceğiniz bu etkinlik için tüm ayrıntıları ve katılım ile ilgili bilgileri bu adresten takip edebilirsiniz. Son katılım tarihi 24 Ekim, o yüzden elinizi çabuk tutun derim.

 

Hackathon dışında ING’den, Amazon ve Githup’dan da konuşmacıların yer alacağı çeşitli sunumlar da etkinlik kapsamında olacak.

 

ING Bank Hackathon program

Birinci olan kişi/ekip, 10.000TL değerinde Teknosa’dan hediye çeki ile ödüllendirilecek. Kurumsal şirketlerin bu tarz etkinlikler düzenlemesi ve bu şekilde yazılıma destek vermesi umarım ilerleyen zaman içerisinde daha çok rastladığımız bir şey olur.