20 Şubat 2013 Çarşamba

"Development and Implementation of A Digital Lifelogging System for Management of Lifelong Learning Experiences" Project

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" Projesi

Önermiş olduğum "Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" projesi 15 Şubat 2013 tarihinde Anadolu Üniversitesi Bilimsel Araştırma Projesi (Proje No:1301E014) olarak kabuıl edildi.

Projede Şubat ayı içerisinde LifeLoggingSC, LifeLoggingCC ve LifeLoggingCCPhone yazılımları ile elde edilen görüntülerin değerlendirilmesi amacıyla kullanılacak olan LifeLoggingLE yazılımını geliştirmeye devam ettim. 20 Ocak 2013 tarihinde http://personalinformationsystems.blogspot.com/2013/01/management-of-learning-experiences-with.html yayınında yayınlamış olduğum tasarımda önemli değişikler gerçekleştirdim.


İlk tasarımda görüntülerin bulunduğu klasörlere erişen ve bu klasörlerdeki görüntüleri ekranda görüntüleyen bir program geliştirmeye başlamıştım. Bu program verilen bir tarihe ait klasörlere erişerek bu klasörlerdeki görüntüleri listeleyebiliyordu. İkinci aşamada bu görüntülere kullancıların bilgi girmesini sağlamak amacıyla bir veri tabanı tasarlamaya başladım. Bu noktada kullanıcıya sınırsız esneklik sağlamak amacıyla daha önce geliştirmiş olduğum AlMyListsWPFMVVM yazılımını kullanmaya karar verdim. Bu yazılım 2011 yılında geliştirmiş olduğum AllMyListsWPF yazılımının üzerinde MVVM mimarisi denemeleri yaptığım tamamlanmamış bir sürümüydü (https://meminmutlu.wordpress.com/personalis/pim-projects/). 

Bu yazılımda bir ağaç yapısını kullanarak, ağacın herhangi bir düğümü için sınırsız kayıt oluşturmak ve her kayıt için basit bir metin editörü ile açık uçlu bilgi girmek mümkün oluyordu. Bu programda ağaç yapısına yaşam günlüğü görüntülerinin bulunduğu klasör yapısını yükleyerek, kullanıcının seçtiği bir güne ait görüntüleri programda inceleyebilmesi ve o güne ait yorum, düşünce, not, değerlendirme vb. bilgilerini sınırsız kayıtlar halinde girmesi mümkün olabilecekti. 

Bu amaçla 2011 yılında Visual Studio 2010 ile geliştirmiş olduğum AllMyListsWPFMVVM yazılımını VS 2012’ye dönüştürdüm. Bu yükseltme işlemi esnasında yazılımın kullandığı SQL CE 3.5 sürümlü SDF dosyası da SQL CE 4.0’a dönüştü.

Yeni tasarımda LifeLoggingSC, LifeLoggingCC ve LifeLoggingCCPhone yazılımdlarında gelen görüntülerin biraraya getirildiği klasör yapsı değiştirildi. Eski yapıda 
...\LifeLogging\<Bilgisayar Adı1>\2013.01.17\ScreenCapture
...\LifeLogging\<Bilgisayar Adı1>\2013.01.17\CameraCapture
...
...\LifeLogging\<Bilgisayar AdıN>\2013.01.17\ScreenCapture
...\LifeLogging\<Bilgisayar AdıN>\2013.01.17\CameraCapture
şeklinde olan klasör yapısı yeni yapıda yıllar, aylar ve günlere ait alt klasörlerden oluşan 

…\LifeLogging\
2012
2013.12
2013.12.20
MEMUTLU-CameraCapture\
MEMUTLU-ScreenCapture\
Giyilebilir Lifelogging Camera\
...

şekline dönüştürüldü. Böylece görüntülere ait klasör yapısı herhangi bir ek dönüştürme yapmadan programın ağaç nesnesine kolayca aktarılabilmektedir. 

Programa Ocak ayında yaptığım denemelerde yazdığım klasör görüntüleme kodlarını ekledim.  Klasör içeriği "Liste" şeklinde ya da "Döşeme" şeklinde olabilmekte.

Diğer taraftan kişisel bilgi yönetimi aracı olan AllMyListsWPFMVVM yazılımının bu niteliğini değiştirmeden korumaya karar verdim. Yazılım yeni düzenlemelerle kişisel bilgi yönetimi aracı olmanın yanısıra bir yaşam günlüğü aracı haline de gelmiş olacak. Kullanıcılar kişisel bilgi yönetimi türü projeleri kullanabilirken, aynı zamanda yaşam günlüğü projelerini de sürdürebileceklerdir.

Yazılımın bu yeni sürümünün adını AllMyListsLE olarak değiştirdim. Zaten Aralık 2012'de proje önerisinde bulunurken geliştirilecek yazılımın adını da AllMyListsLE olarak belirlemiştim.

AllMyListsLe yazılımının yaşam günlüğü uygulaması olarak kullanıldığı durumdaki yapısına ait ekran görüntüsü aşağıdaki görüntüye benzeyecektir. "Öğrenme Deneyimlerinin Yönetimi" amacıyla kullanılabilmesi için bir yaklaşım geliştirildiğinde yazılımın ekran görüntüsü farklılaşabilecektir.


Resim 1. AllMyListsLE yazılımının yaşam günlüğü amacıyla kullanıldığı durumda "Döşeme" yapısındaki görünümü. 

29 Ocak 2013 Salı

Management of Learning Experiences with Lifelogging

Yaşam Günlüğü ile Öğrenme Deneyimlerinin Yönetimi

Ocak ayı içerisinde LifeLoggingSC, LifeLoggingCC ve LifeLoggingCCPhone yazılımlarını geliştirmeye devam ederken bir yandan da bu yazılımlarla elde edilen görüntülerin değerlendirildiği LifeLoggingLE yazılımını da tasarlamaya başladım.

LifeLoggingLe yazılımı kullanıcının kamera görüntüsü ve ekran görüntülerine ait kayıtlardan yararlanarak yaşamış olduğu öğrenme deneyimlerine ait etkinlik, olay ve öykülere ait not, yorum ve gözlemlerini girmesine ve daha sonra bunları inceleyerek değerlendirebilmesine  olanak sağlayan bir yazılımdır. 

Ekran ve kamera görüntüleri kullanıcının yaşadığı öğrenme deneyimlerine ilişkin birer hatırlatıcı (hatırlamayı destekleyici) öğelerdir. Bu görüntüler  etkinlik, olay ve öykülere ait birer içerik (content) olmayıp, etkinlik, olay ve öykülere ait birer bağlam (context) durumundadırlar.

Veritabanı seçimi

Daha önceleri Windows Phone 7.1 için yazdığım AllMyListsPhone programında LINQ to SQL kullanmıştım. Bu nedenle LifeLoggingLE için de .NET 4.5 üzerinde SQL LocalDB ve LINQ to SQL kullanmayı planladım. Ama daha sonra SQL Local DB için SQL Server Express kurulması gerektiği, bu yazılımın da120 MB olduğu ortaya çıktı. Kolay taşınabilirlik için SQL CE 4.0 kullanmaya karar verdim. SQL CE 4.0 64 bit için hem geliştirici hem de kullanıcı için en fazla 2.5 MB büyüklüğünde bir yükleme gerektiriyor. Fakat incelemelerim sonucunda SQL CE 4.0 üzerinde LINQ to SQL kullanılamadığı ortaya çıktı. En son SQL CE 3.5 SP2'de bu özelliğin olduğunu (AllMyListsPhone'da bunu kullanmıştım) ve SQL CE 4.0'a taşınmadığını belirledim. Sonuç olarak LifeLoggingLE yazılımını WPF 4.5 üzerinde ve SQL CE 4.0 veritabanını geleneksel System.Data.SqlServerCE API'si kullanarak yazmaya başladım. 

