Difference between revisions of "Tutorials"

From dftwiki3
Jump to: navigation, search
(Processing and Kinect using Eclipse)
(Python & Docx)
 
(211 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
<google1 style="2"></google1>
 
<google1 style="2"></google1>
 
</div>
 
</div>
<meta name="keywords" content="computer science, Processing, xgrid, trolltech, qt, mysql, php, phprunner, reverse culture shock" />
+
<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,  mpi, cloud, Amazon, EC2, S3, Xilinx ISE, Coolrunner, SQLite, Proce55ing, Raspberry Pi " />
<meta name="description" content="Dominique Thiebaut's Web Page" />
+
<meta name="description" content="Dominique Thiebaut's Tutorial Page" />
<meta name="title" content="Dominique Thiebaut -- Computer Science" />
+
<meta name="title" content="Tutorials on various programming techniques" />
<meta name="abstract" content="Dominique Thiebaut's Computer Science Web pages" />
+
<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="thiebaut at cs.smith.edu" />
+
<meta name="author" content="dthiebaut@smith.edu" />
 
<meta name="distribution" content="Global" />
 
<meta name="distribution" content="Global" />
 
<meta name="revisit-after" content="10 days" />
 
<meta name="revisit-after" content="10 days" />
<meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008" />
+
<meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008,2009,2010,2011,2012,2013, 2014" />
 
<meta name="robots" content="FOLLOW,INDEX" />
 
<meta name="robots" content="FOLLOW,INDEX" />
 +
 +
<bluebox>
 +
This page contains various tutorials and recipes  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!
 +
</bluebox>
 
<br />
 
<br />
 +
<br />
 +
{| style="width:100%;"
 +
| style="width:40%;" |
 
__TOC__
 
__TOC__
 +
|
 +
[[Image:TensorFlow.png|75px]]
 +
[[Image:MoodleVPLLogo.png|75px]]
 +
[[Image:dropboxLogo.png|75px]]
 +
[[File:AWS.png|75px]]
 +
[[File:HadoopCartoon.png|75px]]
 +
[[File:AWS.png|75px]]
 +
[[Image:XgridLogo.png|75px]]
 +
[[Image:GoogleMap.png|75px]]
 +
[[Image:Kinect.jpg|75px]]
 +
[[Image:ProcessingLogo.jpg|75px]]
 +
[[Image:ShareLatexLogo.png| right|75px]]
 +
[[Image:iBookAuthorLogo.jpg|75px]]
 +
[[Image:GoogleDSPL.png|75px]]
 +
[[Image:MatPlotLib.png|75px]]
 +
[[Image:ArduinoLogo.png|75px]]
 +
[[Image:QT4Logo.jpg| right|75px]]
 +
[[Image:QtCreator.png|75px]]
 +
[[Image:Qt3Logo.png|75px]]
 +
[[Image:BoxPHPRunner.png|75px]]
 +
[[Image:MySQLLogo.png|75px]]
 +
[[File:FreePCB8.png|75px]]
 +
[[Image:XilinxLogo.gif|75px]]
 +
[[Image:BashScriptsTutorialLogo.png|75px]]
 +
[[Image:PySerial.png|75px]]
 +
[[Image:GoogleWebKitLogo.png|75px]]
 +
[[Image:Rlogo.png|75px]]
 +
[[File:PythonLogo.jpg|75px]]
 +
[[File:RaspberryPiLogo.gif|75px]]
 +
|}
  
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 
<br />
 
<br />
 
<br />
 
<br />
  
==Processing and Kinect using Eclipse==
+
<br />
[[Image:Kinect.jpg|right|100px]]
+
==TensorFlow==
{|  
+
[[Image:TensorFlow.png|right|100px]]
|-  style="background:#eeeeff" valign="top"  
+
{|
| '''Title'''
+
! Tutorial
| '''Description'''
+
! Comments
 +
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
[[Running TensorFlow App on AWS| Running TensorFlow App on AWS]]
 +
|
 +
The series of steps I use to connect to AWS to run Tensorflow apps.
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: TensorFlow References| TensorFlow Tutorials & References]]
 +
|
 +
A page with good references and tutorials on Google's TensorFlow for Machine Learning.
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Playing with the Boston Housing Data |  Playing with the Boston Housing Data]]
 
|
 
|
*[[Kinect + Processing + Eclipse | Kinect + Processing + Eclipse ]] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
Creating a Regressor for Boston Housing Data.
| A simple installation tutorial to get Eclipse all set up to run [http://www.shiffman.net/2010/11/14/kinect-and-processing/ Daniel Shiffman's demos].
 
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
|* [[Processing Skeleton Project | Skeleton Project in Processing]]
+
|
| Start with the basic: create a new Processing project in Eclipse with simple animation.
+
[[Tutorial: Binary Matcher with TensorFlow | Tutorial: Binary Matcher]]
 +
|
 +
Designing a Neural Net with TensorFlow that recognizes 5-bit binary numbers mixed with random numbers.
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Using Tensorflow with Docker | Using Tensorflow with Docker on Mac OSX]]
 +
|
 +
A short tutorial listing the steps necessary to install Tensorflow with Docker
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Setting up Tensorflow 1.3 on Ubuntu 16.04 w/ GPU support | Setting up Tensorflow 1.3 on Ubuntu 16.04 w/ GPU support]]
 +
|
 +
Just a series of steps taken to install 16.04 on a new AMD64 system, with NVIDIA GeForce GTX 960, and then install Tensorflow 1.3.0 and Python 3.5 on top.
 +
 
 
|}
 
|}
 +
<br />
 +
<br />
 +
<br />
 +
<br />
  
 +
==Moodle Virtual-Programming-Lab ([http://acceda.ulpgc.es/bitstream/10553/9773/5/EEE3753.pdf VPL])==
 +
[[Image:MoodleVPLLogo.png|right|100px]]
 +
<br />
 +
The [[Moodle VPL Tutorials | Moodle VPL Tutorials]] have now grown enough to have their own [[Moodle VPL Tutorials | page]].
 +
 
<br />
 
<br />
 
 
<br />
 
<br />
 
 
<br />
 
<br />
  
==Google's DSPL (DataSet Publishing Language)==
+
==Python &amp; Docx==
[[Image:GoogleDSPL.png|right|100px]]
+
[[Image:PythonLogo.jpg|right|100px]]
{|  
+
{|
|-  style="background:#eeeeff" valign="top"  
+
! Tutorial
| '''Title'''
+
! Comments
| '''Description'''
+
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Python &amp; DOCX | Generating word documents in Python with the docx library]]
 +
|
 +
This example takes data from a csv file where participants for a list of courses are listed, one participant by row, and name, address, and course listed in columns.  Outputs one docx file for each course, with the name of the participants nicely formated.
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Python &amp; DOCX II | Mai-merge type example with Python docx.  ]]
 
|
 
