Flipping the classroom: creating screencast lectures in Linux

I’m debating the idea (hype) of flipping the classroom for one of my classes next Fall where students watch lecture videos at home (or elsewhere) so I could spend class time doing more hands-on activities like discussing the art of data analysis and how to solve problems with statistics. I think Khan Academy, Udacity, and Coursera are doing a great service for humanity by offering high quality courses taught by excellent teachers online that are accessible to anyone with an internet connection.

I don’t claim to be a great teacher, but I think my own students might benefit from this pedagogical method. My main concern with this approach is that not all students will watch the lectures, just as how not all students read the assigned readings (guilty as a student). I guess I can give students short quizzes during lecture to push them to watch the videos. Also, I’ll give my usual challenging homework so that only students that study the material well could excel. By flipping the classroom, more material could be covered, students have access to the recordings in addition to my slides, and I could make sure everything I want to be said are recorded (as opposed to a live session where I could forget a few points). Lecture times can then be more interactive as opposed to me lecturing them for an hour.

I think most of the online education sites use Camtasia with a Wacom Cintiq to produce their videos. I use Linux and cannot afford such an expensive device. I plan on using a screencast software like recordMyDesktop or Istanbul to record the desktop screen and audio. For recordMyDesktop, I had issues with the encode on the fly option, which means recording very long videos could be an issue (1 minute of raw video takes up about 210MB, and 1 minute encoded video takes up about 8MB). Istanbul records on the fly without problem (I think). I haven’t tried recording for an hour and 20 minutes yet.

My plan is to create my lecture slides with LaTeX Beamer and use Xournal to annotate the slides as I’m lecturing; hopefully my Asus T101MT netbook is strong enough to do the recording as I utilize it’s touchscreen capabilities. I can just switch over to Emacs to illustrate data analysis in R when needed. My main concern now is where I could host these (large) videos…

Update 4/27/2012: Screencast with ffmpeg

After some testing, I think the best screencast software on Linux would have to be ffmpeg. First, remove ffmpeg and compile it from source based on the latest version per this post. Then, create screencast.sh:

#! /bin/bash
DATE=`date +%Y%m%d`
TIME=`date +%Hh%M`
ffmpeg -y -f alsa -ac 2 -i pulse -f x11grab -r 24 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -c:v libx264 -preset veryfast -crf 22 -c:a libmp3lame -ar 44100 -ab 24k -threads 0 /tmp/screencast_$DATE-$TIME.mp4

For more libx264 options, see this page.

Anonymous web-surfing with Tor

I wrote about Tor in the past but I never tried using it. I installed it on my Ubuntu laptop and tested using it via Firefox and [Torbutton]. Now that it’s set up, when I want to surf the web anonymously, I just need to launch Firefox and toggle Torbutton to be on. Even though the Tor daemon is running in the background, I won’t use it on a day to day basis.

I also downloaded the Tor Browser Bundle for multiple platforms per this post and placed them in Lightweight Portable Linux (LPS) USB stick so I can use them on other people’s computer should the need come. Of course, if I wanted to be even more discreet, I would boot up LPS directly.

VPN service for an anonymous or untraceable internet presence

I recently considered the use a paid VPN service to connect myself to the internet. Why? The internet is a whole other world out there, and you just don’t know how much privacy you lose with all the connections you make on your computer. I see myself and the average user at a disadvantage when it comes to privacy because we aren’t savvy enough to know the underlying workings of the internet. The transmission of data packets from one device to another gives rise to the opportunity for a knowledgeable person (not me, of course ;) to decipher private information in that transmission. I’m not even referring to people stealing my password. It’s just scary to know people can find out what sites you’ve visited, what services you use, etc. Your privacy can be compromised without you even knowing it. People can figure out your daily habits and make judgment on the kind of person you are. This is quite scary. For example, your internet service provider (ISP) knows exactly what files (unencrypted) you are transporting on the internet: the source, the destination, the timing, duration, frequency, etc. However, if your connection between two devices are encrypted, for example, using SSL, then all the ISP (and other snoopers) see is a stream of data that have no idea what it is without the proper key.

When connected to a VPN, all the connections made between you and the internet is channeled through the VPN server. Thus, your footprint on the internet is that VPN server. What your ISP would see is a bunch of encrypted data that is passed from the VPN server and to your computer. I feel my personal freedom (privacy) is more guarded using such a service.

This site offers some reviews for the major services available. I ultimately tried HideMyAss due to their pricing (their yearly price ends up being like $6.55/month), the number of servers and ip addresses available, the location of these servers (30+ countries), the use of OpenVPN, their non-censoriship of connections (e.g., torrent), and the data they collect (the time you log on and the time you log off).

My original plan was to set the certificates and credentials working with an OpenVPN client on my Asus RT-N16 router running Tomato firmware. However, before getting there, I tried the service on my Ubuntu laptop using the OpenVPN and the provided scripts. I have to say, I was disappointed in the difference in speed. Without the VPN service, I download at 2+ Mbps. With it, I was downloading at 1.3 Mbps. I understand that speed loss is inevitable due to the encryption and data outing through one more server before it reaches my computer, but I was expecting 1.9 Mbps. I tried a few other servers but the speed didn’t improve. As a statistician, I should try it many, many more times. However, I didn’t have the time for it, and besides, I will only commit to the service if I get consistent speed that’s near my official bandwidth, and this obviously wasn’t the case. HideMyAss’s customer service suggested I use their “Speed Guide” functionality in their software to select the fastest server for me, but it wasn’t available for Linux. Moreover, if I were to want use the VPN service on my router, I would want to stick with a single server and forget about it, not “shop” around for the right server each time it got slow to get the best speed. Now if somehow the server selection was automatic or that they limit only a certain number of users per server to give the best speed to the users, then I think I would like the service more.

