SlideShare ist ein Scribd-Unternehmen logo
1 von 97
Multimedia Fun with
 OpenOffice Calc



        imacat
imacat@mail.imacat.div.tw
      2013-04-19
“Multimedia Fun with OpenOffice Calc” is created by imacat (Yang Shih-Ching),
and licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License
Create charts and reports
imacat
●   Member of the Apache OpenOffice Project
    Management Committee
●   An OpenOffice committer
●   System administrator of OpenOffice forum
    and Wiki
●   A member of Women in Free and Open
    Source Software
●   A graduate student from National Taiwan
    Normal University
Question:
What do you do with a spreadsheet?
Counting salaries
Counting student scores
Creating charts and reports
Creating quotations
Doing calculation for strategy games
Voting machine
…
This talk is a modification
     of my previous talk
in ApacheCon Europe 2012
    at Sinsheim, German
       on 2012/11/6…
…with additions of
some of my interesting works afterwards.
And my talk in German
was based on my lightning talk
      in COSCUP 2013
Has anyone attended to my lightning talk
         in COSCUP 2013?
Has anyone remember what I had done?
My lightning talk in COSCUP 2013
       was about something I did
just one week before COSCUP 2013,
      which I had not enough time
  to finish and present it completely.
And here is the story.
Long time ago in the far, far land
   when I was still a child…
Long time ago in the far, far land
         when I was still a child…
Well, actually it was only in last August. :p
I saw on my RSS reader...
So I followed the story and
  watched the video…
It’s cool, isn’t it?
It’s cool, isn’t it?
Yes, it’s SO COOL!
I forwarded it onto our Google Plus,
      our Facebook fans page,
     our forums, local forum, etc.
I forwarded it onto our Google Plus,
      our Facebook fans page,
     our forums, local forum, etc.
          Then I put it away
      and return to my textbook.
Until I saw Rob talking about this
        video the next day…
So I watched it again, and also the
      “behind the scenes”…
Well, I think…
Well, I think…
Yeah, I can do it…
Well, I think…
Yeah, I can do it…
programmatically!
Creating mosaic arts involves
calculating the average colors of image blocks.
Since neither OpenOffice BASIC nor UNO API
                has any method
    to obtain the colors of individual pixels,
           I have use Java to do this.
So here it is… ^_^
(demonstration)
It’s cool, isn’t it?
No.
No, that’s not cool.
It’s uglier than the original “Stop-Motion Excel”.
     It’s not the “eye candy” that I imagined.
Why?
     The original “Stop-Motion Excel”
     was painted manually, cell by cell.
MysteryGuitarMan painted it with a fixed
     palette, but not “average colors”.
It looks sharp. It feels like an animation.
Comparing Hand-Painted Colors
  with Mosaic Average Colors
So I need to find something more cool,
           something sharp,
    something with a high contrast.
That is not an easy task.
The idea of Calc Mosaic
     is not only to create mosaic arts,
but also to create stop-motion animations.
But it takes averagely 20 seconds
to create a spreadsheet of mosaic art
    with the Java UNO application.
      I cannot run the animation
by creating the mosaic art at real-time.
So I turn to another method,
to create each frame with a spreadsheet,
       and play them in sequence,
       as a stop-motion animation.
But then a spreadsheet document can only
 contain a maximum of 256 spreadsheets.
Since I only have 256 frames,
     this cannot be long.
I remembered there is the iPod Ad
The iPod Ad…
●   Has only 31 seconds, corresponding to 8
    FPS if we are having 256 frames.
The iPod Ad…
●   Has only 31 seconds, corresponding to 8
    FPS if we are having 256 frames.
●   Has sharp images, high contrasts.
The iPod Ad…
●   Has only 31 seconds, corresponding to 8
    FPS if we are having 256 frames.
●   Has sharp images, high contrasts.
●   Is very famous.
So here it is…
(demonstration)
At the same time, Villeroy responded to my
Calc Mosaic on the forum, using a different
                approach.
