Linux Computers

buildscc | 02 Nov 2012 | | about

We have a few machines here that are running Debian Stable. To make it easier to maintain and fix them, here are the specific things that we are doing. The last time that the machines were updated is Friday, 2 November 2012.

—- They all have static IP addresses. This is configured in /etc/network/interfaces, by adding a stanza like the following. The ‘address’ line will depend on the actual static IP being used.

allow-hotplug eth0 iface eth0 inet static address gateway netmask

—- The admin account [which is ‘george’ on the main four linux machines] should be added to the ‘sudo’ group, by running gpasswd -a [username] sudo

—- Syntax highlighting in vim, which is disabled globally by default, is enabled in /etc/vim/vimrc: syntax on

—- They all have multiple aptitude sources, as configured in /etc/aptitude/sources.list

deb squeeze main deb-src squeeze main deb squeeze/updates main deb-src squeeze/updates main deb squeeze-updates main deb-src squeeze-updates main deb squeeze-backports main deb-src squeeze-backports main

—- The programs running backported are: xorg [with all dependencies— very specifically, we need the intel drivers] linux-image-3.2.0-0.bpo.2-amd64 iceweasel

—- We run the display manager ‘slim’: aptitude install slim

—- We used to be running a version of Iceweasel not in the main repo, to get an updated version. However, now that Iceweasel 10 has been backported, we’re running that.

—- We are running a more modern version of Chromium, because the one in Squeeze is 12 versions behind. So, this line was added to /etc/apt/sources.list. deb lucid main To trust that repo, we added its key manually. sudo apt-key adv –keyserver –recv-keys 4E5E17B5 This provides us with Chromium 18, and updated libvpx [vp8 support!], and one or two other minor things.

—- To make the Intel drivers dual-screen in the correct manner, the following line was added to /etc/X11/Xsession.d/95BUILDSDUALMONITOR . Obviously, this line will need to be altered based on the relative location of the monitors. #!/bin/sh xrandr –output HDMI1 –right-of VGA1

—- Printing is hard and no one understands. First, install these packages: cups system-config-printer xfprint4 Now, as root, run system-config-printer, and use “find network printer”, and add a printer at builds-clunky. Then, run xfprint4, and switch the printing selection to CUPS. Name the printer BuildsClunky, the description HP LaserJet 4350, and the location BUILDS.

—- Here is a specific list of development-related packages. Some of these require updates that will be tricky. blender [This definitely needs an update to be usable.] kicad [Version seems fine] freecad [Version seems fine] gimp [Version seems fine] netbeans [Not in the repos. Must be compiled.]

—- xscreensaver has been configured like this: It is set to “only one screensaver”, and the screensaver is always BRIGHTLY COLORED. It is set to start automatically by setting an autostart with the command xscreensaver -no-splash

—- xfce4-terminal has been configured with MY SPECIAL COLOR CONFIG, which I have tyrannically imposed on everyone. Due to its length it is on a separate page, xfce4-terminal configuration. It belongs at ~/.config/Terminal/terminalrc

—- The configuration for xfwm is on xfwm4 configuration. It belongs at ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml . Simply clobbering the old file seems not to work, but I don’t understand why.

—- Here is a list of packages that we’ve explicitly installed, that haven’t been mentioned here. Ones that are STARRED** are backported.

mesa-utils xfce4 xfce4-terminal texlive-latex-base texlive-latex-recommended texlive-latex-extra pgf gedit emacs23-nox vim nethack gimp gdb chromium-browser browser-plugin-gnash

** sl cowsay screen nethack-console tmux xscreensaver xscreensaver-data xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra xscreensaver-screensaver-bsod xscreensaver-screensaver-webcollage evince-gtk gedit openjdk-6-jre openjdk-6-jdk

Older · View Archive (146)

Meeting Minutes for 2012-10-10


  • CSAW - We ended up qualifying!
  • MIT LL CTF Lecture tonight
  • Evernote CEO gave a talk in BUILDS
  • BUILDSBOT met over the weekend to discuss chasis designs. Will meet again this weekend to discuss batteries
  • Mini Makerfaire is happening soon in summerville
  • VR Bike meeting this sunday at 1


DIY tDCS Device


The goal of the project is to build a functioning transcranial direct current stimulation device, and to study its effects on the brain.

Later stages of research might include developing and testing interactive “brain training” programs that utilize a combination of tDCS and the user’s willpower to effect long-term changes in neural activity…



Brain-Device Interface

A brain to device interface is achieved via electrodes placed on the user’s scalp. The two electrodes, the cathode and the anode, function as positive and negatives terminals to the device respectively. Studies have shown that areas under the effect of the cathode show decreased firing rates of neurons, while an opposite effect was achieved by areas under affect of the anode.

One standardized method of categorizing locations on the scalp in reference to experimental procedure is the 10-20 System.

The Device


Data Collection

Proposed flow of information between components of experimental apparatus:

    Subject-->Electrodes-->EEG board/similar "processing" (fpga/dsp?)-->DAQ board-->computer-->software---> raw data
      ^   |                                                                ^             |         \------> visualization
      |   \---------------other inputs (switches, cameras, etc)------------|             |          \-----> "quantitiative data"
      |                                                                                  |
      |                                                                                  V
      \----------------------------------------actuators/stimulators/lights/etc<----DAC Board

Data Processing

Python pyEEG sciPy MNE (In Python and C)

C bwtool (loading eeg data) FFT

Java Apache Common Math Lib Parallel Colt scientific library Jsci Jtransform Java EEG Tools

Dummy EEG Data

Python Environments

Biofeedback libraries

EEGLAB suffices for a large component of the data visualization, training, and analysis we will perform in the course of this project, but it does not have much support for biofeedback and actually serving as a scriptable BCI interface.

So, I’ve identified two programs/libraries that would be suitable for triggering computer events/input/output based on biofeedback:\


Brainbay is a windows application with a LABVIEW-like interface for signal input, processing, and I/O driving. Possible behaviors include:

  • driving mouse cursors
  • causing keyboard pressesses
  • causing parallel port I/O
  • playing sounds or MIDI tones
  • displaying images or videos

in response to certain desired EEG signals that can be found through experimentation and analysis via EEGLAB or a similar library.



However, maybe the pre-packaged capabilities of BrainBay might not be enough. Maybe we want to make a full featured video game using 3D graphics for training. Maybe we want more complex logic than what BrainBay can provide.

In this case, a combination of python/pygame, and some python-based biofeedback library might be useful. Candidates include:

Running Experiments

If scripting dialogues/testing procedures in EEGLAB proves too difficult, psychopy seems to be a wonderful scripting engine for doing just that… (runnign scripted as oppsoed to human driven experiments, of course, eliminates certain sources of experimental error, blah blah blah)


OpenVibe, developed at INRIA, is another training/control alternative that also looks like it might be able to supplant EEGLAB too….

Component devices, costs, etc


Two types: passive, active Per wikipedia/openeeg: passive = less circuitry/amplification/shittier signal quality active = more driving circuitry/higher signal quality/


PEBL: The Psychology Experiment Building Language


tDCS Overview