OpenLLM-France/wikimedia huggingface dataset:
# Setting up a gallery installation

RDEX is a gallery installation, one component of which runs from a computer with the video output projected and an internet connection to upload data. The technical requirements for the installation involve setting up a laptop so that everything starts up automatically when it is turned on, with error recovery in case of unforeseen bugs.

## Create a LiveUSB

The usual procedure.

## Configure hardware drivers

RDEX needs accelerated OpenGL with hardware shader support, which usually requires installing proprietary drivers.

## User setup

Create a new user called rdex without administration rights for increased security. The installation will run as this user.
The su command allows you to switch users, for example sudo su rdex. The workflow is to do the set-up logged in as your own user switched to the rdex user in a terminal, as logging in as the rdex user would start the installation.

## Configure displays

RDEX runs fullscreen on the external video output of a laptop with its lid shut. Monitor power saving (DPMS) and screen blanking must be disabled.

## Automatic login to custom user

As a user with administration rights, set up the login manager to automatically log in as the installation's user after a short delay (enough time for a human to log in as a different user when necessary).

## Automatic start of the software

Create a shell script to start everything up. Create a desktop file in the autostart folder to launch that script.
Devil's Pie is a handy tool to tweak the window manager settings for applications, in this case to move the RDEX output window to the external output, remove window manager decorations, and maximize it to full screen.
The script runs a loop that restarts the installation in case the custom software crashes.

## Testing

Once everything is prepared, make a backup of the key with dd. Then try rebooting and see if it all works. If everything is set up correctly, revert to the pristine image, and save it for the opening ceremony. Otherwise fix the problems and repeat the process.

## Remote debugging

OpenVPN can be used to access machines that are behind NAT barriers. SSH through the VPN to inspect the system. The output of the autostart script will be logged in the xsession-errors file. In RDEX's case, if it is working correctly there'll be new messages quite often, so tail -f for realtime updates.

## Meta

This page will be updated with a complete step by step guide soon.
# Puredyne/Report Bugs
## Reporting problems or suggestions

The "launchpad" site is where we keep track of puredyne bugs/questions/feature-requests.
If you find a problem, or have a suggestion for improvement, add an item to the "bug tracker":
* https://bugs.launchpad.net/puredyne-live

## Writing a bug report

The goal of any bug report is to let a developer know about a defect in his/her software, so s/he can fix it. The key to doing this successfully is to describe the bug is such a way, that the developer can recreate the problem, find the cause and remove the cause to eliminate the problem. Writing clearly and precisely is essential. When you fill in the detailed description part of a new ticket, please keep the following points in mind.

### How to describe the issue