Bu konuda http://erikej.blogspot.com/2011/01/comparison-of-sql-server-compact-4-and.htmlhttp://erikej.blogspot.com/2012/04/using-linq-to-sql-with-sql-server.html ve http://blogs.msdn.com/b/jerrynixon/archive/2012/02/26/sql-express-v-localdb-v-sql-compact-edition.aspx kaynaklarına başvurulabilir.

SQL CE 4.0 ortamında LINQ to SQL kullanmak için SQL Server Compact Toolbox isimli bir Extension bulunmakta  http://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1. Bunları kullanmak yerine Microsoft'un bir çözüm geliştirmesini bekleyeceğim.

Ekran tasarımı

Programda üst panelde "Capture" klasörlerinden gelen görüntülere ait bant bulunacak, ortada seçili görüntünün büyük görüntüsüne yer verilecek, alt bantta ise seçili resim(lere) yönelik olarak veritabanına girilecek yorumlar için bir bant bulunacaktır. En altta ise bir zaman çizgisi şeklinde yıl-ay-gün bilgisinin seçilebildiği bir takvime yer verilecektir. LifeLoggingLE programında klasörlerden görüntüleri alarak bir bant şeklinde görüntülemek amacıyla Microsoft PhotoStore Sample'dan yararlandım (http://code.msdn.microsoft.com/windowsdesktop/Photo-Store-Demo-2777188e). 



Yaşam günlüğü görüntüsü yakalama yazılımlarından elde edilen görüntüler, bu yazılımların çalıştığı bilgisayarda bu amaç için belirlenmiş bir klasörün altında aşağıdaki alt klasörler şeklinde gün bazında biriktirilecektir (Windows Phone 8'de görüntüler henüz CameraRoll'da saklanmakta, tablet ve masaüstünde çalışan Windows 8 için bu özellik hazır) :


\LifeLogging\<Bilgisayar Adı>\2013.01.17\ScreenCapture
\LifeLogging\<Bilgisayar Adı>\2013.01.17\CameraCapture

LifeloggingLE yazılımı şu andaki aşamada bu klasörler arasında takvimde seçilen bir güne ait olan klasördeki  görüntüleri ekrana yükleyebilmekte ve kullanıcının bu görüntüler üzerinde veri panelindeki hücrelerle senkronize bir biçimde gezinmesine olanak sağlamaktadır. Kullanıcı ayarlardan ScreenCapture ya da CameraCapture seçimi yapabilmektedir. 

