PHP 5 Social Networking

Total Page:16

File Type:pdf, Size:1020Kb

PHP 5 Social Networking PHP 5 Social Networking Create a powerful and dynamic social networking website in PHP by building a flexible framework Michael Peacock & FPAf ICTl °Pen source I I llv IV I I community experience distilled PUBLISHING BIRMINGHAM - MUMBAI Table of Contents Preface 1 Chapter 1: PHP Social Networking 7 Introduction to social networks 7 Business logic to social networks 8 Examples: Businesses making use of existing social networks and their own social networks 9 Existing social networks 10 Facebook 10 Linkedln 10 MySpace 11 Twitter 11 Existing social networking software 12 Drupal 12 Elgg 12 Joomla! 12 Hybrid approaches 12 Rolling your own 13 Why roll your own? 13 Easier to update and maintain 14 Licensing 14 Enhance knowledge 14 Provide a service 14 Improve business 15 Improve communication 15 Why use PHP? 16 When to use something else 16 Our site: DinoSpace 16 Feature list 18 Limitations 19 Summary 20 Table of Contents Chapter 2: Planning and Developing the Core Framework 21 Designing the framework 22 Patterns—making life easier 22 MVC: Model-View-Controller 22 The Front Controller pattern 24 Registry 24 Folder structure 26 Building the framework 28 Registry 28 The registry object 28 Registry objects 31 Front Controller: single point of access 56 index.php 56 .htaccess 58 Summary 59 Chapter 3: Users, Registration, and Authentication 61 Privacy policies 62 Users 63 Our user object 63 Our authentication registry object 65 POST authentication 67 SESSION authentication 68 Structuring the database 69 Registration 70 Standard details 70 Hooking additional fields on 76 Processing the registration 80 Creating the profile 80 Putting it all together: registration constructor 81 CAPTCHA 82 General CAPTCHA 83 reCAPTCHA 83 Where do I sign up? 83 E-mail verification 86 Sending e-mails 86 Sending the e-mail verification e-mail 90 Authentication with our authentication object 90 Logging in 90 Are we logged in? 91 Logging out 91 Remember me 92 Help! I've forgotten! 92 Usemame 92 Table of Contents Password 94 Let them reset the password 96 Summary 98 Chapter 4: Friends and Relationships 99 Inviting friends 99 Manually inviting friends 100 Invitation controller 101 Automatically inviting friends 101 Google Friend Connect 101 Windows Live contacts 102 Yahoo! 102 Gmail contacts 102 Automatically connecting with friends 102 Members 102 Listing users 103 Pagination 103 Paginated members 110 Paginated users by letter 113 Searching for users 117 Custom relationships 121 Relationship types 121 Relationships 122 Adding friends 122 Forming a relationship 122 Relationship model 125 Relationship controller 129 Mutual relationships—accepting or rejecting a request 131 Pending requests 131 Accepting a pending request 133 Rejecting a pending request 134 Listing friends 134 Our friends 134 Their friends 136 Mutual friends 136 Friends in your profile 137 Summary 137 Chapter 5: Profiles and Statuses 139 User profiles 139 Extendable profile 140 Profile controller 140 Core shared information 142 Static profile 151 Viewing the profile 151 [Hi] Table of Contents Relationships—some improvements 155 Editing the profile 157 Statuses 170 Statuses database table 170 Statuses types database table 170 Different types of status 171 Template improvements 171 Listing statuses 173 Templates 175 In action 176 Likes, dislikes, and comments 176 Comments 176 Summary 180 Chapter 6: Status Stream 181 What is a status stream? 181 Stream model 182 Building the stream 182 Relationships—get the IDs! 184 Friendly times 185 The rest... 188 Stream controller 189 Generating the stream 190 Comments, likes, and dislikes 193 Comments 193 Likes and dislikes 194 Views 195 Main template 195 Status type templates 196 Inaction 196 Room for improvement 196 A system stream for administrators 197 Summary 198 Chapter 7: Public and Private Messages 199 Public messages 199 Controller 199 Displaying profile messages 200 Displaying the post message box 201 Displaying a confirmation message 207 View 208 In action 209 Private messages 210 Database 210 Table of Contents Message model 211 Messages model 217 Controllers and views 218 Listing messages 219 Reading a message 220 Deleting a message 223 Composing a new message 224 Creating a message template 227 In action 228 Room for improvement? 228 Sent items 228 Replies 229 Group messages 229 Summary 229 Chapter 8: Statuses—Other Media 231 Why support other media types? 231 Changes to the view 232 Template 232 jQuery to enhance the user experience 233 View in action 234 Images 234 Database table 234 Model 235 Class, variable, and constructor 235 Processing the image upload 236 Saving the status 244 Video (via YouTube) 244 Database 244 Model 245 Links 246 Database 246 Model 247 Extending the profiles 248 Processing the new status posts 249 Altering our profile status' query 250 Status views 250 Images 250 Video 250 Links 251 In action 251 Images 251 Videos 252 Links 252 [v] Table of Contents Repeat! 252 Summary 253 Chapter 9: Events and Birthdays 255 Let's plan 255 Calendars: what do we need to be able to do? 256 Calendar library 256 Generating the month 259 Days in the month 262 Ordered days 264 Previous month 264 Next month 265 Displaying a calendar 265 Generate and output 266 Multiple calendars 271 With events 272 Birthdays 272 Getting relationship IDs 273 Setting up the calendar 273 Getting the birthdays 275 Passing them to the calendar 275 The results 276 Events 277 Event model 277 Events model 284 Attendees, invitations, and RSVPs 288 RSVPs 290 Controller 290 Creating an event 290 Calendar of events 294 Viewing an event 294 Upcoming events 297 Reminders 298 On-site notifications 298 E-mail notifications 298 SMS notifications 298 Summary 299 Chapter 10: Groups 301 Some planning 301 Group information 302 Types of groups 302 Ownership 303 Table of Contents Membership 303 Features 303 A group 303 Discussion 303 Database 304 Post 305 Topic 308 The group itself 315 Group table 315 Model 315 Creating a group 321 Controller 321 View 323 Creating a group—in action 324 Viewing a group 324 Membership 324 Controller 331 View 334 In action 335 Discussing within a group 335 Group controller additions 336 View 338 Discussion in action—viewing a topic 340 Joining a group 340 Joining (public) groups 340 Groups 342 Listing groups 342 Group controller addition 342 Template 344 In action 344 My groups 345 Addition to the group's controller 345 Template file 345 In action 346 Summary 346 Chapter 11: Developing an API 347 What is an API and why should we create one? 347 APIs in social networks 348 Facebook 348 MySpace 348 OpenSocial 349 Some planning 349 What should it do, and who should be able to do what? 349 How should it work? 350 How could it work? 351 [vii] Table of Contents Let's go with REST 352 Further reading 354 Implementation 354 Data format 354 API controller 355 Wait—no models? 359 Authentication 359 Delegating control: API controllers for our features 363 Profile's delegate 363 An Application Framework API 368 One solution; use OpenSocial 369 Consuming 369 POSTing data to our API with cURL 371 Summary 371 Chapter 12: Deployment, Security, and Maintenance 373 Deploying the site 373 Choosing a domain name 374 Registering a domain name 374 Popular domain name registrars 374 Signing up with a hosting provider 375 Choosing a web hosting provider 375 Considerations for hosts of social networking websites 377 Popular web hosting providers 377 Setting the nameservers for the domain 378 Creating a database on the hosting account 378 With cPanel hosting control panel 378 With appropriate privileges on phpMyAdmin 380 Exporting our local database 381 Importing our local database to the hosting account 382 Changing some of our database records 383 Changing our database configuration options 384 Uploading the files 384 Testing 385 Automating deployment 385 Security 386 Server Security 387 Software 387 Securing the site with a firewall 388 Shared hosting precautions 388 Passwords 388 Error reporting 389 Directory listings 390 SPAM 390 Table of Contents Maintenance 390 Backing up and restoring your social network 390 With cPanel 391 Using the command line 392 Do they work? 393 Access logs and statistics 393 Summary 394 Chapter 13: Marketing, SEO, User Retention, and Monetization Strategies 395 Marketing 396 Online advertising 396 Pay-Per-Click 396 Advertising space 398 Newsletter advertising 400 Newsletters 401 Social marketing 401 Viral marketing campaigns 402 Twitter 402 RSS feeds 402 Search engine optimization 403 On-site SEO 403 Headings 403 Links 404 Up to date, relevant content 404 Page metadata 404 Site speed 405 Search engine goodies—sitemaps and tools 405 Off-site SEO 406 What to look for in an SEO company 407 User retention 407 E-mails for the user's action 407 User feedback 408 Hello there! 408 Monetization options 408 Final tips: web stats 408 Summary 409 Chapter 14: Planning for Growth 411_ Code performance 412 Code profiling 412 Slow queries 412 Compression 413 Useful tools and resources 413 Table of Contents Server performance 414 Apache 414 MySQL 415 Alternative web servers 415 Scaling 415 VPS Cloud Hosting 415 Additional servers 416 Caching systems 416 Memcached 417 Available caching systems 417 Redundancy 417 Content Delivery Networks 418 Message queues 419 Message queue versus database table 419 What can we queue? 419 Processing queued tasks 419 No SQL 420 Learn from the experts 420 Farm it out 421 Summary 421 Index 423 [X].
Recommended publications
  • Recaptcha: Human-Based Character Recognition Via Web Security
    REPORTS on September 12, 2008 and blogs. For example, CAPTCHAs prevent www.sciencemag.org reCAPTCHA: Human-Based Character ticket scalpers from using computer programs to buy large numbers of concert tickets, only to re Recognition via Web Security Measures sell them at an inflated price. Sites such as Gmail and Yahoo Mail use CAPTCHAs to stop spam Luis von Ahn,* Benjamin Maurer, Colin McMillen, David Abraham, Manuel Blum mers from obtaining millions of free e mail accounts, which they would use to send spam CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart) are e mail. Downloaded from widespread security measures on the World Wide Web that prevent automated programs from According to our estimates, humans around abusing online services. They do so by asking humans to perform a task that computers cannot yet the world type more than 100 million CAPTCHAs perform, such as deciphering distorted characters. Our research explored whether such human every day (see supporting online text), in each case effort can be channeled into a useful purpose: helping to digitize old printed material by asking spending a few seconds typing the distorted char users to decipher scanned words from books that computerized optical character recognition failed acters. In aggregate, this amounts to hundreds of to recognize. We showed that this method can transcribe text with a word accuracy exceeding 99%, thousands of human hours per day. We report on matching the guarantee of professional human transcribers. Our apparatus is deployed in more an experiment that attempts to make positive use than 40,000 Web sites and has transcribed over 440 million words.
    [Show full text]
  • Paying Attention to Public Readers of Canadian Literature
    PAYING ATTENTION TO PUBLIC READERS OF CANADIAN LITERATURE: POPULAR GENRE SYSTEMS, PUBLICS, AND CANONS by KATHRYN GRAFTON BA, The University of British Columbia, 1992 MPhil, University of Stirling, 1994 A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY in THE FACULTY OF GRADUATE STUDIES (English) THE UNIVERSITY OF BRITISH COLUMBIA (Vancouver) August 2010 © Kathryn Grafton, 2010 ABSTRACT Paying Attention to Public Readers of Canadian Literature examines contemporary moments when Canadian literature has been canonized in the context of popular reading programs. I investigate the canonical agency of public readers who participate in these programs: readers acting in a non-professional capacity who speak and write publicly about their reading experiences. I argue that contemporary popular canons are discursive spaces whose constitution depends upon public readers. My work resists the common critique that these reading programs and their canons produce a mass of readers who read the same work at the same time in the same way. To demonstrate that public readers are canon-makers, I offer a genre approach to contemporary canons that draws upon literary and new rhetorical genre theory. I contend in Chapter One that canons are discursive spaces comprised of public literary texts and public texts about literature, including those produced by readers. I study the intertextual dynamics of canons through Michael Warner’s theory of publics and Anne Freadman’s concept of “uptake.” Canons arise from genre systems that are constituted to respond to exigencies readily recognized by many readers, motivating some to participate. I argue that public readers’ agency lies in the contingent ways they select and interpret a literary work while taking up and instantiating a canonizing genre.
    [Show full text]
  • Opensocial: from Social Networks to Social Ecosystem
    2007 Inaugural IEEE International Conference on Digital Ecosystems and Technologies (IEEE DEST 2007) OpenSocial: From Social Networks to Social Ecosystem Juliana Mitchell-WongI, Ryszard Kowalczyk', Albena Rosheloval, Bruce Joy2 and Henry Tsai2 'Centre for Information Technology Research, Swinburne University, Hawthorn, VIC, Australia e-mail: (jmitchellwong, rkowalczyk, aroshelova)@ict.swin.edu.au 2Everyday Interactive Networks, Hawthorn, VIC, Australia, e-mail: (brucejoy, henrytsai)@ein.com.au ties to be managed using the one application. GAIM' and Abstract-Unlike the physical world where social ecosys- Trillian2 are two example applications for instant messaging tems are formed from the integrated and managed relation- communities. These applications however do not address ships between individuals and organisations, the online digital any of the fundamental issues: the independent and isolated world consists of many independent, isolated and incompatible nature of communities, the ignorance to overlapping rela- social networks established by organisations that have over- lapping and manually managed relationships. To bring the tionships in different communities, or the manual manage- online digital world in-line with the physical world, integration ment of relationships. of social networks, identification of overlapping relationships Communities on the other hand have moved towards in social networks, and automation of relationship manage- forming alliances with other communities to enable content ment in social networks are required. OpenSocial is a frame- search and retrieval between them by using common ontol- work that enables social networks to interlink and self- use common organise into a social ecosystem guided by the policies of indi- ogy [1]. The of ontology enables communities viduals and organisations. to interlink, but each of these communities assumes that their policies are agreeable by every community in the alli- Index Terms-social framework, self-organised, self- ance.
    [Show full text]
  • I Am Not a Robot: an Overview on Google's Captcha
    I AM NOT A ROBOT: - AN OVERVIEW ON GOOGLE’S CAPTCHA A Thesis Presented to the Faculty of California State Polytechnic University, Pomona In Partial Fulfillment Of the Requirements for the Degree Master of Science In Computer Science By Uday Prabhala 2016 SIGNATURE PAGE THESIS: I AM NOT A ROBOT: - AN OVERVIEW ON GOOGLE’S CAPTCHA AUTHOR: Uday Prabhala DATE SUBMITTED: Summer 2016 Computer Science Department. Dr. Gilbert Young ___________________________________________ Thesis Committee Chair Computer Science Dr. Fang D. Tang ___________________________________________ Computer Science Dr. Yu Sun ___________________________________________ Computer Science ii ACKNOWLEDGEMENTS I would like to express my deepest gratitude to my family members, Yashoda, Lucky, and Diskey, as well as my girlfriend Siri, who helped make this endeavor possible. Their limitless support, assistance, and encouragement during the times when I was close to giving up were greatly helpful, and I wouldn’t have been able to overcome the obstacles without them. I would also like to send my appreciation and gratitude to the Professors who were part of my thesis committee. Most notably, I would like to thank Professor Gilbert Young, chair of the committee, for his support, patience, guidance, and sharing of knowledge throughout the program. I would also like to thank Professor Tang and Professor Yusun for reviewing my paper and attending my presentation. The above three Professors not only helped me to complete my program, but also served as an excellent example by exercising professionalism, versatility, and commitment to the developing engineering students at California State Polytechnic University, Pomona. iii ABSTRACT I am not a Robot Overview on Google’s Captcha Uday Kiran Prabhala Computers are one of the greatest inventions done by humans; these devices not only made our work easy, but could also be misused in various ways.
    [Show full text]
  • Modern Password Security for System Designers What to Consider When Building a Password-Based Authentication System
    Modern password security for system designers What to consider when building a password-based authentication system By Ian Maddox and Kyle Moschetto, Google Cloud Solutions Architects This whitepaper describes and models modern password guidance and recommendations for the designers and engineers who create secure online applications. A related whitepaper, Password security ​ for users, offers guidance for end users. This whitepaper covers the wide range of options to consider ​ when building a password-based authentication system. It also establishes a set of user-focused recommendations for password policies and storage, including the balance of password strength and usability. The technology world has been trying to improve on the password since the early days of computing. Shared-knowledge authentication is problematic because information can fall into the wrong hands or be forgotten. The problem is magnified by systems that don't support real-world secure use cases and by the frequent decision of users to take shortcuts. According to a 2019 Yubico/Ponemon study, 69 percent of respondents admit to sharing passwords with ​ ​ their colleagues to access accounts. More than half of respondents (51 percent) reuse an average of five passwords across their business and personal accounts. Furthermore, two-factor authentication is not widely used, even though it adds protection beyond a username and password. Of the respondents, 67 percent don’t use any form of two-factor authentication in their personal life, and 55 percent don’t use it at work. Password systems often allow, or even encourage, users to use insecure passwords. Systems that allow only single-factor credentials and that implement ineffective security policies add to the problem.
    [Show full text]
  • Writing a Book Using Google Docs
    Share Report Abuse Next Blog» Create Blog Sign In Docs Blog News and notes from the Google Docs and Sites teams Guest post: Writing a book using Google Docs Looking for posts on your Monday, November 01, 2010 favorite product? Labels: documents, Google Apps Blog, Guest Post Google Sites Documents Guest post: November is National Writing Month and to celebrate, we’ve invited Dr. Steven Daviss Spreadsheets to talk about how he used Google Docs to write a book with two colleagues. Dr. Daviss is currently Presentations the Chairman of Psychiatry at Baltimore Washington Medical Center in Maryland and has been Forms increasingly leveraging his clinical and administrative experience towards a career merging health Drawings care policy, informatics, and health care reform. Docs list Archives Archives Site Feed Follow us on Twitter twitter.com/googledocs Followers Follow with Google Friend Connect Followers (5351) More » Two other psychiatrists (Anne Hanson and Dinah Miller) and I have been writing a popular blog (Shrink Rap) about the practice of psychiatry since 2006. A year later, we started a podcast (My Three Shrinks) that has received great reviews in iTunes. Late in 2007, we decided to take some of those posts and weave them together to write a book. We started out using a desktop word processor to write the book, each chapter being a separate document. We learned about the limitations of making edits and sending out each of our revisions to the other two: we very quickly had multiple out-of-sync versions and the whole thing was a mess. This is from one of Dinah’s emails back then: “With 3 people doing this, I need to be able to keep track of what everyone wants to write.
    [Show full text]
  • Tipologie Di Dati Raccolti Modalità E
    Privacy Policy di www.mcj.it Questa Applicazione raccoglie alcuni Dati Personali dei propri Utenti. Titolare del Trattamento dei Dati Mcj Sede legale: Corso Rosselli, 73 – 10129 Torino P.IVA 01370130336 Tipologie di Dati raccolti Fra i Dati Personali raccolti da questa Applicazione, in modo autonomo o tramite terze parti, ci sono: Cookie, Dati di utilizzo, Numero di Telefono, Email, Nome, Cognome, Posizione geografica, Indirizzo, Password, Codice Fiscale, Professione, Nazione, Provincia, CAP e Città. Altri Dati Personali raccolti potrebbero essere indicati in altre sezioni di questa privacy policy o mediante testi informativi visualizzati contestualmente alla raccolta dei Dati stessi. I Dati Personali possono essere inseriti volontariamente dall’Utente, oppure raccolti in modo automatico durante l'uso di questa Applicazione. L’eventuale utilizzo di Cookie - o di altri strumenti di tracciamento - da parte di questa Applicazione o dei titolari dei servizi terzi utilizzati da questa Applicazione, ove non diversamente precisato, ha la finalità di identificare l’Utente e registrare le relative preferenze per finalità strettamente legate all'erogazione del servizio richiesto dall’Utente. Il mancato conferimento da parte dell’Utente di alcuni Dati Personali potrebbe impedire a questa Applicazione di erogare i propri servizi. L'Utente si assume la responsabilità dei Dati Personali di terzi pubblicati o condivisi mediante questa Applicazione e garantisce di avere il diritto di comunicarli o diffonderli, liberando il Titolare da qualsiasi responsabilità verso terzi. Modalità e luogo del trattamento dei Dati raccolti Modalità di trattamento Il Titolare tratta i Dati Personali degli Utenti adottando le opportune misure di sicurezza volte ad impedire l’accesso, la divulgazione, la modifica o la distruzione non autorizzate dei Dati Personali.
    [Show full text]
  • Check Point Threat Intelligence Bulletin
    December 31, 2018 – January 6, 2019 VS. CISCO IRON PORT YOUR CHECK POINT THREAT INTELLIGENCE REPORT TOP ATTACKS AND BREACHES Highly-sensitive personal data of more than 100 German politicians, including German Chancellor Angela Merkel, has been leaked in a recent attack. While the identity of the attackers and the method used are still unknown, the leaked data appears to have been collected from their personal smartphones. The popular browser-based game ‘Town of Salem’ has suffered a major data breach, exposing account data of more than 7.6 million players. The breached database contained players’ email addresses, hashed passwords, IP addresses and some payment information. The Ryuk ransomware has hit the cloud hosting provider “Dataresolution.net”, after the attackers used a hacked login account. The Ryuk campaign was studied last August by Check Point’s research team, who associated it with the notorious North Korean APT Lazarus Group. Check Point SandBlast and Anti-Bot blades provide protection against this threat (Trojan-Ransom.Win32.Ryuk) A new campaign targeting Chromecast adapters has been launched in order to promote the popular YouTube channel “PewDiePie”. The hackers utilized the Universal Plug and Play (UPnP) feature in Chromecasts that allows routers to forward public Internet ports to internal adapters and used it to connect to the device and display YouTube content. A data leak has affected over 2.4 million users of Blur, the password manager application. The leak potentially exposed users’ email addresses, password hashes, IP addresses and, in some cases, full names and password hints. The official website of Dublin’s tram system, the Luas, has been hacked and defaced.
    [Show full text]
  • An Object Detection Based Solver for Google's Image Recaptcha V2
    An Object Detection based Solver for Google’s Image reCAPTCHA v2 Md Imran Hossen∗ Yazhou Tu∗ Md Fazle Rabby∗ Md Nazmul Islam∗ Hui Cao† Xiali Hei∗ ∗University of Louisiana at Lafayette †Xi’an Jiaotong University Abstract have emerged as a superior alternative to text ones as they are considered more robust to automated attacks. Previous work showed that reCAPTCHA v2’s image chal- lenges could be solved by automated programs armed with reCAPTCHA v2, a dominant image CAPTCHA service Deep Neural Network (DNN) image classifiers and vision released by Google in 2014, asks users to perform an im- APIs provided by off-the-shelf image recognition services. age recognition task to verify that they are humans and not In response to emerging threats, Google has made signifi- bots. However, in recent years, deep learning (DL) algorithms cant updates to its image reCAPTCHA v2 challenges that have achieved impressive successes in several complex image can render the prior approaches ineffective to a great extent. recognition tasks, often matching or even outperforming the In this paper, we investigate the robustness of the latest ver- cognitive ability of humans [30]. Consequently, successful sion of reCAPTCHA v2 against advanced object detection attacks against reCAPTCHA v2 that leverage Deep Neural based solvers. We propose a fully automated object detection Network (DNN) image classifier and off-the-shelf (OTS) im- based system that breaks the most advanced challenges of age recognition services have been proposed [44, 50]. reCAPTCHA v2 with an online success rate of 83.25%, the The prior work advanced our understanding of the security highest success rate to date, and it takes only 19.93 seconds issues of image CAPTCHAs and led to better CAPTCHA (including network delays) on average to crack a challenge.
    [Show full text]
  • Building a W Eb Site
    spine=.72” Internet/Web Page Design ™ 4th Edition Web building demystified! Making Everything Easier! Here’s what you need to know Building a Web Site a Web Building to create a great site Open the book and find: Back by popular demand and fully updated — here’s the • Site planning tips fun, easy, straightforward way to build a cool Web site, even • How to create a basic page in Building a if you’ve never done it before! Learn Web lingo, master HTML Dreamweaver tags and WYSIWYG editors, make your pages look cool with graphics, add a blog, and attract an audience. You’ll even be • Inexpensive ways to get your site online able to get an e-commerce site open for business! • What you need to know about Web Site • Brush up on basics — see how basic HTML works and compare graphics different types of editors • How to put forms on your site • Get that look — arrange your text for easy reading with tables, and process responses frames, and framesets, and keep everything up to date with cascading style sheets • Helpful tips for a successful business site • What’s in a name — choose and register a domain name and select the best host for your site • Ten great places to get advice • Worth a thousand words — learn where to get free graphics and • Some super e-commerce tools how to edit and include them in your pages • Dress it up — explore tricks for adding image-based buttons, audio, and video to your site • Mean business — discover how to set up a site for your online business, connect with search sites, and link your site to others Learn to: • Get paid — obtain a merchant account, register with PayPal, • Plan and design a great-looking Web site and learn to protect yourself from credit card fraud Go to Dummies.com® for videos, step-by-step examples, • Work with HTML, CSS, and navigation how-to articles, or to shop! plans • Collect and create content that gets attention • Take your site online and attract visitors who come back $24.99 US / $29.99 CN / £17.99 UK David A.
    [Show full text]
  • A Low-Resource Defeat of Recaptcha's Audio Challenge
    unCaptcha: A Low-Resource Defeat of reCaptcha’s Audio Challenge Kevin Bock Daven Patel George Hughey Dave Levin University of Maryland Abstract spread of news and information is increasingly driven by user content on sites like Twitter, YouTube, and Reddit, CAPTCHAs are the Internet’s first line of defense against bots that could defeat the captcha system and register a automated account creation and service abuse. Google’s disproportionate number of accounts could theoretically reCaptcha, one of the most popular captcha systems, control the flow of information en masse [29]. It is there- is currently used by hundreds of thousands of web- fore unsurprising that captchas have been the target of sites to protect against automated attackers by testing attack for researchers and attackers for years [27, 2, 25, whether a user is truly human. This paper presents 28, 21, 32, 13, 1, 22]. unCaptcha, an automated system that can solve re- Until recently, captchas have featured distorted text Captcha’s most difficult auditory challenges with high that users must correctly type to pass. Bursztein et success rate. We evaluate unCaptcha using over 450 re- al. [1] showed these text-based captchas to be insecure Captcha challenges from live websites, and show that by demonstrating a system with near-complete (98%) it can solve them with 85.15% accuracy in 5.42 sec- accuracy. As a result, text-based captchas have been onds, on average. unCaptcha combines free, public, on- largely phased out in favor of image captchas (discussed line speech-to-text engines with a novel phonetic map- at greater length in Section 2).
    [Show full text]
  • Ray Cromwell
    Building Applications with Google APIs Ray Cromwell Monday, June 1, 2009 “There’s an API for that” • code.google.com shows 60+ APIs • full spectrum (client, server, mobile, cloud) • application oriented (android, opensocial) • Does Google have a Platform? Monday, June 1, 2009 Application Ecosystem Client REST/JSON, GWT, Server ProtocolBuffers Earth PHP Java O3D App Services Media Docs Python Ruby Utility Blogger Spreadsheets Maps/Geo JPA/JDO/Other Translate Base Datastore GViz Social MySQL Search OpenSocial Auth FriendConnect $$$ ... GData Contacts AdSense Checkout Monday, June 1, 2009 Timefire • Store and Index large # of time series data • Scalable Charting Engine • Social Collaboration • Story Telling + Video/Audio sync • Like “Google Maps” but for “Time” Monday, June 1, 2009 Android Version 98% Shared Code with Web version Monday, June 1, 2009 Android • Full API stack • Tight integration with WebKit browser • Local database, 2D and 3D APIs • External XML UI/Layout system • Makes separating presentation from logic easier, benefits code sharing Monday, June 1, 2009 How was this done? • Google Web Toolkit is the Foundation • Target GWT JRE as LCD • Use Guice Dependency Injection for platform-specific APIs • Leverage GWT 1.6 event system Monday, June 1, 2009 Example App Code Device/Service JRE interfaces Guice Android Browser Impl Impl Android GWT Specific Specific Monday, June 1, 2009 Shared Widget Events interface HasClickHandler interface HasClickHandler addClickHandler(injectedHandler) addClickHandler(injectedHandler) Gin binds GwtHandlerImpl
    [Show full text]