EwePlay: MP3 Sync
October 26, 2008The main feature of my original EwePlay idea was sort of a personal radio whereby you selected/created your mood and then actively or passively rated songs as it chose them. If you let a song play through then it would decide it’s “good enough” and if you skipped then obviously it was wrong for that mood, at least that time. An explicit thumbs up means it totally belongs in that mood category and an explicit thumbs down would of course be the opposite. In the middle it would just be a good random shuffle that intermittently included songs you skipped and more often songs you let play all the way through. The memory of this would be lifetime based so, unlike Pandora, it wouldn’t start up by playing those four or five songs you thumbed up every god damned time.
Something I was thinking about today is finally moving my music collection online. Bandwidth and storage is cheap, especially when you don’t pay for it, and if you’re streaming your own music with a password-protected area then you’re not doing anything illegal (personal online storage, not public/published files). What I’d want to access this is a simple application, aka the EwePlay client which would synchronize the online data with some place I’ve designated on disk. It wouldn’t be a full-synchronization, but rather each time a song is played it would be downloaded too (assuming it finishes downloading). That way once a computer is up to date, it isn’t chewing up much bandwidth and you could play the files offline.
Rather than files being stored in some wonky cache database, their actual data would be files on disk with semi-friendly names based on unique identifying factors: normalized song name (decide what to do with non-file-name-friendly characters, spaces, etc.), the artist “category” (I say category, because you might use “NiN” instead of “Nine Inch Nails”, or “Zombie” instead of “White Zombie” / “Rob Zombie”, etc.), the original release date/year if known, and a hash of the song content itself (not the MP3 meta data). These three things would be contained in an unchanging syntax anywhere in the filename so the rest of the name could be named whatever you wish at the time. I know my thoughts on naming music has changed overtime and it’s annoying to constantly re-organize and weed out duplicates when something else could do it for you.
These unique song ID’s would be stored in the filename and never the folder so you could have it sync up your “Music” folder on XP and then use Windows Media Player, WinAmp, or whatever to play the songs. Or you could use the Flash/ActiveX webpage if you’re online. The client might eventually evolve to containing the online logic, but for the first phase all of it would be on the server. This way your continued listening preferences would be constant across all machines, even guest machines like at the library or on a workstation at your job.
Mostly Unique Picture Filenames
October 26, 2008At the most broad level you can divide pictures into two categories: those you take yourself and those you have downloaded from elsewhere. Tack on a simple hash of the contents in some consistent manner and you can practically guarantee global uniqueness.
In the case of the former, the date is the only unique constant. As a non-professional photographer, you can’t without extreme effort take two pictures at exactly the same time. So while it is possible, you can compare the dates (the value stored in the JPEG meta-data, file date values can get mangled) of two files to determine their equalness.
For files downloaded from elsewhere on the internet which have been passed through some kind of editor, and no longer retain their pictures-taken-on meta-data, you can only do a hash of the content and compare file sizes. The problem comes about when it has been resized so that both the content hash code and file sizes are different even though the visual is practically the same. In most cases I do believe that people modify a picture file in order to resize it, and the reason just below that is to add their own mark to advertise their site (a tag at the bottom, a watermark, a logo, etc.). There’s little you can do about the latter, but what if the hash was done on a pre-resized version of the picture. Say you always resize the dimensions to 425xN where 425 is the width and N is the height relative to the width after it’s been changed. Then run the image through a filter to remove minor level changes and hash that content. I wonder how effective it would be in finding duplicates, and then at that point how to programmatically tell which version is higher quality.
You can’t always determine the quality level of a picture file based on its dimensions or file size. People tend to explode both of these artificially, for whatever reason, and quite often I’ve seen pictures where the smaller of two duplicates is better looking. I think there’s some typical automatic logic you can apply to get decent results.
- Insanely high dimensions are indicative of an original because only complete assholes will blow up a tiny image into something like 2200×3600. The threshold of a half-megabyte file size will generally tell you if this is the case or not.
- If JPEG meta-data exists, you can compare its values to the picture itself. For example, it may have an “Original Resolution” property which you can compare against the image dimensions.
I’m just thinking aloud as I ponder collecting assets for mini-content sites.
Witcher: Fist Fighting
October 25, 2008I’m playing the Witcher “Enhanced Edition” as you might have noticed. I just figured out how to win every fist fight relatively quickly. If you’ve played the game, all of these are easy, but here’s an even easier way to win any fistfight: keep clicking both mouse buttons. That’s it. The game goes all glitchy and your opponent will never hit you, continue to take damage while sometimes “dodging”, and then go down. Sometimes the guy you’re fighting will just stand there at the end of the fight and it’ll fade out without you having to wait for that silly prancing.
Auto-Loot
October 25, 2008More video games could certainly use an auto-loot feature. Currently the Witcher is starting to get dreadfully redundant in that I have to endure boring looting after each fun battle before moving on. If I don’t, the corpses stick around a while and I feel cheated out of … loot. As if manually looting wasn’t bad enough, in this game you have to double-click the items or drag them to your bag. The auto-transfer button is nice, but doesn’t work if you can’t take something because that slot is filled (e.g. certain weapons which will only go on your person).
What the Witcher needs is an option to automatically loot everything I can when I, say, right-click the corpse. Or even better if I just move over it. A simple animation of the thing(s) flying into my inventory icon in the upper-right would suffice, just as it does for experience points flying to the upper-left.
BlogBone and NSFWurl
October 25, 2008Two ideas I want to note before I get absorbed into more sword pirouettes in The Witcher. Before I continue, I just want to say how much I hate the whole domain parking (also known as domain squatting) business. It’s a disease of the internet, the world wide web, and it reminds me of herpes commercials: 4 in 5 domains is parked and there is no cure. The COM domain names of both ideas are taken and frickin’ parked. This is not unusual, but it’s also not unusual to hear me complaining about it.
Let’s start with NSFWurl which is something that came up when discussing TinyUrl with Jim and Kelsie. I believe TinyUrl has cornered an odd niche where it performs a service that is a disservice in the long-run. Link relationships are obscurred (which may be a feature, depending on if you’re Rick Rolling or not) and their site becomes a gateway which is dependent on being up and functional for the URL’s to even work. In essence they are a thin proxy which means later they could add the ability to frame the URL, serve advertisements, etc. What I don’t think a lot of people understand is that TinyUrl gets huge ranking boosts from all the people who use it in every corner of the web; Google sees this one domain as being linked from god damned everywhere. Thus the end point sites suffer the loss of those rankings.
Of course as far as monetization, TinyUrl has none … for now. As its popularity grows and as it accrues all sorts of dusty links, whether they resolve on the other end or not, they gain more control and incur more server costs. Sure they can take donations as any ethical non-profit organization seems wont to do, but what happens when the owners decide to move on. Or when they want to retire and they’re sitting on this untapped gold mine of links and rankings? Will there be those annoying “Skip this Ad” ads, banners, context ads in frames, video ads, a limited number of click-throughs, end-points having to pay to keep old TinyUrl’s pointing to them? Okay, enough paranoia, I just wanted to spit that out as a prologue.
NSFWurl takes TinyUrl’s idea and tries to perform a valid service on top of it: namely identifying “Not Safe For Work” links passed amongst friends. You’d have the option of obscurring the destination URL through an ID or having it simply act as a pass-through by putting the full URL past the domain name: http://nsfwurl.com/www.example.com/funny-shit.html. In the latter case the user could still get to the URL if the service ever stopped functioning. There would be a possible check for private viewing, e.g. a page that says “You’re about to view a Not-Safe-For-Work URL. Continue?” Additionally you could set options to proxy the content to fudge the title for safe minimization (so your task bar doesn’t say something like “Identify the biggest tits”), censor certain images or ad blocks which display psuedo-pornographic crap (common on some “funny video” sites), disable audio, etc. Another feature in framing/proxying the destination would be inserting a panic key handler so pressing “Escape” for example would make the page instantly disappear. And finally I’d love the capability to cache the destination in case that site ever goes down, e.g. so the link doesn’t break. Or even having a way to create a redirect to another URL. As far as monetization, the initial skip page could have ads and if a submitter has marked a URL to “show publicly” then it would show on the main Digg-like page.
Hmm, nwsurl.com (Not-Work-Safe) is available … I just think NSFW is more common than NWS. If I could come up with another name then perhaps I’ll try my hand at having this created.
BlogBone is a WebFront-inspired service whereby you create a site design in XSL and the data comes from one or more blogs and/or RSS feeds. And I mean all of the data. You might wonder why not just use some kind of blogging software. Well this would be a thin service that automatically reads your blog, even if its marked private (e.g. you give it access), and puts that data through XSL to create the static pages which are then published (uploaded) to your desired FTP/S3 server. Thus it acts as a pass-through which, if it ever goes away, does not leave your data stranded on someone else’s server.
You could have multiple feeds pushed to your XSL for things like links from Delicious, YouTube, etc. and posts from something heavier like WordPress, Blogger, Facebook, MySpace, etc. I’d choose XSL simply because it’s a widely supported standard for which a lot of tools exist. Whole site templates would be collections of XSL files and default ones would be provided so users can simply say: make a site, here’s my blog, here’s a couple RSS feeds for links, and here’s my publishing site.
Monetization would be two levels. First, people could pay a relatively small price to have their content hosted on the service and it would support domain-mapping so they can use their own domain. Having their own domain allows users to later switch away without losing all the link credit they’ve earned. Second, people using default templates would have an unobtrusive ad block and link-back to the main domain. Advanced users can easily remove these things in the XSL, but many would hopefully leave them as per goodwill. I don’t believe in the service forcing those things in the publish stage, even though it could, because it only gives the loyal users more reason to find something else or incentive for trying to get around the system.
Well, there you have it. A couple decent ideas and now I’m going back to my blade ballet.
Never Gonna Do It
October 21, 2008Got something you want to do, but don’t think you’re ever going to get to it? Why not make a note:
Global Piracy Day
October 21, 2008Hop on eMule or your favorite Torrent site and grab some software, it’s global piracy day! Wooooh! Wait … wait, a minute. No, actually it’s Global Anti-Piracy Day. Somehow that just doesn’t seem as fun. It’s kind of like, Global Anti-Drunk Day versus Oktoberfest. It’s much more fun to gorge yourself on naughty things than to abstain from them.
Oh, I’d prefer people using my creations to pay for them (if I ever make anything worth selling), but I don’t believe in treating them like they’re going to steal it to begin with. In the short-run it sucks to have things “stolen” like this, in the long-run it’s for the best. It’s difficult to see past the current horizon, but one day it will happen. How you treat the popularity of something definitely has an effect on its fans perception of you. I understand Microsoft can’t simply endorse piracy, but it could spend it’s focus and money elsewhere.
“Piracy hurts innovation!” I call bullshit. I haven’t done any surveys or studies, but think about this with common sense and a dash of logic. First off, “innovation” has toppled “robust” as an entirely meaningless buzzword. Secondly, pirates are innovating to get around your innovative anti-piracy measures. Conflict breeds quick progress, a fortunate side-effect of unfortunate events like wars. People working out of their basements in third world countries have proved profitable in a variety of technological businesses through pure innovation. It’s everywhere you friggin’ look, and the big companies inevitably market prior inventions as great-new-things. Rhapsody’s psuedo-anti-DRM “Music Without Limits” commercial comes to mind: You can now buy music without restrictions! Thanks, I’ll let eMusic know.
There is even innovation inside monstrous corporations, the issue is whether it ever sees the light of day. Let me be immodest for a moment and mention that I too have innovated greatly in such an environment and watched in horror as I was completely ignored by the stuffy, top-heavy management. People are scared of massive change and generally won’t buy into it. Thus you would hear the lost and loyal followers decry, “It was ahead of its time.” Most of what consumers get is evolution of a product, a slow process whereby incremental modifications are woven into proven commercial schemes.
Uh, where was I?
Anyway, I think a lot of anti-piracy policies are too draconian and paranoid. In high school we learned that people tend to believe about others what they know about themselves. If you’re a back-stabbing jackass then you think everyone else is too … and then, through self-fulfilling prophecy, that’s what they become. Companies who believe pirates are their enemy are soon realizing that’s what they’re fast becoming.
Clickjackers May Capture Comprising Photos
October 8, 2008… through your webcam using Flash.
I’m curious how clickjacking works. Because while I saw it reported a week or two ago, none of the reports actually explained it. I’m sure they’re worried about the knowledge getting out and a lot of script kiddies wreaking havoc. From what I can tell, the jist is: you click on something in a page that you think does one thing and it does another. So, my assumption is this is age-old social hacking whereby a Flash app on a page says, “Click me to win a million bucks” and what it actually does is turn on your webcam.

Posted by Neil Obremski
Posted by Neil Obremski
Posted by Neil Obremski 