İzleyen aşamalarda veri girişi, çoklu görüntü seçimi ve bu seçime yönelik veri girişi gibi özellikler eklenecektir. Veri panelinde Kayıt (log), Etkinlik (Activity), Olay (Episode) ve Öykü (Story) gibi değişik düzeyde temel verilerin girilebilmesine olanak sağlanacaktır. Bunların dışında kullanıcıya ayrıca öğrenme deneyimlerine ait bilgileri girebileceği bir veri katmanı da sunulacaktır. 

Öğrenme deneyimlerinin yönetimi için yararlandığım kuramsal altyapıya ait yayınları kisiselogrenmeortamlari.blogspot.com'da yayınlayacağım. LifeLoggingLE programının sadece öğrenme deneyimlerinin yönetimi için değil, kişisel bilgi yönetimi için de geliştirilmesi mümkündür. Bu yöndeki düşüncelerimi bu blogta yayınlamaya devam edeceğim.

Görüntü verilerini birleştirme

Projede telefon, tablet ve masaüstü bilgisayarlarda elde edilen kamera ve ekran görüntülerinin bir ana bilgisayarda bir araya getirilmesi ve görüntülerin bu bilgisayarda çalışan LifeLoggingLE yazılımı ile değerlendirilmesi öngörülmektedir.

Görüntülerin diğer aygıtlardan ana bilgisayara aktarılması amacıyla bulut depolama yaklaşımı uygulanabilir mi? Bulut çözümü için aşağıdaki senaryoyu geliştirdim. 

  • Microsoft Skydrive, Google Drive ve Dropbox’da Selective Sync özelliği bulunmakta.
  • Client bilgisayarlarda (Tablet, Phone, İş bilgisayarı) “Bu bilgisayara yalnızca bazı klasörleri senkronize et” seçeneğinde sadece client bilgisayardaki \LifeLogging\ klasörü  seçilecek. 
  • Ana bilgisayarda ise tüm client bilgisayarların klasör isimleri seçilecek. Böylece dosyalar client bilgisayardan buluta, buluttan da ana bilgisayara doğru akacak. 
  • Ana bilgisayardan client bilgisayar klasörlerine herhangi bir dosya yazma/silme işlemi yapılmayacağı için veri akışı sadece client bilgisayarlardan buluta, buluttan da ana bilgisayara doğru olacak. Tersi yönde bir veri akışı oluşmayacak. 
  • LifeLoggingLE yazılımının veri dosyası ana bilgisayarda tutulacak ve bu bilgisayardaki görüntü klasörlerine erişilecek. 
  • Ana bilgisayarda aşağıdaki gibi bir klasör yapısı ortaya çıkacaktır.
...\LifeLogging\<Bilgisayar Adı1>\2013.01.17\ScreenCapture
...\LifeLogging\<Bilgisayar Adı1>\2013.01.17\CameraCapture
...
...\LifeLogging\<Bilgisayar AdıN>\2013.01.17\ScreenCapture
...\LifeLogging\<Bilgisayar AdıN>\2013.01.17\CameraCapture
  • Kullanıcının zaman çizgisi boyunca herhangi bir anda sadece bir aygıtı kullandığı varsayılacaktır. Böylece herhangi bir anda sadece bir aygıt üzerinde ekran ya da kamera görüntüsü elde edilecektir. Diğer bir deyişle yukarıdaki klasörlerin çoğu günlük deneyimde oluşturulmayacaktır. Ya da bir klasörde çok sayıda dosya varken diğer klasörlerde az sayıda dosya bulunacaktır.
  • Kullanıcı LifeLoggingLE yazılımı ile sadece ekran görüntüsü - kamera görüntüsü klasörü ve tarih seçimi değil aynı zamanda blgisayar seçimi de yapmak zorundadır.
  • Bu yaklaşım ile aktarılacak dosya sayısı, toplam depolama alanı büyüklüğü ve depolama maliyeti hesaplamaları yapılmalıdır.

Bu senaryonun uygulanabilirliği test etmek amacıyla çalışmalar yapacağım.

Design of Lifelogging Image Capture Applications - 2

Yaşamgünlüğü Görüntü Yakalama Uygulamaları Tasarımı - 2

Aralık 2012 ayı içerisinde tasarımına başladığım görüntü yakalama yazılımlarına Ocak 2013 ayı içerisinde bir takım ayarlar ve sensör bilgilerini yakalama özellikleri ekledim.

LifeLoggingSC ekran görüntüsü yakalama yazılımına eklenen özellikler

LifeLoggingSC yazılımında Image Quality, Image Size, Capture Folder, Capture Interval ve File Prefix değerleri ayarlanabilir hale getirildi. 


Böylece kullanıcı programın Settings menüsünden yararlanarak resim kaydetme aralığı, resim kalitesi (jpeg quality), ekran çözünürlüğüne göre belirlenen resim büyüklüğü ve görüntülerin kaydedildiği klasörü belirleyebilmektedir.


LifeLoggingSC'de yapılan diğer bir değişiklik ise Screen Video Recording özelliğinin kaldırılması olmuştur. Böylece programın Expression Encoder bağımlılığı sona erdirildi. Ekran yakalama yazılımını gelştirmeye ilk başladığım günlerde yazılım forumlarında masaüstünde çalışan ekran yakalama yazılımlarının Windows 8 Başlat Menüsü ve Windows Store uygulamalarına ait ekran görüntülerini kaydetmediğine ilişkin çok sayıda yorumla karşılaşmıştım. WPF 4.5 ile bir masaüstü uygulaması olarak geliştirdiğim LifeLoggingSC programında bu sorun bulunmamaktadır. Hem masaüstü hem de Windows Store ekranları kaydedilebilmektedir. 

