Erwaman's Personal Journal - July 2009

Back


Eating, Retro Gaming, Cash Cab

The title basically sums up the past three weeks of my life. That's the summary. The details:

My research partner Thomas bought a Sega Dreamcast and two controllers in NYC. He got a pack of CD-Rs and started downloading Dreamcast games and burning them onto CDs. One of the "games" he downloaded was a NES emulator + Sega Genesis emulator + 2000 games for the two systems. The NES emulator and games hooked us right away. A few days in a row, Thomas and I had some five-hour gaming session and beat every level in Super Mario Bros. 3, not using the whistle at all.

Next, we started on the Mega Man series for NES (1-6). As of today (7/10), we've beaten 1 and 2 and are working on beating Mega Man 3. I have to say Mega Man music is so freakin' awesome. Great gameplay, great graphics (for the NES), and great music - a great series! Some of my favorite songs:

This is just a sample, but there's so many other good ones.

Mega Man!


First Ever Successful 4x4x4 Blindfolded Solve, July 10, 2009

I first read this thread started by Chris Hardwick about how to solve big cubes (4x4+) blindfolded back in high school. I read through it carefully and started understanding the concept of commutators. I played around with commutators on the 4x4 for a little bit and realized I might be able to solve a 4x4 blindfolded using commutators. But though I started learning and trying to solve a 4x4 blindfolded, I didn't have the patience and determination to stick with it and never succeeded.

I never forgot about that thread since then and I've understood commutators since then. Well, last week, I decided to try again at solving a 4x4 blindfolded. Surprisingly, I still remembered the commutator principle and did not need to reread the whole thread. As I executed commutators on the 4x4, I realized they intuitively made sense to me now.

Starting from a couple nights ago, I really focused my efforts on solving a 4x4 blindfolded. I wrote down the scramble and wrote down the cycles for the centers, edges, and corners. I first solved it with the blindfolded method with my eyes open, following the cycles on paper, just getting more used to using commutators. Then I rescrambled the 4x4 using the same scramble and tried to execute the cycles looking at my notes but not at the cube. I would solve all the centers and then peek at the cube to see if the centers were solved. If not, I would solve the cube, apply the same scramble, and try again. Though I made mistakes many times, I started discovering some common mistakes and understanding what went wrong. Eventually, I solved the centers successfully and then used the same process for the edges.

After I had successfully solved the 4x4 only looking at my notes and peeking at the cube after solving centers and solving edges, I tried solving the cube only looking at my notes (the cycles of the pieces I had recorded) and not peeking at the cube at all. After about three tries, I finally succeeded.

My next step was to memorize all the cycles and the corner orientation and do the solve completely from memory. This was very exhausting and I felt my brain throb after several failed attempts. It was also very frustrating to see a jumbled cube after exerting such effort for 10-15 minutes. But eventually, I succeeded, and the rush of endorphins was unbelievable.

I then used the Caltech Cube Timer (CCT) to produce another 4x4 scramble, wrote it down, and repeated the process that I used for the first scramble. This time, having already discovered some mistakes I would often make and being much more used to using commutators, I went through the steps much quicker.

On my third scramble, I wrote the scramble down and then directly tried to solve the cube completely from memory. Half an hour later, I pulled off my blindfold to an unsolved cube. Very disappointing. But only 8 centers and 3 dedges were unsolved. So it was close! I solved the cube and applied the scramble again, but this time, I wrote down the cycles and followed my notes while solving. I succeeded without encountering the problem that might have caused my failure from before. So I assumed that before I must've just unwound a setup turn incorrectly.

Fourth scramble. I wrote it down, applied the scramble, started the timer, and tried to blindfold solve the cube. 32 minutes, 52.96 seconds later, I removed my blindfolded to a solved 4x4! I couldn't believe it! In my cubing career, the sense of euphoria I felt was rivaled by only a few other moments: seeing my first 3x3 blindfolded success and setting my first sub-20-second average on the 3x3.

I plan to practice 4x4 blindfolded over the next couple weeks and will attempt my first official 4x4 blindfolded solve at the Big Cubes Summer competition 2009 in Allentown, PA, on Sunday, July 26, 2009. As of today (7/10), only 28 people in the world have officially solved a 4x4 blindfolded. I hope to be the 29th :D, though others might be first at the many competitions happening between now and 7/26.

And now, the details of my first successful 4x4 solve:
Scramble (executing starting with white top, blue front): B' Fw F' D' Uw U L Fw2 D' Uw U' Fw' U' Rw2 Uw' U' R D Uw' L R2 F2 Rw' D2 U L' F' U2 R U2 Fw' F' Uw' U2 B2 Rw2 Uw U2 Rw' F2

I did a z' y' before starting memorization to try to maximize the number of centers already solved.

Memorization:

  • I give each center position a letter from A to X. On the U face, starting from the top-left center and working around clockwise, the center positions are A, B, C, and D. Then on the front, starting from the top-left center, the positions are E, F, G, H. Then the right side - I, J, K, L. Then down - M, N, O, P. Back: Q, R, S, T. And finally left: U, V, W, X.
  • I use the letters A to X for the dedges as well. In the U layer, the UFr dedge is A, and then the other dedges, working around clockwise, are B to H. Then in the middle layers, starting with the FRu dedge, and working up-down and clockwise around the cube, the dedges are I, J; K, L; M, N; O, P. Finally, the bottom-layer mirrors the top. Starting from DFr and going around counter-clockwise, the edges are Q through X.
  • For corner permutation, I give each corner position a number. UFR is 1, and going around clockwise, the other three corners in the U layer are 2 through 4. In the down layer, DFR is 5 and going around counterclockwise, the others are 6 through 8.
  • Finally, I memorize corner orientation visually.
  • Here are the cycles and corner orientations I actually had for my solve:
    • Centers: (A U I Q J E) (B W S G T) (C H M K) - The way I remember this is to make words and phrases out of the letters. So what I memorized was: (An Undergraduate In Quebec, Just Excellent!) (Big Weekend Sheet, Go To!) (CHarM King)
    • Edges: (B K H W P E O L D) (C Q M N X S R G) (F J V) (I T U) - What I memorized was: (BacK? HoW? PEO LieD!) (Cocky Queen Must Not eXceSs RuG) (Fruit Juice Vector) (It yoU!) - It's amazing how well this memorization system works - the sillier the words and phrases I make, the better I tend to remember them. I still remember some of my phrases from previous scrambles!
    • Corner Permutation: (1 7 5 2 6 4) (3 8)
    • Corner Orientation: Antisune-Antisune (AA) at UL, AA at FR, and Triple Sune at DF/DL

      If anyone wants to learn blindfolded cubing now, check out Tyson Mao's tutorial here. Cheers :D!

"Go big or go home!" - quote on the wall at GSET '09 next to giant 4' x 4' pictures of several of the counselors' faces.


Fun with GNU Radio!

A couple weeks ago, my research group achieved its goal to design a random frequency hopping program for the GNU Radio and the USRP (Universal Software Radio Peripheral). Since then, we've been helping our graduate student mentor Fangming He collect some data for his projects and we've recorded some GNU Radio demonstrations on video [for kicks and giggles, some outtakes]. In these final two weeks, we have to write a research paper and design a research poster for the final presentation. Once done, they will be posted on my research webpage.

The Stevens REU program has been pretty laid-back in general, but I still feel it's been a productive, fun, and meaningful program. Entering this program, I knew zero about software-defined radio (SDR). Almost nine weeks later, we're pretty well versed in this field, and Thomas and I decided to make a song about SDR and our research group's (Thomas, Kevin, and me) experiences with GNU Radio. I wrote some lyrics and Thomas came up with a guitar tune and we recorded it. Listen to the song here (headphones recommended, the volume is a little low) (Edit (7/18/09): Version 3.2 released) and see the lyrics (and their explanations) below.

The GNU Radio Song

In the wireless lab, with no wireless Internet
In the wireless lab, with no wireless Internet

The primary place we work in is the Stevens Wireless Lab, which is room 219 in the Burchard Building. Ironically, the wireless connection is unreliable in the Wireless Lab. It goes in and out. The wired connection works, but it also has its fits, when download speeds drop to about 4000 BYTES/s.

G-N-U Ra-di-o oh oh ohhh ohhh

Plug in the USRP, start up the GRC
Plug in the USRP, start up the GRC

The GNU Radio software radio package is primarily designed to be used with a radio hardware component called the Universal Software Radio Peripheral, aka USRP. You can buy them online at Ettus Research. To make them work, you have to put antennas on them and install transmitter and receiver daughterboards inside them.

The USRP requires an external power source and is connected to a computer via a USB 2.0 cable.

The GRC, or GNU Radio Companion, is a graphical, drag-and-drop environment in which to design programs for the GNU Radio and the USRP.

G-N-U Ra-di-o oh oh ohhh ohhh

Installing Ubuntu, version nine point zero four
Installing Ubuntu, version nine point zero four

Doing research on an open source software package, what better operating system to use than open source Linux? We installed Ubuntu 9.04 Jaunty Jackalope. Though we didn't know at the time, Ubuntu is the Linux distribution used by most GNU Radio/USRP users.

