SlideShare a Scribd company logo
Social, Local & Mobile




by @mtopolov CTO of @adyax & @padcms
100 Drupal Experts, 45 big Drupal projects in 2011
SoLoMo ?
SoLoMo ?


SOcial : Facebook, Twitter, Friends, Activity,...
SoLoMo ?


SOcial : Facebook, Twitter, Friends, Activity,...
LOcal : Geocoding, Foursquare, Google Maps...
SoLoMo ?


SOcial : Facebook, Twitter, Friends, Activity,...
LOcal : Geocoding, Foursquare, Google Maps...
MObile : JQuery Mobile, Responsive, PhoneGap...
Act 1 : Let’s have friends...

  ACT 1 : THE SOCIAL
Drupbook ? Twipal ? no !


Drupal is not the good solution to run a whole social
network*
Drupbook ? Twipal ? no !


     Drupal is not the good solution to run a whole social
     network*
     But, you can enable social capabilities in a Drupal site




                                                                                                                  ** It was a joke, okay ?
* mainly because you’ll need to recode 50% of modules and add many tricks to get acceptable page response time
in connected mode. Maybe in D8, with all the services stuff... Use Ruby, Python, Scala or Assembler** for that.
Commons ?


Commons is an Acquia Drupal distribution, packaging
«social» modules.
Commons ?


Commons is an Acquia Drupal distribution, packaging
«social» modules.
Well, avoid it : Useless bulk of dozens of modules.
More messy than usable.
Good example :

McIn (mcin.com) is a private social network we’ve built
for any McDonald’s worker around the world.
Good example :

McIn (mcin.com) is a private social network we’ve built
for any McDonald’s worker around the world.
Localized, multiple countries, groups, likes, friends,
event attendees, votes, ugc, local
Good example :

McIn (mcin.com) is a private social network we’ve built
for any McDonald’s worker around the world.
Localized, multiple countries, groups, likes, friends,
event attendees, votes, ugc, local
 With, for the social part : Flag, Views & Voting API
Good example :

McIn (mcin.com) is a private social network we’ve built
for any McDonald’s worker around the world.
Localized, multiple countries, groups, likes, friends,
event attendees, votes, ugc, local
 With, for the social part : Flag, Views & Voting API
Yeah, that’s it...
Social Sharing

 Sharing : don’t loose time with modules, small FB/
 Twitter code directly in your theme
 Open Graph must be inserted in all pages (use
 MetaTag module)
 You may use Facebook Share
 Avoid AddThis, ShareThis, Social Share and so on...
Advanced Open Graph


No really nice existing modules
So need to code
Idea : Link your users to Networks, then use retrieved
data about friends & co inside your site
http://wefeedback.org
http://wefeedback.org
http://wefeedback.org
http://wefeedback.org
http://wefeedback.org
Social «Donts»

Organic groups : Ugly and useless in 80% cases
Forum : Drupal forum is just awful
Chat : no way, if your client asks for, say no
User Relationship : Too big in the new «follow me»
world, use Flag instead
ACT 2 : THE LOCAL
What is Local btw ?

 Everything !
Geocoded content
Geocoded users / vistors
Geographical Search
And no, putting a Google Map does NOT mean Local
Content geocoding


Well, Location module is really nice, useful for 90%.
Manages POI only
Geo (buggy) but manages Polygons & Lines
GeoField to store your POI coordinates
Display Geo Data


GMap module : simpliest integration
Open Layers module : really nice maps effect.
KLM & Clusterer to display high amount of markers
Geographical search

     HTML5 to ask for visitor localisation
     MySQL is not suitable*
     Apache SOLR 3.4 or 4 have a Spatial Search (distance
     & boxing) reaaaaally cool.
     MongoDB is an alternative (with it’s GeoSpatial
     Indexing)
