PirateBox in my Car

One of the nice things about the TP-Link MR3020 wireless router that powers my PirateBox is that it’s powered, via a mini-USB port, by a 5VDC/1.0A power supply. This makes powering it by means other than a plug in the wall trivial because you can use any power source with a mini-USB. Like a portable battery back, a solar panel or, as I tried yesterday, my 2000 Jetta.

Several of my Nokia phones over the years have had mini-USB power ports, and so I have a few spare mini-USB “cigarette lighter” adapters in my car. So at the Charlottetown Farmer’s Market yesterday I plugged in my PirateBox to the car, tweeted that PEI community histories were available in the parking lot at SSID PirateBox, and let the public do what they might.

One of the limitations (or features) of the PirateBox is that it doesn’t log access, so I’ve no idea whether anyone actually did grab a copy of Attitudes toward the temperance movement among Methodists in Nova Scotia, New Brunswick and P.E.I. or Freetown, Past and Present. But they could have.

There’s a helpful page on the LibraryBox website that discusses, in part, battery capacity issues and a page on the PirateBox forum where battery issues are discussed.

PirateBox in my Car

Tags:

Creating a Portable IslandLives on a PirateBox

I love IslandLives.ca, Robertson Library’s digitization project for Prince Edward Island community histories (disclaimer: I played a small role in the project’s early days, coding some of the project related to automatic named entity recognition). And I’m recently in love with the PirateBox project, which lets you create a standalone wireless file-sharing device based on cheap hardware; you can create your own single-node Internet for distributing content where the Internet itself isn’t available, or where you don’t want it available.

So it seemed like a good idea to marry the two.

I bought a TP-Link MR3020 for $39.99 from The Source, and when it arrived a few days later I set it up with OpenWRT and PirateBox using the refreshingly clear instructions.

I then wrote some code, which you can grab here from Github that harvests data out of IslandLives via OAI, scrapes out PDF files and thumbnail images for every book that has a PDF copy available, creates an index.html file with an index of all the books linked from their thumbnails, and dumps this all into a directory suitable for copying onto a PirateBox USB drive, ready for serving.

Once the data is scraped and copied and on the USB stick in the PirateBox, then for users it’s a simple matter of connecting to the PirateBox SSID, clicking on “Browse and download files here”, selecting the IslandLives directory, and exploring. Here’s what it looks like on an iPad:

islandlives-ipad

And here’s what it looks like on my Firefox OS phone:

islandlives-firefoxos

In theory it should be possible to adapt the code to harvest data out of other Islandora instances, so creating a PirateBox version of the data inside islandvoices.ca or islandimagined.ca would be an easy next step.

Open Minecraft Lab in the Legislative Assembly of Prince Edward Island

Two of the participants in Open Minecraft Lab were Hon. Doug Currie, Prince Edward Island Minister of Health and Wellness, and his daughter. The following week, when I took a school PD morning to attend a sitting of the Legislative Assembly with my son, Minister Currie recognized us in the gallery, and this was captured in the day’s Hansard:

Also, I would like to acknowledge that we have Peter Rukavina in the gallery today, and I believe his son Oliver is with him. Last week I had an opportunity – last Saturday – my daughter and I went to his open lab, Minecraft, which is an activity and a game that the children play in communities, and a very popular game, but was quite impressed with the volume of students that were participating, and Peter’s vision for the game in respect to using it as educational opportunities in math and strategy and architecture. I want to point that out and (Indistinct).

I’m not sure what the Minister finished with that was “indistinct” – perhaps it was “and ensure Peter that he has this government’s support in anything he ever wishes to do,” but that might be simply wishful thinking. Thanks to Minister Currie – who you can follow on Twitter at @DougCurrie – for coming out with his daughter, and for taking the time to make what might have been the first mention of Minecraft is a legislature.

Open Minecraft Lab Survey Results

