Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Building Social Web Applications
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Preface
Design As the Primary Approach
Who This Book Is For
Who This Book Is Not For
What You’ll Learn
How This Book Is Organized
Typographical Conventions Used in This Book
Safari® Books Online
We’d Like to Hear from You
How This Book Came About
Acknowledgments
1. Building a Social Application
Building Applications
The Distributed Nature of Seemingly Everything
Real-Time Services
APIs and Their Importance
Collective Intelligence: The New Artificial Intelligence
Summary
2. Analyzing, Creating, and Managing Community Relationships
Analyzing Your Users’ Relationships
Relationships with Baby Boomers to Gen-C’ers
Behavior and Interaction-Based Relationships
Customer-service-driven
Publisher-driven
Member-driven
Contributor-driven
Pros and Cons of Different Relationship Types
Analyzing the Essence of Your Community’s Needs
Apple and Its Many Communities
Determining Your Site’s Purpose
Creating and Nurturing Relationships
Summary
3. Planning Your Initial Site
Deciding What You Need
Building a Web Application
Choosing Who You Need
Planning the Life Cycle
Expecting to Evolve with the Community
Twitter
Flickr
Keeping Your Application Simple
Avoiding the Line Item Approach
Getting to the Core Quickly
Taking Time to Plan
Iterating
Showing it off
Figuring out the verbs
Communicating During Development
Managing the Development Cycle
Feature Prioritization and the Release Cycle
Choosing a Development Methodology
Collecting Audience Feedback
Why Would People Continue to Visit Your Site?
Summary
4. Creating a Visual Impact
Dynamic Interactions
The Power of Partial Page Reloads
Designing Around Community-Generated Internal Pages
Visual Design and Navigation
Design First
Page Types
Designer Roles and Team Approaches
Visual design approach
Software design approach
Wireframes approach
Sketching approach
Copywriting
Summary
5. Working with and Consuming Media
Media Types Affect Consumption Styles
Analyzing Consumption Patterns
Collecting Consumption Data
Media Evolves and Consumption Styles Change
“comment is free”
Amazon: Reader Reviews Encourage Purchases
New Services Respond to Evolving Needs
Music
Photos
Video
Summary
6. Managing Change
Resistance
Schema Theory
Congruence
Adaptation
Rate of change
Web Communities and Change
Internal Workflow
Community Managers
Summary
7. Designing for People
Making Software for People
Waterfalls Are Pretty to Look At
Interaction Design
Identify Needs with Personas and User-Centered Design
Talking with Potential Users
Naming Influences Perspectives
Common Techniques for UCD
Running Interaction Design Projects
Using Agile and UCD Methods
Beyond UCD
HCI and Information Architecture
The Craftsman Approach
Learning to Love Constraints
Keeping Experiments Quick
Figuring Out the Social Aspect
Subjects, Verbs, and Objects
Including You, Me, and Her Over There, Plus Him, Too
Moving Quickly from Idea to Implementation
Explaining to Others What You Are Doing
Creating Service Functionality Documents
Calculating Content Size
Don’t Let Your Users Drown in Activity
Implementing Search
Member-Specific Search
Advanced Search
Understanding Activity and Viewpoints
Recipe Books: An Example
Remembering the Fun
Twelve Ideas to Take Away
Summary
8. Relationships, Responsibilities, and Privacy
We Are in a Relationship?
Personal Identity and Reputation
Handling Public, Private, and Gray Information
Privacy and Aggregate Views
See But Don’t Touch: Rules for Admins
Private by Default?
Setting Exposure Levels
Managing Access for Content Reuse, Applications, and Other Developers
Content Reuse
Don’t Give Away Too Much Power
Licensing Content
Summary
9. Community Structures, Software, and Behavior
Community Structures
Publisher-Led
Interest-Led
Product-Led
Supporting Social Interactions
Non-Text-Based Social Interaction
Competition: Making Games Social
Content Creation and Collectives
Social Microblogging
Who Is Sharing, and Why?
Competition Between Peers Skews Interaction
Talking About Things That Are Easy to Discuss
How Are They Sharing?
Being Semiprivate
Lifestreaming and Social Aggregation
Overfeeding on Lifestreams
A Simple Core for Rapid Growth
Social Software Menagerie
Blogging
Community blogging
Creating a blogging system
Commenting Is Not the Same As Blogging
Groups
Group Formation
Group Conversation
Conversing on message boards
Making message boards
Group Aggregation Tools
Collaboration Tools for Groups
Social Platforms As a Foundation
Ning and White Label Social Software
Growing Social Networks
Summary
10. Social Network Patterns
Sharing Social Objects
Relationships and Social Objects
Determining the Right Social Object
Published Sites Expect Audiences
Deep and Broad Sharing
Capturing Intentionality
Cohesion
Filtering Lists by Popularity
Filtering Lists to Show Recent Content
Calculating Popularity Across a Site
Commenting, Faving, and Rating
Commenting
Faving or Marking As Favorite
Rating
Internal Messaging Systems
Friending Considered Harmful
Sharing Events
Summary
11. Modeling Data and Relationships
Designing URLs
Getting to the Right URL
Permalinks
Putting Objects on the Internet
Issuing Identifiers
Identifying People
Using Data-Driven Site Design
Handling Containment
Changing Identities and Linking Content
Identity and Context-Dependent Views
Exploring a Video Example
Aggregating Data to Create New Content
Exploring Groups
Handling Groups and Privacy
Handling Privacy and Scaling Issues
Making the Most of Metadata
Connecting the Relationship to the Content
Modeling Relationships
Entering the Geoworld
Becoming “Brokers of the World”
Considering Time Implications
Looking Beyond the Web
Summary
12. Managing Identities
Existing Identities
Forms of Identification
Email
Real Names Versus Aliases and Screen Names
OpenID
Tips for Account Registration and Verification
The Need for Profile Pages
Profile Page Anatomy
Real-World Profile Pages
Pownce
Twitter
LinkedIn and Nature Network
Personal network member maximums
Activity Pages
Invisibility and Privacy
Summary
13. Organizing Your Site for Navigation, Search, and Activity
Understanding In-Page Navigation
Tagging Content
Searching for People
Connecting People Through Content
Providing Activity Pages
Determining Activity Page Content
Filtering Activity Lists and the Past
Using Replies to Create Conversations
Allowing for Content Initiation Versus Content Follow-Up
Providing for Email Updates
Creating RSS Feeds
Who Stole My Home Page?
Providing for Site Navigation
Creating Page Titles
Summary
14. Making Connections
Choosing the Correct Relationship Model for Your Social Application
Creating the Language of Connections
Blocking Relationships
Information Brokers
Notifications and Invitations
Invites and Add As Follower Requests
Secure and Personal Invites
Pending Invites
Spam
Social Network Portability
Social Graph
Importing Friends by the Book
Spamming, Antipatterns, and Phishing
Address Books, the OAuth Way
Changing Relationships over Time
Administering Groups
Public or Private?
Regulating Group Creation
Summary
15. Managing Communities
Social Behavior in the Real World
Starting Up and Managing a Community
Trolls and Other Degenerates
Separating Communities
Encouraging Good Behavior
Authenticating Through Profile Pages
Rating Posts and People
Gaming the System
Membership by Invitation or Selection
Rewarding Good Behavior
Helping the Community Manage Itself
Moderating a Community
Intervention and Course Correction
Premoderation and Libel
Extreme Measures: Banning Users and Removing Posts
Absent Landlords Lead to Weak Communities
Filtering and Automation
Balancing Anonymity and Pseudo-Anonymity
Summary
16. Writing the Application
Small Is Good: A Reprise
How Social Applications Differ from Web Applications
Agile Methodologies
Deployment and Version Control
Testing Live Is Possible, but Use Conditionality
Test-Driven Development
Automated Builds Make Management Easier
Applying Developer Tools to Social Applications
Making Use of Flexible Development with Your Community
Infrastructure and Web Operations
Managing Operations
Designing Social Applications
Using Prototypes, Not Pictures
Assisting Developers with Use Cases
Designing in Good Behaviors
Your App Has Its Own Point of View
How Code Review Helps Reduce Problems
The Power and Responsibility of Naming
Being RESTful
Beyond the Web Interface, Please
i18n, L10n, and Their Friend, UTF-8
Bug Tracking and Issue Management
Tracking Tools
Prioritizing Issues
Differentiating Bugs from Feature Requests
Handling Security
Rapid User Interfaces
Rapid Prototyping
Scaling and Messaging Architectures
Ajax Helps with Scaling
Queuing Non-Visible Updates
Real Time Versus Near Time
Polling Versus Pushing
XMPP Messaging
External Processing: Scaling on the Fly and by the Batch
Performance Testing
Languages Don’t Scale
Cache, Then Shard
Fast and Light Data Storage
Implementing Search
Identity and Management of User Data
OpenID for Identity
What to Ask for on Registration
When a User Chooses to Leave
Admin Users
Accessing Content via OAuth
Federation
Making Your Code Green and Fast
Building Admin Tools and Gleaning Collective Intelligence
Social Network Analysis
Machine Learning and Big Data Sets
Reputation Systems
Summary
17. Building APIs, Integration, and the Rest of the Web
“On the Internet” Versus “In the Internet”
Making Your Place Within the Internet
Why an API?
Exposing Your Content to Search from the Internet
Running Services, Not Sites
Being Open Is Good
Arguing for Your API Internally
Implementing User Management and Open Single Sign-On
Integrating Other Services
Lightweight Integration Works Best
Avoiding Data Migration Headaches
Avoiding Duplication
Email Notifications: Managing Your Output from Multiple Applications
Making an API the Core of the Application
Handling People and Objects, the Stuff of Social Applications
Designing an API
RPC
REST
XMPP
Response Formats
Comparing Social APIs
Tumblr
Flickr
Twitter
Reviewing the APIs
Writable APIs
Extending and Fine-Tuning Your API
Wrapping API Calls
Using API Alternatives
Using HTML Badges
Interoperability Is Harder with Snowflake APIs
Sticking with Standards
Standardizing APIs
Using OpenSocial
Creating a Standard
Managing the Developer Community
API and Scaling Issues
Allowing Integration
Real Time Versus Near Time for APIs
APIs Can Be Restrictive
Not Just Your Own API
Create an API?
Summary
18. Launching, Marketing, and Evolving Social Applications
Loving and Hating the Home Page
Your Site Launch
The Soft-Launch Approach
The Hard-Launch Approach
Your Product Name
A Friendly Invitation
Financing Your Site
Offering Premium and Freemium Models
Marketing
Achieving and Managing Critical Mass
Arriving with Context
Considering Contact Import APIs and Their Importance
Using Tools and Services for Launch and Support
Nurturing the First Few Hundred Users
Encouraging Your Community
Evolving Your Site
Remaining in Beta
Balancing Feature Requests and Issue Management
Adding Functionality
Build Something New or Refine the Old?
Adding Functionality After Refining
Watching for What Your Community Demands
Delicious and Boolean search
Flickr printing and video
Twitter and @replies
Keeping Up with the Competition (or Not)
Avoiding Feature-Led Development
Encouraging Data-Supported Development
Making Useful Products (Experience-Led)
Determining When a Bug Is a Bug
Staying Focused and Coherent
Planning for Redesigns and Refactoring
Establishing the Rhythm of Your Evolving Application
Summary
Index
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →