I want to know what you think of the musicbox. Is it missing something that you'd like to see, or does it have something you'd like to get rid of?
I'll just start by saying that I'm sorry it was skipping again; that was caused by a combination of my changing the database/code structure and the increased number of people using it, which ended up making PHP and MySQL chew up all the CPU. Today I rolled the code back to version 3 and integrated that with the new features (Ajax, Filtering etc.) I also made the processes responsible for the music have the highest priority by default.
With these changes I imagine the next version will be able to handle the increased number of users we've been seeing recently. I say 'imagine' because there's really no way for me to test it at home.
Another problem we've been having recently is script kiddies changing their IP address so they can vote over and over for the same song. So I've made the musicbox require the user to enter a 10-digit code that'll be given to them when they sign in. It's a shame that the honour system isn't sufficient, but I guess it was only a matter of time.
As for features, I'm replacing the colour/font switching system with a CSS skinning system, so that should be pretty cool once I get more themes done.
There are absolutely NO iframes on the site. None. Everything is done using CSS.
I hadn't thought about mobile devices because I didn't know they could/would be connected to the LAN. I'll look into a mobile-friendly version of the site.
There's not a lot I can do to make searches faster other than move them to the server (we'll have to upgrade the server hardware before we do this because it's getting absolutely hammered as it is.) Though doing that will fix the alternating colours.
I agree about impact; it looks good in my browser but shithouse in everyone else's. It's not going to survive the transition from fonts/colours to themes.
As it is, played songs need 5 new votes to reach the level of unplayed songs per play (so after it's been played twice it'll need at least 10 votes to reach the level of unplayed songs with no votes) Is this not enough and the songs are getting played over and over, or do you just not want the list getting too big?
Ordinarily when I'm the admin I just delete Lady Gaga and ABBA if they approach the top, though I don't like to as it means someone's song isn't getting played. The first musicbox had a button to vote down a song and everyone told me to get rid of it because people kept downvoting all the songs near the top to get theirs played, so that's not really an option unless I come up with a really clever way of doing it.
That's a good idea about not letting the top song be voted for, and that's definitely going to happen.
Haha whoops. Sorry about the time server-- I wasn't expecting anyone to bring a Linux computer to a LAN party. I think what I'll do is only redirect Google and a few other .coms that people would use as their homepages, so that for most people opening their browser is enough to get to the page but it doesn't interfere with games and system things.
If you think you've been wrongly banned, all it takes to get unbanned is to talk to one of us in charge. And are you sure it was for mislabelling a song? Other offenses include: Posting music that's obviously rap, posting things that aren't songs, posting the same song over and over with slightly different spellings. If you're the guy who posted a lecture about the proper usage of "GNU/Linux" that's definitely what got you banned.
Thanks for your comments! I'll get right on that.
> There are absolutely NO iframes on the site. None. Everything is done using CSS.
Well, it certainly looks like things are in iframes. Such as the song list, and every song label as well. If you use a bit of padding here and there, you can make it so the top and bottom UI elements float properly, and the "under" portion is the songlist, and has enough spacing so when you're at the bottom or the top you can see the items at the bottom or the top. And you have one scroll bar, which is the main scrollbar. And none of this scroll bars on table fields stuff, because on a small screen that all takes up a load of space that could be used by wrapping the text.
It also gives you the bonus of being able to work well with a small screen mobile device (<800x480) because you just give it another CSS that disables the top and bottom parts from floating and instead makes them a normal part of the page.
> As it is, played songs need 5 new votes to reach the level of unplayed songs per play (so after it's been played twice it'll need at least 10 votes to reach the level of unplayed songs with no votes) Is this not enough and the songs are getting played over and over, or do you just not want the list getting too big?
Well, the problem I believe is twofold - it's not only that it's really easy to get a song to be played again (even legitimately, you can talk people into anything really easily), but that the list becomes absolutely massive and unwieldy after a while from all the music being put in there.
> The first musicbox had a button to vote down a song and everyone told me to get rid of it because people kept downvoting all the songs near the top to get theirs played, so that's not really an option unless I come up with a really clever way of doing it.
Well, I noticed that people were often fighting for the top place as well. People were of the attitude MY SONG MUST BE PLAYED RIGHT NOW. Maybe after getting a certain amount of votes, it would just stop accepting more votes. Say, after 20 votes, stop accepting more, and lock that song in position.
> Haha whoops. Sorry about the time server-- I wasn't expecting anyone to bring a Linux computer to a LAN party.
Mac OS X and Windows XP and above will automatically sync to a time server by default once every two weeks.
> I think what I'll do is only redirect Google and a few other .coms that people would use as their homepages, so that for most people opening their browser is enough to get to the page but it doesn't interfere with games and system things.
That would be good. When you do this, use a temporary redirect code (307) so it isn't cached by the browser when they're back online.
> If you're the guy who posted a lecture about the proper usage of "GNU/Linux" that's definitely what got you banned.
I never! I'm not from the cult of bearded men. Also, the definition of rap needs to exclude the album Incredibad, because it makes fun of the entire genre.
However, it turns out I made a mistake when uploading a song, the song name was incorrect after all. It was missing ID3 tags, so I took a guess. Then again there was some Dope last LAN uploaded that was labeled as Marilyn Manson, and according to last.fm, this is a common misattribution. A reporting function would be nice, so that incorrectly labeled songs could be fixed.
Oh, and a couple of other things that would be nice:
- Showing the length of each song.
- Showing the length of the current song, and how far through it it is.
- Showing a up/down arrow for songs that have recently changed position (as an indicator).
- Showing an estimated time of playback for the top 10 songs.
I was going to also suggest having a "votes received" field but there's a problem then again with inteface clutter, which I would suggest could be fixed by having fields be hidable.
micolous, could you do me a favour and navigate to:
http://58.174.200.21/musicboxv
on your mobile device, and let me know how good that looks? The code is: 166bfb2333
(You'll need to do it some time during the day when I'm online)
I've thought up a modification to the musicbox that should fix pretty much every flaw it has, I've run it past Brett and he really liked it. I figured I should throw it on here as well so everyone can have a look at it, so here it is in handy bullet-point form!
* Users are divided into 3 or 4 'teams', users are not notified as to who else is on their team.
* Users are able to upload a maximum of 5 songs to their team's song pool.
* Users aren't permitted to view any of the song pools.
* The musicbox randomly selects 4 songs from each team's pool and groups them into individual playlists.
* Users then vote for which of the 4 playlists they would like to hear next, there is nothing to signify which playlists came from which team.
* Whichever playlist got the most votes gets played next and voting starts over again on a new set of 4 playlists.
* Songs from the winning playlist will not be returned to the team's pool unless they run out of songs. Songs from the losing playlists are returned to the team's pools.
* At the end of the lan we reveal which team won the most playlists.
I'd post more about it but it's currently 4:20 AM so you'll have to make do with a mock up of the kind of interface it would need.
In a matching colour scheme to gamebox:
http://i143.photobucket.com/al
With no colour (in case you're a RACIST):
http://i143.photobucket.com/al
Enjoy!
For the record I am super excited about this idea, but I want to make sure other people like it too before I start making it.
Some advantages of the proposed system:
* More focus on uploading better songs
* Not as much voting of one's own songs to the top of the playlist
* (Much) Less browser CPU required for AJAX
* Much less server CPU required for Apache and mySQL
* No giant lists of songs
* Simpler to use
* People can just vote and move on to doing something else
I'm having trouble getting my head around how it will actually translate into real life, but it sounds good in theory. I say go for it and we'll see how it goes.
Welp, just over 15 hours later and I've got this:
http://i165.photobucket.com/al
All the features seem to be working except for the display of the current playlist and I've still got to tidy up the login and upload pages, but the main program's done and working.
It would be great if you could get the musicbox correctly displaying Now Playing data in Opera. Everything else works fine, even the album art, but the artist/track info of the song playing doesn't show up. It's not a huge thing, but it is slightly inconvenient having to dig up an old Firefox installer just for the 'box.
Then again, all may be rosy with the new version - or could it just be Opera's "idiosyncratic" way of rendering pages.
Cheers.
Yeah, the problem with Opera is that it adheres to the standards exactly, whereas the rest of the browsers have their own quirks but are largely compatible with one another. Opera probably didn't like that I was using a position:fixed box within an absolutely positioned one. In any case, I'm fairly sure that the new version isn't going to be a problem as the CSS and markup is really quite simple.
Hrm, okay.
I agree with pretty much everything, even though I didn't find the musicbox webpage came up slowly, and searching was quick enough for me.
The playlist idea looks like it'll work, but I'm curious as to how the info will be displayed. As you've shown in the screenshots looks good, Brett, but how will it look when there's 100+ playlists? Or is it more, one playlist per team? Then how will it look when there's 100+ songs per playlist?
Also, please dear god PLEASE change the subnet to 255.255.255.100 or something. It will limit the ability of people to IP cycle by changing MAC. If people are doing it, we will run out of IPs and know very quickly. It was difficult to be able to tell if people were doing it at first. And hell, if we run out of IPs, I'll stand up and tell everyone why we're running out of IPs (aka people fucking with shit) and problem solved. No bastard wants to piss off 50+ geeks :)
Also, is it possible to NOT allow access to IPs which were not assigned by DHCP/DNS? Reason being, there were two ways people were cycling IPs. First was to change MAC address, so they get assigned a new IP. The other was to just swap to static IP. We were handing out an IP range of something like 10.0.0.1 to 10.0.0.255, but using a subnet of 255.255.0.0, hence those "BLACKHAT HACKERS WITH NO MORAL COMPASS" (sorry, it had to be included SOMEWHERE for the lulz) were just choosing a static IP somewhere between 10.0.1.1 and 10.0.255.255. New IP for voting with no filling up DHCP pool, and no need to change MAC and wait for a renewed IP.
Say ye?
Hahaha at the BLACKHAT HACKERS, only 2-3 other people are going to get that :D
IP changing isn't going to be a problem, I've got my own algorithm that generates custom 10-digit hex codes, and we hand them out when people pay. People can cycle IPs all they like, they'll just have to enter their code in again. (and we'll stick in a CAPTCHA too)
And regarding the musicbox playlists, it's only 4 playlists at a time regardless of the number of songs. Every 4 songs, the top rated playlist gets put on and a new lot are generated (again, 4 playlists of 4 songs)
Aha! Makes sense :)
So you gunna do the IP thing anyway? :P
I tried to do it originally, remember? We couldn't get the switches to change to the new subnet mask. If it's really that important to you I'll set it up when I get the musicbox back from Justin.
I just made the CAPTCHA, seems to work OK.
Yeah, I need to get those switches back from Justin too. Much needs to be done. Yup yup!
I need to get the server from him. If anyone's interested, the GUI and backend are just about finished, so I can start taking screenshots and get people's opinions on it.
SCREENSHOTS TIME!
Login
http://i165.photobucket.com/al
The user gets asked for a code which they receive when signing in, their name (which will be shown if they win), and to fill out a CAPTCHA (to stop script-kiddies brute-forcing the code)
Help screen
http://i165.photobucket.com/al
This will be displayed when the musicbox is first turned on and doesn't have enough songs to generate playlists. It will also be available from the main page for people who don't show up in time.
Upload screen
http://i165.photobucket.com/al
Pretty much exactly the same as every other musicbox except if the user doesn't correct the tags the defaults will be used and there'll be an unconfirmed flag in the database that I can check.
Main screen
http://i165.photobucket.com/al
This is what people will see most of the time. Once enough songs are on the server to generate 4 playlists of 4 songs this screen will appear. From here you can vote on playlists.
Main screen - no voting links and current playlist
http://i165.photobucket.com/al
Once you vote on a playlist the voting links disappear until the next round. Also shown is the current playlist.
Winners screen
http://i165.photobucket.com/al
At the end of the night (probably around 6-7 am), the team with the most played songs wins. Their names (that they entered on login) get displayed and playlists only get generated from their songs until everyone packs up. The discs behind the winners are just a temporary picture until I find something that better conveys 'winners'.
Any questions or suggestions?
Looking good Brett,
Perhaps, with the login screen, change the text. Instead of saying "Enter the ten digit code you were given by Ashton or Brett." have it "Please enter the ten digit code you were assigned when you paid your entry fee. If you were not assigned a code, please see the people at the front door."
Makes it obvious, and not everyone knows people names :)
And it all looks good for now. Yay!
Stueh's right about the professional language, but those screenshots are looking goddamned brilliant!
Ooh, I like this idea so far :)
How does it stop repeated songs if more than one person happens to upload the same song though? (Either by coincidence or conspiracy..)
Songs that have been played by a team go to the end of that team's queue, so they'll only be replayed on that team's playlist when everyone else's songs have been played.
People on different teams can upload the same song, but if two people on the same team can't.
(I hope this makes sense)
Lol yeah it makes sense, I meant the 2-teams scenario but I suppose its not all that worrying.
Wobviously it means it's a good song!
Or its absolutely terrible and there are evil people in our midst.
Then I suppose that playlist wont be voted for so the system is pretty much perfect.
That's what we're hoping!
Can you make it so the interface doesn't lag as much? I found whenever I had the musicbox open, it would chew 100% CPU in my browser from all the AJAXery. Maybe an AJAX-free version of the site. And maybe use CSS instead of iframes to position stuff.
Also, it absolutely sucks to navigate on mobile devices because of the use of iframes everywhere. I tried with SymbianOS's browser (webkit-based), and Tear (which I can't remember if it's webkit or gecko based). In the case of the Symbian browser, I was unable to do anything (all the iframes didn't scale properly, and I couldn't click scrollbars). In the Tear browser (on a device with a bigger screen), I was able to view the site however the buttons were so small I couldn't vote up the song I wanted to and so I accidentally voted up a song I didn't want to. On my laptop, I was unable to visit the musicbox page at all... it just failed to connect.
When doing searches, the "alternating colour" trick breaks. And searches are very slow (like, it takes 10+ seconds for my browser to respond to a keypress).
Impact is a horrible font for the purpose and should die in a fire. Try a sensible default font (like say, just using the default sans-serif font that the user's browser has set).
Can you make it so that the songs won't get put back in the list again after being played in the last 4 hours?
Can you also make it so someone can "bury" a song that they don't want to play? Lady Gaga and ABBA come to mind, they were just horrible.
Can you make it so that you can not vote up a song once it has reached the top? This I think could go a long way towards stopping vote spam.
Can you also make it so that the DNS server doesn't suck massively and break everything through use of * IN CNAME wilanga.net. ? It would be much appreciated. I found it most intrusive after attending an event, my computer automatically synced it's clock on arrival, the Wilanga server intercepted it and it was giving out the wrong time (it was both out by 10 minutes, and had an old tzdata file meaning after 02:00 at the October 2009 event, it was out by 1 hour and 10 minutes).
Finally, can you give the admin a sense of humour? I was wrongly banned at one event for "mislabelling a song" when it was correctly labelled, which made me sad. :(