* The developer has to be able to recreate the problem you encountered in order to fix it. If you can't sit next to him/her to show what went wrong, the next best thing is to give detailed instructions on how they can make the problem happen.
* Not every computer is the same, so always include a description of your particular hardware. At least include what brand and computer model you used, and any other relevant hardware. For instance if you had a sound related problem, report what sound card you used.
* Include the version number of pure:dyne you are using, and if the problem relates to a software, also include the version number of the software.
* Include complete error messages, if you get any. Don't leave out beginnings or ends, just copy and paste the whole message. These messages provide essential information for the developer.
* To create a clean bug report, don't try to fix the problem yourself before reporting the problem. Often you make the problem worse or at least harder to describe. So when something goes wrong, freeze and visit the URL above :)
* If you think you know what is the problem, please include your ideas! But don't forget to still include all other details and error messages related to the bug.
* Write clearly and precisely (don't forget, you are writing to a programmer ;))
# Puredyne/Starting Applications

Starting applications is easy!
Use the main Puredyne menu by right clicking on your desktop, and navigate the applications by their grouping – Multimedia, Graphics, Network, etc. Select the application you would like to start. You start the application by clicking on it in the menu.
You can also start applications from the terminal. Open a terminal, type the name of the application and ENTER.

## Switching between applications

When you have multiple applications running, you can switch between them with Alt+Tab.
Keep the Alt key pressed and hit Tab multiple times to see the focus switch from one application to another.
# Puredyne/Stop-Motion Animation Workshops

I'm not sure if I should be so bold as to enter this, but I thought you would find it interesting...
I have used a number of Puredyne Bootable USB pens to run animation workshops. This allows me to turn any school computer lab, Library or other room full of computers into a Puredyne-powered media-lab for the duration of the event, and then leave, without any software or files remaining on the computers.
So far I have used this to run workshops using ToonLoop and Blender. The results of these workshops are viewable here and here, but this will allow me to run workshops and lessons in a lot of powerful software packages, introducing open-source software to children and adults.
Puredyne allows me to install whatever software I need for the workshop, and collect any work created at the end of the day, to edit into a finished video. The fact that the interface looks very much like a certain operating system (only more elegant) makes it easy for my participants to pick up.
Thank you to Access-Space for their help in setting up my USB pens.
# Puredyne/Repair grub2

It can happen that you're stuck at grub prompt with no boot possible (after re-installing Windows, or randomly on a mac).
There are several things to try to repair Grub:
    detailed tutorials here: Grub2LiveCdInstallGuide or here: https://help.ubuntu.com/community/Grub2#Reinstalling%20GRUB%202
    on a mac, if you (accidentally) installed Grub2 on the hard drive MBR and ended up with 2 linux icons (Boot linux from EFI and Boot linux from partition X) and none of them boot anymore.
    Booting on the SuperGRUB2Disk repairs the MBR grub install.
    note: after this, in the Refit menu, you might have to boot linux from EFI and not linux from partition X anymore
# Sharing Files across local network

There are various ways to share files across local networks, some of which are more complex than others. For most compatibility with all types of host systems (i.e. Windows, OS X, GNU/Linux, *BSD) use the Samba protocol (explained further down). For exchanging files between GNU/Linux (and even OS X) computers, other methods can be much easier and quicker to setup. We'll cover these solutions first, then deal with a simple Samba setup.

## sshfs

One of the most secure and quickest methods is sshfs, a fuse based filesystem that uses ssh. First, install sshfs by opening a terminal and typing:
When its done installing, create a mount point:
You can then mount any directory from hosts that run the ssh daemon (sshd). Here, we mount the home directory of user lintian with the IP address of 192.168.1.55 on the mount-point mymount:
Once this is done, you can do operations like cp or ls in the mymount/ directory, just like any other directory in your home. This way, you can also access all files in lintians home directory using the file-manager Thunar.

## NFS

FIXME

## Samba

FIXME
# Puredyne/Sound Configuration
## Sound test

If you don't have sound, even though the application's volume is turned all the way up, Puredyne's audio channels might be muted. You can unmute the audio using a simple application.

### Volume Control using a GUI

Open up Mixer, it is located in the Puredyne menu under Audio -> Mixer.
Make sure that the sliders of the channels you are using are not all the way at the bottom (muted) and the mute buttons off. If so, turn them up to your desired level. If you don't see any sliders at all, you might have to add the specific controls first. No worries, its simple. Click on the "Select Controls" button and you will be presented with a small list of controls available:
Select the ones you need (or all of them) and go back to step 1 adjusting the levels.

### Volume Control using a terminal

You can also control the volume using alsamixer. Open a terminal and type alsamixer and ENTER. Alsamixer is started.
You can navigate using your keyboards arrow-keys. Left and right arrows select different channels, and up and down arrows control the level of a channel.
If you have no sound, it could be that one of the channels is muted. Channels that are muted have a MM at the bottom of the channel. The levels can still be turned all the way up (see image below).
To un-mute a channel, select it using the arrow keys, and press M. The MM at the bottom of the channel should be replaced with 00.

## Advanced sound module tweaking

For some cards some tweaking is required, for example you need to pass some arguments to the sound driver (module) in order to work properly. This is usually the case for exotic, rare or very recent hardware.

## Reloading Alsa modules

There are different reasons why you would need to reload entirely the Alsa modules, for example:
* some modules crashed or your manually removed some and don't know which ones need to be reloaded
* udev is making a mess of your cards order, ie you specified in alsaconf that you want your internal sound card to be card0, but it ends up being card1 every now and then during boot time.
* something weird is going on and you need to reload the whole sound system without having to reboot
Use this command
# Puredyne/Stress Testing

Because there is nothing worse than having your system freezing or crashing in the middle of a performance or installation it is important to test its limits. The following guide aims at providing some suggestions to test Puredyne in order to both know how far your machine/software can be pushed, but also to help the project to spot abnormal behaviours.

## Application testing
### Prerequisite

Stress testing is more meaningful when you use a software that you already know so you have a common ground to compare things. If the software is not present we need to know that it's missing and that you need it, specially if it's a software that used to be in a previous version of Puredyne but that did not make it to a new version.
Similarly we need to know if the system is ready to be used for your testing or if something still needs to be fixed. For example:
* Can you install Puredyne?
* Is the live persistence working?
* Can you boot at all?
* Do you have sound? 3D acceleration?
* Can you get online?
* etc (suggestions welcome)

### Focused stress testing

Once you have an environment that is providing the minimum standard for your testing, just use the software you are used to (your fav Pd patch, ardour session, sc code, video editing suite, inkscape orgy, etc) and check if it's working as expected:
* Is it slower than usual?
* Is it crashing more than it should?
* Can you run several instances of it and still have a relatively responsive system (if relevant to the application)?
* Can you work or use the software for a long time or it freezing after a minute, hour, day?
* etc (suggestions welcome)

### Monkey mode

Try to do something unusual to see how far your system can handle it, for example set Jack to a rather low latency and start piling up jack-rack effects in a complex feedback loop. Open Several applications at the same time, go online and open a hundred tabs in Firefox or Chromium, watch an HD movie, etc.
The point is not to prove that Puredyne will choke. It will choke. But is the choking point acceptable for you or seem normal or seem to be different (for the worse) from another system?

## General audio latency test

FIXME - What would be a good protocol to test audio latency on Puredyne and keep a database of results so that everyone can compare with each others from one version to another?

## Adopting an alpha/beta system as main

As stress testing relies on a mix of very specific subjective and objective elements, issues not covered by the tests will obviously go under the radar. This is why adopting a work in progress system can be very helpful in spotting missing software, new bugs, etc.

## Contribute to this document

Just like the rest of the Puredyne documentation, feel free to edit and modify this page, we would love to hear about specific ways to test Puredyne that are relevant to media practices.
# Puredyne/SSH into your Puredyne system

Many linux systems automatically run an SSH service so that it's possible to log in to your computer remotely, using an SSH client on some other computer.
In Puredyne this is disabled by default (because the live CD has a fixed username and password, so it would be insecure to allow just anyone to log in) - but it's easy to enable it, if you'd like:

## To enable the SSH service

The SSH daemon is prevented from running by the existence of a simple file, located at:
When the daemon launches, if that file exists then it simply gives up. So we need to do two things:
* Remove that file (or you could rename it)
* Start the SSH daemon
Here's how:

## To log in using SSH

You need to know the address of your computer (e.g. the raw IP address). If you don't know it, run this command on the machine you're going to want to log into:
and look in the output for the IP address (it'll be labelled "inet" and listed under the relevant network point, e.g. 'en0' for the first wired ethernet connection).
So, from some remote machine, you can use a graphical client or a simple command-line, assuming the ssh client is installed. Here's how to log in if the user is 'live' and the IP address is '127.0.0.1':
On a 9.11-carrot_and_coriander-DVD (booted from a USB stick), the correct username and password is "lintian" and "live".

## To disable the SSH service

Do the opposite of what we did above:
* Create that specially-named file (the file contents can be anything, or nothing)
* Stop the SSH daemon
Here's how:
# Puredyne/Stream Audio and Video
## Software
### Darkice

FIXME

### Liquid Soap

FIXME

### ffmpeg2theora

run this once:
then to stream run these two lines:
adjust size and quality (-v) down if encoding is slower than realtime and your cpu core is maxed out. go up with them if your cpu is not loaded above 50% and video is fluid but ugly. if the encoding cannot keep up with real time, you will have drops in the stream. watch the second timers in the shell - they should both be at almost the same values.

### ices2

FIXME

### FreeJ

You can stream online your video: FreeJ encodes using the Ogg/Theora codec and broadcasts to an Icecast server.
When streaming also an audio channel, you need to run also a Jack daemon and connect it to the FreeJ outputs.
While streaming, is also possible to save a local copy of the video, all realtime. Here below a script example:
<syntaxhighlight lang="text"> // Audio input is taken via Jack from other applications running
// port name buffer size samlerate
audio = new AudioJack("alsaplayer", 2048, 44100);
// tweak the values below accordingly, see Jack documentation
// Create a Video Encoder object
// values 1-100 video quality video bitrate audio quality audio_bitrate
encoder = new VideoEncoder(10, 64000, 0, 24000);
// Add the audio channel in the video encoded
encoder.add_audio(audio);
// Configure the encoder to stream over an Icecast server
encoder.stream_host("giss.tv");
encoder.stream_port(8000);
encoder.stream_title("testing new freej");
encoder.stream_username("source");
encoder.stream_password("2t645");
encoder.stream_mountpoint("freej-test.ogg");
// Register the encoder on the running FreeJ engine
register_encoder(encoder);
// Start a network stream
encoder.start_stream;
// Record the stream into a local file
encoder.start_filesave('Video/freej-test.ogg');
</syntaxhighlight lang="text">
We can paste the above code into a script and run it with freej -j stream.js
Besides tweaking this scripts for various accounts it is also possible to include it as part of a bigger FreeJ script, to mix multiple sources with text and effects and even control it from a MIDI, OSC or Joysticks...

### Gstreamer

for a sound only queue :
for a firewire video :
alternative:

## Streaming Communities and Resources
### GISS.tv

GISS is a volunteer, non-commercial network created with free software for free media. http://giss.tv
# Microsoft Office

This book applies to version 2010 of Microsoft Office.
This book applies to version 2011 of Microsoft Office for Mac. Template error. Please to correct.
Welcome to the Microsoft Office wikibook. This book aims to be a comprehensive reference for the use of Microsoft Office for Windows, Microsoft Office for Mac, and Microsoft’s Office Online and Office 365 services. While this book doesn’t teach basic computer skills or general Windows or OS X usage, this book will cover a few core techniques that complement the use of Microsoft Office. In addition, many of the concepts in this book can be applied to other office packages; however, please note that the Microsoft Office user interface is relatively unique, so if you use another office package, you’ll need to find ways of performing the same task that work in that program.

## Table of Contents
### Computing Basics

    Windows 7 vs. Windows 8
    Logging In & Out (Windows • OS X)
    File Management Techniques
    Things to Know When Saving with file extensions like docx, doc, docm and odt

### Word

    Create and Edit a Document
    Spacing and Special Characters
    Create and Edit a Flier
    Create and Edit a Research Paper in MLA format
    Create and Edit a Research Paper in APA format
    Create and Edit a Cover Letter
    Create and Edit a Resume
    Opening a Word File as Read Only
    Create a Proposal with collaboration
    Edit your Cover Letter into a form letter with mailing labels
    Create a Newsletter
    Ribbon Reference (Windows • Mac)

### Excel

    Excel Terminology
    Navigating Cells
    Working with Data
    Working with Formulas
    Making Beautiful Charts
    Printing in Excel
    Create a Workbook to Analyze your Field of Interest with Embedded Chart
    Create a Personal Budget with functions
    Create a College Expense Analysis Workbook
    Troubleshooting Excel Errors
    Loan Payment Amortization Schedule
    Create a Pivot Table
    Create a spreadsheet with lists
    Create a spreadsheet with multiple worksheets
    Excel Basic Exam

### Access

    Create a basic two table database with reports
    Create queries for a database
    Using and updating a database
    Creating Forms and Reports from multiple tables
    Creating Sub-forms
    Creating a data access point for the internet
    Reports
    Access Basic Exam

### PowerPoint

    PowerPoint Terminology
    Strategies for College Success
    Creating and Editing a Presentation
    Formatting Text Slides
    Using Graphics and Animations
    Creating a Custom Design Template
    Preparing to Deliver a Presentation
    PowerPoint Keyboard Shortcuts
    PowerPoint Tips and Tricks

### Publisher

    Create a Greeting Card
    Create a Business Card
    Create a Poster
    Create a Banner
# Python Programming/Decorators

| Previous: Idioms | Index | Next: Context Managers |
Duplicated code is recognized as bad practice in software for lots of reasons, not least of which is that it requires more work to maintain. If you have the same algorithm operating twice on different pieces of data you can put the algorithm in a function and pass in the data to avoid having to duplicate the code. However, sometimes you find cases where the code itself changes, but two or more places still have significant chunks of duplicated boilerplate code. A typical example might be logging:
In a case like this, it's not obvious how to factor out the duplication. We can follow our earlier pattern of moving the common code to a function, but calling the function with different data is not enough to produce the different behavior we want (add or multiply). Instead, we have to pass a function to the common function. This involves a function that operates on a function, known as a higher-order function.
Decorator in Python is a syntax sugar for high-level function.
Minimal example of property decorator:
The above example is really just a syntax sugar for codes like this:
Minimal Example of generic decorator:
A good use for the decorators is to allow you to refactor your code so that common features can be moved into decorators. Consider for example, that you would like to trace all calls to some functions and print out the values of all the parameters of the functions for each invocation. Now you can implement this in a decorator as follows:
Then you can use the decorator on any function that you defined by:
On running this code you would see output like
Alternately, instead of creating the decorator as a class, you could have used a function as well.
Remember it is good practice to return the function or a sensible decorated replacement for the function so that decorators can be chained.
| Previous: Idioms | Index | Next: Context Managers |
# Python Programming/Dictionaries

| Previous: Tuples | Index | Next: Sets |
A dictionary in Python is a collection of unordered values accessed by key rather than by index. The keys have to be hashable: integers, floating point numbers, strings, tuples, and, frozensets are hashable. Lists, dictionaries, and sets other than frozensets are not hashable. Dictionaries were available as early as in Python 1.4.

## Overview

Dictionaries in Python at a glance:

## Dictionary notation

Dictionaries may be created directly or converted from sequences. Dictionaries are enclosed in curly braces,
Also, dictionaries can be easily created by zipping two sequences.

## Operations on Dictionaries

The operations on dictionaries are somewhat unique. Slicing is not supported, since the items have no intrinsic order.

## Combining two Dictionaries

You can combine two dictionaries by using the update method of the primary dictionary. Note that the update method will merge existing elements if they conflict.

## Exercises

Write a program that:
* Asks the user for a string, then creates the following dictionary. The values are the letters in the string, with the corresponding key being the place in the string. https://docs.python.org/2/tutorial/datastructures.html#looping-techniques
* Replaces the entry whose key is the integer 3, with the value "Pie".
* Asks the user for a string of digits, then prints out the values corresponding to those digits.

## External links

* 5.5. Dictionaries in Tutorial, docs.python.org
* 5.8. Mapping Types in Library Doc, docs.python.org
| Previous: Tuples | Index | Next: Sets |
# Python Programming/Decision Control/Solutions

< Back to Problems
Write a program that has a user guess your name, but they only get 3 chances to do so until the program quits.
Another solution that uses the sys library.
better way