Università Degli Studi Di Bergamo Moogle: a Web Crawler and Full-Text Search Application for Distributed Private Data

Total Page:16

File Type:pdf, Size:1020Kb

Università Degli Studi Di Bergamo Moogle: a Web Crawler and Full-Text Search Application for Distributed Private Data UNIVERSITÀ DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Classe n. 35/S - Classe delle lauree specialistiche in ingegneria dell’informazione MOOGLE: A WEB CRAWLER AND FULL-TEXT SEARCH APPLICATION FOR DISTRIBUTED PRIVATE DATA Relatore: Chiar.mo Prof. Stefano Paraboschi Tesi di Laurea Specialistica Paolo COFFETTI Matricola n. 42519 ANNO ACCADEMICO 2013/2014 Abstract You want to search for that sushi restaurant someone recommended you last month but you don't remember its name: you type "sushi restaurant" in your laptop and you get an old tweet from a friend talking about Tokyo Sushi. You also get a comment you wrote on Facebook, an SMS message you sent your brother and a bookmark in your browser, all about the same restaurant. And imagine that you can do this with your smart phone, your laptop, tablet or smart TV. Something so basic yet so far from the reality. This is Moogle - My Own Google, the search engine for private data. This thesis describes the work I accomplished in order to design, develop and deploy a first solid version of Moogle following the iterative and incremental software development process outlined by Grady Booch. 1 Acknowledgments First and foremost I'd like to thank my parents and sisters for their patience and the support they provided me during my studies. I also want to express my gratitude to Professor Stefano Paraboschi for his precious guidance. I wish to thank my girlfriend Boyang for her loving support and who, once again, had to deal with those long hours of my absence while working on this project. A special acknowledgment goes to my dearest friends Marco Bontempi for his valuable and prompt technical advice and Simone Pilla for his daily backing. Finally yet importantly, thanks to United Academics and especially to Louis Lapidaire for his frequent encouraging words and material support. 2 Table Of Contents Abstract ............................................................................................................................. 1 Acknowledgments ............................................................................................................. 2 List Of Figures .................................................................................................................. 5 1. Introduction ................................................................................................................... 6 1.1. Purpose ............................................................................................................................... 8 2. Requirements ................................................................................................................ 9 2.1. Vision And Key Features ................................................................................................... 9 2.2. Use Case Analysis ............................................................................................................ 11 2.3. Non-functional Requirements .......................................................................................... 17 3. Software Development Process .................................................................................. 18 3.1. Macro Process: Phases And Milestones ........................................................................... 20 4. Architecture ................................................................................................................. 24 4.1. 4+1 Architectural View Model ......................................................................................... 25 4.2. Magpie Web Crawler ....................................................................................................... 27 4.3. Moogle Website ................................................................................................................ 46 5. Protocols And Data Entities ........................................................................................ 51 5.1. OAuth Protocol ................................................................................................................. 52 5.2. Facebook API ................................................................................................................... 53 5.3. Twitter API ....................................................................................................................... 61 5.4. Dropbox API .................................................................................................................... 70 5.5. Google API ....................................................................................................................... 76 5.6. Google Drive API ............................................................................................................. 78 5.7. Google Gmail API ............................................................................................................ 81 6. Task Queue With Redis .............................................................................................. 85 6.1. Redis Overview ................................................................................................................ 85 6.2. Data Structures ................................................................................................................. 88 6.3. Redis For Task Queues ..................................................................................................... 92 6.4. Data Model in Redis ......................................................................................................... 93 3 7. Full-Text Search Engine ............................................................................................. 99 7.1. Apache Solr: Key Concepts .............................................................................................. 99 7.2. Schema Design ............................................................................................................... 110 8. Conclusion And Future Developments ..................................................................... 121 Appendix A. Entities ..................................................................................................... 123 A.1. Facebook ........................................................................................................................ 123 A.2. Twitter ........................................................................................................................... 137 A.3. Dropbox ......................................................................................................................... 143 A.4. Google Drive ................................................................................................................. 145 A.5. Gmail ............................................................................................................................. 148 Appendix B. Providers Details ..................................................................................... 149 B.1. Facebook ........................................................................................................................ 149 B.2. Twitter ............................................................................................................................ 151 B.3. Dropbox ......................................................................................................................... 152 B.4. Google ............................................................................................................................ 153 Appendix C. Solr Schema ............................................................................................. 155 C.1. Twitter ............................................................................................................................ 155 C.2. Facebook ........................................................................................................................ 159 C.3. Dropbox ......................................................................................................................... 162 Bibliography ................................................................................................................. 167 4 List Of Figures Figure 2-A Main Use Cases……………………………………………………………12 Figure 3-A Macro process, phases and milestones…………………………………….20 Figure 4-A Main components of the system…………………………………………...24 Figure 4-B 4+1 Architectural View Model…………………………………………….26 Figure 4-C Top-level component diagram for Magpie………………………………...28 Figure 4-D SQLAlchemy as ORM interface to the database…………………………..29 Figure 4-E ER class diagram…………………………………………………………...29 Figure 4-F Class diagram for the Facebook crawler component.......…………………. 31 Figure 4-G Partial hierarchical structure of the different crawlers……………………..33 Figure 4-H Class diagram for the Facebook indexer component………………………33 Figure 4-I Partial hierarchical structure of the different indexers……………………... 35 Figure 4-J Class diagram for the Dropbox downloader component…………………... 36 Figure 4-K Sequence diagram for the Facebook crawling process…………………….38 Figure 4-L Sequence diagram for the Facebook indexing process……………………. 39 Figure 4-M Sequence diagram for the Dropbox downloading process………………...40 Figure 4-N Package diagram for Magpie………………………………………………42 Figure 4-O Deployment diagram for Magpie…………………………………………. 44 Figure 4-P Top-level component diagram for Moogle Website………………………. 47 Figure 4-Q ER class diagram………………………………………………………….
Recommended publications
  • D2.2: Research Data Exchange Solution
    H2020-ICT-2018-2 /ICT-28-2018-CSA SOMA: Social Observatory for Disinformation and Social Media Analysis D2.2: Research data exchange solution Project Reference No SOMA [825469] Deliverable D2.2: Research Data exchange (and transparency) solution with platforms Work package WP2: Methods and Analysis for disinformation modeling Type Report Dissemination Level Public Date 30/08/2019 Status Final Authors Lynge Asbjørn Møller, DATALAB, Aarhus University Anja Bechmann, DATALAB, Aarhus University Contributor(s) See fact-checking interviews and meetings in appendix 7.2 Reviewers Noemi Trino, LUISS Datalab, LUISS University Stefano Guarino, LUISS Datalab, LUISS University Document description This deliverable compiles the findings and recommended solutions and actions needed in order to construct a sustainable data exchange model for stakeholders, focusing on a differentiated perspective, one for journalists and the broader community, and one for university-based academic researchers. SOMA-825469 D2.2: Research data exchange solution Document Revision History Version Date Modifications Introduced Modification Reason Modified by v0.1 28/08/2019 Consolidation of first DATALAB, Aarhus draft University v0.2 29/08/2019 Review LUISS Datalab, LUISS University v0.3 30/08/2019 Proofread DATALAB, Aarhus University v1.0 30/08/2019 Final version DATALAB, Aarhus University 30/08/2019 Page | 1 SOMA-825469 D2.2: Research data exchange solution Executive Summary This report provides an evaluation of current solutions for data transparency and exchange with social media platforms, an account of the historic obstacles and developments within the subject and a prioritized list of future scenarios and solutions for data access with social media platforms. The evaluation of current solutions and the historic accounts are based primarily on a systematic review of academic literature on the subject, expanded by an account on the most recent developments and solutions.
    [Show full text]
  • Letter, If Not the Spirit, of One Or the Other Definition
    Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2021 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license. Version: 2.3214 Home site: https://producingoss.com/ Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Under- hill and Jim Blandy. i Table of Contents Preface ............................................................................................................................. vi Why Write This Book? ............................................................................................... vi Who Should Read This Book? ..................................................................................... vi Sources ................................................................................................................... vii Acknowledgements ................................................................................................... viii For the first edition (2005) ................................................................................ viii For the second edition (2021) .............................................................................. ix Disclaimer .............................................................................................................. xiii 1. Introduction ...................................................................................................................
    [Show full text]
  • Information Retrieval and Mining in Distributed Environments Studies in Computational Intelligence,Volume 324 Editor-In-Chief Prof
    Alessandro Soro, Eloisa Vargiu, Giuliano Armano, and Gavino Paddeu (Eds.) Information Retrieval and Mining in Distributed Environments Studies in Computational Intelligence,Volume 324 Editor-in-Chief Prof. Janusz Kacprzyk Systems Research Institute Polish Academy of Sciences ul. Newelska 6 01-447 Warsaw Poland E-mail: [email protected] Further volumes of this series can be found on our homepage: springer.com Vol. 313. Imre J. Rudas, J´anos Fodor, and Janusz Kacprzyk (Eds.) Vol. 301. Giuliano Armano, Marco de Gemmis, Computational Intelligence in Engineering, 2010 Giovanni Semeraro, and Eloisa Vargiu (Eds.) ISBN 978-3-642-15219-1 Intelligent Information Access, 2010 Vol. 314. Lorenzo Magnani,Walter Carnielli, and ISBN 978-3-642-13999-4 Claudio Pizzi (Eds.) Vol. 302. Bijaya Ketan Panigrahi,Ajith Abraham, Model-Based Reasoning in Science and Technology, 2010 and Swagatam Das (Eds.) ISBN 978-3-642-15222-1 Computational Intelligence in Power Engineering, 2010 Vol. 315. Mohammad Essaaidi, Michele Malgeri, and ISBN 978-3-642-14012-9 Costin Badica (Eds.) Vol. 303. Joachim Diederich, Cengiz Gunay, and Intelligent Distributed Computing IV, 2010 James M. Hogan ISBN 978-3-642-15210-8 Recruitment Learning, 2010 Vol. 316. Philipp Wolfrum ISBN 978-3-642-14027-3 Information Routing, Correspondence Finding, and Object Vol. 304.Anthony Finn and Lakhmi C. Jain (Eds.) Recognition in the Brain, 2010 Innovations in Defence Support Systems, 2010 ISBN 978-3-642-15253-5 ISBN 978-3-642-14083-9 Vol. 317. Roger Lee (Ed.) Vol. 305. Stefania Montani and Lakhmi C. Jain (Eds.) Computer and Information Science 2010 Successful Case-Based Reasoning Applications-1, 2010 ISBN 978-3-642-15404-1 ISBN 978-3-642-14077-8 Vol.
    [Show full text]
  • 2014 URCA Abstracts for Oral and Poster Presentations
    Oral & Poster Presentation Abstracts Katheryn Adam, Chemistry Faculty Mentor: Marco Bonizzoni, Chemistry An off-the-shelf sensing system for physiologically relevant phosphates We have developed a chemical sensing system that can differentiate biologically relevant phosphates (nucleoside diphosphates, pyrophosphate) in neutral water solution using only commercially available components. Our approach uses a common fluorescent indicator and a poly(amidoamine) (PAMAM) polycationic receptor to construct an indicator displacement assay (IDA). The system crucially relies on multivariate data collection and analysis. In fact, using different phosphates in the dye-displacement assay results in subtle differences in the optical signals; however, it is not possible to capture this information using classical univariate data presentation techniques. Instead, we rely on principal component analysis, a multivariate data analysis technique, to evaluate these differences and thus distinguish between the biologically relevant phosphates. We will also present supporting data reporting on the anion binding capabilities of the PAMAM system acquired using optical spectroscopy methods. Alison Adams, Biological Sciences Faculty Mentor: Laura Reed, Biological Sciences QTL affecting genotype-by-diet interactions of larval triglyceride levels Metabolic Syndrome (MetS) is a complex disease that is becoming increasingly prevalent in the world today. It is identified by an assortment of symptoms such as obesity, insulin resistance, and elevated blood lipids. This disease and its various phenotypes can be modeled in Drosophila melanogaster. In a previous study of MetS, our lab implemented a round-robin crossing scheme on approximately 800 isogenic lines from a recombinant inbred line population, and a linear regression was used to determine genotype, diet, and genotype-by-diet interactions.
    [Show full text]
  • Social Media Evaluation for Non-Profit Organizations
    Social media evaluation for non-profit organizations The case of Oxfam Italia Master Thesis Author: Giuseppe Antonio Coco Thesis Supervisor: Jessica Gustafsson Department of Informatics and Media Specialization in Digital Media & Society Uppsala University, Sweden Autumn 2014 Abstract The thesis presents an evaluation of the Facebook page of the Italian non-profit organization Oxfam Italia from November 2013 to March 2014. The research’s aim is to analyze the community which follows the organization, how this community interacts with it and how the moderators of the page communicate with its followers. The research aims also to find ways to increase Oxfam Italia’s performance on Facebook. The theoretical framework focuses on non-profit marketing and its peculiarities, Social Media Marketing and notions such as engagement and brand community. The methods used in the research consist in data mining and content analysis. Data have been gathered from Facebook Insights and through the issuing of FQL queries from the Facebook Graph API. The research found out that Oxfam has more female followers than male (62% vs 36,5%), the age range of them is 25-44 years. Oxfam’s presence, in particular, is very rooted in the region of Tuscany (where its headquarter is). Facebook followers showed a very good attitude toward the organization, even though criticisms are common, and Oxfam used its social media presence mainly to update the followers concerning ongoing activities and to urge to on-line activism. The users’ favourite engagement method was “liking” photographic contents. Keywords Social media evaluation – Non-profits organizations – Non-profits marketing – Facebook – Oxfam Italia – Facebook Graph API – Facebook Insights – content analysis II Table of Contents Abstract ..............................................................................................................................
    [Show full text]
  • Developing Facebook Applications by M.ALI and Amir Latif
    Developing Facebook Applications By M.ALI and Aamir Latif Application Development Objective • A very basic introduction to developing applications with Facebook using PHP. • Keep it simple. • Goal is learning. • Level:Basic Application Development Agenda • Presentation [M.ALI] 20 mins • Demonstration [Amir Latif] 15 mins • Question/Answer 10 mins Application Development What is Facebook? • Facebook is a web application that provides a kind of social networking with people near you. • Facebook was founded by Mark Zuckerberg in 2004. • Originally designed to connect different colleges and universities. • Facebook name has origin in magazine that was distributed to new students Application Development Facebook facts • World largest social network with over 350 million users. • An average teen spends about 20 mins daily. • More than 65 million active users at a time. • Consists of more than 500,000 active applications. • 6.5 millions users access FB from mobile • More facts on http://www.facebook.com/press/info.php?statist ics Application Development Facebook application • Developing facebook application mean it is accessible from FB. • Application is exposed to millions of users worldwide. • There is a chance for the application to become a popular one in FB. • Applications can be social applications like super wall,games like crazy taxi and quizzes. Application Development Facebook Applications Some Popular Facebook applications Application Development Farm Ville Application Development Facebook Platform • Facebook platform is a framework for developers to interact with the core features of the facebook site. • Anyone can developed an application in Facebook by pointing their URL to developers.facebook.com • The idea was to enable everyone to provide content to the facebook site.
    [Show full text]
  • Proceedings of the First Karlsruhe Service Summit Research Workshop - Advances in Service Research
    KIT SCIENTIFIC REPOrts 7692 Proceedings of the First Karlsruhe Service Summit Research Workshop - Advances in Service Research Karlsruhe, Germany, February 2015 Roland Görlitz, Valentin Bertsch, Simon Caton, Niels Feldmann, Patrick Jochem, Maria Maleshkova, Melanie Reuter-Oppermann (eds.) Roland Görlitz, Valentin Bertsch, Simon Caton, Niels Feldmann, Patrick Jochem, Maria Maleshkova, Melanie Reuter-Oppermann (eds.) Proceedings of the First Karlsruhe Service Summit Research Workshop - Advances in Service Research Karlsruhe, Germany, February 2015 Karlsruhe Institute of Technology KIT SCIENTIFIC REPORTS 7692 Advances in Service Research Series Editors Wolf Fichtner Karlsruhe Institute of Technology (KIT) Kai Furmans Karlsruhe Institute of Technology (KIT) Stefan Nickel Karlsruhe Institute of Technology (KIT) Ralf Reussner Karlsruhe Institute of Technology (KIT) Gerhard Satzger Karlsruhe Institute of Technology (KIT) and IBM Rudi Studer Karlsruhe Institute of Technology (KIT) Christof Weinhardt Karlsruhe Institute of Technology (KIT) Helmut Wlcek Karlsruhe Institute of Technology (KIT) and Bosch Proceedings of the First Karlsruhe Service Summit Research Workshop - Advances in Service Research Karlsruhe, Germany, February 2015 by Roland Görlitz Valentin Bertsch Simon Caton Niels Feldmann Patrick Jochem Maria Maleshkova Melanie Reuter-Oppermann (eds.) Report-Nr. KIT-SR 7692 Volume Editors Valentin Bertsch Senior Researcher at Karlsruhe Institute of Technology [email protected] Simon Caton Lecturer at the National College of Ireland [email protected]
    [Show full text]
  • Predicting User Interaction on Social Media Using Machine Learning Chad Crowe University of Nebraska at Omaha
    University of Nebraska at Omaha DigitalCommons@UNO Student Work 11-2018 Predicting User Interaction on Social Media using Machine Learning Chad Crowe University of Nebraska at Omaha Follow this and additional works at: https://digitalcommons.unomaha.edu/studentwork Part of the Computer Sciences Commons Recommended Citation Crowe, Chad, "Predicting User Interaction on Social Media using Machine Learning" (2018). Student Work. 2920. https://digitalcommons.unomaha.edu/studentwork/2920 This Thesis is brought to you for free and open access by DigitalCommons@UNO. It has been accepted for inclusion in Student Work by an authorized administrator of DigitalCommons@UNO. For more information, please contact [email protected]. Predicting User Interaction on Social Media using Machine Learning A Thesis Presented to the College of Information Science and Technology and the Faculty of the Graduate College University of Nebraska at Omaha In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Chad Crowe November 2018 Supervisory Committee Dr. Brian Ricks Dr. Margeret Hall Dr. Yuliya Lierler ProQuest Number:10974767 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. ProQuest 10974767 Published by ProQuest LLC ( 2019). Copyright of the Dissertation is held by the Author. All rights reserved. This work is protected against unauthorized copying under Title 17, United States Code Microform Edition © ProQuest LLC.
    [Show full text]
  • A Cultural and Political Economy of Web 2.0
    A CULTURAL AND POLITICAL ECONOMY OF WEB 2.0 by Robert W. Gehl A Dissertation Submitted to the Graduate Faculty of George Mason University in Partial Fulfillment of The Requirements for the Degree of Doctor of Philosophy Cultural Studies Committee: Director Program Director Dean, College of Humanities and Social Sciences Date: Spring Semester 2010 George Mason University Fairfax, VA A Cultural and Political Economy of Web 2.0 A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy at George Mason University. By Robert W. Gehl Master of Arts Western Michigan University, 2003 Director: Hugh Gusterson, Professor Department of Sociology and Anthropology Spring Semester 2010 George Mason University Fairfax, VA Copyright © 2010 Robert W. Gehl Creative Commons Attribution-Noncommercial-Share Alike 3.0 All trademarks, service marks, logos and company names mentioned in this work are the property of their respective owners. ii Dedication This dissertation is dedicated to one TJ, Teddy, who kindly slept through most of it and danced through the rest, and another TJ, Jesse, who works so hard for our little family. It is also dedicated to my parents, who filled my childhood house with books, computers, and love. Thank you. iii Acknowledgments Singlehandedly authoring a dissertation on Web 2.0 – a phenomenon which can at its best be about multiauthor collaboration in creative projects – is an ironic act. While I might claim authorship of this dissertation, it really is the result of many people working together. Specifically, my wonderful dissertation committee. The chair, Hugh Gusterson, came to GMU at just the right time to set me off on new paths of inquiry.
    [Show full text]
  • Thesis M0394 Copy
    The Web service development with Re- act, GraphQL and Apollo Dmitry Sklyarov Bachelor's thesis October 2020 Information and Communications Technology Degree Programme in Media Engineering Description Author(s) Type of publication Date Sklyarov, Dmitry Bachelor's thesis October 2020 Language of publication English Number of pages Permission for web publi- 110 cation: x Title of publication The Web service development with React, GraphQL and Apollo Degree programme Media Engineering Supervisor Rantala, Ari Assigned by Movya Oy Abstract The goal of the project, assigned by Movya Oy, was to develop a Web service that facili- tates the creation of business proposals and subsequent contracts between the company and the customer. An essential aspect of software development was using a modern server, and client tech- nologies React, GraphQL, and Apollo. The various stages of developing a web service included database design and manage- ment, responsive application design building, and implementing access control, pagination, sorting, filtering large amounts of data, grouping items, editing documents, etc. The thesis covers both the most critical aspects of developing these features, including the theoreti- cal part before. The main result of the thesis was the product itself - the Web service called Moffers. In ad- dition to this specific result, a lot of useful experience was gained, as well as knowledge of modern technologies and methods in JavaScript programming. Keywords/tags (subjects) Web service, JavaScript, React, GraphQL, Apollo, Ant Design, Mongoose, MongoDB Miscellaneous (Confidential information) Kuvailulehti Tekijä(t) Julkaisun laji Päivämäärä Sklyarov, Dmitry Opinnäytetyö, AMK Lokakuu 2020 Julkaisun kieli Englanti Sivumäärä Verkkojulkaisulupa 110 myönnetty: x Työn nimi The Web service development with React, GraphQL and Apollo Tutkinto-ohjelma Mediatekniikka Työn ohjaaja(t) Rantala, Ari Toimeksiantaja(t) Movya Oy Tiivistelmä Opinnäytetyön toimeksiantajana oli Movya Oy.
    [Show full text]
  • Introducing Facebook and the Facebook Platform
    05_277959-ch01.qxp 5/5/08 11:25 AM Page 9 Chapter 1 Introducing Facebook and the Facebook Platform In This Chapter ᮣ Getting to know Facebook ᮣ Exploring the Facebook Platform ᮣ Understanding what the Facebook API, FBML, FQL, and FBJS are ᮣ Figuring out where to get online developer information e hear all of the time about “platforms” in various walks of life. Political Wparties put their policies and agendas into documents called platforms. An Olympic diver performs a perfect dive off of a 10 meter platform on the way to a gold medal. Heck, platform tennis is a form of tennis that people play with paddles. Facebook too has its own platform — cleverly called the Facebook Platform. Fortunately for your coworkers, it is a platform that you don’t need a swim- suit or a paddle to use. You do need to know a Web programming language such as PHP or Java, however. Facebook gained popularity because of its structured environment and social network, but its Facebook Platform is proving to be a critical means of prevent- ing it from becoming the latest “flavor of the month.” Because of third-party applications,COPYRIGHTED Facebook now offers a compelling MATERIAL reason for users to invest themselves in Facebook.com in a way that they were never really able to do with social networking sites like MySpace. In fact, upon the Platform’s release, it was only a matter of weeks before users began to see thousands and thou- sands of Facebook-inspired applications from all sorts of developers — from major corporations to hobbyists working in their basements.
    [Show full text]
  • Contents at a Glance
    02_277959-ftoc.qxp 5/5/08 11:24 AM Page vii Contents at a Glance Introduction .................................................................1 Part I: Getting Friendly with the Facebook Platform........7 Chapter 1: Introducing Facebook and the Facebook Platform.....................................9 Chapter 2: The App Walkabout: Building Your First Facebook Application.............29 Part II: Poking the API ...............................................47 Chapter 3: Working with the Facebook API...................................................................49 Chapter 4: Writing Facebook Markup Language (FBML) ............................................95 Chapter 5: Exploring FQL: Facebook Query Language..............................................121 Chapter 6: Scripting with Facebook JavaScript..........................................................143 Chapter 7: “Goin’ API” with Facebook Developer Tools............................................167 Part III: Developing Facebook Applications ................177 Chapter 8: Developing Facebook Canvas Pages.........................................................179 Chapter 9: Creating Content for Profile Pages............................................................195 Chapter 10: Seamless Styles: Styling Your Facebook Application............................215 Chapter 11: Hear Ye, Hear Ye: Communicating with the News Feed and Notifications ...............................................................................235 Chapter 12: Tying It All Together: Speed Dial Application........................................249
    [Show full text]