SlideShare uma empresa Scribd logo
1 de 219
Bringing the best of
    Open Web
into the Enterprise
     since 2001

                         6500+ customers.
                             One mission.
                       Free the Flow of Work.
A
            1.0


  2001
Wikipedia
A
            1.0


  2001               2002
Wikipedia   Socialtext Workspace
A
                   1.0


     2002
Search Appliance
A
                   1.0


     2002                  2003
Search Appliance   Socialtext Appliance
A
              1.0


   2003
Blogger.com
A
              1.0


   2003              2004
Blogger.com    Socialtext Blogs
A
                     1.0


      2004
Google Spreadsheet
A
                     1.0


      2004                   2005
Google Spreadsheet   Socialtext SocialCalc
B
                2.0


    2005
Mobile WebKit
B
                2.0


    2005               2006
Mobile WebKit   Socialtext Mobile
B
          2.0


2006
Twitter
B
          2.0


2006             2007
Twitter   Socialtext Signals
C
             3.0


  2007
OpenSocial
C
             3.0


  2007                2008
OpenSocial   Socialtext Dashboard
C
            3.0


  2008
Adobe AIR
C
            3.0


  2008             2009
Adobe AIR   Socialtext Desktop
D
                      4.0


       2009
Facebook OpenStream
D
                      4.0


       2009                  2010
Facebook OpenStream   Socialtext Connect
Socialtext 4
                 .              .
Ope nS oc ia l G adge ts
              w it h Apach e Sh in dig
Be fo re Ope nS oc ia l.. .
??
?
Gadget s to th e re sc ue !
Ope nS oc ia l
iG oo gle Da shbo ard
So ci al te xt Da shbo ard
So ci al te xt Da shbo ard
So ci al te xt Da shbo ard
So ci al te xt Da shbo ard
So ci al te xt Da shbo ard
Pa rt yi ng w it h Sh in dig
http://.../Gadget.xml
http://.../Gadget.xml
.html
http://.../Gadget.xml
.html    .css
http://.../Gadget.xml
.html    .css    .js
http://.../Gadget.xml
.html    .css    .js
 Features API
http://.../Gadget.xml
.html    .css    .js
 Features API
Fo r exam ple. ..
Fo r exam ple. ..
Fo r exam ple. ..
one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"
  



description="Displays
a
single…"




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"
  



description="Displays
a
single…"
  



<Requires
feature="opensocial‐0.8"/>




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"
  



description="Displays
a
single…"
  



<Requires
feature="opensocial‐0.8"/>
  



<Requires
feature="dynamic‐height"/>




one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"
  



description="Displays
a
single…"
  



<Requires
feature="opensocial‐0.8"/>
  



<Requires
feature="dynamic‐height"/>
  



<Requires
feature="settitle"/>



one_sp re ad sh ee t. xm l
<?xml
version="1.0"
encoding="UTF‐8"?>
  <Module>
  

<ModulePrefs
  



thumbnail="one_spreadsheet.png">
  



title="Spreadsheet
Page"
  



description="Displays
a
single…"
  



<Requires
feature="opensocial‐0.8"/>
  



<Requires
feature="dynamic‐height"/>
  



<Requires
feature="settitle"/>
  

</ModulePrefs>…

one_sp re ad sh ee t. xm l
one_sp re ad sh ee t. xm l


…
   

<UserPref
   



display_name="Workspace"
   



name="ws"
   



datatype="workspace"
   



required="true"
/>
   

…


one_sp re ad sh ee t. xm l


…
   

<UserPref
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



name="page"
   



name="ws"
   



datatype="spreadsheet"
   



datatype="workspace"
   



required="true"
/>
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   

…
   



display_name="Height"
   

<UserPref
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



datatype="enum"
   



name="page"
   



name="ws"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   

…
   



display_name="Height"
   

<UserPref
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   

…
   



display_name="Height"
   

<UserPref
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   

…
   



display_name="Height"
   

<UserPref
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   

…
   



display_name="Height"
   

<UserPref
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   




<script
src="widget.js"/>
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   




<script
src="widget.js"/>
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   




<script
src="socialcalc.js"/>
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   




<script
src="widget.js"/>
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   




<script
src="socialcalc.js"/>
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   


</head><body>…</body></html>
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   




<script
src="widget.js"/>
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   




<script
src="socialcalc.js"/>
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   


</head><body>…</body></html>
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   

]]></Content>
   



default_value="A1"/>
   

</UserPref>…
   

…


one_sp re ad sh ee t. xm l

…<UserPref
   …<Content
type="html"><![CDATA[
   

…
   



display_name="Height"
   

<UserPref
   


<html><head>
   



name="height"
   



display_name="Spreadsheet"
   



display_name="Workspace"
   




<script
src="widget.js"/>
   



display_name="Scroll
to"
   



datatype="enum"
   



name="page"
   



name="ws"
   




<script
src="socialcalc.js"/>
   



name="scroll_to"
   



default_value="300">
   



datatype="spreadsheet"
   



datatype="workspace"
   


</head><body>…</body></html>
   



datatype="enum"
   



…<EnumValue
value="100"/>…
   



required="true"
/>
   

]]></Content>
   



default_value="A1"/>
   

</UserPref>…
   

…
   </Module>

one_sp re ad sh ee t. xm l
one_sp re ad sh ee t. xm l
<a
href="/__UP_ws__/?__UP_page__">
     

View
     </a>




one_sp re ad sh ee t. xm l
<a
href="/__UP_ws__/?__UP_page__">
     

View
     </a>
     or




one_sp re ad sh ee t. xm l
<a
href="/__UP_ws__/?__UP_page__">
     

View
     </a>
     or
     <a
href="/__UP_ws__/?__UP_page__#edit">
     

Edit
     </a>




one_sp re ad sh ee t. xm l
<a
href="/__UP_ws__/?__UP_page__">
     

View
     </a>
     or
     <a
href="/__UP_ws__/?__UP_page__#edit">
     

Edit
     </a>
     this
spreadsheet
from




one_sp re ad sh ee t. xm l
<a
href="/__UP_ws__/?__UP_page__">
     

View
     </a>
     or
     <a
href="/__UP_ws__/?__UP_page__#edit">
     

Edit
     </a>
     this
spreadsheet
from
     <a
href="/__UP_ws__">
     

__UP_ws__
     </a>

one_sp re ad sh ee t. xm l
w idge t.js
gadgets.util.registerOnLoadHandler(init);




w idge t.js
function
init
()
{


gadgets.util.registerOnLoadHandler(init);




w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);

gadgets.util.registerOnLoadHandler(init);




w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);



w idge t.js
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',


s.LoadSave(r.data.wikitext);




responseCallback,




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',


s.LoadSave(r.data.wikitext);




responseCallback,


s.editor.MoveECell('__UP_scroll_to__');




{
CONTENT_TYPE:
"JSON"
}


);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',


s.LoadSave(r.data.wikitext);




responseCallback,


s.editor.MoveECell('__UP_scroll_to__');




{
CONTENT_TYPE:
"JSON"
}


);


gadgets.window.setTitle(r.data.name);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',


s.LoadSave(r.data.wikitext);




responseCallback,


s.editor.MoveECell('__UP_scroll_to__');




{
CONTENT_TYPE:
"JSON"
}


);


gadgets.window.setTitle(r.data.name);
}


