{ Burak Dede | Online Writings }
Sign in to compose/edit

TaskWhere : Location Aware Task Management

I have been implementing idea of mine for a while yes its a mobile app for Android, for now. 

How did I come up with the idea ?

I was not happy with old traditional task management tools (or we can say todo list applications) like remember the milk, google tasks ( I am not saying these are not good products but they just dont fit to my style ). I keep looking at people who are using this kind of applications and they were like "Ok I have this task no matter where I am I have to do this" well short story I am not like that. Even if I am close to location where there is a task that I "must" do, sometimes I dont. (somebody should push me to do it :) ) Yes these task management tools have reminder but take this situation, think of that you have to get some kind of documents from student administration, you opened up your traditional task management tool, added it & setted up reminder. Everything great up to here for me but if its a weekend and your application reminded you this task guess what you probably not even close to school and you probably just cancel the task and if remind you again you pissed of to application (even this is not application fault) and probably remove it. This is not seem as a effective way to get tasks done at least for me, you have to have some kind of location info attached to task and application must remind you not on time basis but on location. Yes this is my application idea in general.

How did I developed this ?

I have been thinking about this for about a month, last week I can sit front of the computer and sketch some mock up (not professionally sketched ones just pen and paper) and when I looked at the general design it seems like application will be ready to use in one and half day when I looked at my abilities with location based apps. But guess what its not, absolutely not, cause appearantly my judge for project deadline is far from the real one. It took my 5 days actually finish application. By the way its open source you can check source code @github, add if you have ideas, create fork, I dont know do what ever you want. By the way application will be on Android market very soon for free if you have time you can grab and install it. I will notify on twitter when its on. Oh I forgot name of the application its TaskWhere.

How it works ?

Basically you opened up application, create new task ( I specifically made it simple cause I have all these detailed todo list applications ) by providing location name, task and its location on the map. You can drag&drop pin or search address on the map for task location. Oh wait I forgot something you can set proximity alert radius for that task. This can be default value but I am sure user will request to able to set it so I added it up. Now you have list of tasks with ability to do some quick actions like edit, mark as done, activate, deactivate just by clicking on item. Application also have service that runs on background even its interacting with user. When you enter the proximity area of the task TaskWhere will send notification and most importantly when you left the area, this is important cause you may discard first notification but I hope second one convince you to do it thats why I added.

Is there any similar application ?

Actually I dont know this cause I did not search in an extended way other than android market, there is one but its working with private beta request. There are some iphone applications actually but they are not free well most of them.

Future Ideas

  • Synchronization ( thinking of adding Parse support which makes server side deployment, maintanence easy for mobile applications it funded by YC go look at it its great you can read, insert your object key-value based storage, but you have to request invite first )
  • GoogleTask Integration ( they have opened up offical api for this with Oauth integration etc. so it will be good to get this done )
  • May be some ui changes cause design of application fully belongs to me, I have to confest this here I can say if two color fits each other estetically (meaning I can taste good design :) ) but I do not have much ability about turning some sketch into actual design.

Not Dead, Yet

January 21, 2012

I was busy for a while that I couldnt find a time or excitement to write a blog post on whats going on or at least what I am doing for a while actually I am using twitter more than enough for that purpose. Lets cut to the chase, I was busy with my summer school taking courses (Signal&Systems, Engineering Management etc) and rest of the time I try to hack new things mostly. For about almost 2-3 weeks I try to implement my own project that I developed for android that had some unfinished business. Than I got request from one of gsm companies to implement application for their brand. I almost finished developing application that I can say my progress about %90 right now. I got some design and code review things to do with project other than that I am done with it for a while.

 

I try to grasp deep knowladge about python world cause I have both stand alone and web projects that waiting to be implemented with python. I started for a while with Zed Shaw's Learn Python The Hard Way book then move on to Mark Lutz Learning Python. I can recommend Zed's book for new starters its a good book mostly direct you to self learning and searching. Mark Lutz book is more elaborate and detailed on this topic providing really deep theoretical knowladge for about 200 pages, some people dont like this they want to directly jump into hello world => syntax => expressions => data structures and goes like that. I was reading the latest version of Mark's book which covers Python 3.0 not common use right now but will be in the future and you can learn whats new with that version. Because there are not so much projects using Python 3.0 in order to really understand changes with versions I am still reading Python 2.5 version of the book which you can find here. I forgot to mention but "A byte of python" is another great book that probably you can finish for about 1-2 hour its free also you can get it from here. And how about Python ? Well for short python is a language that designed for readability first in mind so code you have written looks very structured and thats one thing I wanna see in a language IMHO. Coming from Java background thats one thing I miss for a while (i think somebody said inner class, oh my). Other thing I like about Python that philosophy "Explicit is better than implicit". Yes you exactly see whats going on when you do things in Python I think this is one the things that differs Python from Ruby which allows you to do things "magically". You can get more of this from Zen of Python or by "import this". I will write more about Python and things interesting about design of it and comparison with languages I know. Thats it for a whille...

