Tutorials
--D. Thiebaut 16:02, 18 April 2010 (UTC)
<meta name="keywords" content="computer science, Processing, iBooks Author, Google DSPL, MatPlotLib, Arduino, Raspberry Pi, Xgrid, Trolltech, Qt, Hadoop, MapReduce, C++, Qt Creator, PyQt3, PyQt4, mysql, php, phprunner, bioinformatics, i386 assembly language, cloud, Amazon, EC2, S3, Xilinx ISE, Coolrunner, SQLite, Proce55ing, Raspberry Pi " /> <meta name="description" content="Dominique Thiebaut's Tutorial Page" /> <meta name="title" content="Tutorials on various programming techniques" /> <meta name="abstract" content="Dominique Thiebaut's tutorial pages covering various topics including computer science, Processing, iBooks Author, Google DSPL, MatPlotLib, Arduino, Xgrid, Trolltech, Qt, Hadoop, MapReduce, C++, Qt Creator, PyQt3, PyQt4, mysql, php, phprunner, bioinformatics, i386 assembly language, cloud, Amazon, EC2, S3, Xilinx ISE, Coolrunner, SQLite, and Proce55ing." /> <meta name="author" content="dthiebaut@smith.edu" /> <meta name="distribution" content="Global" /> <meta name="revisit-after" content="10 days" /> <meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008,2009,2010,2011,2012,2013" /> <meta name="robots" content="FOLLOW,INDEX" />
This page contains various tutorials for getting things done with different software tools. Whenever I need to learn something, I teach myself how to use the new tool, but quickly forget it, unfortunately. From this experience I have learned that it requires less time for me to write a tutorial as I go along the first time, so that the second time I don't have to reinvent the wheel again. I try to make the tutorials informative and helpful so that others can benefit from them as well. Enjoy!
Contents
- 1 Hadoop/MapReduce Computation at Smith College
- 2 Geo-Mapping Data
- 3 Processing and Eclipse
- 4 SQLite and Processing
- 5 Formatting Papers with ShareLatex
- 6 iBook Author Animations
- 7 Google's DSPL (DataSet Publishing Language)
- 8 MatPlotLib for Python
- 9 Raspberry Pi
- 10 Arduino
- 11 XGrid Programming at Smith College
- 12 C++ with Qt 4
- 13 C++ with Qt4/Qt Creator
- 14 PyQt3
- 15 PyQt4
- 16 PhPRunner MySql tutorials
- 17 MySql tutorials
- 18 BioInformatics Labs in Proce55ing
- 19 Assembly Crash Course
- 20 Creating Printed-Circuit Boards
- 21 Xilinx ISE and The CoolRunner II CPLD
- 22 Bash Scripts
Hadoop/MapReduce Computation at Smith College
See the Hadoop/MapReduce Tutorials page for up-to-date information.
Tutorial | Comments |
---|---|
Running WordCount written in Java on the Smith College Hadoop/MapReduce Cluster | |
Creating timelines of the execution of tasks during the execution of a MapReduce program. | |
Running WordCount in Python on the Smith College Hadoop/MapReduce Cluster | |
Running a streaming Python MapReduce program on XML files | |
Running C++ programs under Hadoop Pipes | |
Running Hadoop jobs on Amazon AWS | |
Uploading text to S3 and running Amazon's WordCount Java program on our own data. | |
Uploading and Running our own streaming version of the WordCount program on AWS. | |
Computing the cost of maintaining a cluster of 6 MapReduce instances on Amazon's AWS | |
Start a server on Amazon's EC2 infrastructure | |
This tutorial is a list of steps taken to create a working Hadoop Cluster. The system is setup on an Ubuntu desktop with an 8-core processor running Ubuntu. The virtual servers are setup using VirtualBox |
Geo-Mapping Data
Title | Description |
|
A very simple set of steps taken to convert a somewhat buggy CSV-formatted list of locations containing city and country names into an interactive Geographical Map showing the number of entries in the list corresponding to a given city. |
Another simple set of steps needed to convert the same CSV-formatted lit of locations with city and country names into a Tableau map. |
Processing and Eclipse
Title | Description |
A simple installation tutorial to get Eclipse all set up to run Shiffman's Kinect demo Daniel Shiffman's demos. | |
This tutorial assumes some basic Java programming skills. Start with the basic: create a new Processing project in Eclipse with simple animation. | |
A page presenting several options for creating a path behind animated objects. | |
This tutorial quickly introduces VisualVM (which is included in Sun's JDK) for profiling a Processing application running on Eclipse (or in its default IDE). |
SQLite and Processing
Title | Description |
---|---|
Tutorial #1 | A simple tutorial for accessing an SQLite database from Processing. This tutorial uses the Processing native IDE |
Tutorial #2 | This tutorial is similar in its goal to Tutorial #1, but it uses Eclipse as the IDE, requiring the setup of the SQLite libraries and class files in the Eclipse project. |
Introduction to Processing | A quick introduction to the language Processing, with some references and links.
|
Title | Description |
|
This is a short tutorial that will get you to create a skeleton Latex document formatted for the ACM publication standard |
This skeleton is simply the v2-acmsmall package stripped of most extraneous information. The full template can be found on the ACM Latex Styles page. |
iBook Author Animations
Title | Description |
This is not really a tutorial, but rather a minimal series of files one can start with to create a new widget by hand. | |
A short tutorial illustrating how to create a 2-image animation with buttons allowing the user to go from one image to the other. . | |
This tutorial takes the excellent article for creating a javascript calculator by Simon Southwell and inserts it into the skeleton widget of this section. | |
A quick and tiny tutorial illustrating how to take a Google WebKit (GWT) project and convert it into a Dashboard widget ready for export into an iBook. |
Google's DSPL (DataSet Publishing Language)
Title | Description |
A first look at DSPL with a simple example showing how to plot two columns of numbers as a function of time (years) |
MatPlotLib for Python
Title | Description |
An introduction to the MatPlotLib Python library allowing you to generate MatLab-style graphs in Python. |
Raspberry Pi
Title | Description |
|
A simple client-server example illustrating how to control a simple data exchange between a laptop (a mac in this instance) and a Raspberry Pi. |
This example shows how to count events with a Raspberry Pi using user-level interrupts. The tutorial ends with suggestions to further increase the resolution and accuracy of this setup. | |
This example simply takes the client of the client-server tutorial of this section and replaces it with a client written in Processing 2, using communication over sockets. |
Arduino
Title | Description |
|
An in-class introduction to the Arduino. Not useful if not accompanied by in-class presentation. Refer to the Arduino Web site if working on your own. |
A quick presentation of communication between an Arduino sending characters of the alphabet via an XBee to another XBee connected to a Windows PC. |
XGrid Programming at Smith College
These tutorials and examples are taken from the pages I maintain for the XGrid working group at Smith College. More information can be found in the Smith XGrid page.
Title | Environment/Language |
|
Command Line |
XCode | |
Python | |
Python | |
Python | |
|
Perl |
|
Perl |
|
C |
|
Perl |
|
Perl |
|
Perl |
|
Perl |
PList Format | |
Python | |
Qt C++ | |
XGrid |
C++ with Qt 4
Title | Description |
---|---|
: Creating a simple application with VC++ 2003. | |
: Simple signal/slot experiment with VC++ 2003. | |
: Creating an application from the console (without IDE). | |
: Using a Python script to generate the project around a .ui file. | |
: Adding a debug window and facility to a form. | |
: The implementation of a memory module for a computer simulator. | |
: Using a QTableWidget to show data in a tabular form. | |
: A simple listView model/view example (taken from Qt's doc) | |
: A model/view implementation of a 2 dimensional array | |
: Launching a subprocess... |
C++ with Qt4/Qt Creator
Title | Description |
---|---|
: Creating a simple console Qt4 application with Qt Creator. | |
: Access a MySql database and read the contents of a table. |
PyQt3
Title | Description |
---|---|
Tutorial #1 | : Creating a simple form with PyQt. |
PyQt4
- Tutorial #1: Creating a simple editor window in Qt 4.
PhPRunner MySql tutorials
- Tutorial #1: A quick intro to PhpRunner and MySql.
- Tutorial #2: Playing with SQL queries.
MySql tutorials
Tutorial | Comments |
---|---|
Tutorial #1 and exercises |
Creating tables, generating SELECT queries. |
Tutorial #2 and exercises |
Update queries, and left join operations. |
A tutorial showing how to run an MPI program written in C that walks directories, grab image files, identify them with 'ImageMagick to get their width and height, and enters the information in a MySQL database. |
BioInformatics Labs in Proce55ing
These labs were created as an introduction to Bioinformatics using the language Processing. Some of them are very short. Others require some amount of programming.
- Lab #0: Introduction to Proce55ing
- Lab #1: Retrieving DNA sequence from database
- Lab #2: Retrieving protein sequence from database
- Lab #3: Aligning sequences in Proce55ing
- Lab #4: Finding repeats in DNA sequences with Proce55ing
- Lab #5: Finding repeats in DNA sequences using a Web-server
- Lab #6: Playing with FoldIt!
- Lab #7: Sequence Logos with Proce55ing
- Lab #8: Sequence Logos on the Web
- Lab #9: Where/How do I get proteins?
- Lab #10: Finding the secondary structure of a protein
- Miscellaneous Links and Resources
Assembly Crash Course
This is a one-evening crash-lab on assembly language. This is a good introduction to the 80X86-family assembly for students with no background in assembly, and taking a microprocessor-based course.
Creating Printed-Circuit Boards
Title | Description |
---|---|
Tutorial: Printed-Circuit Boards | With thanks to Paul Voss for his sharing his tools and secrets! |
Xilinx ISE and The CoolRunner II CPLD
Title | Description |
---|---|
Lab #1: Schematics: Simple gates | A first lab/tutorial illustrating how to create a digital circuit from schematics and testing its behavior with the ISim simulator. |
Lab #2: Verilog | Lab 2 in the series. The same 2-bit adder, but this time in Verilog. |
Lab #3: Sequential Circuit Schematics | A 3-flip-flop sequential circuit activating two blinking lights and behavior simulator. |
Lab #4: 4-Bit Adder in Verilog | Lab 4 in the series. We use two modules to build a 4-bit adder made of four full-adders. |
Xilinx ISE 13.4 Installation Guide | Extensive installation guide for ISE 13.4 on Windows 7 PCs |
Bash Scripts
Title | Description |
---|---|
Building a self-refreshing Kiosk on a Mac Powerbook | A Bash script that watches when a new movie has been updated on a server, and automatically downloads it and plays it in a continuous loop, in full-screen mode on a Mac Powerbook |