w idge t.js
function
responseCallback
(r)
{
function
init
()
{


if
(r.errors.length)
{
return
onError();
}


gadgets.window.adjustHeight(__UP_height__);


gadgets.io.makeRequest(
 gadgets.util.registerOnLoadHandler(init);


var
s
=
new
SocialCalc.SpreadsheetViewer();




"/data/workspaces/"


s.InitializeSpreadsheetViewer('content');






+
'__UP_ws__/pages/__UP_page__',


s.LoadSave(r.data.wikitext);




responseCallback,


s.editor.MoveECell('__UP_scroll_to__');




{
CONTENT_TYPE:
"JSON"
}


);


gadgets.window.setTitle(r.data.name);
}
                                      DONE!
w idge t.js
Ec lip se
App St ore fo r th e En te rp ri se
App St ore fo r th e En te rp ri se
App St ore fo r th e En te rp ri se
Socialtext 4
                            .
S oc ia l Net wor k ing
                  w it h S oc ia l Objec ts
So ci al Obje ct s
Web 1.0:
Em ai l
So ci al Net wor ki ng
So ci al Net wor ki ng
So ci al Net wor ki ng
Social Gadgets   Social API



                     Core Gadgets     Core API




Ope nS oc ia l 1.0
gadgets.*
       io
     json                             Social API
                     Social Gadgets
    Prefs
      util
    views
       +
                     Core Gadgets     Core API
    flash
   window
     i18n
    skins
       ...



Ope nS oc ia l 1.0
osapi.*
    people
  activities                          Social API
                     Social Gadgets
       +
    groups
  messages
   appdata
                     Core Gadgets     Core API
   albums
 mediaitems
       ...




Ope nS oc ia l 1.0
LDAP
GET /data/people/:id
GET /data/people/:id
GET /data/people/:id
GET /data/people/:id/tags
GET /data/people/:id/tags
GET /data/people/:id/watchers
GET /data/people/:id/watchlist
GET /data/users/:id/groups
GET /data/events/activities/:id
Step s to Ado pt io n
✓
✓
✓
Socialtext 4
                               .
A ct iv it y St re ams
              fo r th e S oc ia l Laye r
A ct iv it y St re ams
??
        ?

RSS ≉
??
        ?

RSS ≉
??
        ?

RSS ≉
??
        ?

RSS ≉
... ...
         ...

Atom ≈
... ...
         ...

Atom ≈
... ...
         ...

Atom ≈
... ...
         ...

Atom ≈
... ...
         ...

Atom ≈
A ct iv it yStreams
actor


A ct iv it yStreams
actor
                      object

A ct iv it yStreams
actor
                      object
                       verb
A ct iv it yStreams
actor
                      object
                       verb
A ct iv it yStreams
actor
        object
         verb

+
       target
          icon
    generator
     provider
         title
         body
actor
        object
         verb

+
       target
          icon
    generator
     provider
         title
         body
actor
        object
         verb

+
       target
          icon
    generator
     provider
         title
         body
<Atom>
<Atom>
<Atom>   {JSON}
<Atom>   {JSON}




Ope nS oc ia l 1.1
    (Draft)
<Atom>   {JSON}




Ope nS oc ia l 1.1
    (Draft)
Fe edProx y
Fe edProx y
So ci al te xt Co nnec t
So ci al te xt Co nnec t
So ci al te xt Co nnec t
Mandy Cunningham
Inventory: NCC1701
       InventoryBot
       There are 341 units of
       part #NCC1701 available
SalesforceBot
Lead record for Tricia Nuzzo
had
been converted to an
ProcessWatcher
opportunity
Page “Q3 Event Planning” in
Marketing is awaiting
approval to Sales
Joseph Hines
Uploaded Q3pipeline.ppt to
Sales presentation library
      This is great. Thank you
      for sharing.
      Looking good, Q3 is
      going
      to be fantastic!
Mandy Cunningham
Inventory: NCC1701
       InventoryBot
       There are 341 units of
       part #NCC1701 available
                                  CRM
SalesforceBot
Lead record for Tricia Nuzzo
had
been converted to an
ProcessWatcher
                                  ERP
opportunity
Page “Q3 Event Planning” in
Marketing is awaiting
approval to Sales
Joseph Hines
Uploaded Q3pipeline.ppt to
                                 SharePoint
Sales presentation library
      This is great. Thank you
      for sharing.
      Looking good, Q3 is
      going
      to be fantastic!
App Bots
           Mandy Cunningham
           Inventory: NCC1701
                  InventoryBot
                  There are 341 units of
                  part #NCC1701 available
                                             CRM
           SalesforceBot
           Lead record for Tricia Nuzzo
           had
           been converted to an
           ProcessWatcher
                                             ERP
           opportunity
           Page “Q3 Event Planning” in
           Marketing is awaiting
           approval to Sales
           Joseph Hines
           Uploaded Q3pipeline.ppt to
                                            SharePoint
           Sales presentation library
                 This is great. Thank you
                 for sharing.
                 Looking good, Q3 is
                 going
                 to be fantastic!
App Bots
              Mandy Cunningham
              Inventory: NCC1701
                     InventoryBot
                     There are 341 units of
                     part #NCC1701 available
                                                CRM
              SalesforceBot
              Lead record for Tricia Nuzzo
              had
              been converted to an
              ProcessWatcher
                                                ERP
Annotations   opportunity
              Page “Q3 Event Planning” in
              Marketing is awaiting
              approval to Sales
              Joseph Hines
              Uploaded Q3pipeline.ppt to
                                               SharePoint
              Sales presentation library
                    This is great. Thank you
                    for sharing.
                    Looking good, Q3 is
                    going
                    to be fantastic!
B ob
B ob
B ob
B ugB ot
B ugB ot
B ugB ot
: S a ll y
: S a ll y
: S a ll y
: S a ll y
: S a ll y
Th e So ci al Laye r
Th e So ci al Laye r
Th e So ci al Laye r
Th e So ci al Laye r
D
4.0
D
4.0
D
4.0
D
4.0
D
            4.0
Th a n k yo u!
CC0




      h tt p:/ udre y t.org/co sc up2010/
              /a

Mais conteúdo relacionado

Destaque

-Ofun: Optimizing for Fun
-Ofun: Optimizing for Fun-Ofun: Optimizing for Fun
-Ofun: Optimizing for Fun
Audrey Tang
 

Destaque (17)

Socialtext 4: A tale of Shindig and OpenSocial
Socialtext 4: A tale of Shindig and OpenSocialSocialtext 4: A tale of Shindig and OpenSocial
Socialtext 4: A tale of Shindig and OpenSocial
 
Feminist Hackerspaces
Feminist HackerspacesFeminist Hackerspaces
Feminist Hackerspaces
 
Why brick and mortar apparel retailers need to hit India’s e-retail hotspots
Why brick and mortar apparel retailers need to hit India’s e-retail hotspotsWhy brick and mortar apparel retailers need to hit India’s e-retail hotspots
Why brick and mortar apparel retailers need to hit India’s e-retail hotspots
 
Tic
TicTic
Tic
 
Usd$20
Usd$20Usd$20
Usd$20
 
萌典與零時政府
萌典與零時政府萌典與零時政府
萌典與零時政府
 
Sonnets
SonnetsSonnets
Sonnets
 
萌典與零時政府
萌典與零時政府萌典與零時政府
萌典與零時政府
 
The Sunflower Movement — Online Communities, Governments & Transparency
The Sunflower Movement — Online Communities, Governments & TransparencyThe Sunflower Movement — Online Communities, Governments & Transparency
The Sunflower Movement — Online Communities, Governments & Transparency
 
Passive verbs
Passive verbsPassive verbs
Passive verbs
 
0th Sunflower Digital Camp
0th Sunflower Digital Camp0th Sunflower Digital Camp
0th Sunflower Digital Camp
 
vTaiwan.tw
vTaiwan.twvTaiwan.tw
vTaiwan.tw
 
riverrun: 河水奔流
riverrun: 河水奔流riverrun: 河水奔流
riverrun: 河水奔流
 
Tapping the plastics opportunity in India - Kanvic Consulting
Tapping the plastics opportunity in India - Kanvic ConsultingTapping the plastics opportunity in India - Kanvic Consulting
Tapping the plastics opportunity in India - Kanvic Consulting
 
PgREST: Node.js in the Database
PgREST: Node.js in the DatabasePgREST: Node.js in the Database
PgREST: Node.js in the Database
 
-Ofun: Optimizing for Fun
-Ofun: Optimizing for Fun-Ofun: Optimizing for Fun
-Ofun: Optimizing for Fun
 
Wedding planning
Wedding planningWedding planning
Wedding planning
 

Semelhante a 社文字D: 轟趴開交物語

jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
mowd8574
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Patrick Chanezon
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
Pamela Fox
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Atlassian
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 

Semelhante a 社文字D: 轟趴開交物語 (20)

Building iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360FlexBuilding iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360Flex
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
 
shiny.pdf
shiny.pdfshiny.pdf
shiny.pdf
 
Google app engine by example
Google app engine by exampleGoogle app engine by example
Google app engine by example
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
 
Reactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJSReactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJS
 
ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
 
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!
 
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)Prompt engineering for iOS developers (How LLMs and GenAI work)
Prompt engineering for iOS developers (How LLMs and GenAI work)
 