Not only did I want consistent speed, I also wanted no abrupt in service since I would run it on my router where all my internet-enabled devices depend on for the internet. I use VoIP for phone service, and I do not want to have an abrupt phone service due to the VPN service having issues. HideMyAss claims to have a 99.8% uptime rate. I assume this is really good because Google claims to have a 99.9% uptime rate.

I ultimately cancelled HideMyAss and got a refund. However, I’m still on the lookout for THE vpn service that has all the features of HideMyAss, but with negligible difference in speed. I’m sure as time goes by internet speed will only get faster, and maybe by then I wouldn’t mind not downloading at 3 Mbps if I can download at 2.5 Mbps and retain privacy.

If you have any suggestions for me, do let me know!

For now, I just have to stick with SSL-enabled sites for the exchange of private information (email, newsgroup, etc.). For the exchange of important data, I always use ssh anyways.

UPDATE: wanted to share this recent article on Lifehacker, and this useful comparison of vpn speed test that’s done periodically. I guess HideMyAss is the fastest out there, and what the speed I was observing is typical of the encryption overhead.

Adobe Flash Player 11 beta out – no more npviewer.bin process sucking CPU resource?

Adobe Flash Flash Player 11 beta is out. I immediately installed it per these instructions after downloading the binaries here (via the ~/.mozilla/plugins method). I am so sick of the npviewer.bin process always sucking up my CPU resource. So far, I don’t notice this issue anymore. I really dislike the fact that Adobe doesn’t bother to fix bugs in their products for Linux users. Because of this, I hope all websites implement utilize HTML5 so I don’t have to depend on Adobe!

LaTeX or MathML on the web via MathJax

I recently discovered GmailTeX, a plugin (implemented via javascript) that displays LaTeX markup in my emails viewed through my web-based gmail account. SIDE NOTE: I implement it conkeror by creating a webjump for the bookmarklet code.

GmailTeX renders the LaTeX markup via MathJax, “an open source JavaScript display engine for mathematics that works in all moder browsers.” What I like about MathJax is that it displays the math symbols as actual characters as opposed to generating an image with all the math symbols (as implemented in, e.g, wp-latex). The display is really nice. What I REALLY like about it is that you can right-click on the math and export the raw code in LaTeX or MathML; the right-click even works in conkeror. That way, the reader can easily adapt your code without having to re-write them should it become necessary.

For WordPress, the mathjax-latex implements it finely; the syntax is also described here. To illustrate its power, let me state one version of the most important theorem in all of statistics, the Central Limit Theorem:

Suppose \( X_1, \ldots, X_n \) is a sequence of independent and identically random variables with \( E(X_i) = \mu \) and \( \text{var}(X_i) = \sigma\^2 \). Then

$$ \sqrt{n} \left( \frac{1}{n} \sum_{i=1}\^{n} X_i – \mu \right) \stackrel{\scriptscriptstyle d}{\longrightarrow} \mathcal{N}(0, \sigma\^2). $$

Using Google My Maps: planning my stay in San Francisco

So I have to be in SF for an internship this summer. As with all relocation there is the hassle of finding a place to live. After googling to find a suitable apartment, I realized that Craig’s list is the best place to go. I tried to avoid it at first since I just wanted to deal with apartment managers, but I realized that many apartment managements are bad (the reviews!). I thus resorted to Craig’s List (temporary and sublets) and housing options information from UCSF, such as this. Finding a place to live is a bitch because I won’t have a car (rely on public transportation). Thus I have to get a place that is close to public transportation stops (thank goodness public transportation in SF is great), especially close to where the company-sponsored bus stops are at. After finding an ad, looking up a location, weigh in a bunch of information (furnished, rent, utilities, etc), comparing it to bus stops, things got out of hand. I needed a program/service that plot out multiple locations. Google Maps came to the rescue! I used the My Maps feature (click on it), created a private map, plot out where the bus stops (company) are, 24 hour fitness, gyms, costco, etc. Next, each potential housing option, I saved it, along with it’s link (eg, craigslist) and additioinal information. This made the job a little easier (housing hunting is always a bitch!). Be sure to google or find out where the bad neighborhoods are, eg, tenderloin in SF.

vcasmo: video/presentation + picture/slides together!

I was reading this blog post on Revolutions Computing’s blog and discovered the vcasmo service, a way to post a presentation or video with the slides right next to it. This is DEFINITELY something I will use. Often times I watch talks or presentation videos online and most of the time the videos are either focused on the speaker and the projected slides or on the presentation slides with voice-over from the speaker. This method of presentation highlights both the presentation slides and what the speaker has to say, making me feel that I didn’t miss much from not being at the talk physically. Here is the embedded talk that made me discover vcasmo:

project management and task management with Google Apps and Many Moon

so i spoke about open source crm services and programs before. google really made it easy for groups to collaborate. i can attest because i use it with my youth group. Many Moon came out that made project management and task management even easier and better with Google Apps (well, i don’t even think u need this, u just need email probably). I haven’t used this really yet, because i don’t know if my youth group will be willing to use it. they don’t like the feeling of “work.” i, however, love to be efficient and productive. this service really makes any small business or group efficient and productive like the big corporations. great one!

with this, google apps, and tungle (scheduling meetings), everyone should be professional!