MESUT ÇAKIR | İş Süreçleri ve Yazılım üzerine ...

Devam Eden Projeler...

Bir projeye hevesle başlarsınız, harika planlar, harika tasarımlar yaptığınızı düşünürsünüz. Yazdığınız kod, kurduğunu model ve mimarinin harika olduğunu delinmez olduğunu düşünür sistemi yazarsınız. aradan 1 sene geçtiğinde şöyle geri dönüp bir baktığınızda genelde gelişme sürecinden kaynaklı yazdığınız kodun ne kadar gereksiz yanları olduğunu görürsünüz veya tasarımda ne kadar büyük hatalar yapmışsınız onları anlarsınız. 
Sonra bir refactoring sürecine girişmek istersiniz tüm kodlarınızı ve tasarımlarınızı elden geçirmek istersiniz. Ama İşler ilk başta yazdığınız gibi kolay değildir. Live bir sistem ve binlerce müşteriniz vardır. Her sayfayı kafanıza göre değiştiremez yenilikleri kafanıza göre kararlaştıramazsınız. Yenilerini yapıp yavaş yavaş bir geçiş yapmak zorunda kalırsınız.

bu yazıyı bir yere bağlayamadım. Fakat böyle bir sürecin içerisinde olduğumu biliyorum. Ben kendimce buna Devamlı Gelişim Modeli diyorum. Durmadan gelişiyoruz. Geliştiriyoruz. 

Bunun sonucu olarak, geçmişi beğenmiyor, geleceği hayal ediyoruz. Bunun aksi beni güçsüzleştiriyor ve yoruyor.

Projelerinizi başlayıp bitirmek isteyebilirsiniz. Fakat Yazılım dünyasındaki ürünler çikolata gibi değildir. Yaşayan Canlılar gibidir. Bu nedenle Projenize başlayın yapabildiğiniz en iyi planlamayı yapın. Harika bir mimari kurgulayın, Harika kod blokları yazın, Harika tasarımlar gerçekleştirin..

Sonra bir gün dönün ve yaptıklarınıza bakın, Egonuzu bir köşeye atın ve ne kadar kötü bir iş yapmışım diyebilin(dünya'nın en harika işi olduğunu düşünseler dahi etrafınızdakiler) Sonra oturun ve daha iyisini yapmak üzere işe koyulun...

Başka nasıl gelişilebilir ki ?

Tarih Aralığı Kontrolü Problemi Çözümü | Date Intersection - Kendime Not

Projemde kullanmak üzere oluşturmuş olduğum MonthSelector Aracım ile Kutuları kullanarak tarihi ileri ve geri alarak aralık belirleme işlemi yapıyordum. Buna bağlı olarak görev tanımlarımın getirilmesini sağlıyorum. Görev Başlangıç ve Bitiş ile bu iki tarih aralığının kesişmesi ile ilgili kontrolü yapamadım. Sonrasında biraz araştırma yaptıktan sonra bunun "Date Intersection" konusu olduğunu öğrendim. Bununla ilgili bir kaç makale aradıktan sonra http://www.danesparza.net/2011/07/find-out-if-2-date-ranges-overlap-using-javascript/ adresine rastladım. Sorunumu başarılı bir şekilde çözdüm. 


var e1start = e1.start.getTime();
var e1end = e1.end.getTime();
var e2start = e2.start.getTime();
var e2end = e2.end.getTime();

return (e1start > e2start && e1start < e2end || e2start > e1start && e2start < e1end);


Yazılım Sektöründe Stajer ve Naylon Stajer Olmak !

Merhabalar, 

Bugün bir mail aldım. Mail içeriği şu şekilde:

Merhaba,
Sitenizi sevdim son yazınız gerçekten faydalı. Teşekkürler.
Ben Konya'da Mevlana Üniversitesinde Bilgisayar Mühendisliği 2.sınıf öğrencisiyim.Bu yaz staj yapmam gerekiyor. Sizinde Bilge Adam'da staj yaptığınızı okudum sitenizden. Staj başvurusu kabul süreci yada ücret talep ettiler mi? Yeni başlayan pek bilgisi olamayan ama istekli biri için önerir misiniz ? gibi sorularıma cevap arıyorum 
Şimdiden çok teşekkür ederim 
İyi çalışmalar 

Öncelikle sorularımızı bir toparlamak isterim.

  1. Staj Başvuru Süreci var mıdır ? Nasıl İşler ?
  2. Staj Yapmak için ücret öder miyim ? Staj yapmak için ücret alabilir miyim ?
  3. Yeni başlayan arkadaşlara öneriler var mıdır?
Öncelikle bu arkadaşımıza teşekkür ediyorum. Bu sorulara kendi tecrübelerim ile cevap verebilirim ancak benden daha iyi düşünen daha iyi yerlerde staj yapmış arkadaşlarımızda var tabii ki fakat ben sizlere kendi penceremden durumu anlatmaya çalışıyor olacağım.

İlk olarak staj süreci vardır ve aynı zamanda böyle bir süreç yoktur.

O nasıl oluyor diyebilirsiniz. Ben Ticaret Meslek Lisesi Çıkışlıyım. Bilge Adam Stajımı lisede okurken gerçekleştirdim. Durum şu ki sınıfın 36'da 3-4'ü harici Naylon Staj yaptı. (Naylon Staj : siz stajerlik yapacağınız yere uğramaya bilirsiniz demek oluyor. Firma sadece sizi çalıştırmış gibi gösteriyor ve dosyanıza imza atıyor. Genelde bunu tanıdık amcalarınız yapmaktadır. Benim kesinlikle önermediğim tarzda bir staj türüdür.) İşin doğrusunu söylemek gerekirse istekli olan inek öğrenci olarak biz vardık diyebilirim. İnek Yazılımcı öğrenciler olarak her derse çalışır azim gösterirdik. Yazılıma özel bir çalışma yapmazdık çünkü yazılım bir çalışma gerektiren iş değil eğlence durumundaydı daha çok.

Benim sürecim Google, Microsoft, Bilge Adam gibi kurumsal büyük firmalara mail göndermek ile başladı. Aynı bu arkadaş gibi bir mail yazdım. Zorlayarakta olsa Bilge Adam'a giriş yaptım. Benim için büyük bir başarıydı o zamanlar.

İlk Görüşmeye gidişimde ceketimi giydim. Güzelce hazırlandım. Beni bir odada beklettiler ve sonra yazmış olduğum cv üzerinden sorular sormaya başladılar. Sonrasında görüşme bitti ve haber beklemeye başladık.

Neyse daha fazla hikaye anlatmayacağım.. 

Sürece dahil olabilmek için bir CV hazırlayın tertemiz olsun. Çünkü kariyeriniz tertemiz. Sadece temel bilgileriniz ve aldığınız kurslar olsun. Atıp tutmayı sakın denemeyin çok komik duruyor. 

Staj Yapmak için ücret öder miyim ? Staj yapmak için ücret alabilir miyim ?

Diyorsanız iş gerçekten çok yeni demektir. Staj yapmak için para ödemezsiniz. Stajerlik biraz Cem Yılmaz'ın dediği gibi kölelik demektedir. Gözünüz korkmazın çay taşıtmaktan bahsetmiyorum. Yazılımda da angarya denilen işler ilk sizin elinizden geçecek diyorum.

Yazılımda angarya iş tabirini ben şöyle yaparım. Yazılımcı olarak kod yazmaktan zevk alıyorum. Fakat öyle zaman geliyor ki bir sürü statik değişkenliği olmayan copy-paste yapılarak saatlerce uğraşılacak bir işe denk geliyorsunuz. Bu süreçte sadece badaj çekiyorsunuz. İşte bu işler çoğu zaman takımın stajerine yaptırılmaktadır. Tabii ki bu her zaman için geçerli olan bir şey değildir.

Ama yinede stajer olamak sabrın sınandığı bir dönemdir. Eğitim almanın karşılığında o adamlara bu tarzda hizmet verirsiniz ve öğrenmeye devam edersiniz.  Bu nedenle stajer olarak para beklentiniz olmasını tavsiye etmem. Kafa rahat olur. :)

