Wednesday, July 2, 2014

All Ebooks & Videos Are 10 Dollars in Packt Publishing

Packt Yayımcılık, 10. yıl şerefine 5 Temmuz'a kadar bütün kitapları $10'a indirmiş. Çok güzel yazılım kitapları var, acele edin: http://goo.gl/fgG41g

Packt Publishing has celebrating its 10th year, so all books are $10 until July 5th. Rush to buy good software engineering and programming ebooks online:) For details visit here: http://goo.gl/fgG41g


Dear my blog readers :) I'm pleased to inform you that Packt Publishing is celebrating its 10 glorious years of publishing books.

To celebrate this huge milestone, from June 26th, Packt is offering all of its eBooks and Videos at just $10 each for 10 days. This promotion covers every title and you and your friends can stock up on as many copies as they like until July 5th.

Go to the PACKT PUBLISHING CELEBRATING 10th YEAR and look up the software engineering and programming books, buy them just at a charge of $10 till the campaign ends. That's a very good opportunity for all of you :)

Seval U.

Monday, May 19, 2014

My Book Review: Extending Symfony2 Web Application Framework

I got the book "Extending Symfony2 Web Application Framework" which is written by Sébastien Armand. The first release of the book is in March 2014, so it is the latest published book about Symfony2 framework (PHP).

I am a PHP developer for 4 years. I am developing not only websites but also server side scripting in PHP. I used a few frameworks of PHP and I created my own MVC framework too. However Symfony2 is the best framework I've ever used.

First of all, I would like to express Symfony2 to new PHP5 developers. Symfony is a high performance PHP framework for developing MVC web applications. M is model, V is view and C is controller. This framework works in efficient way and allows you to develop a website faster, more secure and more scalable. If you understand the basics of Symfony2 before, then you can buy this book.

This book addresses the developers who already know Symfony2 and PHP5 because it helps you to understand the subject deeply. The books offers features for Symfony2.3 or higher and for PHP5.4 and higher. Examples in the book are based on MongoDB but you can convert it to MySQL and PostgreSQL.

It starts to telling about Services and Listeners which are very importand in Symfony2. As a PHP developer, I didn't know services and listeners that much until I read the book. There is a GEO location example. It shows codes and defines classes. If you want to extend the framework, you should know how to create a class and put it in the service and how to create a listener.

After these concepts, the book continues with commands and templates. It shows how to create a command for resizing user images step by step. For extending templates, it extends Twig which is the flexible, fast, and secure template language for PHP. You can create your own custom Twig tags or your own function by extending Twig. Most of developers who use Symfony2 do not extend Twig or they don't know how to do it. You can learn it in an example in this book, however it shows just one form of extending the template. There are a lot of way to extend the template.

In third chapter, there are useful tips about forms in Symfony2. This part is very comprehensive. In fourth chapter, it shows security tips by giving an example of "Simple OAuth with GitHub". I have been already using Firewall structure for Symfony2 but there are more advanced security options in the book.

Lastly "Extending Symfony2 Web Application Framework" gives examples on doctrine. Doctrine has Object Relational Mapper (ORM) for PHP that sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication. In the book, there are methods to extend doctrine and entities.

With all this, you will be fully equipped to create any type of extension in Symfony. In the last chapter, it shows how to reuse and share your custom extensions. The examples in the book are sufficient to learn. I benefitted from this book very much. I really recommend book of  "Extending Symfony2 Web Application Framework" to people wanting to learn and use Symfony2 deeply in their projects.

Seval U. / Software Engineer in Turkey

Book Details

Extending Symfony2 Web Application Framework
Publisher : Packt Publishing
Author : Sébastien Armand
Language : English
Paperback : 140 pages [ 235mm x 191mm ]
Release Date : March 2014
ISBN : 1783287195
ISBN 13 : 9781783287192
Topics and Technologies : All Books, Web Development, Open Source

***

Monday, May 12, 2014

Bilgisayar Mühendisliği Bir Uzmanlık Alanıdır.

Kaynak: http://www.harunozer.net/2011/10/bilgisayar-muhendisleri-odas-bu-sefer.html

Diyelim ki bilgisayar mühendisliğinden mezun oldun ve bir yerlere başvurdun. Sonra mülakata gidiyosun, sana kafan çalışıyor mu gerçekten diye saçma sapan sorular soruyolar. Mühendislikle hiç alakası olmayan sorular. Misal işi gerçekten yapmak istiyor musun, çalışma azmin var mı, umutların var mı, mutlu bir insan mısın vs. Çünkü seni işe alıp var olan mutluluğunu ve umudunu sömürecekler.

