Monday, September 29, 2014

Is Turkey Ready to Silicon Valley?

Silicon Valley is not a geographic region in fact. The term “Silicon Valley” is practically synonymous with “tech startup” because startups are the business of Silicon Valley, and entrepreneurs are the output [1]. Thus, we cannot say that a place with high-tech buildings and skilled workers is a Silicon Valley.

There is just one region in the world which has real Silicon Valley, and this region is at San Francisco Bay Area. (Novadays, the Silicon Valley is no longer about startups; it's about scale-ups [2], but that's another story.)

The name of Silicon Valley comes from the chemical element "Si" of atomic number 14. Silicon can be used in making electronic circuits.

The term originally referred to the region's large number of silicon chip innovators and manufacturers, but eventually came to refer to all high-tech businesses in San Francisco Bay Area, and is now generally used as a metonym for the American high-technology economic sector.[3]

As a software engineer in Turkey, I can say that we don't have any Silicon Valley in Turkey, yet "building a Silicon Valley in Turkey" is a dream for many years.

Firstly let me explain the correct term for Silicon. In Turkish language, silicon and silicone pronounce same like "Silikon". Turkish people think that silicon and silicone are the same products but it is wrong. Silicone is one type of synthetic materials used to make rubber, plastics, breast implant etc. So it is totaly different from silicon.

We may say "silisyum" instead of "silikon" for an equivalent Turkish word to "silicon". However "Silikon Vadisi" is a term for "Silicon Valley" in Turkish and the community has accepted it already. Not many people know the difference of "silicon" and "silicone". This confusion creates wrong understanding in Turkish community.

Anyways, let's continue to explain root of Silicon Valley... Stanford University was opened on October 1, 1891 as a coeducational and non-denominational institution. Following World War II, Provost Frederick Terman supported faculty and graduates' entrepreneurialism to build self-sufficient local industry in what would become known as Silicon Valley.

The spirit which forms Silicon Valley is the harvest of the teams who has developed the technology. With softwares, hardwares and services, every component of the IT sector comes to life in that tiny place, blossoms on earth and sprinkes to all over the world . [4]

Silicon Valles was not founded by American Government. Therefore silicon valley is not a meritocracy. Meritocracy means government or the holding of power by people selected on the basis of their ability.

Turkish Government has tried many times to build a silicon valley but they did in a wrong way each time. Government heads did not understand that Silicon Valley is not a territory. There are some reasons.

A lot of university campuses which have a land for technology companies. We call them like techno-park, cyber-park, techno-center, or techno-city. Whatever we call them, they have the same concept like a few cool buildings and big car park. All these places have many advantages for companies.

First of all, the Turkish Government is not taking taxes from the companies which is located in these campuses. This is done in order to support technology companies, but the companies are now not producing high technology. They are using the buildings in university campuses just not to give taxes.

Secondly, the Turkish Government provides many funds to the companies which located in universiy campuses. The companies which have no high-tech work get the fund and spend it for their non-high-tech work. They are not only have tax allowance but also get funds from government.

These techno-parks or cyber-parks cause unfair competition among IT companies. It is obvious that Turkish Government has established this unfair competition for itself with it's own hands.

As I've said before, Silicon Valley can not be established with Government support. We can not create it by ourself.

The real Silicon Valley can be created with excited and intelligent young students who is going to found their own high-tech companies. We should support the "start-ups" and "entrepreneurship" environment by giving perfect education.

Aren't we have any high-tech companies in Techno-parks? Yes we have. Turkey have a few big high-tech companies but they are growing very slowly. The environment is not yet proper for correct competition.

To sum up, Turkish entrepreneurs are not happy to live in Turkey because of the IT environment in Turkey. The sector is newly growing and needs to be understood by not only community but also government.

Seval U. / 29.09.2014 / Ankara

[1] http://techcrunch.com/2014/08/15/why-seattle-is-not-like-silicon-valley/
[2] http://venturebeat.com/2014/08/14/silicon-valley-has-evolved-its-not-about-startups-anymore/
[3] http://en.wikipedia.org/wiki/Silicon_Valley
[4] http://www.mserdark.com/turk-silikon-vadisi-martavallari/

***

Friday, September 26, 2014

All Ebooks and Videos are less than 10 dollars in Packt Publishing

Dear Software Developers,

Good news for you. All e-books and videos are less than $10 for this week.  Thanks to ‪Packt Pub‬ !

Level Up your skills – for the next 7 days ALL ‪‎eBooks‬ and ‪‎Videos‬ are just $10 each or less. Visit here: http://goo.gl/wHGAtG


From September 26th, Packt has launched a special offer to encourage IT professionals to join them in that mission and Level Up their skills – for the next 7 days ALL eBooks and Videos are just $10 each or less. The more EXP customers want to gain, the more they save:

  • Any 1 or 2 eBooks/Videos –$10 each
  • Any 3 to 5 eBooks/Videos – $8 each
  • Any 6 or more eBooks/Videos –$6 each

The offer ends October 2nd and covers Packt’s entire range of eBooks and Videos, making this the perfect opportunity to learn something new, keep up to date, and ultimately become the expert.

To learn more about this, please visit

Level Up!



Are you looking for books about Big Data?

I am thinkin to buy some books and I strongly recommend you to buy them if you are dealing with Big Data:

  • Weka How To
  • Machine Learning with R
  • Learning Data Mining with R
  • Building Machine Learning Systems with Python
  • Learning scikit-learn: Machine Learning with Python
  • Practical Data Analysis
  • Big Data Analysis with R and Hadoop
  • Bioinformatics with R Cookbook


***

Tuesday, September 16, 2014

How To Create A Web Application Project With Maven In ECLiPSE

I've written "Maven Tutorial: How to install Maven and how to configure Maven on eclipse?" document and now we are continuing with creating a web app with Maven in Eclipse. You can also watch online video tutorial: http://www.youtube.com/watch?v=o-Y15VPw5KA

Create a Maven Web Project

One way to create a web app is using command prompt. Open cmd, navigate into your workspace and use this command:

mvn archetype:generate -DgroupId=com.seval -DartifactId=myapp2 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Change the application name(DartifactId) and group id (DgroupId) if you want. I give the name myapp2 because I have a console application which name is myapp. This time I give the name myapp2.

This command will create a web app in your workspace. For me it is C:\workspace\myapp2

Import Maven Web Project into Eclipse

You need an Eclipse for JavaEE developers. Go to https://www.eclipse.org/downloads/ and download  "Eclipse IDE for Java EE Developers". I've downloaded:

Eclipse Java EE IDE for Web Developers.
Version: Luna Release (4.4.0)
Build id: 20140612-0600
  1. Unzip Eclipse and run eclipse.exe file.
  2. From Eclipse menu, File->Import->Maven->Existing Maven Projects. 
  3. Click Next. 
  4. Choose C:\workspace\myapp2 as Root Directory. 
  5. Make selected pom.xml.
  6. Click Finish.

In second way, you can create a Maven Web App project from Eclipse Luna 4.4. Here are the steps.
  1. Go to File->New->Other->Maven->Maven Project. 
  2. Click Next
  3. Unselect "Use Default Workspace" and choose C:\workspace as a workspace.
  4. Click Next.
  5. Select maven-archetype-webapp from the list. It will be Artifact Id.
  6. Click Next.
  7. Fill the blanks with your project details. Mine is:
    1. Group Id: com.seval
    2. Artifact Id: myapp2
  8. Click Finish.
Run Maven Web App in Eclipse

Be sure you selected JDK7 for your project. Because selecting JRE7 cause error. Therefore check it out from Eclipse Package Explorer. Right Click to JRE, then you can change it with JDK7.

To run Eclipse in Tomcat7, be sure you installed Tomcat7 correctly. I downloaded Tomcat-7.0.42 and unziped into C:\apache-tomcat-7.0.42 folder. Open <TOMCAT_HOME>\conf\server.xml and add this line between <Host> tags.

<Context docBase="C:\workspace\myapp2\src\main\webapp" path="/myapp2" reloadable="true"/>

After that go to Eclipse and right click to Project name, select Run As -> Run Configurations...

Right click to Maven Build from left menu, click "New". So create a new configuration by using the following information. In Main tab:
  • Name: mavenRunOnTomcat
  • Base Directory: ${workspace_loc:/myapp2}
  • Goals: tomcat:run
You can click Browse Workspace and select your project. Click Apply and Click Run.

Open your browser, go to http://localhost:8080/myapp2/ web address, you will see "Hello World" message.


Maven Tutorial: How to install Maven and how to configure Maven on eclipse?

Apache Maven, is a software project management tool. The most powerful feature is able to download the project dependency libraries automatically.

Step 1: Install JDK7

As a prerequiste, you have to install JDK7. You can download from http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html under the title "Java SE Development Kit 7u67". I downloaded jdk-7u67-windows-i586.exe because my computer has Windows 32 bit.

I recommend you to install JDK7 in a simple directory. Because space character in path can cause some problems in Windows later.

Therefore I installed JDK7 in C:\apps\jdk7 and I installed JRE in C:\apps\jre7 directory.

Open System Properties->Advanced->Environment Variables. Add JAVA_HOME environment variable. It will be C:\apps\jdk.