|
*[[DSPL Tutorial: First Contact |DSPL: First Contact]] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
Takes data from a csv file, where each row corresponds to one person, and a Word document containing many "blank" pages with place holders for each person, and substitutes the csv data into the place holders.  This example actually generates diploma pages, one diploma page for each person in the csv file.
| A first look at DSPL with a simple example showing how to plot two columns of numbers as a function of time (years)
 
 
|}
 
|}
 +
<br />
 +
<br />
 +
<br />
  
 +
==Dropbox/Server==
 +
[[Image:dropboxLogo.png|right|100px]]
 +
{|
 +
! Tutorial
 +
! Comments
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Simple Drobox-Based Server for iPad/iPhone| Simple OSX/Dropbox-Based Server for iPad]]
 +
|
 +
Use the instantaneous sync-ing ability of Dropbox to build a simple private server for a mobile device.  An iOS iPad is used in this example but all mobile platforms supporting Dropbox will work.
 +
|}
 +
<br />
 +
<br />
 
<br />
 
<br />
  
 +
==Amazon Web Services (AWS)==
 +
[[File:AWS.png|right|100px]]
 +
{|
 +
! Tutorial
 +
! Comments
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: So you want to run your code on Amazon?| So you want to run your code on Amazon?]]
 +
|
 +
A minimalist tutorial showing the different steps required to run a java application on an Amazon EC2 instance.  It should take you 10 minutes or so to launch an instance, upload your code, and start running it.
 +
|}
 +
<br />
 
<br />
 
<br />
  
 +
==Hadoop, StarCluster, and Amazon's AWS==
 +
[[File:HadoopCartoon.png|right|100px]]
 +
 +
{|
 +
! Tutorial
 +
! Comments
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Creating a Hadoop Cluster with StarCluster on Amazon AWS| Tutorial 1: Running a java WordCount on AWS ]]
 +
|
 +
This tutorial shows how to run the WordCount java program (from the Hadoop distribution, or user-provided) on a cluster of AWS instances organized by MIT's '''StarCluster'''.
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Tutorial: Running a Python version of WorkCount on an AWS cluster | Tutorial 2: Python WordCount on AWS]]
 +
|
 +
This tutorial is similar to the previous tutorial, and uses Hadoop's streaming facility to run python mappers and reducers
 +
|}
 +
<br />
 +
<br />
 
<br />
 
<br />
  
<br />
+
==Hadoop/MapReduce Computation at Smith College==
 +
[[File:HadoopCartoon.png|right|100px]]
 +
See the [[Hadoop/MapReduce Tutorials | Hadoop/MapReduce Tutorials]] page for up-to-date information.
  
==MatPlotLib for Python==
+
{|
[[Image:MatPlotLib.png|right|100px]]
+
! Tutorial
{|  
+
! Comments
|-  style="background:#eeeeff" valign="top"
 
| '''Title'''
 
| '''Description'''
 
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
[[Hadoop Tutorial 0 -- MapReduce in Python on the Command Line | Tutorial #0]]
 +
|
 +
Running a simple Map-Reduce Python program from the bash command line
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Hadoop Tutorial 1 -- Running WordCount | Tutorial #1]]
 +
|
 +
Running WordCount written in Java on the Smith College Hadoop/MapReduce Cluster
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Hadoop Tutorial 1.1 -- Generating Task Timelines | Tutorial #1.1]]
 +
|
 +
Creating timelines of the execution of tasks during the execution of a MapReduce program.
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Hadoop Tutorial 2 -- Running WordCount in Python | Tutorial #2]]
 +
|
 +
Running WordCount in Python on the Smith College Hadoop/MapReduce Cluster
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Hadoop_Tutorial_2.1_--_Streaming_XML_Files | Tutorial #2.1]]
 +
|
 +
Running a streaming Python MapReduce program on XML files
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Hadoop_Tutorial_2.2_--_Running_C%2B%2B_Programs_on_Hadoop | Tutorial #2.2]]
 +
|
 +
Running C++ programs under Hadoop Pipes
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Hadoop Tutorial 2.3 -- Running WordCount in Python on AWS | Tutorial #2.3]]
 +
|
 +
Running Python Map-Reduce programs with Hadoop, on AWS
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Hadoop Tutorial 3 -- Hadoop on Amazon AWS | Tutorial #3]]
 +
|
 +
Running Hadoop jobs on Amazon AWS
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Hadoop_Tutorial_3.1_--_Using_Amazon's_WordCount_program | Tutorial #3.1]]
 +
|
 +
Uploading text to S3 and running Amazon's WordCount Java program on our own data.
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Hadoop_Tutorial_3.2_--_Using_Your_Own_WordCount_program | Tutorial #3.2]]
 +
|
 +
Uploading and Running our own streaming  version of the WordCount program on AWS.
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Hadoop Tutorial 3.3 -- How Much? | Tutorial #3.3]]
 
|
 
|
*[[MatPlotLib Tutorial 1 |MatPlotLib Tutorial #1]] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
Computing the cost of maintaining a cluster of 6 MapReduce instances on Amazon's AWS
| An introduction to the '''MatPlotLib''' Python library allowing you to generate '''MatLab'''-style graphs in Python.
+
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Hadoop Tutorial 4: Start an EC2 Instance | Tutorial #4]]
 +
|
 +
Start a server on Amazon's EC2 infrastructure
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[[Setup Virtual Hadoop Cluster under Ubuntu with VirtualBox | Tutorial #5: Setting up a Virtual Hadoop Cluster]]
 +
|
 +
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
 
|}
 
|}
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
 +
 
<br />
 
<br />
 +
 +
==MPI and C Programming with StarCluster on Amazon AWS==
 
<br />
 
<br />
 
+
[[File:AWS.png|right|100px]]
==Arduino==
+
{|
[[Image:ArduinoLogo.png|right|100px]]
+
! Tutorial
{|  
+
! Comments
|-  style="background:#eeeeff" valign="top"  
+
|-  style="background:#eeeeff" valign="top"
| '''Title'''
+
|width="30%" |
| '''Description'''
+
[[Tutorial:_C_%2B_MySQL_%2B_MPI | Combining MPI and MySQL with C]]
 +
|
 +
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.
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
[[Create an MPI Cluster on the Amazon Elastic Cloud (EC2) | Create an MPI Cluster on the Amazon Elastic Cloud (EC2)]]
 +
|
 +
This tutorial presents the series of steps necessary to setup a simple MPI cluster on Amazon EC2.  This setup is used for the CSC352 seminar on ''Distributed and Parallel Computing'' taught at Smith College.
 +
|-  style="background:#eeeeff" valign="top"
 +
|width="30%" |
 +
[[Computing_Pi_on_an_AWS_MPI-Cluster | Computing Pi on a AWS MPI-cluster]]
 
|
 
|
*[[Tutorial: Introduction to the Arduino | Introduction to the Arduino]]
+
This tutorial presents the steps necessary for creating a 10-node AWS cluster with the MIT utility '''starcluster''', and then running a parallel version of the Pi-computing program.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
| 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.
 
|- style="background:#eeeeff" valign="top"
 
|*[[Tutorial: Arduino and XBee Communication | Arduino and XBee Communication]]
 
| A quick presentation of communication between an Arduino sending characters of the alphabet via an XBee to another XBee connected to a Windows PC.
 
 
|}
 
|}
  
 +
 +
 +
<br />
 +
<br />
  
 
==XGrid Programming at Smith College==
 
==XGrid Programming at Smith College==
Line 167: Line 363:
 
| XGrid
 
| XGrid
 
|}
 
|}
 +
  
 
<br />
 
<br />
 
<br />
 
<br />
 +
<br />
 +
 +
 +
==Geo-Mapping Data==
 +
[[Image:GoogleMap.png|right|100px]]
 +
{|
 +
|- style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
* [[Geo-Mapping Data using Google Charts | Geo-Mapping Data with Google Charts]]
 +
 +
| 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.
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
*[[Geo-Mapping Data using Tableau | Geo-Mapping Data with Tableau]]
 +
| Another simple set of steps needed to convert the same CSV-formatted lit of locations with city and country names into a Tableau map.
 +
|}
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
  
==Hadoop/MapReduce Computation at Smith College==
+
==Animation in Processing==
[[File:HadoopCartoon.png|right|100px]]
+
[[Image:Processing3Logo.png| right | 100px]]
See the [[Hadoop/MapReduce Tutorials | Hadoop/MapReduce Tutorials]] page for up-to-date information.
 
 
 
 
{|
 
{|
! Tutorial
+
|-  style="background:#eeeeff" valign="top"
! Comments
+
| '''Title'''
|-  style="background:#eeeeff" valign="top"
+
| '''Description'''
| width="30%" |
+
|-  style="background:#ffffff" valign="top"
[[Hadoop Tutorial 1 -- Running WordCount | Tutorial #1]]
+
|width="30%" |
 +
* [[Processing_Tutorial_--_Showing_Animated_Gifs| Aquarium with 1 fish]]
 +
| A simple sketch in Processing that creates an animation of a fish swimming in an aquarium by using the different frames of an animated gif. 
 +
|- style="background:#eeeeff" valign="top"
 
|  
 
|  
Running WordCount written in Java on the Smith College Hadoop/MapReduce Cluster
+
* [[Processing_Tutorial_--_Showing_Animated_Gifs,_Part_2 | Aquarium with a school of fish]]
|- style="background:#ffffff" valign="top"
+
| This is an extension of the [[Processing_Tutorial_--_Showing_Animated_Gifs| aquarium with 1 fish tutorial]], but it now uses a class to hold the frames for a fish.  The main program creates an array of fish object to represent the school of fish.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==Processing and  Eclipse==
 +
[[Image:Kinect.jpg|right|100px]]
 +
{|
 +
|- style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
*[[Kinect + Processing + Eclipse | Kinect + Processing + Eclipse ]]
 +
| A simple installation tutorial to get Eclipse all set up to run Shiffman's Kinect demo [http://www.shiffman.net/2010/11/14/kinect-and-processing/ Daniel Shiffman's demos].
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
[[Hadoop Tutorial 1.1 -- Generating Task Timelines | Tutorial #1.1]]
+
* [[Processing Skeleton Project | Skeleton Project in Processing and Simple Exercises]]
|
+
|
Creating timelines of the execution of tasks during the execution of a MapReduce program.
+
This tutorial assumes some basic Java programming skills.  Start with the basic: create a new Processing project in Eclipse with simple animation.
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
* [[Creating a trail of moving object in Processing| Processing Tutorial: Creating a trail behind moving objects]]
 +
|  
 +
A page presenting several options for creating a path behind animated objects.
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
 
|
 
|
[[Hadoop Tutorial 2 -- Running WordCount in Python | Tutorial #2]]
+
[[Tutorial:_Profiling_Java_Programs | Profiling a Processing Application with '''JVisualVM''']]
 +
|
 +
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).
 +
|- style="background:#ffffff" valign="top"
 
|
 
|
Running WordCount in Python on the Smith College Hadoop/MapReduce Cluster
+
*  [[Tutorial: Playing Sounds in a Separate Thread | Playing Sounds in a Separate Thread  ]]
|- style="background:#ffffff" valign="top"
+
|
 +
This tutorial shows how to create a separate thread to play sounds when various events are detected.
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
[[Hadoop_Tutorial_2.1_--_Streaming_XML_Files | Tutorial #2.1]]
+
[[Tutorial: A Model-View-Controller in Processing | A Simple Model-View-Controller (MVC) in Processing  ]]
 +
|
 +
This tutorial presents a simple model-view-controller implemented in Processing.  It displays a square network of vertices and edges forming a rectangular grid. A minimum of user-interaction is implemented, but enough to provide a guide for building more sophisticated systems.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==SQLite and Processing==
 +
[[Image:ProcessingLogo.jpg|right|100px]]
 +
{| width="85%"
 +
|- style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[Tutorial: SQLite and Processing, Part I | Tutorial #1]]
 +
|<nowiki> A simple tutorial for accessing an SQLite database from Processing.  This tutorial uses the Processing native IDE</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#eeeeff" valign="top"
 +
| [[Tutorial: SQLite and Processing, Part II | 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.
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[Introduction_to_Processing | Introduction to Processing ]]
 +
| A quick introduction to the language Processing, with some references and links.
 +
 
 +
 
 +
|}
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
<br />
 +
==MySQL and Processing==
 +
[[Image:ProcessingLogo.jpg|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[Tutorial:_Accessing_a_MySql_database_in_Java_(Eclipse)| Accessing a MySQL Server from Processing]]
 +
|<nowiki> A simple tutorial for accessing a MySQL database from Processing.  This tutorial uses Eclipse to develop the Java application.</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
 
 +
 
 +
|}
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
==Formatting Papers with ShareLatex==
 +
[[Image:ShareLatexLogo.png| right|100px]]
 +
{|
 +
|-  style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
* [[Tutorial:_Writing_a_Latex_paper_with_ShareLatex.com | Formatting research papers with ShareLatex]]
 +
 
 +
| This is a short tutorial that will get you to create a skeleton Latex document formatted for the ACM publication standard
 +
|-  style="background:#eeeeff" valign="top"
 
|
 
|
Running a streaming Python MapReduce program on XML files
+
* [[Latex Skeleton for Simple Articles and Tech Reports | A Latex Skeleton for Technical Reports]]
 +
| This skeleton is simply the ''v2-acmsmall'' package stripped of most extraneous information.  The full template can be found on the [http://www.acm.org/publications/latex_style/ ACM Latex Styles page].
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==Google WebKit (GWT)==
 +
[[Image:GoogleWebKitLogo.png|right|90px]]
 +
{|
 +
! Tutorial
 +
! Description
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: The Basics of a Simple GWT Canvas App| The Basics of a Simple GTW Canvas Web App]]
 
|
 
|
[[Hadoop_Tutorial_2.2_--_Running_C%2B%2B_Programs_on_Hadoop | Tutorial #2.2]]
+
This tutorial takes the [http://www.giantflyingsaucer.com/blog/?p=2338 giantflyingsaucer.com] very good tutorial on using an html canvas under GWT and clarifies the relationship between the different files involved in the project.
 +
|- style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
[[Tutorial: Drawing Basic Logic Gates with GWT| Drawing Logic Gates (And, Or, Not) with GWT]]
 +
|
 +
I found so little information on drawing logic gates, in particular the OR gate with its 3 arcs on the Web that I decided to post a few Java classes for drawing gates on a GWT Context2D canvas.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==iBook Author Animations and Recipes==
 +
[[Image:iBookAuthorLogo.jpg|right|100px]]
 +
{|
 +
|- style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|- style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
*[[iBookAuthor: A Skeleton Widget | A skeleton widget ]]  
 +
| This is not really a tutorial, but rather a minimal series of files one can start with to create a new widget by hand.
 +
|-  style="background:#eeeeff" valign="top"
 
|
 
|
Running C++ programs under Hadoop Pipes
+
*[[iBookAuthor: Creating a simple animation with Hype | Creating a simple animation<br />with Hype ]]
 +
| A short tutorial illustrating how to create a 2-image animation with buttons allowing the user to go from one image to the other. .
 
|- style="background:#ffffff" valign="top"
 
|- style="background:#ffffff" valign="top"
 
|
 
|
[[Hadoop Tutorial 3 -- Hadoop on Amazon AWS | Tutorial #3]]
+
* [[iBookAuthor: Javascript Calculator | Programming a Javascript Calculator Widget by Hand]]
 +
| This tutorial takes the excellent [http://www.anita-simulators.org.uk/calc/calc_example/article2_front.htm article for creating a javascript calculator] by [mailto:simon@anita-simulators.org.uk  Simon Southwell] and inserts it into the skeleton widget of this section.
 +
|-  style="background:#eeeeff" valign="top"
 
|
 
|
Running Hadoop jobs on Amazon AWS
+
* [[iBookAuthor: Converting a GWT project into a Dashboard Widget | Converting a GWT project to<br />a Dashboard Widget ]]
|- style="background:#eeeeff" valign="top"
+
| 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.
 +
|- style="background:#ffffff" valign="top"
 
|
 
|
[[Hadoop_Tutorial_3.1_--_Using_Amazon's_WordCount_program | Tutorial #3.1]]
+
* [[iBookAuthor Tutorial: Converting a GWT project into a set of Web pages | Converting a GWT project into a set of Web Pages]]
 +
| A quick and tiny recipe illustrating how to take a Google WebKit (GWT) project in Eclipse, save it as a '''tar''' archive, and then set it up as a set of Web pages on an '''http''' server.
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
Uploading text to S3 and running Amazon's WordCount Java program on our own data.
+
* [[Embedding a YouTube video in iBook Author| Embedding a YouTube video in iBook Author]]
|- style="background:#ffffff" valign="top"
+
| A simple recipe by User [https://www.youtube.com/channel/UCsm0XVwZIUB_8Wpmw6Y8J6A remoorejr] on YouTube
 +
|}
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
==Google's DSPL (DataSet Publishing Language)==
 +
[[Image:GoogleDSPL.png|right|100px]]
 +
{|
 +
|-  style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
*[[DSPL Tutorial: First Contact |DSPL: First Contact]]
 +
| A first look at DSPL with a simple example showing how to plot two columns of numbers as a function of time (years)
 +
|}
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
<br />
 +
 
 +
==MatPlotLib for Python==
 +
[[Image:MatPlotLib.png|right|100px]]
 +
{|
 +
|-  style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
| width="30%" |
 +
*[[MatPlotLib Tutorial 1 |MatPlotLib Tutorial #1]]
 +
| An introduction to the '''MatPlotLib''' Python library allowing you to generate '''MatLab'''-style graphs in Python.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==Raspberry Pi==
 +
[[Image:RaspberryPiLogo.gif | right | 125px ]]
 +
{|
 +
|-  style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
*[[Tutorial: Client/Server on the Raspberry Pi| A simple Client-Server example on the Raspberry Pi]]
 +
| 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.
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
[[Hadoop_Tutorial_3.2_--_Using_Your_Own_WordCount_program | Tutorial #3.2]]
+
*[[Tutorial: Interrupt-Driven Event-Counter on the Raspberry Pi| Interrupt-Driven Event Counting]]
 +
| 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.
 +
|-  style="background:#ffffff" valign="top"
 
|
 
|
Uploading and Running our own streaming  version of the WordCount program on AWS.
+
* [[Tutorial: Raspberry Pi communication with Processing | Raspberry Pi Communication with Processing]]
|- style="background:#eeeeff" valign="top"
 
 
|
 
|
[[Hadoop Tutorial 3.3 -- How Much? | Tutorial #3.3]]
+
This example simply takes the client of the [[Tutorial: Client/Server on the Raspberry Pi|  client-server]] tutorial of this section and replaces it with a client written in Processing 2, using communication over sockets.
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
Computing the cost of maintaining a cluster of 6 MapReduce instances on Amazon's AWS
+
* [[Tutorial: Assembly Language with the Raspberry Pi | Assembly Language with the Raspberry Pi]]
|- style="background:#ffffff" valign="top"
 
 
|
 
|
[[Hadoop Tutorial 4: Start an EC2 Instance | Tutorial #4]]
+
A collection of assembly language programs written for the ARM processor of the RaspberryPi.  The examples include printing strings, performing simple arithmetic, passing parameters to functions, by value and by reference, recursion, and activating an LED.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
 
 +
==Arduino==
 +
[[Image:ArduinoLogo.png|right|100px]]
 +
{|
 +
|-  style="background:#eeeeff" valign="top"
 +
| '''Title'''
 +
| '''Description'''
 +
|-  style="background:#ffffff" valign="top"
 +
|width="30%" |
 +
*[[Tutorial: Introduction to the Arduino | Introduction to the Arduino]]
 +
| 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.
 +
|- style="background:#eeeeff" valign="top"
 
|
 
|
Start a server on Amazon's EC2 infrastructure
+
*[[Tutorial: Arduino and XBee Communication | Arduino and XBee Communication]]
 +
| A quick presentation of communication between an Arduino sending characters of the alphabet via an XBee to another XBee connected to a Windows PC.
 
|}
 
|}
 +
 
<br />
 
<br />
 +
 
<br />
 
<br />
<br />
+
 
 
<br />
 
<br />
 
<br />
 
<br />
Line 249: Line 674:
 
|<nowiki>: Creating a simple application with VC++ 2003. </nowiki>
 
|<nowiki>: Creating a simple application with VC++ 2003. </nowiki>
 
|-  style="background:#eeeeff" valign="top"
 
|-  style="background:#eeeeff" valign="top"
|  
+
| width="30%" |
 
* [http://cs.smith.edu/~thiebaut/tutorials/QtLab2/lab2.htm Tutorial #2]
 
* [http://cs.smith.edu/~thiebaut/tutorials/QtLab2/lab2.htm Tutorial #2]
|<nowiki>: Simple signal/slot experiment with VC++ 2003. </nowiki> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+
|<nowiki>: Simple signal/slot experiment with VC++ 2003. </nowiki>  
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 
|  
 
|  
Line 290: Line 715:
 
<br />
 
<br />
 
<br />
 
<br />
==C++ with Qt4/Qt Creator==
+
==C++ with Qt4 and Qt4 Creator==
 
[[Image:QtCreator.png|right|100px]]
 
[[Image:QtCreator.png|right|100px]]
  
Line 311: Line 736:
 
<br />
 
<br />
 
<br />
 
<br />
 +
 +
==C++ with Qt5 and Qt5 Creator==
 +
[[Image:QtCreator.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator 3-Widget Hello World Application | A 3-Widget "Hello World" Application]]
 +
|<nowiki>: This tutorial introduces the Qt5 environment and the Qt Creator.  It demonstrates how to create a simple application with 3 widgets, two push-buttons and one text-edit to display "Hello World!"  </nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
 +
|-  style="background:#eeeeff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator "Hello World" Console Application | A "Hello World" Console Application]]
 +
|<nowiki>: This tutorial introduces the Qt5 environment and the Qt Creator.  It demonstrates how to create a simple console application which runs in the Terminal and outputs a simple "Hello World" message.  </nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator Debugging Window in a Splitter | Adding a Debugging Window to your App]]
 +
|<nowiki>: This tutorial uses Qt5 environment and the Qt Creator.  It demonstrates how to add a debugging window in a text-browser widget at the bottom of the App GUI.  The text-browser can be open or closed depending on whether debugging information is needed or not.  </nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
 +
|-  style="background:#eeeeff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator_Opening_Files_in_TextEdit| Using a QDialog to open Text Files]]
 +
|<nowiki>: This tutorial shows how to create a simple 2-button GUI Qt5 app that opens up a QDialog to get a file name, opens the file, reads it, and displays it in a fixed-size font QTextEdit.</nowiki>
 +
|}
 
<br />
 
<br />
 +
==iOS Development in C++ with Qt5 and Qt5 Creator==
 +
[[Image:QtCreator.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator_Bypassing Qt-Creator and using Xcode| Bypassing Qt-Creator to Push Apps to iOS Devices]]
 +
|<nowiki>: This video tutorial illustrates how to bypass Qt-Creator when this one is reluctant to push to your iOS device.</nowiki>
 +
|-  style="background:#eeeeff" valign="top"
 +
|
 +
* [[Qt5/Qt-Creator: Push Apps to iOS Device/Simulator| Pushing Qt Apps to iOS Device/Simulator]]
 +
| <nowiki>: Two video tutorials illlustrating the steps required to push Qt example apps to an iOS device or the iOS simulator.</nowiki>
 +
|}
 +
 +
 +
 
<br />
 
<br />
 
<br />
 
<br />
 +
<br />
 +
<br />
 +
<br />
 +
  
 
== PyQt3 ==
 
== PyQt3 ==
Line 337: Line 811:
  
 
==PyQt4==
 
==PyQt4==
 +
[[Image:Qt3Logo.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
[[PyQt4_Lab_1 | Tutorial #1]]
 +
|
 +
Creating a simple editor window in Qt 4.
 +
|}
 +
 +
<br />
 +
 +
<br />
 +
 +
<br />
 +
 +
<br />
 +
 +
==PyQt5==
 +
[[Image:Qt5Logo.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
[[PyQt5_Simple_Example | Simple Window with Signals &amp; Slots]]
 +
|
 +
Creating a simple window with two tabs, a button, and an edit window controlled by two buttons in PyQt5 and Qt5.
 +
|}
  
* [[PyQt4_Lab_1 | Tutorial #1]]: Creating a simple editor window in Qt 4.
 
 
<br />
 
<br />
  
Line 348: Line 853:
  
 
== PhPRunner MySql tutorials ==
 
== PhPRunner MySql tutorials ==
 
+
[[Image:BoxPHPRunner.png|100px|right]]
* [http://cs.smith.edu/~thiebaut/tutorials/PhpMySql/lab1.htm Tutorial #1]<nowiki>: A quick intro to PhpRunner and MySql. </nowiki>
+
{| width="85%"
* [http://cs.smith.edu/~thiebaut/tutorials/PhpMySql/lab2.htm Tutorial #2]<nowiki>: Playing with SQL queries. </nowiki>
+
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|
 +
[http://cs.smith.edu/~thiebaut/tutorials/PhpMySql/lab1.htm Tutorial #1]
 +
|
 +
<nowiki>: A quick intro to PhpRunner and MySql. </nowiki>
 +
|-  style="background:#eeeeff" valign="top"
 +
|
 +
[http://cs.smith.edu/~thiebaut/tutorials/PhpMySql/lab2.htm Tutorial #2]
 +
|
 +
<nowiki>: Playing with SQL queries. </nowiki>
 +
|}
 
<br />
 
<br />
  
Line 358: Line 876:
  
 
== MySql tutorials ==
 
== MySql tutorials ==
 +
[[Image:MySQLLogo.png|100px|right]]
 +
{|
 +
! Title
 +
! Description
 +
|-  style="background:#eeeeff" valign="top"
 +
| width="30%" |
 +
[http://cs.smith.edu/~thiebaut/tutorials/MySql/lab1.htm Tutorial #1] and [http://cs.smith.edu/~thiebaut/tutorials/MySql/hw1.htm exercises]
 +
|
 +
Creating tables, generating SELECT queries.
 +
|- style="background:#ffffff" valign="top"
 +
|
 +
[http://cs.smith.edu/~thiebaut/tutorials/MySql/lab2.htm Tutorial #2] and [http://cs.smith.edu/~thiebaut/tutorials/MySql/hw2.htm exercises]
 +
|
 +
Update queries, and left join operations.
 +
|-  style="background:#eeeeff" valign="top"
 +
|
 +
[[Tutorial:_C_%2B_MySQL_%2B_MPI | Combining MPI and MySQL with C]]
 +
|
 +
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.
 +
|}
  
* [http://cs.smith.edu/~thiebaut/tutorials/MySql/lab1.htm Tutorial #1] and [http://cs.smith.edu/~thiebaut/tutorials/MySql/hw1.htm exercises]<nowiki>: creating tables, generating SELECT queries. </nowiki>
 
* [http://cs.smith.edu/~thiebaut/tutorials/MySql/lab2.htm Tutorial #2] and [http://cs.smith.edu/~thiebaut/tutorials/MySql/hw2.htm exercises]<nowiki>: Update queries, and left join operations. </nowiki>
 
 
<br />
 
<br />
 +
 +
  
 
<br />
 
<br />
  
==BioInformatics Labs in Proce55ing==
+
==BioInformatics Labs in Processing==
 
[[Image:DNASequenceLogo.png |right |  350px]]
 
[[Image:DNASequenceLogo.png |right |  350px]]
  
 
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.
 
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.
  
* [[CSC334_Lab0 | Lab #0]]: Introduction to '''Proce55ing'''
+
* [[CSC334_Lab0 | Lab #0]]: Introduction to '''Processing'''
 
* [[CSC334_Lab1 | Lab #1]]: Retrieving '''DNA''' sequence from database
 
* [[CSC334_Lab1 | Lab #1]]: Retrieving '''DNA''' sequence from database
 
* [[CSC334_Lab2 | Lab #2]]: Retrieving '''protein''' sequence from database
 
* [[CSC334_Lab2 | Lab #2]]: Retrieving '''protein''' sequence from database
Line 397: Line 935:
  
 
== Creating Printed-Circuit Boards==
 
== Creating Printed-Circuit Boards==
 +
[[File:FreePCB8.png|right|100px]]
 
{| width="85%"
 
{| width="85%"
 
|-  style="background:#eeeeff" valign="top"  
 
|-  style="background:#eeeeff" valign="top"  
Line 403: Line 942:
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
 
| [[Tutorial: Printed-Circuit Boards]]
 
| [[Tutorial: Printed-Circuit Boards]]
|  With thanks to Paul Voss for his sharing his tools and secrets!  
+
|  With thanks to Paul Voss for sharing his tools and secrets!  
 
|}
 
|}
  
Line 410: Line 949:
 
<br />
 
<br />
 
<br />
 
<br />
 +
 
==Xilinx ISE and The CoolRunner II CPLD==
 
==Xilinx ISE and The CoolRunner II CPLD==
 
[[Image:XilinxLogo.gif|right|100px]]
 
[[Image:XilinxLogo.gif|right|100px]]
Line 437: Line 977:
 
<br />
 
<br />
 
<br />
 
<br />
 +
==Bash Tutorials==
 +
 +
[[Image:BashScriptsTutorialLogo.png|right|100px]]
  
==SQLite and Processing==
 
[[Image:ProcessingLogo.jpg|right|100px]]
 
 
{| width="85%"
 
{| width="85%"
 
|-  style="background:#eeeeff" valign="top"  
 
|-  style="background:#eeeeff" valign="top"  
Line 445: Line 986:
 
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
|  [[Tutorial: SQLite and Processing, Part I | Tutorial #1]]
+
|  [[CSC231_Bash_Tutorial_1| Bash Tutorial 1]]
|<nowiki> A simple approach using Processing's IDE</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
|<nowiki> Introduction to bash.  cp, cd, and directories.</nowiki>
 +
|-  style="background:#eeeeff" valign="top"
 +
|  [[CSC231_Bash_Tutorial_2| Bash Tutorial 2]]
 +
|<nowiki>History, pushd, popd, less, cat, grep.</nowiki>
 +
|-  style="background:#effffff" valign="top"
 +
|  [[CSC231_Bash_Tutorial_3| Bash Tutorial 3]]
 +
|<nowiki>Manual Pages and pipes.</nowiki>
 +
|-  style="background:#eeeeff" valign="top"
 +
|  [[CSC231_Bash_Tutorial_4| Bash Tutorial 4]]
 +
|<nowiki>Redirection.</nowiki>
 +
|}
 +
<br />
 +
 
 +
==Bash Scripts==
 +
 
 +
[[Image:BashScriptsTutorialLogo.png|right|100px]]
 +
 
 +
{| width="85%"
 
|-  style="background:#eeeeff" valign="top"  
 
|-  style="background:#eeeeff" valign="top"  
| [[Tutorial: SQLite and Processing, Part II | Tutorial #2]]
+
!width="30%"| '''Title'''
|Using Eclipse
+
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
|-  style="background:#ffffff" valign="top"
 
|-  style="background:#ffffff" valign="top"
|  [[Introduction_to_Processing | Introduction to Processing ]]
+
|  [[Kiosk display on Mac| Building a self-refreshing Kiosk on a Mac Powerbook]]
| A quick introduction to the language Processing, with some references and links.
+
|<nowiki> 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</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|- style="background:#eeeeff" valign="top"
 +
| [[Tutorial: A bit of Bash| A bit of Bash]]
 +
| A short collection of useful Bash constructs.
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[Download YouTube movies and Auto-Number Them | Download many movies from YouTube and Number them]]
 +
|<nowiki> A Bash script that downloads a series of YouTube movies and renames them on the local disk using a counter. </nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|}
  
 +
<br />
  
 +
==PySerial==
 +
[[Image:PySerial.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[PySerial Simulator| PySerial Simulator for Developing Python-to-Arduino Programs]]
 +
|<nowiki>This tutorial briefly illustrates the process of putting together a low-key Arduino PySerial simulator that can be used to develop complex Python apps that will eventually interface with Arduinos.</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
|}
 
|}
 +
<br />
  
<!--* [[Tutorial: SQLite and Processing, Part I | Tutorial #1]]: A simple approach using Processing's IDE
 
* [[Tutorial: SQLite and Processing, Part II | Tutorial #2]]: Using Eclipse
 
-->
 
 
<br />
 
<br />
 +
==R, R-Studio, and Shiny==
 +
[[Image:Rlogo.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[R Histogram & Boxplot of Grades| R-Script to generate a histogram and boxplot of student grades]]
 +
|<nowiki>This is a quick recipe for generating the histogram and boxplot of a series of grades.</nowiki>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#eeeeff" valign="top"
 +
|  [[Tutorial: HeatMap Example | HeatMap of People's Skills]]
 +
|<nowiki>This is the R-markdown of a couple recipes for generating a heat map of people's skills, as collected through documents such as CVs</nowiki>
 +
|-  style="background:#ffffff" valign="top"
 +
|  [[Tutorial: Shiny Application to Visualize Data Generated On-the-Fly | Shiny Application to Visualize Data Generated On-the-Fly]]
 +
|<nowiki>This is the R-markdown of a 5-day Compute &amp; Visualize workshop where I generated a Shiny app that takes data generated on-the-fly on a server, and plots the result in real time.</nowiki>
 +
|}
 +
<br />
 +
 +
==TKinter &amp; Python 3==
 +
[[File:PythonLogo.jpg|right|100px]]
 +
<br />
 +
<br />
 +
<br />
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
 +
[[Tutorial:TKInter Lab| TKinter Lab]]
 +
|
 +
A lab introducing TKinter as a way of creating simple GUI applications.  This lab is based on Python 3.X, but can easily adapted to Python 2.X.
 +
|}
 +
<br />
 +
<br />
 +
<br />
 +
<onlydft>
 +
==Thin Client Setup For Cendio Server==
 +
[[Image:ThinClientCendioLogo.png|right|100px]]
 +
{| width="85%"
 +
|-  style="background:#eeeeff" valign="top"
 +
!width="30%"| '''Title'''
 +
! width="70%"|'''Description'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 +
|-  style="background:#ffffff" valign="top"
 +
 +
[[Cendio Thin Client Setup| Log of setup of Cendio '''thin client''']]
 +
|
 +
A log of the setup of Cendio '''thin client''' for Smith College CS Classes.
 +
|- style="background:#eeeeff" valign="top"
 +
|
 +
[[Wyse Thin-Client Setup| Wyse Thin-Client Setup]]
 +
|
 +
Directions for using the Wyse Thin-Client.
 +
|}
 +
<br />
 +
 +
</onlydft>
 
<br />
 
<br />
 
<br />
 
<br />
Line 468: Line 1,098:
 
[[Category:Arduino]]
 
[[Category:Arduino]]
 
[[Category:BioInformatics]]
 
[[Category:BioInformatics]]
 +
[[Category:Bash]]
 
[[Category:C++]]
 
[[Category:C++]]
 
[[Category:DSPL]]
 
[[Category:DSPL]]
 
[[Category:Hadoop]]
 
[[Category:Hadoop]]
 +
[[Category:Hype]]
 +
[[Category:iBook Author]]
 
[[Category:MapReduce]]
 
[[Category:MapReduce]]
 +
[[Category:Moodle]]
 
[[Category:MySql]]
 
[[Category:MySql]]
 
[[Category:Processing]]
 
[[Category:Processing]]
 +
[[Category:PySerial]]
 
[[Category:Qt]]
 
[[Category:Qt]]
 
[[Category:software]]
 
[[Category:software]]
 
[[Category:SQLite]]
 
[[Category:SQLite]]
 +
[[Category:Latex]]
 +
[[Category:Python]]
 +
[[Category:R-Studio]]
 +
[[Category:Raspberry Pi]]
 +
[[Category:Tableau]]
 +
[[Category:TKinter]]
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]
 +
[[Category:VPL]]
 
[[Category:XBee]]
 
[[Category:XBee]]
 
[[Category:XGrid]]
 
[[Category:XGrid]]
 +
[[Category:R]]
 
<br />
 
<br />
  
  
 
<br />
 
<br />

Latest revision as of 03:07, 28 June 2018

--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, mpi, 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, 2014" /> <meta name="robots" content="FOLLOW,INDEX" />

This page contains various tutorials and recipes 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!



TensorFlow.png MoodleVPLLogo.png DropboxLogo.png AWS.png HadoopCartoon.png AWS.png XgridLogo.png GoogleMap.png Kinect.jpg ProcessingLogo.jpg

ShareLatexLogo.png

IBookAuthorLogo.jpg GoogleDSPL.png MatPlotLib.png ArduinoLogo.png

QT4Logo.jpg

QtCreator.png Qt3Logo.png BoxPHPRunner.png MySQLLogo.png FreePCB8.png XilinxLogo.gif BashScriptsTutorialLogo.png PySerial.png GoogleWebKitLogo.png Rlogo.png PythonLogo.jpg RaspberryPiLogo.gif