The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185The Ring programming language version 1.5.4 book - Part 43 of 185
The Ring programming language version 1.5.4 book - Part 43 of 185
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
The Ring programming language version 1.2 book - Part 31 of 84
The Ring programming language version 1.2 book - Part 31 of 84The Ring programming language version 1.2 book - Part 31 of 84
The Ring programming language version 1.2 book - Part 31 of 84
 

Mais de Audrey Tang

TEDxTaipei 2017: 社會企業
TEDxTaipei 2017: 社會企業TEDxTaipei 2017: 社會企業
TEDxTaipei 2017: 社會企業
Audrey Tang
 
唐鳳政務委員業務工作報告
唐鳳政務委員業務工作報告唐鳳政務委員業務工作報告
唐鳳政務委員業務工作報告
Audrey Tang
 
共通性應用程式介面規範
共通性應用程式介面規範共通性應用程式介面規範
共通性應用程式介面規範
Audrey Tang
 

Mais de Audrey Tang (20)

Social Innovation & Digital Transformation
Social Innovation & Digital TransformationSocial Innovation & Digital Transformation
Social Innovation & Digital Transformation
 
Stories from the Future of Democracy
Stories from the Future of DemocracyStories from the Future of Democracy
Stories from the Future of Democracy
 
TEDxTaipei 2017: 社會企業
TEDxTaipei 2017: 社會企業TEDxTaipei 2017: 社會企業
TEDxTaipei 2017: 社會企業
 