Villeroy’s Response
So here it is…
(demonstration)
As you can see,
 Villeroy places the color values in the cells.
 The OpenOffice BASIC macro can read and
update the cell background colors accordingly.
       OpenOffice BASIC is a lot faster
                than Java UNO.
This makes it possible to animate at real time.
Villeroy’s approach still has some
         disadvantages…
Disadvantages of
            Villeroy’s Approach
●   You still need to have the color values first.
Disadvantages of
             Villeroy’s Approach
●   You still need to have the color values first.
●   The frame rate is still low.
Disadvantages of
             Villeroy’s Approach
●   You still need to have the color values first.
●   The frame rate is still low.
●   Villeroy updates the colors with styles.
    –   A lot faster than painting the background
        color cell by cell.
    –   The number of colors to use is limited.
        That is why it is gray-scaled.
This is a different approach than me.
    But I still got greatly inspired.
The color values can be saved in the sheets,
   and painted with OpenOffice BASIC.
        This can make it a lot faster.
And I know there is the setDataArray()
     in the interface XCellRangeData.
I can populate all the color values at once
    instead of hundreds of UNO calls
    to set the CellBackColor property
                Of SheetCell.
The New Process Will Be…
1.Calculates the average colors of mosaic
  cells with the Java application.
The New Process Will Be…
1.Calculates the average colors of mosaic
  cells with the Java application.
2.Passes the color values from Java to
  OpenOffice BASIC.
The New Process Will Be…
1.Calculates the average colors of mosaic
  cells with the Java application.
2.Passes the color values from Java to
  OpenOffice BASIC.
3.Paints the background colors of the
  spreadsheet cells with the OpenOffice
  BASIC macro.
So the problem becomes:
        Writing an application
both in Java and OpenOffice BASIC.
So the problem becomes:
         Writing an application
 both in Java and OpenOffice BASIC.
               Or, simply,
Creating the OpenOffice BASIC macros
   through the UNO API with Java.
In the unpublished UNO API,
    there is a BasicLibraries property
            in OfficeDocument
     that application developers can
access, insert or delete the BASIC macros.
There’s also the XScriptProvider interface
        that I can use it to invoke
    the existing OpenOffice macros.
So I use them to “inject” the BASIC macros
into the newly-created spreadsheet document,
             and run these macros.
In fact, I don’t even need to use setDataArray()
to paste the color values into the spreadsheets.
   I can pass the color values as parameters
           to the invoked BASIC macros.
This is troublesome,
     but the result is amazing.
It is 8 times faster then before!
When I prepare for my ApacheCon
          presentation,
I became more and more greedy.
I want something new,
        something hot,
something gets people excited!
Then I came across this…
Something hot…
Well, again, I think…
Well, again, I think…
 Yeah, I can do it!
So here is it.
When preparing for OSDC.tw,
Gangnam Style became outdated.
      I need a new one.
(demonstration)
That is the story of Calc Mosaic.
To create your own Mosaic video,
        get Calc Mosaic at
    http://sf.net/p/calcmosaic.
More Than Calc Mosaic
Last year after I returned from German,
 I attended to a speech in our institute
          at the end of November.
       It was about new media art.
New Media Art
Oh, no…
Oh, no…
I can do it.
I can do it…
●   I can play piano notes using the Shell
    command “mplayer” in OpenOffice BASIC.
I can do it…
●   I can play piano notes using the Shell
    command “mplayer” in OpenOffice BASIC.
●   I can attach click events with picture objects.
I can do it…
●   I can play piano notes using the Shell
    command “mplayer” in OpenOffice BASIC.
●   I can attach click events with picture objects.
●   I can change the colors of the Calc
    spreadsheet cells.
I can do it…
●   I can play piano notes using the Shell
    command “mplayer” in OpenOffice BASIC.
●   I can attach click events with picture objects.
●   I can change the colors of the Calc
    spreadsheet cells.
●   It's possible to create an animated,
    interactive Piano with Calc.
(demonstration)
Furthermore,
with a little modification,
I released a piano quest
     in the Christmas.
(demonstration)
Thank you.
Any question?

Weitere ähnliche Inhalte

Andere mochten auch

Ttfcci mid program presentation to trc 121411.cb
Ttfcci mid program presentation to trc 121411.cbTtfcci mid program presentation to trc 121411.cb
Ttfcci mid program presentation to trc 121411.cbBrandon Williams
 
Prevention and response shared copy
Prevention and response shared copyPrevention and response shared copy
Prevention and response shared copyBrandon Williams
 
The state of social media in financial services presentation
The state of social media in financial services presentationThe state of social media in financial services presentation
The state of social media in financial services presentationifcaonline
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build Systemimacat .
 
SugarCRM Project Management Enhancements
SugarCRM Project Management EnhancementsSugarCRM Project Management Enhancements
SugarCRM Project Management EnhancementsAtcore Systems
 

Andere mochten auch (20)

Julie Horne Møller - Horsens Kunstmuseum
Julie Horne Møller - Horsens KunstmuseumJulie Horne Møller - Horsens Kunstmuseum
Julie Horne Møller - Horsens Kunstmuseum
 
Atcore Connect Overview
Atcore Connect OverviewAtcore Connect Overview
Atcore Connect Overview
 
Spor 2, Trine Grøne, Formidlingsseminar museer på tværs
Spor 2, Trine Grøne, Formidlingsseminar museer på tværsSpor 2, Trine Grøne, Formidlingsseminar museer på tværs
Spor 2, Trine Grøne, Formidlingsseminar museer på tværs
 
Mads Dengsø Jessen Danish Journal of Archaeology
Mads Dengsø Jessen Danish Journal of ArchaeologyMads Dengsø Jessen Danish Journal of Archaeology
Mads Dengsø Jessen Danish Journal of Archaeology
 
Ttfcci mid program presentation to trc 121411.cb
Ttfcci mid program presentation to trc 121411.cbTtfcci mid program presentation to trc 121411.cb
Ttfcci mid program presentation to trc 121411.cb
 
Theis Jensen - the use of 3 d photogrammetry for on-site recording
Theis Jensen - the use of 3 d photogrammetry for on-site recordingTheis Jensen - the use of 3 d photogrammetry for on-site recording
Theis Jensen - the use of 3 d photogrammetry for on-site recording
 
Prevention and response shared copy
Prevention and response shared copyPrevention and response shared copy
Prevention and response shared copy
 
4 Alex Burch denmark 2014
4 Alex Burch denmark 20144 Alex Burch denmark 2014
4 Alex Burch denmark 2014
 
10x7 08 Fremtidens Museum i Holstebro Ann Bodilsen
10x7 08 Fremtidens Museum i Holstebro Ann Bodilsen10x7 08 Fremtidens Museum i Holstebro Ann Bodilsen
10x7 08 Fremtidens Museum i Holstebro Ann Bodilsen
 
Astrid Skou og Jannie Holm - spor efter udvinding og forarbejdning af jern
Astrid Skou og Jannie Holm -  spor efter udvinding og forarbejdning af jernAstrid Skou og Jannie Holm -  spor efter udvinding og forarbejdning af jern
Astrid Skou og Jannie Holm - spor efter udvinding og forarbejdning af jern
 
93 Hans Dam Christensen, Kunstneren og som værket
93 Hans Dam Christensen, Kunstneren og som værket93 Hans Dam Christensen, Kunstneren og som værket
93 Hans Dam Christensen, Kunstneren og som værket
 
Future of CRM
Future of CRM Future of CRM
Future of CRM
 
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
 
The state of social media in financial services presentation
The state of social media in financial services presentationThe state of social media in financial services presentation
The state of social media in financial services presentation
 
Lotte Redtz Sparrevohn, Åkilde – En 850 m lang stolperække. Funktion og dater...
Lotte Redtz Sparrevohn, Åkilde – En 850 m lang stolperække. Funktion og dater...Lotte Redtz Sparrevohn, Åkilde – En 850 m lang stolperække. Funktion og dater...
Lotte Redtz Sparrevohn, Åkilde – En 850 m lang stolperække. Funktion og dater...
 