Çünkü bu sektörde sana ihtiyaçları yok. Senin bilgine kültürüne ihtiyaçları yok. Onlar sadece basit ve mutlu yazılımcılar arıyorlar.

Türkiye'de gerçek bir bilgisayar mühendisi arayan firma yok mu? Bana Merkez Bankası gibi geldi. (Referans ve torpilleri saymazsak)

Merkez bankasının uzman yardımcılığı sınavında sorduğu soruları gördüm, çok hoşuma gitti. Adamlar bir yazılımcı değil gerçek bir mühendis arıyorlar. İşletim sistemlerini, ağ yapısını ve güvenliğini, algoritmaları, veri tabanını, yazılım mühendisliğini, testleri ve C programlama dilini sormuşlar. Soruların bir çoğuna mezuniyetimin üzerinden 3 yıl geçmesine rağmen cevap verebildiğim için mutluyum. Üzerinden bir kaç yıl daha geçerse hepsini unutacağıma da eminim. Soracaksınız şimdi neden başvurmuyorsun Merkez Bankasına diye. KPSS ve referans istedikleri için, kim gircek KPSS'ye. Hem babamın tek bir referansı var o da mahallenin muhtarı.

Demem o ki; Merkez Bankasının Bilgisayar Uzman Yardımcılığı soruları gerçekten seçiciydi. Yani bir uzmanlık gerektiriyordu. Nasıl ki ben bir ekonomi uzmanının sınavına bakınca tek bir cümle dahi anlamıyorsam, onlar da bizim sınavımıza bakınca hiçbir şey anlamayacaklar. Çünkü bu işin okulunu okuyanların yapabileceği türden bir sınavdı.

Üniversitede bize eşşek yüküyle ders veriyorlardı, ve bu derslerden çalışan da geçiyordu, çalışmayan da. İşte karşımıza özel sektörde bu tarz sınavlar çıkmadığı için, şimdi hem derslere çalışmayan adamlarla hem de mühendislik okumayanlarla aynı yerde aynı işi yaparak çalışıyoruz. Yani hiçbir farkımız kalmıyor diğerlerinden. Peki neden öğrendik onca şeyi? "Bilmemiz gerektiği için" mi? Peki bilmeyenler? Onlar da benimle aynı yerde çalışıyor, aynı maaşı (hatta bazen daha fazlasını) alıyor. Sorsan senden benden uzman olduklarını da iddia ederler.

Yani mürekkep yalayarak mühendislik okuduk ama kimseden bir farkımız kalmadı. Kendinize o kadar güveniyorsanız bir de siz çözün Merkez Bankasının Bilgisayar Uzman Yardımcılığı sınav sorularını.

Bizim bir odamız bile var:) Kapı gibi Bilgisayar Mühendisleri Odası. Facebook'ta sayfamız bile var:P İsmi de kapak olsun size "Mühendisiz olm biz."

***

Tuesday, May 6, 2014

Java EE Öğrenmeye Nasıl Başlanır?


Merhaba arkadaşlaaaar. Ben şimdi sizlere doğal java öğrenmek nasıl yapılır onu göstericem. Doğal bir şekilde. Doğal bir şekilde karşınızdayım :) Şööyle bir başlayalım isterseniz. Aypedden yazıyorum. Hd okumayı sakın ama sakın unutmayın. Hd güzel görünmek istiyorum. Ipad'den yazıyorum, o yüzden. (Espiriyi anlamayanlar için bkz: Doğal makyaj nasıl yapılır)

Önce bir blog açılır :) Bu önemli. Bence kurulum aşamasını yapmakla başlayın ve aşama aşama ekran görüntülerini alarak blogunuzda paylaşın.

Misal yeni bir mysql veritabanı yaratacaksınız, ve bunu konsoldan yapacaksınız. Blogunuzda bunun komutları var diyelim, açar ve oradan kopyala yapıştır yaparsınız.

O yüzden adım adım her yaptığınızı not edin derim. Çok faydasını göreceksiniz.

Diyelim ki Java öğrenmek istiyorsunuz. İlk kurulum için size kurmanızı söyleceğim şeyler: Ubuntu 13, jdk, Eclipse standart edition. (Kesinlikle Paris'ten 07 numara)

Önce konsol uygulaması yazarak başlayın. Mesela Bubble Sort yapan bir konsol uygulaması geliştirin. Kullanıcıdan 10 tane sayı alacaksınız ve bu sayıları Bubble Sort yaparak sıralayıp sonucu konsola basacaksınız. Bunu mutlaka deneyin, bu çok önemli :)