Bu yaz ne yapıyosun, ne yapıyorum ?

January 21, 2012

Evet bu sorunun cevabını henüz bende bilmiyorum ancak bu yaz hiç olmadığım kadar bana ayrılmış bir yaz olacağını tahmin ediyorum. Okul,iş,staj derken yaklaşık 2 senedir hiçbir yaz tam anlamıyla bana ait olmadı, bu yaz bana ait derken bir tarafımı yayıp tatil yerlinden çektiğim fotoğrafları twitter'a facebook'a gönderecek bir yaz tatilide beklenmesin benden bizimki az, öz ve sessiz oluyo gerçi bekleneceğinide sanmıyorum zaten. 

Staj vb işlere girmedim çünkü yeterince o tecrübeyi doya doya tattığımı düşünüyorum. Gerçi 2 sene gibi uzun bir süre oldu staj biteli ancak devamında gelen iş tecrübesi staj yapmayı gereksiz kıldı. Tekrardan staja başvurmak demek tekrardan yeni bir firma kültürüne ayak uydurmak, süreçlerini öğrenmek demektir ki Türkiyede 3 aylık süre altında staj yapılan hiçbir yerde verimli olarak süreçlerin anlaşılabildiğini ve anlaşılacağını düşünmüyorum. Bu 2 sene boyunca birçok konuya el attım ve içine daldım, kimi zaman debelendim kimi zaman rahatlıkla yaptım ancak geriye baktığımda hızlı bir gelişme kaydettiğimi söyleyebilirim özellikle okul ve iş cidden yanyana iyi geçinen bir ikili değil eğer becermeyi bilmiyorsanız.

Staj yerine full zamanlı da çalışabilirdim ancak bunu da tercih etmiyorum artık, çünkü bundan bir sene sonra kendi istediğim şeylerle uğraşabileceğimden kesin emin olamadığım (ne kadar bu konuda rahat olabileceğim düzeye ve konuma göre kendimi hazırlasam da) için bu kısıtlı zamanlarda kendi yapmak istediğim ve uzun süredir ertelediğim şeyleri yapmayı düşünüyorum hem sosyal hem teknik anlamda. Açıkçası bir konu bana ilgi çekici gelmiyorsa pek de üzerine düşüp uğraşmayı seven biri değilim her konuda bu böyle. O yüzden 3 aylık dilimde uğraşmayı düşündüğüm birçok madde var ancak bunların hepsine ayrı ayrı dalarak da ziyan etmek istemiyorum çünkü daha önce başıma geldi birçok şeyi yapmaya çalışırken arka arkaya hepsinden çuvallamak gibi. O yüzden bu konudan ağzım yandığı için şimdi daha temkinli davranıyorum ne kadar üniversite projeleri bunu aksi yönde bir program çizsede yazın bunlar ortadan kalkıcak.

