SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
HOW TO
HERD CAT
STATUES
& MAKE
AWESOME
THINGS
MELISSA DRAPER
KIWIPYCON 2012


                 flickr.com/photos/schristia/4366659009/
A story of 3 users.
Jack found a useful
  sounding tool...
...but can't figure it
out.
Jack looks for
documentation
A lack of
documentation is
    bad.
Jill found a useful
sounding tool too.
It has documentation!
So she will use it.
Good
documentation tells
 people how to use
   your product.
Jaques found a
useful tool too
¿Qué?
Excellent
documentation is
  available for
   everyone.
Mahara
(mah-hah-rah; verb)
 To think, thinking,
      thought
Open Source
 Eportfolio
Students and
 Educators
Comprehensive
 user manual.
In English.
Requirements:
Low learning curve
  for translators.
One set of rST
     source
(per software version)
Images need to be
  translated too!
Support multiple
non-latin scripts
(and unicode symbols)
OOB Sphinx does
 not really do this!
(it kind of does Japanese)
p.s. Really, nothing
    does all this
How to make Sphinx
    do magic?
Makefile-driven
Get the translations:
Automagically
import translations
Launchpad
         ↓
     msgfmt
         ↓
Sphinx (via gettext)
Swap to XeLaTeX:
Good old fashioned
    patching


      ಠ_ಠ
General patches
Locale patches
Unsupported locales
Localised images:
Localised images
 git submodule