LifeLoggingCC kamera görüntüsü yakalama yazılımına eklenen özellikler

LifeLoggingCC'de ise Capture Interval, Image Quality ve Capture Prefix seçenekleri eklendi.

  
Bu yazılımda görüntü büyüklüğü 640x480 olarak sabitlenmiştir ve görüntü kalitesi henüz değiştirilememektedir.



LifeLoggingCCPhone kamera görünütüsü yakalama yazılımına eklenen özellikler

LifeLoggingCCPhone'da ise Capture Interval seçeneği eklendi. Standart 640x480 büyüklüğünde resim kaydedilmekte ve henüz bu aşamada görüntü kalitesi ve kaydetme klasörü (CameraRoll) değiştirilememektedir. 

Sensörler

Uygulamalara eklenen diğer bir özellik ise Tarih ve Saat etiketlerinini yanısıra sensör bilgilerinin algılanması olmuştur. 

LifeLoggingCC  görüntü kaydederken aynı zaman konum bilgisi, hız bilgisi ve ışık düzeyi bilgisini de belirleyebilmektedir. LifeLoggingCC denemeleri emülatörde gerçekleştirilmektedir. Gerçek denemeler için Windows 8 yüklü bir tabletin gelmesini bekliyorum.


LifeLoggingCCPhone ise görüntü kaydederken konum ve hız bilgisini de algılamaktadır. Programın denemeleri emulatör üzerinde gerçekleştirilmekte olduğundan dolayı gerçek denemeler için bir Windows Phone 8 telefonunun gelmesini beklemekteyim.


LifeLoggingSC'ye herhangi bir sensör algılaması eklenmemiştir. Sensör bilgileri henüz bu aşamada kaydedilmemektedir.  Sensör bilgilerinin resimlere gömülebilmesi için araştırma yapacağım.

Uyku modu

Geliştirilen ekran ve kamera görüntüsü yakalama yazılımlarının sürekli çalışabilmesi için üzerlerinde çalıştıkları aygıtların uyku moduna geçmemeleri gerekmektedir. Uyku modunda yazılımlar ya son yakaladıkları görüntüyü saklamaya devm ediyorlar ya da siyah ekran kaydediyorlar. Masaüstünde uyku modunu kapatmak çok sorun yaratmaz. Tablet'te bu durum kullanım süresini etkileyecektir. Telefonda ise uyku modu iptal edilebilir mi araştırılacak. 

31 Aralık 2012 Pazartesi

Design of Lifelogging Image Capture Applications

Yaşamgünlüğü Görüntü Yakalama Uygulamaları Tasarımı

Anadolu Üniversitesi Proje birimine sunduğum “Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması” isimli BAP önerisi kapsamında bir dizi yaşam günlüğü yazılımı geliştirilmesi gerekmektedir.

Günümüzde bilgi çalışanlarının öğrenme deneyimleri ağırlıklı olarak bilgisayar ortamında gerçekleşmektedir. Bilgisayar ortamı dışında gerçekleşen öğrenme deneyimleri ise yüz yüze iletişim, basılı malzeme okuma, ders/seminer/konferans/video vb. izleme, müze/sergi/doğa vb. gezme gibi etkinliklerden oluşmaktadır. Bireyin uyanık bulunduğu sürelerdeki öğrenme deneyimlerini kaydetmek için bireyin kullandığı bilgisayarların ekran görüntülerinin kaydedilmesi ve bireyin bilgisayar ortamı dışında etkinliklerine ait kamera görüntülerinin kaydedilmesi yeterli olacaktır.

Burada amaçlanan deneyime ait içeriğin kaydedilmesi değil, deneyimin daha sonra kolayca hatırlanmasını sağlayacak görüntülerin kaydedilmesidir. Kayıt işlemi 30 saniyede bir alınan görüntülerden oluşacak ve bireyin özel anları dışındaki süreleri kapsayacaktır.

Bu amaçla proje önerisini sunmuş olduğum 15 Aralık 2012 tarihinden itibaren çalışmaya başladım ve LifeLoggingSC, LifeLoggingCC ve LifeLoggingCCPhone isimlerinde üç yaşam günlüğü kaydetme yazılımı geliştirdim. Yazılımlar bu aşamada taslak düzeyinde olsalar da kendilerinden beklenen belirli zaman aralıklarında görüntü kaydetme işlevini yerine getirmektedirler.

