Thursday, December 30, 2010

KISS ubuntu on a tablet for grandma || WIP

What I really wish worked but doesn't because unity's bar likes thinking my tablet pen clicks are drag-and-drops, and can't make sure that single-click always brings that icon's window above everything else:

Tabmixplus settings: TMPpreferencesfirefox.txt

 [post in progress:]
out-of-box, ubuntu 10.10 maverick meerkat works mighty fine on fujitsu t4220 lifebook. suspend, brightness, suspend. hibernate I'm not sure about.

wubi install in chinese
vista: change boot order
ubuntu: autologin after 3 secs
ibus -- gconf-editor, super_l (not mod4, not super) to next-in-menu,
i wish tegaki was more useful :/
theme: giant red cursor, noticeable scrollbars
appearance: giant font sizes
firefox: giant font, tabmixplus settings to "single window single tab" mode, gmail autologin, minimalist gmail extension (last update: aug 2010, not completely function as of today but still nice), disable check for add-on updates, disable history except for cookies, install adblockplus, some flash stuff
firefox: add bookmarks, remove other buttons from toolbars, set homepage to gmail
gmail settings: keyboard shortcuts off, hide a lot of labels, Fail: about:config not needed, Fail: Prism doesn't work, Fail: it's ~/桌面 not ~/Desktop

discover "bug"? where dragging ibus language bar to any of unity's bars "locks" the bar :/ to fix, have to log-out, select "U. desktop edition, log-in and fix, log-out, select "UNR", log-in. I guess if you place it correctly, keeps me from having to worry about grandma dragging around the language bar. LB only needed because Pinyin allows switch to English, but this isn't reflected anywhere except on language bar, while turning Ibus on/off (aka switching to English) is reflected in notification area. Also, I hate that I can't move the Ibus icon around or make it larger.

lol at the random popups that turn up in english

ubuntu: disable screen locking (screensaver and suspend), edit power settings, disable automatic updates
remove crap from unity default menu, struggle in main to remove rest of icons, Fail: one desktop, experiment with double-click vs single-click, Fail: cannot change unity icons / menu bar size,

contemplate UROP working on ibus or a chinese handwriting recognition engine. could earn mone and chill with grandma more.

reflect that chrome netbook app was teh fails since i didn't describe my vision of an all-GUI gmail interface. nor integrating with chinese handwriting recognition.

:/ if only ibus and tegaki worked better. i skipped reading 小王子 with grandma for this, but i don't feel like I accomplished all that much...

Fail: can't solve issue of double-click unity, firefox is left with "another process already running", which if you close working window, click or double-click on FF icon doesn't work. Must hit close. (also, that pop-up is entirely in English :/)

Mouse settings: maximum drag and drop, minimum double-click,
keyboard: don't repeat key when hold and press,

Switch to Sand theme for more visible scrollbars. To investigate: how to make that "blue outline" when you're in a particular text input box more visible.

Wednesday, December 29, 2010

1and1: Shell access on (Linux) Home and Beginner accounts / Installing Prestashop || WIP

[Shell access on 1and1 (Linux) Home and Beginner accounts ] ...kind of. In a ghetto way.
(||WIP: format code, links. organize in steps.)

According to, Home and Beginner accounts don't have shell access (you can't ssh, only ftp) which sucks. Also, their ftp upload speed is insanely slow on my computer for whatever reason. Working off of the genius of, I can avoid learning PHP for a few more hours.

  1. create a getpresta.php file
    1. <?php
      echo shell_exec( 'echo This is a wget started at time:' );
      echo shell_exec( 'date' );
      echo shell_exec( 'wget ""' );
      echo shell_exec( 'echo This is a unzip php started at time:' );
      echo shell_exec( 'date' );
      echo shell_exec( 'unzip' );
      echo shell_exec( 'echo This is a unzip finished at time:' );
      echo shell_exec( 'date' );
  2. ftp to your 1and1 site (u1234123, and your password)
  3. copy over getpresta.php
  4. go to
    This should not take too long (more than 2 or 3 minutes)! If it takes too long, hit refresh. you may need to delete any partially-downloaded or unzipped files via FTP.

For Prestashop:
create .htaccess file for php5
AddType x-mapp-php5 .php