Susanne Klingenberg, bopladsområdet ved Hoby
Susanne Klingenberg, bopladsområdet ved Hoby Susanne Klingenberg, bopladsområdet ved Hoby
Susanne Klingenberg, bopladsområdet ved Hoby
 
Nanna Bjerregaard Pedersen - d-mannitol
Nanna Bjerregaard Pedersen -  d-mannitolNanna Bjerregaard Pedersen -  d-mannitol
Nanna Bjerregaard Pedersen - d-mannitol
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
SugarCRM Project Management Enhancements
SugarCRM Project Management EnhancementsSugarCRM Project Management Enhancements
SugarCRM Project Management Enhancements
 
Udstilling af mumier
Udstilling af mumierUdstilling af mumier
Udstilling af mumier
 

Ähnlich wie Multimedia Fun with OpenOffice Calc

Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Gregory Starr
 
Adobe Illustrator - Creating the Poster
Adobe Illustrator - Creating the PosterAdobe Illustrator - Creating the Poster
Adobe Illustrator - Creating the PosterTimothy F McKenna
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab
 
WRA 210 April 14th PowerPoint
WRA 210 April 14th PowerPointWRA 210 April 14th PowerPoint
WRA 210 April 14th PowerPointMiami University
 
Transcript - Data Visualisation - Tools and Techniques
Transcript - Data Visualisation - Tools and TechniquesTranscript - Data Visualisation - Tools and Techniques
Transcript - Data Visualisation - Tools and TechniquesARDC
 
Visual Rhetoric, Feb 18, 2013
Visual Rhetoric, Feb 18, 2013Visual Rhetoric, Feb 18, 2013
Visual Rhetoric, Feb 18, 2013Miami University
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Software
 
Smalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneSmalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneEsteban Lorenzano
 
16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docxssuser90e017
 
Monday Night, Feb 10th Visrhet
Monday Night, Feb 10th VisrhetMonday Night, Feb 10th Visrhet
Monday Night, Feb 10th VisrhetMiami University
 
Crossing Office Applications
Crossing Office ApplicationsCrossing Office Applications
Crossing Office Applicationsimacat .
 
Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Agustin Aboytes
 
Joy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampJoy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampDonna Benjamin
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?Colin Riley
 
Scilab for real dummies
Scilab for real dummiesScilab for real dummies
Scilab for real dummiesSunu Pradana
 

Ähnlich wie Multimedia Fun with OpenOffice Calc (20)

Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015Javascript Animation with Canvas - Gregory Starr 2015
Javascript Animation with Canvas - Gregory Starr 2015
 
Adobe Illustrator - Creating the Poster
Adobe Illustrator - Creating the PosterAdobe Illustrator - Creating the Poster
Adobe Illustrator - Creating the Poster
 
Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1
 
WRA 210 April 14th PowerPoint
WRA 210 April 14th PowerPointWRA 210 April 14th PowerPoint
WRA 210 April 14th PowerPoint
 
scilab
scilabscilab
scilab
 
Transcript - Data Visualisation - Tools and Techniques
Transcript - Data Visualisation - Tools and TechniquesTranscript - Data Visualisation - Tools and Techniques
Transcript - Data Visualisation - Tools and Techniques
 
Visual Rhetoric, Feb 18, 2013
Visual Rhetoric, Feb 18, 2013Visual Rhetoric, Feb 18, 2013
Visual Rhetoric, Feb 18, 2013
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
 
20140830 maker fairetrondheim
20140830 maker fairetrondheim20140830 maker fairetrondheim
20140830 maker fairetrondheim
 
"Prototype Everything" at The conference(19/Aug/2014,Malmo,Sweden) by @tks
"Prototype Everything"  at The conference(19/Aug/2014,Malmo,Sweden)  by @tks"Prototype Everything"  at The conference(19/Aug/2014,Malmo,Sweden)  by @tks
"Prototype Everything" at The conference(19/Aug/2014,Malmo,Sweden) by @tks
 
Smalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhoneSmalltalk in the pocket - Building applications for the iPhone
Smalltalk in the pocket - Building applications for the iPhone
 
16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx16 OpenCV Functions to Start your Computer Vision journey.docx
16 OpenCV Functions to Start your Computer Vision journey.docx
 
Monday Night, Feb 10th Visrhet
Monday Night, Feb 10th VisrhetMonday Night, Feb 10th Visrhet
Monday Night, Feb 10th Visrhet
 
Crossing Office Applications
Crossing Office ApplicationsCrossing Office Applications
Crossing Office Applications
 
Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1Open cv python tutorial for beginners 1
Open cv python tutorial for beginners 1
 
January 29th PowerPoint
January 29th PowerPointJanuary 29th PowerPoint
January 29th PowerPoint
 
Joy of Inkscape - at StixCamp
Joy of Inkscape - at StixCampJoy of Inkscape - at StixCamp
Joy of Inkscape - at StixCamp
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Scilab for real dummies
Scilab for real dummiesScilab for real dummies
Scilab for real dummies
 

Mehr von imacat .

A Room of WikiWomen's Own
A Room of WikiWomen's OwnA Room of WikiWomen's Own
A Room of WikiWomen's Ownimacat .
 
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機Office寶可夢GO IV計算機
Office寶可夢GO IV計算機imacat .
 
OpenOffice Application with Python
OpenOffice Application with PythonOpenOffice Application with Python
OpenOffice Application with Pythonimacat .
 
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docsimacat .
 
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of DiversityMore Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversityimacat .
 
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4imacat .
 
OpenOffice, Open Business
OpenOffice, Open BusinessOpenOffice, Open Business
OpenOffice, Open Businessimacat .
 
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012imacat .
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4imacat .
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1imacat .
 
Solitaire with Greenfoot #3
Solitaire with Greenfoot #3Solitaire with Greenfoot #3
Solitaire with Greenfoot #3imacat .
 
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1imacat .
 
Solitaire with Greenfoot #4
Solitaire with Greenfoot #4Solitaire with Greenfoot #4
Solitaire with Greenfoot #4imacat .
 
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2Solitaire with Greenfoot #2
Solitaire with Greenfoot #2imacat .
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4imacat .
 
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02imacat .
 
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01imacat .
 
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4imacat .
 
OpenOffice UNO Application on Android
OpenOffice UNO Application on AndroidOpenOffice UNO Application on Android
OpenOffice UNO Application on Androidimacat .
 
OpenOffice.org Magic Sandbox
OpenOffice.org Magic SandboxOpenOffice.org Magic Sandbox
OpenOffice.org Magic Sandboximacat .
 

Mehr von imacat . (20)

A Room of WikiWomen's Own
A Room of WikiWomen's OwnA Room of WikiWomen's Own
A Room of WikiWomen's Own
 
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機Office寶可夢GO IV計算機
Office寶可夢GO IV計算機
 
OpenOffice Application with Python
OpenOffice Application with PythonOpenOffice Application with Python
OpenOffice Application with Python
 
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs
 
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of DiversityMore Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversity
 
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4
 
OpenOffice, Open Business
OpenOffice, Open BusinessOpenOffice, Open Business
OpenOffice, Open Business
 
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
 
Solitaire with Greenfoot #3
Solitaire with Greenfoot #3Solitaire with Greenfoot #3
Solitaire with Greenfoot #3
 
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
 
Solitaire with Greenfoot #4
Solitaire with Greenfoot #4Solitaire with Greenfoot #4
Solitaire with Greenfoot #4
 
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2Solitaire with Greenfoot #2
Solitaire with Greenfoot #2
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
 
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02
 
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01
 
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4
 
OpenOffice UNO Application on Android
OpenOffice UNO Application on AndroidOpenOffice UNO Application on Android
OpenOffice UNO Application on Android
 
OpenOffice.org Magic Sandbox
OpenOffice.org Magic SandboxOpenOffice.org Magic Sandbox
OpenOffice.org Magic Sandbox
 

