I’m looking to redesign the digg comment statistics page. The back-end I generally have no problems with, but when it comes to design, I just have no clue.
If someone is willing to redesign my page, I’ll offer you fame, fortune, and a link on the stats page to you or your email address! (OK, one out of three)
Basically, I don’t care how it looks, as long as it looks better than what I have (which isn’t saying much).
Some points to consider:
I have both a wide screen monitor and a regular monitor, so I would prefer that the page looks good on both. I generally can’t stand sites that end up using only 800 pixels of my screen. That being said, if it can’t be variable width, I’ll live if it looks good anyway.
The graph width can be very wide. So wherever that ends up should probably be in a div with overflow: auto.
The same goes for comments. Sometimes people will post a very long link in a comment and it will mess with all the other comments. That’s not good, so each comment should probably be in its own element with overflow: auto.
Based on stats, I get about 75% firefox hits. So, if for whatever reason, your idea only works in firefox but still looks reasonable in ie, safari, etc (graceful degradation), I won’t lose too much sleep over it.
If more than one person wants to redesign the site, maybe I’ll set up something where people can vote on which they like better? I’m not sure about that yet.
So if anyone out there is interested and has some time to kill, please let me know.
You can email me any designs at neaveru AT gmail dot com
My page was on digg last week and managed to get both to the front page and in the top ten. It became the number one story for about an hour before it was removed from the top 10 (Stories are removed 12 hours after becoming popular).
Here is the bandwidth graph (I believe it takes the average every 5 minutes):
And, I’ve used awstats to create some (filtered) stats to show the digg traffic. This is traffic only to the digg stats page during the time that it was on the front page, or where the referrer is from that page. Digg Traffic Statistics
Some interesting notes:
The story was submitted around 6PM on Sunday and got a few hits (18 at the far left of the graph)
It became one of the popular upcoming stories around 10:30PM
It hit the front page at around 11PM (The huge spike)
Interestingly enough, 8AM had a higher spike than 9AM (EST)
Right before 11AM is when the page was taken off the top 10, which is a shame since the California traffic didn’t get to see it.
I still got a decent amount of hits until around 11PM on sunday, when it was taken off the most popular in the last 24 hours.
I still get a modest number of hits, just not as often. But, considering that specific page has never been seen before it was posted on digg, it shows that digg traffic can at least bring some repeat traffic.
Oh, and google finally decided to list me. That was kind of them…
Other interesting stats (Os of Tuesday, around 4PM):
Total diggs: 2096
Blog posts from the blog section of digg: 7
Blog posts from blog section of digg that are obvious spam: 3 (And 3 of the other 4 seemed to just copy whatever was on the front page)
Del.icio.us bookmarks: 55
And of course, now with the google listing and the digg, I get the inevitable script kiddies hitting the page. Some of them are just ridiculous though. I mean, either they have 0 day exploits that happened to not work or they are using vulnerability from, I’m not exaggerating, 2003. I hope they don’t WinNuke my server. (OK in all seriousness, it’s probably just a worm from an already compromised server, but still)
Digg Comment Statistics Version 2 is now out.
Some requested features have been implemented.
Particularly:
Story names are now shown and have a link to the specific thread
Comments can now be sorted by story name, date, up, down, etc
The Max and min stats in the stat table now link to that specific comment on the page (so you can quickly find which comment has the highest rating etc)
More efficient/organized code (which I’ll probably continue to work on in the background)
Screenshots:
Kevinrose digg comment statistics graph showing up, rating and replies.
Statistics and comments for kevinrose. Comments are sorted by rating descending in this screenshot.
I’d like to apologize for not posting more updates. I decided to both move and get a new job at the same time so I’ve been trying to get settled in to a new routine. Hopefully I’ll be able to update more consistently.
I’ve created a digg comment statistics site. Once you give it a digg user name, it gives statistics such as average rating, number of replies, etc. Oh, and it has pretty graphs too.
Check it out and let me know what you think. Once again, it’s pretty ugly, but I always tend to focus on the functionality before the design.
Here’s a bit of a change of topic, let’s talk about gridviews in ASP.Net.
I find them quite convenient, but one thing that bothers me sometimes is that if I have a huge table (reports and such), I have to wait for the entire thing to be stored in the buffer before the user can see anything. So, of course, I had to go ahead and do something about it.
Basically, the way I went about getting the gridview to show up progressively was my creating my own gridview and gridviewrow to handle the rendering of each row. Here’s the code:
Code (csharp)
namespace Neaveru.Controls { publicclass NeaveruGridView : GridView { //We just want to override one method, CreateRow //We just have it rendering our own gridviewrow, instead of the normal one protectedoverride GridViewRow CreateRow(int rowIndex, int dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState) { returnnew NeaveruGridViewRow(rowIndex, dataSourceIndex, rowType, rowState); } }
//The gridviewrow that does the magic publicclass NeaveruGridViewRow : GridViewRow { public NeaveruGridViewRow(int rowIndex, int dataItemIndex,
DataControlRowType rowType, DataControlRowState rowState) : base(rowIndex, dataItemIndex, rowType, rowState){}
//We just call the base render and flush out the page buffer protectedoverridevoid Render(HtmlTextWriter writer) { base.Render(writer);
Page.Response.Flush(); } } }
That’s all!
Now you can use the control in place of the regular GridView and you’ve got progressive gridview rendering.
Sorry for the long delay in posts. I’ve been in the middle of searching for a new apartment and doing all the fun (read: time consuming) stuff that comes with getting a new apartment. I’ll leave it at that since I’d rather not get into anything too personal on a blog.
I have been doing some things in what little free time I had.
I’ve installed subversion and websvn on this server. So now if you’d like you can take a look at what I’m publicly showing on my svn server. The address is http://neaveru.com/websvn/
On that note, you’ll also notice on there I have a new pidgin plugin that I’m working on. It’s a mysql logger for pidgin (actually, for libpurple, so it would allow the not gtk based clients to use it as well). I borrowed some of the code from yonrad’s “Gaim MySQL Logging” plugin. The difference between the two plugins is that this plugin is compatibly with the logging capabilities of libpurple. So, now instead of having two options of ways to log “text” or “html” you have a third saying “MySQL”. It’s still in development of course. Feel free to take a look at the source using the svn server.
Very quick instructions:
Download both the .sql and the source. Import the sql to create the tables. (mysql -u YOUR_USER -d YOUR_DATABASE -p < THE_FILE.sql)
Copy the source file to the libpurple/plugins directory and run “make mysql_logger.so”
Copy that file to the plugin directory for libpurple (I used my home directory: ~/.purple/plugins)
Now when you run pidgin and enable the plugin, you can go to preferences > logging. You should have a mysql logger option. Select that go to tools > Mysql logger > Connect to database. Assuming all goes well, you should start seeing rows being inserted into your tables. You’ll be able to do the normal things like searching for logs by username (Buddies > Show User Logs) or viewing system logs (Tools > System Log)
I’ll hopefully have a better tutorial up here soon. I’m also hoping that the pidgin developers add a plugin page soon. I’m sure it’s not a priority for them and I can’t blame them for that.
I managed to get the server installed properly with a few difficulties. When installing Ubuntu Server Edition, I didn’t know the current DNS server off-hand, so I just ignored it when it asked for one. Turns out, during the installation, it attempts to go online and update the system, which it can’t do cause the server names don’t resolve, so it just hangs. I found out I had to go to a different terminal (ALT+F2) and find the apt-get update process (ps aux | grep apt-get) and kill it (kill #). After that, everything else went smoothly. I think assuming that the server is online and has resolve capabilities seems to be a bad idea. Maybe I just missed something though. I added everything I needed to be able to remotely manage the server and now it seems like everything is running relatively smoothly.
I decided to go with wordpress for the blog just because of the user base and I’ve heard relatively good things about it. I’ve been playing with the themes and plugins and will continue, so this look may change drastically in the next couple of days. If any can recommend some good plugins to have, especially statistics plugins, that would be appreciated (for wordpress, not the web server).
So now, hopefully I can get back to my regularly unscheduled updates. I’ve been playing around a lot with OpenGL so I’ll probably have some comments on that soon.
Just a quick post about something that’s been bothering me for a while.
For anyone who uses screenlets, ever notice that if you use Beryl (at least 2.*, dunno about newer versions) and have the 3d effects plugin, the screenlets act like they’re regular 3d windows? That bothers me so much.
So I updated the screenlets code. It’s just a quick hack. Just find your installed screenlets __init__.py file (Mine was at /usr/lib/python2.4/site-packages/screenlets/__init__.py)
Find where it says the following (around line 740):
Then, just set all the screenlets as widgets (Right click -> window -> widget) and restart the screenlets daemon or the beryl 3d effects plugin. (Yeah that’s annoying, but it’s only got to be done once).
Simple huh? Be careful not to add any extra spacing or anything like that. Python is pretty sensitive with that.
OK, I’ll respond to comments/emails tomorrow, I promise.
Assumptions:
1) You have wine and know how to use it (Running programs, winecfg, etc)
2) You have beryl running.
3) You have some amazing application that you want to run in fullscreen and in the background. (And possibly with different opacity, brightness, etc). I would recommend Dream Aquarium. thedarkmaskter has a tutorial on his blog on how to set it up. (Note, some setting will change from his instructions)
4) You have download the source code to Beryl Window Property Setter. It’s a small application I wrote to get this to work. Should just download the file on the home page, then run make.
Instructions:
1) Run winecfg. Go to the graphics tab and check “Emulate a virtual desktop”. Set “Desktop Size” to your desktop size. (I have mine set at 1400×900 and it runs smoothly). All other settings shouldn’t make a difference. Although, I have “Allow the window manager to control the windows” unchecked. Hit OK.
2) Run the program through wine. ie: wine “C:\\Program Files\\Dream Aquarium\\Dream_Aquarium.scr”. Now you should have the screensaver running in a window that is the size of your desktop. Make all settings (Number of fish, etc) you want now, because you won’t be able to change them afterwards.
3) run bwpropset as follows: ./bwpropset -fs -s -sp -st -nf -ni -b -op .8
Then you’ll see a crosshair. Select the wine window. If all goes well, you should have the window in the background of your desktop, much like xwinwrap.
Some more details:
-fs = fullscreen
-s = sticky
-sp = skip pager
-st = no focus
-ni = no input
-b = background
-op .8 = opacity at 80%
Play around with it until you find settings you like. Use the –help option for other features and possibilities.