İkinci olarak bu uygulamayı masaüstünde çalışan bir uygulama olarak geliştirin. Bu konuda Eclipse ile arayüz nasıl geliştirilir araştırmanız lazım. Swing gibi bir arayüz kütüphanesi denersiniz. Kullanıcı ekrandaki 10 kutucuğa 10 tane sayı yazar ve "Sırala" isimli butona tıklayarak bu sayıların sıralanmasını ister. Kullanıcı gerçekten sayı girmiş mi kontrol edip hata mesajı attırmanız lazım. Eğer gerçekten 10 tane sayı girmiş ise bunları sıralayıp ekrana sonucu basarsınız.

Son aşamada ise aynı şeyi bir web sitesi olarak geliştirin. Bunun için JSF framework'ünü deneyin. Yine sayfada 10 tane input kutucuğu olur, bunların içine kullanıcı sayıları girer. Bir tane de "Sırala" butonu olur. Butona tıklayınca sonuç sayfası açılır ve bu sayfada sayılar sıralanmış bir şekilde listelenir.

Java EE'den önce HMTL, CSS ve PHP5 öğrenin.
İkinci aşamada bir sitede veritabanı işlemleri nasıl güvenilir yapılır, bir site nasıl daha hızlı geliştirilir ve nasıl daha hızlı çalışır onu öğrenin. Son aşamada ilk defa bir framework kullanmayı öğrenin. Mesela şimdi Symfony2 kullanabilirsiniz.

Web framework mantığını, web ile ilgili önceden hiçbir şey yapmamış olanlar bilemez. Mesela birçok bilgisayar mühendisi html ve css yazmayı bilmiyorlar. Bunu sadece Türkiye için söylemiyorum, yurtdışında da durum böyle. Çünkü bu kişiler web ile ilgili işler yapmıyorlar. Embedded olabilir, mobil uygulama olabilir, backend sistem olabilir, veya masaüstü uygulaması olabilir. Bazıları da işin temelini öğrenmeden web geliştiricisi olmuş, bu yüzden framework kullanmayı öğrenmiş ama en ufak bir kod değişikliği yapamıyorlar. Mesela ekranda otomatik liste oluşturan bir kütüphane kullanıyorlar, ama o listede bir satırın daha geniş olmasını veya text-wrap yapılmasını istediğimde kodlarda bunu bulup değiştiremiyorlar. İyi bir geliştirici olmak istiyorsanız bottom-to-up ilerlemeniz lazım, up-to-bottom yapmaya çalışırsanız böyle en ufak bir CSS değişikliğini yapamayacak kadar aciz kalırsınız. (Bu çok önemli.)

Bir internet uygulaması geliştiricisi olmak istiyorsanız bu işi sevmeniz lazım. Yani html ve css ile bir site nasıl yazılır bilmeniz lazım. Bir sitenin arkaplanını yazmadan önce ortaya görüntüsünü çıkarmalısınız. Frontend developer olun veya olmayın! Bunu bilmek zorundasınız. Daha önceden çalıştığım bir firmada kendisini iyi developer zanneden bir arkadaş, ben backend developer'ım diyordu ve yazdığı bir html'de bütün listeleri şu şekilde oluşturmuştu:

<li>
<ul>listedeki birinci item</ul>
<ul>test12</ul>
</li>

Bunu gördükten sonra kendisine "html dersleri" diye bir eposta yolladım. Tabii ki çok bozuldu. Çünkü ul'nin unordered list, li'nin ise list item demek olduğunu bilmiyordu. Olması gerekenden tam tersi yazmıştı. Böyle komik duruma düşmeyi kim ister ki?

Butonlarını, input kutucuklarını vs. doğru bir şekilde yazın. Nasıl doğru yazılır öğrenin. Bir form dahi oluşturamayacaksanız hiç internet işine girmeyin.

Youtube'dan da aşama aşama anlatan videolar izleyebilirsiniz. Video izlemek çok öğretici oluyor. Video'daki her bir adımı durdurup kendiniz de yapın.

Yaa bu arada kirpiklerim çok uzun olduğu için ben pek tercih etmiyorum bunu. 07 numara paris marka olmazsa kesinlikle olmaz. Ayyy ordan aynı takma kirpik takmışım gibi gözüküyor değil mi, kirpiklerim çok uzun olduğu için :))) Asla kullanmam takma kirpik. Asla. Sivilceleri de patlatmak yüzde iz bırakıyormuş. O yüzden şimdi biz küçükken patlatmayalım. Umarım eyç di izlemişsinizdir. Bir sonraki HD yazımda görüşmek üzere.