After our three Open Minecraft Lab sessions I sent out a brief survey, via SurveyMonkey, to all of the particpants. There were 120 participants in Open Minecraft Lab, represented by 92 email addresses (because some families brought more that one person). Of those 92 email addresses, 12 responded to the survey, for a response rate of 13%. Here’s how the responded.

Update: I had the “yes” and “no” reversed for the “would you be interested in coming to Open Minecraft Lab again?” question. Corrected.

Was this your first time visiting the library at the University of PEI?

  • Yes: 8 (66.67%)
  • No: 4 (33.33%)

Did you have fun at Open Minecraft Lab?

  • No: 0%
  • Sort of: 0%
  • It was okay: 1 (8.33%)
  • Lots of fun: 9 (75%)
  • Maximum fun: 2 (16.67%)

Did you play in Creative mode or Survival mode?

Minecraft can be played in both “Creative” and “Survival” modes, the former offering more flexibility and less “game play” and the latter more challenging and game-like.

  • Creative: 3 (25%)
  • Survival: 2 (16.67%)
  • Both Creative and Survival: 7 (58.33%)

Did you learn anything new about Minecraft at Open Minecraft Lab?

  • Yes: 6 (54.55%)
  • No: 5 (45.45%)

If yes, respondents were asked to describe what they learned:

  • Many of the things in Minecraft are about real life, so it can tell you a bit about those.
  • Design, math, problem-solving, cooperation, creativity.
  • how to build things
  • It teaches people about thinking before you do because you have to know what you want to build before you build it.
  • To build things!

Would you be interested in coming to Open Minecraft Lab again?

  • No: 1 (8.33%)
  • Yes: 11 (91.67%)

If so, what would be the best time(s) for you?

  • Monday night: 2 (18.18%)
  • Tuesday night: 1 (9.09%)
  • Wednesday night: 0 (0%)
  • Thursday night: 3 (27.27%)
  • Friday night: 3 (27.27%)
  • Sunday morning: 5 (45.45%)
  • Sunday afternoon: 7 (63.64%)
  • Sunday night: 2 (18.18%)
  • On holidays or school PD days: 9 (81.82%)

What could we do to make Open Minecraft Lab better?

  • Not allow the guys who blew up my house with TNT to come back! Maybe have some people with lots of Minecraft knowledge share some of their idea, or seeds.
  • We weren’t able to stay long the day we attended, but enjoyed the environment. Thanks for creating this space for cooperative learning, Peter. It’s clear there’s an interest in Minecraft. Todd Gallant
  • maybe some more one on one times-or see if kids have questions. sometimes hard to ask. I had lots of fun.
  • Have the headsets attached to a Skype call type thing so we can talk about what we want to build not talk in chat
  • Great way to spend two hours with my kids!
  • Collaborative build. It would be interesting to see social dynamics extend to a specific design and build project within the edu server (creative mode of course)
  • Make the EDU (?) version more different than the regular version. Get better mice!
  • Update to a newer version. Also, the mice were terrible.
  • It was perfect! The guy who helped was really cool and nice.
  • Downloading safe new mods and texture packs
  • my sons loved it
  • Be neat to be able to learn more things.

Parsing Prince Edward Island Legislation: Understandling Styles

School Act Screen ShotI have a longtime interest in the presentation of Prince Edward Island statutes and regulations online: I worked with the Government of PEI on its website for 8 years, and getting this material online was a significant project that ended up taking many more years than it should have, mostly because of technology challenges – the word processor that was used to maintain the material – that had nothing to do with the Internet. And we had to wait for the PDF file format to emerge as a de facto standard way of distributing complex documents on the web for it to really be feasible.

But there’s a limit to PDFs, especially when it comes to programmatic parsing of documents, and so I have an interest in “beyond the PDF” for distributing statutes and regulations. And, handily enough, I have a test case to use: because of my involvement with the PEI Home and School Federation I have more than just a passing interest in the School Act and its regulations, and I’m interested in ways of presenting it and annotating it that would enliven the document and spread it to a wider audience.

To begin this process I requested a Microsoft Word-formatted copy of the School Act from Legislative Counsel’s office, which they were quick to provide. When I opened this file in OpenOffice.org, however, it was presented to me as a “Read Only” document, meaning that I couldn’t edit it, and I couldn’t see any of its formatting, so I couldn’t understand the way that styles were used in Word to structure it. Fortunately this was quickly resolved by saving it as a native OpenOffice.org document (File | Save As… | ODF Text Document). Once I did this, then the names of the styles in the document were revealed.

So, for example, the definitions are all assigned the “Definitions” style:

School at in OpenOffice.org

Looking in the “Format | Styles and Formatting” tool of OpenOffice.org with the School Act open, the styles listed under “Applied Styles” are as follows:

  • Act Title
  • AmendingSubsection
  • CenteredText
  • Chapter
  • Clause
  • ClauseCont
  • Default
  • Definition
  • DefSidenote
  • Footer
  • Header
  • Part
  • SecSubCont
  • SecSubSidenote
  • Section
  • Subclause
  • Subsection
  • Topic1
  • Topic2

Rearranging that list so that it reflects the hierarchy of the School Act transforms it to:

 

Chapter
ActTitle
  Topic1
    Section
      Definition
  Part
    Topic2
      Section
        Subsection
    Topic2
      Section
        Subsection
          Clause
        SecSubCont

 

The only inconsistency in the document appears to be the use of the “Topic1” style for “PART I” at the beginning of the Act, which should, I think, be assigned style “Part.” But otherwise the styling appears consistent enough to allow for automatic parsing of the document. Which will be my next step.

(More) Lessons learned from Open Minecraft Lab

After our first Open Minecraft Lab last Saturday, I wrote Lessons learned from Open Minecraft Lab; this is just a brief update now that we’ve had 80 more people through the lab over two sessions this week.

Open Minecraft Lab Sign

Registration

Registration went pretty much as it had for the previous week: it filled up quickly, and was relatively problem-free. As the week drew to a close I received a few emailed cancellations, and these opened up spots for new registrations. When this happened I immediately opened up the new spots, tweeted their availability, and sent an email to anyone who had emailed me asking to be notified if spots opened up; generally these were snapped up within an hour.

Once the morning lab filled up, I arranged to open a second time slot in the afternoon, and this too quickly filled up.  We left 90 minutes between the two labs so volunteers could grab lunch and so we could clean up the lab: the first lab ran from 10:00 a.m. to Noon and the second one from 1:30 p.m. to 3:30 p.m. In both cases, participants started showing up about 30 minutes early, which we’d planned for, and which allowed more time to get everyone up and running with Minecraft, so this turned out to be a good thing.

There were more girls for this week’s sessions: I don’t have an accurate count because the registration form only had space for a single name, but my best guess is that we had about 10% girls and 90% boys who attended.

There were 49 workstations in total between the two labs; in both sessions the Mac lab (with its better screens, better chairs, better mice) filled up completely. In the morning session there were about 6 empty PCs left unused; in the afternoon session every PC was used and we probably could have used a few more; the difference was simply more parents who decided to play in the afternoon.

Parents

We had more parents dive in and play this time, ranging from “okay, I’ll give it a try” parents, who played for 10 minutes, to parents who came with their own Minecraft accounts and played for the entire two hours.

I had planned to set up a MinecraftEdu server in “Tutorial World” mode to let parents completely new to Minecraft get a gentle introduction, and, in retrospect, I wish I had done this, as there were some parents who might have been more engaged if they’d had a basic introduction. It would have also helped to have a volunteer “parent concierge” to greet parents, tell them about the opportunity to play, and so on. I was able to do some of this myself, but when things got busy I got pulled away to solve technical issues and I didn’t get to meet everyone.

Open Minecraft Lab Mac Room

Creative vs. Survival

