Pazar, Aralık 31, 2006

H2 Database Engine

Bir önceki blogumda Thomas Mueller'in Hypersonic SQL olarak temellerini attığı ve daha sonra açık kaynak topluluğu tarafından HSQLDB olarak devam ettirilen java tabanlı bir veritabanından bahsetmiştim.

Bu sefer Thomas Mueller'in HSQLDB'deki tecrübelerini kullanarak belli alanlarda MySql ile bile yarışabileceği H2 adını verdiği yine java tabanlı bir veritabanından bahsedeceğim ama öncelikle Mueller'in H2 ve HSQLDB hakkındaki düşüncelerine bir göz atalım:
H2 1.0 Database by Hypersonic Creator is Out
It makes sense to use H2 whenever you need an embedded database in your Java application. Or if you need a database for regression testing, or to learn SQL or the JDBC API. Or if you need a high-performance database.

There are some architecural problems in HSQLDB that are hard to fix or work around: The opening / closing a database in HSQLDB can be very slow if the database is big, because the whole database is always backed up. HSQLDB doesn't offer any transaction isolation. Some operations on HSQLDB are limited by the memory (result set size, transaction size, BLOB / CLOB size). The current query optimizer of HSQLDB is really bad in my opinion. A lot of the higher level features are not supported (updatable result sets, encrypted database, data compression, computed columns, linear index, hash index, multi-dimensional index, linked table). In my view the source code of H2 is cleaner than that of HSQLDB. But the jar file of H2 is a bit bigger than the one of HSQLDB (1 MB jar file size instead of 600 KB). And for some very simple operations HSQLDB is currently a little bit faster.

Mueller, yukarıda bahsettiği HSQLDB'deki eksikleri de gözönünde bulundurarak aşağıdaki özelliklerde yeni bir open-source veritabanı geliştirmiş. Gerçek liste çok uzun ama ben önemli gördüklerimi burada listeliyorum:

H2 Feature List
Main Features
# Very fast database engine
# Free, with source code
# Written in Java
# Supports standard SQL, JDBC API
# Embedded and Server mode, Clustering support
# Strong security features
# Experimental native version (GCJ) and ODBC drivers

Additional Features
# Disk based or in-memory databases and tables, read-only database support, temporary tables
# Transaction support (serializable transaction isolation), 2-phase-commit
# Multiple connections, table level locking
# Cost based optimizer, using a genetic algorithm for complex queries, zero-administration
# Scrollable and updatable result set support, large result set, external result sorting, functions can return a result set
# Encrypted database (AES or XTEA), SHA-256 password encryption, encryption functions, SSL
# User password authenticated uses SHA-256 and salt
# User passwords are never transmitted in plain text over the network (even when using insecure connections)
# Small footprint (smaller than 1 MB), low memory requirements
# Uses a small number of database files, binary and text storage formats, graceful handling of low disk space situations
# Well tested (high code coverage, randomized stress tests)

SQL Support

# Compatibility modes for HSQLDB, MySQL and PostgreSQL
# Support for multiple schemas, information schema
# Referential integrity / foreign key constraints with cascade, check constraints
# Inner and outer joins, subqueries, read only views and inline views
# Triggers and Java functions / stored procedures
# Many built-in functions, including XML and lossless data compression
# Wide range of data types including large objects (BLOB/CLOB)
# Sequence and autoincrement columns, computed columns (can be used for function based indexes)
# Collation support, Users, Roles

H2'nin HSQLDB ile karşılaştırıldığında ön plana çıkan esas özellikleri aslında Transaction Isolation, Clustering, High Availability, Two Phase Commit gibi gelişmiş konularda yatıyor. Benim açık kaynak tutkunu biri olarak H2'nin en sevdiğim yönü ise dokümantasyonu. Mueller, SQL Grammar, Functions, Data Types, Javadoc JDBC API gibi önemli konularda çok güzel dokümantasyon yapmış.

Tabii ki her yiğidin övündüğü bir özelliği vardır, H2'nin ise bu özellik performans: (low number of concurrent connections & embedded usage)

Operations/second (higher is better) - More information about this test

Ben özellikle geliştirdiğiniz java uygulamalarını müşterilere demo olarak dağıtırken veritabanı ihtiyacınız var ise H2'yi şiddetle tavsiye ederim. H2 hakkında detaylı bilgiye adresinden ulaşabilirsiniz.

Hayırlı bayramlar ve yeni yıllar...

Cumartesi, Aralık 30, 2006


Her programcının uygulama geliştirirken muhakkak ihtiyaç duyduğu yazılımlardan bir tanesi de veritabanıdır. Eğer işyerinde yazılım yapıyorsanız, muhtemelen bir sunucuda yüklü Oracle'ı kullanıyorsunuzdur. Evde yazılım geliştirenler ise daha çok local'lerine yükledikleri MySql veya Postgre veritabanlarını kullanıyorlardır.

Bu yazımda sizlere local'linizde uygulama geliştirirken kullanabileceğiniz veya geliştirdiğiniz uygulamayı kullanıcılara demo amaçlı dağıtırken kullanabileceğiniz basit, hafif, hızlı, yetenekli ve java tabanlı bir veritabanından bahsetmek istiyorum.

