Wednesday, June 12, 2013

Finally over: PC Lab Period of Reconstruction at the High School!

UPDATE: 6/12/13
Here's an EMail I just sent to tech about stuff we are fixing in 429:
"Recap of The GOOD, The BAD and The UGLY:

THE UGLY: 1st priority
I CANNOT install anything on the ftp server at (Room 429 Server)
I CANNOT install anything on the ssh server at (Room 429 Server)
I CANNOT print to the HP Color LaserJet 3500 (Room 429 Printer for Teacher PC and Student PCs)

THE BAD: 2nd priority
I CANNOT use KVM - I need a new KVM or extra Monitor/Mouse/Keyboard combo for the Servers (Room 429 Servers)
I NEED to add WiFi on to connect to BWSDOT1X in addition to the wired LAN (Room 429 Teacher PC)
I CANNOT open on (Room 429 Teacher PC)

THE GOOD: Thank you!
I CAN edit ESchool Attendance and Grades (Room 429 Teacher PC)
I CAN edit Edmodo Assignments (Room 429 Teacher PC)
I CAN edit SAGE Worksheets (Room 429 Teacher PC)
I CAN edit (Room 429 Teacher PC)
I CAN upload to (Room 429 Teacher PC)
I CAN upload to (Room 429 Teacher PC)
I CAN download from (Room 429 Teacher PC)
I CAN record/render with (Room 429 Teacher PC)
I CAN listen to (Room 429 Teacher PC)
I CAN install Ubuntu Software Packages (Room 429 Teacher PC and Student PCs)
I CAN print to Xerox Phaser 4510N (Room 429 Printer for Teacher PC and Student PCs)
I CAN login to the servers on campus and off campus (Room 429 Servers)

A. Jorge Garcia
Applied Math, Physics and CS
2013 NYS Secondary Math PAEMST Nominee"  

UPDATE: 5/15/13
Wow, that was the quickest reinstall ever! The room is more or less back to normal (see masthead pic above). If you want to see preSandy pic goto or to see it on my background!

I installed Ubuntu 12.04 on every PC + IDLE + VPytohn + WINE + VTI + SAGE. On the Teacher PC: I added openssh-server, chrome, chromium, VLC, SmartNotebook 11, libdvdread4, jdk and jre as well as avconv, a BlueTooth Tablet and a USB Mic for ScreenCasting. openjava-6-jdk (javac, java, javadoc, appletviewer) and icedtea worked great at home, but I could not get them to work at school. Also, I need jre/icedtea for KeepVid, Screencast-o-matic and Jmol. BTW, I needed libdvdread4 for our AP Math Movie Marathon!

NB0 - Ubuntu has Python 2.7 installed by default

NB1 - to install on Ubuntu 12.04

sudo apt-get install idle

NB2 - to install VPython on Ubuntu 12.04:

sudo apt-get install python-visual

sudo apt-get install libgtkglextmm-x11-1.2-dev

NB3 - alternate NB2:

run vpythonxxx.exe under WINE!

I setup all the backgrounds, proxy servers and printers. On the Teacher PC, I point Firefox to Edmodo, Chrome to eSchool and Chromium to SAGE.

We've been having networking issues of late. I set up automatic IPV4 over DHCP the first day we were back and all was well. If the networking issues of the past few days don't clear up, I may have to install openjava for APCS on every Linux box and not even use openssh. We already run Python/IDLE/ this was for CSH. Next week I start a SAGE project in AP Calculus BC. I may have to set up local SAGE servers too? I tried setting up static IPs with no joy either!

I finally broke down and installed jdk on every Linux box in the room so we could start LACS2013!

(1) d/l from
jdk*.gz 32bit or 64 bit as needed
(2) goto appropriate dir:
cd /usr/local
(3) copy jdk*.gz to this dir:
sudo cp ~/Downloads/jdk*.gz .
(4) untar jdk*.gz:
sudo tar -xvf jdk*.gz
(5) add /usr/local/jdk1.7.0_21/bin:
sudo gedit /etc/environment 
(6) test with:
source /etc/environment
which javac
(7) reboot:
sudo reboot

I had to use 32bit Ubuntu on the Teacher PC for SmartNotebook to work. I also had to downgrade the right side of the room to 32bit and wine1.2 as wine1.4 was buggy!

Once the networking issues are fixed, I may setup openssh on every PC so I can control ifconfig remotely instead of using crontab to turn off Ethernet when I'm at the SmartBoard.


We are finally moving back to 429 Tuesday 5/7/13 just over a month after Sandy hit! Here's the new 429:

(Wednesday 3/20)
Tech decided to re-image some of my Student Stations last night, so I promptly got out my Unbuntu 12.04 64bit USB Drives and reinstalled everything. It's a very simple, bare bones install plus WINE for VTI and IDLE for Turtle Graphics. I also had to set up the ethernet proxy and printers not to mention some minor preferences.

(Thursday 3/21)
The Teacher Station was also reimaged. I booted that box up with a 32bit Ubuntu 12.04 CD and did the same installation . I have to use 32bit as SmartNotebook does not work well in 64bit. I also installed chrome for ESchool. 

(Friday 3/22)

Also on the Teacher Station, I configured avconv for ScreenCasting and I installed SmartNotebook. I added drivers for playing DVDs and MP4s too including main sources, apt-get update, apt-get upgrade, apt-get install ubuntu-restricted extras. 

(Monday 4/1 - after break)

I will also add sshd, JDK and user accounts for APCS and maybe even JRE for jmol and keepvid to name a few reasons for JRE.

(Thursday 3/21)
In the mean time, I had to use WimpDoze all day! Period 1 5HBC and Period 9 4H was all about SmartBoarding. I used during Period 3 4R. I used during Period 8 CSH to write and execute code. Last, but not least, we used to run our Chess960V3 and to play a Chess960 tournament in class!


BUMP! I'm moving this post up to remind myself of things I still have to do to imporve our new room. See "Notes To Self" below.

BUMP!!BUMP!! Before and after pictures below. The first picture shows the condition of our new room after about a week of clean up after we came back from Super Storm Sandy (11/14/12).

This Second picture is after 2 months of cleaning up, installing Linux, getting flat screens and losing external speakers plus extra wires, etc (1/7/13).

BUMP!!!BUMP!!!BUMP!!! All items in my ToDo list (note to self) below are finally complete!!!

BUMP!!!!BUMP!!!!BUMP!!!!BUMP!!!! The one thing in the ToDo list still giving me trouble is crontab. I'm trying to get it to block the internet during Math classes as I'm usually at the front of the room at the SmartBoard. During Computing classes I'm at the Teacher Station in the back of the room projecting what I type on the SmartBoard. When I'm in the back of the room I can see the students' desktops and know if they are on task. In anycase, Computing classes need internet access so I can share files with them! So, the problem with crontab is that I made it too complicated. It wasn't working at first as I made some entries in non-chronological order (see corrected file below ToDo list). Another issue is that some students have gotten wise to this and simply change the system clock to a different period!

Since Hurricane Sandy, I've been re-installing every PC I can find! It's been a really rough couple of weeks. Ever since we came back after Veterans' Day, I've been trying to fix our new room. This room used to be a resource room that was not really maintained by anyone and was a shambles when I first found it. BTW, it's really hard to re-install a lab when every period another class comes in! 

So, here's an updated version of 
explaining what I did in my new room: 

STUDENT BOXES (pc1-pc28 in Room 120) = 
64bit Ubuntu + SAGE + WINE + VTI 

My students need SAGE for Computer Science Honors. Other classes can use SAGE as a calculator in addition to VTI83, VTI89 or VTI92.

TEACHER BOX (pc29 in Room 120) = 
32bit Ubuntu + SAGE + WINE + VTI 
plus: JRE for and 3D graphs in SAGE, VLC and libdvdread4 to view *.mp4s and dvds, Chrome for gradebooking and, and SmartNotebook for SmartBoarding! I had to down-grade the OS to 32bit since SmartNotebook does not work well in 64bit.

SERVER BOX  (none in Room 120) = 
32bit Ubuntu + JDK + openSSH (no more telnet or ftp - just ssh, sftp and scp) 

I don't have a dedicated server running 24x7 anymore in Room 120. Neither will the new server be available off campus. I'm simply adding jdk and sshd to the teacher box so my students can login to save their java files for APCS during class. I may add sshd to the student boxes so I can easily control their boxes remotely and copy files over the LAN.

Step 1) Live CD (32bit or 64bit Ubuntu Desktop 12.04 LTS)
Boot Ubuntu click install, answer on-screen questions and run install. Some of the PCs could not boot from CD, so we also used bootable USB. One machine will not boot either way. So, I wonder what I can do to install Linux on that box? Make sure to make Student Stations boot without a passwd (unlike Teacher Stations and Servers) since the user passwd is also the root passwd and I'm not giving that out! Also, make the box name and the userid the same so box name shows on top right of screen after boot up: 
-students = PC1-PC28
-teacher/server = shadowfax

Step 2) Partitions
Most of these Phenom II Quad-cores had an open 50GB partition, so I did not have to re-partition the hdds. A couple of PCs did not have said partition, so I left them alone. I may re-partition those at a later date. I had to setup a dual-boot install as I'm sharing the room with several teachers using Windows. After install was complete I had to issue the following command lines to make Windows the default boot partition:
sudo gedit /etc/default/grub
sudo update-grub

Step 3) Ethernet
-when the install process is done, reboot and remove the CD
-once the PC reboots and you get to the desktop, I used to right click the vertical arrow icon on the top right and edit the Ethernet interfaces. However, static IPs with ipv6 were already configured. So, I left DHCP on automatic for a change! Here's what I sued to do for future reference:
    eth0 set to auto DHCP (proxy and passwd needed for internet on school LAN)
    eth1: ip = 10.5.129.x (private Linux LAN)
            mask =
            gw =
            dns =
-test intranet connections pinging to (new server)
-internet connections will be tested later (via proxy and passwd) when downloading jre*.gz, jdk*.gz, sage*.lzma and smart*.deb files.

Step 4) System Preferences and System Administration (minimal)
set appearance (as desired)
set brightness (as desired)
set network proxy (
set network printer (

Step 5) SAGE
I had the students download the SAGE *.lzma file I installed Ubuntu 12.04 with this in mind, as I saw a precompiled compressed SAGE folder for that version of Ubuntu. Then I showed them how to move the file to their home directories and extract it. To use sage all they need to do is open a terminal, cd to the sage directory and run ./sage -n. Now, we won't have to crash every SAGE server online anymore. We may need a bash script on the desktop for this!

Step 6) JRE - optional (see NOTE below)
Install jre1.7.0_09 as a Firefox plugin
-use firefox to download latest jre*.gz file (either 32bit or 64bit) from to /usr/lib/firefox-addons/plugins
-open a terminal and 
    cd /usr/lib/firefox-addons/plugins
    tar zxvf jre*.gz
    cd ~/.mozilla
    mkdir plugins
    cd plugins
    ln -s /usr/lib/firefox-addons/plugins/jre1.7.0_09/lib/i386/
    ln -s /usr/lib/firefox-addons/plugins/jre1.7.0_09/lib/amd64/
-test firefox with "about:plugins" as the url to see that jre was plugged in!

Step 7) WINE + GAMES
-install WINE from Ubuntu Software Center or using dpkg
-install games from Ubuntu Software Center
-sudo chmod 700 /usr/games/*
-add VTI folders to Desktop

-install optional software like VLC, handbrake, sshd, Chromium and games via Ubuntu Software Center, aptitude+proxy, synaptic, or author sites (such as *.debs)
-on the servers, sudo chmod 700 /home/* to secure user files. Careful, if you install vsftp, you need to undo that for the ftp files: sudo chmod 755 /home/ftp or noone will be able to use anonymous ftp!
-on the servers, install openssh (sshd) and, optionally, vsftp (use vsftp.conf from I don't use anonymous ftp servers much anymore as I backup everything on a USB drive and share files on youtube, blogspot, slideshare, pastebin, programr and sage.
-on the servers, install the jdk in /usr/local and add the directory containing java, javac, javadoc and appletviewer (/usr/local/jdk1.7.0_09/bin) to /etc/environment as per instructions from
-on the server, addusers!

Notes To Self: 
I have everything more or less done except (todo list in bold):

(1) (done) SAGE needs an executable bash script on the desktop for every PC so students can easily start up a notebook(). 
UPDATE (12/1/12) I added an executable BASH script on each desktop called SAGE with the following contents (after simplifying the name of the sage dir):
cd ~/sage
./sage -n

(2) (done) I still need to add WINE.
UPDATE (12/1/12) WINE is on all student PCs.

(3) (done) I still need to add VTI.

UPDATE (12/2/12) VTI is on all student PCs.

(4) (done) PC2 did not have a free partition. 
UPDATE (12/3/12) I repartitioned these since we needed more stations.

(5) (not doable) PC19 did not have a free partition. I could not repartition this hdd. UPDATE (12/4/12) Partitioning tool cannot read how much space is used on the WIN7 partition, so I can't repartition this drive.

(6) (done) PC6 won't boot via CD or USB. So, how do we install Ubuntu on that machine? 
UPDATE (12/7/12) I tried a different USB port and all was well!

(7) (done) So, I have SAGE, VTI83 and VTI89 on each desktop. I need to add the unit circle background too! 
UPDATE (12/14/12) I have 4 calculators on 1 desktop. Must be a record of some kind!

(8) (done) What about Game Day???
UPDATE (12/21/12) We just set up a Tremulous server again! We lost February Break due to Super Storm Sandy. So, we'll set up BZFlag or OpenArena or StarCraft I (under WINE) for the break in March.

(9) (done) I need to figure out why Screencast-O-Matic (SOM) records and plays back screencasts, but will not render *.mp4 files. 
UPDATE (1/2/13) Firefox in Ubuntu 12.04 is doing something weird with JRE that's messing up encoding *.mp4s. IDK, what the problem is. Maybe I have to install some restricted Linux apps? So, I finally broke down and installed RecordMyDesktop (RMD) from the Ubuntu Software Center (USC). I've been avoiding this as it's really hard to set up a Mic. I finally had to install Skype from USC in order to get pulse audio working. Then, I enabled "pulse" instead of "DEFAULT" in the input device tab under the advanced tab in RMD. Also, you must resist the temptation to enable "encoding on the fly!" This saves time since you don't have to encode the *.ogv file after class. However, when I enabled this option, the video and audio were out of sync!  IE: don't enable encoding on the fly as audio and video won't sync. Also, RMD loses the recording if it's not encoded right away (unlike SOM). BTW, In my first screencast for YouTube using RMD, the audio cut out at 8:49 for some reason. Either I hit the mute button on the mic while recording or there was a problem when RMD encoded in *.ogv format or there was a problem uploading to YouTube where the file is converted to *.mp4 or *.flv. IDK what went wrong, but its too soon to give up on RMD! UPDATE 1/9/13 All is well with RMD! All I had to do was reduce the audio and video quality from 100% to 50% and today's recording encoded perfectly. Still, encoding on the fly is out of sync, but we'll live without that! UPDATE 1/16/13 Well, all is not well with RMD as it loses audio near the end of any recording over 10 or 20 minutes. RMD is a GUI front end for ffmpeg. So, I thought I'd use that directly from the command line. However, I find that ffmpeg is being depricated for avonv. I tried the following executable bash script today. A 20 minute video encoded on the fly to under 90MB and converted well on YouTube!
cd ~/Desktop
avconv -f alsa -i plughw:1,0 -f x11grab -r 30 -s 1280x800+0+0 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4 -y temp.mp4

(10) (done) Don't forget about: 
sudo chmod 700 /usr/games
UPDATE 1/29/31 I finally got around to doing this. Just in the nick of time too. I'm being observed tomorrow. All I need is for someone to be playing gnomine during my observation while I'm at the SmartBoard!

(11) (cancelled) I will add sshd to students boxes so I can easily share files from the teacher station or debug a student station remotely.
UPDATE 1/29/31 I don't really need sshd right now. I used to have it installed for a native Linux Cluster using public authenticated ssh to run MPI. We are using a live Linux CD solution for the cluster this year: pelicanHPC or BCCD. Also, I used sshd to copy files to students' desktops. However, I share files via edmodo, youtube, slideshare, pastebin, programr and sage now.

(12) (done) Don't forget about: 

sudo gedit /etc/crontab
UPDATE 1/19/13 I had a little problem with this step. It seems that Ubuntu 12.04 does not assign "eth0" as the default name of the ethernet card on the mother board. I had to search for eth0 and replace with ethXX in crontab on most of my Linux boxes! Also, you can schedule anything down to the minute only, not second. Further, if there's even one typo, the crontab file is ingnored completely! Here's the new crontab:

NOTE If you are not using SOM and you use Tachyon instead of JMol for 3D graphs in SAGE and you aren't running any other Java Applets in Firefox (such as, you need not install JRE on the Teacher Station at all!

HTH, good luck with your Linux boxes!

No comments:

Post a Comment