30 Haziran 2013 Pazar

Windows Phone "Tracker" Apps

Windows Phone “Tracker” Uygulamaları

Windows Phone 8 için geliştirmekte olduğum LifeLoggingCCPhone uygulamasını Windows Phone Store’a yüklemeden önce şu anda benzer ne gibi uygulamaların bulunduğunu görmek amacıyla
www.windowsphone.com sitesindeki uygulamaları taradım.


Windows Phone 8 ortamı için geliştirilmiş olan ve "Lifelogging" anahtar kelimesi içeren her hangi bir uygulama bulamadım. Buna en yakın terim olan "Tracker" ile tarama yaptığımda ise çok sayıda uygulamayla karşılaştım. 24 Haziran 2013 tarihindeki taramada toplam 699 uygulamadan oluşan bir liste elde ettim. Bu listede hem Windows 7 ve alt sürümleri hem de Windows 8 uygulamaları olduğundan dolayı aynı uygulamanın birden çok sürümü de bulunabilmektedir. Uygulamaların listesi ve ilk aşamada oluşturduğum sınıflandırmaya https://meminmutlu.wordpress.com/personalis/windows-phone-tracker-apps/ adresinden erişilebilir.

İlk aşamada oluşturabildiğim uygulama grubu sayısı 56. Fakat daha detaylı bir çalışmayla bu sayı hiyerarşik olarak düzenlendiğinde daha da artacaktır. Örneğin “Spor” grubu spor dallarına göre alt gruplara ayrıştırılabilir.

Spor
Yakıt
Proje Yönetimi
Fitness
Etkinlik
Adres
Sağlık
Arkadaş/Sosyal
Avlanma
Diyet
Yolculuk/Seyahat
Son kullanım tarihi
Finans
Dua/Meditasyon
Bahçe
Kadın Sağlığı
Otomobil
Faaliyetler
Bebek
Zaman/Kronometre
İnternet Kullanımı
GPS
Skor Kartı
Taşınma
Telefon
Araçlar
Günlük
Lig/Takım
Pet Bakım
Rutinler
Oyun
Eğitim
Bağlantılar
Doğa/Olayları
Duygu Durum
Navigasyon
Bira/Viski
Sayaç
SMS
Ulaşım
Varlıklar
Veri Toplama
Kargo
Sorun
Gözlem
Media
Fırsatlar
Tanımlamayanlar
Alışveriş
Haberler
Uydu/Uzay İstasyonu
Tarih/Randevu/ajanda
Uçuş
Ekip Çalışması
İş-Görev-Çalışma
Geliştirme

Uygulama listesindeki uygulamaların her ne kadar adında ya da açıklamalarında “Tracker” sözcüğü geçse de aralarında kişisel bir durumun izlenmediği uygulamalar da bulunmaktadır. İlk aşamada bu uygulamalar ayıklanmamıştır. Kişilerin akıllı telefonlarla neleri izlemeye değer bulduklarını genel olarak değerlendirdikten sonra ayıklama yapmak daha doğru olacaktır.

Örneğin, televizyon dizilerinin yayın tarih/saatlerini izlemek amacıyla kullanılan bir uygulama eğer izlenen bölüm hakkında bilgi kaydına olanak sağlıyorsa, o uygulama kişisel bir durumun (bir televizyon dizisinin bir bölümünün belirli bir tarih ve saatte izlendiği bilgisi) kaydedilmesi amacıyla kullanılabilmektedir.

Bir uygulama kişinin kendisine ait olmayan bir bilgiyi kaydetmek amacıyla kullanılmasına rağmen yine de dolaylı olarak kişisel bir durum kaydedilmiş olabilir. Örneğin bebek gelişimini izleme uygulamalarında anne kendisine ait hiçbir bilgi kaydetmese bile girilen tarih ve saatlerde bebeğiyle ilgilendiğine dair bir durum bilgisini kaydetmiş olmaktadır.

İçerdiği uygulama sayısı açısından öne çıkan türler şunlardır:  Spor (47), Fitness (16), Sağlık (31), Diyet (50), Finans (83), Kadın Sağlığı (13), Bebek (14), GPS (35), Telefon (20), Lig/Takım (19), Oyun (55), Ulaşım (24), Kargo (13), Medya (15), Alışveriş (16), Uçuş (18), Yakıt (20), İş-Görev-Çalışma (9), Etkinlik (12), Arkadaş/Sosyal (13), Yolculuk/Seyahat (23), Zaman/Kronometre (34), Skor Kartı (17), Araçlar (12), Varlıklar (9), Haberler (9).

En fazla uygulamanın “Finans” grubunda olduğu görülmektedir. Bu alanda harcama, borç alma-verme, nakit akışı, bütçe denetimi, fatura takibi, para cüzdanı izleme, hesap-bahşiş paylaştırma gibi uygulamalar bulunmaktadır. Finansal faaliyetlerin çoğu rutin işlemler olsa da hayatımızdaki önemli pek çok olayın mutlaka finansal bir boyutu vardır. Eğer sürekli olarak kullanılırlarsa bu uygulamalarla kişi kendisine ait daha sonra hatırlayabileceği çok sayıda “yaşam günlüğü” bilgisini kaydetmiş olur.   

Uygulama sayısının fazla olduğu diğer bir grup ise “Oyun” uygulamalarıdır. Bu yanıltıcı bir durumdur. “Tracker” sözcüğü her türlü oyun içinde geçebilecek bir sözcük olduğundan dolayı bu uygulamaların çoğu kişisel izleme özelliği olmayan sıradan bilgisayar oyunlardır. Yine de bu grup içerisinde bireylerin sahip oldukları oyunları ve performanslarını izlemeleri amacıyla geliştirilmiş izleme uygulamaları da bulunmaktadır. Bilgisayar oyunlarının gençlerin zamanlarının önemli bir bölümünü kapsadığı düşünülürse, bu kayıtlar “yaşam günlüğü” açısından önem kazanmaktadır.

Üçüncü grup “Diyet” uygulamalarından oluşmaktadır. Bu uygulamalarla bireyler ağırlıklarını kaydederek izleyebilirler, kalori hesabı yapabilirler. Bazı uygulamalarda yiyecek ve içecek bilgileri de kaydedilebilmektedir. Bu uygulamalar sürekli kullanıldığında (eğer yemekte bulunan diğer kişilere ait bilgi de kaydedilmişse) önemli bir “yaşam günlüğü” kaynağı olabilir.

Dördüncü grup “Spor” uygulamalarından oluşmaktadır. Bu grupta yürüyüş vb. doğa sporlarının GPS ile izlenmesi, hemen her spor türü için kişisel ve ekip gelişiminin izlenmesi gibi uygulamalar bulunmaktadır. Bu uygulamalar yardımıyla haftanın doğa sporları yapılan birkaç saatinin gerçek zamanlı kaydı tutulabilir.