LifeLogging Camera Capture ve LifeLogging Camera Capture Phone yazılımları
Bireyin çevresindeki görüntülerin kaydedilmesi için giyilebilir yaşam günlüğü kamerasının kullanılması gerekmektedir. Fakat proje önerisi aşamasında temin edilebilir bir giyilebilir yaşam günlüğü kamerası bulunmamaktadır. Microsoft SenseCam’in ticari sürümü olan Vicon Revue’nün yılsonu itibariyle satışı durdurulacağı ilan edildi, yerine çıkacak olan Autographer cihazı ise henüz temin edilebilir durumda değil. Aynı şekilde bir kickstarter projesi olan Memoto cihazı ise Şubat ayından sonra satışa başlanacak. Deneyim kazanmak ve B planı olarak kullanabilmek amacıyla projede kullanıcıların bir tablete takılı bir webcam ile ya da bir akıllı telefona ait kamera ile çevrelerine ait görüntüleri kaydetmeleri öngörüldü. Böylece Windows 8 tabletlerde çalışan LifeLogging Camera Capture ve Windows Phone 8 akıllı telefonlarında çalışan LifeLogging Camera Capture Phone isminde sürekli olarak belirli aralıklarda kamera görüntüsü kaydeden yazılımları geliştirdim.

Kamera görüntüsü yakalamayla ilgili yaklaşımları gözden geçirmek amacıyla, sahip olduğum web cam Windows 8 altında çalışmadığından dolayı başlangıçta Windows 7 üzerinde değişik denemeler yaptım.  Bu denemelerde aşağıda verdiğim değişik görüntü yakalama teknolojilerine ait örnekleri inceledim, bu örnekleri verilen zaman aralıklarında görüntü kaydedecek şekilde tekrar programlamaya çalıştım:
  • WIA Windows Image Acquisition
  • AVICAP.DLL
  • Directshow
  • TWAIN
  • Microsoft Expression Encoder
Bu örneklerde en iyi sonucu http://www.codeproject.com/Articles/285964/WPF-Webcam-Control sitesindeki örnek üzerindeki denemelere aldım. Bu yaklaşımda Microsoft Expression Encoder’a ait API’ler çağrılmakta ve bu amaçla hedef bilgisayarda Microsoft Expression Encoder SP2  (21 Mb) kurulu olması gerekmektedir.

Daha sonra Windows 8 için bir webcam temin ettim ve kamera görüntüsü kaydeden bir Windows Store uygulaması geliştirmeye başladım. Sonuç olarak verilen zaman aralığında kamera görüntüsünü kaydeden ve bu görüntüyü kullanıcıya ait Pictures Library’ye zaman damgası şeklinde bir isimle kaydeden bir uygulama ortaya çıktı (Resim 1.). 