Copy images over
before each build.
Standardise DPI
$(foreach TRANSLATION,$(UNSUPPORTED), 
             mkdir -p source/locales/$(TRANSLATION)/$(MAHARA)/LC_MESSAGES; 
             cp -n /usr/share/locale-langpack/en_AU/LC_MESSAGES/sphinx.mo source/locales/$(TRANSLATION)/$(MAHARA)/LC_MESSAGES/sphinx.mo 
     ;)
     $(foreach TRANSLATION,$(TRANSLATIONS), 
             git checkout source/images ; 
             cp -ra localeimages/$(TRANSLATION)/* source/images ; 
       /bin/bash convert_images_dpi.sh; 
             $(SPHINXBUILD) -a -D language=$(TRANSLATION) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA); 
             cp patches/makesty.patch $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA); 
             cp patches/tex.patch $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA); 
             patch --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/makesty.patch; 
             patch --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/tex.patch 
     ;)
     $(foreach TRANSLATION,$(CLEAN), 
             make -C $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) all-pdf-ja 
     ;)
     $(foreach TRANSLATION,$(PATCHED), 
             cp patches/$(TRANSLATION).patch $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA); 
             patch --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/$(TRANSLATION).
ch; 
             make -C $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) all-pdf-ja; 
             patch -R --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/$(TRANSLATION
ch 
     ;)
     $(foreach TRANSLATION,$(TRANSLATIONS), 
             patch -R --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/tex.patch; 
             patch -R --directory=$(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA) -p1 < $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/makesty.patch;
             cp $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/Mahara.pdf $(BUILDDIR)/html/$(TRANSLATION)/$(MAHARA)/Mahara.pdf; 
             rm -r $(BUILDDIR)/latex/$(TRANSLATION)/$(MAHARA)/ 
     ;)
     git checkout source/images
gitorious.
org/mahara/manual
Disclaimer: Not
 perfected yet.

Mais conteúdo relacionado

Destaque

World religions
World religionsWorld religions
World religions
Jyggalag
 

Destaque (13)

O sistema de crédito imobiliário brasileiro
O sistema de crédito imobiliário brasileiroO sistema de crédito imobiliário brasileiro
O sistema de crédito imobiliário brasileiro
 
Bid
BidBid
Bid
 
Детермінанти конкуренції: дефініції та взаємозв'язок
Детермінанти конкуренції: дефініції та взаємозв'язокДетермінанти конкуренції: дефініції та взаємозв'язок
Детермінанти конкуренції: дефініції та взаємозв'язок
 
Smal retail in the conditions of recession
Smal retail in the conditions of recessionSmal retail in the conditions of recession
Smal retail in the conditions of recession
 
Bo p 200502
Bo p 200502Bo p 200502
Bo p 200502
 
World religions
World religionsWorld religions
World religions
 
Moral tahun 4
Moral tahun 4Moral tahun 4
Moral tahun 4
 
Основи обліку
Основи облікуОснови обліку
Основи обліку
 
The practice of big data - making big data approachable
The practice of big data - making big data approachableThe practice of big data - making big data approachable
The practice of big data - making big data approachable
 
The Practice of Big Data - The Hadoop ecosystem explained with usage scenarios
The Practice of Big Data - The Hadoop ecosystem explained with usage scenariosThe Practice of Big Data - The Hadoop ecosystem explained with usage scenarios
The Practice of Big Data - The Hadoop ecosystem explained with usage scenarios
 
Merry riana(the woman who inspire me)
Merry riana(the woman who inspire me)Merry riana(the woman who inspire me)
Merry riana(the woman who inspire me)
 
Merry riana(the woman who inspire me)
Merry riana(the woman who inspire me)Merry riana(the woman who inspire me)
Merry riana(the woman who inspire me)
 
Grow your own pesticide free food - Urban Hydroponics (soilless culture)
Grow your own pesticide free food - Urban Hydroponics (soilless culture)Grow your own pesticide free food - Urban Hydroponics (soilless culture)
Grow your own pesticide free food - Urban Hydroponics (soilless culture)
 

Semelhante a How to herd cat statues and make awesome things

Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
Abhay Sapru
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
Dr.Ravi
 
Recursive descent parsing
Recursive descent parsingRecursive descent parsing
Recursive descent parsing
Boy Baukema
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchina
guestcf9240
 
Writing Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniterWriting Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniter
CodeIgniter Conference
 
Building an e:commerce site with PHP
Building an e:commerce site with PHPBuilding an e:commerce site with PHP
Building an e:commerce site with PHP
webhostingguy
 

Semelhante a How to herd cat statues and make awesome things (20)

Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
 
Bioinformatica 29-09-2011-p1-introduction
Bioinformatica 29-09-2011-p1-introductionBioinformatica 29-09-2011-p1-introduction
Bioinformatica 29-09-2011-p1-introduction
 
Perl Moderno
Perl ModernoPerl Moderno
Perl Moderno
 
Hadoop Streaming: Programming Hadoop without Java
Hadoop Streaming: Programming Hadoop without JavaHadoop Streaming: Programming Hadoop without Java
Hadoop Streaming: Programming Hadoop without Java
 
Os Treat
Os TreatOs Treat
Os Treat
 
Easy R
Easy REasy R
Easy R
 
Recursive descent parsing
Recursive descent parsingRecursive descent parsing
Recursive descent parsing
 
Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007
 
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
(WHAT) To Do or Not To Do: Staying Up To Date with PHP Versions
 
Goodparts
GoodpartsGoodparts
Goodparts
 
Laravel Day / Deploy
Laravel Day / DeployLaravel Day / Deploy
Laravel Day / Deploy
 
Tips And Tricks For Bioinformatics Software Engineering
Tips And Tricks For Bioinformatics Software EngineeringTips And Tricks For Bioinformatics Software Engineering
Tips And Tricks For Bioinformatics Software Engineering
 
Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchina
 
Writing Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniterWriting Friendly libraries for CodeIgniter
Writing Friendly libraries for CodeIgniter
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
Building an e:commerce site with PHP
Building an e:commerce site with PHPBuilding an e:commerce site with PHP
Building an e:commerce site with PHP
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Mastering Namespaces in PHP
Mastering Namespaces in PHPMastering Namespaces in PHP
Mastering Namespaces in PHP
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 

How to herd cat statues and make awesome things