Having learned that some people like to play Minecraft in “Survival” mode and others in “Creative” mode, we set up two MinecraftEdu servers from the very beginning this week, and posted their respective IP addresses on the whiteboards in the labs. Interestingly, the morning and afternoon sessions were the opposite: in the morning it was mostly creative mode players, whereas in the afternoon in was mostly survival mode.

Run Your Own Server

About half-way through each session I interrupted the players and offered to show them how to run their own Minecraft servers if they wanted. This was easy to roll out because there’s a single installer package for both client and server: it has the option of installing the server if a checkbox is checked. Generally it took less than 5 minutes to get a player rolled out with their own server, and we had 4 or 5 people doing this, usually hosting a group of half a dozen or fewer friends on their servers. The Macs seemed more than capable of running both server and client at the same time.

The 3D Printer Interlude

Earlier in the week I’d figured out how to use the amazing Printcraft.org Minecraft server which is set up to allow objects designed in Minecraft to be exported as 3D printer-friendly STL files. Don Moses at Robertson Library has been experimenting with a Ditto 3D printer in the library and printed me off a spoon that I designed in Minecraft (to go with the fork that he fabricated for me earlier in the week).

Printcrafted Spoons: Designed in Minecraft, Printed on 3D Printer

Don was around the library for the morning lab, and offered to show the 3D printer off to anyone who wanted to see it. A huge crowd descended on Don’s office – perhaps 20 of the participants and more than a few parents – and there was a lot of interest in both Printcraft and 3D printing.

Don Moses showing off the Robertson Library 3D Printer

The Lights

This week we offered to turn the lights off in the labs, leaving the screens to provide light; everyone said yes, and so we ran with the lights off in both rooms.

Hardware and Software

We had more players, so more technical issues, this weekend than last.

On the software side it tended to be players who lost their ability to create or destroy. Sometimes this could be traced back to an accidental re-assignment of the Minecraft controls; in other cases no cause could be found and the only solution was to restart their game.

Hardware-wise the only issue was headsets. In the PC lab there were no headsets, and therefore no call for them; in the Mac lab their are heavy headsets designed for the language lab, and in two or three cases these were missing or broken. For those that requested I was able to quickly solve this by checking out analog headsets from the circulation desk in the library which has a fleet of about a dozen for patrons to use in the library.

Griefers

Unlike the first week, we had no complaints about “griefers” at all; I think this was due to two reasons. First, we purposefully disabled TNT and fire from both servers, and so provided no opportunity for the “let’s blow everything up” fest that happened the week before. Second, by giving players the chance to run their own servers, we created a “release valve” for any situations that might have arisen otherwise. And, of course, we may have simply ended up with a more genteel crowd this week than last.

Helpers

We had a huge boost this week from Nicholas MacDonald, a graduating UPEI Computer Science student in the Video Gaming Specialization who volunteered for both the morning and afternoon sessions. Not only did Nick take over the operation of the servers, making sure they were tuned properly and not too loaded, but he was also a fantastic helper for those who ran into problems, both hardware and software. This left me free to step back and observe a little more, and even to play some Minecraft myself.

What’s Next?

We had 120 players through Open Minecraft Lab over two weekends, and I know anecdotally that there are more who wanted to attend and couldn’t. So the interest is there.

Other than the time to run the labs itself, it takes an hour or two of time during the registration period the week before to handle emails related to registration, deal with cancellations and so on, so it’s not a huge time commitment to run the lab. Promotion was through Twitter, Google+, Facebook and, mostly, through the school and friend grapevine of the players themselves.

Robertson Library seems happy to have the lab used, and the hardware setup and the support there is fantastic, so if we want to repeat the lab, or make it a regular thing, there’s certainly the venue to do it at. The library, however, is closed on Saturdays until the fall, so Saturday mornings will no longer be available.

I’m going to think about “where to from here,” and ask those who attended the first round via email, to gauge whether this is something we should end here or keep going.

Running Minecraft in PEI School Computer Labs

Because of the enthusiasm shown for Open Minecraft Lab, I’ve been working with teachers to see how feasible it would be to run a Minecraft server and Minecraft clients in computer labs in Prince Edward Island schools.