Bir gelir ve her şeyi kavramaya başlarsınız. Junior yazılımcı statüsüne girersiniz. İşte o zaman işler birazcık daha keyifli olur. Çünkü artık daha aktif bir takım elemanı olamaya başladınız demektir. Para kısımı burada ucundan kendini göstermeye başlar. Türkiye'deyiz çok yüksek miktarlar beklemeyin :) Fakat öğrencisiniz kendinize yetecek kadar kazanabilirsiniz. Ve tabii ki en güzel yanı öğrenmeye devam edebilirsiniz.

Yeni başlayan arkadaşlara önerim bu blog'ta yazdıklarımı okumaları ve stajerlik yapmak için para mı eğitim mi sorularını sormalarıdır. Eğer Para öncelik diyorsa ben bir fikir sunamıyorum. Çünkü hiç bir patron baba hatrına çalıştırmaz kimseyi hadi gel sana bir şeyler öğreteyimde üzerinede şöyle bir para vereyim demez. Taktir edersiniz ki sizde bilgi kadar kıymetli bir şeyde yoktur.

Lise, Üniversite eğitimleri şuanda yeterli seviyede piyasaya eleman yetiştirmeye vakıf değil. Bu nedenle yapabileceğiniz en güzel şey internet üzerinden eğitimler almak ve devamlı öğrenmek. Google abimiz bize her sorunun cevabını veriyor ben 6-7 senedir içinde bulunduğum bu sektörde cevapsız sorum olmadı. Yaptığımız iş zor değil emek istiyor o kadar.

Siz emek verin yazılım sizin için kendini öğretecektir.

ASP.NET MVC 4 Projenizi ASP.NET MVC 5 Yapmak !

Asp.NET MVC 4'den Asp.NET MVC 5'e geçerken dll değiştirmek yeterli olmuyor. Ben ReCaptcha yüklemek isterken 5 versiyonu istedi ve otomatik yükseltim. Bu nedenle aşağıdaki hatayı almaya başladım.

[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Users\MyName\AppData\Local\Temp\Temporary ASP.NET Files\root\63e7ff36\a1cb775d\assembly\dl3\8f568c18\9b7ddacf_d04dcf01\System.Web.WebPages.Razor.dll'.
Sonrasında; 
http://stackoverflow.com/questions/22793322/asystem-web-webpages-razor-configuration-hostsection-cannot-be-cast-to-web
kaynağına eriştim. Buradan edindindiğim bilgiler ile;
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 bu linke ulaştım. 

Bu linkler sayesinde çözüme ulaştım.

Kısaca Root içerisindeki web.config içerisindeki kullanımları değiştirdim.
Views\web.config içerisindeki kullanımları değiştirdim.

Değişimleri nasıl yapacağınız ikinci verdiğim linkte yer almaktadır. 

sorunu aşamazsanız iletişim kurabiliriz.

Html To Pdf ITextSharp HtmlWorker Türkçe Karakter Problemi Çözümü !

ITextSharp ile gelen HTML Bilgisinin içerisinde Türkçe karakter bulunuyorsa bunları silip gösteriyordu. Aşağıdaki tarzda bir çalışma yapıldığında bu sorun düzelmektedir. 

StyleSheet styles = new StyleSheet();
styles.LoadTagStyle("h3", "size", "5");
styles.LoadTagStyle("td", "size", ".6");
FontFactory.Register("c:\\windows\\fonts\\arial.ttf","ArialFont");
styles.LoadTagStyle("body", "face", "ArialFont");
styles.LoadTagStyle("body", "encoding", "Identity-H");
styles.LoadTagStyle("body", "size", "12pt");
using (var htmlViewReader = new StringReader(html)) {
           using (var htmlWorker = new HTMLWorker(doc, null, styles)){
                     htmlWorker.Parse(htmlViewReader);
           }
}


NOT : Bu kullanım tarzı ile ilgili sorunlar bulunamtadır. Obsolute bir library Class'tır. Bunun yerine XMLWORKER kullanabiliriz.

Örnekleri ile ilgili doküman aşağıdadır.
Türkçe karakter sorunları için yapmanız gereken şey şudur. font tanımlarını türkçe karakter destekli bir font verin. (css style ile)
http://demo.itextsupport.com/xmlworker/itextdoc/flatsite.html