En fazla uygulamanın olduğu beşinci grup ise GPS uygulamalarını barındırmaktadır. Bu uygulamalar genel amaçlı olarak bireylerin konumlarını belirlemekte, kaydetmekte ve harita üzerinde göstermektedir. Bu gruptan seçilebilecek uygun bir uygulama ile tüm zamana ait gerçek zamanlı konum bilgisinin kaydı tutulabilir.

Altıncı uygulama grubunda zaman takibi ve kronometre gibi uygulamalar yer almaktadır. Özellikle “freelance” ya da saat hesabı çalışanların projelere harcadıkları zamanları belirlemeleri için yararlıdırlar. Özellikle serbest çalışanların ne zaman ne yaptıklarına dair ayrıntılı bir kayıt havuzu oluşturulabilir.

Yedinci grup ise “Sağlık” uygulamaları grubudur. Bu uygulamalarla kişiler sağlık durumlarını kaydederek izleyebilirler. Bunların arasında sigara kullanımını izleme, ilaç takibi gibi uygulamalar da bulunmaktadır. Bu uygulama grubu ile kişinin zaman ekseninde yer alan önemli bir olay-durum bilgi kümesinin kaydı gerçekleşir.

Bir başka uygulama grubu ise “Ulaşım” grubudur. Çeşitli şehirler için geliştirilmiş otobüs, metro, feribot vb. toplu ulaşım araçlarının harekat saatlerine erişilebilmektedir. Eğer ulaşım aracını kullanma bilgisi de kaydediliyorsa bu bilgi bir yaşam günlüğü bilgisi olarak kişinin zaman eksenine yerleştirilebilir.

İzleyen grup “Yolculuk/Seyahat” uygulamaları grubudur. Bu uygulamalarla seyahatlar planlanabilir, GPS ile izlenebilir, iş ve özel seyahat harcamaları izlenebilir. Tarih, saat, olay ve konum bilgisinin kaydı ile önemli bir yaşam günlüğü verisi elde edilir.
“Yakıt” uygulamaları otomobillerinde harcadıkları yakıtı izlemek isteyen kişilere yöneliktir. Daha çok finansal amaçlarla kullanılmasına rağmen üstteki “Yolculuk/Seyahat” grubu için söylenenler bu grup için de geçerlidir.

“Telefon” uygulamaları ağırlıklı olarak arayan telefonun konumunu belirlemeyi amaçlamakla birlikte kullanılan telefon operatörünün bu hizmeti vermesi gerekmektedir. Eğer saptanan bilgi kaydedilebiliyorsa yaşam günlüğü açısından destekleyici bilgi olarak kullanılabilir.

İlginç bir grup ise “Lig/Takım” uygulamaları grubudur. Kişilerin ilgilendikleri spor karşılaşması liglerini ve spor takımlarını izlemeleri için geliştirilmiştir. Alaska köpek yarışlarından basketbol takımlarına kadar çeşitlilik göstermektedir. Çoğu yetişkin spor karşılaşmalarını izlemek için önemli zaman harcar. Bu zaman bilgisinin kaydedilmesi yaşam günlüğü açısından önemli veri sağlar.

“Uçuş” uygulamaları havayolu tarifeleri ve uçuş bilgilerini izlemek amacıyla kullanılabilir. Uygulamaların çoğunda uçuş numarası ve tarih girilerek kalkış ve varış konumu ve saatlerine erişilebilmektedir. Gerçekleştirilen uçuşa ait bilgi kaydedildiğinde destekleyici bir yaşam günlüğü verisi elde edilir.

“Skor Kartı” uygulamaları kişilerin amatör spor etkinliklerinin puanlarını kaydetmelerini ve izlemelerini sağlar. Bilardodan golfe kadar her türlü karşılaşmada kullanılabilecek uygulamalar bulunmaktadır. Bu bilgi kaydedildiğinde kişinin boş zamanlarını değerlendirmesiyle ilgili yaşam günlüğü verileri elde edilir.

“Fitness” uygulamaları kişilerin fitness programlarını oluşturmaları ve izlemelerine olanak sağlar. Haftada üç gün ve günde iki saat olan standart bir fitness programı ile haftada yaşanan 6 saate ait verinin kaydedilmesi sağlanabilir.

Bir diğer grup ise “Alışveriş” uygulamalarıdır. Bu uygulamaların çoğu alışveriş sitelerindeki bir ürünün fiyatını takip etmeyi sağlar. Genellikle bir firmanın “istemci” uygulamalarıdır. Finans ve varlıklar gibi gruplardaki uygulamalardan elde edilen bilgileri desteklemek amacıyla kullanılabilir.

“Medya” uygulamaları kişilerin kitap, film, dizi film gibi etkinlikleri izlemeye alması ve durum, tarih, saat ve yorum bilgilerini kaydetmelerini sağlar. Kişilerin medya ortamlarında geçirdikleri süre günde en az birkaç saat olabilmekte ve böylece önemli bir yaşam günlüğü verisi üretilmektedir.

“Bebek” uygulamaları hamilelik takibi,  yenidoğan bebeklerin günlük olarak izlenmesi çocuk gelişimini izleme gibi uygulamaları içerir. Annenin hayatının önemli bir dönemine ait detaylı bir yaşam günlüğü verisi sağlar.

“Kadın Sağlığı” uygulamaları özellikle kadınların adet dönemlerini takip etmeleri için kullanılır. Kadınların yaşam günlüğü zaman ekseninde bulunması gereken bir veri kümesidir.
"Arkadaş/Sosyal” uygulamalarıyla bir sosyal ağ üzerinden kayıtlı arkadaşların gerçek zamanlı olarak bulundukları yer izlenebilir. Etkileşimlere ait yaşam günlüğü verisini türetmek amacıyla kullanılabilir.

“Kargo” uygulamalarında kargo şirketlerinin sağladıkları izleme numaralarıyla bireyler kargolarının durumlarını izlemeye alabilirler. Finans, alışveriş ve varlıklar uygulamalarını destekleyici veriler elde edilebilir.

“Etkinlik” uygulamaları ile kişiler günlük etkinliklerini planlayabilirler ve gelişmeleri kaydederek izleyebilirler. “İş-Görev-Çalışma” uygulamaları ile kişiler çalışma hayatına yönelik iş, görev ve faaliyetleri planlayabilir, kaydedebilir ve izleyebilirler. Bu uygulamalar ile kişiler kendi 9-5 zaman dilimlerine yönelik yaşam günlüğü verisini kaydedebilirler.

“Varlıklar” grubundaki uygulamalar ile sahip olunan maddi varlıklar kaydedilebilir ve izlenebilir. Diğer gruplarla desteklendiğinde zaman eksenindeki pek çok kilometre taşı belirlenebilir.

