Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in r_transpose_p's LiveJournal:

    [ << Previous 20 ]
    Monday, July 21st, 2008
    5:18 pm
    I <3 Generics
    That is all.
    Sunday, July 20th, 2008
    5:37 pm
    Sometime try a google image search for each of the following items individually

    1. marlboro

    2. budweiser

    3. Campbell's soup

    4. Cracker Jacks



    Is it just me, or do all of these have similar color scheme's and design styles? Was there a "red white and blue" (or perhaps just "red and white") era of consumer product packaging design in the US?

    What else looks like this?
    Wednesday, July 16th, 2008
    8:50 pm
    American Food
    Several times I have been baffled when immigrants to this country ask me "So what is 'American food'?"

    Usually this is asked when we are eating at an ethnic restaurant of one sort or another.

    This evening I was sitting in my office eating a peanut butter and jelly sandwich, and I realized both the answer, and why it was so hard to answer in the setting of "sitting down in front of a plate of something delicious from some other ethnic group"

    The answer is "American food is driven primarily by goals other then taste. Usually these are some combination of convenience, speed of preparation, cost, and nutrition. The cost factor is confused somewhat by our ruthlessly efficient industrial farming system, the price of labor in this country and our unusually cheap supply of meat. The nutrition idea is a relatively recent addition, but our cuisine is still dominated by convenient foods which now advertise nutritional content rather than how filling they are. These ideas are epitomized by a peanut butter and jelly sandwich. Or a McDonalds hamburger. Or a packet of microwavable 'Lean Cuisine' brand dinner. Taste is still not a primary concern. I think these ideas probably stem from a work ethic and attitude towards 'gluttony' and 'frivolity' which come from the protestant roots of our culture. Note that it is somewhat difficult to handle an American workday and commute and still prepare the foods you are used to from your home culture."

    It was so hard to answer in the setting of some other culture's ethnic restaurant because we really have no equivalents to the meals served by many other cultures, which are more driven by taste concerns, and require more cooking labor by the food consumer (or immediate relative thereof). I suspect that even our adaptations of the food of other cultures bends the adapted meals towards our own food philosophy.

    One of these days I will find out more about what ordinary Americans who live in the greater New Orleans area eat. I think the food there is the only food I'd describe as both "American" and "delicious"

    I wonder if these culinary philosophies could be extended to "American beer" and if the resulting set of priorities for making a beer creates cognitive dissonance with what may be the religious roots of our culinary culture.

    Current Mood: duh
    4:34 pm
    realization
    So after working on a simulation platform for my robots in Java for some time, and having done large projects in C++, I am slowly coming to the conclusion that "Java is not significantly easier than C++"

    Some caveats :

    1. I am comparing templatized C++ with STL and Boost to Java with Generics. Day to day use of either language changes radically if one omits templates, generics, STL, or java.util

    2. Last time I used C++, anything that wasn't performance critical used Boost's "smart pointer" library, thus alleviating garbage collection issues. Many things that were performance critical used custom allocators, and careful avoidance of having to do too much memory management.

    3. Last time I used C++ we used a coding standard that was basically designed by former Java programmers. I do recommend using Java as a style inspiration for anyone still programming in C++

    4. I am so hooked on templates that I find java.lang to be almost unusable without the addition of Java generics.

    5. I usually get stuck on "computational geometry code" This was probably not what Java was designed to do. I also tend not to use a lot of non-trivial parallelism, but I could imagine this being much more of a problem in C++ than in Java.

    6. I have programmed in C/C++ for years. I am probably biased in ways I'm not even aware of.

    Thursday, July 10th, 2008
    11:54 am
    San Diego
    Something that took me a while to notice here : When airplanes fly overhead, they sound different from the airplanes I'm used to.

    I finally realized that I am probably hearing military aircraft most of the time in San Diego, and commercial aircraft elsewhere.

    I haven't heard anything cross the sound barrier, but so far most of the planes I hear are louder, and cross the sky faster, than the "jumbo jets landing in San Jose" that I'm used to. They sound more like fast versions of the Aeroflot planes that used to land at Dulles (you could tell those apart from the other passenger planes by the noise alone)

    Of the 5 or so helicopters I've seen here, only one wasn't a military helicopter.
    Sunday, June 1st, 2008
    5:05 pm
    Tires
    Gotta get new tires.

    I popped one last night.

    Car drives fine on rims for a short distance though ;)
    4:15 pm
    eclipse
    Okay, I totally need some sort of tutorial on eclipse.

    Like "How does one deal with packages and version control" or, even better "Whats the deal with packages?"

    edit: and "workspaces" What are workspaces? (I probably get the general overview, but I'm confused enough where repeating that might help as well)
    Thursday, May 22nd, 2008
    7:28 pm
    From a friends journal
    Reposting this because it is cool

    http://www.kiva.org/

    A website that lets first-world citizens make microloans to third-world entrepreneurs. I am guessing the point is not to make a profit, but to use that $25 that buys jack shit in our world to help someone else get a start.
    Monday, May 19th, 2008
    1:54 pm
    Happens everywhere
    Apparently Japan isn't producing enough engineers anymore.

    http://www.nytimes.com/2008/05/17/business/worldbusiness/17engineers.html?em&ex=1211256000&en=b07ebc3233bc5243&ei=5087%0A

    Remember when everyone was worried that we wouldn't keep up with the Japanese because we weren't producing enough engineers?

    Why is it that nobody wants to be an engineer once their country hits first world status?

    Is it because engineering has always been a global market, and the pay is based on the worldwide supply curve, thus making it no longer worth it to be an engineer once the market for other jobs in your country pays better then the worldwide engineer market?

    Or do people stop wanting to go through engineering once the other job options hit some baseline standard of living, regardless of how well engineering pays?
    Monday, May 12th, 2008
    10:47 pm
    Coyote
    Saw a coyote get chased off (or just spooked) by a deer in front of the engineering building last night.

    The coyote was almost as big as the deer.
    Monday, April 28th, 2008
    6:53 pm
    Interesting article
    I may have stolen this from someone on my friends list, but, in case I didn't, this article is awesome:

    http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf


    The Euclidean algorithm (which comes down to us from Euclid’s Elements) computes the greatest com-
    mon divisor of two given integers. It is shown here that the structure of the Euclidean algorithm may be
    used to automatically generate, very efficiently, a large family of rhythms used as timelines (rhythmic
    ostinatos), in traditional world music. These rhythms, here dubbed Euclidean rhythms, have the prop-
    erty that their onset patterns are distributed as evenly as possible in a mathematically precise sense, and
    optimal manner. Euclidean rhythms are closely related to the family of Aksak rhythms studied by eth-
    nomusicologists, and occur in a wide variety of other disciplines as well. For example they characterize
    algorithms for drawing digital straight lines in computer graphics, as well as algorithms for calculating
    leap years in calendar design. Euclidean rhythms also find application in nuclear physics accelerators
    and in computer science, and are closely related to several families of words and sequences of interest
    in the study of the combinatorics of words, such as mechanical words, Sturmian words, two-distance
    sequences, and Euclidean strings, to which the Euclidean rhythms are compared.
    Friday, March 28th, 2008
    4:00 pm
    License to Rock
    It being spring break, the office is mostly empty.

    I took the opportunity to play the electric guitar really loud in the office.

    In the middle of doing this, I hear a loud knock on the door, and open it to see two university police officers.

    I had this wave of fear and panic of "Oh shit, someone didn't like my playing and called the cops!"

    It turns out they were in the building for something else, and just wanted to tell me my playing sounded good.
    Friday, February 22nd, 2008
    12:47 am
    advice
    When buying new strings for an electric guitar, don't get the "super slinky" kind.

    Or, ask someone other then me for advice on how not to break half of them within a month of restringing.
    Thursday, February 21st, 2008
    12:24 am
    keeps me awake at night
    Has anyone read anything interesting/insightful about what will happen to software after Moore's law ceases to hold?

    I can find tons of articles discussing various dates at which its expected to happen (looks like our lifetimes) but nothing on how software development will change when the assumption that user computing power will continue to grow ceases to hold.
    Wednesday, February 20th, 2008
    5:05 pm
    gmail, reading my mail, advertising robots
    Gmail is now advertising robots to me (industrial robots, underwater robots and roombas).
    Monday, February 11th, 2008
    4:54 am
    Java question
    interface IBar { }
    
    interface IBaz {
    public IBar foo(); // returns something of type implementing IBar
    }
    
    interface IBarPrime extends IBar {}
    
    interface IBazPrime extends IBaz {
    public IBarPrime foo(); // does this specify that an IBasPrime's implementation
    // of IBaz.foo() has to return something of type IBarPrime?
    }
    
    class BazImpl implements IBazPrime {
    public IBarPrime foo() { } // does this satisfy "foo" from both interfaces?
    }
    
    Tuesday, February 5th, 2008
    3:12 pm
    Quick poll
    If you voted for Hillary in the primaries, post here, and announce your gender.

    I am curious about this. (I think anonymous comments are allowed)



    (For what its worth, all three Hillary supporters I have knowingly met in NorCal are female.
    One openly says "Yeah, its cause she's a woman", another, when asked the reasons immediately begins discussing gender and sexism, but then says it is not because Hillary is a woman. I forget the reasons the third had. Oddly I haven't knowingly met anyone who supports Obama because of his skin color. Perhaps this is a sign that I don't know enough black people.)


    Tuesday, January 29th, 2008
    11:25 pm
    Rock band
    So recently Yishan and Kimberly got me into the game Rock Band, and a friend at skool got me into Karaoke Revolution

    In each of these games, a singer is given a pop-song, with a staff-like graphic of the pitches the user is supposed to sing.

    When the user sings, an arrow representing the users pitch is superimposed on the staff, and it points in the direction of the pitch difference between the user and the track.

    The pop song is played while the singer sings, and if the human singer stops, the voice track of the pop song comes through (partly to give the user an auditory hint as to what should be sung)

    Whats fascinating is that it works even when the song is transposed -- although transposing it by some amounts works better then others -- octaves seem to work well, fifths and fourths confuse it.

    On top of this, the human voice is never a pure tone -- its usually a very complicated set of harmonics (how complicated depends on singing style)

    I've recently started thinking about how I would write such a tool.

    Here are some thoughts.


    1. Start with either a recording of the original singer, or a modified recording with a lot of the harmonics taken out by hand (this can be preprocessed)

    2. As the user sings, multiply the time-series signal of the singers voice with the time series signal
      of the track mentioned in step 1. Do this sample-by-sample (i.e. pointwise, not convolution)

    3. Since multiplication in the time-series domain is convolution in the Fourier domain, you've essentially convolved the
      pitch signal of the user with that of the track from part 1.

    4. If the singer is exactly on key with exactly the right set of harmonics, the Fourier transform of the result of the
      previous step has a huge spike at zero hertz. If the user is singing a transposed version of the original track at a harmonic difference latent in the human voice, there will be a pretty big spike at zero. Slightly off-key singing moves this spike (actually a pair of symmetric spikes) to either side of zero hertz, indicating the magnitude of the pitch difference

    5. Now a windowed fast Fourier transform of the multiplied signal should give you a practical version of the answer from the previous step

    6. Not sure how to get the sign of the pitch difference

    7. Both of these games put the pitch arrow on the screen even when the vocal track is not singing -- this indicates they probably don't take my approach. They could, however, quite easily take the pointwise product of the mic signal with pure tone signals for each of the notes currently displayed on the staff. The one with the biggest DC offset is the current note. If there are two with big DC offsets, the "windowed fast Fourier transform" trick can tell you how far the voice is from each one. Alternatively just skip the Fourrier stuff altogether, and do the "multiply then look for DC offsets" with a scale containing lots of semitones.

    Friday, January 18th, 2008
    2:59 am
    skunk
    Backyard skunk smell.

    skunkity skunk
    Monday, November 19th, 2007
    8:24 pm
    coding
    Not coding for a year, and then attempting to modify a large project makes me feel "Ugh, I remember being better and faster at this"
[ << Previous 20 ]
About LiveJournal.com