G-N-U Ra-di-o oh oh ohhh ohhh

Trying to install Matlab, no space on my hard drive
Trying to install Matlab, no space on my hard drive

This verse is a reference to one of many project ideas suggested by Professor Yao and Fangming which we eventually scrapped. Currently, the signal processing blocks for GNU Radio are written in C++ and the flow graphs that create instances of the blocks and connect them all are written in Python. We were hoping to create a wrapper for Matlab so that we could call Matlab functions from Python.

So to get started on this project idea, I downloaded Matlab from the Stevens software library and installed it with no problems. Then our group member Kevin downloaded Matlab and tried to install Matlab, only to discover he had not given his Linux partition enough hard drive space. We ended up spending a couple days trying to repartition his hard drive, met with many problems and uncooperation from Kevin's computer. Eventually, we discovered that Vista has a built-in partitioner, which we used to shrink his Windows partition before completely reinstalling Ubuntu. After all this repartioning and reformatting, I don't think we ever got around to installing Matlab...

G-N-U Ra-di-o oh oh ohhh ohhh

In the first week Kevin says, check out spectrum_sense
In response Anthony says, how the hell does that help?

This probably happened in the second or third week (but 'first' sounded better in the song), but basically we had played around with most of the examples and the GRC and did not know what to do next in order to try and create a random frequency hopping program. Kevin recommended we check out the source code of an example file called usrp_spectrum_sense.py after he saw this thread. I had seen the thread too and looked through it briefly, but I thought usrp_spectrum_sense.py was too technical and advanced for us and wouldn't help us in what we were doing anyways.

G-N-U Ra-di-o oh oh ohhh ohhh

Five weeks la-a-ter, we get an e-ma-a-il
Dan from the KTH, says to check out spectrum_sense

About five weeks after the events of the previous verse, I emailed the discuss-gnuradio mailing list asking them for help accessing the data graphed in the FFT plot. Less than 12 hours after I sent the email, I received a reply from Dan Rosenqvist, a person at the KTH (Swedish for Kungliga Tekniska högskolan), aka the Royal Institute of Technology, in Stockholm, Sweden. In his email, he said he was working on a similar project and recommended we check out the email thread that both Kevin and I had already seen before along with usrp_spectrum_sense.py. This time, we went back and read the thread in depth and perused the spectrum_sense code carefully, and using this code as a basis, we were eventually able to create a random frequency hopping program. So basically, I should've listened to Kevin five weeks before this.

G-N-U Ra-di-o oh oh ohhh ohhh

We did a demonstration, for some folks from BAE
Joe Mitola was there, he invented SDR

Since we got our random frequency hopping program working, we have been giving many demonstrations to the company representatives, high school counselors, and students who have come to see Stevens and the Electrical and Computer Engineering building. One presentation we gave was to some representatives from BAE (a British aerospace and electronic systems company). Of course, Professor Yao was there as the tour guide, but Vice President of Stevens and former Electrical Engineering Professor Joseph Mitola was also there. Dr. Mitola was the person who coined the term "software-defined radio" and wrote the first paper on SDR in 1992. He was also the first to present the idea of cognitive radio in 1999, and now, he wants to create semantic radios. It was a huge honor to do a basic demonstration for him, and he told us he was very impressed with the work we had done.

G-N-U Ra-di-o oh oh ohhh ohhh

Pseudo-random multi-band, frequency hopping program
Pseudo-random multi-band, frequency hopping program

This was our goal, to create a pseudo-random multi-band frequency hopping program, and we achieved it. Huzzah! GNU Radiooo!

G-N-U Ra-di-o oh oh ohhh ohhh
G-N-U Ra-di-o oh oh ohhh ohhh

Now...to get cranking on the research paper.


First Day of My Internship, 7/27/09

Three days ago, I finished the 10-week research program at Stevens where I did a project on software-defined radio. Today, I started a 5-week internship at Pink OTC Markets, where my brother works.

I guess today was my first experience ever of an industrial development environment. Basically the whole day, I was sitting in a chair in front of a computer. Wow, that's straining on the eyes. Tomorrow I'm bringing my weaker prescription glasses.

I left the house at 7 am and didn't get back until past 8 pm. Dang. And in less than an hour, I'll be asleep again. So this is what I'll be doing for five weeks, huh? I'm starting to appreciate the work life and the time and energy that goes into it.