* SELECT id_geo FROM mybase.mytable AS p WHERE 6371 * 2 * ATAN2 ( SQRT ( ( SIN( ( RADIANS(p.lat - 43.27292469899955000) / 2 ) * SIN( RADIANS(p.lat -
43.27292469899955000) / 2 ) + COS ( RADIANS (43.27292469899955000 )) * COS ( RADIANS ( p.lat ) ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) * SIN
( RADIANS(p.lon - 5.36235809326171900) / 2 ) ) ) , SQRT ( 1 - (SIN( RADIANS(p.lat - 43.27292469899955000) / 2 ) * SIN( RADIANS(p.lat - 43.27292469899955000) / 2 ) +
COS ( RADIANS (43.27292469899955000) ) * COS ( RADIANS (p.lat) ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) * SIN ( RADIANS(p.lon -
5.36235809326171900) / 2 ) ) ) ) < 1
ACT 3 : THE MOBILE
Mobile : What is different
Why you should consider iPad theme in a
different way of your Deskop 960px theme.
iPads and Smartphones are tactile...




         Fingers are larger and less agile



 There is no rollover
But vertical scroll is easier...




                    so,
                   design
                 bigger,
                   dispose
                  vertically
What my options are ?


Mobile theme switched by UA
Responsive Design
Native App connected trough Services
Mobile Theme
Using Domains, jQuery Mobile, Mobile Tools
jQuery Mobile
jQuery Mobile: Touch-Optimized Web Framework for
Smartphones & Tablets
It’s customizable :))
Looks like iPhone
jQuery pros & cons
        PROS                       CONS

 Fast to integrate (2-3   If your client agrees to fit
          days)            jQuery Mobile design...
 Nice «device» oriented   Hard to hack if you want
   interface elements      more (pre-loaders, ...)
 Avoids you to «think»     Avoids you to «think»
        mobile                    mobile
Mobile Theme How To

1. Drupal Theme with jQuery Mobile (or Not)
2. ‘Domains’ module / Mobile Tools
3. Switch on UA
4. But offer possibility to go back (cookies based rule)
5. With Varnish a little bit more tricky (VCL provided on
   demand)
When switch to mobile URL

As soon as possible (LB / Cache, not Drupal)
Don’t forget to cache redirections

      Load      Cache /
                           HTTP      Drupal
     Balancer    Proxy
http://lecollectif.orange.fr
http://lecollectif.orange.fr
http://lecollectif.orange.fr
http://lecollectif.orange.fr
http://lecollectif.orange.fr
Responsive Design
Yeah this trendy thing everybody is talking about.
Trendy, yeah ?
Responsive design


Really awesome during presales demos (wow effect)
Really pain-in-the-a** HTML slicing (take x2 more time
than classical slicing)
Needs a smart designer / UX master
In Drupal ?


 Omega Theme is almost the only helper available
 Omega is grid based, so will help moving blocs
 But you’ll still have to think about your content
Some examples of Drupal Responsive
Some examples of Drupal Responsive
Some examples of Drupal Responsive
Some examples of Drupal Responsive
Some examples of Drupal Responsive
Some examples of Drupal Responsive
Native Apps
Connect your apps to Drupal
Services

Services module is your friend
Use REST PList server instead of any Xml-Rpc, SOAP
or even JSON.
On App side we tried native, PhoneGap and Titanium,
PhoneGap is our choice for 80% of Apps, 20% remain
native.
TrickZ

 You can also send HTML to your devices
 On device side, just show a WebView
 Sync «new» content and render it offline on the device
 Take care : WebView is usually slow
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
SG : Drupal web site + Mobile theme + iPad App
«Take home» messages
Drupal & SoLoMo
Take Home Messages


Do not try to create a social network with Drupal
You must go mobile NOW. As there are hundreds of
divices : go Responsive VS Mobile Theme
«Local» means fast search = Apache SOLR / Mongo
Modules List
                Social                                    Local                                         Mobile
http://drupal.org/project/fb              http://drupal.org/project/location              http://drupal.org/project/mobile_tools


http://drupal.org/project/privatemsg      http://drupal.org/project/gmap                  http://drupal.org/project/domain


http://drupal.org/project/flag             http://drupal.org/project/geo                   http://drupal.org/project/browscap


http://drupal.org/project/userpoints      http://drupal.org/project/geofield               http://drupal.org/project/omega


