SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Andere mochten auch

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

Andere mochten auch (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
 

Ähnlich wie 社文字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
 

Ähnlich wie 社文字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
 

Mehr von Audrey Tang

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

Mehr von 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⁺ 數位政府
 

Kürzlich hochgeladen

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
 

Kürzlich hochgeladen (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
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...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

社文字D: 轟趴開交物語

Hinweis der Redaktion