Monday, February 2, 2015

Neden Nesnesel Yazılım?

Ocak 15, 1990: AT&T telefon şirketinin şehir-dışı arama servisi 8 saat boyunca devre dışı kalır; sebebi C ile yazılmış arama programında yanlış konulmuş bir ‘break’ komutu.

Haziran 4, 1996: İlk Ariane 5 uydusu fırlatma esnasında patlar; sebebi yazılımda 64-bitlik bir sayıyı, 16-bite çevirme sırasında hatanın doğru yakalanamaması.

Haziran 8, 2001: NYSE Borsasında elektronik hisse senedi alım-satım yazılımında yapılan bir değişiklik, seansın 1 saatten fazla kapanmasına neden olur.

18 Ocak 2004: Mars’a yollanan robotlar (rowers), flash diske yazılan resim dosyalarının sayısı kontrol edilmediği için, bir süre sonra dolar ve kullanılamaz hale gelir (milyar dolarlık proje)

Büyük yazılım uygulamaları hiçbir zaman %100 hatadan arındırılamaz (buggy software is the norm).

Yazılım geliştirme projeleri (çoğunlukla):

  • İş yoğun (labor intensive)
  • Bütçesinin üzerinde (over budget)
  • Öngörülen tamamlama zamanını geçmiş (behind schedule)

Sonuç olarak, nesnesel yazılım metodolojisi bu problemlere bir çözüm olarak geliştirilmiştir.

Tuesday, January 6, 2015

SEO Tips by Seval U.

Don't spent a lot of money for Search Engine Optimization. Here are easy tips...

1. We should keep META-Description length under 160 characters. Search engines does not read after this length.

2. If text to code ratio of the main page is around %15, this is too low. We may consider removing some of the scripts if they are not in use in the main page.

3. Lets say we have 18 external links. We should keep them around 3 if we can. External links lowers reputation of the websites for search engines.

4. Having keywords is good but if the page does not have the keywords in META-Keyword tag, search engines thinks we are spamming. We should remove unused keywords from the META. Also we shouldn’t use more than 20 keywords anytime.

5. We have some broken links they are bad for SEO also. We can check them online using this tool

6. One of the important thing for SEO is back links. Right now we don’t have much back links. We need to establish high quality back links to get better SEO results. I have this tool to start back linking but we need to consider adding web site to globally recognized directories like DMOZ, Yahoo, etc. also this article is very useful on this purpose

7. Social media integration is another key point. Right now search engines don’t know our social accounts. google+ is a good starting point. We may add our website as a local business on map. This will help google to index website much faster. I think we should have twitter, linkedIn, facebook and google+ accounts to start.

8.We should check W3C validity of the Html. We can check this here

9. Add google analytics code into your website and analyze web site there to see if we have missed any other points.

10. For the site links, best practice is, if the target url is in our domain we should not use _blank. If the target url is in a different domain we should use _blank.

11. Bundling helps us to compress and minified js and css files into a single file for saving bandwidth and number of requests to load page. Inline scripts are important for SEO since search engines only reads first 100K of your web site. If we have inline scripts in the page, search engines will read these scripts instead of actual page content. We can also include having too many js or css links in the page to this problem. So bundling will help us for SEO purpose as well. Having a clean html is important as having a clean page layout. You can call it is occupational habit but I like to check html source of company web sites that I like to work with. Some of them are very clean and organized. They even hides messages in html like “Thank you for checking our source codes. We tried to keep everything clean and neat. Hope you enjoy!” In Wordpress there is a plugin called Js & Css Optimizer. You can combine and minify suitable css and js files using that plugin.

12. Create a sitemap.xml and submit it to Google with Google Web Master Tools. There is this site to generate sitemaps if we need to I used this all the time and had good results.

13. Robots.txt is so important for search engines. If you are using Wordpress, here is the best robots.txt file:


User-agent: *
# disallow all files in these directories
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /archives/
Disallow: /*?*
Disallow: *?replytocom
Disallow: /wp-*
Disallow: /author
Disallow: /comments/feed/
User-agent: Mediapartners-Google*
Allow: /

User-agent: Googlebot-Image
Allow: /wp-content/uploads/

User-agent: Adsbot-Google
Allow: /

User-agent: Googlebot-Mobile
Allow: /

14. Before uploading a new image:

* Rename it with keywords. E.g: crm-salesforce-secure-ImageName.jpg

* Check it's size. Better less than 100 KB.

15. When adding a new image into a page:

* Please add "Alt" attribute to all images. It should be meaningful. You can copy&paste the image name for image "Alt" attribute. "Alt" attribute is important for search engines.

* You can add "Link Title", it should be meaningful too. But that is not as important as "Alt" attribute.

* You can add link to the images. The image link will be the same as image URL. (This enables Google will index our images and they will be searchable on Google Image Search). Link target can be "_blank" which means image is going to be opened in a new browser tab. If we use a lightbox plugin, we don't add target attiribute.

16. When adding a URL:

* If the url is not in our host, you can give it like "Open link in a new window tab". (This can be done using target="_blank" attribute in html) In this way, our website will not closed, so user can return our website easily with browser tab.

* Links should be meaningful. "visit this" is not proper, but "visit crm".

17. Writing a Text:

* Please use bold for key words. For example "crm" and "Salesforce" should be bold. Emphasized words are indexed in Google as a keyword.

* Please use meaningful titles.

* Use keywords in the first paragraph (especially in first sentence) and last paragraph. Use keywords like crm, secure, salesforce etc.

18. SEO Analysis & Reports

Keyword Density (
Code To Text Ratio (
Link Analyze (

Keyword Position Checker (
Back Link Checker (
Page Rank Checker (

Seval U. / January 2014 / Ankara Turkey 

Wednesday, October 22, 2014

National Cyber Security Awareness Month (NCSAM)

I have good news for you. I've got an email from SingleHop company. In this email, they indicated that October is National Cyber Security Awareness Month (NCSAM). So I decided to write this post which is about cyber security :)

It is a small Internet.

The first thing you should consider is that Internet is not too big as you think. Most of us think that we are just a little point in a huge Internet ocean, so nobody would notice us. That is incorrect. Hackers use automated systems to search unsecured computers. They can detect you in a few minutes. Really.

Everything is worthy!

Secondly, you may think there is not any valuable thing in your computer but you are wrong. When you use Internet, you can enter your passwords to login the websites. Sometimes you can enter bank account with your login credentials. You can buy some products online with your credit card info. This information is not only stored on your computer, but also passes a lot of computers during transaction. Hackers can reach your passwords easily by using network tracking programs. In addition to this, the documents you saved in your computer include metadata which consists of your personal information. Hackers can steal your identity from that metadata. All the documents you have are valuable.

By the way, let me tell you something about your passwords. Do not set same password for all websites and tools. Always use different passwords. Use upper case, lower case, numbers and different characters (e.g. #$%&?*+) to make your password stronger. I personally set my passwords with more than 10 characters in order to make difficult to determine with password crackers.

Do not trust antivirus programs.

The third thing is that you should not believe your antivirus software in any case. It can not protect you always. You have to update your antivirus software and your operating system regularly. You better put a firewall to your computer. Security softwares are a must especially in Windows. However these precautions are for known threats, not for the new viruses. Keep them up-to-date!

Did you delete them for real?

The last but not least thing is that your files are never deleted from your computer when you delete them. I know this is complex but it is true. The files are stored in your harddrive separately. When you delete a file, it only deletes it's header, not it's body. Even if you click "shift delete" or even if you click "empty recycle bin". All files still can be reachable. Moreover, when you delete something from social media, they are not actually deleted. All social media websites store everything on big databases, similar to the dedicated servers that SingleHop offers (but sometimes less secure). They also keep a copy of all things.

Happy National Cyber Security Awareness Month :)


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



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:

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:

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 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 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 web address. I downloaded file, because I am using Windows XP x86 right now.

Unzip the distribution archive, i.e. 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 web address. I downloaded

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 -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 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

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:

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 -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:


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

mvn package
java -cp target\myapp-1.0-SNAPSHOT.jar


Related Posts Plugin for WordPress, Blogger...