Sunday, November 22, 2009

More Shoutouts to come...

Thanks to Jack U, Fred O, and Brian D-G.  Nor do I want to forget to mention alkisg and sbalneav as well!  More details to come!

Trevor Advanced GCoS this Summer

Well, I've been quite lame at publishing posts to this project blog since July and am going about looking at some of the old ones polishing them a bit, then publishing them.  One thing I want to do for a LONG time is recognize the efforts of Trevor Blanton throughout this summer, from the start of the summer when we first met in Professor Paul's office to the end of the summer when most everything was set up on the server.

Trevor biked over to my house a couple times every week, working for a couple to several hours each time, attacking and solving 1 challenge after another.  I learned many things about the command line interface this summer from him, as well as learning more about Ubuntu and LTSP in general.  Equally important to the intellectual aid was the morale support his determination provided.  Neither I nor GCoS would be at this point if it weren't for his support.  Thanks!

His setup got a bit friendlier as the summer progressed--at least better for his back!

Wednesday, November 04, 2009

Starting and Stopping the CmapServer

One can stop CmapServer using AdminTool. To get AdminTool just download the CmapServer software from the IHMC site. The only thing you need from the folder is the AdminTool application.

Rodrigo from IHMC fame told me how to start the CmapServer and stop it from the command line interface. First ssh into the server running the CmapServer. Get to the right location and run the command mentioned shortly. To get to the right place I need to 'sudo su' since I installed as root.  Here are the commands: 
  • sudo su
  • cd /root/IHMC_CmapServer
  • nohup ./bin/CmapServer &
  • (then it replies:)
  • root@xyz:~/IHMC_CmapServer# nohup: ignoring input and appending output to `nohup.out'
  • (and inserts a blank line and it is then that I press the enter key again and I'm back to the prompt!)
    And to stop it you need to first find out the CmapServer process ID, as a regular user:
    • ps -Af | grep -i CmapServer
    • (it won't be obvious which number is the PID. The first word of output will be 'root'. right after that is the PID#. Also, there will be a line for the actual 'grep' process--ignore that line.)
     Then to stop it using the just-discovered process id:
    • sudo kill -9 PID (where you type in the process id # in place of 'PID')
    • (for example, 'sudo kill -9 1286)
      To make configuration adjustments you need to first become root (because the directory containing all of these files in inside the 'root' directory), then open the file with an editor such as nano:
      • sudo su
      • nano /root/IHMC_CmapServer/bin/serverconfig.txt
      To reinstall update cmapserver go to correct VZ: ssh -2 -c blowfish -X user@ipaddress, and:
         1. Make sure that echo $DISPLAY returns localhost:10.0  If it doesn't try running...
         2. set DISPLAY=:10.0; export DISPLAY (not sure if sudo or sudo su is needed)
         3. Then stop CmapServer
         4. Then run, sudo /root/IHMC_CmapServer/bin/update
         5. Then it should nicely do the x-term thing and walk you through it!

      Sunday, November 01, 2009

      Hiding the 'user' and 'news' and 'events' folders in plone

      This was such a cool thing I've needed to do for a while on my Plone sites. Thanks to sfulmer for this info!

      From: New Mexico, USA
      Registered: 2006-12-07
      Posts: 27

      To hide tabs:

      From the Plone Control Panel, go the the Zope Management Interface.
      Click portal_properties, then navtree_properties
      In the field 'IdsNotToList', enter the ids of the folders for which you do not want to generate tabs (one item per line). The ids of the folders I removed are: Events, Users and News are: events, Members and news, respectively.
      Click 'save changes'

      sfulmer also adds you can:
      turn off automatic tab generation altogether and define tabs in portal_actions in the ZMI. To set a default page for a folder, use the 'display' content menu, click 'change content item as default view'

      Tuesday, September 22, 2009

      Process of setting up server--from start

      In case this is useful at some future point...
      1. Boot from Alternate CD, at install screen, select F4, then from menu selected install LTSP server, Chose eth1 as the 100 MB NIC. Chose UTC time/Central, chose 'guided, use entire disk' for partitioning. Went through steps and restarted.
      2. Booted into the new system, update manager, installed and rebooted.
      3. Tested thin client boot and worked.
      4. Added extra sources:
      5. Added more sources:
      6. Added more sources: This last one I didn't yet install (kept boxes in sources 'unchecked'.
      7. I did update with the "system/update manager" and there were install issues with the "ltsp-server-standalone" it didn't want to update well. Through irc stgraber said: try through the command line interface: sudo apt-get dist-upgrade. and things went perfectly. Really, I think the problem was the ldm.
      8. I used Synaptic to install sun-java6-jre I think it was called, and then sun-java6-plugin.  Looks like I didn't need to install this for CmapTools as CmapTools installs its own runtime environment.  However, this was helpful for Flash.  Next time go to Ubuntu/LTSP pages at
      9. ...

      Wednesday, July 29, 2009

      Install CmapTools in chroot for LocalApp

      This is a big accomplishment. Thanks to Ahmuck, ace_suares, mhall119|work and ogra, not to mention Tom Marble and 1 blog on the internet that I already lost track of. Here are the directions to install CmapTools on a chroot so that it works as a local app.

      (First, move the .bin file to chroot root: /opt/ltsp/i386/ then make a directory there at /opt/ltsp/i386/IHMC_CmapTools.  My permissions for that directory are 777)

      Make X session work, type in terminal:
      1. xhost +
      2. sudo su
      3. export DISPLAY=:0
      Then to make it work for root, too.
      1. This needs to be installed where the root that will be running the shell script is located--the root in the chroot. Use this, still as root)
      2. cp /home/dgroos/.Xauthority /opt/ltsp/i386/root
      3. cp /home/dgroos/.Xauthority ~/
      4. exit (gets you out of the root account--this is important!)
      Now you have to do some stuff to be able to install it in chroot--this is dangerous magic...

      1. sudo mount -t proc proc /opt/ltsp/i386/proc
        sudo mount --bind /tmp /opt/ltsp/i386/tmp
        sudo mount --bind /dev /opt/ltsp/i386/dev
        sudo mount --bind /home /opt/ltsp/i386/home
        sudo cp /opt/ltsp/i386/etc/passwd /opt/ltsp/i386/etc/passwd.bak
        sudo cp /opt/ltsp/i386/etc/group /opt/ltsp/i386/etc/group.bak
        sudo cp /etc/passwd /etc/group /opt/ltsp/i386/etc
        sudo chroot /opt/ltsp/i386/ su $SUDO_USER

      and now you will be able to X-session in the chroot to hearts content. To install cmaptools I had already (before starting any command on this page) moved the cmaptools bin file into the chroot root folder (but can be done afterwards as well). So, I cd'ed into that folder and ran this command to initiate the install script: sh LinuxCmapTools_v5.03_04-07-09.bin. It launched the graphical user interface, I selected the "advanced" install and when it got to the page asking where to install it I typed in: /usr/lib/IHMC_CmapTools which remember is from the chroot's perspective. I also assigned the logs to go into /var/logs or something, but maybe that was wrong--I'll find out.


      1. exit (in other words, you've got to get out of being the root user)
        sudo mv /opt/ltsp/i386/etc/passwd.bak /opt/ltsp/i386/etc/passwd
        sudo mv /opt/ltsp/i386/etc/group.bak /opt/ltsp/i386/etc/group
        sudo umount /opt/ltsp/i386/home
        sudo umount /opt/ltsp/i386/dev
        sudo umount /opt/ltsp/i386/tmp
        sudo umount /opt/ltsp/i386/proc

      Cool, Ay?

      Finally, I added both CmapTools and /usr/lib/IHMC_CmapTools/bin/CmapTools in the lts.conf file with sudo gedit /var/lib/tftpboot/ltsp/i386/lts.conf. Finally, I rebuilt the image with sudo ltsp-update-image to get those changes I had done into the image that gets loaded into the thin client at boot time.

      Next step is to get it to boot as a local app!
      And typing this into terminal did it...
      • ltsp-localapps /usr/lib/IHMC_CmapTools/bin/CmapTools
      or... put this in for the command in a launcher' properties:
      • xprop -root -f LTSP_COMMAND 8s -set LTSP_COMMAND "sh /usr/lib/IHMC_CmapTools/bin/CmapTools"


      Here were install options as shown in install log:
      User Interactions

      #Installation Type

      #Choose Install Folder

      #Choose Link Folder


      Did get this error at very bottom of log (non-fatal):
      Status: ERROR
                                Additional Notes: ERROR - java.lang.NullPointerException

      Wednesday, July 22, 2009

      Trevor at work

      The first job Trevor had this summer was to make the server you see here in my basement available over the internet so that people could work on it from afar.  I had gotten a permanent ip address from Qwest for this purpose.  Their tech people and web help pages were un-helpful and even discouraging--they said that I couldn't use the IP address for a web/ssh server. They were proven wrong by Trevor who did some port forwarding and now the server, which is on my home LAN, can be accessed via the internet.  Trevor's giving a break to his back in this picture--ergonomics not quite what they ought to be :-)

      Sunday, July 12, 2009

      Meeting with Professor Paul and Trevor

      As the summer wore on, so did the hours spent in front of the computer. Sure there was progress but extrapolating its trajectory wasn't encouraging. I knew I really needed Linux help... This is not to say that I hadn't been receiving tons of great help from the #edubuntu irc, edubuntu user and devel lists, nonetheless I needed something more.

      I e-mail Paul Imbretson, a professor at the University of Minnesota to ask for ideas or support for the server setup, suggesting that perhaps he knew a U of M student who might be interested in a service learning project... I got Professor Imbretson's name from Haftom, someone I had met at a Teknie event. Long story shorter. I heard about their cool partnership with North HS Angela and her science class' partnership with a town in Nigeria where they are working on building relationships--and wind power. It ended with Trevor and I creating a quick google doc to organize and help coordinate our work. It has a grid of tasks to be done with related columns. It also has a log at the bottom to record efforts. This was hugely encouraging!

      Saturday, July 11, 2009

      GCoS PD--Day 3

      1. We looked at Eddie's Standards web. It doesn't have the connecting phrased between the bubbles--just connecting lines--it isn't a concept map, instead it's a 'web'. In contrasting the colored bubbles with the blank background bubbles at the back, we discussed what words to use in these questions. We concluded that, by avoiding jargon (science vocabulary words) these maps of the standards can server as guides to students (and families) before studying a unit. In other words, a student can often get an idea of what they will be studying before having studied--not possible with the regularly worded standards. Here is how his web looked when he brought it in. I'll repost in a while when he has further-improved them.
      2. Luckily, there is an instructional framework which one can use to grow a community of (novice) scientists: Progressive Inquiry. I introduced it with the help of this diagram which comes from this page, and overview of many of the ideas I've presented are on that page, with links to further pages. Lots of great work about knowledge building in science classroom comes from this research group.
      3. I then introduced a software tool called FLE3 which scaffolds knowledge building in a classroom. This is a tool that has a fairly steep learning curve, so Eddie had the idea of making poster-sized printout of each of the pages students encounter, posting them in the classroom, making them ever-present and available for public reference as needed.
      4. "To teach with a tool we need to be users of the tool." This statement is a general principle of GCoS classrooms. We are starting a FLE3 knowledge building discussion with the context (note we are using a question): What does a classroom community of novice, KB scientists act, look and sound like? We've posted some sub-questions (threads) such as: 1. What specific student behaviors are we looking for? (James); 2. What does KB mean? (Eddie); 3. What is the role of questions in a KB community? (me); 4. "Experimenting".
      5. We learned about using FLE3. Numbers 6-8 below show some of the significant ideas we had...
      6. ... Start a Context (Unit of study?) with an essential-type question. It provides a rallying point around which one can assess if one is addressing the topic... or not.
      7. ... The very first time a class uses FLE3 the first thread ought to be one in which users can experiment with the FLE3 tool. Thus the thread mentioned above, "Experimenting". In this thread, users would not need to use any of their attention thinking about questions, answers, knowledge types, etc, but instead ask, 'what does this button do?', 'how do you get to this screen?', etc. Providing a space like this in the first (maybe second also?) context will decrease ineffective posts in the rest of the content-oriented threads.
      8. ... At the VERY first interaction students have with FLE3, I'd copy one from a previous year, add a generic student account and allow students to enter this copy of the FLE3 and explore it--seeing how it was used.
      Our homework for the next meeting is to use the FLE3 from our home and build some knowledge about GCoS.

      GCoS PD--Day 2

      1. We started by looking at Eddie's concept map of his 'values, mission and goals'. Our talk was split between the map and the use of the software, CmapTools. Considering that Eddie's been using CmapTools for over a year now and I've used it for better than 3, it's interesting to note that there's still much to refine in our practice.
      2. When James arrived we continued the discussion of developing scientific habits of mind. (Here's a map of some. Please don't be dismayed with the security warnings your browser will give when trying to see this map--we have not yet purchased one of those, 'security certificates' which causes the browser to not give these security warnings.)
      3. This was intertwined with our talk of Knowledge Building epistemology. I commented that a metaphor that comes to my mind when I think of knowledge building was a circle of people batting a beach ball around, each person adding their own spin to the 'knowledge object', seeking to improve it with each interaction. I said that this metaphor breaks down when you consider that the beach ball (ie the knowledge object) doesn't really change in important ways.
      4. Then Eddie came up with the idea that you could do this activity in class but each person would add a sticky note with one of his/her values written on it! That was cool! We batted this idea around a bit more, each improving the idea. Here's the final state of this knowledge object (class activity): Each person gets a piece of masking tape, writes what he/she would like to propose as a shared value for our class, and as the beach ball bounces between all class members, slaps it on the ball, improving the object. After this, as a class we would analyze the entries (the second half of this post) on the ball and decide which ones we wanted for our community.
      5. We practiced collaborative editing of concept maps. As we did this we discussed values and accomanying norms that follow from them while synchronously editing maps. James changed something on Eddies map of his values/mission/goals and we came up with the idea that one ought to be sensitive when changing another person's ideas! I shared ideas of the layout of bubbles on a concept map as I re-arranged the layout of Eddies map, though not changing what was written nor where the links were attached. Some of the principles of layout are: Group Clusters and have some white space around them, aim for palmate structure and not serial or 'chain' structure, avoid crossing lines...
      6. Thinking about the tools we had to master as well as teach our students (ie novice scientists) to master, Eddie mentioned the need for a basic set of instructional flow maps, such as this one, that would tell how to use these tools. I need to identify this set of basic instructions...
      7. Our homework was to create kid-friendly webs of the MN state science standards, converting each sub-standard into jargon-less questions such as this one on the nature of science that I made when I taught 8th grade.

      Monday, July 06, 2009

      GCoS PD--Day 1

      We're getting together for some professional development. I'm leading, we're all learning (creating knowledge in our community)
      1. A major goal for this day was to initiate software tools-- joining and getting proper access to the GCoS site, this coming year's Class site, FLE3 and CmapTools on the CmapServer. This process was time consuming and a bit bumpy but also was successful.
      2. A second major goal was to do the "epistemological discussion". Numbers 3-8 are the points covered in this discussion. I argued...
      3. ... That theories/models (such as Dalton's theory of the atom or constructivism) do NOT tell how the real thing works, just like the map isn't the territory.
      4. ... That as our theories/models/maps develop they don't become ever-more accurate descriptions of 'reality'. Not everyone agreed with this. I asserted that these theories/models become more successful at solving the problems we care about, using the tools and 'habits of mind' available to the community.
      5. ... That, for many (hundreds?) of years, at least in the western world, we've consider the mind like a container and knowledge as a thing to acquire: the "Mind as Metaphor" and "Acquisition Metaphor of learning". Both traditional "Transmitter-Receiver" and more modern "Constructivism" models of learning are within the Acquisition Metaphor of Learning.
      6. ... That in the last 20 some years another model of learning has been/is being developed that looks at learning differently. That it sees learning as 'authentic participation' in a community of practitioners such as plumbers or scientists. Knowledge in this view is not a thing, but an action w/in a community. This model has gained great favor these last years.
      7. ... That there has been a great argument between these 2 camps, the acquisition and participation groups. It has been somewhat resolved by accepting the, 'map isn't the territory' arguement. That, each metaphor or model of learning is useful to solve particular educational problem--of course neither handles all challengers.
      8. ... That more metaphors have been created that can be grouped together and called a, 'Knowledge Creation" metaphor. This theory of learning subsumes the acquisition and participation models. The version of this metaphor that I'm using as my main framework for Growing Communities of Scientists is the "Knowledge Building" model. Note, this Wikipedia article is becoming less useful and more ideological over time but it is an introduction.
      9. Finally, we ending on talking about developing community values. We briefly looked at the AAAS site which shows Benchmarks--we looked at chapter 12, "Habits of Mind". Our homework was to make a concept map on the shared server of our values, goals and mission and then too read chapter 12, at the high school level, and start to consider a concept map showing shared values, attitudes and beliefs of the scientist community.
      All in all, we got a lot done, did tons of talking/sense-making in the 3+ hours we were together. Yes, I was more than satisfied :)

      Saturday, July 04, 2009

      Setting up a GCoS Edubuntu thin client server

      The GCoS Edubuntu Server needs a variety of capabilities. The following lists them . If you see ** at the start of the line, it shows that capability set up.
      1. **Run Edubuntu on Jaunty Jackalope (9.0.4).
      2. **Use the built-in thin client server--LTSP 5.
      3. Use Gnome Watchdog to auto kill stale processes.
      4. Use the LocalApps solution for the following programs: Firefox 3.5, CmapTools, JRE, JVM, OpenOffice Suite.
      5. Use Webmin for management of server. It is necessary to install and change port number from 10000 to something like... PSM, before installing and configuring iTALC which also wants to use this port.
      6. An effective replacement for the standard, "Users and Groups" system application.
      7. Remote Desktop solution using NoMachine's NX Free Edition For Linux --DEB
      8. Management of thin client machines with iTALC.
      9. Management of users desktop environments with Sabayon (currently in Jaunty Beta)
      10. Easy to use software to view user's Firefox 'histories'. The presence of an effective accountability system proactively discourages abuses.
      11. Setup printers on local LAN.
      The district has agreed to install or to consider to install the following capabilities:
      1. Squid Proxy
      2. SquidGuard to manage user internet capabilities. level1, level2, level3
      3. LDAP integration with district AD.
      Firefox details:
      1. Java apps such as at the phet site, need to work well.
      2. Flash content needs to work well.
      3. Quicktime content needs to work well.
      4. Firefox management program would be great--control things like not allowing students to erase history, change proxy settings, etc. It would be awesome to tie in this management system with the level1, level2, level3 permission management system.
      Additional Resources
      1. Edubuntu users mailing list archives
      2. Edubuntu developers mailing list archives
      3. Re-building the chroot
      4. Curent LTSP on line admin reference guide
      5. Ubuntu documentation on LTSP --lots of links to other pages, mainly.
      6. LocalApps on Jaunty LTSP--this is a key doc. Refers to related page
      7. LTSP user forums in sourceforge
      8. iTALC site
      9. iTALC on LTSP--pending
      10. Sabayon
      11. Gnome Watchdog
      Hardware Description
      1. Servers: 2, dual-core Xeon processors, 2.8 GHz, 3 GB RAM, RAID5, running Ubuntu Jaunty Server edition w/LTSP enabled.
      2. Clients: 2 kinds: Pentium III 933 MHz, at least 384-512 MB RAM, 100 MB NIC/ Pentium IV, 2.4 MHz, 512 MB RAM, 100 NIC.

      Monday, June 29, 2009

      New server, new iTALC, new webmin... No! I mean...

      ..."New server, new webmin (change port to something like 10010), then new iTALC". Learned my lesson, didn't I :-). I followed the instructions from the Ubuntu wiki on installing iTALC on LTSP, seems to work for jaunty as well as hardy. Also, didn't add root to any groups! Both iTALC and webmin seem to be working well.

      ::::Update--iTALC not working :(

      Saturday, June 27, 2009

      Ways to think about homework

      I just finished reading Rick DuFour interesting post on thinking about homework. He commented on the ironic situation where someone learned all that was expected of him-her but then failed the class because of a refusal to do homework. He recommends that one decide the purpose of providing homework and go from there. The following is copied from his post though I recommend reading the whole thing:

      Therefore, I submit the following propositions:

      1. Homework should be given only when the instructor feels it is essential to student learning. If, for example, the teacher believes that by practicing a skill and receiving prompt and specific feedback students will learn at higher levels, homework is very appropriate and should be assigned.
      2. The teacher then has an obligation to monitor the homework carefully and provide individual students with precise feedback based on their specific needs.
      3. If the work is deemed essential to a student’s learning, that student should not have the option of taking a zero but instead should be required to complete the work. This necessitates a coordinated, schoolwide approach to responding when students do not complete their work because there are limits as to what an individual teacher can require. The schoolwide response should be timely, directive (non-invitational), systematic (not left to the discretion of individual teachers), and should never require the student to be removed from new direct instruction. (For examples of such a systematic approach, see Whatever It Takes: How Professional Learning Communities Respond When Kids Don’t Learn by DuFour, DuFour, Eaker, and Karhanek and/or Pyramid Response to Intervention: RTI, Professional Learning Communities, and How to Respond When Kids Don’t Learn by Buffum, Mattos, and Weber.)

      How might I implement these ideas in my practice...? We'll I like the idea in his second scenario:
      ...that students will not be required to continue practicing each day when they have demonstrated they are mastering the content. There will be daily homework for all students for the first two weeks of school, at which time a unit test will be given. Students who earn an A or B on the test will not be required to complete daily homework during the next unit. For them, homework will be optional. All other students will be required to continue doing their daily practice.
      The idea of the "Martial-Arts Metaphor"--which I'll develop soon--could work smoothly with this idea. Perhaps I would provide a pre-test of the skill, also, so students could opt out of the after-school practice if they had previously mastered the content in some other context. However, this undermines the coercive effects mentioned by DuFour: a student is motivated to do well on a unit/summative test so as to avoid required HW for the next unit.

      Hmmm... thinking this through. Let's say someone doesn't pass the summative/formative 'test' of measuring mass, for example. Well, we are moving on to the next skill of making concept maps. Well, assuming that no one passes the concept mapping pretest everyone will have that HW to do. However, what intervention then does one use for the students who didn't master measuring mass? Additional HW? After-School-Required-Study? One can feel the workload creaking...

      I agree with DuFour's perspective on being explicit on one's goals for HW, requiring it/or not (and not permitting "0's") and making it a useful learning tool by providing students with providing students with individually-useful feedback. Nonetheless, providing useful feedback on students' HW adds up to a LOT of time outside of class. I know this as I've attempted it sometimes. Adapting/creating good curriculum not to mention preparing materials for this instruction already is taking a lot of out-of-class time.

      In addition to calling families, communicating/coordinating teammates, and all the administrative requirements to teaching, this HW concept is sounding questionable in the practicality dept.

      Thursday, June 25, 2009

      Back to CmapServer issue--not found on 'list of Places'

      For some reason our CmapServer doesn't show up on West Florida University Directory of Places. It should. I've been working on this issue for a couple of months, back-burner style, and have gotten a few replies. I'm in the middle of trouble shooting it with Doug Roberts and Rodrigo Carvajal's help. Here are a couple of cool commands I learned to check out the status of network ports:
      • netstat -nat (This will list active internet connections, servers and established.
      • netstat -at |grep LISTEN ( This lists the ____ that have the state "LISTEN".
      • nmap -sT -O localhost (This determines which ports are listening for TCP connections from the network
      The saga will continue...

      Wednesday, June 24, 2009

      NX Client and me

      NoMachine's remote access software is great, the best, to my experience. I can sit at any computer with NXclient and open a window from a remote computer that's running NXserver, and the experience is about as good as if I were actually sitting in front of that remote computer. This is is important for me so as I can access my server (soon to be servers) from at home or behind locked doors. Of course, I know there are people who prefer the (potentially) powerful, linear, command-line interface to the 2/3 dimension access provided by a Graphical User Interface. That's fine, I like my GUI.

      As I mentioned in my last post, my NXclient access broke in working on the firefox localapp: advance on one front, retreat on another...

      So, I spent 5+ hours today trying to regain access. I won't go into gory details but finally when I removed a hidden file from my file system
      • sudo rm -r Users/admin/.nx
      as well as the 2, non-hidden main directories:
      • sudo rm -rf /usr/NX
      • sudo rm -rf /Applications/NX*.app
      and reinstalled, I was able to gain access again. The, 'creating another system user' fix did not work nor did the re-doing and copying the access key.

      [Also--I got all hidden files (the ones with . at the start of the file name like, .letter.txt), to show up on my file system by these 2 commands:]
      • defaults write AppleShowAllFiles TRUE
      • killall Finder
      And make them hide again by setting the TRUE back to FALSE.

      Localapps on Jaunty -- if it doesn't work...

      One of the main reasons I upgraded to Jaunty from the LTS Hardy was that localapps--running applications of your choice on the 'thin client'--is almost built into this version. However, like most things that are trivial to someone who really knows Linux, it can be an ordeal for one who doesn't. Thanks to pmatulis who first started answering my questions and then a huge thanks to alkisg who worked with me for over 3 hours to successfully get firefox running as a localapp!

      I'm going to recreate the directions alkisg provided which supplement the fine directions at In other words, do the instructions on that page first and if it doesn't work, then use these additional instructions, here. These directions are a 20-20 hindsight version, of course, not exactly as they happened.

      I followed the directions at this above address, booted my client, opened firefox and wondered, how do I know if firefox is running in localapp mode? I now know that when firefox is working as a localapp it will say "Mozilla Firefox (on ltsp20)" or something similar, on the title bar of the window. However, one can also 'log into the client' (open console mode) and check there. If you have intrepid or jaunty you can do this:
      • open terminal on the thin client, type 'ltsp-localapps xterm' which gives a local xterm.
      • type, 'ps ax | grep fire' and check the output--a list of 'processes' that are currently running on the local client that have the text string, 'fire' in them. It will always show the, 'grep fire' process or whatever you 'grepped'. In my case, it showed that firefox was not running locally. What to do?
      To try to open firefox as a localapp alkisg said to go back to the regular terminal window in GNOME and type:
      • ltsp-localapps firefox
      I did and it opened up firefox as a localapp! However, the goal is to be able to just open firefox from the GNOME menu to launch it as a localapp. Since it didn't do that there must have been a problem in the lts.conf file I had earlier made. alkisg found the error--the top line of the /var/lib/tftpboot/ltsp/i386_w_localapps/lts.conf file needs to be exactly like this:
      Upon adding this, saving and rebooting the client, firefox booted from the menu!!! I've added this info to the ubuntu wiki page mentioned above.

      The next step was getting firefox to be able to access the internet. Now that firefox was being run on client instead of on the server I had to set up NAT on the server to act as the 'middle man' between the client and the internet. (How does Squid/SquidGuard fit in here?) Now, alkisg had written a script that sounded pretty robust which would do all this stuff. However, since it has parts in Greek and well, Greek is unfortunately greek to me I couldn't avail myself of this help. I typed in the following commands at the terminal prompt on the server as root. (note this interrupts network access but is re-established. It did break my NX access :( and haven't been able to get it to work since)
      • invoke-rc.d dhcp3-server stop
      • invoke-rc.d NetworkManager stop
      • invoke-rc.d networking stop
      • sed -i -e 's/192\.168\.0\.254/' /etc/network/interfaces
      • invoke-rc.d networking start
      • invoke-rc.d NetworkManager start
      • invoke-rc.d dhcp3-server start
      (for further info on the 'sed' lines if you want, check out this page in the section: iptables Masquerading)
      then I ran:
      • sed -i -e "s/^# By default this script does nothing\./# By default this script does nothing\.\n\niptables -t nat -A POSTROUTING -j MASQUERADE/" /etc/rc.local
      • sed -i -e 's/^[[:space:]]*##*[[:space:]]*net.ipv4.ip_forward[[:space:]]*=[[:space:]]*1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
      • sysctl -p
      • iptables -t nat -A POSTROUTING -j MASQUERADE
      • ltsp-update-sshkeys
      • ltsp-update-image -a i386_w_localapps
      --actually, I typed this last command as: ltsp-update-image which updated the original chroot, not the copy I had made per the instructions on: and that resulted in issues--I still couldn't log into my client after restart. to help troubleshoot the problem I added the following 2 lines right under the line that said [Default] in the above-mentioned lts.conf file:
      • SCREEN_02=shell
      • SCREEN_07=ldm
      This allows me to open the console on the thin client by pressing Alt+Ctrl+F2 and back to normal screen by pressing Alt+Ctrl+F7.
      After doing the "ltsp-update-image -a i386_w_localapps" command mentioned above, everything would have worked. I *would* have been able to get to the internet on firefox at this point but, upon opening the app, firefox automatically opened a saved tabs with Flash video content. Since the localapp doesn't have much in the way of plugins, firefox crashed. When I quickly closed all open tabs and went to it worked!!!

      Saturday, June 20, 2009

      Which version of java for jaunty?

      I asked myself this multiple times in the last few days--some are saying that the java-6-sun version is better than java-6-openjdk. What does better mean? I just got a hold of the guy who got me started with Ubuntu and open source and planted the seeds for thin clients--Tom Marble. He worked for many years at Sun and was passionatly involved in the open-sourcing of java. He said that the java-6-sun version, as long as you have all of it's dependencies, is probably more stable. This was in response to, 'which is better'. He then led me through the terminal steps to set this up:

      in terminal:
      1. "sudo su" to become the root user.
      2. "update-java-alternatives --list" to find out what java you have installed. I had both java-6-openjdk and java-6-sun.
      3. "update-java-alternatives --set java-6-sun" upon which tons of lines started rolling by like, 'No alternatives for appletviewer', etc. He reassured me this was fine.
      4. And then it ended. Then I typed, "java -version" and it said: "java version "1.6.0_13"" and that was great since in all my efforts to update java I'd never gotten it to say that advanced of a version (it always reported, '1.6.0_0').
      I haven't checked much, but going to a couple of java test sites ( e.g. and things are looking peachy. Next to the really challenging tests: CmapTools, a java based program that has brought my server to its knees with just 2 thin clients opening it over a 30 second period, and the java applets which are excellent science learning resources such as the dozens at this tremendous site:

      I'll comment back when I've done more tests...

      Wednesday, June 17, 2009

      Scientific habits of mind

      AAAS--the American Association for the Advancement of Science has been an inspirational organization to me, or at least their publications have been. I'll share a secret--I'm not a scientist (one who creates knowledge within a community of scientists)--I'm a teacher of science.

      AAAS in their 2 watershed publications, "Science for All Americans" and "Benchmarks" provided me with lots to think about the question, 'what is the nature of science, and what is it like being a scientists?' While I took lots of science classes in college and in high school--I've always loved science--I never was a science professional--really just a dabbler--not really even an apprentice--well maybe a bit.

      While studying for my MA a brilliant Philosophy professor, Jonas Soltis, gave us students the following task for our final paper: "Imagine it is the last day of classes for your students and that they are walking out of your science class for the last time in their life. Describe what you want them to think science, is."

      The Benchmarks dedicates chapter 12 to this topic of the "habits of mind" of scientists or more specifically, how it can be developed throughout grades K-12. Chapter 12 addresses "Problem Solving" unarguably one of lifes most important skills. It talks about this:
      Quantitative, communication, manual, and critical-response skills are essential for problem solving, but they are also part of what constitutes science literacy more generally. That is why they are brought together here as scientific habits of mind rather than more narrowly as problem-solving skills or more generally as thinking skills.

      To be continued...

      Sunday, June 14, 2009

      Student Agency? Questions as meaning-making tools...

      (Most of this post was written on May 7--I'm finishing it up today)

      A quiet, generally hard working 9th grader in class today wasn´t helping out his group. Today wasn´t the first time this has happened... He´s well liked and does his homework showing a well-developed level of responsibility (HW is a stretch for many of my students).

      I had recently partially reconstituted this 4-person table, switching out a couple of students that needed a lot of support and added a couple of pretty active students to that table. These fairly active students joined 2 quiet and 'responsible' students. I did this about a week ago.

      So now when I re-visited this table several minutes later, only 1 of the new boys was working. I quickly deduced that the main problem was that the 2 boys who were originally from the table didn´t know what to do and were being pretty passive about this. I chose the boy mentioned above to start with...

      I asked him what their table´s experiment was about. I probably used a dangling proposition, then, too. He couldn´t tell me. So I went about asking several questions trying to see where his thinking was at. I quickly saw that he was lost so I changed my track. I said, OK I´ve got a deal for you, ask me any question you want to try and figure out what you need to know to help your group.

      He couldn´t come up with a single question even with my help. Why? Was he on the spot and his mind shut down? I was rather matter of fact about things so I didn´t put him in a pressure cooker but still this might have been part of the explanation. Was he resisting my questioning and directions? In other words was he silent as a way to retain some control--AKA ´the silent treatement´? Maybe...but he wasn´t acting sullen or angry...

      I didn´t know what was the deal but the group was ticked with him and he wasn´t helping so I asked him to step aside and that I´d be with him in a few minutes. I then helped the remaining members and they got up to speed, quickly.

      About 3 minutes later I went back to where he was standing (I´ve got a huge room) and asked him if he knew what he could have asked me and he was silent then shook his head. I could see this wasn´t going to be a quick intervention so I asked him to stay after class to talk for a few minutes (I had prep next period). He agreed and went back to his table.

      The bell rang; classmates cleared out. We sat down and I worked to understand why he hadn´t sought to understand things, just, ¨I don´t know¨. I certainly gave him plenty of prompts to ´ask me a question´. He said he doesn´t ask questions in any class. Our team of teachers know him as a good natured, generally hard working student that is sometimes frustrating to teach, too.

      After more talking, I figured out that he doesn´t know how to use questions as a tool to dig himself out of confusion. This was a major revelation, I've been teaching many years and knew that sometimes students were so lost they didn't know how to work their way out of it, but I really think I need to focus more on this next year.

      I've used "sentence starters" like, 'give me an example of what you mean', 'what are you talking about', 'why are we studying this', 'what does x mean' etc. I taught this student these and over the following days helped him practice them and indeed he did take a more active role in his group :-) including knowing what was going on more and being able to ask me questions. This is a start.

      Many students may need extensive help to take control over their learning. What support in a GCoS classroom can I provide them?
      • How does this support look?
      • How can I include this support, especially at the start of the year, on a day to day basis?
      • How can I assess where students are at on this skill? Probably scenarios would be helpful.
      • Obviously many educators have created lessons and structures to support this. It would be nice not totally re-inventing the wheel...

      building a culture (started 4-30, finished today)

      I've spent a little time each day on reviewing each classes posts to one another and also updating the class list of values. It has been cool doing activities and discussions in class as well as on line. I've been able to reference things students have said to our codified class list of values. Even students have referred to it a couple of times, including once when a student challenged another student saying that he wasn't adding anything new to the conversation, just repeating other people's stuff.

      See the screen shots at the bottom showing Period 4's list and their comments listed below. This is an un-edited list, of course so you get what's there.

      There is much to do in this area:
      • Don't have a list for each class, but have a single list of values that all of my science students and I can agree to. What's a process by which to do this that is effective and maintains all students buy-in? Is this possible while allowing for and developing the unique personalities of each class?
      • Bring professional scientists into this dialog.
      • Find effective ways to grow the culture--for example, start with just a couple at the start of the year and constantly re-visit the list, adding and improving and changing as the year goes on?
      • What are different strategies to bringing this to life in daily class? That is, what is scaffolding for both the students and I to help us develop the habit of mind of referencing what we do relative to agreed upon community values.
      • How do we keep this a living list?
      • Of course, all of the answers must be practical or they won't be used!
      Here are 3 screen shots showing period 4's web page of values..

      Minnesota Penguins Unbound Installfest AKA good times (this is a post started about 6 weeks ago)

      Today (4-25-09) I came to TIES where Brian Dolan-Goecke organized and hosted the semi-annual Ubuntu InstallFest. It's a good time for all, Linux nerd or wannabe. I fall into the latter category but am slowly becoming more of an asset to the community, I hope. In that spirit, I asked Jack Ungerleider to take some notes as he set about solving a pernicious problem with my Plone 3.1.4 PIL installation. In brief, the problem was that I could upload images eg a jpg onto the site (though there would be an error message) and then trying to use fancy zoom on them the expanding picture would be...nothing. Anyway, he got it working and here is what he wrote.

      Tkinter support:
      install python-imaging-tk
      set TCL_ROOT in to "/usr/include/tcl"

      Build PIL using python2.4 build
      If Tkinter support ok then
      Install PIL using sudo python2.4 install

      He also gave some ideas about backup which I will address this summer.

      Simple backup
      tar -cvf /where/you/want/output/givenametofile.tar Root/level/of/source

      (for external drive /media/disk-name)

      tar -cvf /Volumns/UbuntuServerBackup1/4-25-09.tar

      Thursday, June 11, 2009

      LoggerPro and Edubuntu and thin clients

      Hurray! Vernier Software recently released a Linux version of their super software, "LoggerPro". I'm installing it on my Edubuntu thin client server.

      To get the software I went to this page and signed up for the public beta at which time they sent me a link to the software which I downloaded. I unpacked it into 2 .deb files. So I looked up and quickly found out how to install a .deb file on Ubuntu. You simply type:
      sudo dpkg -i package_file.deb (where 'package_file.deb is the absolute path to the .deb file I want to install)
      at the prompt as described on numerous pages. I installed the driver file and then the loggerpro file. However, the real adventure began as I tried to find the installed programs. I did a search using the 'find' app in the places menu typing in loggerpro and logger and all to no avail!

      After spending a good time googling, "where are .deb files installed" "Ubuntu .deb files installed" etc etc I was getting frustrated. There was no 'finally'. However, on one page I read something about the admin program Synaptic which sparked an idea so I opened it, typed, 'logger' and quickly found the files were installed at: /usr/share/local/

      I logged into a thin client and tried to open the 'startup.cmbl' file but nothing happened. I reasoned that maybe I should have installed the 2 .deb files in reverse order and did so. I restarted the server for good measure. Still clicking on the startup.cmbl did nothing. Then I dragged a copy of an experiment file I had saved on my flashdrive onto the desktop and double clicking on it did nothing. And, I just tried to start it on the server (remotely via NX Client) and while a window did pop up on the screen for a half second, it still didn't work.

      I just got the idea trying to install it from the command line but that didn't work, either. Hmmm time to go to forum and ask for some help.

      Monday, June 01, 2009

      Using FLE3--Creating the context with the wrong question

      Note to self--When choosing the key question for the course context the question need be plenty big--if it is too specific--even if very profound--it won't easily allow for being broken down to smaller, specific questions. Of course students can ask parallel question but that's pretty difficult. Let students ask the specific question based on their activities.

      Sunday, May 17, 2009

      re-creating the chroot

      nice command to make a backup, of instance 293 into a directory-to-be-created called instance 293backup:
      sudo cp -a /usr/local/zope/instance293 /usr/local/zope/instance293backup

      must copy the sources.list file from the root install to the chroot install:
      sudo cp /etc/apt/sources.list /opt/ltsp/i386/etc/apt/sources.list

      then update the package list:
      sudo chroot /opt/ltsp/i386 apt-get update

      and to upgrade the packages:
      sudo chroot /opt/ltsp/i386 apt-get dist-upgrade

      From page:

      Also, to deactivate a source that isn't responding during update and then prevents the update process, go to the source.list.d directory, find the offending source (e.g. stgraber-ppa-lucid.list and and open them up with gedit, add a "#" at the start of the line with the address on it, save and close.  Do with both files (.list and  ALSO, do in the chroot (as described above).

      Work around for Java on LTSP on Ubuntu

      Note to self--
      Until Java is properly implemented on Ubuntu 8.0.4 LTSP I'll need to use the following work around as per this bug report. This is the second time I've installed this fix. The work around involves replacing the hardy libx with the gutsy libx.

      Of course I got the update message that I had an old version of a file on the system and that I should update it. I did end up updating it a bit ago (thus the need to re-install this fix) because I needed the hardy version for another install I was doing.

      Thanks to all the hard-workers out there for creating and communicating the work arounds. Since a lot of that is opaque for me, I'll record the essential elements:
      1. Download this file to my desktop: libx11-6_1.1.1-1ubuntu4_i386.deb
      2. Type this in at the prompt:
        # sudo dpkg -i '/home/dgroos/Desktop/libx11-6_1.1.1-1ubuntu4_i386.deb'
      3. It will give me a warning that I'm downgrading the xlib file as it installs it.
      4. I just found something to let the system know that I want the old version of this file here and so it will stop telling me to upgrade it. At the prompt I type the first line of the following to make sure that the status of the file is 'install' and as you can see from the second line, sure enough, it is 'install'
      5. # dpkg --get-selections | grep libx11-6
        libx11-6 install
      6. Next, I type the following command so that I have sufficient privileges for the 'hold' command:
      7. # sudo su
      8. Then I type:
      9. # echo "libx11-6 hold" | dpkg --set-selections
      10. ... and now when I check the status of the file using the command from # 5 above, it says that the status is not, 'install' but is instead, 'hold'.
      11. Nice, now when I run update on the computer it shows the libx file to update, but it is grayed out. I'm guessing that when I need to update this file I'll simply run the command on #9 above but instead of using the word 'hold' I'll type 'install'.

      Friday, April 24, 2009

      Aiming for a culture of scientific inquiry in our class community

      bzzzzzip! moving to present day, not catching up--just jumping in...

      There is something special about communication that's in writing as opposed to oral. It is permanent, you can craft it more carefully than talking, and it takes more effort. Additionally, I'm guessing it happens in a different part of our brain and thus people will express things in writing that they wouldn't, orally.

      Online discussions have the additional characteristics that they are searchable and in this case, once they are out there, you can't take them back... It behooves people to be thoughtful about what they say. These characteristics make an online discussion beneficial for a developing community of novice scientists.

      Yesterday, for the first time, students accessed a page in their classes folder on the web, on our plone site. The page was entitled, "As a community of Scientists we value..." On the page itself was information to scaffold student thinking on values. For example, I wrote:

      As a Community of Scientists we believe, ...

      ...that when you are trying to prove your point in a discussion...
      1. It´s important to...
      2. It´s important to...
      3. It´s important to...
      So, students brainstormed things like (these were their words, note the teacher-language in them):
      1. It´s important to... speak loud and clear.
      2. It´s important to... give details and evidence.
      3. It´s important to... respond in a respectful manner.
      Everything up to this point was done in a whole-group setting, and I was stretching their attention (mom and dad used to say, "No souls are saved after 20 minutes"--a small town preacher's saying). So, how do I make it so that everyone can simultaneously jump in and discuss, in writing, this topic of shared values? Step in the Computer-enabled science classroom! Students logged into their account, opened Firefox and went to our class website, managed on a CMS, Plone. I had prepared a page to scaffold this next step.

      Since plone doesn't allow for simultaneous editing of a web page (and I don't think my students would succeed doing that, yet), I instead used plone's commenting feature. I had students either add a comment to the (bottom of the) page, or reply to someone else's comment. So I opened things up, and got some important (and predictable--I've been teaching for 20 years :) stuff.

      Below is a screen shot of the first comment that was made in 1st period, along with a response made to it by Jonathon from 2nd period. The first comment by Basilio was a practice comment to make sure posting worked. The reply to the first comment was actually done during 2nd period, in other words, it was done after all (about 20) posts had been made during period 1.

      On the second day, I projected these comments on the overhead screen. After clarifying that the first post was a test, I asked students if they saw something important for a class value in the second quote. The response was a chuckle and a predictable sense of "let's knock down the teachers idea". I carefully avoided responding to this tone and asked students what it was that they liked about this post. Rather amazingly a student responded that he thought it was important to be skeptical of things. I was impressed by the (9th grade) students sophistication and word choice. Maybe I should not have been... Hmmm...

      This provided me with an opening so I then turned to the rest of the class and asked them if they felt it was important to be able to question or challenge what other people are saying. There was widespread agreement with that. The class finally chose this wording for this class value: "Disagree with someone when you think he or she is wrong." A person at table 1 wrote that value, recording it for our class.

      Then, I asked if there was anything that people didn't like about this post. Marlon said he didn't think it was very respectful, and a few people agreed with that. So I asked, "So what are you saying is our value?" There was some back-and-forth between several members of the class, and DeAndrew succinctly said, "Disagree in a polite way and have reasons proving your disagreement." A volunteer at table 2 wrote that down as our second value.

      With this process, together we are starting to codify a set of values for our scientific community. I only did a few, not wanting to spend too much time on this.

      Much remains including further filling out this list which is now posted on line for each class, improving the clarity of the listed value and its presentation, and of course the big one of developing and 'privileging' these values in our community. This process needs to be done in the context of our class performing scientific inquiry. The nice thing about online discussions is that we can always analyzie and reflect on what was said.

      As always reader (s?) comments are welcome.

      Friday, March 20, 2009

      First day of Spring, First day of Phase 2!


      The computers are working, students "stress-tested" them all day today--issues emerged, I created work-arounds and by the end of the day, they worked perfectly!


      I'd like to thank my wife and kids who have put up with me these many months, even encouraging me on though they now have little patience for the word, 'computers'.

      I'd like to thank friends, both new and old, for their support. I'd like to especially thank the more than dozen volunteers who volunteered dozens of hours (some several dozens) to get this project so far. Thanks to the many more people who heard the ideas of this project and have supported it with ideas or just encouragement.

      There are those who have provided many thousands of dollars for this project, namely Medtronic Foundation and Minneapolis Public Schools. You all are part of this multi-dimensional, multi-faceted project. And I thank you. I'll keep this blog updated, still discussing technology but focusing now mostly on pedagogy (I hope!).

      There are communities of scientists to grow!

      Thursday, March 19, 2009

      iTALC's almost working...

      I had a lot of problems with iTALC and Webmin as both coveted port 10000 and I wasn't able to adjust them because the other interfered... So I uninstalled both, installed webmin, changed the port it listens on (and the one on which it 'speaks'?) to well, a different one.

      Then I used this page to reinstall, and it went great till the very end when I get an error message saying that:
      id: cannot find name of group ID 1021
      id: cannot find name of group ID 1022
      id: cannot find name of group ID 1023
      id: cannot find name of group ID 1027
      While there were several suggestions on how to deal with it, from "ls /etc/groups" to making sure the permissions of /etc/group and /etc/passwd were set to 644, none of this worked, for 1 thing the permissions were right already.

      OK here's the cool thing :-) I was futzing around with the Ubuntu admin app, Users and Groups, and quickly found that the four wayward groups were the level1, level2, level3 and level4 groups I'd created as part of the Managing Group permission strategy. Well, when I opened up the /etc/group file it showed all of the groups and who was a member of each and I noticed, strangely, that these were basically the only groups in which 'root' was a member. I had added root to these groups because, not knowing exactly what I was doing, I wanted to hedge my bets.

      So anyway, upon removing root from each of these groups, I no longer got that error and things ended swimmingly :-) This, by the way, is the first piece of original Linux computer-problem-solving-knowledge I've created and yes I'm proud--nice to be a producer, not just consumer. Now all I need to do is figure out how to make remote-control function work on iTALC...

      By the way, here's a nice little post about the utility/need for iTALC management programs:

      Sunday, March 15, 2009

      And thanks to Andreas Olsson!

      I mentioned in this post that there was another blog that presented my need for some software that aids a teacher in managing user permissions. In the Macintosh world this is done, along with many other functions, using Workgroup Manager. There had been a product to do this, Sabayon, but it no longer worked with the current version of Edubuntu.

      One of the people that responded to that post (there's 36 comments to that post at this point) was Andreas Olsson a systems administrator from Sweden. He proposed an idea similar to what Jordan Mantha had proposed, to put users in groups and then adjust the permissions for different applications so that only members of group x could use this program. Also, he proposed creating a small Command-Line Interface (CLI) program that could work off a database of the programs and groups and make this permissions-changing thing happen.

      Well... He made this program :-) and it works GREAT. I've added 40 applications to the database using his program. As needed, I can roll back the permissions to the original ones.

      These apps now belong to one of 4 groups: level1, level2, level3, or level4. I've put all students in the level1 group. After a week of successfully using the computers with that level of permissions, I'll add them to the level2 group, adding on these permission, also. And so on... They gain permissions as they demonstrate responsible computer behavior. If they do the porn image thing etc then they tumble back to level1 and must again work up to higher privileges again.

      So... looks like all I've got left is customizing squid and running last bit of cables... the latter is trivial, the former, not. but... SOON!

      Thursday, March 12, 2009

      And now, squid launches!

      And thanks to Christopher and Gavin who, through (exactly) 20 e-mails helped me nail down the squid problem to which I have probably 10 hours of my life. Here is the 20th e-mail in the series:

      This did it :-)

      Using the following command provided by Gavin:
      $ sudo chown proxy.proxy /var/spool/squid/ (but changing 'proxy.proxy' to 'squid.squid')
      changed the ownership, then using the command provided by Christopher:
      $ sudo /etc/init.d/squid start
      simply worked. Thanks Gents!
      Oh yea, and I was able to add the HP 8000 printer to the network and it too worked perfectly.

      Wednesday, March 11, 2009

      Short message: Server is locked in it's cocoon

      I now officially have no physical access to the server, but with iLO and freeNX and the NoMachine free clients I feel like I'm as good as touching it! So now I can try to plug in all the computers... and give them a boot test!

      Tuesday, March 10, 2009

      Gettin' lots of help lately...

      The following is a copy of a post I sent to the edubuntu-users list of which I'm a thankful member. There will be a few posts in the following days of shout-outs to different people for the help they've provided along with a bit of detail. The following involved a simple solution--the others are move involved...

      Thanks Richard [Doyle],

      Ecstatic would clearly describe my emotional state when I VPNed into the district intranet, freenxed into the server, opened the Terminal in the gui that appeared, typed 'sudo reboot', and then a few minutes later, I was able to freeNX into that server and saw the beautiful Edubuntu desktop once again!

      All I did was, (from this page:

      Open your apt sources list

      gksudo gedit /etc/apt/sources.list

      and append the two lines for the repository

      deb hardy main
      deb-src hardy main
      I customized it to 'hardy' but any of the following that apply, work (it says): dapper, hardy or intrepid.

      Then I tried to:
      1. Save and then close.
      2. Then Update Apt sudo apt-get update

      3. After you add the repository, then install the freenx package (using Aptitude to install extra needed packages). sudo aptitude install freenx

      But couldn't get passed the message that the keys didn't match or something upon doing step 2, above. So, I went to Synaptic (got that from another page), searched for 'freenx' and then selected the 'freenx' app for upgrade, applied it, ignored the security warnings, and installed it.

      Then, I opened freenx, configured it (don't choose to disable the security encoding as it runs on port 22 and you will get an error message.) Then, I downloaded the client version for my mac laptop, configured it... and it worked :-).

      One more barrier removed!

      BTW--I recommend FreeNX to anyone using VNC currently, it looks a lot nicer and is smoother/more responsive.


      Thursday, March 05, 2009

      Fixed: the network and thus the printer :-)

      I've been working on this printer issue (part time of course) for months. They have this saying in Guatemala: "Que vale el que sabe!", roughly translating to, "He who knows is valuable!" Well, this saying was proven true once again tonight.

      Since I've got the network at my house so as to be able to work on it over weekends etc, Jamie came over here after work today and dived into the thin client network. It didn't take him long to find out that there were miscoordinated subnet IP addresses which, after a few hours, cokes and a wonderful pizza made by Maria, my wife, are now logically established. I probably mixed them up at some early point in the project, but it wasn't bad enough for the thin clients to go down.

      It is rather interesting how Jamie got involved with the Growing Communities of Scientist project. He has a wife who works for Inetium, the company who made the web interface for the GetSTEM project, a service created by MHTA. GetSTEM connects 'science teachers in need' with Minnesota businesses who have help to offer. It works like this, as I teacher I went to GetSTEM and posted that I needed someone to provide some Linux help on a project I was doing (I referenced this blog). Employees of participating businesses, generally those that rely heavily on the Science/Technology/Engineering/Math (STEM) disciplines, browse the posts by teachers on this site. If they find a request that interests them, they can contact the teacher and work out things from there. This service is exceptional in that it is local, and very web 2.0ish: it provides an interface to allow direct-connect between Joe Teacher with Joe Tech Employee--no need to go through organizational filters/pathways on either side. Worked for me.

      So... Jamie's wife saw a GetSTEM request (mine), showed it to husband, he contacted me and well, the picture below shows it all......the network is properly tweaked and printer are... WORKING!

      Thanks to Jamie, Jamie-wife, and MHTA.

      Things are getting nearer... Tomorrow I'm taking a personal leave day (it's officially a district wide-staff development day) to maybe get things to that, holy-grail state, that "Limpin' but live" condition!

      Spiral Curriculum

      Oh Oh--deviating from system set-up talk again... note to self--don't make habit of this...

      In science education we often talk about a 'spiral curriculum' where the timeline of our activities instead of being a simple straight line is instead a spiral going up... (think Helix). This means different things to different educators. Look at this drawing (thanks to
      This shows that as time goes on (in this drawing each loop is a full year), students repeat working on the same skill--addition--but presumable in more complex contexts. Another example of a spiral curriculum shows another aspect, how different 'sides' of the helix represent different concept or skills, as well as maybe how one might organize over the length of a unit, maybe 3-4 weeks or so:

      (this drawing is thanks to: In this example, Literacy 1 might be 'Graphing', Literacy 2 might be the concept of Heat Transfer and Literacy 3 might be the skill of 'searching on the internet'.

      I've tried to plan a unit like this in the past using a spiral drawing but couldn't get it to work--I didn't really try that hard either. I think, however, that if there were some software that provided control over the spiraling time-line, mixing spirals, threads shown, snap-in placement, changing radius of spiral, adjusting colors of the vertical 'literacy's' well, one could have a powerful visualization tool for unit/curriculum planning. This would be a nice way to share our units and help practitioners (ie teachers) implement the curriculum. For those who aren't teachers, teachers have to be able to adjust from moment to moment what we are doing in the class to take advantage of the possibilities of the moment and meet the needs as they arise. All of this has to be done, of course, with the larger curricular goals in mind. Yes, so this tool could help one have those larger goals in mind.

      Update: thought I would add this info here, as well:

      By far the most interesting and useful spiraling model is called, "Progressive Inquiry". It is perhaps the most difficult spiral curriculum approach to implement as it is a distinctly different from traditional approaches. Interestingly it is organized and thought of from the perspective of the classroom as a community. This is the instructional model that we'll be using here at GCoS. Check this site for info. Here's a drawing they produced to help explain the approach:

      Use Blog for Professional Development

      I know, I'm deviating from the Primary Directive (Phase 1--get everything working) but sometimes ya gotta pull a Kirk. I talk with Eddie daily about this lesson or that that we are teaching, insights and lessons learned (ours). I keep wishing for a system to channel this practical knowledge. So here is an ideal to weave several important thread together. The Threads:
      1. nailing down our insights (our own personal blogs).
      2. communicating our insights withing our community and get their feedback (sharing/commenting on each others blogs).
      3. reflecting/sharing our insights in the form of lessons with others in the community where they can help shape the form and content of the lesson (LeMill server).
      4. get credit for professional development (ProPay Skill Set)
      5. provide public evidence of the vast knowledge base and skill set that teachers routinely use (our blogs).
      The idea is that a group of people would sign up for a 'ProPay Skill Set' course for credit. This course might focus on such a thing as Gowin's Vee as a support for student directed inquiry. All teachers would open a blog on or where ever.

      Teachers would daily or bi-daily blog on their experience with using the Vee in their class over a (say) 2 month time period. Occasionally, maybe 2 or 3 times over those 2 months, when they felt that they had polished a good lesson using the Vee, they would publish it on our districts LeMill server (which is being moved to a faster server at the moment). Others in the ProPay group would be expected to comment on other's blogs as well as try and (as appropriate) improve on the lesson posted on LeMill.

      How could this idea be improved? Leave a comment, ay?

      Wednesday, March 04, 2009

      CmapServer configuring... more

      OK, so the server running CmapServer has 2 ip addresses (associated with that VM). Since I didn't specify the ip address on the config file: serverconfig.txt under /IHMC_CmapServer/bin/ it chose 1 of the 2, I guess. And, it chose the 'internal' ip address. So, I re-edited the above mentioned file and added the external ip address (the line had nothing on it), shutdown then started the server, and... it works :)

      Monday, March 02, 2009

      TODO list to reach the state of... "Limpin' but Live"

      Here's what needs to happen so as the class net can go live... even if it isn't completely done...
      • Get my admin user account to auto login on server startup, then screen lock. OR... somehow ssh and remotely login through the GNOME interface. This will allow me to use the iLO to remotely start the server and then to be able to VNC into it w/OUT having to be present at server side (I don't have 'on-demand' access to the room).
      • Make printer work on network.
      • Make it so that students can not edit other peoples files and folders.
      • I need to add all apps to the 'permissions-managing data base'.
      • add all students to the proper groups (Start in the level 1 group)
      • is there better "User and Group" software--that has a larger management window? that can sort users by alpha? that can see just a group of users and not the whole list?

      Tuesday, February 17, 2009

      A (minor) Miracle!

      After quite a few hours spent studying, a few e-mails to IHMC tech support, a couple of conversations with Jack and an e-mail from Brian D-G I was able to successfully install the new CmapServer on the designated virtual machine at the district! Finally!


      3 down, 1 to go! Then, I'll be able to take the old server off line, talk to Go Daddy! to change the IP's of to the new server, then start them and... no one will know the difference except the site will become quite a bit faster... Slowly but surely!

      Sunday, February 15, 2009

      Remaining thin-client issues decrease by 1/2

      I'll never forget what I heard once: the people who die from eating poisonous mushrooms are the mushroom experts. While a little bit of knowledge may be dangerous, a lot of knowledge can be fatal. Not that I've got a lot of Linux/command-line knowledge, but I know enough to... dig more holes...

      I couldn't get nice flash stuff like the one at the top of No, it wasn't simply updating flash which of course isn't simple. After updating I couldn't get firefox to use the new plugin--it insisted on using Flash 8, not Flash 10. Hours later... I solved that problem, encountered the issue with Ubuntu 8.0.4, Flash 10, PulseAudio and crashing firefox, and solved that mostly, with the help of Anyway, one can now watch videos on the web though it's not too smooth.

      I tried to then see if the Java applets such as these physics simulations worked, but alas they still don't. I hope that dealing with the slowness of CmapTools (which is Java based) will solve this problem. But, from what I gleaned from this recent discussion is that the problem might be more in NIC issues than in Java, but that really it's unknown. "They're working on it..."

      Saturday, February 14, 2009

      Again, thanks Jack

      Jack came over again today to work on Plone installation challenges. He has to come here because one can't ssh into the district server on which these are to be running, only via VPN access which is set up on my house computer.

      Jack sloshed through many pages trying to find why the legacy Plone 2.1.4 site wouldn't work on the fresh install, finally finding the issue to be one of insufficiently installed PIL. Once he fixed that, then he quickly blew through the final hurdle and wow! This older site works! And, this is important because that is the only one on which FLE3 will work on. Also, it's nice to be able to show work from previous classes on line, such as it is.

      Also, the new production plone site seems to be issue-free as Jack fixed another PIL issue. Images now behave well, great actually, on this new site! If I had some time I'd get it set up for public use, right this moment it's only used to coordinate/present question/directions/images for the lessons. Soon though students will all have accounts on it and will be creating content (ever the dreamer... :-)

      I tried to do some more work on the CmapServer install but am still stymied by the lack of a GUI. But, I did find something on the openvz website that explained about X forwarding which I think means that all of the X11 feedback gets routed to the computer on which I running the console. Anyway, at least 1 unsolved issue still to get it to work.

      Friday, February 13, 2009

      Gained Access!

      Here it is... the fabled tech closet, and I'm in like Flynn! Sixteen e-mails and I gained access!

      And, thanks to Cody from the district, the switch is now wired to all the drops in my science classroom. The server will be the bridge between my class LAN and the building LAN so the cheapo Netgear switch need never be seen by 'the network'.

      Also Cody checked all of the Ethernet drops in my room, some were dead, but most live. It'll work...

      Friday, February 06, 2009

      Oh yea, I'm cool. well at least educatable...

      I can't believe all I've done today. I couldn't have done it that long ago. Today at random free moments, through the command line interface I've:
      • Checked the status of an apparently non-responding virtual machine
      • entered it as a root user from the host machine
      • navigated to /home and found the user wasn't dgroos but instead groos--got it!
      • sshed into the groos account, tried to sudo but couldn't as not a sudoer.
      • found how to add myself to the sudo group, tried to edit the sudoer list with vi but said I needed to use visudo or something. But, i found that there was a user in the sudo list called dgroos! but, there wasn't a user named dgroos so I adduser dgroos (as the root user, logged in from the host server), logged out
      • then sshed into the virtual machine, sudo mv the file to the /srv folder.
      • then tar -xvzf the plone installer, then reading the README.txt with vi.
      • sudo ./srv/InstallerFolder/ (had to use the absolute path--I guess the command wasn't in the PATH or something).
      • the error message that gcc wasn't present.
      • So figured out that I needed to install it so installed a bunch of useful stuff with:
        apt-get install gcc build-essential
      • then tried to install plone but still no luck--still no gcc...
      • So found I needed to upgraded and did so.
      • but still no luck, so apt-got gcc ;-)
      • And then... Well at this very minute (minutes) I'm watching plone install... here's a screen cast :)
      • And now... it appears that it's all installed. I'll check to see if it is working...
      • it installed a zeo cluster? oops.
      • Checked the install script but don't really get it.
      • googled some more and remembered you have to write: sudo ./ standalone
      • did that and it still installed a ZEO...
      • Hmmm... time to get some personal help, not just google help

      Thursday, February 05, 2009

      The server room, gaining access

      One challenge of much of establishing this project is that many borders are crossed. For example, the best solution for server placement (read: saves thousands in wiring costs) is in the drop room. Great solution but the key to that room is a master key that has access to most all of the doors in our building. Understandably, giving me one of those keys sort of flies in the face of the system of limiting access to as few people as necessary. What I'm doing is (evidently) not considered necessary. I understand not getting the master key--let the principal sleep just a little easier at night.

      I came up with another solution. Instead of having my own key, I could have someone else let me into the room when necessary. I asked. Access wouldn't be needed too much, I can use VNC/ssh. The reply was, "Well, I don't know, try and find another solution."

      There really wasn't another (inexpensive) solution, so now people with more juice than I will explain the situation to my boss and hopefully that will help me gain access and get the thin client server in the room and... GOING! I'm getting close!

      Wednesday, February 04, 2009

      CmapServer on new server at district...error

      After about 6 hours of studying and trying to understand a specific configuration file, and with Jacks advice, I finally uploaded it to the server and ran the installer. No Go. Got this output which I sent to the IHMC Cmap people--hope they can help!

      dgroos@cmap:/srv$ ./LinuxCmapServer_v4.18_06-09-08.bin f
      Preparing to install...
      Extracting the JRE from the installer archive...
      Unpacking the JRE...
      Extracting the installation resources from the installer archive...
      Configuring the installer for this system's environment...

      Launching installer...

      Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

      Stack Trace:
      No X11 DISPLAY variable was set, but this program performed an operation which requires it.
      at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)
      at java.awt.Window.(Unknown Source)
      at java.awt.Frame.(Unknown Source)
      at java.awt.Frame.(Unknown Source)
      at javax.swing.JFrame.(Unknown Source)
      at com.zerog.ia.installer.LifeCycleManager.g(DashoA8113)
      at com.zerog.ia.installer.LifeCycleManager.h(DashoA8113)
      at com.zerog.ia.installer.LifeCycleManager.a(DashoA8113)
      at com.zerog.ia.installer.Main.main(DashoA8113)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at com.zerog.lax.LAX.launch(DashoA8113)
      at com.zerog.lax.LAX.main(DashoA8113)
      This Application has Unexpectedly Quit: Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

      Anyone get this?

      Saturday, January 31, 2009

      The room gets closer still, the district server and class server advance, too

      Peggy and John came from the district and dropped off the rest of the 25' power strips and cord protectors. Thanks guys (guy/gal)!

      After volunteering for 8 hours last week, Fred again found time to volunteer this Thursday after school. We worked till 6 (and I spent another hour finished up a couple things on Friday AM) and got close to finishing the other side of the room! I just need to route 6 more Ethernet cables and plug in a few power cords, keyboards and mice :-) Next week?

      Fred looking like a student, kind of

      On Saturday Jack came to my house to continue the work of transferring the various Plone sites (requiring the re-installation/transferring of 3 different Plone instances) to the new district web server. This new server will have the capacity to quickly create content such as Vee's, discussions, upload images from many members at once. We/he of course had a challenge with the old Plone versions as he had to separately build the appropriate versions of Zope and Python (2.7.8 and 2.3.5, respectively). Then, he moved the content from the U server to the District server (255 megs in 1.5 minutes!). And... it didn't work. We got closer. Anyone know what this means: "ImportError: cannot import name base_hasattr"? A step at a time...

      I did an experiment with the solutions proposed by LaserJock and others. I simply did a search for "firefox" on the thin client server, 'chgrp firefox name.of.file' to change the group from root to 'firefox'. Then, I changed the permissions on the file, 'chmod 750 name.of.file', making it so that the owner (root) can do anything, the group (firefox) can read/execute it, and (quite importantly in this situation) others can not read/write/execute it. Then, I tried to open firefox and... it didn't work! That was conditionally good. Then I added myself to the group, 'firefox'. Then I logged out then back in and... I could now access it! This is a simple solution, pretty much, at least in a temporary way. This way I can get the room up and running. Now I need to repeat this process with the different apps and many users... And work on getting a user friendly version of this for other teachers... I wonder if this solution could integrate with the edubuntu-menus?