“Haberler” grubundaki uygulamalar ise kişinin abone olduğu haber kaynaklarından gelen haberleri izleyebilmelerine olanak sağlar. Eğer bireyin okuduğu-seyrettiği haberlere ait içerik kaydedilebilirse kişinin zaman eksenine paralel olarak bir dış dünya bilgisi ekseni de oluşturulabilir.

“Araçlar” grubu ise çok sayıda işlevi barındıran araç setlerini içerir. Bu setlerde bir ya da birkaç izleme işlevi de bulunabilmektedir. Bu uygulama grubu, tüm izleme işlevlerini içeren olası bir süper izleme setinin tasarımına yönelik ilham vermektedir.

Sınıflandırma listesinde az sayıda uygulamanın yer aldığı ama “yaşam günlüğü” açısından önemli gruplar da bulunmaktadır. Bunlar arasında “Duygu Durum” bilgisinin kaydedildiği uygulamalar, “Dua/Meditasyon” etkinliklerini yönetmek için kullanılan uygulamalar, “Proje Yönetimi”, “Avlanma”, “Bahçe Bakımı” uygulamaları, Kuaför vb. İzlemek için kullanılan “Faaliyetler”, “Taşınma” etkinliklerini izleme, “Günlük” uygulamaları, “Pet Bakımı”, sık tekrar edilen faaliyetleri yönetmeyi sağlayan “Rutinler”, “Doğa Olayları”, “Sorun” izleme, “Tarih/Randevu/Ajanda” ve “Ekip Çalışması” uygulamaları bulunmaktadır.

Bu çalışmada grupların genel değerlendirmesine yer verildi. Eğer gruplardaki uygulamalar kendi başlarına ele alınarak “yaşam günlüğü” bağlamı açısından değerlendirilirse ele alınması gereken bir dizi özellik bulunmaktadır.

İlk göze çarpan özellik “izlenen” bilginin kaydedilip kaydedilmediğidir. Bu özellik uygulamanın “Life Logging” uygulaması olarak kullanılıp kullanılmayacağını belirlemektedir.
İkinci özellik izlenen bilginin akıllı telefon tarafından kendiliğinden mi, yoksa kullanıcı tarafından elle (manuel)  olarak mı kaydedildiğidir. Bazı durumlarda kayıt süreci hem otomatik hem de manuel kayıt içerebilir. Ya da bilginin bir bölümünün kendiliğinden (örneğin konum, tarih ve saat bilgisi gibi), bir bölümünün ise kullanıcı yorumu şeklinde manuel olarak girilmesi gerekebilir.

Üçüncü özellik kaydedilen bilginin akıllı telefon tarafından işlenerek özetlenmesi-raporlanmasıdır. Bazı uygulamalarda bilgi bir algoritma ile izlenerek kullanıcının yönlendirilmesi, uyarılması ya da bilgilendirilmesi sağlanmaktadır. Örneğin diyet ve spor uygulamalarının çoğu bu şekildedir.

Bunların dışında uygulamanın hatırlatıcı bir özelliğe sahip olup-olmaması, uygulamanın arka planda gerçek zamanlı olarak çalışıp çalışmadığı, bilgileri telefonda mı yoksa bulut ortamında mı tuttuğu, sosyal ağ oluşturup oluşturmadığı gibi değişik teknik özellikler de ele alınabilir.

Şu anda Windows 8 ortamında çalışan AllMyListsMetro ve LifeLoggingLE uygulamalarıyla genel amaçlı bir yaşam günlüğü deneyimi gerçekleştirmek mümkündür. 2011 yılında Windows Phone SDK 7.1 ortamında deneysel olarak geliştirdiğim AllMyListsPhone uygulamasını dışarıda tutarsak henüz akıllı telefon ortamında çalışan ve kendi başına çalışan bir yaşam günlüğü uygulaması geliştirmiş değilim. LifeLoggingCCPhone uygulaması Windows Phone üzerinde 30 saniyede bir kamera görüntüsü alabilmesine rağmen elde edilen görüntüler Windows 8 Masaüstü ortamında LifeLoggingLE ile değerlendirilebilmektedir.

Gelecekte Windows Phone ortamındaki “Tracker” uygulamaları ayrıntılı olarak ele alınarak aralarında seçilecek kullanışlı uygulamalarla, kapsamlı bir “yaşam günlüğü” uygulama seti elde edilebilir. Böyle bir deneyim sonucunda Windows Phone ortamında çalışan ve bütün “yaşam günlüğü” işlevlerini barındıran bir süper uygulama tasarlanarak geliştirilebilir.

31 Mayıs 2013 Cuma

Hardware of LifeLogging Project

LifeLogging Projesinin Donanımları

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" projesinde geliştirme ve uygulama sürecinde giyilebilir yaşam günlüğü kameraları, akıllı telefonlar, tabletler, diz üstü bilgisayarlar ve masaüstü bilgisayarlar kullanılacaktır.  Windows Phone 8 yüklü olan Nokia Lumia 920 model akıllı telefonlar 12 Mart 2013 tarihinde temin edilmiştir. Bu telefonlarda projede geliştirilen LifeLoggingCCPhone yazılımı kullanılacaktır. Uygulayıcılar hareket halindeyken ya da bilgisayarları başında değilken bulundukları ortamı görüntülemek istediklerinde bu yazılımdan yararlanacaklardır.
30 Mayıs 2013 tarihinde ise tümünde Windows 8 Pro işletim sistemi yüklü olan tablet, dizüstü ve masaüstü bilgisayarlar gelmiştir. 

Projede tablet bilgisayar olarak Samsung Ativ Smart PC Pro kullanılacaktır. Bu cihazda projenin uygulama sürecinde LifeLoggingSC, LifeLoggingSCDesktop ve LifeLoggingCC yazılımları yüklü olacaktır. Uygulayıcıların bu tableti mobil durumda iken ya da iş dışında sosyal medyaya erişirken ekran görüntülerini kaydetmek ya da ortamı görüntülemek amacıyla kullanacakları öngörülmektedir.
Projede kullanılacak olan dizüstü bilgisayarlar için Lenovo IdeaPad Yoga 13 seçilmiştir. Bu bilgisayarlarda da LifeLoggingSC, LifeLoggingCC ve LifeLoggingSCDesktop çalışacaktır. Uygulayıcılar bu bilgisayarı iş ortamı dışında seyahat halindeyken profesyonel kullanım anında ekran ve ortam görüntülerini kaydetmek amacıyla tercih edeceklerdir. 
Projede kullanılacak masaüstü bilgisayar olarak Sony Vaio L seçilmiştir. Bu bilgisayar ev ortamında kullanılacaktır ve diğer yazılımların yanısıra AllMyListsLE ve LifeLoggingTransporter yazılımları için kullanılacaktır. Bu yazılımlarla yaşam ve öğrenme deneyimlerini yönetebileceklerdir.
Projede kullanılacak donanımların arasında sadece giyilebilir yaşamgünlüğü kameraları henüz temin edilememiştir. Bu donanım türü için Autographer ya da Memoto marka giyilebilir kameralar düşünülmektdir. Henüz her iki kamera da piyasaya sürülmemiştir.



