Buiten het uitgebreid testen van de presence client en het oplossen van bijhorende bugs, zijn dit de dingen die ik de voorbije weken heb verwezenlijkt:
- Refactoring: de code voldoet nu beter aan python standaarden, waarin het de conventie is om de namen van ‘private’ methods en member variabelen (die niet verplicht opgelegd worden in python) vooraf te laten gaan door een underscore (‘_’). Op die manier kunnen IDE’s beter aangeven welke methods tot de interface van de klassen behoren.
Ook heb ik pyLint, een tool zoals lint voor C, losgelaten op de code. Dit omdat python zelf de code pas ‘checkt’ wanneer hij gerund wordt. Op deze manier ben ik er zeker van dat er geen ongedeclareerde variabelen gebruikt worden en dat ik geen tikfouten heb gemaakt. - Fallbacks: indien een bepaalde library niet geïnstalleerd is, zal het programma proberen om in een soort van compatibiliteitsmodus te draaien. Een voorbeeld hiervan is het runnen van de applicatie zonder dat er avahi-support is geïnstalleerd. Het programma zal dan proberen te verbinden met een default server.
- Een globaal notificatie framework: om te voldoen aan het user scenario 3 uit voorgaande blogpost heb ik gezorgd voor een notificatie-framework, waarnaar applicaties hun notificaties kunnen versturen als ze willen dat de gebruiker deze ook op andere machines kan lezen waarop hij werkt. De presence client en server zullen er dan voor zorgen dat deze notificatie weergegeven wordt op het apparaat waarop de gebruiker op dat moment het actiefst bezig is.
- DBus ondersteuning: er is nu een extra klasse, presenceClientDBusListener, die een presence client aanmaakt en ervoor zorgt dat hij bestuurd kan worden via DBus. Concreet komt dit erop neer dat andere applicaties ‘messages’ kunnen sturen naar de presence client. Zo is het nu mogelijk om het presence level te updaten via een DBus-aanroep, of om op die manier notificaties en berichten te versturen.
- User Interfaces: op een desktop PC worden notificaties weergegeven door gebruik te maken van libnotify, hetgeen ervoor zorgt dat de notificaties op de system-native manier worden weergegeven. De berichten komen op een desktop PC aan in een klein gtk-kadertje, omdat het de bedoeling is dat dit gebruikt wordt voor snelle, kleine messages en niet voor uitgebreide chatsessies. De gebruiker heeft hierin de mogelijkheid om te replyen.
In Android werk ik met het standaard notificatie-framework. Dit zorgt ervoor dat berichten in een notificatie weegegeven worden waarop geklikt kan worden om een antwoord te sturen. - Thesis: nagedacht over een inhoudstabel voor de thesis. Hierna volgt de voorlopige versie
Voorlopige inhoudstafel
User scenario’s
Doorsturen van notificaties
Messaging
‘context-aware’ systemen: apparaat weet of het actief gebruikt wordt
Gebruikte talen/pakketten/libraries
Python
Avahi/zeroconf
DBus
gtk + libnotify
Python socket library
Java
Android SDK (eclipse)
Implementatie presence server
User handlers => schaalbaarheid
=> server verzorgt logins en kent userHandlers (voor messaging)
Verbinding: avahi of rechtstreeks
=> gebruik binnen bedrijf voor communicatie tussen collega’s: avahi
=> 1 persoon met veel apparaten op verschillende plaatsen (notifications): rechtstreeks
Bijgehouden data: client list, most active
Implementatie presence client
Desktop
Modulairiteit (dbus) => Info voor andere programma’s: isMostActive(), sendNotification(), sendMessageToUser()
User Interface: mogelijkheid tot vervanging
Bijgehouden data: isMostActive, presence list (afweging data verstuurd)
Integratie met presence agent Kristof
Nokia?
Android
PresenceService
ConnectionHandler
ActivityHandler => keyboard lock
UI/presenceClient
notifications op android

Plaats een reactie
Feed met reacties voor dit artikel