70 Years of Gaming Foresight

Recently I've stumbled upon "45 Vintage ‘Space Age’ Illustrations" post of Wellmedicated. Some of these creative works resemble popular gadgets of today but one of them is further than them:

 

pop_science  

1938 - Movies Train Big-Game Fishermen

iphone_fishing

2008 - iPhone Flick Fishing

Bilişim'08

tbd_logoTürkiye Bilişim Derneği, 19-21 Kasım 2008 tarihlerinde, "Yakınsama" sloganıyla Ankara Sheraton Kongre Merkezi‘nde Bilişim‘08 etkinliğini düzenleyecek. Bu yıl 25. kez düzenlenen etkinlikte ele alınacak bazı konu başlıkları şöyle: Afette Bilişim, E-Dönüşüm, Coğrafi Bilgi Sistemleri, e-oyun, Çevreci Bilişim, İletişim teknolojileri, 3G, Genişbant telsiz erişim sistemleri, IPTV, Akıllı Ev, Nesnelerin İnterneti, Mobil Numara Taşınabilirliği, İnternet Güvenliği, İnternet Yönetişimi, e-imza/e-noter, Ulusal Yazılım Endüstrisi ve Küresel Rekabet, Bilişim Stratejisi,  Matematiksel Bilgisayar Dili: Türkçe, Özürlüler ve Bilişim, Savunma Sanayi ve Bilişim, Spor ve Bilişim.

Paralel olarak 9 ayrı salonda yürütülecek etkinliğin Mimoza salonunda (20 Kasım Perşembe 14:20), benim de ufak bir sunumum olacak; “Ağ Merkezli Harp ve Yazılım Mimarilerinin Değerlendirilmesi”.

Ayrıntılı bilgi için; www.bilisim.org.tr

Large Hadron Collider Game

Large Hadron Collider (LHC) of CERN (European Organization for Nuclear Research) is very popular subject nowadays. Beyond the scientific value of the subject, it has vastly hazardous perception in public domain (The 5 Scientific Experiments Most Likely to End the World). We have to get general idea about a particle accelerator before commenting about the impact factor of the LHC experiment. Therefore, interactive science centre of CERN provides very educational game, LHC game:

 

LHC_game

Esinlenme?

Son günlerde TV'de sık sık karşılaştığım Gnctrkcll "Sen Hayal Et" reklam filminin müziğinde, Madness grubunun en popüler şarkılarından biri olan "Our House"un nakaratından esinlenildiğini düşünmeye başladım. Kararı siz verin;

SOA World 2008'in Ardından

soaworld Geçtiğimiz hafta (23-24 Haziran 2008), New York City Roosevelt Otel'de düzenlenen 13. SOA World 2008 Konferans ve Sergi organizasyonu DataDirect'in ana sponsorluğunda gerçekleştirildi. Aslına bakarsanız konferans hakkında söylenebilecek ilk şey, tek bir konferans olmaktan ziyade üç farklı konferansın (SOA World, Virtualization, Data Services World) birlikte yapılması. Belki programları iyi ayrılsaydı katılımcılar için faydalı olabilecek bu birliktelik, belirgin bir ayrımın yapılmaması nedeniyle zaman zaman karmaşa yarattı. Aklımda kalan (ve bence en iyi) sunumlar aşağıdaki gibi:

Açılış konuşmasını (SOA: Making the Leap) yapan Richard Mark Soley (CEO, OMG), dinleyicilerin esprilerine tepkisiz kalmasına sık sık tepki göstererek "ne yani bu da mı gol değil!" şeklinde serzenişlerde bulundu (Aslında sabah 07:30 için dinleyicilerin hali iyi bile sayılırdı). R.M. Soley, genel olarak SOA Birliği'nin misyon ve hedeflerini açıklayarak SOA'nın yaygınlığı hakkında bazı bilgiler verdi. Özellikle MDA'nın üstünde duran Soley, SOA uygulayan tüm şirketlerin MDA'yı da değerlendirmesi gerektiğini belirtip, güzel bir slogan ile konuşmasını bitirdi: "Değişmek üzere tasarlamıyorsanız, yok olmak üzere tasarlıyorsunuz demektir...".