TensorFlow

TensorFlow.png
Tutorial Comments

Running TensorFlow App on AWS

The series of steps I use to connect to AWS to run Tensorflow apps.

TensorFlow Tutorials & References

A page with good references and tutorials on Google's TensorFlow for Machine Learning.

Playing with the Boston Housing Data

Creating a Regressor for Boston Housing Data.

Tutorial: Binary Matcher

Designing a Neural Net with TensorFlow that recognizes 5-bit binary numbers mixed with random numbers.

Using Tensorflow with Docker on Mac OSX

A short tutorial listing the steps necessary to install Tensorflow with Docker

Setting up Tensorflow 1.3 on Ubuntu 16.04 w/ GPU support

Just a series of steps taken to install 16.04 on a new AMD64 system, with NVIDIA GeForce GTX 960, and then install Tensorflow 1.3.0 and Python 3.5 on top.





Moodle Virtual-Programming-Lab (VPL)

MoodleVPLLogo.png


The Moodle VPL Tutorials have now grown enough to have their own page.




Python & Docx

PythonLogo.jpg
Tutorial Comments

Generating word documents in Python with the docx library

This example takes data from a csv file where participants for a list of courses are listed, one participant by row, and name, address, and course listed in columns. Outputs one docx file for each course, with the name of the participants nicely formated.

