Eating, Retro Gaming, Cash CabThe 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, 2009I 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:
I did a z' y' before starting memorization to try to maximize the number of centers already solved. Memorization:
|
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
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
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
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
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
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
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
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
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
Now...to get cranking on the research paper. |
First Day of My Internship, 7/27/09Three 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 ComputerWell, 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:
That is all. Almost time for sleep again. Peace. |