Turns out that it’s actually pretty feasible, at least if the hardware in your lab is relatively modern and the workstation you choose to run the server on has at least 1 GB of memory.

Here’s how we made it work today.

Install Minecraft Server

  1. Purchase the special MinecraftEdu Custom Mod - this is a special version of Minecraft, both the server and the client, optimized for schools. It’s only $41 US for a “single, one-time purchase for schools and includes all the software you need to use with any number of clients and servers”, which is an amazing deal given what a wonderful, helpful package it is. Once your purchase is complete, you’ll be emailed a link to a special password-protected web page at MinecraftEdu.com where you can download the Minecraft software.
  2. Login to a computer lab workstation as a teacher or administrator.
  3. In a web browser, visit the special MinecraftEdu.com page, logging in with the username and password you were emailed, where you can download the “Automatic Installer.” Save it to your “My Documents” folder on your shared network drive (I think this is your G: drive).
  4. Run the installer, and, when prompted, make sure you check the box for the “Minecraft Edu ServerTool”.
  5. Once the software is installed, you should have a shortcut on your desktop for the “Minecraft Launcher.” Double click on this to start the launcher.
  6. Click on the button for Minecraft ServerTool, select a Minecraft world to launch, and you’re done: you’re running a Minecraft server.
  7. Note the IP address in the Minecraft Server application: you’ll need to hand that out to students who want to connect to the server from workstations in the lab.

Install Minecraft Clients

The “Minecraft client” is otherwise known as “the game” or “Minecraft.” It’s what your students will launch to “play Minecraft” and it needs to be installed on each student workstation in the lab separately. On each workstation you need to:

  1. Login as a teacher or administrator.
  2. From your “My Documents” folder (again, I think this is your G: drive), double click on the same Minecraft Installer application you launched in step #4 above.
  3. Do not select the option to install the Minecraft ServerTool – you only need the client, not the server.
  4. When finished, you should, as above, have a shortcut on your desktop for the “Minecraft Launcher.”
  5. Logoff the computer.

Repeat the process on each workstation.

At this point you should find, at least if your experience matches our own, that students (and “guests”) can login to any of the workstations you installed the software on and run the Minecraft Launcher, select the MinecraftEdu game, select Offline mode, select Multiplayer, Direct Connect, and enter the IP address you noted in step #7 above; they will then be connected to your local Minecraft server and playing Minecraft together with all the other students in the lab.

The number of students who can play Minecraft at the same time while connected to your server will depend on the amount of RAM in the server. Your experience may vary, but I’ve seen references to a computer with 1GB of RAM being able to support 12 players, and a computer with 2GB of RAM being able to support 24 players.

Important Things to Note

  • Minecraft demands a relatively modern version of Java on the server and client workstations; it seems, however, that this is part of the current “image” installed by IT Shared Services, so that shouldn’t be a problem.
  • The process outlined above might not work for everyone; it’s not entirely clear why it’s possible to run Minecraft from the desktop as a student once the teacher account has installed it, and this might be an accident, or a fluke of the account we tried this process out with.
  • There is no impact on the school Internet connection from students playing Minecraft in the lab with each other; it’s unlikely, because of the firewall installed on the school network, that students will be able to connect to external Minecraft servers (it requires port 25569 to be open, which it probably isn’t), but if they can do this, then there likely will be an impact on the school Internet connection, so this should be avoided, at least during instructional hours.
  • Don’t run the Minecraft client on the workstation that’s running the Minecraft server; it will just bog everything down.

Photo Evidence

Here’s the Minecraft server running in a school computer lab:

Minecraft Server run in PEI School Computer Lab

And here’s the Minecraft client running in the lab:

Minecraft Client run in PEI School Computer Lab

How to login many iMacs at once using Apple Remote Desktop