Mai-merge type example with Python docx.

Takes data from a csv file, where each row corresponds to one person, and a Word document containing many "blank" pages with place holders for each person, and substitutes the csv data into the place holders. This example actually generates diploma pages, one diploma page for each person in the csv file.




Dropbox/Server

DropboxLogo.png
Tutorial Comments

Simple OSX/Dropbox-Based Server for iPad

Use the instantaneous sync-ing ability of Dropbox to build a simple private server for a mobile device. An iOS iPad is used in this example but all mobile platforms supporting Dropbox will work.




Amazon Web Services (AWS)

AWS.png
Tutorial Comments

So you want to run your code on Amazon?

A minimalist tutorial showing the different steps required to run a java application on an Amazon EC2 instance. It should take you 10 minutes or so to launch an instance, upload your code, and start running it.



Hadoop, StarCluster, and Amazon's AWS

HadoopCartoon.png
Tutorial Comments

Tutorial 1: Running a java WordCount on AWS

This tutorial shows how to run the WordCount java program (from the Hadoop distribution, or user-provided) on a cluster of AWS instances organized by MIT's StarCluster.

Tutorial 2: Python WordCount on AWS

This tutorial is similar to the previous tutorial, and uses Hadoop's streaming facility to run python mappers and reducers




Hadoop/MapReduce Computation at Smith College

HadoopCartoon.png

See the Hadoop/MapReduce Tutorials page for up-to-date information.

Tutorial Comments

Tutorial #0

Running a simple Map-Reduce Python program from the bash command line

Tutorial #1

Running WordCount written in Java on the Smith College Hadoop/MapReduce Cluster

Tutorial #1.1

Creating timelines of the execution of tasks during the execution of a MapReduce program.

Tutorial #2

Running WordCount in Python on the Smith College Hadoop/MapReduce Cluster

Tutorial #2.1

Running a streaming Python MapReduce program on XML files

Tutorial #2.2

Running C++ programs under Hadoop Pipes

Tutorial #2.3

Running Python Map-Reduce programs with Hadoop, on AWS

Tutorial #3

Running Hadoop jobs on Amazon AWS

Tutorial #3.1

Uploading text to S3 and running Amazon's WordCount Java program on our own data.

Tutorial #3.2

Uploading and Running our own streaming version of the WordCount program on AWS.

Tutorial #3.3

Computing the cost of maintaining a cluster of 6 MapReduce instances on Amazon's AWS

Tutorial #4

Start a server on Amazon's EC2 infrastructure

Tutorial #5: Setting up a Virtual Hadoop Cluster

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





MPI and C Programming with StarCluster on Amazon AWS


AWS.png
Tutorial Comments

Combining MPI and MySQL with C

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.

Create an MPI Cluster on the Amazon Elastic Cloud (EC2)

This tutorial presents the series of steps necessary to setup a simple MPI cluster on Amazon EC2. This setup is used for the CSC352 seminar on Distributed and Parallel Computing taught at Smith College.

Computing Pi on a AWS MPI-cluster

This tutorial presents the steps necessary for creating a 10-node AWS cluster with the MIT utility starcluster, and then running a parallel version of the Pi-computing program.