Umarım size ışık tutabilmişimdir :)

***

Wednesday, April 30, 2014

First JSF Application in NetBeans and GlassFish

We are going to creare our first JSF (JavaServer Faces) application on NetBeans and GlassFish Server. I am going to tell my steps. I am using Ubuntu 13.10 64 bit, so I am going to tell you how to setup JSF development environment on it.

In my computer Java Development Kit (JDK 7) is already installed, so I am passing this step. Lets continue with downloading NetBeans.

Go to https://netbeans.org/ , click "Download" link and choose best NetBeans IDE type for your computer.

You should downlod NetBeans for Java EE, or NetBeans which includes All packages.
You have to download NetBeans for JavaEE or ALL from https://netbeans.org/downloads/
Then it is going to download an installation file which has sh extension. I downloaded NetBeans 8.0 All  package (203 MB) for now. You should go to the folder which you downloaded the NetBeans installation file. Then you should make the installation file executable, after that you can run it. Here are the two commands:

chmod +x netbeans-8.0-linux.sh
./netbeans-8.0-linux.sh

To run the installer file, use: ./installer-file-name

During installation, in the welcome page, you have to click "Customize"

1. Click Customize.
2. In the Customize Installation dialog box, make your selections. Select all.
3. Click OK.

After installation, you can open NetBeans from the menu. You are going to see a welcome page. Close the welcome page.

From the menu, click Tools -> Servers.

Click "Add Server..." button. Choose "GlassFish Server", click Next.

Confirm the "Terms and Conditions", then click "Download Now..." button.

Intalling the GlashFish server on NetBeans IDE 8.0
Choose GlassFish Server 4.0 (97.4 MB), and start the downloading. After downloading has finished, you can click Next and Finish. I am not changing the domain name or other parameters. Leave them as original.

Capiche?

You are going to see your server on the Servers window.

Tools->Servers window in NetBeans.
Now you should download some plugins. Go to menu Tools->Plugins.

Be sure this plugin is already installed:
- Java Web and EE

NetBeans IDE 8 - Plugins window: Java Web and EE

"Java Web and EE" plugin actually includes these important plugins inside:
- Java Web Applications
- JSF

In the old version of NetBeans, we were installing both one by one, but now it is not needed.

If you don't have "Java Web and EE" plugin, you can install it by using the "Available Plugins" tab in the "Plugins" window.

Create your first JSF project

Go to NetBeans menu, click File -> New Project -> Java Web.

You should choose "Web Application" from the Projects window box. Click Next.
Open New JSF Project in NetBeans
Name your application or just leave it as WebApplication1. Click Next.

In NetBeans, New JSF Project name
You can choose your Server and Java version in next window. I am choosing GlashFish Server 4 as server and Java EE 7 Web as Java EE Version. Context Path is the address which you use in browser. It can stay as original. I didn't change it for now. Now you can click Next.

In NetBeans, choose your server and Java version for your new JSF project.
In the next window, you will face with some frameworks. Just choose "JavaServer Faces". Then you can click "Finish" button.

In NetBeans, you have to choose your framework while creating your JSF project.
After finishing the creation of your new JSF project, you will see the project on the screen. You can click the project name in the Project Navigator box to see the what is in it.

New JavaServer Faces (JSF) Project - first look
Let me explain the files briefly:

index.xhtml is the file where you are going to write JavaServer Faces code.

web.xml is the file where you can configure your project.

You can see the content of web.xml in the following screenshot. You can duble-click the file and open it. It is just an xml file.

JavaServer Faces web.xml file
Do you see the "welcome-file-list" tag? The project will open the faces/index.xhtml file first. You are saying the system "that file is my first file, open it" in this "welcome-file-list" tag. You can change it if you want.

<welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

In the input.xhtml file, you will see some html tags are not familiar. The ordinary html tags are <html> and <title> , the other ones which starts with <h: is real JavaServer Faces tags, e.g. <head>, <body>

Now lets run our first dummy application :)

Close web.xml file. Click index.xhtml so that it will be opened and selected in the screen. Then click "Run" button from the NetBeans menu.

Run your first JSF application
It will open your default browser automatically. You will see the first page which is index.xhtml.

First Page of JSF project
Congratulations! You are done well :)

You can see some other helpful posts in the web to improve your first project JSF project. Maybe I can write more in other posts and give a reference link here.