The Modern Language Lab in Robertson Library has a fleet of 30 iMac computers that can be managed by the (dreamy) Apple Remote Desktop management application. From the instructor machine at the head of the room you can install software, observe, control and even issue command line commands on any or all of the machines in the lab.

When it came time to install Minecraft on all of these machines for our Open Minecraft Lab last Saturday we ran into the problem of the MinecraftEdu installer not being a bona fide Apple install package, so the software-installing magic of Remote Desktop couldn’t be used. Instead I needed to copy the JAR file onto each desktop and then have particpants double-click on it to start the install process.

This was fine, except for the fact that you can’t use Remote Desktop to copy files to iMacs that aren’t already logged in, so I needed to wait for each participant to login (the username and password are both langlabXXX where XXX is the number assigned to each machine, and both are pasted on a label on the front of the machine). What I really wanted, to make things go more smooth, was a way to log in all of the machines before we started, copy the file, and be ready to go out of the gate. Turns out that I could use the command line-sending magic of Remote Desktop to achieve this:

MYIP=`ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}' | cut -f4 -d.`
echo $MYIP

osascript <<EOF
tell application "System Events"
keystroke "langlab$MYIP"
keystroke return
delay 0.5
keystroke "langlab$MYIP"
delay 0.5
keystroke return
keystroke return
end tell
EOF

The first part of the code gets the last segment of the IP address for the machine where the script is running – so if the IP address is 137.149.131.136 the returns 136 – as that’s the number assigned to each machine and is the XXX part of the username and password.

The second section of the code uses the osascript command to send Applescript to the machine, essentially “typing in” the username and password and pressing return after each.

This works well, and can be run on all machines at once simply by selecting the machines in question from the Remote Desktop dashboard.

The only weak point comes if any given machine doesn’t have focus on the username field, which is where the Applescript assumes there is focus; I haven’t found a workaround for this yet.

Print Me a Spoon, Please

I had so much fun eating my salad with my 3D-printer-printed-fork today that I decided to see if I could have soup next time and use a 3D-printer-printed-spoon.

To this end, I found my way to Printcraft.org which runs a special Minecraft server wherein you can use Minecraft’s building tools to create objects and then (literally) push an in-world “Print” button to generate a 3D-printer-friendly .STL file.

So I fired up my Minecraft client, designed myself a spoon, generated and downloaded the .STL file (you can grab it here if you want to print it yourself), and emailed it off to Don, the friendly 3D-printed-managing librarian. A few minutes later Don sent back a rendering of the spoon ready to be printed:

3D Spoon

Don will print the spoon tomorrow and, assuming it holds water, I will eat soup for lunch.

Print Me a Fork, Please

Thanks to the tenacity and drive of librarian Don Moses, Robertson Library now has a 3D printer, a Ditto. Don spent the past weekend assembling the kit from scratch, and so when I heard on Monday that it was all stitched together, I sent him an email:

Coming up to campus on Wednesday for lunch. Will I be able to print a fork?

To which Don quickly replied:

I plugged the printer in … lights came on, fans whirled, did not go to home position so I’ve got some calibration to do. If I can print a fork I will :)

To which I replied:

Perhaps the motivation of knowing I will have to eat with my hands will inspire you to great feats of technical wizardry!

This morning I received a short email from Don:

Your fork awaits…

And, sure enough, when I arrived at Robertson Library this afternoon for my fortnightly lunch with Mark and Don, I was handed this:

NOKIA Lumia 800_002813

Later, in his office, Don showed me the 3D digital object that was the source for the print:

NOKIA Lumia 800_002815

It’s a little tinier that I needed, so there are some refinements for version 2.0 (Don just printed the object verbatim, without adjusting for scale or design).

But it’s a fork.

Made in the library.

Perhaps the first fork ever made in a library. Or at least in Robertson Library.

I look forward to seeing what emerges from the manufactory in Don’s office in the days and weeks to come.

Pages

Subscribe to Robertson Library Hacker in Residence RSS Subscribe to Robertson Library Hacker in Residence - All comments