Kürzlich hochgeladen

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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 MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Kürzlich hochgeladen (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Multimedia Fun with OpenOffice Calc

  • 1. Multimedia Fun with OpenOffice Calc imacat imacat@mail.imacat.div.tw 2013-04-19
  • 2. “Multimedia Fun with OpenOffice Calc” is created by imacat (Yang Shih-Ching), and licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License
  • 4. imacat ● Member of the Apache OpenOffice Project Management Committee ● An OpenOffice committer ● System administrator of OpenOffice forum and Wiki ● A member of Women in Free and Open Source Software ● A graduate student from National Taiwan Normal University
  • 5. Question: What do you do with a spreadsheet?
  • 10. Doing calculation for strategy games
  • 12.
  • 13. This talk is a modification of my previous talk in ApacheCon Europe 2012 at Sinsheim, German on 2012/11/6…
  • 14. …with additions of some of my interesting works afterwards.
  • 15. And my talk in German was based on my lightning talk in COSCUP 2013
  • 16. Has anyone attended to my lightning talk in COSCUP 2013? Has anyone remember what I had done?
  • 17. My lightning talk in COSCUP 2013 was about something I did just one week before COSCUP 2013, which I had not enough time to finish and present it completely.
  • 18. And here is the story.
  • 19. Long time ago in the far, far land when I was still a child…
  • 20. Long time ago in the far, far land when I was still a child… Well, actually it was only in last August. :p
  • 21. I saw on my RSS reader...
  • 22. So I followed the story and watched the video…
  • 24. It’s cool, isn’t it? Yes, it’s SO COOL!
  • 25. I forwarded it onto our Google Plus, our Facebook fans page, our forums, local forum, etc.
  • 26. I forwarded it onto our Google Plus, our Facebook fans page, our forums, local forum, etc. Then I put it away and return to my textbook.
  • 27. Until I saw Rob talking about this video the next day…
  • 28. So I watched it again, and also the “behind the scenes”…
  • 30. Well, I think… Yeah, I can do it…
  • 31. Well, I think… Yeah, I can do it… programmatically!
  • 32. Creating mosaic arts involves calculating the average colors of image blocks. Since neither OpenOffice BASIC nor UNO API has any method to obtain the colors of individual pixels, I have use Java to do this.
  • 33. So here it is… ^_^
  • 36. No.
  • 37. No, that’s not cool. It’s uglier than the original “Stop-Motion Excel”. It’s not the “eye candy” that I imagined.
  • 38. Why? The original “Stop-Motion Excel” was painted manually, cell by cell. MysteryGuitarMan painted it with a fixed palette, but not “average colors”. It looks sharp. It feels like an animation.
  • 39. Comparing Hand-Painted Colors with Mosaic Average Colors
  • 40. So I need to find something more cool, something sharp, something with a high contrast.
  • 41. That is not an easy task.
  • 42. The idea of Calc Mosaic is not only to create mosaic arts, but also to create stop-motion animations.
  • 43. But it takes averagely 20 seconds to create a spreadsheet of mosaic art with the Java UNO application. I cannot run the animation by creating the mosaic art at real-time.
  • 44. So I turn to another method, to create each frame with a spreadsheet, and play them in sequence, as a stop-motion animation.
  • 45. But then a spreadsheet document can only contain a maximum of 256 spreadsheets.
  • 46. Since I only have 256 frames, this cannot be long.
  • 47. I remembered there is the iPod Ad
  • 48. The iPod Ad… ● Has only 31 seconds, corresponding to 8 FPS if we are having 256 frames.
  • 49. The iPod Ad… ● Has only 31 seconds, corresponding to 8 FPS if we are having 256 frames. ● Has sharp images, high contrasts.
  • 50. The iPod Ad… ● Has only 31 seconds, corresponding to 8 FPS if we are having 256 frames. ● Has sharp images, high contrasts. ● Is very famous.
  • 51. So here it is…
  • 53. At the same time, Villeroy responded to my Calc Mosaic on the forum, using a different approach.
  • 55. So here it is…
  • 57. As you can see, Villeroy places the color values in the cells. The OpenOffice BASIC macro can read and update the cell background colors accordingly. OpenOffice BASIC is a lot faster than Java UNO. This makes it possible to animate at real time.
  • 58. Villeroy’s approach still has some disadvantages…
  • 59. Disadvantages of Villeroy’s Approach ● You still need to have the color values first.
  • 60. Disadvantages of Villeroy’s Approach ● You still need to have the color values first. ● The frame rate is still low.
  • 61. Disadvantages of Villeroy’s Approach ● You still need to have the color values first. ● The frame rate is still low. ● Villeroy updates the colors with styles. – A lot faster than painting the background color cell by cell. – The number of colors to use is limited. That is why it is gray-scaled.
  • 62. This is a different approach than me. But I still got greatly inspired.
  • 63. The color values can be saved in the sheets, and painted with OpenOffice BASIC. This can make it a lot faster.
  • 64. And I know there is the setDataArray() in the interface XCellRangeData. I can populate all the color values at once instead of hundreds of UNO calls to set the CellBackColor property Of SheetCell.
  • 65. The New Process Will Be… 1.Calculates the average colors of mosaic cells with the Java application.
  • 66. The New Process Will Be… 1.Calculates the average colors of mosaic cells with the Java application. 2.Passes the color values from Java to OpenOffice BASIC.
  • 67. The New Process Will Be… 1.Calculates the average colors of mosaic cells with the Java application. 2.Passes the color values from Java to OpenOffice BASIC. 3.Paints the background colors of the spreadsheet cells with the OpenOffice BASIC macro.
  • 68. So the problem becomes: Writing an application both in Java and OpenOffice BASIC.
  • 69. So the problem becomes: Writing an application both in Java and OpenOffice BASIC. Or, simply, Creating the OpenOffice BASIC macros through the UNO API with Java.
  • 70. In the unpublished UNO API, there is a BasicLibraries property in OfficeDocument that application developers can access, insert or delete the BASIC macros.
  • 71. There’s also the XScriptProvider interface that I can use it to invoke the existing OpenOffice macros.
  • 72. So I use them to “inject” the BASIC macros into the newly-created spreadsheet document, and run these macros.
  • 73. In fact, I don’t even need to use setDataArray() to paste the color values into the spreadsheets. I can pass the color values as parameters to the invoked BASIC macros.
  • 74. This is troublesome, but the result is amazing. It is 8 times faster then before!
  • 75. When I prepare for my ApacheCon presentation, I became more and more greedy.
  • 76. I want something new, something hot, something gets people excited!
  • 77. Then I came across this…
  • 79. Well, again, I think…
  • 80. Well, again, I think… Yeah, I can do it!
  • 81. So here is it.
  • 82. When preparing for OSDC.tw, Gangnam Style became outdated. I need a new one.
  • 84. That is the story of Calc Mosaic. To create your own Mosaic video, get Calc Mosaic at http://sf.net/p/calcmosaic.
  • 85. More Than Calc Mosaic
  • 86. Last year after I returned from German, I attended to a speech in our institute at the end of November. It was about new media art.
  • 89. Oh, no… I can do it.
  • 90. I can do it… ● I can play piano notes using the Shell command “mplayer” in OpenOffice BASIC.
  • 91. I can do it… ● I can play piano notes using the Shell command “mplayer” in OpenOffice BASIC. ● I can attach click events with picture objects.
  • 92. I can do it… ● I can play piano notes using the Shell command “mplayer” in OpenOffice BASIC. ● I can attach click events with picture objects. ● I can change the colors of the Calc spreadsheet cells.
  • 93. I can do it… ● I can play piano notes using the Shell command “mplayer” in OpenOffice BASIC. ● I can attach click events with picture objects. ● I can change the colors of the Calc spreadsheet cells. ● It's possible to create an animated, interactive Piano with Calc.
  • 95. Furthermore, with a little modification, I released a piano quest in the Christmas.