HSQLDB; Thomas Mueller'in Hypersonic SQL veritabanı olarak başlattığı, daha sonra 2001 yılında bir topluluk tarafından devam ettirilen ve şu an 380.000 download rakamıyla SourceForge'un Top 50 listesinde bulunan open-source bir veritabanıdır.

HSQLDB'nin en önemli özelliği, java tabanlı olması nedeniyle özel bir kuruluma gerek kalmadan her işletim sisteminde kolayca çalıştırılabilir hale gelmesi. Bu nedenle internet dünyasında veritabanına ihtiyaç duyan çoğu uygulama demo versiyonları içine HSQLDB gömerler ki kullanıcılar hemen uygulamalarını kullanabilsinler. Bu yüzden Tomcat + HSQLDB ikilisi çok yaygın kullanılır:

Connecting JIRA to a database
JIRA Standalone: As part of its installation process, JIRA Standalone automatically installs, configures and connects itself to an HSQLDB database. This is fine for evaluation purposes, but for production installations, you should connect JIRA to an enterprise database. This also lets you take advantage of existing database backup and recovery procedures.

Ayrıca dünyada bir milyondan fazla kullanıcısı bulunan OpenOffice (Microsoft Office'in open-source rakibi), veritabanı olarak 8GB'da kadar veri saklayabilen HSQLDB kullanır.

The product is currently being used as a database and persistence engine in many Open Source Software projects and even in commercial projects and products. In it's current version it is extremely stable and reliable. It is best known for its small size, ability to execute completely in memory, its flexibility and speed.

Bu yazının sonunda ayrıca HSQLDB'nin temel özelliklerini bulabilirsiniz. Daha fazla bilgi için adresine göz atmanız gerekecek. Bu arada Thomas Mueller Hypersonic SQL'i devretmiş ama boş durmamış yine java tabanlı bence çok daha süper veritabanı geliştirmiş. Bir sonraki yazımda ondan bahsedeceğim.

Features Summary
# 100% Java
# A full RDBMS (Relational Database Management System), with the Object capabilities of Java
# Switchable source code to support JDK 1.1.x, 1.2.x, 1.3.x, 1.4.x and above
# Super fast startup and SELECT, INSERT, DELETE and UPDATE operations
# Standard SQL (Structured Query Language) syntax
# Inner and outer joins, SELECT queries as correlations in joins
# Scalar (single value) SELECTS, correlated subqueries including IN, EXISTS, ANY, ALL
# Views, Temp tables and sequences
# Primary key, unique and check constraints on single or multiple columns
# Indexes on single or multiple columns
# COUNT, SUM, MIN, MAX, AVG and statistical aggregate functions (also in expressions and function arguments)
# Full support for SQL expressions such as CASE .. WHEN .. ELSE .. , NULLIF etc.
# SQL standard autoincrement column support plus sequences
# Transaction COMMIT, ROLLBACK and SAVEPOINT support
# Referential Integrity (foreign keys) with full cascading options (delete, update, set null, set default)
# Multiple schemata per database
# Java stored procedures and functions
# Triggers
# Database security with passwords, user rights and roles with GRANT and REVOKE
# Extensive set of ALTER TABLE commands allowing change of column type
# In-memory tables for fastest operation
# Disk based tables for large data sets
# Text tables with external file data sources such as CSV files
# In-memory (like applets), embedded (into Java applications) and Client-Server operating modes
# Three client server protocols: HSQL, HTTP and HSQL-BER - can run as an HTTP web server - all with SSL option
# Can be used in applets, read-only media (CD), inside jars, webstart and embedded applications
# Multiple databases per JVM
# Disk tables (CACHED TABLE) up to 8GB and text tables up to 2GB each
# Size of each string and binary data item only limited by memory
# Full support for PreparedStatement objects to speed up query processing
# 95% JDBC interface support with batch statement and scrollable ResultSet functionality
# All JDBC 1 data types supported, plus 'Object' , Boolean, Blob and Clob
# Full JDBC 2 DatabaseMetaData and ResultSetMetaData support
# Database dump as SQL script with or without data
# Powerful and compact java command line and GUI tools for database management

Pazartesi, Aralık 25, 2006

Wimax : Attractive Economics

Wimax 'in 3G gibi rakiplerine karşı en önemli avantajlarından biri de ekonomik oluşu. Wimax 'i ekonomik yapan en önemli faktörlerinden biri de bant genişliğini ve frekansı çok verimli kullanıyor olması. Bu verim sayesinde Wimax'in, kablosuz iletişim dünyasının en önemli maliyet kalemlerinden bir olan Baz İstasyonu ihtiyacı daha düşüktür. Aşağıdaki tabloda Wimax'in, şartlar aynı tutularak rakibi olan HSPA ve EVDO gibi 3G teknolojilerine göre Baz İstasyonu ihtiyacı gösterilmiştir.

Business Case Impact
From a business case perspective the throughput and spectral efficiency advantages of mobile WiMAX results in fewer base stations to achieve a desired data density. The example in Figure 3 summarizes the number of base stations required to achieve a DL data density of 215 kilobytes per sec per sq-km over a 129 sq-km coverage area. Fewer base stations greatly reduces the network capital costs for a given network capacity and, with lower equipment maintenance costs, results in lower operating expenses as well.

Gördüğünüz gibi Wimax'in 129 kilometre-karelik bir alanı kaplamak için ihtiyaç duyduğu baz istasyonu sayısı 3G' ye göre % 50 daha az. Baz istasyonlarının kira, elektrik (klima + verici) ve bakım maliyetlerinin gayet yüksek olduğunu hatırlatırım.

Ayrıca Wimax açık sistemler üzerine kurulduğu için şu an bir sürü üretici aynı standartlarda Wimax ürünleri üzerinde geliştirmeler ve üretim yapıyor. Wimax baz istasyonlarının üreticilerin çokluğu nedeniyle çok daha ucuz olacağı tahmin ediliyor.

Perşembe, Aralık 21, 2006

What are we looking for in every employee?

Open-source dünyasının en sevdiğim topluluklardan biri de JIRA ve Confluence 'un geliştiricisi olan Atlassian firmasıdır. Atlassian'ın en sevdiğim yönü, geliştirdiği ürünlerinin altyapısında bol bol open-source kullanması ve ürünlerini open-source dünyasına ücretsiz vermesidir.

Geçenlerde Atlassian'ın web sitesini gezerken "Eleman Arıyoruz" linki dikkatimi çekti ve işe alacakları elemanlarda ne tip özellikler aradıklarını merak ettim. İşte size Atlassian'ın çalışanlarından beklentileri.

Get It Done
In employees, Atlassian values aptitude and attitude as well as experience. We value the ability to get things done extremely highly. The right thought is "What can I do next?", the wrong one is "There's nothing for me to do."

Think Like An Engineer
We value an engineering mindset in all employees, in all departments. Engineers solve problems and constantly seek to improve processes. No process we have is set in stone. We want you to always be looking for ways to make things more efficient.

Be David, Not Goliath.
We are a small, nimble company in which change and progress are a constant. We compete and beat the biggest software companies on the planet daily. This should excite you, not scare you.

There's No I In Culture
Our company is based around small, dynamic teams. You should work well with others, treat teamwork and team achievement as the end goal and be a good cultural fit with the whole company.

You Are Our Ambassador
On a personal level you should have good written and oral communication skills. Every employee is a spokesperson for the company at all times. As an internet-focussed company, experience with large volumes of email communication is always useful.

Sizi bilmem ama ben bir çıktısını alıp masamda gözümün önünde bir yere yapıştıracağım.

Salı, Aralık 19, 2006

Jar Finder

J2EE uygulama geliştiricilerin en çok yaşadığı problemlerden biri de class uyuşmazlıklarıdır. Özellikle uygulamalarınızda çok fazla open-source library var ise veya uygulamanızın çalıştığı Uygulama Sunucusundaki tüm uygulamalar jar dosyalarını global classpath'e tanımlatıyorsa daha fazla yaşanır.

Class uyuşmazlıklarının en büyük nedeni classpath'de aynı class'ın birden çok farklı versiyonunun bulunmasıdır. JVM classpath'te aynı class'tan 2 tane bulunmasına kızmaz. Önce hangisini yükledi ise onu kullanır diğerini es geçer ve bu konuda da bir hata veya uyarı mesajı atmaz. JVM'in ve Uygulama Sunucularının Class yüklerken kullandığı bir hiyerarşi ve mantık vardır. Bu konuda en güzel bilgiyi Weblogic Server Application Classloading dokümanında bulabilirsiniz.

Aynı classpath'te farklı versiyondaki classlar yüzünde uygulamalarınız garip davranışlar gösterebilir ve siz de sorun nerde diye arar durursunuz. İşte bu durumdan şüphelendiğiniz an yapmanız gereken class'ınızın hangi jar'dan yüklendiğini bulmak. Bunun için yapmanız gereken aşağıdaki jsp'yi class'ınızı çağırdığınız ear/war içine koyup deploy etmek ve çalıştırmak.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Determining from Where a Class Was Loaded</title></head>
<form method=get>Please enter fully qualified class name (e.g. oracle.jdbc.driver.OracleDriver )<br>
<b> ClassName : </b> <input name="className" maxlength=255 size=40 value="" type=text> <input type=submit value=Find>
String className = request.getParameter("className");
if(className != null) {
Class clazz = Class.forName(className); pDomain = clazz.getProtectionDomain(); cSource = pDomain.getCodeSource(); loc = cSource.getLocation();

String result = loc.getFile();

out.println("<b>Path : "+result+"</b>");
}catch (Throwable e)

Bu jsp size class'ınızın hangi jar dosyasından yüklendiğini tam olarak gösterecektir. Eğer benim sorunum bir class'tan 2 tane olması değil hiç olmaması diyorsanız ve "Class Not Found" hatası veren class'ın hangi jar'a jar'a ait olduğunu bulmak istiyorsanız o zaman 'a başvuracaksınız:
Our database currently contains over 250,000 classes from java projects such as apache, spring, jboss and many more. If you know of a library that we don't currently index please see our help section for details of how to add it to the database.

Pazar, Aralık 17, 2006

Wimax : Superior Performance

Bir önceki Wimax ile ilgili blog 'umda Wimax teknolojisinin güçlü yanlarına değinmiş fakat detaylara girmemiştim. Sanırım artık eteğimizdekileri dökme vakti geldi :) Fakat teknik detaylara girmeden evvel birazdan bahsi geçecek bazı kısaltmalar ve terimler hakkında kısaca bilgi vermek istiyorum.

EVDO, HSDPA ve HSPA gibi terimler 3G teknolojisine ait standartlardır. (GSM'in 2G, Wimax'in ise bir 4G standardı olması gibi)
MIMO (Multiple Input Multiple Output) ve SIMO (Single Input Multiple Output) ise Wimax'e ait anten teknolojilerini ifade eder.

Bu kısa bilgilerden sonra Wimax 'i, 3G ile karşılaştırarak bir performansına göz atalım:

Yukarıdaki grafikte görüldüğü gibi şartlar aynı tutularak yapılan testlerde Wimax'ın sağladığı band genişliği 14Mbps'e kadar çıkarken, 3G ise 5Mbps seviyelerinde. Wimax'in bu üstünlüğü aslında OFDMA teknolojisinde yatıyor:

The advanced performance of mobile WiMAX is largely tied to its use of Orthogonal Frequency Division Multiple Access (OFDMA), a multiplexing technique well suited to multipath environments that gives network operators higher throughput and capacity, great flexibility in managing spectrum resources, and improved indoor coverage (Figure 3).

WiMAX performance is further enhanced by the use of Time Division Duplex (TDD), but it can also support Frequency Division Duplex (FDD) which dominates in 3G networks. Whereas FDD keeps the uplink and the downlink channels separate in frequency, TDD is a less complex, more efficient mechanism that uses a single frequency channel, with uplink and downlink traffic separated by a guard time.

"Bize laboratuar ortamında yapılan testler değil, gerçek hayattan örnekler lazım" diyenlere cevabım, Wimax teknolojisine en fazla yatırım yapan Samsung'a ait bir çalışmanın sonuçları olacak:

Samsung 4G Teknolojilerini Açıkladı
Samsung Electronics kısa bir süre önce gerçekleşen Samsung 4G Forum 2006 etkinliği çerçevesinde, 4G'ye yönelik teknolojisini tanıtmak için deneme amaçlı bir gösteri gerçekleştirdi. Samsung, ayrıca dünyanın ilk aktarma (handover) teknolojisini de tanıttı. Bu teknoloji 100 Mbps'lik süper hızlı mobil iletişimi saatte 60 km hızla giden bir araç içerisinde dahi kesintisiz kılıyor.

Gelişmiş bir kablosuz iletişim teknolojisi olan 4G, sabit mekanlarda 1 Gbps, hareket halindeyse 100 Mbps düzeyinde veri aktarım hızlarına erişebiliyor. 1 Gbps'lik hızla, 100 MP3 dosyasını (yaklaşık 300 MB) 2,4 saniyede, bir film CD'sini (800 MB) 5,6 saniyede veya 20 dakikalık bir HDTV yayını 12,5 saniyede aktarılabiliyor.

Wimax Strengths

Bazılarımızın aklına "Lisanslar çıktığında, hangi firmalar bu Wimax hizmetini verebilecek" diye bir soru gelebilir. Aslında yavaş yavaş Wimax hizmetini verebilecekler ortaya çıkmaya başladı:

Smile ADSL ile kullanıcılarına Türk Telekom'dan farklı hizmetler vermeyi hedeflediklerini bildiren Demir, abonelerin evlerindeki mevcut kullanıcı adı ve şifreleri ile Türkiye'de şu an 40 yerde bulunması planlanan 'hotspot' bağlantı noktaları çevresinde ucuz ve hızlı bağlantı kurabilmelerinin sağlanacağını kaydetti.
Demir, kablosuz network (Wifi) teknolojisine dayalı bu 'hotspot'ları ileride aşamalı olarak geliştirerek, büyük kapsama alanları oluşturmayı planladıklarını ve yalnızca evde kullanımla sınırlı ADSL sisteminin daha geniş kullanım alanı bulmasını sağlayacak bu sistemin pilot çalışmasını Bahçeşehir'de başlattıklarını dile getirdi.
"2007'de amacımız, tüketiciye geniş bandın kullanılabileceği katma değerli servisler götürmek" diyen Demir, 2007 sonuna kadar 350 bin ADSL, 35 bin (Wifi) abonesine ulaşmayı hedeflediklerini söyledi.

Gördüğünüz gibi GSM operatörleri dışındaki firmalar da wireless broadband konusunda çalışma içerisindeler. İsterseniz Wimax konusundaki yazılara devam ederken öncelikle Wimax 'i bu kadar cazip kılan temel özelliklerine bir göz atalım.

* Superior performance, made possible by the adoption of OFDMA multiplexing, which gives WiMAX a performance edge in delivering IP data services compared to 3G technologies.
* Flexibility, which allows service providers to support multiple usage models, including fixed and mobile access, over the same WiMAX infrastructure and to operate their networks in multiple spectrum bands.
* Advanced IP-based architecture, which includes IMS support to facilitate a rapid, low cost, rollout of new applications and of interworking with 3G and other technologies.
* Attractive economics, driven by a standards-based approach, cost-effective infrastructure, mass adoption of low-cost subscriber units, and attractive IPR royalties

Wimax'in güçlü yanları olarak yukarıdaki 4 özellik vurgulanmış. Bence Türkiye açısından en önemlileri, ekonomikliği ve IP tabanlı bir mimarisinin oluşu. Çünkü bu iki özellik GSM dünyası ile rekabette çok önemli bir faktör olacak ama aslında Wimax, Telekom dünyasına bir rakip değil. Wimax hizmetini Kablo, ADSL, GSM ve hatta 3G operatörleri bile verebilir.

* 2G (GSM) mobile operators that do not operate a 3G network typically plan to deploy a new technology that supports mobile Internet. For them, WiMAX is one of the best choices (as in the case of Yozan in Japan) and, free of a 3G legacy, they will have the opportunity to leap ahead of 3G operators and head directly towards a next-generation technology that is cheaper to deploy, affords a better performance, and smoothes the transition to an IP-core network and to fourth-generation networks.

* Wireline DSL and cable modem operators (e.g. Comcast in the US, France Telecom in France, Omnivision in Venezuela, TVA Sistema de Televisao, Brazil) have control over the fixed infrastructure and may want to deploy fixed WiMAX in areas of limited coverage, with a view to deploying mobile WiMAX later as a complement to their fixed broadband services. In some cases, they may elect to focus exclusively on mobile WiMAX. WiMAX operators can bundle personal broadband as an extension of the current services that allows subscribers to take the service with them wherever they go. In this case, WiMAX enables these operators to differentiate their products from wired competitors and to gain additional revenues without the cost and effort of becoming a fully-fledged mobile operator.

Eğer aklınızdan "Ben ADSL'den şaşmam, GPRS'de bağlantı hızlarını ve maliyeti gördük" düşüncesi geçiyorsa bence hemen karar vermede acele etmeyin, bir sonraki blog'u bekleyin :)

Cuma, Aralık 15, 2006

GeoTools & Mobile Positioning

Geçenlerde Büyükşehir Belediyesinin web sitesinde "Yollardaki anlık hızlara, değişken mesaj panolarındaki mesaj bilgilerine, 110 trafik kamerasının görüntülerine kısa bir süre sonra cep telefonlarınızdan ulaşabileceksiniz." haberini okuyunca adresindeki trafik bilgilerini gösteren programlara bir göz attım.

Eğer yanlış anlamadıysam, Belediye ana arterlerde yol kenarlarına yerleştirdiği sensorler sayesinde Yoğunluk Haritası ismindeki programın verilerini oluşturuyor. İstanbul'un sadece ana arterlerinin trafik durumunu gösterse de hiç yoktan iyidir.

Bu tip haberleri okuyunca veya trafikte hiç tahmin etmediğim bir anda takılıp kalınca, aklıma hep İstanbul'daki 10 milyondan fazla cep telefonu sinyalini neden trafik durumunu takip etmek için kullanmadığımız sorusu aklıma geliyor.

Tabii cep telefonundan konum belirleme denince akla hep GPS 'ten alınan bilgilerin cep telefonları üzerinden merkezi sisteme aktarılması geliyor. GPS üzerinden gönderilen bilgiler çok daha gerçekçi olsa da şu an için cep telefonları GPS modülü içermediğinden bu sistemin yaygınlaştırılması pratikte pek mümkün gözükmüyor.

Bunun yerine cep telefonlarının hareket halindeyken baz istasyonları arasında geçiş yaparken (handover) yaydıkları sinyalleri kullanarak tahmini konum ve hız tespiti yapılması çok daha ekonomik ve pratik bir model. Bir sonraki adım ise bu üretilen tahmini datanın analiz edilip elenmesi, similasyon programı ile ileriye dönük trafik modelinin oluşturulması. Son olarak da bu modelin ve mevcut durumun bir GIS programı ile gösterilmesi.

Aslında amacım yukarıdaki mantıkla çalışan ticari bir Mobile Positioning sisteminden ve open-source bir GIS (Geographic Information System) tool'undan bahsetmek. Uzmanlık alanım olmadığı için yorum yapmadan alıntı yaptım.

GeoTools is an open source (LGPL) Java code library which provides standards compliant methods for the manipulation of geospatial data, for example to implement Geographic Information Systems (GIS). The GeoTools library implements Open Geospatial Consortium (OGC) specifications as they are developed, in close collaboration with the GeoAPI and GeoWidgets projects. The capabilities of Geotools are presented in the feature list.

Real-Time Traffic Routing from the Comfort of Your Car
Engineers have developed a system for taking anonymous cell-phone location information and turning it into an illuminated traffic map that identifies congestion in real time.The system takes advantage of the steady stream of positioning cues--untraced signals all cell phones produce, whether in use or not, as they seek towers with the strongest signals. It is the first traffic-solution technology that monitors patterns on rural roads and city streets as easily as on highways.

Developed by IntelliOne of Atlanta, Ga., the TrafficAid system could not only help guide drivers around tie-ups, but also tell emergency responders where accidents are or how effectively an evacuation is unfolding by pinpointing clusters of cell phones

"Unlike sensors and other equipment along major freeways that are expensive and take years to deploy, our system takes advantage of existing cellular networks in which wireless carriers have already invested billions of dollars," said National Science Foundation (NSF) awardee and IntelliOne CEO Ron Herman, a former engineer and computer scientist.
From this information, IntelliOne uses its Mobile Positioning System (MPS) to convert ordinary signaling data into phone locations at a rate of two times per second, which in turn is passed to the company's Traffic Determination Engine (TDE), where each phone is matched to the correct road and monitored with other phone locations to produce average speeds and travel times for all roads with cell coverage.

Çarşamba, Aralık 13, 2006

Wimax: An Open Standard for Wireless Broadband

Bundan önceki bloglarımda epey 3G teknolojisinden bahsetmiş, daha sonraki bloglarımda Wimax hakkında yazacağımı belirtmiştim. Wimax hakkında konuşmaya başlamadan evvel 10 yıl kadar geriye gidip 2G standardı olarak kabul edilen GSM'in Türkiye'deki doğuşunu bir hatırlayalım:

17 milyar dolarlık "evet"
1980'ler Türkiye'nin dışa açıldığı ve ihracatın patladığı ilk yıllardı. Ama bu büyüme çok hızlı gerçekleşince şirketler bu büyüklüğe hazırlıksız yakalanmışlardı. Bu sıkıntılı dönem 1980'lerin sonuna doğru dış ticaret sermaye şirketlerinin yapısının değişmesine yol açtı.

Dönemin parlak şirketlerinden Penta Dış Ticaret de bu gelişmelerden nasibini aldı ve küçüldü. Penta Dış Ticaret küçülmüştü ancak bu şirketin bir yan kuruluşu olan Penta Tekstil 3 ortağıyla yoluna devam ediyordu. Bu üç ortak Murat Vargı, Muzaffer Akpınar ve Tevfik Yazıcıoğlu'ydu.

İşte tam o dönemlerde Finacial Times'da Murat Vargı'yla, Wall Street Journal'da da Muzaffer Akpınar'la yapılan Penta Tekstil'in çalışmalarına ilişkin röportajlar yayınlandı. Yazıların özünde genç Türk girişimcilerinin başarıları anlatılıyordu. Bu iki gazetede çıkan röportajlar hemen etkisini gösterdi. İsveçli bir GSM girişimcisi kısa bir süre sonra hem Murat Vargı'ya hem de Muzaffer Akpınar'a bir yazı yazdı ve GSM işinden söz etti. Murat Vargı kaderlerini değiştirecek bu mektubu ciddiye aldı ve İsveç'e gitti. İlk görüşmeleri yaptı. Her şey iyiydi. Ancak tek bir sorun vardı; para. Vargı ve çevresindekiler işin büyüyeceğine inanıyorlar ama buna sermaye koyacak birini bulma konusunda zorlanıyorlardı. Murat Vargı tam bu noktada kritik bir karar verdi: Önce Türkiye"nin en büyük iki grubuna gidilecekti.

Vargı önceliği Koç Holding'e verdi. Bu karardan sonra Koç Grubu'yla görüşüldü. Koç "bu iş olmaz" dedi. Başvurulan ikinci grup, Sabancı Holding'in de yanıtı daha doğrusu yanılgısı Koç'tan farklı değildi. 10 yıl sonra kaçan fırsatı Sakıp Sabancı o kendine özgü uslubuyla şöyle özetledi: "İçimiz yanıyor ağam... İçimiz."

Bu iki görüşme Murat Vargı'yı hayal kırıklığına uğrattı ama yıldırmadı. O parçaları birleştirme ve sonuca gitme özelliğini burada da gösterdi. Bıkmadan usanmadan görüşmelerini sürdürdü. Murat Vargı ve Penta Tekstil'e istediği cevap nihayet Çukurova Grubu'ndan geldi. Grubun genç ve dışa açık patronu Mehmet Emin Karamehmet 'evet' dedi. Bu 'evet'in değerinin 25 milyar dolar olduğu sonradan anlaşıldı. 'Evet'in anlamı ortaya çıktığında da Türkiye'de herşey değişmiş, teknoloji hayatın her alanına damgasını vurmaya başlamıştı.

Gördüğünüz gibi GSM teknolojisi Türkiye'ye geldiğinde, hiç kimse Türk insanının mobil sesli iletişime bu kadar ilgi göstereceğini tahmin etmiyordu. Hatırlarsanız GSM'den önce şahsi telefon diye bir kavramımız yoktu. Evlerimizdeki sabit telefonlar tüm ailenin telefonuydu. Özel konuşma yapmak çok zordu. İşyerindeyken veya bir misafirlikteyken bir yeri aramamız gerektiğinden hep birilerinden izin almamız gerekiyordu. Yani kısacası evden dışarı çıkarken sabit telefonumuzu yanımızda götüremiyorduk. (Şu an evdeki ADSL internet bağlantımızı götüremediğimiz gibi)

GSM hizmeti ilk başladığında cep telefonlarımız ile sadece konuşabiliyor ve sms atabiliyorduk ve ardından gelen faturalarımızı ödüyorduk. Başlangıçta herkese yeten bu hizmet sonraları yetmemeye başladı. Müşteriler cep telefonları üzerinden internet erişim servisi (GPRS), katma değerli servisler, ön ödemeli servisler (kontör) gibi hizmetler talep etmeye başladı. Bu yeni isteklerin çoğu kapalı bir teknoloji olan mevcut 2G altyapısı üzerine yapılamıyordu. Bu yüzden sonradan yapılan bu eklentiler ile teknolojinin adı 2.5G oldu.

Özellikle internetin yaygınlaşması ile artan müşteri taleplerini mevcut 2.XG altyapısı ile karşılayamayacaklarını anlayan Telekom şirketleri, 3G olarak adlandırılan yeni teknolojileri geliştirmeye başladılar. 3G 'nin 2G 'den en büyük farkı data (internet, video streaming, vs.) hizmetlerini daha yüksek bir bant aralığında sağlıyor olmasıydı. 3G de, 2G gibi Telekom altyapısı üzerine kurulmuştu, yeni ürün geliştirmek zordu, operasyonel maliyetler yüksekti, kısacası internet kullanıcısının istediği aylık sabit bir ücrete, sınırsız, hızlı data ve ses hizmeti talebini karşılayamıyordu. (Bakınız : 3G & Turkey)

İşte bu noktada 4G diye adlandırılan yeni nesil teknoloji devreye girdi. 4G ile diğer önceki teknolojik değişikliklerden çok daha radikal değişiklikler ortaya çıktı. 2G ve 3G deki teknolojilerin aksine 4G teknolojilerinin :

* öncü geliştiricileri Intel gibi IT firmaları.
* altyapısı kapalı değil açık sistemler üzerine kurulu.
* altyapısı çok daha hızlı ve geniş data hizmeti sunuyor.
* altyapısı ses üzerine değil data üzerine kurulu
* altyapısı IP tabanlı olduğu için ürün geliştirmek çok daha kolay
* operasyonu çok daha ekonomik
* ....

Bu liste uzayıp gidiyor, işte zaten bu yüzden dünyada ve Türkiye'de yola 3G ile mi yoksa 4G ile mi devam etmeli diye büyük tartışmalar var. 2G teknolojileri ilk çıktığında nasıl İskandinav ülkelerinin başı çektiği GSM standardı ön plana çıktı ise 4G 'de de Intel'in desteklediği Wimax ön planda.

1G -> 2G -> 3G -> 4G gelişimi ile ilgili daha detaylı bilgiye Levent Uysal'ın'da yazdığı makalelerden ulaşabilirsiniz:
Cep Telefonu Endüstrisinde Gelişim

Wimax (IEEE 802.16) aslında hepimizin yakından tanıdığı bir teknoloji. Şu an laptoplarımızda bulunan wireless (IEEE 802.11) bağlantının daha yetenekli, kapsama alanı daha geniş ve daha hızlı olanı. Wimax'ın orijinal tanımı ise şu şekilde:

WiMAX Technology
WiMAX is a standards-based technology enabling the delivery of last mile wireless broadband access as an alternative to wired broadband like cable and DSL. WiMAX provides fixed , nomadic, portable and, soon, mobile wireless broadband connectivity without the need for direct line-of-sight with a base station. In a typical cell radius deployment of three to ten kilometers, WiMAX Forum Certified? systems can be expected to deliver capacity of up to 40 Mbps per channel, for fixed and portable access applications. This is enough bandwidth to simultaneously support hundreds of businesses with T-1 speed connectivity and thousands of residences with DSL speed connectivity. Mobile network deployments are expected to provide up to 15 Mbps of capacity within a typical cell radius deployment of up to three kilometers. It is expected that WiMAX technology will be incorporated in notebook computers and PDAs by 2007, allowing for urban areas and cities to become ?metro zones? for portable outdoor broadband wireless access.

Wimax'e yön veren, standartları belirleyen en önemli topluluklardan biri de Intel'in sponsorluğundaki Wimax Forum. Wimax Forum'un hedefleri web sitesinde şu şekilde sıralanmış:

The WiMAX Forum's key objectives for 2006 are:
* Promote and accelerate global WiMAX deployments
* Make WiMAX service the platform of choice and the worldwide market segment leader for broadband wireless
* Deliver a framework for a high performance end-to-end IP network architecture supporting fixed, portable, and mobile users
* Assure WiMAX Forum Certified products are trusted by Service Providers worldwide
* Develop WiMAX profiles based upon an IEEE 802.16 and ETSI interoperable client serving a global market
* Increase user demand by enabling competitive new applications and service models
* Promote a favorable IPR policy
* Deliver the framework for deployment of personal broadband on a global scale by leveraging the contributions of the majority of players within the ecosystem

Wimax Forum'da Wimax ile ilgili her türlü teknik dokümanı bulabilirsiniz. Bir sonraki Wimax ile ilgili blogumda farklı açılardan Wimax'i inceleyip alternatif teknolojiler karşılaştırma yapmaya çalışacağım. Ama diyorsanız ki "Wimax benim ilgimi çok çekti, senin bloglarını bekleyemiyeceğim" o zaman size Mobile WiMAX: The Best Personal Broadband Experience! white paper'ini şiddetle tavsiye ederim.


Çarşamba, Aralık 06, 2006


Türk Telekom'un sabit telefonlara sms gönderilebilmesi ile ilgili hizmetini deneme imkanı bulunca, yıllar önce kullandığım bir open-source uygulama aklıma geldi.

Sabit Hatlardan da Kısa Mesaj Gönderilecek
Sabit telefonlara gönderilen kısa mesajları görebilmek için SMS uyumlu telefon cihazlarına sahip olmak gerekiyor. SMS uyumlu olmayan cihazlarda ise yazılı mesajlar, sesli mesaj olarak iletilebilecek.

Gerçekten de bugün gönderdiğim birkaç test mesajıyla, yazılı mesajların gayet başarılı bir şekilde sese dönüştüğüne şahit oldum. Yazıyı sese dönüştürme programı olarak ne kullanıyorlar bilmiyorum ama bir ara Koç topluluğuna bağlı GeVeZe diye bir şirket vardı bu işler ile uğraşan.

Aslında yazıyı sese dönüştürmek çok zor bir teknloji değil:

FreeTTS 1.2
FreeTTS is an open source speech synthesis system written entirely in the Java programming language. It is based upon Flite . There is active development happening in the FreeTTS project.

FreeTTS Java API'sini kullanarak çok kısa sürede ingilizce metinleri sese dönüştürebilirsiniz. Sanırım esas türkçeyi merak ediyorsunuz. FreeTTS aslında her dile destek veriyor fakat öncelikle türkçe diline has özel ses dosyalarının oluşturulması gerekiyor.

How do I add support for a language other than English?
This is not a trivial task as it requires a lexicon for the language as well as various statistical data about the language. The document describes this is more detail.

Tabii eğer şansınız varsa belki türkçe için gerekli altyapıyı önceden biri hazırlamıştır. Bunun için FreeTTS Forumlarına bir göz atmanız yeterli. Bence mutlaka bir deneyin, profesyonel olarak kullanma imkanı bulamazsanız dahi epey eğleneceksiniz :)