Heh, after this first day, wow, my Stevens research was a vacation! At Stevens, I probably averaged less than 3 hours in the lab per day. I had time to experiment with cooking, time to learn 4x4 blindfolded, time to marathon Mega Man, time to learn some guitar chords. Now I basically have an hour of free time outside of eating, sleeping, commuting, and work. So I already started capitalizing on the two hours of commuting time on the NJ Transit by reading and doing problems from a Lin Alg book by Hwei P. Hsu (a distant cousin...j/k).

Dunno if I could be a software developer for a career. Sitting in front of a computer screen all day, overwhelmed by emails, pretty little interaction (a lot of which is digital). Academia is actually seeming more attractive. At least you have students constantly bothering you and you get to teach. Yeah, you have to write lots of proposals and publish papers, but I think there's more variety than being a software developer that just moves from project to project.

Dunno which is more fun - research or projects. I just know once I get into a problem and a solution algorithm starts forming in my head, I can get really absorbed by it and the work is fun and engaging. But is the research I've done so far anything like real research? I have an impression the real thing involves poring over long, boring, technical papers, which I've done very very little of, even in research. I tend to think real research involves a very specific, obscure, technical tiny little detail that you focus all your attention on, and is not so broad and fun and easy-to-see-the-applications and can-do-cool-demonstrations like the GNU Radio project was. Hmm, maybe I would like software projects better because they are all applications, designed for company or client use. Their purpose is to solve a problem or efficientize things (yes, I know I just made up a word). As a more practical-minded person, I think I might like that better. The theoreticalness of some research (particle physics often comes to mind) seems so pointless and non-applicable and turns me off from research. But I guess I can see how it's cool to try and discover even tinier subatomic particles, however pointless it might seem, just like to me, it'd be cool to successfully solve a 5x5 blindfolded, no matter how useless a skill it might be. But maybe the "coolness" of such cubing accomplishments for me is the satisfaction of achievement, being able to do well in competitions (competitive person I am), and the demonstrability of the feat to others. Perhaps there's a similar satisfaction in new research and pleasure in being part of an academic community.

Pardon my rambling thoughts about the future. So what am I doing at Pink OTC? I'm looking into the Google AdWord API and trying to develop an automated way of adding advertisements (like those Sponsored Links you see when you search for things like Rubik's Cubes and those "Ads by Google" you see on sites like NY Times). Pink OTC has a database of OTC-traded stocks, and I'm trying to design something so that whenever a new stock is added, a new Sponsored Link ad will be created that appears whenever someone searches the stock or its ticker symbol. Right now, Pink OTC already has Sponsored Links for some of its top tier OTC stocks (e.g.: Roche). These ads and their corresponding keywords, sites that display them, bids, and cost per click were all created manually, and this was manageable for the 50 or so top tier OTC stocks. But once you get to the second and third tiers, there are hundreds to thousands of stocks, so an automated system becomes necessary. That's what I'm looking into.

Oh look, it's 9:30. Time to go to sleep again.

Good night.


Dealing with a Sedentary Desk Job in Front of a Computer

Well, working 9 hour days staring at a computer screen is pretty taxing and bad for your eyes and sitting at a desk all day is pretty bad for your body, too. So I figured out some things to do to reduce the eye fatigue and the time spent at the desk:
  1. Bring a toothbrush, toothpaste, floss, and a cup (optional, or use a plastic cup from a water cooler). Brush and floss after every meal or snack.
  2. Run up and down the stairs to freshen up.
  3. Eat your lunch in the break room or kitchen. Don't bring your lunch back to your desk and eat it in front of your computer. No need to read anything while eating either. Just eat, savor the food, let your mind wander, and perhaps strike up a conversation with employees walking by.
  4. Find an empty room that no one goes into and use it to do push-ups, leg lifts, dips, and other exercises in. I use a conference room on the floor above that hasn't been set up yet.
  5. Bring water bottles to fill up.
  6. Go bother your brother who sits behind you.
  7. Decrease the brightness of your monitor. Or decrease the contrast. Or both.
  8. Go to Control Panel->Display->Appearance and change the Font size to "Large Fonts" or "Extra Large Fonts."
  9. Move the monitor closer to your face.
  10. Use dark backgrounds and themes for all your programs and applications (e.g.: dark text/program editor backgrounds, dark desktop, dark Google homepage (use the Stylish FF addon), etc.).
  11. Increase the text size or zoom in programs you use. Examples: Use Ctrl++ to increase the text size in your web browser. Increase the zoom in Word or PowerPoint. Increase the text size in your text editors.
  12. Take some time in the morning and/or during lunch to read the newspaper (I pick up the amNY and metro (both free) at NY Penn Station before I transfer to the subway) and do the crossword, Ken Ken, and Sudoku in it.

That is all. Almost time for sleep again.

Peace.


Back