"The art & science of SOA" başlıklı sunumunda Volvofinans CIO'su Johan Nordin, bir birileri ile çelişen kaygıların üzerinde durdu. J. Nordin, "pazara sunum süresi" ile "sağlamlık", "güvenlik" ile "iletişebilirlik" kavramları arasında sürekli bir çekişme olduğunu, geliştirim sürecinde bu kavramlar arası dengenin iyi kurulması gerektiğini belirtti. Nordin ayrıca, SOA dönüşümü yaşayacak bir kurum için yukarıdan-aşağıya/aşağıdan-yukarıya yaklaşımların zor olduğunu, saf yaklaşımlar yerine, her iki uçtan (yukarı-aşağı) birlikte başlayıp ortada bir yerlerde buluşma yaklaşımını tavsiye etti.

Numatica şirketinden Jacek Kruszelnicki, “Avoiding a SOA Fiasco” sunumunda, SOA’nın iş ve teknik yanlarını ayrı ayrı ele alarak olası geçiş aşaması başarısızlıklarından nasıl kaçınılabileceğine değindi. J. Kruszelnicki, SOA’nın sadece bir tutam WS’ler topluluğu ya da ESB olarak algılanmaması gerektiğini belirtti. SOA’nın temel vaadinin; kurum içi ya da kurumlar arası servislerin yeniden kullanıldığı, süreçlerin birlikte yürütülebildiği bir çalışma şekli olduğu belirtti. Sunum boyunca iş ve teknik taraf açısından olası hataları ve bu hatalara karşı alınabilecek önemleri sıralayan Kruszelnicki, malesef süresini iyi kullanamadı. Programı aksatmamak adına konferans görevlilerinin uyarıları ile sunumun son kısmını yarım bırakmak zorunda kaldı.

“Facelift Your SOA with RIA” sunumunda Yakov Fain (CEO, Farata Systems), RIA yaklaşımının ne gibi temel dinamiklerden doğduğunu belirttikten sonra kendi şirketlerinde kullanıcı arayüzü için Adobe Flex, iş mantığı ve altı katmanlar için ise Java kullanımını tercih ettiklerini belirtti. Y. Fain, programlama dillerinin sadece bir araç olarak değerlendirilmesi gerektiğini bu bağlamda hangi iş için hangi programlama dili en kullanışlı ise o noktada ilgili dilin tercih edilmesi gerektiğini (takım tutar gibi programlama dili tutmanın hata olduğunu) belirtti. Basit uygulamalar için Flex’in doğrudan WS’lere bağlanabileceği de sunum içerisinde vurgulanan noktalardandı. Konferans boyunca yaşanan teknik aksaklıklardan Y. Fain de payını aldı. Yansıtıcıdaki arazıdan dolayı sunumunu sadece sözlü olarak yapabilen (buna rağmen en başarılı sunumlardan birini yaptığına inanıyorum; demek ki yansıtıcı o kadar gerekli bir şey değilmiş...) Y. Fain, bu sorun nedeniyle sunumunu kısa tuttu.

SOA World 2008, bazı organizasyonel/teknik sıkıntıları olmasına rağmen SOA hakkındaki yönelimleri gözlemlemek açısından faydalı bir konferans olarak yerini bir sonraki konferansa bıraktı; SOA World 2009 Londra...

Macbook Air Parody of Lenovo

Thanks to Murat for pointing this ad to me. Also, you can read Steve's post about this video.

Big Brother is Doting You

eff_printer Recently, I've stumbled to Rob Cockerham's "Introducing the Eyeclops: Super Magnifying Camera" page. Rob really has fun with his amazing 200X toy; Eye Clops Bionic Eye. He did some try outs with casual living room materials; magazines, shirts, hair, etc... After that, he unveiled secret yellow dots on printings (by the way; he used to have print shop job, also).