http://drupal.org/project/twitter         http://drupal.org/project/search_api_location


http://drupal.org/project/facebookshare   http://drupal.org/project/location_feeds


http://drupal.org/project/flag_abuse


http://drupal.org/project/votingapi

More Related Content

Similar to For a Social Local and Mobile Drupal

Going Mobile First With Drupal
Going Mobile First With DrupalGoing Mobile First With Drupal
Going Mobile First With Drupal
Jesper Wøldiche
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
Jay Epstein
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
Jay Epstein
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
brockfanning
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)
Jorge López-Lago
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
Luciano Amodio
 
Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)
Nickolay Ninarski
 
Power your mobile app with Drupal - Melbourne Mobile, July 2013
Power your mobile app with Drupal - Melbourne Mobile, July 2013Power your mobile app with Drupal - Melbourne Mobile, July 2013
Power your mobile app with Drupal - Melbourne Mobile, July 2013
Chris Ward
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
Dr. Felix Raab
 
Build your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App EngineBuild your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App Engine
Jl_Ugia
 
Jose l ugia 6 wunderkinder, momenta
Jose l ugia  6 wunderkinder, momentaJose l ugia  6 wunderkinder, momenta
Jose l ugia 6 wunderkinder, momentaapps4allru
 
The State of Drupal 8
The State of Drupal 8The State of Drupal 8
The State of Drupal 8
nyccamp
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
St. Petersburg College
 
Mobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of DrupallersMobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of Drupallers
baronmunchowsen
 
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Acquia
 
Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?
LavaConConference
 
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
chrisshattuck
 
Web Components
Web ComponentsWeb Components
Web Components
FITC
 
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal introEdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
Bryan Ollendyke
 
Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7
Andrew Martha
 

Similar to For a Social Local and Mobile Drupal (20)

Going Mobile First With Drupal
Going Mobile First With DrupalGoing Mobile First With Drupal
Going Mobile First With Drupal
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
UMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, ChicagoUMD User's Group: DrupalCon 2011, Chicago
UMD User's Group: DrupalCon 2011, Chicago
 
Open event (show&tell april 2016)
Open event (show&tell april 2016)Open event (show&tell april 2016)
Open event (show&tell april 2016)
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)
 
Power your mobile app with Drupal - Melbourne Mobile, July 2013
Power your mobile app with Drupal - Melbourne Mobile, July 2013Power your mobile app with Drupal - Melbourne Mobile, July 2013
Power your mobile app with Drupal - Melbourne Mobile, July 2013
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Build your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App EngineBuild your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App Engine
 
Jose l ugia 6 wunderkinder, momenta
Jose l ugia  6 wunderkinder, momentaJose l ugia  6 wunderkinder, momenta
Jose l ugia 6 wunderkinder, momenta
 
The State of Drupal 8
The State of Drupal 8The State of Drupal 8
The State of Drupal 8
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
 
Mobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of DrupallersMobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of Drupallers
 
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
 
Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?
 
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
 
Web Components
Web ComponentsWeb Components
Web Components
 
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal introEdTechJoker Spring 2020 - Lecture 7 Drupal intro
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
 
Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7Upgrading your site from Drupal 6 to Drupal 7
Upgrading your site from Drupal 6 to Drupal 7
 

More from Adyax

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
Adyax
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
Adyax
 
Using Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMSUsing Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMS
Adyax
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using Drupal
Adyax
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
Adyax
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
Adyax
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimates
Adyax
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Adyax
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
Adyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
Adyax
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Adyax
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
Adyax
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
Adyax
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
Adyax
 
Varnish
VarnishVarnish
Varnish
Adyax
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
Adyax
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
Adyax
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
Adyax
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
Adyax
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
Adyax
 

More from Adyax (20)

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
 
Using Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMSUsing Drupal to publish Web, Print and Mobile from same CMS
Using Drupal to publish Web, Print and Mobile from same CMS
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using Drupal
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimates
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
 
Varnish
VarnishVarnish
Varnish
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
 

Recently uploaded

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 

Recently uploaded (20)

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 