Son seçenek olarak kendi merak ettiğim bir konuda yepyeni bir dil,framework ya da teknoloji kullanarak ortaya bir ürün çıkarmak. Bu kesinlikle diğer seçenekler arasında en kulağa hoş geleni ve evet diğerlerine göre kısa süreçte maddi bir getirisi yok ancak uzun süreçte getirisine bakarsan diğerleri solda sıfır kalır, süper büyük bir şirkette staj yapmış gibi görünüp aslında hiçbir şey yapmayanları, normal çalıştığı yerde hiçbir şey yapmadan mesai bitimini bekleyip yinede çok çalışıyormuş gibi görününleride. Şimdi biraz kafa yorup nasıl birşey yapabileceğimi düşünelim

  • öncelikle kesinlikle "öyle birşey yapmalıyım ki herkes kullansın bende bundan ya zengin olurum ya da facebook google microsoft gibi şirketlere satarım" gibi bir görüşle ortaya çıkmıyoruz. 
  • ikincisi kimse sizin kıçı kırık bir projeyi php,mysql,apache ile yapıp içine hiçbir yeni teknoloji katmadığınız ya da ihtiyaçtan doğan bir ürün ortaya koymadığınız, sadece yapmış olmak için yaptığınız projeye kuruş vermez. Ihtiyaç olmasıda zorunluluk değil sadece nasıl sistemin nasıl çalıştığını öğrenmek için bile benzer bir proje kopyalanabilir. İhtiyaçtan neler yapılabileceğinin bir örneğini ben size şöyle vereyim gerisini siz araştırıp zaten bulursunuz hadi bir tane daha vereyim içimde kalmasın facebook'un bir kıyağı. Ha bunlar zart diye karşımıza sıfır ve çalışır halde gelen projeler mi hayır bildiğim kadarıyla hiphop 2 senelik bir geliştirme ürünü keza cassandra'da top level apache projesi olmadan önce apache incubator altındaydı. Gidip araştırırsanız satın alımlarda genelde ya arkada cidden güzel bir fikir vardır ve ortaya düzgün bir sunumla konulmuştur ya da arkada bir beyin transferi yapılmak istenmiştir genelde böyledir ama istisnalarıda mevcuttur tabii ki bu konuda çok da uzman olmadığım için daha fazlada sallamak fikir sallamak istemiyorum sadece gördüklerimi söylüyorum.
  • daha önceden tecrübe ettiğiniz bir konuda yola çıkmak her zaman iyi bir çözüm ve zaman kazandırıcı olacaktır. Örneğin okul projesi olarak senkronizasyon ile ilgili bir network uygulaması mı yazdınız bu sizin bu konuda belli bir seviyeye geldiğinizi gösterir ve bundan devşireceğiniz projelerde size zaman kazandırır. Örneğin bu proje boyunca edindiğiniz bilgiyi benzer bir uygulamayı web üzerinde port ederek ve cloud storage kullanarak ortaya çıkarmak size büyük tecrübeler kazandırır hele de bu aralar dropbox'ın suyu ısınmışken. Ve sistemin kullanıcı tarafında nerelerde eksiklerini olduğunu ve sizin sisteminizde bu açıkları nasıl kapatmanız gerektiğini bilerek. Bu konuda açık kaynak bir proje bulursanız ne şanslısınız, size büyük yol gösterici olacaktır.
  • gelelim ne gibi teknolojiler kullanacağınıza ruby ve ruby on rails ikilisi son zamanlarda çok ilgili çeken dil ve onun web üzerindeki framework'ü ve müthiş bir community'si var. Sadece github istatistiklerini bakarak bile ne kadar çok geliştiriciye sahip olduğu hakkında basit bir fikir edinebilirsiniz. Dil olarak ilk zamanlarda size biraz farklı gelebilir ama eğer java vb strong typed dillerden gelen biriyseniz ruby programlarını yazmak sizin için zevk olacaktır. Hele ruby öğrendikten sonra ruby on rails ile web gelilştirmesi yapmak daha da zevkli kısmı. Kendine has scalability sorunları var ancak bu da işin tuzu biberi olacaktır ki bana göre bu sorunlarla uğraşmak ve çözüm getirmek hepsinden daha önemli bir tecrübe daha büyük sistemlerde çalıştığınızda size kesinlikle yardımı olacaktır.
  • e birde mobil uygulama diye bir trend var, bu web uygulamanıza ister platform bazlı çalışarak ( android,iphone,blackberry) ya da mobil bir framework kullanarak tek uygulama ile bütün platformları kapsamak diğer bir çözüm açıkçası benim tercihim platform bazlı çalışmak olur ancak tercihler zevke göre değişebilir.

ha bu arada hatırlatıyım bunları yaparken 3 ayınız gitti :( , hani tatil yapıyoduk :) neyse şu konser iyi gibi duruyo bende orda olacağım yüksek ihitmal bizimde tatilimiz bu napalım, fotoğrafta alakasız ama koyasım geldi sadece :)

 

 

Deeply Search Files In Given Directory Java - Recursive Way

For one of my Java projects I need to search files and directories within given directory, so i need to come up with optimal solution cause when i searched a little for this problem the codes floating around are just useless some of them not searching in a deep way or some of them are written in a poor way. So I come up with my own solution that do the job with recursive way. Here is a code for that.

public void deepRecSearch( File givenDir ) throws IOException {
    if (givenDir.isDirectory()) {
        final File[] childs = givenDir.listFiles();
        for( File child : childs ) {
           deepRecSearch(child);
        }    
        return;
    }
//put your implementation about file here
//like what you wanna do with that file print absolutePath or sth
}
 

Syncing Your Iphone With Ubuntu

January 21, 2012

I can consider myself as a long time linux user, i switch to MacOs for a while but for a while i am using my Ubuntu. The problem is i am having hard times syncing my Iphone with my Ubuntu 10.10 . Then i have found this PPA written by Paul McEnery which helped a lot. Just add the PPA and get install latest updates with "libimobiledevice" . I tested it under Ubuntu 10.10 with Banshee and its working like a charm.

sudo add-apt-repository ppa:pmcenery/ppa sudo apt-get update sudo apt-get install libimobiledevice1

Burak Dede

I am computer engineer and programmer living in Istanbul, Turkey. This site contains my online writings mostly about software development and programming languages.

RSS Feed

Subscribe to feed

Subscribe to get latest posts from this blog if you are regular reader.

Burak Dede © 2011
About @Contact RSS