Add Java into Path variable. It will be C:\apps\jdk7\bin.

Open a new command prompt (cmd) and run  java -version to verify that it is correctly installed.

Step 2: Install Maven

Download latest package from http://maven.apache.org/download.cgi web address. I downloaded apache-maven-3.2.3-bin.zip file, because I am using Windows XP x86 right now.

Unzip the distribution archive, i.e. apache-maven-3.2.3-bin.zip to the directory you wish to install Maven 3.2.3. I unziped into C:\apps\apache-maven-3.2.3 directory.

Add the M2_HOME environment variable with the value C:\apps\apache-maven-3.2.3.

Add Maven into PAth variable. It will be %M2_HOME%\bin.

Your repository will be C:\Documents and Settings\<UserName>\.m2 directory (;For Windows XP only).

Step 3: Install Eclipse

Download Eclipse IDE for Java Developers from https://www.eclipse.org/downloads/ web address. I downloaded eclipse-java-luna-R-win32.zip.

Unzip Eclipse and click eclipse.exe file to run Eclipse. Create C:\workspace folder and give it to Eclipse as a default workspace.

From Eclipse menu, open Window->Preferences->Maven->Installation. Click "Add..." and click "Directory...", choose C:\apps\maven-3-2-3. Click Ok.
Click Finish. Select new Maven installation and click Apply. Then click Ok.


Step 4: Create a Project from Maven Template

I want to store my project into C:\workspace so open command prompt (cmd) and go to that folder. Here is the command:

cd C:\workspace

Run this command to create a Java project with Maven:

mvn archetype:generate -DgroupId=com.test.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
DartifactId is the project name. You can change it as desired.

After you run this command, the new project will be created in C:\workspace\myapp folder. This directory contains a file named pom.xml. Open pom.xml with Notepad++. This is Maven configuration file for this project.

Open cmd, navigate into new project. Then run this command to convert Maven project to support Eclipse IDE:

mvn eclipse:eclipse

Now import the new Maven project into Eclipse IDE as an Existing Maven Projects.


Step 5: Edit Your Project and Run

Open App.java and add some other functions. We will test our project.


Open cmd, navigate into your project folder. Now we can create Jar file by using Maven. Run this command:

mvn package

Open C:\workspace\myapp\target folder, you will see generated Jar file.

Open cmd and navigate into your project folder. Run this command to run your new project:

java -cp target\myapp-1.0-SNAPSHOT.jar com.test.app.App

You will see "hello world" message.

How to create jar file from Eclipse?

You can also create jar file by using Eclipse. You will see the pom.xml file from Eclipse package explorer window.
- Right click to that pom.xml.
- Run as -> Maven Build
- Write "clean install" into Goals field.
- Click Apply and Run

This process will create myapp-1.0-SNAPSHOT.jar file under target folder.

Step 6: Add Custom Library to Maven

For example, let's add kaptcha libray. Download zip file and unzip it: https://code.google.com/p/kaptcha/downloads/list

1. Copy kaptcha-2.3.2-jdk14.jar file under C drive. So it will be available like C:\kaptcha-2.3.2-jdk14.jar

2. Open cmd and run this command (Your kaptcha version can be different):

mvn install:install-file -Dfile=c:\kaptcha-2.3.2-jdk14.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3.2 -Dpackaging=jar

Now, the “kaptcha” jar is copied to your Maven local repository. The new library will be seen in (In Maven Repository) :  C:\Documents and Settings\<UserName>\.m2\repository\com\google\code\kaptcha

3. Declare the kaptcha coordinate in pom.xml:

<dependency>
      <groupId>com.google.code</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3.2</version>
 </dependency>

4. Edit your project and build like in the Step 5:

mvn package
java -cp target\myapp-1.0-SNAPSHOT.jar com.test.app.App

***

Friday, September 5, 2014

How to install Apache TomEE on a server

To install Apache TomEE on a server:

1. Go to http://tomee.apache.org/download/tomee-1.6.0.html

2. Download Apache TomEE 1.6 webprofile (apache-tomee-webprofile.zip).

3. Extract the zip file to a temporary folder.

4. Copy the TomEE folder to a short path. Example: C:\apache-tomee-webprofile-1.6.0

5. Open \conf\server.xml in a text editor. Place a “3” in front of each port number. 

Example: “8080” becomes “38080”. Changing port numbers will enable you to use TomEE, Tomcat7 and Apache at the same time.

6. If you are installing Tomcat7 and TomEE in the same server, do not set CATALINA_HOME variable in Windows.

7. Check that TomEE installation. 

Run /bin/startup.bat. 

8. Open http://localhost:38080 in a browser. The default Apache TomEE home page will appear.

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

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