The issue is that many printers embed some tracking information into the printouts. The embedded information contains date, time, serial number, etc... (enough for watched by big brother). The information is encoded and printed by yellow dots (not viewable without magnifying) across the page.  Electronic Frontier Foundation (EFF) reported decoding method and sample implementation on this page.

The first printer that I purchased in 1995 was HP 690C. I remember that it had been mentioned as not to be able to print dollar($) green tone. That can be evaluated as reasonable limitation. However, a printer that spying on its owner is really inappropriate for me. I think that we all deserve little more privacy and we should prefer the printers do not embed tracking dots to purchase. In this respect, EFF's list is very handy resource; "List of Printers Which Do or Do Not Display Tracking Dots".

(Image source: http://www.eff.org)

Savronik Proje Yarışması 2008 (SPY-08)

spy08logo Savunma sanayinin önemli aktörlerinden Savronik firması, ünversite-sanayi iş birliği adına olumlu bir adım atarak üniversite öğrencileri için bir proje yarışması (SPY-08) düzenlemiş. Yarışmanın kazananlarının 17 Mayıs 2008'de belli olacağı belirtilmiş. Daha ayrıntılı bilgi http://www.savronik.com.tr/spy/ adresinden edinilebilir.

Her ne kadar belirtilen son başvuru tarihi (31 Ocak 2008) geçmiş ve katılımcı projeler belirlenmiş olsa da başvuru formu yarışma sitesinden ulaşılabilir durumda. Formu inceledikten dikkatimi çeken bir noktaya da değinmeden edemeyeceğim: Başvuru formunun sonunda yer alan "Sözleşme" bölümü katılımcıların ürün üzerindeki haklarını oldukça kısıtlıyor ve katılımcıların sayısını olumsuz yönde etkilemesi bence çok olası.

Umarım Savronik ve diğer firmalar üniversite-sanayi iş birliğini desteklemek adına daha iyi şartlarla katılımı destekleyen proje yarışmalarını ilerleyen senelerde de devam ettirirler.

Hacettepe Bilişim Günleri 2008

HUlogosu Geçen hafta Pazartesi günü(2008.04.14), Hacettepe Üniversitesi Bilgisayar Topluluğu (HÜBİT) tarafından düzenlenen Bilişim Günleri etkinliği için uzun bir aradan sonra tekrar Hacettepe Üniversitesi'ndeydim. Okul zamanlarında benim de çalışma fırsatı bulduğum HÜBİT tarafından düzenlenen bir etkiliğe tekrar katılmak oldukça keyifliydi.

Bu vesileyle ayak üstü de olsa öğrenci arkadaşlarla sohbet etme fırsatı buldum. Genelde sorular bilgisayar mühendisliği kariyer hedeflerini nasıl belirlemeleri gerektiği ile ilgili idi. Bu bağlamda, piyasa eğilimlerinin (ABD için yazılmış olsa da Türkiye için de geçerli olduğu söylenebilir) konu edildiği "Wanted: 10 IT skills employers need today" makalesi fikir verici olabilir. Ayrıca Türkiye'deki imkanları ve genel olarak akla gelen soruları içeren Doç. Dr. Göktürk Üçoluk tarafından hazırlanmış "Bilgisayar Mühendisliğine İlişkin Sıkça Sorulan Sorular" yazısının incelenmesini özellikle tavsiye ediyorum (Yazının "İş imkanları" kısmındaki ücret bilgilerinin güncel olmadığını belirtmek gerek).

Young Turks vs. Jeunes Turcs

I've encountered interesting comment thread on NetworkWorld as reading "5 IT skills that won’t boost your salary" article. User naedrod, has stated his/her opinions by using contrary phrases "Young Turk" and "Dino". Unfortunately, this opinion has caused misconception on the other user. This case and RandomHouse's definition for "Young Turk" phrase, pushed me to think about usages. RandomHouse defines that;

Young Turks, which was the popular name for the Committee of Union and Progress, a revolutionary reformist group that led a successful rebellion in Turkey in 1908 and held power for another decade or so.

In Turkish, we generally use French word for this phrase; "Jön Türk" (Jön = homonym of "Jeune" which means "Young" in French). Therefore, "Genç Türk" which is the exact translation of the "Young Turk" is nonsense, generally (I think, this fact results misconception). Refer to Wikipedia article for further information about "Young Turks".

If you've never failed, you've never lived

YouSort: YouTube Sort by View Count Fix

Update(2008.04.10): Fortunately, YouTube added sort by view count feature again hence, this post is expired. However, I let it remains for possible further reference.

 

Title is very descriptive and it refers to common problem; every YouTube user wants to sort filtered video results by "view count" and there is a trivial solution. Note that, this is not "yet another view count fix entry". If you google this issue, you can access many blog entries about that. However, this fix is relatively more permanent solution.

 

YouTube removed the "sort by view count" feature from its user interface but feature is still available. You can still use this feature (although, this time in less user friendly fashion). After searching at YouTube, append &search_sort=video_view_count at the end of the URL in the address bar and press enter to search again. Hence, results will be view count sorted at this time.

 

In order to make this solution more permanent (easily repeatable), I implemented below solution (Screenshots are from Firefox but steps cover both Firefox and IE - Internet Explorer):

1. Be sure that "Bookmarks Toolbar" is visible by checking View > Toolbars > Bookmarks Toolbar (IE: View > Toolbars > Links).

 

yousort_1 

 

2. Open "New Bookmark" dialog by right clicking Bookmarks Toolbar and select "New Bookmark..." (IE: Favorites > Organize Favorites... right click unused item under "Links" folder and click to "Properties").

 

yousort_2 

 

3. In this bookmark, we want to append &search_sort=video_view_count prefix to current URL and redirect to this new address. We can handle this operation with below JavaScript code snippet.

 

javascript:window.open(document.location + %22&search_sort=video_view_count%22);

4. Give appropriate name (for this case: "YouSort") for bookmark and paste above snippet to the "Location" field (IE: Insert the snippet into "URL" field).

 

yousort_3

 

5. Sort by view count button for YouTube is ready to use. You can use this button at search result pages (IE: Use Firefox ;) ).

 

yousort_4

 

Have fun...

 

Student Autonomous Underwater Challenge

auv9 AUVs (Autonomous Underwater Vehicle) are unmanned, untethered submersible robots that are capable of carrying out missions autonomously. Defence Science and Technology Laboratory (DSTL) which is executive agency of the UK Ministry of Defence, supports AUV development projects of the students. In this respect,  DSTL arranges "Student Autonomous Underwater Challenge - Europe (SAUC-E)" annually.

This year SAUC-E 2008 is to be hosted by DGA (France) and held at IFREMER, Brest, France in 7 - 11 July 2008. Soton AUV of the Southampton University is the winner of the SAUC-E 2007. Comprehensive project list of some organizations can be found here.

(Image source: http://sotonauv.seslink.soton.ac.uk/)

Yazılım Ürün Hattı

Yazılım ürün hattı, tanımlama yoluyla ortak öz varlıklar kullanılarak geliştirilen, belirli bir pazar kesiminin ya da görevin intiyaçlarına yönelik, yönetim altındaki ortak yetenek kümelerini kullanan yazılım-yoğun sistemler kümesine verilen isimdir [1].

YÜH yaklaşımının ortaya çıkmasına yol açan en önemli güdülerden biri de geçmiş yeniden kullanım yaklaşımlarından (Ör: Nesne yönelimli yaklaşım) çıkarılan derslerdir. Bu bağlamda genel kabul gören iki husus aşağıdaki gibi sıralanabilir [2]:

  • Fırsatçı yeniden kullanım’ın (Opportunistic reuse), uygulamada etkin olmadığı görülmüştür. Yeniden kullanım planlı ve zorunlu olarak yönetilmelidir.
  • Aşağıdan yukarıya (bottom-up) yeniden kullanım ile yeni sistemlerin soyut bileşenlerin bir araya getirilmesinden oluşturulması, başarılı sonuçlar vermemektedir. Başarılı yeniden kullanım yukarıdan aşağıya (top-down) yaklaşım gerektirmektedir (Bu tanımlama kısmen aşağıdan yukarı yaklaşım kullanımını dışlamaz).

Bu yeni yazılım geliştirme yaklaşımına geçişin nasıl ele alınacağı da diğer bir önemli konu olarak karşımıza çıkmaktadır. C. Krueger, kuruma faydası ne kadar yüksek olursa olsun, geçiş aşamasında yaşanacak üretim düşmesini ya da durmasını bazı kurumların göze alamadığını belirtmiştir [3].

Geçiş maliyetini en aza indirmek üzere tanımlanmış üç farklı uyum modeli bulunmaktadır [3]:

  • Öngörüsel Yaklaşım (Proactive approach): Geleneksel yöntemdeki şelale (waterfall) benzeri bir yaklaşımdır. Tüm ürün çeşitleri çözümlenir, tasarlanır ve gerçekleştirilir. Köklü ve tümden bir değişimi daha hızlı getirdiğinden bu yaklaşıma büyük patlama (big bang) yaklaşımı da denilir.
  • Tepkisel Yaklaşım (Reactive approach): Döngüsel ya da çevik yöntemlere benzer bir yaklaşımdır. Her bir döngüde bir ya da birkaç ürün çeşidi ele alınır.
  • Çıkarımsal Yaklaşım (Extractive approach): Var olan bir ya da bir kaç ürün YÜH için temel alınır ve diğer ürünler sonrasında dahil edilir.

Kurumların olgunluk seviyeleri, ürün ailelerinin çeşitliliği gibi bir çok etken var olmakla birlikte, tüm gereksinimlerin önceden çok açık belirlenemediği durumlar için en uygun geçiş modelinin “tepkisel yaklaşım” olduğu söylenebilir.

YÜH bağlamında iki temel sürecin birbiri ile etkileşimi söz konusudur [4]:

  • Alan Mühendisliği: Ürünlerin ortaklık ve farklılıklarının belirlenip tanımlandığı YÜH mühendisliği sürecidir. Tanımlanan ortaklık ve farklılıklar, üretim bandının temelini oluşturur.
  • Uygulama Mühendisliği: YÜH’nın alan değerleri (domain artefacts) ve farklılık tanımlarından yararlanarak ürünlerin oluşturulduğu YÜH mühendisliği sürecidir.

Bu iki süreç belirli döngülerle birbirlerini besler ve geliştirir. Aşağıdaki şekil söz konusu döngüleri ve süreç adımlarını göstermektedir.

spl_cycle

YÜH tasarımı hakkında daha fazla detay bu yazı kapsamı dışındadır. Başlangıç aşaması için, M. Matinlassi’nin farklı YÜH tasarım yöntemlerini (KobrA, FAST, FORM, …) karşılaştırmalı olarak incelediği belge’ye [5] başvurulabilir.

 

[1] P. Clements, L. Northrop, (2001), “Software Product Lines: Practices and Patterns”, Addison Wesley.

[2] Jan Bosch, (2000), “Design and Use of Software Architectures”, Addison-Wesley, ACM Press Books.

[3] C. Krueger, (2002), “Eliminating the adoption barrier”, IEEE Software, Volume 19, Issue 4.

[4] K. Pohl, G. Böckle, F. van der Linden, (2005), “Software Product Line Engineering”, Springer.

[5] M. Matinlassi, (2004), “Comparison of Software Product Line Architecture Design Methods: COPA, FAST, FORM, KobrA and QADA”.

UYMK 2008

Bu sene ikincisi düzenlenecek olan Ulusal Yazılım Mimarisi Konferansı (UYMK),  11-12 Eylül 2008 tarihlerinde İzmir'de gerçekleştirilecek. UYMK, iki senede bir düzenleniyor ve ilk konferans 2006 yılında İstanbul'da Yıldız Teknik Üniversitesi ev sahipliğinde gerçekleştirilmişti. Bu seneki ev sahibi ise Ege Üniversitesi.

Konu başlıklarını içeren bildiri çağrısına buradan erişebilirsiniz. Özetlerin gönderimi için son tarih 7 Nisan 2008.

How to make HTTP connection in J2ME

One of the most critical aspects of J2ME is network connectivity. Although J2ME devices can be useful when they are not connected to a network, the ability to make a network connection provides a means to tap into the powerful resources available on a network. In other words, a client-server paradigm is used to offload complicated work from the limited capabilities of the MIDP device to the more capable server environment.

Since network connectivity is so vital to J2ME it is important that the architecture be extendible to many different protocols while allowing applications to be portable across many devices. (MIDP 1.0 specification supports only HTTP connection) The piece of software within the J2ME architecture that addresses network connectivity is called the Generic Connection Framework (GCF). The Generic Connection Framework resides in the javax.microedition.io

  • DatagramConnection : Manages a datagram connection.
  • InputConnection : Manages an input stream-based connection.
  • OutputConnection : Manages an output stream-based connection.
  • StreamConnection : Manages the capabilities of a stream. Combines the methods of both InputConnection and OutputConnection.
  • ContentConnection :Manages connection for passing content, such as HTML or XML. Provides basic methods for inspecting the content length, encoding and type of content.

Let’s talk about more specific sample, below code snippet demonstrates simple HTTP connection. First crucial point in snippet, connection type casting. How the Connector knows the right connection class? Answer is very forthright; when the URI is defined in open, Connector parses it (schema, address and parameters) and decides the class. For instance “http” token refers to HttpConnection class.

   1: String url = new String("http://sample.cs.hacettepe.edu.tr:1234/pusu/pusunotifier");
   2: try {
   3:     con = (HttpConnection) Connector.open(url);
   4:     con.setRequestMethod(HttpConnection.POST);
   5:     out = con.openOutputStream();
   6:     out.write(stringData.getBytes());
   7: } catch (IOException exp) {
   8:     // Handle IOException
   9: }
  10: // Final snippet 

Building HTTP header is another vital aspect of the connection. For MIDlet-to-Servlet connections, that’s quite simple, all you needed defining HttpConnection.POST in seRequestMethod. What about MIDlet-to-PHP interaction? That’s offtopic for this tutorial but I can briefly say that you have to build HTTP header manually. This method covers setting Boundary, Content-Disposition, Content-Type, etc… (That's valid for hybrid transmission. Only string based data transmission can be handled without manual building).

For client side final point is closing connection resources to avoid lack:

   1: // Connection snippet
   2: finally {
   3:     try {
   4:         if (out != null) {
   5:             out.close();
   6:         }
   7:         if (con != null) {
   8:             con.close();
   9:         }
  10:     } catch (IOException exp) {
  11:         // Handle IOException
  12:     }
  13: }

That’s all for the client side application. Let’s review implemented part of the application; client constructs sending data, requests HTTP connection and transmits concerning data. Server side requirements; establishing HTTP connection, receiving transmitted data and process it.

   1: public class PusuNotifier extends HttpServlet {
   2:     public void doPost(HttpServletRequest request, HttpServletResponse response) {
   3:         InputStream input = request.getInputStream();
   4:         BufferedReader bufReader = new BufferedReader(new InputStreamReader(input));
   5:         StringBuffer stringBuf = new StringBuffer();
   6:         String line;
   7:         while ((line = bufReader.readLine())!=null) {
   8:             stringBuf.append(line);
   9:         }
  10:         String receivedData = stringBuf.toString();
  11:         // Process received data
  12:     }
  13: }

Establishing connection is provided by container (server) application for Servlets so this requirement has been skipped. Standart HttpServlet specification defines doPost method in order to handle post requests and HttpServletRequest argument to encapsulate client’s request.

Receiving data via BufferedReader is a generic way to handle transmission. (Although it’s suitable way for hybrid transmission, not the only way). Finally, received data is server side and ready to be processed.

Originally posted by Orçun Dayıbaş in 2005.04.25 - The Pusu Project Blog

How to send SMS in J2ME?

Pusu will report the motion several ways. Via SMS, MMS, Bluetooth. The simplest one is SMS so firstly we do SMS to report. With WMA, sending SMS in J2ME very simple. A generic MessageConnection opens the reporting way to connect the desired user about the situation. The receiving section comes with some obstacles. Since we want our Motion Detector controlled by simple SMS which is sent by an ordinary mobile phone message, the application should access the SMS messages targetted towards it. But an application running on the mobile phone is listenning to the messages which is specified to its port number. Unfortunately, at the time being we could not find a decent way to specify an SMS message which is not only defines the phone number but also the port number of the application. We will work on that matter. Now we explain the SMS reporting of the system.

WMA is supported through javax.microedition.messaging package, which includes the interfaces below:

Message: The basic interface for a message. Commonly needed methods are defined such as the ability to get or set the address associated with the message and to retrieve the timestamp of when the message was sent.
BinaryMessage: Extends the Message interface, allowing an application to extract the binary payload of the message.
TextMessage: Extends the Message interface, allowing an application to extract the ASCII payload of the message.
MessageConnection: Supports the functionary for sending and receiving messages based on the underlying protocol.
MessageListener: Allows classes that implement this interface to register with an instance of MessageConnection to be notified when a new message is received.

Sending SMS with WMA (Wireless Messaging API) is done as below code: 

   1: //destination is the user specified mobile phone number


   2: // an example for destination = "+905335555555"


   3: String addr = "sms://" + destination;


   4: MessageConnection sender = null;


   5: try {


   6:     try {


   7:         //connection creation


   8:         sender = (MessageConnection) Connector.open(addr);


   9:         //message creation


  10:         TextMessage msg = (TextMessage) sender.newMessage(MessageConnection.TEXT_MESSAGE);


  11:         //message is load


  12:         msg.setPayloadText(message);


  13:         //send it


  14:         sender.send(msg);


  15:     } finally {


  16:         sender.close();


  17:     }


  18: } catch (Exception ex) {


  19:     //handle exception 


  20: }


No matter which protocol you are using, the messaging operations are nearly the same. There is a minor difference between SMS and CBS. SMS listens to a port where CBS listens to a channel.

Specific to Pusu, when the motion detection system detects a motion, the reporter class is invoked. Reporter class can have various implementations according to the user definition for reporting. The destination phone number is also defined by user. The message to be send is build by the application.

Originally posted in 2005.03.30 by Cahit Güngör - The Pusu Project Blog

J2ME Camera Speed Evaluation

Research Group Embedded Interaction has evaluated getting snapshot speed of the Nokia 6600 by J2ME code. This evaluation covers different encoding formats (PNG, BMP and JPEG) and resolution sizes (80x60, 160x120 and 200x150) with durations between one and ten seconds. The following tables show the results of the different simulations:

 
Format of the image: PNG

clip_image002

 

Format of the image: BMP

clip_image004

 

Format of the image: JPEG

clip_image006

byte[]jpegImageData=videoControl.getSnapshot (“encoding=jpeg&width=120&height=90”);

Above results are all involves the explicitly specified resolutions in their "getSnapshot" methods like above. What about a default resolution? (null value for diemnsions) The result is amazing. Performance increased by four times! (for ten minutes duration) The quality of the image remains same as before.


BMP and default resolution:

clip_image008

 

Originally posted by Orçun Dayıbaş in 2005.02.19 - The Pusu Project Blog

The Pusu Project

logo_wpOne of the main motivations of starting that blog is loss of my old one (hosted by the university that eagerly needed an extra 10 MB server space and deleted all "relatively old" accounts without any notice).


Anyways, as a software engineer, I always backup (and barely remember where to find ;) ) my works and development notes of the Pusu Project is no exception... I will -at least partially- repost them here as soon as possible



P.S.1: The expired URL of the Pusu Project development blog is http://web.cs.hacettepe.edu.tr/~b20021809/project/pusu

P.S.2: Pusu is the world's first 100% managed J2ME motion detection application (project has been completed in 2005).

P.S.3: I want to acknowledge my project colleague Cahit Güngör and project supervisor Kayhan İmre.