Geliştirme aşamasında CameraCaptureUI Sample’dan (http://code.msdn.microsoft.com/windowsapps/CameraCaptureUI-Sample-845a53ac/file/58120/9/CameraCaptureUI%20Sample.zip) yararlandım, fakat bu örnekteki API işime yaramadığı için Windows.Media.Capture  API’si kullandım.
Bu uygulama çalıştırıldıktan sonra başka bir uygulamaya geçildiğinde,  arkaplanda da çalışmaya devam etmektedir.


Resim 1. LifeLoggingCC uygulamasına ait bir görüntü.

Bir sonraki aşama Windows Phone 8 altında çalışacak bir uygulama geliştirmekti. Windows Phone SDK 8.0’yı indirdim. Fakat telefon emülatörünün çalışması için bilgisayarın donanımsal sanallaştırma olanağına sahip olması gerektiği ortaya çıktı. Kullandığım iş istasyonları bu özelliğe sahip olmadığından dolayı SDK’yı bir laptopa kurarak kullanmaya başladım. Dolayısıyla Visual Studio laptopda biraz yavaş kaldı.

Windows Phone 8 geliştirme altyapısı Windows Store uygulaması geliştirme altyapısından faklı olduğundan dolayı programın sıfırdan yazılması gerekmekteydi. Yine de Windows store uygulaması altında yazdığım CreatefileName() işlevi ile sürekli görüntü kaydetmeye başlama ile kaydetmeye son verme yaklaşımlarını (dispatcher.timer) yeni programa fazla değiştirmeden taşıyabildim. Burada BasicCamera Sample’dan (http://code.msdn.microsoft.com/wpapps/Basic-Camera-Sample-52dae359) yararlandım ve öncekinden çok farklı olan Microsoft.Devices.PhotoCamera API’si kullandım.


Resim 2. LifeLoggingCCPhone uygulamasına ait bir görüntü.

Visual Studio Phone Emulatörü bilgisayarın kamerasını kullanamadığı için örnekteki telefonun ekranındaki görüntü emülatör tarafından üretilen yapay bir görüntüdür. Fakat uygulama bu yapay görüntüyü klasöre kaydedebilmektedir. En iyi sonucu Windows Phone 8 telefonlar geldikten sonra almaya başlayacağım.

Program çalışırken bilgisayar uyku moduna geçtiğinde görüntü alınamamaktadır. Bu nedenle programın kullanılacağı tablette uyku modunun iptali gerekmektedir. Windows Phone API’leri uygulama arkaplana aktarıldığında fotoğraf çekilmesine izin vermediğinden dolayı uygulamanın sürekli ön planda çalışması gerekmektedir.

LifeLogging Screen Capture yazılımı
Projede bireylerin gün boyunca kullandıkları masaüstü, laptop ve tablet bilgisayarlarının ekran görüntülerinin kaydedilmesi amaçlanmaktadır. Projede ortak bir teknolojik zemin oluşturabilmek amacıyla kullanıcıya ait bütün bilgisayarların, laptopların ve tabletlerin Windows 8 işletim sistemi altında çalışması öngörülmüştür. Dolayısıyla geliştirilecek olan yazılımın da Windows 8 altında çalışması öngörülmektedir.

Windows 8 geliştirici forumlarını taradığımda Windows 8 altında güvenlik gerekçeleri nedeniyle her türlü ekran yakalama işleminin engellendiğinden bahsedildiğini gördüm. Gerçekten bu amaçla kullanılabilecek bir API bulunmamaktaydı. Forumlarda masaüstü uygulaması şeklinde yazılan ekran yakalama yazılımlarının da Başlat menüsüne geçildikten ve bir Windows Store uygulaması çalıştırıldıktan sonra görüntü almamaya başladıkları ifade edilmekteydi.

Bir kaç deneme sonunda uygulamayı Windows masaüstü programı biçiminde ve Microsoft Expression Encoder API’si kullanarak yazmaya karar verdim ve program çalıştı. Gerçekten de program masaüstünde çalıştırıldıktan sonra ekranı kaydetmeye başlıyor ve ardından başlat menüsüne geçildikten ve Windows Store uygulamaları çalıştırılmaya başlandıktan sonra da ekran görüntüsü kaydetmeye devam ediyor. Bu Microsoft’un farketmediği bir açık ise ve bu açığı gelecekte kapatmaya karar verirse bu yaklaşımın gelecekte kullanılması mümkün olmayacaktır.

Uygulama arkaplanda iken çalışmaya devam etmektedir. Fakat bilgisayar uyku moduna geçtiğinde program son çektiği resmi kaydetmeye başlamaktadır. Programın kullanılacağı bilgisayarda uyku modunun iptal edilmesi gerekmektedir.

Projede öğrenme deneyimlerine ait içerik kaydı yapılmaması, sadece hatırlatıcı ekran görüntülerinin kaydedilmesi öngörülmesine rağmen ekran görüntülerinin isteğe bağlı olarak video biçiminde kaydedilmesi olanağı da eklenmiştir.


Resim 3. LifeLoggingSC uygulamasına ait bir görüntü.

Sonraki aşamalar
Windows 8 Phone ile bir uygulamanın kendisine ait ekran görüntülerinin kaydedilmesine olanak sağlanmaktadır. Fakat bu olanağın uygulama arkaplanda çalışırken diğer uygulamalara ait ekran görüntüleri kaydedebileceğini sanmıyorum.

Yukarıda bahsedilen uygulamalara çekim aralığı, görüntü kalitesi ve dosya kaydetme klasörlerinin değiştirilebileceği bir “Ayarlar” özelliği eklenecektir. Diğer taraftan uygulamalara GPS vb. sensör verilerini yakalama ve görüntülerle birlikte bu sensör verilerini de kaydetme olanağı da eklenecektir.

Değişik bilgisayarlar ve telefonlarda elde edilen görüntülerin kullanılması/değerlendirilmesi amacıyla bir merkezde toplanması gerekmektedir. Bu amaçla manuel ya da bulut altyapısı kullanan değişik tasarımlara ait taslakları geliştirmeye başladım. Geliştirdiğim çözümlere izleyen yayınlarda yer vereceğim.

17 Aralık 2012 Pazartesi

Yaşam Günlüğü

Yaşam Günlüğü

Günümüzde yaşam günlüğü teknolojilerinde hızlı bir gelişme var. Microsoft SenseCam aygıtının Vicon Revue adı altında satışı bu yıl sonunda sona erecek. Vicon firması bunun yerine Autographer isminde yeni nesil bir giyilebilir yaşam günlüğü aygıtı üretmeye başladı. Resim kalitesi 5MP ve cihaz üzerinde GPS dışında" ambient light", "accelerometer", "magnetometer", "passive infrared sensor" ve "temperature" olmak üzere 5 ayrı sensör ve Bluetooth bağlantısı özelliği bulunuyor. Resimler 136 derecelik bir açıklığa sahip. Aygıtın 8 GB belleği var. Ağırlığı ise 58 gram.



Kaynak: www.autographer.com


Bir kickstarter projesi olan Memoto ise Şubat 2013'de piyasaya çıkacak. İki gün süreyle 30 saniyede bir 5MP resim çekmesi öngörülüyor. Aygıt bir rozet büyüklüğünde ve GPS sensörü bulunuyor.




Kaynak: www.memoto.com


Yaşam günlüğü konusundaki çalışmamı Kasım ayında İnet-Tr'2012 konferansında sundum (Mutlu, 2012). Bu çalışmayla yaşam günlüğü alanına giriş yapmış oluyorum. Bu bildiride ayrıca AllMyListsMetro uygulamasının manuel bir yaşam günlüğü olarak nasıl kullanılabileceğini gösterdim. Bildirinin tamamına aşağıdaki bağlantıdan erişilebilir.

Bu konuda, yaşam deneyimlerini sürekli kaydeden ve kaydedilen bilgileri öğrenme deneyimlerini yönetmek amacıyla kullanma olanağı sağlayan AllMyLists LE isimli bir yazılım geliştirmeye başlıyorum. Bu yazılımla ilgili yapmayı düşündüğüm çalışmaları bir Bilimsel Araştırma Projesi (BAP) önerisi halinde Anadolu Üniversitesine sundum. Eğer BAP Önerisi kabul edilirse projenin araştırma, geliştirme ve uygulama süreçlerini bu blogda paylaşacağım. 

Kaynaklar
Autographer Sitesi, www.autographer.com

Memoto Projesi, www.memoto.com

M.E. Mutlu, “Yaşam Günlüğü (CARPE) Uygulamaları ve Yaşam Deneyimleri Kaydedicisi için Bir Bilgi Mimarisi Önerisi”, İnet-Tr'12 XVII. Türkiye'de İnternet Konferansı’nda sunulan bildiri, Anadolu Üniversitesi, Eskişehir, 7-9 Kasım 2012 (İnternette yayınlandı) http://inet-tr.org.tr/inetconf17/bildiri/7.pdf


30 Kasım 2012 Cuma

Life Experiences Recorder

Yaşam Deneyimleri Kaydedicisi


(
Geçmişe not: Kasım 2102'de yaşam deneyimlerini kaydetmek amacıyla kullanılabilir bir cihazın farklı modellerine yönelik bir taslak tasarım geliştirmiştim. Tasarım raporunda yaşam deneyimleri kaydedicisi modelleri, yaşam deneyimleri kaydetme yazılımı, yaşam deneyimleri kaydetme aygıtına ait algılayıcılar, aygıtın göstergeleri, yakalanan verileri manuel ve otomatik anlamlandırmaya yönelik öngörüler, yakalanan verilerden elde edilecek istatistikler, yakalanan verilerle geçmiş deneyimi yeniden canlandırma yaklaşımları, yakalanan verilerin veri yapısı ve veritabanı ile tablolara ait tasarımlar, sisteme ait yazılımların kullanım özellikleri gibi çok ayrıntılı özelliklere yer verilmiştir. Bu tasarım izleyen yıllarda gerçekleştirdiğim yaşam günlüğü projelerinde ve yayınlarda  yol gösterici olmuştur. Yaşam deneyimleri kaydedicisine ait modellerin güncel bir hali "Öğrenme deneyimlerinin yönetiminde yaşam deneyimlerini yakalamak için çok katmanlı bir model" ismiyle Temmuz 2018'de bir makale olarak yayınlanmıştır (*). Yaşam deneyimleri kaydedicisinin ait Kasım 2012'deki tasarıma ait modelleri ve bu modellerle geçmişi yeniden canlandırabilme seçeneklerine ait özet bilgiyi anısal değerinden dolayı bu yayında geçmişe dönük olarak yayınlıyorum.

(*) Mutlu, M.E. (2018). Öğrenme deneyimlerinin yönetiminde yaşam deneyimlerini yakalamak için çok katmanlı bir model. AUAd, 4(3), 23-57.
)


Yaşam Deneyimleri Kaydedicisi Modelleri


Sistemin dört ayrı modeli bulunmaktadır: Model 0, Model A, Model B ve Model C. Model 0 ve Model A’nın konfigürasyonları farklı olmasına rağmen yetenekleri eşdeğerdir.

Model 0

Taşınabilir bilgisayarda çalışan ve belirli zaman aralıklarında bir dış kamera ile bir dış mikrofondan gelen ses ve görüntüyü taşınabilir bilgisayarda bulunan standart sensörlerden elde edilen bağlam etiketleriyle donatarak bilgisayara kaydeden bir yazılımdır. Sistem, taşınabilir bilgisayara takılabilen bir dış kamera ve mikrofon ile YDK yazılımından oluşmaktadır. 

Model A

Bir taşınabilir bilgisayar ile bağlantılı, temel sensörleri (takvim/saat, gps, pusula, jiroskop, ivmeölçer) içeren ve ayarlanabilir belirli zaman aralıklarında bu sensörlerden gelen bilgileri bağlam etiketleriyle donatarak bilgisayara kaydeden taşınabilir bir aygıttır. Sistem, YDK aygıtı ve YDK yazılımından oluşmaktadır. 

Model B

Bir taşınabilir bilgisayar ile bağlantılı, temel sensörlerin yanısıra biyolojik ve meteorolojik sensörleri içeren ve ayarlanabilir belirli zaman aralıklarında bu sensörlerden gelen bilgileri bağlam etiketleriyle donatarak bilgisayara kaydeden taşınabilir bir aygıttır. Sistem, YDK aygıtı, biyolojik ve meteorolojik sensör ekipmanı ve YDK yazılımından oluşmaktadır.

Model C 

Bir taşınabilir bilgisayar ile bağlantılı, temel sensörlerin yanısıra biyolojik, meteorolojik ve hareket yakalayan çok sayıda sensör içeren ve ayarlanabilir belirli zaman aralıklarında bu sensörlerden gelen bilgileri bağlam etiketleriyle donatarak bilgisayara kaydeden taşınabilir bir aygıttır. Sistem, YDK aygıtı, biyolojik, meteorolojik ve hareket sensörleri ekipmanı ve YDK yazılımından oluşmaktadır. Yazılımın yeniden canlandırma bölümü geçmişi üç boyutlu olarak oluşturabilmektedir. 


Yeniden Canlandırma


Yeniden canlandırma modülü ile bir zaman çizgisi üzerinden seçilen geçmişin belirlenen hızda tekrar görüntülenmesi sağlanmaktadır. Model 0, Model A, B ve C’de kayıt hızında görüntü, ses ve anlam bilgilerinin akışı sağlanmaktadır. Model B ve C’de ek olarak biyolojik ve meteorolojik bilgiler de görüntülenmektedir. Model C’de ise ek olarak üç boyutlu beden canlandırması görüntülenmektedir.

Bir Boyutlu Canlandırma


Konumlanma olanağı ile verilen bir tarih ve saate ait kayıt bilgisine erişilebilmektedir. Arama olanağı ile belirli anahtar kelimelere ait kayıtların kümesi elde edilmektedir. Bütün modellerde geçerlidir.

İki Boyutlu Canlandırma


Geçmişteki iki zaman noktasının arası, belirli bir hızla bir zaman çizgisi boyunca tekrar görüntülenmektedir. Bütün modellerde geçerlidir. Model B ve C’de zaman çizgisine biyolojik ve meteorolojik veriler de eklenebilmektedir.

Üç Boyutlu Canlandırma


Model C’de YDK yazılımı geçmiş kayıtları iki zaman noktası arasında belirli bir hızda üç boyutlu olarak tekrar canlandırabilmektedir:

  1. Görüntülerin analizinden çevrenin üç boyutlu olarak canlandırılması
  2. Herhangi bir andaki kaydı, beden hareketlerini üç boyutlu bir animasyonla ve görülen görüntü ve duyulan ses eşliğinde tekrar canlandırma ((1)'deki üç boyutlu çevre içerisinde.)

5 Ekim 2012 Cuma

MyPLE

MyPLE

Kişisel öğrenme ortamları (PLEs) oluşturmak amacıyla "Start Page" yaklaşımının çeşitli sorunları bulunmakta. "Sustainability of PLE start Pages" (1) isimli yayında ve AECT 2012 için hazırladığım bildiride (2) bu konudaki bulgularımı paylaştım. Mobil uygulama tabanlı PLE oluşturmak amacıyla Windows 8 Metro Style uygulama geliştirme altyapısının sağladığı olanakları incelemeye başladım. Bir iki saatlik bir deneme ile Visual Studio 12 ve Visual Basic ile Split Application şablonunu kullanarak Web 2.0 araçlarını içeren web sitelerini taşıyacak bir ana sayfa oluşturmayı başardım. Bunun için web sitelerine ait bilgileri şablon içerisinde gelen data modelde grup listesine ekledim. Ayrıca şablonda Items Page'de "image" olan öğeyi "webview" olarak değiştirdim. Aşağıdaki gibi bir görünüm elde edildi.


Çok sayıda web sitesi kullanıldığı durumda bu yapı çok kullanışlı değil. Sitelerin gruplanabileceği bir yapı gerekiyor. Bu amaçla ana sayfada listelerin oluşturulduğu, her listeye ise web sitelerinin eklenebildiği yapıyı denedim. Bu yaklaşımda Items Page'de grup düzeyinde liste isimleri tutlmakta, her listeye tıklandığında ise Split Page'de o listeye ait öğeler görüntülenmekte. Web sitelerine ait bilgilerin öğe düzeyinde tutulmasını sağladım ve şablonda "content" olan alanı "web view" olarak değiştirdim. Sonuç olarak aşağıdaki gibi iki katmanlı yapı ortaya çıktı.





Elde edilen yeni yapı PLE oluşturmak için istenildiği kadar "Start Page" oluşturulabilmesine olanak sağlamakta.

Bu yapıda başka denemeler de yapılabilir:


  • Split Page şablonu yerine Grouped Items Page şablonu kullanılarak, tek katmanlı olan ama öğelerin  gruplandırılmış olduğu bir ekran görünümü elde edilebilir.
  • Grid Application şablonu kullanılarak ilk sayfası gruplandırılmış ve iki katmanlı bir yapı tasarlanabilir.


Bu aşamada MyPLE uygulamasının bir PLE işlevselliğine sahip olması için oldukça yol alınması gerekiyor. Örneğin Widget özelliklerinini eklenmesi, Live Tiles ve Notification gibi hareketliliklerin kullanılması durumunda uygulama biraz daha kullanışlı hale gelecektir. Diğer taraftan uygulamanın kullanılabilirliği için liste ekleme/düzenleme ve listelere öğe ekleme/düzenleme özelliklerine de ihtiyaç var. Bu işlevleri AECT 2012 bildirisinde (2) gösterildiği gibi yapıyı AllMyListsMetro'ya taşıyarak kazandırmak son derece kolay olacaktır. Fakat MyPLE üzerinde bütün denemeleri ve geliştirmeleri yapmaya devam ederek,yapıyı  belirli bir aşamaya geldikten sonra AllMyListMetro'ya taşımayı düşünüyorum. 



(1) http://kisiselogrenmeortamlari.blogspot.com/2012/07/sustainability-of-ple-start-pages.html

(2) M.E. Mutlu, 2012 AECT International Convention konferansı dahilinde "Proceedings of 2012 AECT International Convention"  bildiri kitapçığındaki "Technological Developments Observed in the PLE Diagrams and Sustainability", Louisville/Kentucky, ABD, 30 Ekim - 3 Kasım 2012 (Kabul edildi)