Urgent Notes: The reason it gets so slow the closer you come to the end of the "Unplayed" if people trash videos while people are adding, and this occurs at the same rate, the new videos are put in the "Unplayed" bin, while the ones in the "Played" bin disappear, so the queue will level out.. So don't assume that you are the only one watching videos if it seems to be taking forever to get to the end of the queue. As the videos are viewed, each person gets a unique video that nobody else gets, because I'm just marking the videos off as each gets to them. So if you add videos to the queue, a different person will get the video each time. So as you are creating videos, whoever objects to your videos, will not see them all the time, only some fraction dependent on how many people are currently in the channel. --------------------------------------------------------------------------- Contact Email: riseofthethorax@gmail.com (05/08/08) Someone or something, probably a spider, ran amok trashing video one after another.. I'm sure it was either a user or someone who setup a program to systematically go through and trash every video in the "Best Stuff" area. I have his IP address, and it is banned.. If I see anymore such activity from his part of the world, I will start banning "D CLASS" addresses, then "C CLASS".. Don't tempt me.. (04/24/08) I had to take a moderation position, seeing way too many floyd and kroeger, so I purged something like 20 floyds and about 30 kroeger/nickelbacks, with 30-50 videos in the queue you begin seeing too much after a while. There was like 20 or 30 versions of Nickelback's Someday.. I don't even have that much of the Beatles.. If I see some of you doing that again, I'm banning you... Unti Nickelback has ten years in the industry and being as memorable as someone like Depeche Mode, I will maybe let 40.. But Pink Floyd was at 56 videos, and many of those were "another brick in the wall".. That gets to be boring after a while, especially for my generation.. The others I trashed were videos under 25 seconds.. Basically commercials.. I probably should have limited it to 20 seconds.. I think some people are just testing the queue.. For the record, how you can trash soemthing you added, say you added 6 and only 2 were good, is to call up the video again and trash it.. That works about as well.. I find myself adding 5 videos and realizing only 2 were good, myself, and will trash the other three.. I've said it before, this channel is for diverse tastes, not for floyd or nickelback fans only.. If you want a seperate channel I can arrange that, email me at riseofthethorax@gmail.com . Otherwise, respect my wishes to keep it balanced. And if you see too much of something, let me know.. Also, please don't add "Live" videos, about 2 out of 3 are terrible, like something taken on a cellphone with a terrible mic.. Please try to stick to videos that are presentable. Respect the foreign music, I've found sometimes I like music and it doesn't matter what language is being spoken.. Even if the music was saying in French "I want to &#$@ you in the @#%!", I'd still listen to it.. (04/01/08) Some jerk, went around trashing videos, so I banned his IP and reverted all the trashed videos.. He trashed something like 1300 videos.. It might of been a search engine, which can happen.. Anyhow, fixed.. With the over abundance of Nickelback, I trashed all of them.. Sorry, I got tired of seeing Nickelback, get some variety into your music collection.. (03/20/08) Youtube is being a bunch of jerks, they are pushing the new API on everyone even though others had things okay, just because they don't want to support the old API.. Google is making enemies, and they don't give a crap. So search and other things are broken until I can get a new object made to handle the new API.. Note, its a good thing I was smart enough to relegate the whole thing to one object, knowing they would pull crap like this.. API's are not something trustworthy unless the coders behind it are caring enough to keep elder API's, which is not costing them anything, just precious public perception and maybe a little legal fees.. Note, this concept of API deprecation is stollen from commercial closed source development, while this is closed source, Google uses open source software in their daily operations. freakin hypocrites.. (03/05/08) I almost trashed a video on the "best" channel, because "[Best Stuff]" link only appears on non-best-stuff channels, so having been on another channel and coming back, it is easy to get disoriented, so I put the link for "trashing" elsewhere so that if I get confused I won't accidently trash the video. Notice I also removed the arrows from the screen scale option, because I want to make it hard to mistakenly click on the "trash" option. I may just replace all the links by icons, because this interface favors english speakers.. If I use icons, I think it will make it more internetional. (02/13/08) Had a bug.. It was possible to put in a item without a code, and that made it hard to move on, it has the effect of randomly picking a video from the entire queue.. Something I need to work out.. Sorry.. (02/11/08) I decided from the point of view of a new user of chann3lz that it would be expected that if a video was to be added that it would come up next, instead of having to wait for the que to reset, new videos get marked as unplayed, so videos that there is a greater immediate probability that you will see what you added.. I figured this would also increase the likelihood that people will add videos to the channel. I really wanted to make all the videos equiprobable but from a ui feedback perspective is a bad idea.. (01/04/08) Sorry people, I had a bug in my code that turned off trashing because some of the presentation code got in the functional part and a conditional was being set to always false, which meant that trashing would never come back on.. Turns out you can trash stuff now.. But its close to the threshold as you can see.. BTW, when you add a video it is marked as "played", so either videos being played or being added will jump the "Played" counter. (11/24/07) I was debating banning Yahoo.com, or just reverting about 516 trashed videos, and I choose to revert the trashed videos.. Obviously someone is using Yahoo as a proxy to ban videos on the site, it was ip address "74.6.*.*".. When you have way too many people trashing video from the same b block ip address, its a bit obvious what is going on.. (11/6/07) Some metal head, who had added from the ip address he had trashed videos from trashed about 270 videos in the last 5 days, and added like 11 videos, the videos he added was mostly metal stuff like Lordi and such.. I banned his IP address for 32 days, or about a month. I'd like to see people who add videos to trash stuff, but generally bad stuff, not stuff that is not suitable to your tastes.. I see 270 in 5 days to abusive. That's half of the remaining videos that can be trashed. I'm probably going to have to figure out another way to govern the limits of trashing by making it dependent on the number you add.. Like if you add one, you can trash one. And then add in some special code that checks the distance between the videos that were added and trashed. Like If you added 3 then trashed two and added 3 more and trashed 2.. It would look like you are pushing the collection toward your taste.. I'm finishing up some work this week, I will add a feature that will allow people to classify the videos added, using some ajax code.. So it can be done without a refresh. Then you can listen to the classification of videos you prefer. I don't want to lose you, but you are trashing a bunch of good stuff.. Maybe you are just upset having to hit the next button a lot.. I understand, but this is supposed to be a culmination of the best videos that other people consider best. Hey, I think I will change the ban to a week.. Or maybe 3 days.. (10/2/07) About 208 videos were aut-trashed by the software, sometimes it doesn't count these right, I mean if youtueb comes down, it's easy for the machine to start trashing videos. So I untrashed the videos, the machine may trash them again, but at least one of the videos should remain, the one I tested that was still available on youtube.. I thought, how could someone just trahs 200 videos like that.. So I was curious.. It was the software.. Okay.. (9/28/07) Okay playlists, will probably be on hold until I'm trully inspired to finish it.. I'm thinking about adding some AJAX to the site. I did a little recently, and it was easy, so I'm thinking stuff like, remote control (control a desktop from a laptop, so you can work and watch chann3lz, and advance the video if watching from afar). Ability to classify videos (default would be to watch without preference).. However I am challenged to cut it up into genres that are perceptual, like "hard stuff", "soft stuff", "slow stuff", "fast stuff",etc.. Possibly make the classification into a radio button form that breaks stuff down into combinations of this. Some things I think about while writing in the readme file.. Why can't I think of these things without? Anyhow, I incresed the life of the cookies to a day, and I'm seeing that there is about 292 people using the service. If this jumps ten fold I will have to cut down on the cookie life.. But this means that if this holds, and each watches about 100 videos a day, it takes two days to play all the videos.. But the good thing is its likely you will see something new most of the time. I've found it's better to just let it play than to skip, skip, skip.. I really don't know why this is, it shouldn't matter.. It just seems to be the case. Something having to do with the random number generator, and the time, and the time you hit the site.. I've said this, and I believe it is true.. Some higher power, God in my belief, is the VJ.. Maybe someone else thinks, the devil.. I've thought this at times.. Maybe Aliens in outerspace.. Who knows.. I don't.. Maybe the VJ is whoever designed the random number generator for linux, but how could one control that? Especially considering how the script is executed.. Coders know, as well as I, random number generators are designed to be equiprobable, meaning that every number in a range as a equal chance of occuring.. I've done tests to tally value selections, (like tallying the number of time a die comes up 6, 5 and such, but for a larger range with the random number generator).. It is more or less equiprobable, it doesn't favor any selection.. Plus I'm only picking videos that haven't been played, so there is no repeats until the queue resets.. The reason I haven't made much effort to make playlists, is that I kinda feel it would ruin things.. But I probably should anyhow.. Maybe it will motivate people to contribute more.. But I have no way to monitor contributions, as people who trash videos could be adding them, so maybe the queue is in some sort of stasis.. A good thing, meaning the content keeps changing.. Pretty soon it will mimick the randomness of the british top 100.. (9/12/07) Okay there is a bug but I can't readily fix it, well I could I guess, let me see, yeah maybe. If you trash a video, it will still show the code of the video you trashed in the address bar, this is because when you click trash, the code for the video you are trashing is sent and show, of course since the video is trashed, the function that shows the video realizes the video is trashed and shows you something else, but the address bar is still showing the code of the video that was trashed.. So if you like the replacement and bookmark it, it will not be the replacement, but will be the code of the video that was trashed.. The bookmark should identify the trashed video, but still you don't get the code of the video you liked, the replacement.. It's a small bug, but still bothersome because I use these codes in my blog, and its upsetting when the video I trashed ends up in the blog, not the one I liked... (8/23/07 , Hadn't touched the playlist code in ages.. I admit).. I'm starting to really wonder if it is needed.. I'm thinking I will just start a different site that does the same thing but with links in general, and then just to embed in the links the information needed to locate and play the videos.. Maybe something like this.. I mean the ideas I'm having about playlists sound more generally like a solution to bookmarking links, so it may become that.. I may still do the playlists, but it's going on the backburner with my podcatcher idea.. Oh yeah, due to some experiences I've had with search engines, drunkards with angst, and such, I've reduced the trashable percentage to 20% instead of 50%, it's only fair.. I may change that to 10% if things continue.. The ony way to allow stuff to be trashed, is to add stuff.. So it has a bit of a self fulfilling mechanism, that the content just increases.. (revised: 7/17/07, sounded a bit crazy, it was chopped down from a mindfart) Send suggestions, tips, or if inappropriately banned -> explanation. I don't expect praise, but it is welcome.. The soul purpose of this site: To share diverse tastes, not to favor any one genre or taste. Some of us like 80s music, some of us like comedy, some like to talk about UFO's and Atomic Bombs and George Bush, some like The Bare Naked Ladies, some like rap, Lisa Nova, some like exotic programming languages. And thene there are those that would just love for this site to come down, even some that make fun posting pranks and purposefully bad content, just to see if anyone is actually using the site, or even just to sabotage it (for whatever reason). This is to the guys who do this: If you don't like something you can skip, ignore, or trash. But don't sit on the page trashing everything that doesn't conform to your tastes.. There is a lot of crap on the channel, I agree, but one's crap is another one's treasures. Remember, if nobody adds stuff, nobody sees anything different.. Common sense removes it. Added content (due to the storage model) writes over previously trashed content. Trashed content leaves "Best Stuff" channel but appears in the "Trashed" channel, so nothing ever is completely removed. Those who love going through the trash to find the cooool stuff, can.. Thanks, Kiernan (7/30/07 3:15 AM): I'm reusing a class that I created for the management of the channels, and am adding more methods, while keeping the existing ones, to support playlists.. This will allow me to use the same code that is used for managing channels, with playlists.. Some functionality I'm planning is to allow anonymous playlists, then to allow multiple people with playlists to share a group id, which would allow them to manage each others playlists. I'm also planning to add a fine level of permissions to the playlists, so that say you could give your friends rights to add videos to your playlists, but no rights to trash. I'm also planning to add world permissions too.. So you can have the world contribute to your playlist, but you could trash, or vice versa. Anyhow, in the process of writing the code, I found out what I was getting duplicate videos in the channels, it was that I wass adding videos back that had already been trashed, normally I do a search to find if a video has been added, and I add it if it hasn't. Instead of searching for videos that have already been added, I did a search for only the videos that hadn't been trashed.. That meant that if a video had been trashed, it could get added again, and thus becomes a duplicate.. This becomes a problem when you are at the last twenty videos, because there is a double whammy.. I check to see if a video hasn't already been played in the channel, so if it hasn't I schedule it to play next.. But I also check to see if it has already been played in your history.. So the history says it already had seen it, so one duplicate gets trashed, it performs a search to find the next video, it finds the one that just got trashed, but instead it is the video that was just added, and so on.. That's what was causing that busy wait a couple of weeks back.. So this is proof that the smallest things in a program can screw you up.. In fact the line of code the screwed it up was this: $query['flag'] = 'A'; I commented it out, and that should fix it.. Argh!!! Argh!! I wasted a couple of days on that one.. Just one line of code, one line of freggin code.. Well out of several thousand lines, but one line!! ARgh!! .. Well I don't really need to comment it out, there is a constraint on the tables now that prevents the addition of replicated codes.. But for the playlist channel, I'll have to remove that constraint, because it will be possible across multiple playlists to have the video code to repeat.. This may present a problem later in my code, when incorporating the playlist support, but I'll fix it when I come to it.. (7/28/07 10:25 PM): Noticing what was happening up to the last of the play queue, I'm going to add a feature, either while or after I finish playlist support that tags newly added videos as the next to play in the queue, so people can add stuff to the jukebox (so to say), and if everything gets played, then it reverts to the older videos.. If I do this, I may put a limit of the number of videos that can be added.. Like no more than 30 per ip.. I imagine that by the time playlists are supported, it won't even matter anyhow.. I'm designing the playlists so that multiple people can add to a playlist, even designate levels of accessibility to the playlist... You will see what I mean when it is done.. Hey Thomas, glad you are enjoying my Chann3lZ.. Is this all your calypso stuff? (7/21/07 10:35 AM): I just found out last night that the ip address of the guy who was trashing all the videos that I banned, was in fact googles search spider, and it was just traversing the links on my site.. HAhhahahhahhhahhahahhahha!! I haven't heard something this funny since the one about the automated "census collector" that met a answering machine with a similar protocol.. Hello, how many children do you have, "beep", 1, "beep", 2?, "beep", 3?, ... 102 children?, "beep" .. Okay maybe I can give that ip address an advertisement about chann3lz, because saying "you are banned", is the wrong thing.. But I want google to search the site, maybe I can just prohibit banned people from trashing and adding videos, that will fix it.. But they will still be able to play videos.. I also noticed that my hit count went down as a result.. (7/20/07 3:39 PM): Yepp, there was more.. The "Tubified Rhapsody Playlists", were out, this is because I cancelled an account at a older hosting site I had been wanting to terminate as I'm on some more costly (but better) hosting now (I have a virtual private server which has the added benefit that I can assign as many domain names as I want, which is really cooll!!). Anyhow, I'm transfering the Tubified RPLs right now.. Why doesn't anyone send me email about these bugs.. Oh well.. (7/20/07 3:20 PM): Found that the [Tubify IT] and [FIND4 CHANN3LZ] buttons in the FIND VIDEOS menu were broken, they are fixed now.. The reason for all these bugs, I had a another account with my hosting service, and they disabled my "fopen-url" access and I went into a panic, flubbed up my code, and forgot what I did.. So I reverted back to an older version of the code because I didn't have any recent versions of the code. So I'm fixing bugs in the site that I had already fixed, like this one for instance.. Hopefully this is the last bug.. (7/20/07 2:31 PM): The loss of common tags in the search utitlity is a recent issue with YouTube's API, they are fixing it.. It's probably that they are distributing their database queries across multiple hard drives, as they are going through growing pains like no other website. I was upset that the common tags were not there because I was planning to add some more videos to some of the alternate channels.. BTW, there are other channels, that have a lot of cool content in them.. For instance the 80s and 90s channels.. (7/16/07 3:03 AM): Figured out what the feedback bug was from the other day.. Duplicate keys in the database.. It's okay now, I executed this code (I found elsewhere) on the web: ALTER IGNORE TABLE dupTest ADD UNIQUE INDEX(a,b); Not precisely this code, but something like it.. What it does is drop non-unique rows for a named column, and then uniques the columns specified.. There is also another bit of code I found that counts duplicates in the table: select id,count(*) as n from table_name group by id having n > 1 I'm not a brainiac with SQL, but I suppose all is needed is to know what to search for on google. I realized the other day that there is really no reason I should be using php for this stuff.. I got a book on zope I picked up at the library (book store) for fifty cents, no kidding.. Book stores in laboratory towns have some of the best junk. I picked up a book on redhat linux (to help me with ubuntu, I suppose) for a buck.. It seems every week I'm picking up 5-7 books, like books on programming raytracers.. I once picked up a full fledged educational licensed copy of Delphi. One of these I'm going to find copies of vista in there.. Anyhow.. If all goes well in "Best Stuff" channel, I will apply the same bit of SQL to all the channels. After 1000 lines of code, it's more a matter of faith because you can't really know what all the code does, even if it is object oriented, it's actualy even worse if it is object oriented because it can be hard to debug.. I think OO is over-rated.. If you are not a good code designer, OO won't help you. And we all are better code designers after the fact.. Nobody can really know what problems they will run into before time.. But its better to have some idea what you are going to do before you do it.. Too much pre-thought is analysis paralysis (nothing gets done), too little, and you will be hacking forever.. In a nutshell, keep complexity local, that's essentially what Object Orientedness is.. (7/15/07 4:45 AM): On second thought.. This is unfair to ban, it would be better to alot an allowance of trashes.. Like ten trashes every 30 minutes.. You can always skip.. But for adds, I may use an excessive adding measure to prevent those guys who like adding their playlists to the channel.. Please wait until I have playlists implemented.. I think these would be better than bans, and would prevent excessive trashing.. Or excessive anything, I may start trying to find ways to detect excessive stuff and either ban or untrash videos made by the ones who were excessively trashing.. I think untrashing videos is more fair than a daily or even weekly ban.. The guy I banned today, he was trashing like 100 every ten minutes.. I don't think he was actively trashing them, he probably had a script doing it for him.. Anyhow, I will probably lift his ban, because this is unfair as I'm only figuring out how to do this stuff.. I don't want this to hamper others experiences.. I also don't want people who have such a short attention span and great disrespect for other peoples tastes, to be trashing stuff ad- infiniteum. Well I have to go to bed.. (7/15/07): I've got code in place that will auto ban you.. I'm not going to name the criteria, but if I count more than 500 trashed videos, trashed in a short time, like say 50 in ten minutes, and you do that for a couple of hours, then it will ban you for 7 days.. The first guy I banned got 14 days, but that is only because I didn't have the code written.. I'm planning to modify it so people only get banned for a day, but I'm going to place the limit at something like a trash a minute.. If you trash more than one video per minute for an hour, like if you do 70 in an hour, then it will ban you for the day.. I have to figure out something reasonable.. I won't tell you what the minimal amount of time is that counts toward the ban, but presently, and this will hold from now on, if you trash videos with a trash a minute or above, then it will count in favor of an unban.. I ban by IP, so this is why I'm thinking about a daily ban, so that it is tougher to jump ip's.. I want to make abusers work harder.. But the max trash in an hour will be something like 50.. The normal person will either move ahead or watch a video, only the most negative will be trashing one every minute.. So mayb I should lower that count, to something like 30 per hour, or 20 per hour.. Maybe even 10 per hour.. I could even make it visible.. Some sites have skip limits, but I plan to never limit skips.. The trash option is there if you are really disgusted.. Otherwise refrain.. The current setting counts across sessions.. Of course, it always registers your IP, if yu try to get around my mechanism and succeed, I can always just locate the trashers by performing searches on the database, something I can automate, just as I'm automating the trash banning, to find trashers, and untrash all their trashed stuff.. If it looks excessive, all I need to do is add a row to my ban table, and that's it.. It will tell you how long you are banned for.. Daily bans will give a more friendly message like "enough for today, come back tommorow". (7/15/07): Yep, its one guy who is trashing like 5 a minute.. Time to add that anti-trashing code.. Basically this is how it will work, if I see more than a reasonable number in a unreasonable time, like 20 in one minute or something like that.. I'll temporarily block the IP address.. I admit the videos this guy is trashing look pretty lame.. I'll let him go, but if I wake up in the morning and there is 2000 trashed videos, I'm adding them back.. It's too easy to write code that trashes videos systematically.. It's harder to disguise your IP and login without a cookie.. (7/15/07): Ah crap, that's what it is.. (7/15/07): Ya, some guy is going through the database trashing everything, I'm just untrashing everything he's trashes.. I mean, how can there be 100 trashes in an hour.. Really.. I just untrashed a bunch of non-ip's.. OOps, unless on this server ip's are registered under a different variable.. Okay, I'm going to go research this for real.. (7/14/07): I'm tracking trashes to see if its a bug or someone without an ip address. I think I've narrowed it down.. You may think you are trashing stuff, but I fixed it so everything you trash is added back if you have no ip address.. It may be the case I'm getting the ip address from the wrong variable.. I'm going to go research that.. (7/14/07): You are going to kill me.. Turns out in my trash code I lost the part that recorded the ip address.. So nobody's trashes were recording the IP.. I knew I should have backed up the database before I jumped to conclusions.. Oh well, added a bit more security.. The site requires cookies now.. That's the only way it can work.. But if someone comes in without a cookie and trashes videos, those two won't be possible.. You can only trash videos now if you have cookies, and if you have no ip address, this is recorded too.. So I can find potential errors either in my code or in those using the site.. I must have lost the code back when my hosting service decided to turn off fopen.. (7/14/07): I figured since the system is just going to trash those videos again, the ones without ip addresses, then it will do them again.. It seems some of you are on machines, maybe, that have no IP addresses. I don't see how.. 600 were trashed today, and some of them were still playable on youtube and embed was on.. Maybe it's a bug in my code.. But I will be watching this.. (7/14/07): I checked, not many people are trashing, about 1000 of the videos were trashed because either the people who added the videos to youtube pulled them (turned off embed or made the videos private), or youtube pulled them (indecency, copyrighted material, etc).. My code will automatically trash videos that are no longer available on youtube.. Note: if youtube comes down (for repair) chann3lz will quit until youtube is up again. Chann3lz had a bug at one time that if youtube was unavailable it would trash all the videos in the channel.. That was fixed a ways back.. There is now a bug in chann3lz that when it gets to the end of the "no repeats in channel" queue, it goes into a busy loop, so I obtained a copy of the database to squash that bug.. I'm going to add a "Hook" metric to identify when this is happening. I've worked up a plan for playlists.. This is some of what I have planned: - playlists once created are associated with login and password. - creator will be able to combine playlists together under one login/pass. or creator can manage seperate l/p if masochist (want to remain anonymous).. - creators can change login/pass.. - you do not need email verification. - you must use playlist, or it will get trashed (say if it is not actively used in 30 days, this may change). - will add admin controls to track misuse (for me).. Say someone adds a playlist full of commercials.. - all playlists can be viewed at once in one mixed bag.. unless creators want to make a playlists private. - learning playlists, radios, etc. - videos in playlists will be playable in order, or at random, creators choice. - Bunches more ideas.. Normal channels: - if video is not trashed for 3 goes around the "no repeats channel", one video related is added to channel.. Do you remember that game centipede? Remember when the centipede got to the bottom? Same deal.. So if Abba survives 3 goes round, there wil be one more abba video.. Then if both survive, there will be 4 abba videos, and so on (actually, 1 + 1 + 2 + 4 + 6, somewhere between geometric sequence and fibonaci).. I will have it cap off somewhere.. But if they all get trashed, the adding will stop. (7/10/07): Fixed bookmarklets, available under [FIND VIDEOS TO FILL CHANN3LZ]: [TO CHANN3LZ], [TO CHANN3LZ AND BACK], [THE BEST], [THE BEST AND BACK].. No more of that "Video Added" crap.. I originally fixed that and forgot the true intentions of those bookmarklets, which were to either send you to add the video (to either "BEST STUFF" channel or the channel last visited) and send you to CHANN3LZ, or send you to CHANN3LZ and BACK to wherever you were.. The "TO BEST" and "TO CHANN3LZ" buttons, BTW, are designed to return you to CHANN3LZ so when in "manual skip" mode (in CHANN3LZ) you can use YouTube's new menu feature (bottom right of embed), to select other related videos, click through to youtube (by clicking in the middle of the video), and use "[TO BEST]" or "[TO CHANN3LZ]" to add the video to chann3lz, and send you back to chann3lz so you can do this again.. What I do, in firefox, is I turn on tabbed browsing, and when I click through to youtube, a new tab is created in the browser, I add the video to chann3lz from that new tab, with [TO ...], and by the time I see the title of the video in the tab, I close the tab with a scroll-button click, which returns me to the tab I clicked through from.. Or I may just close the tab I called from, and pause the video playing in the new tab, and select other related videos.. Once you get the hang of this, you can add bunches of videos to chann3lz. And really interesting ones at that.. For instance I found a video of a duck feeding carp. In the "menu" feature of the YouTube embedded player, I found a video on an asian carp on the mississippi river that jump when boats approach and have injured unprepared people in the boats as the fish jump high enough to clear a boat.. A trully amazing video.. Anyhow, I added that using this method, a video showing a hammerhead shark eating a tarpin, and someone who caught video of thousands of jellyfish in what looked like a lake.. It's amazing some of the videos you will find in the related videos features.. Of course, the purpose of chann3lz is that you can share this with everyone else on chann3lz, and continue watching movies in succession. If you are creating your own website for adding videos, the bookmarklets can be modified to augment your site. In fact, the value of bookmarklets is they are so small and understandable you can fashion them to augment any site that encodes functions into the URL.. I just use them because they let me do things with chann3lz that I want to do.. (7/10/07): Note, don't get sad about the trashing feature, remember that no more than 50% of the videos can get trashed, and there is no telling whose got trashed.. Also it is not likely that one person will see the videos you saw in the same week. If a channel grows to 5000 videos, only 2500 of the videos can be trashed (unless the videos are no longer available on chann3lz, the system will automatically trash the videos beyond 2500, but the idea is approximately 2500 will remain.. Someone would have to keep trashing and adding videos to trash all the videos in a channel, and that would take a long, long, long, long time as videos are played in random order. Part of the reason I don't let people search the videos is to keep someone malicious from going through and trashing all the videos that don't appeal to them.. As a result of this mechanism, the video content is more fresh, new, everyone contributes, everyone moderates, the videos are more enjoyable, and the next video you'll see may be one you added, or someone else added, in any case it's a mystery.. And you never see the same video twice for days even weeks.. Also if you grow the videos past 5000, say 6000, then only 3000 of the videos can be trashed.. This is a garbage collection scheme that allows the database to quickly add new videos, and allows me to revert malicious trashing (where some jerk comes in and trashes every video he sees).. How can I determine a malicious stretch of trashing of videos? Each video added is tagged with your IP address and the time you added the video.. Your IP address is the address of your machine when you connect to the Internet, if that scares you, every web server knows this information, in fact all Internet servers that you connect to can obtain this number from the packets that are sent to it, because it uses this number to send packets of information back to your computer.. But if you have DHCP, like on some DSL providers, you are given a dynamic IP address that changes everytime you reconnect.. A Malicious user could probably evade me using this method but I have other tricks up my sleeve.. Anyhow, I can cluster those videos into clumps and determine if videos were added too quickly or trashed too quickly.. In the case someone adds a lot of videos quickly, they may be adding a lot of a particular kind of content, like guns'N'roses bootleg videos.. This raises the probability that videos from that user will be seen, and is not as interesting for that user (over time) nor for other users of chann3lz. I, and I believe you, will want diversity otherwise you wouldn't be here using this site.. If there is a lot of trashes in a short period of time, the time is registered of when the trashing occured, so I can determine if it was undiscerning trashing, like someone didn't care.. I mean if I see 30 videos being trashed in 3 minutes, I can untrash them. I've thought about offering a feature that allows people to look through the trashed videos in the channel and untrash stuff, I just have to figure out a way to keep this from being overused, like if someone added a lot of crappy videos and people trashed them, they couldn't go back and untrash the videos they added.. Even if you add videos that are trashed already, the video is only added if it is not already in the database, so if the video is trashed and in the channel, it will remain trashed, the new video will not be added.. That's to keep a user from spamming the channel making their videos untrashable.. Such a user might do this such as an advertiser.. They may get videos to return to the channel if new videos are added, but these videos must be new.. And if they add from the same IP address, I can block their IP address.. But I've got other tricks up my sleeve that would prevent even the most complex individual from spamming the site, short of hacking the site. But remember I backup the database and retain copies of the code.. Worse comes to worse, I will open source the code.. I'm a little paranoid, but I have no interest in seeing this site go away.. *** WARNING, VISION-STATEMENT RANT AHEAD *** The reason I haven't open sourced it already is I want people to bring their favorite videos here.. So I get to see more of what you like, you get to see what I like, and so on.. If I open sourced the site, there would be lots of sites all over the place with insignificant collections, like there is with all these PHPNuke sites.. Another reason is I have ideas how to improve the code so that when I do open source it, it will be much richer than if I had open sourced it now.. It tends to be the case that the guy who creates something is better equipped to drive the design of the creation.. If this works, it's likely that I will want to make future versions work too, and I will want to add features that make sense.. If I open source the code, it makes bunches of sites like mine, and likely those who set them up won't care enough to change the source code.. The site needs to become popular before anyone will adopt and run with the design.. See If wikipedia had of not been popular, The Wiki source wouldn't have been widely adopted by many developers and website designers. Besides most coders, if they knew enough about how to program websites, would have already created a site like mine by now.. But I'd rather that happen, as they will have the skills to augment their site, and will care more about it, than if I gave them my source.. It's when a piece of software is so complex that it would take too long to code, or too hard to think about, or if it is a good idea and the one who prototyped the code didn't have the skills to expand on it; that is the kind of code that should be open sourced.. But it's not very interesting to have 10,000 copies of the same source code where each copy is different in some small way, it floods the net with offshoots that hide the valuable re-implementations.. But it's possible with the nature of google, that the best will rise to the top.. So I guess there is that.. Well, it's not so hard to code that someone else couldn't do it.. It doesn't make sense to sell this as a service either, because it would be to easy to clone.. But because this site exists, any commercial clones would not do so well using the same model as people would eventually find my site out. Even though, I will still be working on this site because it is an experiment, and with each experiment, I learn new stuff.. It's fun to own and work with a design, it's inspiring to see it working.. I don't plan to sell advertisements, but I have other ideas that are better and non-intrusive for people who wish to sell stuff (like craigs list does), but better.. I would hope to never see advertisements on this site.. I've experimented with google ads and such, and they really are stupid and they just slow stuff down.. I don't believe advertisements and banner ads are as effective as they could be, as it panders to an approach that relies on satisitics and annoys the crap out of people as a result.. Maybe if I had hundreds of millions of people hitting my site, maybe.. But all that bandwidth wasted on the probability that someone might have a need for an advertised product at the cost of annoying everyone else, I don't consider efficient nor effective.. Google's search engine is so unique, they don't stand a chance of annoying people so much that people will not want to use their services.. But by using googles banner ads it's really only directing site traffic from my site to theirs, and it's also annoying people on my site. And besides that the reason google makes so much money advertising is because people put those ads on their site.. I'm planning to remove the ads in my bl3nder rhapsody blog, but I haven't gotten around to it, and I enjoy seeing the white-stripes in the rhapsody link.. I still like rhapsody's service, just that it's more fun to see music than listen to quality tracks from rhapsody.. My assumption when I create something is that even if someone has already done it before, I believe I can do it better.. And even if I fail, I still have learned something about it in case I need to revisit the problem in the future.. Each implementation is a step in learning the problem and learning more about how the tools can be used to create new stuff.. I find when I've worked on something, I will have ideas about how to do other stuff from having gone through the process of experimenting with an idea.. The worst thing I can do is get bogged down by the thought "Oh someone has already done this before".. It's probably best to read other peoples code and learn from theirs, but I find when I read someone else's code, I may learn something, but I also may forget it just as easily because I haven't worked to achieve something.. We all have to use other people's software to get stuff done, but It makes sense to do that when you find utility in it, and have no desire to recreate the same tool, especially when you can't think of a better way to augment the tool.. If you are doing something, you can't go wrong.. You may look like a fool to other people, but God blesses each of us in ways that are not so apparent, and those who succeed to do well riding on the backs of giants, may not achieve some goals that they had in life that come from knowing the details of problems.. The key is faith and discerning.. People who ride on the backs of giants, may have a harder time when those giants fail to work consistently.. Okay I had to make that analogy work.. Anyhow, any more rant, and I save time fixing my little giants.. (7/5/07): Okay I have a trash hotkey (was that the 4th of july just now, whoops).. I have a trash key for all other channels by "Best Stuff", to honor those who add good stuff to the "Best Stuff" channel.. (7/4/07): Okay I decided if there is a way to add videos by hotkey, there should be a way to trash them by hotkey.. I wish I could make it harder, but it's just as easy to do.. If people trash too much stuff, I'll turn it off.. (7/4/07): If you put "hotkeys_on" in the url, like "&hotkeys_on=1", then you can wire hotkeys on in a bookmark.. For example: http://www.chann3lz.com/?hotkeys_on=1 or http://www.chann3lz.com/?code=PjgxxeA83FQ&hotkey_on=1 (7/4/07): The Hotkeys (accesskeys I spoke of), can be toggled with "Alt-h", this is the only Hotkey that is always available. When hotkeys are on, it will be obvious because all relevant keys will have a little letter by them, scaling the screen, btw, is alt-, and alt-. , that's right alt-comma and alt-period.. It works on the PC's, I'm not sure what it is on a mac.. Maybe later I will add the ability for one to change the key associations.. But it should now be easier than ever to thumb through videos and add videos to the best channel.. However I haven't hotkeyed the trash link, I want people to make an extra effort to trash videos.. You'll have to click on the trash link.. I know how hard that is.. I may enable a trash hotkey in all channels but the "Best Stuff" channel.. Because the other channels are in need of weeding.. (7/4/07): I'm adding a little something to the interface, it's called an "accesskey".. I'm not sure if Internet Explorer supports it, but firefox does.. You hit a key combination like Alt+n and you can go to the next video.. Alt+p lets you go to the previous video.. I found some css (cascading style sheets) code on the web that will identify links that have accesskeys.. So that's what the extra links are in plum.. I'm going to make it so this can be toggled, so you can use this feature or not, depending on if you are using a browser that supports them.. I thought this would be an easy way to add a kind of remote control to chann3lz, especially if you have a programmable keypad, like a gamers keypad.. So you can switch the video from across the room.. I got my css code from one of these links: http://technorati.com/tag/accesskey , The guy claims that you can add this to the "chrome.css" for firefox so it automatically shows you accesskey'd stuff when it is available.. Supposedly wikipedia has accesskeys.. (7/4/07): I noticed the problem with the queue, now you know how often I use the queue, like 1/50th the time.. I think it is fixed now, you should be able to go back through the list.. I probably should just diff the current and last working copy of the code and see what else I tweaked to heck and screwed up in the process.. (7/3/07): If you were wondering what happened to chann3lz over the last weekend, this is what didn't happen, I didn't get anything of significance done with chann3lz at all.. My service provider decided that I and several othere users didn't need access to "fopen", which is what allows my site to work.. So they stripped it from the server without telling anyone.. I called them on wednesday or tuesday about it, and the guy on the phone informed me of what the high admins did.. So I decided to go for the virtual dedicated host instead.. That involved me picking up a little system administration on the way, like configuring domain name servers and such.. I got it done.. And the site is working.. But for a time I was debugging the new version of chann3lz, so I had to revert back to an older version.. I found out what was wrong with the software, basically in PHP when comparing a string and a integer, php evaluates the string (if it isn't all numbers) to 0, and if the integer just happens to be zero, the equivalence test comes up true.. So "jwoiejiw" == 0 is true, even though obviously it isn't.. I had a bone to pick with PHP's coders about this.. You can read about it on my blog.. Anyhow, the site is back up, but it's the same as last week, only more responsive, and no mid-day bottleneck due to collective site traffic, because I have a virtual dedicated server.. The cool thing is, after looking at system graphs, I determined there was quad processors on the server.. That means, more likely its better than having a costly dedicated server, which costs three times as much as I'm paying now.. There is so much coolness now.. And things I've been wanting to do but couldn't, I can do now.. The site may not begin looking cooler, but I'll have the freedom to add cooler features.. Like I've thought about a channel that plays like a game of centipede, if you don't shoot the video down, if it goes long enough, it will start pulling in similar related videos from youtube, like it.. So if like there is 3 peter framptons, and each video makes it three times through without getting trashed, then the system will add a peter frampton video every three days.. Or in some reasonable time frame.. That was just a brain fart I had tonight.. But I will most likely go ahead with the playlist idea since I've already promissed it.. I can just see a bunch of you going to the search system to play videos from search results.. And I have to address that somehow.. I may offer a combinatorial version of playlists and centipede.. Like Say you add 10 of your most favorite videos to a playlist, say you would like to grow that out to 1000 videos and randomly select from that.. Or say search queries were like videos, and everyone contributes one, and videos are added/played based on those queries.. But people can also revise queries.. I'm thinking of lots of things.. Not only about videos, but about the utility and use of a lot of web stuff for the good of entertaining and informing, in the most passive way possible.. I hate interactive media like I hate reading and jogging.. I'd rather sit back and code stuff and watch something a bit smarter than TV and a bit less involving than youtube.. Anyhow, enought talk.. Must take action.. ------------------------- If you noticed a jump in the videos of the addition of 300 videos.. I just untrashed videos I trashed.. And addressed someone who I thought wasn't me and about his abuse of the system.. And it was me.. ARGHH!!! Well in the process I found some bugs in my code.. So it was a learning experience.. I'm glad I only shot my own foot and nobody else's.. It looks like everyone is being fair with the trashing.. About more than half the trashing is coming from the new code.. I had a problem in my code about how IP addresses were being registered with trashed videos, so I re-arranged the logic, and now when videos get trashed with no intervention by the user, the ip address will not be registered with the trash.. The purpose of registering IP's is purely for recognizing abuse.. I haven't got code in place to find an abuser, it's something I'm thinking deeply about.. An example of an abuser is someone who just trashes everyting that comes along, or someone that trashes about half the stuff they see.. I'm thinking about creating a learning system, I have an idea how to do it, but I won't produce the illusion that it is going to taylor results to your likes.. I can't imagine how it would be done in a memory efficient manner, so I'm going to implement the most intuitive approach and look for something more complex later.. I've written code in the past that does the same thing as eharmony.com, in fact I have a belief they stole my algorithm as I thought up an algorithm in 1999 that performs profile searches. But it's nothing I could sue them over as I'm sure others probably had similar ideas.. BTW, it's not a profile search, it's a profile sort.. Anyhow.. Notes about CHANN3LZ: 1. There are videos on YouTube from "rofthorax" that explain how to use Chann3lz with some explanation in "Find Videos To Fill Chann3lz". 2. Chann3lz is a work in progress.. 3. Someone already registered channelz.com, that's partly why the site is chann3lz.com. I have another site called www.bl3nDer.com . Chann3lz is unique enough you should be able to find it on google, anyhow. 4. The name comes from a B-52's song "Channel Z". 5. The "Trash Video" button is an experiment.. 6. I could implement login/registration and all the stuff other sites do, just these features make no sense to me, as they only stop people from using sites.. 7. Everyone is anonymous, everyone has power to contribute and moderate. It adds to the mystery.. It keeps the content fresh. It pits tastes against tastes. It helps us find videos we can all agree on. 8. Why not a voting system? I'm thinking about it.. 9. Why not feature X? I Think about how a feature will be used and what effect it will have on the site, positive and negative. I don't assume my site is the center of the universe, there are other sites that offer lots of stuff, and no telling how much of it gets used if any. 10. Okay, now, why I wrote this readme file.. Why so many videos are getting trashed. Either people really hate content, or due to the "no repeats in channel" feature, all videos that weren't getting viewed are now being seen. I added a feature that trashes videos that are no longer available from youtube, but since it takes too much time to weed out videos in one go, it's easier to weed them out as you get to them, that's why videos are being trashed in great numbers. Or someone really hates all the videos they are finding.. It's a mystery.. 11. Trashed videos end up in the "Trashed" channel. Videos can be resurrected from the "Trashed" channel, so if something you've trashed is up an walking around in "Best Stuff", it's either that someone added the video to the channel, or they were perusing the "Trashed" and resurrected it to "Best Stuff".. Only 50% of videos in a channel can be trashed (not counting videos that are removed from youtube, which are trashed regardless). So if the channel had 5500 videos in it, it can at very least have 2750 videos if someone goes on a mad trashing spree.. And the videos are trashed in random order, videos added replace trashed videos, so all videos added have an equal chance of being trashed as ones already in system. See (how random is random below).. If the one trashing has more than 50% of a brain, then likely whatever is left will be the best there is.. 12. "From Youtube" channel was an experiment, there will be more experiments like this, in the future. Like the Justin TV channel, is he still on? Oh good. 13. How much is 5000 Videos? The average video is 5 minutes, that's 25000 minutes, 3600 minutes to a day, that's 6.94 days, or about a weeks worth of video if watched end to end. If you skip every third video, it's about 5 days of video.. The channels with 20000 videos would take a month to watch. Every month I'm adding about 2 to 3 thousand more videos to those channels, like the 80's channel. 14. How random is random? Each channel uses a random number generator, which is seeded with the system clock (standard practice). Random number generators are actually functions that are guaranteed to produce an equiprobable result.. A random number generator is called equiprobable if every number has a equal probability of occuring. It's like rolling a die. If a die is loded, or has a internal piece of metal, it will turn up say 6, everytime, therefore it is not equiprobable. Equiprobable means every number on the die has an equal chance of occuring when thrown, of course this depends on how the die is thrown. A random number generator gives every number a chance of occuring, equivalent to any number the generator is allowed to pick. So if there is 1000 possible selections, each number has 1/1000th chance of being picked, but no one number has a greater chance of occuring. Does this mean any number won't get selected twice whereas others are selected once? In a perfect world, if you had selected 1000 numbers with the generator, there would be no overlaps. However, it isn't and the random number generator here is being executed with a different send number on each execution, so there will be some bias depending on how unique the numbers and how unique the order of selection is across all seed values. I'm guessing the method of execution is biasing the results, but I've run tests and determined that 1% of numbers selected are reoccuring and .1% of numbers re-occur twice, but in 99% of the cases a unique result is produced, I performed this test by calling a random number generator as a second script and tallying up the results from the generator in the calling script. I was still noticing in CHANN3LZ though, that some videos were re-appearing more than once. Either because there were duplicate videos in chann3lz, or the random number generator was not doing its job. So I decided to try queing up the videos seen, and denying picks from the generator if the que already contained the result. This works some of the time, but not all the time.. So I developed a new method, which guarantees that all the videos are selected no more than twice.. It does this by marking videos as viewed, and selecting randomly from whatever is left over. When you select the "[no repeats in channel]" option, this is what is happening. Different from the queing approach, the que just guarantees that you will not see the same video twice in the last hour. The new method guarantees you won't see a video more than once throughout the whole selection of videos.. However the more people that are watching with this option turned on, the faster the progress through the channel. But there is a less chance, due to the nature of selection that you will see a video more than once for a longer period of time than with the queing method. If you thought this couldn't get any better.. I have some other methods I'm thinking about to guarantee that you will never see any repeats regardless of how many people are presently watching.. This will require more storage per session, but I think I can handle it.. Note, it's not likely that Chann3lz will come down forever, if it does I will release source code to the site so others can resurrect it. The idea is already out there that it can be done, so there will be clones.. News (6/25/07): You may have noticed a delay at 2:30 PM (Mountain), I don't know what that was. I think it was some sort of overload of fopen() calls from my service provider, I noticed in the sessions table that there is about 250 sessions, that means in the last hour 250 people visited the site, some may still be on, some not.. I know on some webservers there is a seperate copy of apache forked for each user, if this is the case, there may be a 500 user limit as that is the common limit for fork'd processes on a linux machine, either that or a maximum of 500 outgoing connections.. I called my hosting about it, and it remedied itself in the midst of the call, so it was only momentary. I may have to, sometime in the future, switch to Java servlets as I know each process runs as a thin client, meaning more users are capable per server without a process limit. I hate Java with a vengence because it's impossible to debug and every change requires a recompile of the web application.. It compiles web services!! How retarded.. PHP is interprettive, which is probably retarded, but underneath it all so is Java.. I think the only reason Java is compiled, is job insurance, it theoretically shouldn't run any faster because Java uses a virtual machine which is almost equivalent to an interpretive language.. Anyhow.. Hopefully Chann3lz will scale with the utilization.. If you notice any more delays, I may have to star asking for donations or come up with some sort of business model.