Uygulayıcılar bu kameraları günlük yaşamlarında içinde bulundukları ortamı kaydetmek amacıyla kullanacaklardır.

Architecture of AllMyListsLE List Management Software

AllMyListsLE Liste Yönetim Yazılımının Mimarisi

AllMyListsLE yazılımının kökenleri 2011 yılında geliştirmeye başladığım Windows Forms tabanlı AllMyLists yazılımına dayanmaktadır. Bu ilk geliştirmeyi WPF tabanlı AllMyListsWPF uygulaması izlemiş, ardından MVVM mimarisini denemeye çalıştığım AllMyListsWPFMVVM yazılımını geliştirmeye başlamıştım. Daha sonra 2012 yılında bir Windows 8 Store uygulaması olan AllMyListsMetro'yu bütünüyle yeni bir mimari üzerinde geliştirdim (https://meminmutlu.wordpress.com/personalis/pim-projects/).

2013 yılında "Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" isimli projede yaşam ve öğrenme deneyimlerinin yönetimi için bir yazılıma gereksinimi duyulduğunda  AllMyListsWPFMVVM tasarımını temel alarak AllMyListsLE yazılımını geliştirmeye başladım.(http://personalinformationsystems.blogspot.com/2013/02/development-and-implementation-of.html)

AllMyLists yazılımı bir ana pencereye yerleştirilmiş birer ağaç, ızgara ve zengin metin kutusu denetimleri üzerinde çalışmaktaydı. Tüm kodlar ana sayfaya yerleştirilmişti ve sayfadaki denetimlere ait olaylar ana sayfada işlenmekteydi.

AllMyListsWPF'de denetimler Windows Forms yapısından XAML'e taşınmış fakat işleyiş aynı bırakılmıştı. Tüm kodlar ana sayfada yeralmaya devam etmişti. XAML teknolojisi Windows Forms'un rijid yapısına göre büyük tasarım esnekliği sağlamıştı.

AllMyListsWPFMVVM'de ise denetimlerin kendi kodlarını kendi içlerinde barındıracak şekilde düzenlenmeye çalışılmıştır. Bu amaçla ana sayfada bulunan ve denetimlerin altında çalışması daha mantıklı olan tüm kodlar denetimlere birer method olarak taşınmış ve denetimler de birer "UserControl" haline getirilerek birer kopyaları (ilgili "Grid" ler ve "GridSplitter" lar dışında boş olan) ana pencereye yerleştirilmişlerdir.

AllMyListsLE yazılımına başlandığında ise ilk yapılan işlem tüm veritabanı işlemlerinin ayrı bir sınıfa aktarılması olmuştur. Böylece bütün denetimlerin kullandığı ortak bir veri modeli oluşturulmuştur. Diğer taraftan yazılıma LifeLogging görüntülerinin görüntülenmesiyle ilgili yeni "UserControl" ler eklenmiştir. Bu denetimler görüntülerin yerleştirildiği bir görüntü listesi ile verilen bir güne ait görüntülerin hangi cihaza ait olduğunu belirtmek amacıyla kullanılan bir cihaz listesidir.Diğer taraftan yazılımın yapısı düğümleri kullanıcı tarafından oluşturulan "MyList" ve düğümleri kaydedilmiş görüntü klasörlerinden elde edilen "LifeLog" şeklinde iki ayrı ağaç yapısını işleyecek hale dönüştürülmüştür.

Bir süre sonra "MainWindow" ve kendisine yerleştirilmiş olan "UserControl" ler arasında yoğun bir bağımlılık bulunduğu, denetimlerden ana penceredeki değişkenlere ve yöntemlere erişildiği hatta denetimlerin ana pencere üzerinden diğer denetimlere eriştiği gözlenmiştir. Örneğin kullanıcı ağacın bir düğümünü seçtiğinde, ağaç nesnesi cihaz listesi nesnesine erişmekte, cihaz listesi nesnesinden bir cihaz seçildiğinde ise cihaz listesi nesnesi görüntü listesini etkinleştirmektedir.

Bu durum dolaşıklık oluşturmakta ve nesne yaklaşımlı programlama mantığıyla çelişmektedir. Bu sorunu aşmak amacıyla ayrıntılı bir tarama yapılmış ve yazılımın tümünde sadece ana pencereden üzerinde yerleşik bulunan kullanıcı denetimlerine erişimin bulunduğu, denetimlerden ana sayfanın ya da diğer denetimlerin çağrılmadığı duruma kavuşuncaya değin bir ayıklama işlemi gerçekleştirilmiştir. Bu amaçla denetimlere çok sayıda "Event", "Field" ve "Property" eklenmiştir. Böylece bir denetimin diğer bir denetime doğrudan erişmesi yerine kendisine ait özel bir "Event" ı tetiklemesi, bu "Event" ı yakalayan ana pencerenin hedefteki denetime erişmesi şeklinde bir geçişkenlik kullanılmıştır. Veritabanı nesnesinin ana pencere üzerinde çağrılması yerine denetimlerde gerekli olan yerlerde "Private" veritabanı nesnelerinin tanımlanması yoluna gidilmiştir. 

Yukardaki örnek bu durumda şu şekilde çalışmaya başlamıştır: Ağacın bir düğümü seçildiğinde bir olay tetiklenir. Ana pencere bu olayı yakalar ve cihaz listesini etkinleştirir. Cihaz listesi nesnesi bir öğe seçildiğinde bir olayı tetikler. Ana pencere bu olayı yakalar ve görüntü listesini etkinleştirir. Böylece alt denetimler kendi aralarında iletişimi ana pencere üzerinden sağlarlar.

Nisan sonu, Mayıs ortası arasında yapılan ayıklama sonucunda yaklaşık 450 dolaşık çağrı yazılımdan kaldırılmıştır. Böylece AllMyListsLE yazılımında karmaşıklık ortadan kaldırılmış, basit ve anlaşılır bir mimari elde edilmiştir. Gelinen aşamada denetimlerin veri modeline bağımlılığı dışında diğer nesnelere olan bağımlılığı kalmamıştır. Bir sonraki adımda denetimler ile veri modeli arasında bağımsızlık sağlanacak ve bu süreç yazılımda MVVM mimarisine tam anlamıyla geçilene kadar devam edecektir.

18 Nisan 2013 Perşembe

Transfer Images From SkyDrive Folders To Local Folders

Görüntüleri SkyDrive Klasörlerinden Yerel Klasörlere Taşıma

Önceki yayından günümüze geçen süre içerisinde bir Windows Store uygulaması olan LifeLoggingCC yazılımının masaüstü sürümünü geliştirdim. LifeLoggingCCDesktop olarak adlandırdığım bu yazılım Windows 7 ve Windows 8 masaüstünde çalışmakta ve yerel klasörlere erişebildiği için doğrudan SkyDrive klasörüne kayıt yapabilmektedir. Kamera görüntüsü kaydeden yazılımlar genellikle kamera görüntüsünü önce ekrandaki bir "image" nesnesine yansıtmakta ve bu nesne üzerinden kayıt gerçekleştirmektedirler. Bu durum kullanılan API'lere göre değişen çeşitli sorunlara neden olmaktadır. Bazı durumlarda "image" üzerin başka bir pencere geldiğinde "overlay" gerçekleşmekte ve kaydedilen resimde üstteki pencereye ait parça da görünmekte. Bazı durumda da "image" 'ı içeren pencere küçültüldüğünde görüntü alınamamakta. Bu nedenle LifeLoggingCCdesktop'u geliştirirken image kullanmayan bir çözüm aradım ve OpenCV'yi keşfettim. OpenCV'yi .Net ortamında kullanmak amacıyla EMGU.CV wrapper'inı kullandım. Sonuçta LifeLoggingSC şeklinde çalışan bir uygulama ortaya çıktı.



Bu arada LifeLoggingCC yazılımını LifeLoggingCCPhone'da olduğu gibi görüntüleri doğrudan SkyDrive'a "upload" yapacak şekilde yeniden düzenledim. Bu amaçla Live SDK 5.3 kullandım.

 "Capture" Ekranı

"Images" Ekranı

"Upload" Ekranı

4 Nisan'daki http://personalinformationsystems.blogspot.com/2013/04/data-gathering-from-lifelogging-devices.html sayfasında LifeLogging yazılımlarıyla oluşturulan ve SkyDrive'da biriken görüntülerin yerel klasörlere aktarılması amacıyla LifeLoggingTransporter  isimli bir uygulamanın geliştirilmesi gerektiğini belirtmiştim. Geçen süre içerisinde LifeLoggingTransporter programını tamamladım.

Program kullanıcıya üç seçenek sunmaktadır. Bunlardan birincisi LifeLoggingSC ve LifeLoggingCCDesktop uygulamalarının oluşturduğu ve SkyDrive altındaki Resimler\LifeLogging klasörüne kaydettikleri ekran görüntüleri ve kamera görüntülerinin buradan alınarak yerel Resimlerim\LifeLogging klasörüne taşınmasını sağlıyor. İkinci seçenek LifeLoggingCC ve LifeLoggingCCPhone Windows Store uygulamalarının oluşturduğu ve doğrudan SkyDrive'a "upload" yaptıkları kamera görüntülerinin yerel klasörlere taşınmasını sağlamaktadır. Üçüncü seçenek ise giyilebilir yaşam günlüğü kameralarının görüntülerinin yerel klasörlere aktarılması amacıyla rezerv edilmiştir.


 "Seçenekler" Ekranı


"Birinci Aşama" Ekranı


"İkinci Aşama" Ekranı

Taşıma işlemleri iki aşamadan oluşmaktadır. Birinci aşamada SkyDrive klasörlerindeki görüntüler belirlenmekte ve kullanıcıya raporlanmakta, ikinci aşamada ise görüntüler yerel klasöre aktarılarak SkyDrive'dan kaldırılmaktadır.

Bu düzenlemeler sonucunda proje kapsamında ihtiyaç duyulan yazılımların tümü temel işlevlerini yerine getirecek düzeyde geliştirilmiş oldu. Geliştirilen yazılımların genel durumu aşağıdaki tabloda verilmiştir:




Ortamlar
Programlar
 Kullanılan API
Windows 7
Windows 8 Masaüstü
Windows 8 Store
Windows Phone 8
LifeLoggingSC
.Net 4.0
X
X
1
2
LifeLoggingCC
.Net 4.5 & Live SDK 5.3
X
LifeLoggingCCDesktop
.Net 4.0
EMGU SDK (.Net Wrapper for OpenCV)
X
X
3
LifeLoggingCCPhone
.Net Phone 8 SDK & Live SDK 5.3
X
LifeLoggingTransporter
.Net 4.0
X
X
AllMyListsLE
.Net 4.0
X
X
AllMyListsMetro (Tercihe bağlı)
.Net 4.5
X
1 Windows 8 Store uygulamalarının ekran görüntüsü almaları OS düzeyinde engellenmiştir.
2 Windows Phone 8 uygulamalarının ekran görüntüsü almaları OS düzeyinde engellenmiştir.
3 LifeLoggingCCDesktop Windows 8 masaüstünde çalıştırıldıktan sonra Windows Store uygulamalarına geçildiğinde de ekran kaydetmeye devam etmektedir.

Bundan sonraki aşamada AllMyListsLE yazılımına ağırlık verilecektir. Gerçek görüntüler ile denemeler gerçekleştirilecek, yazılıma Öğrenme Deneyimlerini Betimleme Sihirbazı eklenecek, yazılımın öğrenme deneyimlerinin kaydedilmesi, planlanması ve değerlendirilmesi amacıyla kullanımı araştırılacaktır.

LifeLogging yazılımlarında ise çok kameralı bilgisayarlarda kamera seçimi olanağı sağlanacaktır. Görüntülere konum ve IP bilgisi gömülmesi araştırılacaktır. Ayrıca tüm yazılımların görsel yapısı üzerinde çalışılacaktır. Projenin uygulama aşamasına kadar geçecek sürede yazılımların ayrıntılı kurulum ve kullanım testleri gerçekleştirilecek, dokümantasyonu tamamlanacaktır.

4 Nisan 2013 Perşembe

Data Gathering from LifeLogging Devices with the Personal Cloud Storage Services

Yaşamgünlüğü Cihazlarından Bulut Depolama Hizmetleri İle Veri Toplama

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" projesinde kullanıcıların yaşamgünlüğü cihazlarını kullanarak gerçekleştirdikleri günlük kayıtlarının  depolanması ve biraraya getirilmesi süreci yavaş yavaş olgunlaşmaya başladı. 

Proje kapsamında kullanıcıların tüm bilgisayarlarından 30 saniyede bir ekran görüntülerinin alınması, cep bilgisayarları ve taşınabilir yaşam günlüğü kameralarıyla da 30 saniyede bir fotoğraf çekilmesi öngörülmüştü. Gelinen aşamada aygıtların görüntüleri Microsoft SkyDrive bulut depolama hizmetini kullanarak biraraya getirmeleri sağlandı. 

Ekran görüntüsü kaydetmek amacıyla kullanılan LifeLoggingSC ve LifeLoggingSCWin7 yazılımları görüntüleri bilgisayardaki SkyDrive klasörü altındaki LifeLogging klasöründe oluşturulan yıl, ay, gün tarihli klasörlerin içerisinde açtıkları kendilerini tanımlayan klasörlere kaydetmektedirler. 

Fotoğraf çekmek amacıyla kullanılan LifeLoggingCCPhone yazılımı ise görüntüleri kullanıcının http://skydrive.live.com sitesine SkyDrive uygulamasını kullanmadan kendisi yüklemektedir. Kullanılan Microsoft Live SDK 5.3 ile kullanıcı SkyDrive'da kendisine ait oturum açabilmektedir. Bu aşamada henüz sadece SkyDrive'in bilinen klasörlerine kayıt yapılabilmektedir. Sorun çözüldüğünde resimler SkyDrive\Resimler\LifeLogging klasörü altında yıl, ay, gün, cihaz klasörleri altına kaydedilecektir.

Windows 8 uygulaması olarak geliştirilen LifeLoggingCC ise şu anda kullanıcının Resimlerim\LifeLogging klasörüne kayıt yapmaktadır, ama bu yazılımın da görüntüleri online olarak SkyDrive sitesine yüklemesi sağlanacaktır. Ayrıca Windows 7 ve 8 altında masaüstü uygulaması olarak çalışacak bir LifeLoggingCCWin7 programı da esneklik sağlayacaktır. "CC" programları şu aşamada sadece bir kamerayı kullanabilmektedirler. Programlara cihazdaki kullanılabilir bütün iç ve dış kameraların arasından seçim yapma olanağı eklenmesi gerekmektedir.

Gerçekleştirilen tasarımın daha genel amaçlı olması amacıyla ekran kaydedici ve kamera görüntüsü kaydedici cihaz sayısında bir kısıtlama yapılmamıştır.  Kullanıcılar bilgisayarlarını ve telefonlarını uygun bir şekilde isimlendirmeleri koşuluyla sınırsız cihaz tanımlayabilirler. Bu aşamada taşınabilir yaşam günlüğü kamerası henüz temin edilmemiş olduğundan dolayı bu aygıtların nasıl isimlendirileceği konusunda bir deneyim bulunmamaktadır.

Diğer taraftan aynı bilgisayarları birden fazla kullanıcının kullanılması durumunda, kullanıcıların birbirlerinden ayırt edilebilmeleri için her kullanıcının bilgisayarı kendisine ait ayrı bir oturumda kullanması gerekmektedir. Şu anda LifeLoggingSC ve LifeLoggingSCWin7 yazılımları cihaz adı ve kullanıcı adına göre kayıt yapmaktadırlar.



Bu yöntemle Memutlu-Fujitsu bilgisayarını kullanan Memutlu kullanıcısının 4 Nisan 2013 tarihine ait ekran görüntüleri
C:\Users\memutlu\SkyDrive\Resimler\LifeLogging\2013\2013.04\2013.04.04\MEMUTLU-FUJITSU-ScreenCapture
klasörüne kaydedilmektedir. SkyDrive uygulaması bu dosyaları kendiliğinden http://skydrive.live.com bulutuna yüklemekte ve kullanıcının SkyDrive uygulaması kurulu olan bütün bilgisayarlarına güncellemektedir. 

Denemelerde kullanmakta olduğum ve kullanmayı planladığım cihazlar için belirlediğim cihaz klasörlerinin isimleri aşağıdaki gibi olacaktır.


LifeLoggingSC & LifeLoggingSCWin7
MEMUTLU-LENOVO-ScreenCapture
MEMUTLU-FUJITSU-ScreenCapture
MEMUTLU-MACBOOK-ScreenCapture
MEMUTLU-HP-ScreenCapture
MEMUTLU-SAMSUNG-ScreenCapture
LifeLoggingCCPhone
MEMUTLU-NOKIA-CameraCapture
LifeLoggingCC & LifeLoggingCCWin7
MEMUTLU-LENOVO-CameraCapture
MEMUTLU-FUJITSU-CameraCapture
MEMUTLU-MACBOOK-CameraCapture
MEMUTLU-HP-CameraCapture
MEMUTLU-SAMSUNG-CameraCapture
            Autographer
                        MEMUTLU-AUTOGRAPH-CameraCapture
            Memoto
                        MEMUTLU-MEMOTO-CameraCapture


Bütün cihazların görüntü göndermek amacıyla bulut kullanmaları önemli miktarda veri trafiğine yol açacaktır. Herhangi bir anda bir cihazın kullanılması ve günde ortalama 16 saat aktif olunması durumunda günlük 1 GB mertebesinde veri aktarımı oluşacaktır. Sistemin optimizasyonunu daha sonraki aşamalarda ele almayı planlıyorum. Bu amaçla akla gelen  iyileştirmelerden birisi belirli bir limit içerisinde aynı içeriğe sahip görüntülerin ayıklanmasıdır. 

AllMyListsLE yazılımında yeni yaşam günlüğü listesi olarak SkyDrive\LifeLogging klasörü tanımlandığında sorunsuz çalışmaktadır. Dolayısıyla sistem, veriler sürekli SkyDrive'da tutularak kullanılabileceği gibi, SkyDrive\LifeLogging klasörünün içeriğini düzenli aralıklarla yerel diske kopyalanarak da kullanılabilir. Bu durumda görüntüler SkyDrive'dan silinerek SkyDrive'ın şu andaki kapasitesi olan 7 GB limiti altında kalınabilir. Veriler sürekli SkyDrive'da tutulacak ise yıllık 100 GB için 50$ ödenerek bu işlem gerçekleştirilebilir. Günümüzde 1 TB kapasitesindeki taşınabilir disklerin fiyatlarının 100$ civarında olduğu düşünülürse SkyDrive'ın sadece aktarım için kullanılması, görüntülerin büyük kapasiteli taşınabilir disklerde tutulması daha çok tercih edilebilir. Bu amaçla LifeLoggingTransporter isimli bir aktarım programı yazılmasında yarar vardır. LifeLoggingTransporter hem giyilebilir yaşam günlüğü kamerasına ait görüntülerin hem SkyDrive'ın kökündeki kamera görüntülerinin hem de SkyDrive'daki ekran görüntülerinin kullanım ortamına aktarımını gerçekleştirebilir. Bu yazılım bağımsız bir yazılım olabileceği gibi AllMyListsLE içerisinde de yeralabilir.

"SC" yazılımlarının Microsoft SkyDrive yerine Google Drive ya da DropBox kullanmalarını sağlamak son derece kolaydır. Bu amaçla yazılımlara bir "ayar" ekleyerek masaüstü Google Drive ya da masaüstü DropBox uygulamalarının klasörlerini kullanmalarını sağlamak yeterli olacaktır. "CC" yazılımlarında ise "online upload" amacıyla Google Drive SDK ve DropBox SDK'larının kullanılması gerekmektedir. Bu nedenle "CC" yazılımlarının GoogleDrive ve DropBox bulutlarına kayıt yapabilmelerini bu proje kapsamının dışında tutuyorum.



21 Mart 2013 Perşembe

LifeLoggingCCPhone - A Windows Phone 8 Based LifeLogging Application

LifeLoggingCCPhone - Windows 8 Tabanlı Bir Yaşamgünlüğü Uygulaması

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" isimli projede Windows Phone 8 ortamında çalışan bir yaşamgünlüğü uygulaması tasarlamaya başlamıştım. Sözkonusu uygulama çalıştırıldığında telefonun arka kamerasından 30 saniyede bir görüntü almakta ve bu görüntüleri telefonun yerel Resim Rulosu klasörüne kaydetmekteydi. Elimde bir Windows Phone 8 telefon olmadığından dolayı uygulamayı sadece Emülatör üzerinde test edebiliyordum. 12 Mart 2013 tarihinde proje kapsamında istenen Nokia Lumia 920 cep bilgisayarları geldi. Böylece LifeLoggingCCPhone yazılımını gerçek telefon üzerinde deneyerek geliştirmeye başladım.


Uygulamayı gerçek telefon üzerinde çalıştırabilmem için önce kendime bir Windows Phone Developer Account oluşturdum. Bu amaçla Microsoft’a kredi kartı ile bir yıllık hesap ücreti olarak 180 TL ödeme yaptım. Windows Phone uygulamalarımı aynı anda 3 telefona yükleyebilirim. Kendi telefonumu “Mehmet Emin Mutlu Windows Phone” olarak tanımladım. Daha sonra kendi telefonumu "https://dev.windowsphone.com/en-us/dashboard" sitesinde "remove" yaparak projedeki uygulayıcılara ait olan "Ayşe Peri Mutlu Windows Phone", "Ilker Kayabas Windows Phone" ile "Buket Kip Kayabas Windows Phone" oluşturacağım. Bu amaçla Windows Phone SDK 8.0 altındaki Developer Phone Registration uygulaması kullanıldı.

LifeLoggingCCPhone uygulamasını “Mehmet Emin Mutlu Windows Phone”’a yüklemek için Windows Phone SDK 8.0 altındaki  Windows Phone Application Deployment uygulamasını kullandım. Bu amaçla önce uygulamayı Release klasörüne Build yaptım. Daha sonra Device seçeneği ile Release klasöründeki XAP dosyasını tanıtarak telefona deployment işlemini gerçekleştirdim.

Geliştirme ortamında esneklik sağlandığından dolayı uygulamayı daha fazla geliştirmeye karar verdim. Öncelikle sadece bir sayfadan oluşan uygulama yapısını terkederek Panorama yardımıyla üç sayfalık bir yapıya geçtim. Birinci sayfada resim kaydetme işlemi gerçekleştirilecek, ikinci sayfada kaydedilen görüntüler listelenebilecek, üçüncü sayfada ise kayıtlı resimler kullanıcının SkyDrive sitesine gönderilebilecek.

SkyDrive'a gönderme yapabilmek için Microsoft Live SDK 5.3'ü yükledim. Geliştirilen telefon uygulamalarının SkyDrive'a erişebilmesi için uygulamanın Live Connect Developer Center sitesinde Windows Live ile ilişkilendirilmesi gerekmekte. Windows Phone uygulamaları için http://manage.dev.live.com/ sitesinde bu işlem yapılabilmekte. Windows Store uygulamaları ise önce Windows Store Dev Center Dashboard (https://appdev.microsoft.com/StorePortals/en-us) sitesinde tanıtılmalı, sonra Windows Live ile ilişkilendirilmelidir.

Live SDK 5.3 Windows Phone 8'i desteklemesine rağmen Phone 7.1 için çalışan pek çok API Phone 8'de çalışmamakta. LiveConnectClient'a ait UploadCompleted, GetCompleted gibi "event"'lar kaldırılmış durumda. Bu durumdan dolayı dosyaların SkyDrive'a yükleme işleminin sona ermesini kontrol edemiyorum. Bu sorun gönderilen dosyaları gönderim tamamlandıktan sonra silmemi engelliyor. Gönderilen dosyaların silinmesi işlemi gönderme tamamlandıktan sonra uygulamadan çıkıp tekrar girerek gerçekleştirebiliyorum. Bu sorunu çözmek için uygun örneklerin yayınlanmasını bekleyeceğim.

Bir başka sorun ise SkyDrive'da klasör açabiliyor olmama rağmen, resimleri bu yeni klasör yüklemeyi sağlayamamış olmam. Örneklerin çoğu REST yapısındaki örnekler. "me/skydrive" üzerinde açılmış bir klasöre dosya yüklemeyle ilgili C# ya da VB.Net ile yazılmış bir örneğe rastlamadım. Bu nedenle şu aşamada görüntüleri SkyDrive klasörünün köküne yüklüyorum. İlgili örneklere rastladığımda alt klasöre yükleme özelliğini ekleyeceğim.





Windows Phone uygulamalarının ekran görüntüleri Visual Studio üzerinde Windows Phone Emulator ile alınabilmektedir. Emulatör Windows Phone işletim sistemini büyük ölçüde gerçeğe uygun olarak simule edebilmesine rağmen telefonun device'ları için zayıf destek sunmaktadır. Bu nedenle kamera uygulamalarında kameradan gelen görüntü için yapay bir görüntü oluşturmaktadır. 

LifeloggingCCPhone uygulamasının  Windows Phone üzerinde sürekli çalışması için kilit ekranının zaman aşımı değeri "Asla" yapılması gerekmektedir. Çekim esnasında gelen telefonlar ve diğer bildirimler çekimi engellemememektedir. Çekim esnasında kullanıcı telefon etmeye çalışırsa "Başlangıç" ekranına dönmesi gerektiğinden dolayı uygulama çalışmasını sona erdirecektir. Ayrıca çekim esnasında tuşları kullanarak fotoğraf çekilmek istendiğinde fotoğraf çekimi devreye girmeyecektir.

20 Mart 2013 Çarşamba

Development of LifeLogging Applications - Progress Report

Yaşamgünlüğü Uygulamalarının Geliştirilmesi - Gelişim Raporu

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" isimli projeye devam ediyorum. 20 Şubat 2013' tarihinden bu güne geçen bir aylık sürede gerçekleştirdiğim çalışmalar şu şekildedir:

Yaşam günlüğü uygulamalarından elde edilen görüntüleri öğrenme deneyimlerinin yönetimi amacıyla değerlendirmek amacıyla kullanacağım AllMyListsLE yazılımını geliştirmeye devam ettim. Bir cihazdan bir gün içerisinde kaydedilecek görüntü sayısı 2880. Yazılım ekrana aynı anda 200'den fazla görüntüyü yüklemekte zorlanıyor. Sorunun kaynağı kullanılan StackPanel'de Virtualizing yapılamaması. Bu sorunu aşmak amacıyla bir saat çubuğu oluşturdum ve görüntülerin birer saatlik dilimler halinde yüklenmesini sağladım. Kullanıcı saat çubuğunda ayrıca o güne ait saat dilimlerinde kaç görüntü bulunduğunu da görebilmekte. 

Bu çubukta aynı zamanda görüntülerin "Döşeme" ya da "Liste" şeklinde olmasını sağlayan düğmeler de bulunmakta. Liste şeklindeki görüntülemede görüntüler yatay bir taşıyıcıda sıralanmakta ve seçilen resmin büyütülmüş hali altta görüntülenmekte. Döşeme şeklindeki görüntülemede görüntüler ekrana ızgara şeklinde yerleştirilmekte, kullanıcı çift tıkladığı resmi bir pop-up pencerede büyük boyda görüntüleyebilmekte.


Kullanıcı görüntüler üzerinde seçim gerçekleştirerek bu seçimle ilişkili kayıt oluşturabilmekte  ya da seçili görüntüleri seçili bir kayıtla ilişkilendirebilmekte. Böylece küçük zaman dilimlerine yönelik kayıt girişi daha anlaşılır hale geldi.

Saat bazında görüntülemenin yanısıra 6 dakikada bir görüntü olmak üzere tüm güne ait görüntülerin listelenmesi sağlandı.



AllMyListsLE yazılımı aynı zamanda genel amaçlı bir liste yönetimi aracı olduğundan dolayı yeni liste oluşturulurken kolayca "LifeLog" ya da "MyList" türü liste oluşturulmasına olanak sağlandı.Böylece kullanıcılar yaşam günlüğü  listeleri (LifeLog) ve kullanıcı tarafından oluşturulan listeler (MyList) olmak üzere iki farklı yapıdaki listeleri yönetebileceklerdir.

Yazılım geliştirmeye paralel olarak informel öğrenme deneyimlerinin yönetimi amacıyla  bir uygulama yaklaşımı geliştirmeye başladım. Bu amaçla öğrenme deneyimlerinin betimlenmesini sağlayacak bir sihirbaz (Wizard) tasarımı üzerinde çalışmaya başladım. Bu çalışmaları "Yaşam Deneyimlerini Kaydetme ve Öğrenme Deneyimlerini Betimleme Süreci" isimli bir belgede topladım. Uygulama sürecine ait taslak çalışmaya http://kisiselogrenmeortamlari.blogspot.com/2013/03/the-process-of-learning-experiences.html sayfasından erişilebilir.

Uygulama sürecinin zaman boyutuna göre yapısı aşağıdaki gibi verilebilir:

Yaşam Deneyimlerini Kaydetme ve Öğrenme Deneyimlerini Betimleme Süreci
  1. LifeLoggingCC, LifeLoggingCCPhone, LifeLoggingSC ve giyilebilir lifelogging kameralarla 30 saniyede bir sürekli olarak kamera görüntüsü ve ekran görüntüsü yakala ve çalışma bilgisayarına senkronize et (Eş zamanlı)
  2. AllMyListsLE yazılımında bir LifeLog listesi ile günlük görüntüleri tara ve günlük eylemleri detaylı olarak kaydet (Birkaç gündebir) (Bu işlem bir görüntü düzeyinden başlayarak birden fazla görüntü, bir saat, birden fazla saat, bir gün, bir ay, bir yıl düzeylerinde olabilmektedir. (Birden fazla gün, birden fazla ay ve birden fazla yıl seçimi bulunmamaktadır. Bu zaman aralıkları için gün, ay ve yıl düğümlerine kayıt ekleyerek bilgi girişi yapılabilir.)
  3. Günlük kayıtları tarayarak yerler, kişiler, olaylar, varlıklar, duygular, özellikler ve davranışlara ait bilgileri ilgili MyList listelerine gir. (En geç haftada bir)
  4. LifeLog listeleri ile yaşam deneyimlerinden günlük öğrenme deneyimlerini sihirbaz yardımıyla çıkart ve geçmiş, güncel ve geleceğe ait kayıtlar oluştur. (Birkaç günde bir)
  5. Günlük kayıtları tarayarak yaşam boyu öğrenme projesine ait MyList listesinde geçmiş, güncel ve gelecekle ilgili başlıklara işlenmiş kayıtları gir. (En geç haftada bir)
  6. Yaşam boyu öğrenme projesine ait MyList listesini kullanarak geleceği planla ve geçmişi değerlendir (Haftalık, aylık, dönemlik, yıllık)
Her iki liste türü AllMyListsLE yazılımı kullanarak yönetilebileceği gibi, LifeLog için AllMyListsLE yazılımı, MyList listeleri için ise AllMyListsMetro yazılımı ayrı ayrı kullanılabilir.

Geliştirilen yazılımlarla burada açıklanan süreci şu anda gerçekleştirmek mümkün olabilmekte. Projenin bundan sonraki aşamasında günlük görüntü kaydedilmesinin ve görüntülere ait veri akışının daha esnek olması, AllMyListsLE yazılımının daha kullanıcı dostu hale getirilmesi gibi işlemler geliştirmeler yapılacaktır. Tüm kodların gözden geçirilmesi, açıklamalarının  oluşturulması, sınıf diyagramlarının çıkartılması, sınıfların, alanların, özelliklerin, yöntemlerin ve olayların standartlaştırılması gibi yazılım mühendisliği işlemleri gerçekleştirilecektir. Diğer taraftan LifeLog uygulamaları ile AllMyListsLE yazılımının paketlenmesi, dağıtımı, temin edilmesi, kurulması, birbiriyle bütünleştirilebilmesi, veri güvenliğinin sağlanması, yazılımların kaldırılabilmesi, ve dokümantasyon gibi süreçler de ele alınacaktır. Yazılımların ortak bir grafik kimliğine kavuşturulması, kullanıcı arayüzlerinin bir örnek hale getirilmesi, yerelleştirme ve küreselleştirme özelliklerinin gözden geçirilmesi, hakkında ve yardım içeriklerinin oluşturulması, projeye ait bilgi verilmesi gibi detaylar da zaman alacaktır.

12 Mart 2013 tarihinde proje kapsamında istenen Nokia Lumia 920 cep bilgisayarları geldi. Bu tarihten sonra daha önceleri Visual Studio içerisinde emülatör kullanarak yazdığım LifeLoggingCCPhone yazılımını gerçek telefon üzerinde deneyerek geliştirmeye başladım.