唐鳳政務委員業務工作報告
唐鳳政務委員業務工作報告唐鳳政務委員業務工作報告
唐鳳政務委員業務工作報告
 
資訊服務採購契約範本 修正明細對照 1060713
資訊服務採購契約範本 修正明細對照 1060713資訊服務採購契約範本 修正明細對照 1060713
資訊服務採購契約範本 修正明細對照 1060713
 
服務型智慧政府推動計畫 v9
服務型智慧政府推動計畫 v9服務型智慧政府推動計畫 v9
服務型智慧政府推動計畫 v9
 
共通性應用程式介面規範
共通性應用程式介面規範共通性應用程式介面規範
共通性應用程式介面規範
 
打造一站式的防救災資訊整合平臺
打造一站式的防救災資訊整合平臺打造一站式的防救災資訊整合平臺
打造一站式的防救災資訊整合平臺
 
開放政府聯絡人第11次協作會議簡報
開放政府聯絡人第11次協作會議簡報開放政府聯絡人第11次協作會議簡報
開放政府聯絡人第11次協作會議簡報
 
第7次協作會議會後會簡報v6.0
第7次協作會議會後會簡報v6.0第7次協作會議會後會簡報v6.0
第7次協作會議會後會簡報v6.0
 
臨時動議:社會企業連繫會議分組
臨時動議:社會企業連繫會議分組臨時動議:社會企業連繫會議分組
臨時動議:社會企業連繫會議分組
 
議程及歷次列管表
議程及歷次列管表議程及歷次列管表
議程及歷次列管表
 
討論案一:中、南、東部在地社企會談規劃情形
討論案一:中、南、東部在地社企會談規劃情形討論案一:中、南、東部在地社企會談規劃情形
討論案一:中、南、東部在地社企會談規劃情形
 
報告案四之一:創櫃板協助社會企業籌資之推動現況
報告案四之一:創櫃板協助社會企業籌資之推動現況報告案四之一:創櫃板協助社會企業籌資之推動現況
報告案四之一:創櫃板協助社會企業籌資之推動現況
 
報告案四之二:國發基金運用資金協助社會發展辦理方式
報告案四之二:國發基金運用資金協助社會發展辦理方式報告案四之二:國發基金運用資金協助社會發展辦理方式
報告案四之二:國發基金運用資金協助社會發展辦理方式
 
報告案二:組團參加2017年社會企業世界論壇辦理進度報告
報告案二:組團參加2017年社會企業世界論壇辦理進度報告報告案二:組團參加2017年社會企業世界論壇辦理進度報告
報告案二:組團參加2017年社會企業世界論壇辦理進度報告
 
報告案三 :SEWF申辦2019進度說明
報告案三 :SEWF申辦2019進度說明報告案三 :SEWF申辦2019進度說明
報告案三 :SEWF申辦2019進度說明
 
2017-06-17 臺灣網路治理論壇
2017-06-17 臺灣網路治理論壇2017-06-17 臺灣網路治理論壇
2017-06-17 臺灣網路治理論壇
 
行政院數位國家創新經濟推動小組設置要點
行政院數位國家創新經濟推動小組設置要點行政院數位國家創新經濟推動小組設置要點
行政院數位國家創新經濟推動小組設置要點
 
DIGI⁺ 數位政府
DIGI⁺ 數位政府DIGI⁺ 數位政府
DIGI⁺ 數位政府
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

社文字D: 轟趴開交物語

Notas do Editor