This is a project I’ve been working on for the past quarter for my EE47 class. I didn’t want to make just a personal music player, but instead a personal music performance - and this is the more-or-less first prototype of that. It could be described as a “virtual turntable”: you load songs into it, and then you can play them back as if they were on a record. You can slow down or speed up the record, or grab it and scratch it.
Filed under: Uncategorized fyhuang @ March 24, 2009 4:31 pm
While shopping on Amazon and Newegg, I’ve come across a most frustrating problem. Both websites offer a sorting feature where you can view items in a particular category usually by price or name or release date or things like that. Both also allow buyers to rate items after they’ve used them, and allow potential buyers to sort the items based on other customers’ reviews. There is a fairly frustrating problem with this system, however.
Both Amazon and Newegg (and presumably thousands of other online stores) sort by average customer rating when told to sort by rating. If I were shopping for, say, computer monitors on Newegg, and I was looking for one that was reliable and rated highly by a lot of people, the average rating system might be misleading. Say there is an HP monitor for sale, which 500 people bought and liked. One person, however, bought it and found a few dead pixels (manufacturing defect - it happens), and so rated it low. The monitor’s average rating would be 4.98 out of 5.00 or something like that.
Now consider a no-name monitor that one person bought and liked. He or she is the only person to have ever rated this monitor, and rated it a 5, making the monitor’s average rating 5.00. 5.00 for this no-name monitor is higher than 4.98 for the HP monitor - this would put the no-name monitor higher up on the list if I asked Newegg to sort by “Best rating”.
For a selection of two products this seems like a minor problem, but if I were looking for, perhaps, a new DVD burner, the hundreds of products which received two or three 5.00 reviews would fill up many pages of my search with irrelevant products - I would not consider one or two people rating a product a 5.00 to be an accurate indication that the product is, on the whole, reliably constructed. I would have to wade through all those pages before I found the first product rated by more than about five people.
There must be a better way to sort products by customer rating than simply by average rating, which produces misleading results. Newegg’s sort by number of ratings is better but still not exactly it. What if five hundred people bought a product and rated it badly? I think a better solution might be some sort of weighted average - 4.98s can be pulled higher than 5.00s if they have more ratings. Something along the lines of (score * number-of-reviews), so that the 500 5.00s that the better product received counts more than the two 5.00s that the inferior product received.
Filed under: Uncategorized fyhuang @ October 31, 2008 8:29 pm
This is a mouse that was once broken but is now healed. (A mechanical switch on the circuit board was broken; upon fixing that, the mouse works almost like-new.) I was actually quite surprised at the extreme simplicity of the actual mouse hardware - a couple of resistors, capacitors, an LED for the sensor, and the sensor chip itself. It seems to me that the costs for building such a mouse must be rather cheap indeed. In fact, I wonder now about the optical trackballs out on the market today - mine (the Kensington Expert Mouse) is to all appearances just an upside-down optical mouse with a ball and a couple of extra buttons; would it be perhaps possible to construct my own perfectly-functioning trackball with only cheap optical mouse parts?
Filed under: Uncategorized fyhuang @ October 2, 2008 10:26 pm
Here’s how to stop Firefox from automatically virus scanning all downloads after they’ve finished - something that’s been annoying me since I’ve upgraded to Firefox 3 because of the extraneous disk accesses it creates. Open up the about:config (open a new tab, type about:config in the location bar), and find the browser.download.manager.scanWhenDone value. Type in browser in the filter bar for quick searching. Set that value to false by double-clicking. And that’s it! What, were you expecting something more?
One of the problems with using hybrid Windows and Linux environments is that one needs to watch closely for filesystem and file anomalies and inconsistencies. Differing end-of-line markers, for example, cause many problems when sharing files between the two operating systems. One particular problem I’ve run into is that of having duplicate files, or in other words, multiple files with the same filename. This can happen if, say, you copy a directory somewhere in Windows, then switch to Linux and use a tool such as rsync to copy that same directory over again. If the capitalization is different, Linux will not replace the old files, because Linux, unlike Windows, is case-sensitive. This will even happen, and is technically acceptable, on NTFS filesystems.
The solution I’ve come up with is this simple script, called RemoveDuplicates.py. Obviously, you need Python installed to run it, but it has no additional dependencies. Simply run it in the directory you wish to clean, and it should do the rest. Note that you shouldn’t use this for entire filesystems (yet), because it will use ridiculous amounts of memory if it is given a high number of files. Download it here!
P.S. Also, I cannot guarantee that this tool will work as intended or will be bug-free. Use wisely.
Filed under: Uncategorized fyhuang @ September 30, 2008 9:32 pm
Some of the stuff that Logitech has been putting out recently is certifiably gimmicky. For example, the wireless trackball mice (Cordless Trackman Optical) that Logitech makes. The whole point of a trackball is that it stays put on your desk: only the ball moves! Why, then, is it made wireless? Wireless mice are cool because the cord doesn’t get in the way when it moves along with the mouse, but the trackball base doesn’t move! Logitech’s site even calls the wireless feature “convenient” - I personally don’t think that needing to change batteries for a feature that the device doesn’t require is convenient.
One more seemingly-useless Logitech feature: the G15 keyboard’s LCD. Gamers that would buy the G15 keyboard - most likely MMO players and, to a lesser extent, FPS players. The G15’s most outstanding feature is its plethora of assignable macro keys, which makes it wonderful for, say, WoW. Why, though, would you look down from the game on your monitor to check some dimly-lit stats on your keyboard LCD? Seems pointless to me.
Don’t get me wrong: Logitech is a wonderful peripheral company. They make what I consider to be the world’s best general-purpose mice (Dell’s basic USB mouse included with their desktops, my personal favorite, was1 made by Logitech). They make relatively good, usable keyboards, sometimes with a touch of my preferred minimalistic style (DiNovo Edge). And, despite arguments between Logitech, Razer, and now Microsoft users about which gaming mouse is the best, there’s no doubt that Logitech’s, especially the G5, are among the top gaming mice available. It’s just that nobody really wants to spend extra money buying features that are completely unnecessary.
I’m not entirely sure that it is anymore; I don’t have this information. ↩
Filed under: Uncategorized fyhuang @ September 27, 2008 8:41 pm
My current question is this: why are there few (if any!) casual/party multiplayer games for the PC? I’ve been looking around for games that might appeal to more than just me and my hardcore gaming friends, in a (perhaps vain) attempt to create social gatherings through video games/LAN parties. Because everyone here at school has a computer, and networking is already very-well taken care of, it’s definitely very plausible. The only things missing now are the games.
Read more…
Filed under: Uncategorized fyhuang @ September 2, 2008 7:21 pm
So here it is, finally: the legendary Google browser.
And like everything else that Google puts out, it is a gloriously incredible piece of work. It has the best characteristics a piece of software could have: it’s simple, fast, responsive, and stable. I’ve been running it for just a little while now, and while WebKit’s rendering (especially of fonts) is slightly different from Gecko’s, everything works just about the same as in Firefox… it’s all just way, way faster. Opening new tabs is faster. Using Gmail is faster (thanks, no doubt, to the new V8 JavaScript engine). Writing posts is faster. It’s really quite incredible… in fact, possibly one of the most impressive open-source developments to date, right up there with Firefox 1 and the Linux kernel. Give it a spin yourself and see.
Filed under: Uncategorized fyhuang @ August 26, 2008 9:03 am
Something I discovered today: DDvorak, a keyboard layout loosely based on Dvorak which caters specifically to developers or programmers. There’s a layout tester on the same site that measures the overall efficiency of various typing layouts with any text that you choose.
DDvorak, on first glance, is a completely unorthodox typing layout. It requires comma as a dead key for many symbols, and AltGr as a modifier for many others. Additionally, many things are moved to unconventional locations (BackSpace is where ‘B’ is on QWERTY keyboards, for example). However, the layout tester consistently measures the efficiency of DDvorak as significantly higher than either Dvorak or Colemak, no matter whether typing English or code.
I think I’m going to have to give DDvorak a try, soon, if only I could figure out how to radically change keyboard layouts in X.org… of course, it’s easy with Windows. It wouldn’t be Windows if there weren’t a tool for everything.
Filed under: Uncategorized fyhuang @ August 25, 2008 4:35 pm
I just found out about (old news) the Starcraft 1.15.2 patch, otherwise known as the “officially-sponsored no-CD patch”. I wish more game companies would follow this example and realize that copy protection is useless: no matter how advanced, gamers figure out ways to avoid copy protection, and it just causes problems for innocent and legitimate users anyway.
On the other side of the coin, more gamers should just grow up and realize that companies do want to get paid for making games, and that they should think about maybe paying for their games every once in a while. Take the advice found in no-CD crack READMEs to heart: if you like this game, please consider purchasing it. If both sides of the “battle” work together, we can maybe end this ridiculous anti-consumer nonsense.
Still, it would be nice if more game companies would patch their games like this. Preferably a little sooner after their game is released too!