Pazar, Aralık 03, 2006

JIRA 3.7 Beta 2

JIRA 'cıların en sevdiğim yönü lisanslı bir ürün geliştirmelerine rağmen sanki open-source geliştiriyormuş gibi çalışmaları. JIRA 'ya yeni özellikler eklerken son kullanıcıya o kadar çok kulak veriyorlar ki.

JIRA 3.7 Beta 2 versiyonunda çok çarpıcı yeni özellikler mevcut. Uzun süre JIRA adminliği yapmış birisi olarak 3.7 sürümü ile gelen 2 yeni özelliğinden özellikle bahsetmek istiyorum.

* Project Roles
JIRA'yı eğer kurumsal bir şirkette kullanıyorsanız doğal olarak çok proje olacağından her bir proje için bir sürü yönetimsel konfigürasyon (groups, permissions, workflows, vs.) yapmak zorunda kalıyorsunuzdur. Bu yeni sürümde administration oldukça kolaylaşmış:

Does your system currently contain multiple, project-specific groups? Once you upgrade to JIRA 3.7, your permission schemes and notification schemes can use project roles instead of groups. By implementing project roles, you may be able to greatly reduce the number of groups, permission schemes and notification schemes in your JIRA system.

* SVN Commit Acceptance plugin
Bildiğiniz gibi open-source dünyası çoğunlukla Source Code Management (SCM) aracı olarak CVS 'in devamı olarak geliştirilen SVN (Subversion) kullanılıyor. JIRA'nın uzun zamandır zaten hemen hemen tüm SCM araçları ile entegre (CVS Integration, ClearCase Integration, vs.) çalışabiliyor fakat bu yeni sürüm ile SVN entegrasyonu bir adam öteye götürülmüş. Bu yeni özellik sayesinde SVN'e check-in'lenen kodlar JIRA üzerinden onaylanabiliyor:

In some environments, developers like the idea that there must be a one-to-one correlation between issues and check-ins. The new SVN Commit Acceptance plugin gives JIRA the ability to approve or deny any check-in made to CVS or SVN. We've started by allowing administrators to check three of the most common uses:

* Does this commit reference a valid issue key?
* Is that issue open?
* Does that issue belong to the committer?

Normalde bu kontrol Sürüm Yönetimi tarafından manual olarak yapılır ve epey zahmetli bir iştir. Hele bir de çok sık sürüm çıkarıyorsanız.

Umarım şu an sadece SVN için olan bu yeni özellik, ClearCase ve StarTeam gibi kurumsal şirketlerde daha çok kullanılan diğer SCM araçlarına da uyarlanır.

JIRA'dan bahsetmişken 'ün yakın zamanda off-line çalışabilen bir beta JIRA Client sürümü çıkardığını da paylaşmakta fayda var.

İyi hafta sonları...