XGrid Programming at Smith College

XgridLogo.png

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
  • Introduction to the XGrid Part I: Generating histograms in parallel.
Perl
  • Introduction to the XGrid Part II : Creating a pipeline.
Perl
C
Perl
Perl
Perl
  • A pipeline in Perl: this version uses a graphical utility to create the batch file.        
Perl
PList Format
Python
Qt C++
XGrid






Geo-Mapping Data

GoogleMap.png
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.




Animation in Processing

Processing3Logo.png
Title Description
A simple sketch in Processing that creates an animation of a fish swimming in an aquarium by using the different frames of an animated gif.
This is an extension of the aquarium with 1 fish tutorial, but it now uses a class to hold the frames for a fish. The main program creates an array of fish object to represent the school of fish.





Processing and Eclipse

Kinect.jpg
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).

This tutorial shows how to create a separate thread to play sounds when various events are detected.

This tutorial presents a simple model-view-controller implemented in Processing. It displays a square network of vertices and edges forming a rectangular grid. A minimum of user-interaction is implemented, but enough to provide a guide for building more sophisticated systems.





SQLite and Processing

ProcessingLogo.jpg
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.





MySQL and Processing

ProcessingLogo.jpg
Title Description         
Accessing a MySQL Server from Processing A simple tutorial for accessing a MySQL database from Processing. This tutorial uses Eclipse to develop the Java application.                         





Formatting Papers with ShareLatex

ShareLatexLogo.png
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.






Google WebKit (GWT)

GoogleWebKitLogo.png
Tutorial Description

The Basics of a Simple GTW Canvas Web App

This tutorial takes the giantflyingsaucer.com very good tutorial on using an html canvas under GWT and clarifies the relationship between the different files involved in the project.

Drawing Logic Gates (And, Or, Not) with GWT

I found so little information on drawing logic gates, in particular the OR gate with its 3 arcs on the Web that I decided to post a few Java classes for drawing gates on a GWT Context2D canvas.




iBook Author Animations and Recipes

IBookAuthorLogo.jpg
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.
A quick and tiny recipe illustrating how to take a Google WebKit (GWT) project in Eclipse, save it as a tar archive, and then set it up as a set of Web pages on an http server.
A simple recipe by User remoorejr on YouTube




Google's DSPL (DataSet Publishing Language)

GoogleDSPL.png
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

MatPlotLib.png
Title Description
An introduction to the MatPlotLib Python library allowing you to generate MatLab-style graphs in Python.






Raspberry Pi

RaspberryPiLogo.gif
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.

A collection of assembly language programs written for the ARM processor of the RaspberryPi. The examples include printing strings, performing simple arithmetic, passing parameters to functions, by value and by reference, recursion, and activating an LED.




Arduino

ArduinoLogo.png
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.





C++ with Qt 4

QT4Logo.jpg
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 and Qt4 Creator

QtCreator.png
Title Description         
: Creating a simple console Qt4 application with Qt Creator.          
: Access a MySql database and read the contents of a table.





C++ with Qt5 and Qt5 Creator

QtCreator.png
Title Description         
: This tutorial introduces the Qt5 environment and the Qt Creator. It demonstrates how to create a simple application with 3 widgets, two push-buttons and one text-edit to display "Hello World!"          
: This tutorial introduces the Qt5 environment and the Qt Creator. It demonstrates how to create a simple console application which runs in the Terminal and outputs a simple "Hello World" message.          
: This tutorial uses Qt5 environment and the Qt Creator. It demonstrates how to add a debugging window in a text-browser widget at the bottom of the App GUI. The text-browser can be open or closed depending on whether debugging information is needed or not.          
: This tutorial shows how to create a simple 2-button GUI Qt5 app that opens up a QDialog to get a file name, opens the file, reads it, and displays it in a fixed-size font QTextEdit.


iOS Development in C++ with Qt5 and Qt5 Creator

QtCreator.png
Title Description         
: This video tutorial illustrates how to bypass Qt-Creator when this one is reluctant to push to your iOS device.
: Two video tutorials illlustrating the steps required to push Qt example apps to an iOS device or the iOS simulator.








PyQt3

Qt3Logo.png


Title Description         
Tutorial #1 : Creating a simple form with PyQt.                          









PyQt4

Qt3Logo.png
Title Description         

Tutorial #1

Creating a simple editor window in Qt 4.





PyQt5

Qt5Logo.png
Title Description         

Simple Window with Signals & Slots

Creating a simple window with two tabs, a button, and an edit window controlled by two buttons in PyQt5 and Qt5.





PhPRunner MySql tutorials

BoxPHPRunner.png
Title Description         

Tutorial #1

: A quick intro to PhpRunner and MySql.

Tutorial #2

: Playing with SQL queries.




MySql tutorials

MySQLLogo.png
Title Description

Tutorial #1 and exercises

Creating tables, generating SELECT queries.

Tutorial #2 and exercises

Update queries, and left join operations.

Combining MPI and MySQL with C

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 Processing

DNASequenceLogo.png

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 Processing
  • 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
    • E Coli sequence in FASTA format
    • A good tutorial ( pdf ) on Processing by Josh Nimoy, from NYU.




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

FreePCB8.png
Title Description         
Tutorial: Printed-Circuit Boards With thanks to Paul Voss for sharing his tools and secrets!





Xilinx ISE and The CoolRunner II CPLD

XilinxLogo.gif
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 Tutorials

BashScriptsTutorialLogo.png
Title Description         
Bash Tutorial 1 Introduction to bash. cp, cd, and directories.
Bash Tutorial 2 History, pushd, popd, less, cat, grep.
Bash Tutorial 3 Manual Pages and pipes.
Bash Tutorial 4 Redirection.


Bash Scripts

BashScriptsTutorialLogo.png
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                         
A bit of Bash A short collection of useful Bash constructs.
Download many movies from YouTube and Number them A Bash script that downloads a series of YouTube movies and renames them on the local disk using a counter.                          


PySerial

PySerial.png
Title Description         
PySerial Simulator for Developing Python-to-Arduino Programs This tutorial briefly illustrates the process of putting together a low-key Arduino PySerial simulator that can be used to develop complex Python apps that will eventually interface with Arduinos.                         



R, R-Studio, and Shiny

Rlogo.png
Title Description         
R-Script to generate a histogram and boxplot of student grades This is a quick recipe for generating the histogram and boxplot of a series of grades.                         
HeatMap of People's Skills This is the R-markdown of a couple recipes for generating a heat map of people's skills, as collected through documents such as CVs
Shiny Application to Visualize Data Generated On-the-Fly This is the R-markdown of a 5-day Compute & Visualize workshop where I generated a Shiny app that takes data generated on-the-fly on a server, and plots the result in real time.


TKinter & Python 3

PythonLogo.jpg




Title Description         

TKinter Lab

A lab introducing TKinter as a way of creating simple GUI applications. This lab is based on Python 3.X, but can easily adapted to Python 2.X.





...