***

Sunday, April 27, 2014

Woman Developers Days - 03 May 2014 / Denizli TURKEY

Woman Developers Day, Pamukkale Üniversitesi Özgür Yazılım Topluluğu tarafından bu isimde ilk kez gerçekleşecek.

Sektörde başarısını kanıtlamış kadın yazılımcıları çiçeği burnunda yazılımcı adaylarıyla buluşturacak bu etkinlik 3 Mayıs 2014 tarihinde Pamukkale Üniversitesi’nde düzenlenecek. Bir gün sürecek etkinlik boyunca bilgisayar ve programlama dünyasının çeşitli konuları kadın yazılımcılar tarafından anlatılacak. Bu etkinlik özellikle kadın yazılımcıları hedeflemesi itibariyle farklı bir bakış açısı olarak dikkat çekiyor. Türkiye'de kadın yazılımcı sayısının düşük olması herkes tarafından bilinen bir gerçek. Amerika ve Avrupa gibi kıtalardaki gelişmiş ülkelerde ise kadın yazılımcı oranı Türkiye'ye göre çok yüksek. Hatta bu ülkelerde kadın yazılımcılar örgütleniyor, topluluk ve dernekler kuruyorlar, böylece birbirlerini destekleyerek ekosistemi büyütüyorlar. Türkiye'nin daha fazla kadın yazılımcı ihtiyacı olduğunu biliyoruz. Denizli'deki bu etkinlik, sektörün aslında kadınlar tarafından da başarıyla yapılabileceğini kanıtlar nitelikte.

Programı açıklanan etkinlikte Türkiye'nin çeşitli yerlerinden başarılı bilgisayar mühendisi kadınlar konuşmacı olacaklar. Detaylı program aşağıdaki gibidir.


Etkinlikte konular PostgreSQL, CSS, CSS3, Java, Django, Ruby on Rails, PHP ve Android olacak ve birbirinden hareketli 5 atölyede uygulama yapılacak. Etkinlik boyunca atölye ve oturumlara katılanlar arasında yapılacak çekilişle sürpriz hediyeler verilecek. Ayrıca katılımcılara orjinal Woman Developers Day ürünleri ve tişörtleri hediye edilecek. Stand alanlarında robotik uygulamalar ve birbirinden farklı etkinlikler yer alacak.

Bu etkinlikte Bilgisayar Mühendisi olarak JavaEE konularında sunum yapacağım. Gelebilecek herkesi seminerime beklerim:)

3 Mayıs 2014 Cumartesi günü Pamukkale Üniversitesi Kınıklı Kampüsü’nde gerçekleşecek etkinliğe katılmak için Eventbrite adresinden kayıt olabilirsiniz.

Etkinlik detaylarına ulaşmak için http://womandevelopersday.org/ sitesini ziyaret edebilirsiniz.

Woman Developers Day - 3 Mayıs 2014 - Denizli, TURKEY
***

Sunday, April 13, 2014

Her yerde biten yorumcular


Sektörde bir yerlere gelmek için her yolu mübah sayan bir kesim vardı. Sonra bunlar kendi kınadıkları iş yerlerine girip en alt kademe elemanı oldular, böylece artık development bile yapmıyorlar. Ama bu kişiler eskiden beri rakiplerinin işlerine sitelerine abuk subuk saldırılar düzenlerlerdi, orda burda kötülemekle uğraşırlardı. Sanki kendileri en kral developer en kral yazılımcıydı! Bakıyorum hala kendini beğenmiş üsluplarından hiçbir şey kaybetmemişler. Gelmişler hala Türkiye'de yapılan en güzel girişimcilik örneklerinin hepsine tek tek yorum bırakıyorlar. Nerede güzel bir girişimcilik yazısı okusam hemen altında bit gibi türüyorlar. Kendileri sabit ve sıkıcı bir hayat sürdükleri için başkaları da onlar gibi olsun, pes etsin istiyorlar. Yardıracak konu çok nasılsa, bir giriyorlar adamların iş modelinden, rss'sinin özet göstermemesinden ya da page rank'inden. Adamlar çalışıyor geliştiriyor sonuçta. Yeni bir ufuk açmaya çalışıyorlar. Bu sığ fikirli sabit gelirli arkadaşlar da gelip uzmanmış gibi saçma sapan yorum bırakıyorlar. Kendi penceresi kapalı olanlar, penceresi açık kişilere hem kızar hem de onları kıskanırmış. Başka ne diyeyim.

***
Related Posts Plugin for WordPress, Blogger...