For a Social Local and Mobile Drupal

  • 1. Social, Local & Mobile by @mtopolov CTO of @adyax & @padcms
  • 2. 100 Drupal Experts, 45 big Drupal projects in 2011
  • 3.
  • 5. SoLoMo ? SOcial : Facebook, Twitter, Friends, Activity,...
  • 6. SoLoMo ? SOcial : Facebook, Twitter, Friends, Activity,... LOcal : Geocoding, Foursquare, Google Maps...
  • 7. SoLoMo ? SOcial : Facebook, Twitter, Friends, Activity,... LOcal : Geocoding, Foursquare, Google Maps... MObile : JQuery Mobile, Responsive, PhoneGap...
  • 8. Act 1 : Let’s have friends... ACT 1 : THE SOCIAL
  • 9.
  • 10. Drupbook ? Twipal ? no ! Drupal is not the good solution to run a whole social network*
  • 11. Drupbook ? Twipal ? no ! Drupal is not the good solution to run a whole social network* But, you can enable social capabilities in a Drupal site ** It was a joke, okay ? * mainly because you’ll need to recode 50% of modules and add many tricks to get acceptable page response time in connected mode. Maybe in D8, with all the services stuff... Use Ruby, Python, Scala or Assembler** for that.
  • 12.
  • 13. Commons ? Commons is an Acquia Drupal distribution, packaging «social» modules.
  • 14. Commons ? Commons is an Acquia Drupal distribution, packaging «social» modules. Well, avoid it : Useless bulk of dozens of modules. More messy than usable.
  • 15.
  • 16. Good example : McIn (mcin.com) is a private social network we’ve built for any McDonald’s worker around the world.
  • 17. Good example : McIn (mcin.com) is a private social network we’ve built for any McDonald’s worker around the world. Localized, multiple countries, groups, likes, friends, event attendees, votes, ugc, local
  • 18. Good example : McIn (mcin.com) is a private social network we’ve built for any McDonald’s worker around the world. Localized, multiple countries, groups, likes, friends, event attendees, votes, ugc, local With, for the social part : Flag, Views & Voting API
  • 19. Good example : McIn (mcin.com) is a private social network we’ve built for any McDonald’s worker around the world. Localized, multiple countries, groups, likes, friends, event attendees, votes, ugc, local With, for the social part : Flag, Views & Voting API Yeah, that’s it...
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Social Sharing Sharing : don’t loose time with modules, small FB/ Twitter code directly in your theme Open Graph must be inserted in all pages (use MetaTag module) You may use Facebook Share Avoid AddThis, ShareThis, Social Share and so on...
  • 28. Advanced Open Graph No really nice existing modules So need to code Idea : Link your users to Networks, then use retrieved data about friends & co inside your site
  • 34. Social «Donts» Organic groups : Ugly and useless in 80% cases Forum : Drupal forum is just awful Chat : no way, if your client asks for, say no User Relationship : Too big in the new «follow me» world, use Flag instead
  • 35. ACT 2 : THE LOCAL
  • 36. What is Local btw ? Everything ! Geocoded content Geocoded users / vistors Geographical Search And no, putting a Google Map does NOT mean Local
  • 37. Content geocoding Well, Location module is really nice, useful for 90%. Manages POI only Geo (buggy) but manages Polygons & Lines GeoField to store your POI coordinates
  • 38. Display Geo Data GMap module : simpliest integration Open Layers module : really nice maps effect. KLM & Clusterer to display high amount of markers
  • 39. Geographical search HTML5 to ask for visitor localisation MySQL is not suitable* Apache SOLR 3.4 or 4 have a Spatial Search (distance & boxing) reaaaaally cool. MongoDB is an alternative (with it’s GeoSpatial Indexing) * SELECT id_geo FROM mybase.mytable AS p WHERE 6371 * 2 * ATAN2 ( SQRT ( ( SIN( ( RADIANS(p.lat - 43.27292469899955000) / 2 ) * SIN( RADIANS(p.lat - 43.27292469899955000) / 2 ) + COS ( RADIANS (43.27292469899955000 )) * COS ( RADIANS ( p.lat ) ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) ) ) , SQRT ( 1 - (SIN( RADIANS(p.lat - 43.27292469899955000) / 2 ) * SIN( RADIANS(p.lat - 43.27292469899955000) / 2 ) + COS ( RADIANS (43.27292469899955000) ) * COS ( RADIANS (p.lat) ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) * SIN ( RADIANS(p.lon - 5.36235809326171900) / 2 ) ) ) ) < 1
  • 40. ACT 3 : THE MOBILE
  • 41. Mobile : What is different Why you should consider iPad theme in a different way of your Deskop 960px theme.
  • 42. iPads and Smartphones are tactile... Fingers are larger and less agile There is no rollover
  • 43. But vertical scroll is easier... so, design bigger, dispose vertically
  • 44. What my options are ? Mobile theme switched by UA Responsive Design Native App connected trough Services
  • 45. Mobile Theme Using Domains, jQuery Mobile, Mobile Tools
  • 46. jQuery Mobile jQuery Mobile: Touch-Optimized Web Framework for Smartphones & Tablets It’s customizable :)) Looks like iPhone
  • 47. jQuery pros & cons PROS CONS Fast to integrate (2-3 If your client agrees to fit days) jQuery Mobile design... Nice «device» oriented Hard to hack if you want interface elements more (pre-loaders, ...) Avoids you to «think» Avoids you to «think» mobile mobile
  • 48. Mobile Theme How To 1. Drupal Theme with jQuery Mobile (or Not) 2. ‘Domains’ module / Mobile Tools 3. Switch on UA 4. But offer possibility to go back (cookies based rule) 5. With Varnish a little bit more tricky (VCL provided on demand)
  • 49. When switch to mobile URL As soon as possible (LB / Cache, not Drupal) Don’t forget to cache redirections Load Cache / HTTP Drupal Balancer Proxy
  • 55. Responsive Design Yeah this trendy thing everybody is talking about.
  • 57. Responsive design Really awesome during presales demos (wow effect) Really pain-in-the-a** HTML slicing (take x2 more time than classical slicing) Needs a smart designer / UX master
  • 58. In Drupal ? Omega Theme is almost the only helper available Omega is grid based, so will help moving blocs But you’ll still have to think about your content
  • 59. Some examples of Drupal Responsive
  • 60. Some examples of Drupal Responsive
  • 61. Some examples of Drupal Responsive
  • 62. Some examples of Drupal Responsive
  • 63. Some examples of Drupal Responsive
  • 64. Some examples of Drupal Responsive
  • 65. Native Apps Connect your apps to Drupal
  • 66. Services Services module is your friend Use REST PList server instead of any Xml-Rpc, SOAP or even JSON. On App side we tried native, PhoneGap and Titanium, PhoneGap is our choice for 80% of Apps, 20% remain native.
  • 67. TrickZ You can also send HTML to your devices On device side, just show a WebView Sync «new» content and render it offline on the device Take care : WebView is usually slow
  • 68. SG : Drupal web site + Mobile theme + iPad App
  • 69. SG : Drupal web site + Mobile theme + iPad App
  • 70. SG : Drupal web site + Mobile theme + iPad App
  • 71. SG : Drupal web site + Mobile theme + iPad App
  • 73. Take Home Messages Do not try to create a social network with Drupal You must go mobile NOW. As there are hundreds of divices : go Responsive VS Mobile Theme «Local» means fast search = Apache SOLR / Mongo
  • 74. Modules List Social Local Mobile http://drupal.org/project/fb http://drupal.org/project/location http://drupal.org/project/mobile_tools http://drupal.org/project/privatemsg http://drupal.org/project/gmap http://drupal.org/project/domain http://drupal.org/project/flag http://drupal.org/project/geo http://drupal.org/project/browscap http://drupal.org/project/userpoints http://drupal.org/project/geofield http://drupal.org/project/omega http://drupal.org/project/twitter http://drupal.org/project/search_api_location http://drupal.org/project/facebookshare http://drupal.org/project/location_feeds http://drupal.org/project/flag_abuse http://drupal.org/project/votingapi

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n