[edit 27 jan 2010: fixed missing ?php line, updated version from 1.3.4 to 1.3.6]

Tegaki: chinese handwriting recognition on ubuntu maverick [meerkat 10.10]

In short, in a terminal, type in:
sudo apt-get install ibus-tegaki
sudo apt-get tegaki-zinnia-simplified-chinese

Pinyin / keyboard-based Chinese IME works well enough in Ubuntu, but tablet recognition is iffy.

The tegaki 0.3.1 packages are already in the meerkat universe repositories. (ibus-tegaki, tegaki-zinnia-simplified-chinese), so it's super straightforward.

(if when you type in above the terminal says "can't find package", you need to enable to universe repositories. Via command line: Via GUI: go to [Applications > Ubuntu Software Center > Edit > Software Sources] and make sure that "universe" is checked.

Maybe you also need to install libzinnia0, not sure.

Yay, that's it! If you need to, start the Ibus daemon. [System > Preferences > Keyboard Input Methods] should prompt you to start the daemon if you haven't already. Then go to [Input Method > Select an Input Method... > Other > tegaki] and hit [Add].
You can also try [... > Chinese > Pinyin]  and hit [Add]. Note that that's a capital-P! "pinyin" is for typing the tone marks.

Now you can select "tegaki" as an Ibus input method like normal (by clicking the keyboard ibus icon in the notication area), and I think the default keyboard shortcuts are [left-alt + shift] for switching inputs and [ctrl-space] for turning Input Methods on and off.

Tegaki does some weird hogging-the-input on my computer sometimes, though, and I can't even turn it off via IBus>Restart. I have to go ps x | grep ibus, sudo kill -9 [process #], ibus-daemon (to restart ibus), which is silly.

I can't get the wagomu engine to install though. :/ grr it keeps saying "can't find wagomu.h"

Also, ibus and tegaki are teh fails compared to Vista [Business and Up]'s Tablet PC Input Panel recognition. Tegaki is unsuitable for my give-tablet-to-grandma project. Sometimes it works beautifully, but my dad and I spent 15 minutes trying to write "那" before we gave up. Also, there's no way to enter in pinyin to shore up the recognition fail, and there's no way to easily enter English characters. There's no way I'm going to tell my grandma "Then you go down to this corner here and click and pick English handwriting recognition."

I was puzzling over this and then I used Vista Biz's tablet pc UI and it did address all of these issues (of course, some issues are obviated because its handwriting recognition feature is, for the most part, accurate, so there's no need for a back-one-stroke in addition to a back-entire-strokes and delete-all-characters-I've-approved-but-not-yet-inserted = 3 delete buttons).

Of course, this means I should haxor on the tegaki code, but ?? I have no idea where to get started and wish I could just skype with the developer for 30 minutes. I bet that would save me 20 hours of confusion.

Also to consider:
  • Running Vista Business in a VM inside Ubuntu (if I can find or order the restore media), writing code to access its input panel technology
  • Plunking down 40 euros for
Alternatively, I could keep spamming my living group's mailing list and hope someone's interested enough to tackle this with me, or start spamming SIPB's mailing list

Also, my ssh is still more broken than not so I can't even anti-social-tastically whine on Zephyr and keep my daily realization that I hate computers from polluting the internets.

Useful command line of the day:
apt-cache search [search term]

apt-cache search tegaki


Monday, December 27, 2010

Zencart, Prestashop, and LAMP (on Ubuntu Maverick Meerkat 10.10) ||WIP

|| WIP: add links, fill out zencart, format with code tags

Yay for adapting instructions from books that only explain how to do things on Windows!

Anyway, I hate any sort of reinventing the wheel, so here goes.

Also, I would like to note that Zencart is so much more responsive than Prestashop when I installed both on the localhost server on my netbook, it's not even funny (<1 second compared to 5+ seconds to load the homepage). Maybe it's because I installed the sample data for Prestashop but not Zencart, but it would make sense that software created back then is much less of a (database-calls?)-resource-hog than software made nowadays, unfortunately.

My system:
Ubuntu 10.10

Set up LAMP (localhost server)
sudo tasksel install lamp-server
Explanation: Ubuntu/Debian software comes in packages and tasks, which are collections of packages.
Useful commands:
sudo /etc/init.d/apache2 restart

sudo apt-get install phpmyadmin
IMPORTANT: Hit "enter" when you tab down to select apache2 (see * in pic below) Otherwise, it gets rather painful.

Google will tell you to make a symlink, ala sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin (, but apparently that has security issues and the correct method is to 
sudo apt-get remove phpmyadmin
sudo apt-get install phpmyadmin
and hit Enter this time. 



Apache2 looks for sites in /var/www by default ( This directory is root-access only, so we'll download the zip and unzip inside a regular directory so that they unzip with the right permissions (unzipping the the /var/www does NOT work, if I access any pages with my web browser I'll get "503 Permissions" errors).
Let the normal folder be ~/MyProjects/presta, and let the folder we'll want to install into be /var/www/pshop.
  1. cd ~/MyProjects/presta
  2. Download zip of version you want:
    wget “"
  3. Unzip in normal nautilus:
  4. LAMP-specific: Now move to the apache localhost server directory:
    sudo mv /var/www/pshop
    (Explanation of /var/www:
  5. http://localhost/pshop/install in a browser, finish the first step,
    and get to Step 2: System and Permissions.
    (This is more reliable than following which was apparently outdated list of files I need to chmod.
    1. Fix gd2:
      sudo vi /etc/php5/apache2/php.ini
      Add extension=php_gd2.dll in there anywhere
      (php-gd2 package was already installed when i checked in synaptic, otherwise we need to install it)
    2. Set appropriate file permissions: (Hint: Hit the "update" button on the page after you chmod, NOT the refresh button) 
      cd /var/www
      sudo chmod 777 pshop
      cd pshop
      1. Prestashop v.1.4 alpha 2 (aka 1.4.06):
        sudo chmod 777 config upload download tools/smarty/compile tools/smarty/cache/ sitemap.xml
        sudo chmod 777 -R img mails modules themes/prestashop/lang translations themes/prestashop/cache
      2. Prestashop v1.3.5:sudo chmod 777 config tools/smarty/compile sitemap.xml
        sudo chmod 777 -R img mails modules themes/prestashop/lang translations upload download
    3. If you want to check that your permissions are correct (and not hit bogus "503 permissions" or "you need javascript" errors):
      ls -l | grep js
      should output:
      drwxr-xr-x   5 root root   4096 2010-12-26 11:28 js
  6. Click Next to go to Step 3. Database Configuration.
    1. Create a database for our prestashop site.
      In another browser tab or window: go to http://localhost/phpmyadmin
      In the field [MySQL localhost > Create new database], type in “pshop” and hit [Create]
    2. In the tab with http://localhost/pshop/install, enter in your details
      Database Server: localhost
      Database Name: pshop
      ... your MySQL username and password (what you use to login to PHPMyAdmin] ...
      Hit [Verify Database] to make sure you entered everything correctly
    3. Pick "full" or "simple" install
  7. Click Next. Wait a few seconds (an animated bar will appear at the top of the screen)
    Step 4. Now we can visit our site @ http://localhost/pshop, yay!
    but if we visit our backend, http://localhost/pshop/admin, it will remind us to delete the install folder and rename the admin folder:
    sudo rm -r install
    sudo mv admin sekrit123
    sudo rm readme*.txt
  8. Now, login to admin @ http://localhost/pshop/sekrit123 (obviously, you should use something other than "sekrit123" for your folder)
  9. Screwed up Prestashop? No problem, just delete the folder and the database and repeat above steps again.
    1. cd /var/www/
      sudo rm -r pshop
    2. go to: http://localhost/phpmyadmin/index.php?db=pshop
      or, more flexibly, go to http://localhost/phpmyadmin and on the left-hand side click the name of the database you want to drop
    3. Click on the "Drop" tab in red. It warns you that you're DESTROYING a database, click okay (this always makes me feel like going "mwahaha!" ^^)
    4. Copy the prestashop folder you downloaded and unzipped over to /var/www again.

Saturday, December 25, 2010

Profs should learn customer support best practices to help students || post-in-progress

you know what frustrates me about the way stellar and professors and TAs handle questions?
I feel like they don't implement Customer Support best practices. :P "Create an FAQ". (
Really, that's what it boils down to. "why are you answering questions individually instead of..." "why does no one use the forums" ...
I think this should be a crucial issue for Stellar.

Of course, I really respect my professors and TAs and they were all super-awesome and superhumanly patient with me.

|| this is a post-in-progress || to do: add links ||

[ctrl-shift-c]: chrome "inspect element" versus gnome terminal "paste" rant

Merry Christmas all! :)

I've been having a lot of fun doing all the things I wanted to do during the semester, but didn't have time to (thanks MIT). Unfortunately, this isn't "developing girl crushes" or "playing more games" or "watching TV" or even "hanging out with friends IRL." It's been "let's learn drupal, and certificates, and try to understand fourier transforms, and not fail classes next semester [:/ this is already starting to stress me out], and learn Chinese, and hang out with my family." Now there's only a week of Winter Break left before I head back to MIT and do Everything Ever during IAP. O__o;

Mrmm. Maybe there's something wrong with me. Oh well! :D

[rant follows]
Anyway, I wanted to say, WHY? Why is Chrome's "inspect element" keyboard shortcut set to [ctrl-shift-c] and, more importantly, why can't I change it? 

GNOME terminal uses [ctrl-shift-c] as the shortcut for copying (because [ctrl-c] isn't paste but rather "quit this thing right NOW") so I'm in the terrible habit of always hitting both by default now. But then I'm pasting code from Chrome and this "Inspect Element" thing comes up and eats an inch out of my 5 vertical inches of screen-space and now I've got this weird blue box following me around and my netbook is like "uhm what no haz processing power" and I'm like "aughhh I just wanted to copy something" and then I escape out of Inspect Element (hint: hit [ctrl-shift-c] again) and I try to [ctrl-shift-v] in terminal and it turns out that in the midst of fighting with Chrome, I'd totally forgotten about hitting [ctrl-c] as well. So nothing copies. Except now I go back and there's a good chance that since I just hit [ctrl-shift-v] in terminal, now I'm going to try to hit [ctrl-shift-c] in Chrome, AGAIN.

Also, however Chrome is integrating flash [video], it fails mightily compared to FF. I can run vimeo movies without skip in FF but not so for Chrome.

FF does seem slow on most pages compared to Chrome though, but that may be because of the 800 plugins I have installed.

Also, the download bar in Chrome is useful, but can't they have an "autohide" or "slide out" option? because it eats up 10% of my vertical screen space. It's like viewing the world through blinders.
[Edit 1/10/10: So it turns out there's an "x" all the way to the right that I missed due to having electrical tape covering that side of my screen]
Actually, I'd love it if the address bar only came up when I hit [ctrl-l] because I have everything else at my fingertips [ctrl-left arrow / right arrow], [ctrl-r] except for the delicious "tag" button (speaking of which, that's a rant for another time). Also, I'm forced to use the "system title bar" to have a good idea of what page I'm on (consider when I'm looking up answers on Ubuntu Forums and have 20 tabs open from that site... the favicons don't really help me distinguish pages). That bar eats up another 5% of vertical screen space, which is rather unfortunate.

Lately there's been these weird glitches, I think in both FF and Chrome, where the system title bar displays a page title for a page that I'm not on. Not sure if it's an effect of having 6000 tabs open, but I hadn't noticed it before a week ago.

ecommerce: magento vs. zencart vs. drupal ubercart

|| WIP: add links to relevant articles ||

Are you going to be using shared hosting (this is probably true for most small businesses at first)? Don't use Magento; it requires your own dedicated top-notch servers to run at good speeds. Magento is also extremely complex.

Are you solely ecommerce or do you want the flexibility to build a community around your products?
Use Drupal to build community. Also, searching for "migrating from zencart to drupal" gives more hits than vice versa; admittedly, only one or two major posts, but reasonable enough.

Do you need multilingual support?
Don't use drupal 6, the current version, because apparently it is made of fail. Wait for Drupal 7. While you're at it, consider waiting for UberCart 3, or its apparent competitor Drupal Commerce.

I think I'm returning to Zencart. Who needs social websites, anyway? x.x

Prestashop seems nice (although I really like the OpenCart backend and apparantly the Smarty template Prestashop uses is made of fail, there's not a good gallery of shiny opencart websites and free themes to convince me of the frontend). However, slow.

Loading times / speeds of zencart and prestashop:
( hitting refresh on the main page
on localhost server on my hp2140 )

  • Zencart with all sample data ("full install"): 1 second
  • Prestashop full install: 16 seconds =(
  • Prestashop simple install: 2.5 seconds

Wednesday, December 22, 2010

useful bash / vi commands

it's always fun to realize your ghetto workarounds were obsolete decades ago.

Instead of Tomboy > Ctrl-D "insert timestamp"
Try bash ~$ date

Instead of converting
fooemail, email2, email3 

by hand (end, delete, ctrl-arrow, space, delete, ...), try

~$ vi emails.txt

Also, "watch" for monitoring terminal (to your monitor) outputs instead of "tail -f" for monitoring file outputs

And [!] for accessing [history] commands by their number, and the [up-arrow] for previous commands

Also, ever tried to copy-paste a pdf table? (e.g. the innumerable schedules that professors think Must Be In PDF and put up on Stellar =/ has anyone heard of HTML? For the most part it's just as standardized and accessible and I don't end up with 600 files, 200 duplicates scattered my filesystem). It fails miserably, but again vi comes to the rescue, easily.

Tuesday, December 21, 2010

Yay! fixed it's group reordering issues. It sounds like it might've just been Chrome.

I was just wondering again if had become another one of those neglected, forgotten projects that the developer never passed on. Thank you, twitter and twitter search for being a fairly reliable to find out the most recent status of some project or other.

But I guess I have to agree with ... wish had better support :)

Saturday, December 18, 2010

technology review

bad: stacks of technology review, at EC desk, unread
better: keep a dozen for EC people to peruse and return after read, donate the rest to schools / other deserving people (parents? have the option to pay a bit and have it shipped to parents?)

I don't know why we all get free copies of technology review, but really, you only need a dozen per dorm or thereabouts, not 500. It's wasteful.

Friday, December 17, 2010

PDFs need: image "links" where you can hover over the link and there'll be a lightbox (or popup? O.o because need zooming buttons) of the image. Useful for lecture notes when they refer to images on say the previous page, where even "view> dual" doesn't work

Also / alternatively, a "view>dual" on pdf readers that let's you choose how the 2-pages-views are split (this working whether you're "view>continuous" or not is optional), e.g. create (2page) from
(1,2) (3,4) ..
(2,3) (4,5) ...

Ubuntu still needs a tabbed pdf reader...

Monday, December 13, 2010

making wheels

metal circles are really useful, but how do you make them?
for wheels, bike rims...

Anyway, I'm thinking of this again, because I recently visited Haystack Observatory, and they have this giant metal circular track that's bent railroad track. [edit: and by giant I mean 50'+ diameter GIANT) And because of imperfections in the circle which come from bending railroad track, the concrete is actually cracked as the antennae rotates. Is that the state-of-the-art of giant metal circle making?

1. Maker Faire NYC:
giant 5 ft wheels: apparently they just picked the rim up as trash from electrical work around the city

2. Mars's Pennyfarthing:
which sits rider-less at MITERS because he miscalculate and his legs won't reach the pedals-
apparently, there was round table of the right-ish diameter (3 feet?), so he just took the ?steel? and literally rolled it with his hands...


3. Bend some conduit? They... probably wouldn't stand up to use though, if you can bend them that easily.

4. Plastic instead of metal -- melt plastic bags and form as appropriate (Star has this up on Instructables somewhere)

Would metal casting work? For small wheels, I guess there's no reason why not.
Make induction furnace to melt aluminum (Josh is building this). Pink styrofoam insulation cut out in the shape of a wheel with a bit sticking out. Sand to bury the styrofoam except for a small bit. Pour Al, melt styrofoam to nothingness.

The internets hold few answers.

Machine 'em: some amazing model train wheels here:
(details here:

The English wheel threw me for a bit, but it's more for planar curved surfaces, not rims:
(see pics here:

anyway, I should stop punting (aughhh 2.005, I just want to throw in the towel and fail the final and go on my merry way.... >.<) (is it a hub motor? O.o)

[edit 16 dec 2010 -- yay finals punting] Well, yike bike's hubless so it's clearly not a hubmotor ^^;
Also, page 25 on this guide says custom wheels can be made with "three plates: Two outer flanges, one (or more) slightly smaller middle."

Sunday, December 12, 2010

zephyr needs: 
persistence between logins (provided by screen right now) (logs aren't really the solution)
a GUI (people are working on webzephyr)

integration with stellar (for logs for classes)

So many things to learn!

I don't need to take a class to get permission to learn something.

I'm in course 2 (mechanical engineering) because I like 2.007 (robots! FRC!) and 2.008 (toy yo-yos) and 2.009 (product design). While I was looking forward to 2.009 to magically give me the skills to build everything ever, Charles has been building stuff for so long that he thinks of 2.009 as rather institutionalized and drawn out. Haha, such different perspectives.

also, because course 6 is very depressing to be in for someone coming in with relatively little background :)

things learned from failing my 6.005 project earlier this week: debug early. try out test-based coding. start inhaling caffeine earlier.
Also, ignore everyone else concerned about not getting As (I just want to pass, this semester. This semester was special, it's okay that I screwed up).

There's so many opportunities here. It's hard for me to keep a coherent idea of what I want to do.
* help out with Sana (software)
* help out with RFID cowtagging (hardware)
* continue work with La Vaquita
* do better in classes
* UROP in research, not building
* interact with people on hall more
* learn more about energy
* do mediocre in classes, make awesome things / work on my own crazy ideas
* do mediocre in classes and making things, participate in awesome activities (jiu jitsu, caving, radio, newspaper, flying, debate, a gazillion things that I'd like to know more about)
* talk to my grandma more
* talk to my friends more
* sleep more??
* draw, practice languages, cook

Speaking of conflicted identities, should I drink my tea sweet or bitter? As a Southerner or as a Chinese-American? :)

Tuesday, December 7, 2010


Wow, coding does not understand time limits. Everything takes 3x as long as hoped for... simple things turn out to not be so simple.

But I'm really happy. Despite maybe we won't finish on time, we definitely won't have the coolest project, but I'm happy to be getting course credit for learning to code. I'm happy that I have an excuse to burn hours coding.

This is only possible, of course, because I have less homework this week-- I don't have 2 psets, which if done fully would require roughly 10 hours each.

I should be studying, though, which is the point of no psets. Oh well. I think I'll just enjoy my caffeinated sleep-deprived moment, where I marvel at the difference between my confidence at the beginning of the semester and the end of the semester.
"I can't code" -> "If only I could code more efficiently, could code better..."

But I'm not daydreaming about all the things I wish I could do if only I could code... I'm having fun chomping down on little chunks of coding ideas and really learning stuff.

And my team members are really nice and supportive.

Now back to coding a networked anti-battleship game in Java... oh and throw in the design amendment with cheating and hash checking and AI... now force-feed to students, some of whom have never written any GUI or network code before :)

Monday, December 6, 2010

grooveshark ui thoughts

grooveshark seems to time out faster with the update

i wish they would give a small audio beep-beep 10 seconds before stopping the music and asking me to hit "resume, so instead of the music stopping entirely I can switch over quickly, hit a "i'm still here" button, and the music never stops flowing.

right now, like with pandora ads, i only really notice grooveshark when I'm annoyed by its asking me to hit resume

twitter for peer discovery, 6.005

why I wish I was able to exhale code:
using twitter instead of udp for peer discovery (why do you need a server? just playing antib over twitter)
cracking the hash -- use rainbow tables? hmm. how did they do it?? can we do it better? mmm. can i just join their team temporarily to work on their AI? lol.

[edit dec 7 2010] asuther suggested the twitter idea, after I ran into the lounge and explained how "everything must twitter" was fulfilled by a 6.005 team that had a working twitter button in their game
and hash cracking is a natural route for AI because of the very weak security system we're using (no salts, very low key entropy)

I accidentally a 6.005

and itś eating my life and making me wish I knew how to code / had nothing to do except 6.005


why am I in this class? I can´t program.