Amora: A mobile remote assistant

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Amora: A mobile remote assistant - Presentation Transcript

    1. Amora: A mobile remote assistant Adenilson Cavalcanti Community Group – INdT (Nokia) adenilson.silva@indt.org.br cavalcantii@gmail.com 1 © INdT 2007 | Company Confidential
    2. Objectives •Explain reasons for design/implementation of Amora •Present tools used •Share knowledge and lessons 2 © INdT 2007 | Company Confidential
    3. Why create Amora Free/OSS 'remote controllers' @ 2007/06 •Abandoned, no longer maintained •Unstable/bad performance •Confusing user interface •Windows only (or poor support for Linux) •Almost impossible to install 3 © INdT 2007 | Company Confidential
    4. Project Size • 3342LOC (8 persons/month): • 3000 visits/month, 132 different 55% ANSI C, 37% Python, 8% C++ nations (november@2007) 4 © INdT 2007 | Company Confidential
    5. ... do brazilians love python+amora? september@2008 5 © INdT 2007 | Company Confidential
    6. Project •GPL 2.0: free/opensource software •officially packaged: Mandriva, Fedora Core, Debian •code base is small •contributors are welcome Webpage http://amora.googlecode.com/ Repository http://amora.googlecode.com/svn/trunk/ 6 © INdT 2007 | Company Confidential
    7. Concept A long way to go... *The project was codenamed P4X (Presenter 4 X) 7 © INdT 2007 | Company Confidential
    8. Concept: design A long way to go... 8 © INdT 2007 | Company Confidential
    9. Implementation Coding can get messy! 9 © INdT 2007 | Company Confidential
    10. Implementation “Programmers shalt not do user interface...” 10 © INdT 2007 | Company Confidential
    11. Implementation Clear vision of where to go is important! 06/16 2.5 months spare time 08/31 rev. 186 1616 LOCs 11 © INdT 2007 | Company Confidential
    12. Today usability 12 © INdT 2007 | Company Confidential
    13. Architecture 13 © INdT 2007 | Company Confidential
    14. Amora lib •ANSI C/POSIX: protocol + communication •Xlib/XTest: window events (portable to other *nix) •imlib: screenshot, resize, rotation •BlueZ: communication •D-BUS: dongle disconnection 14 © INdT 2007 | Company Confidential
    15. Amora library Exec. Server size 25KB... 15 © INdT 2007 | Company Confidential
    16. UI applet 16 © INdT 2007 | Company Confidential
    17. Client Classes •Amora: main loop •Application: main application logic •Wallpaper: main app background image •Help: display help text •Bluetooth: communication •Keyboard: required to draw in Canvas 17 © INdT 2007 | Company Confidential
    18. Protocol •Default log when connecting: [Apr 15 18:34:31]: Accepted connection. Client is 00:18:42:E3:EC:44 [Apr 15 18:34:31]: Read buffer = SCREEN_MODE_ON [Apr 15 18:34:31]: Read buffer = SCREEN_RESOLUTION [Apr 15 18:34:31]: Read buffer = 240 [Apr 15 18:34:31]: Read buffer = 320 •Protocol is: - set screenshot on or off - screen width - screen height 18 © INdT 2007 | Company Confidential
    19. Protocol •Log for screenshot event: [Apr 15 18:39:17]: Read buffer = SCREEN_TAKE •Protocol is: - set orientation (rotate or not) - client ask for screenshot (SCREEN_TAKE) - server answers with image size (56732) - server starts to write data in socket - client must read this data 19 © INdT 2007 | Company Confidential
    20. Screenshot client code 20 © INdT 2007 | Company Confidential
    21. Other protocol commands 21 © INdT 2007 | Company Confidential
    22. Why use Python for client side? Symbian x Java x Python _LIT(Scnst, “Welcome to darkness...”); TBufC8<20> buffer(Scnst); TBufC8<20> copy; TPtr8 ptr = copy.Des(); ptr.Copy(buffer); //Deprecated! printf(“symbian string = %s\\n”, ptr.PtrZ()); String tmp = new String(\"Hello, Java is cool!\"); StringBuffer newer = new StringBuffer(tmp); System.out.println(newer); a = 'Python rulez!'; b = a; print b 22 © INdT 2007 | Company Confidential
    23. How many lines a simple 'hello world' has? LOC por linguagem 70 60 50 Lines of Code 40 LOC 30 import appuifw 20 appuifw.note(u'Hello!') 10 0 Symbian Java Python 23 © INdT 2007 | Company Confidential
    24. Summing up: Python is fun! 24 © INdT 2007 | Company Confidential
    25. Tools •logging: helped to track on missing call to XFlush(); •electric fence: helped to find one memory leak in logging functions; •gtk-devel-list: help for get real root window for GTK apps; •valgrind: server can run fine inside it; •autotools: buildsystem help to support Linux flavors; •doxygen: source code documentation; •subversion: today I would use git... •utest: help to optimize uloop code; 25 © INdT 2007 | Company Confidential
    26. BT terminal •Script to create a terminal sdptool add --channel=1 SP sdptool browser local while true; do rfcomm listen /dev/rfcomm0 1; done 26 © INdT 2007 | Company Confidential
    27. BT terminal 27 © INdT 2007 | Company Confidential
    28. BT Terminal 28 © INdT 2007 | Company Confidential
    29. BT Terminal 29 © INdT 2007 | Company Confidential
    30. Help is welcome •tablet amora: client for internet tablet •ports: Mac OSX, FreeBSD, Solaris (if at least it has a bluetooth stack...) •j2me client: cover other cellphones models •Qt applet: needs some love •features: see project issues list 30 © INdT 2007 | Company Confidential
    31. What is next • D-BUS integration • Tamora (Tablet amora) • Java client 31 © INdT 2007 | Company Confidential
    32. Acknowledgments • INdT (Instituto Nokia de Tecnologia): for contributing to development of this project: hardware, some coding hours, travels, etc • Wilson Prata: the UI, usability and graphic design guy • My fellow programmer friends: Ademar Reis, Thiago M. P. Santos and Tomaz Noleto • Ros Macmahon(j2me), Allison Azevedo (Fedora), Axel Beckert (Debian) 32 © INdT 2007 | Company Confidential
    33. Why packagers are important? • “It just works for me with my new, yes, Nokia 6120c smartphone... so easy! Run apt-get install amora-server” (smihael blog) • “The best remote program i have found is Amora. Works well” (Ubuntu forum) • “And it must have been written by someone with my exact problem... and am thrilled at how easy it was to set up and how smoothly it works.” (Foosel blog) • “Oh, and many thanks to foosel since I found Amora in her blog. ” (Axel Beckert, 2 months before making debian package) 33 © INdT 2007 | Company Confidential
    34. Pycon@BR staff •O rio de janeiro continua lindo... 34 © INdT 2007 | Company Confidential

    + gsromagsroma, 2 years ago

    custom

    496 views, 0 favs, 0 embeds more stats

    Adenilson Cavalcanti

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 496
      • 496 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 9
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories