SlideShare a Scribd company logo
1 of 74
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 DrupalJesper 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 7Jay 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 7Jay 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, Chicagobrockfanning
 
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 mayLuciano 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 2013Chris 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 weekDr. 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 EngineJl_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 8nyccamp
 
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 AppSt. 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 Drupallersbaronmunchowsen
 
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 2014chrisshattuck
 
Web Components
Web ComponentsWeb Components
Web ComponentsFITC
 
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 introBryan 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 7Andrew 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 DrupalAdyax
 
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 CMSAdyax
 
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 DrupalAdyax
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets DrupalAdyax
 
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 CMSAdyax
 
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 estimatesAdyax
 
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é à SAPAdyax
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de DrupalAdyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture WebAdyax
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture WebAdyax
 
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 DrupalAdyax
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans DrupalAdyax
 
Varnish
VarnishVarnish
VarnishAdyax
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
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-CommerceAdyax
 
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 tactilesAdyax
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
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 ProgrammeAdyax
 

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

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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