Blogs are working again
In server upgrade aftermath blogs have been down for couple days. Now the blogs are working again.
Problems were mostly caused by MySQL 6.0 alpha release.
|
In server upgrade aftermath blogs have been down for couple days. Now the blogs are working again.
Problems were mostly caused by MySQL 6.0 alpha release.
It seems that people with good FPS can fire more accurately than people with low FPS. It is obvious that crosshair recovers slower than with high FPS - but does that affect accuracy?
Effect of FPS to accuracy was tested by shooting at a wall with M4 (without silencer) and recording exact coordinates where bullets hit. This was possible with Mattie Eventsrcripts. 90 bullets were fired with both 25 FPS and over 100 FPS. Another computer was 3100 Sempron (that is slow!) and another one E6300 Core Duo (very fast!!). Expected result was that 100 FPS player would shoot more accurately than 25 FPS player [Read: Rate settings in perspect of FPS]. Server was running with 66 tickrate.
When 90 bullet series were recorded then the data was handled with Linux shell scripts and GNUPlot used to make a graph of the firing pattern. Two tests were done, first firing all bullets standing still to a wall. Another test was to start strafing right and fire all bullets while strafing. Firing and strafing was done so that one keypress started the whole sequence.
Distance to the wall was about 20 meters.
![]()
Firing pattern when standing still (25 FPS vs. over 100 FPS)
![]()
Firing pattern when moving (25 FPS vs. over 100 FPS (even though it says 80 FPS in the picture, it’s above 100 FPS))
Just by looking at the pictures it looks like there’s no difference between 25 FPS and 100 FPS player. Another thing which was tested was firing sequences of 3 or 4 bullets at a time like normally in firefight. There was no difference then either.
Conclusion: low FPS players should stop complaining! Real conclusion: because of the way how data packets are sent to the server [Read: Rate settings in perspect of FPS] it is possible (and even likely) that high FPS players have actually advantage over low FPS players - other than being able to aim more accurately thanks to high FPS. Both client and server do weird stuff by interpolating data that they receive from eachothers so it’s possible that either the server or client or both are sending and expecting different data than they get. Because of those errors there might be simulation errors at the server and that gives an advantage for high FPS player. One of the errors might be that high FPS players data packets are handled first at the server and thus the high FPS player can get his shots registered before low FPS player.
For more information about how client and server do interpolation please read Source Multiplayer Networking, Lag Compensation and Networking Entities. Easiest to read is the first one and the hardest the last one. Sending and handling data over network is not easy!
As is written on Ghost’s blog about FPS settings affecting to rates it is possible that setting correct rate settings can help player shoot more effectively. Even though maximum updaterate would be 66 or 100 it could be more beneficial for player to set his rates according to his own computer specifications - that is, lower rates.
It would have been also possible to record exact time when the bullets hit the wall. That way it’d been possible to analyze whether 100 FPS player can fire faster bursts or empty the whole magazine faster. But there’s a more technical view to this thing which explains why testing is not easy. When 25 FPS player sends his command packets to server he only sends 25 packets per second. 100 FPS player can send all expected 66 packets. Because 25 FPS player is sending less packets he might instead send larger packets - more information in each data packet.
When server finally receives this information server doesn’t process it all at the same instant. For example if there are two commands such as “fire, move left” in the data segment then first “fire” is executed and then “move left”. In same situation 100 FPS player could send both “fire” and “move left” in separate data segments. When server receives data packets from both 100 FPS and 25 FPS player the server might do miscalculations on who shot first and where. Note: server isn’t that stupid actually, read more in links given above!
Mattie Eventscripts script to record bullet impacts
es_hitgroups.txt
event load
{
es_setinfo hitX 0
es_setinfo hitY 0
es_setinfo hitZ 0
es_setinfo i 0
es_keygroupdelete HitGroups
es_keygroupcreate HitGroups
est_RegSayHook !reset 0
}
event bullet_impact
{
es_setinfo hitX event_var(x)
es_setinfo hitY event_var(y)
es_setinfo hitZ event_var(z)
es_keycreate HitGroups server_var(i)
es_keysetvalue HitGroups server_var(i) x server_var(hitX)
es_keysetvalue HitGroups server_var(i) y server_var(hitY)
es_keysetvalue HitGroups server_var(i) z server_var(hitZ)
es_keygroupsave HitGroups |hitgroups
// Debug
es_setinfo coord 0
es_format coord “Bullet impact: %1 %2 %3″ server_var(hitX) server_var(hitY) server_var(hitZ)
es_msg server_var(coord)
es_math i + 1
}
event est_sayhook
{
es_tell #green Reset!
es_setinfo i 0
}
Linux shell-script to parse recorded bullet impact data
grep “\”.*\”\|x\|y\|z” 25fps.txt | sed -e ’s/^[^”]*//’ -e ’s/”//g’ -e ’s/[^0-9.-]//g’ -e ‘/^$/d’ | sed -e ‘N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;’
GnuPlot script to plot graphs
reset
set title “FPS shooting”
set terminal png color
set output “firing-pattern.png”
set multiplot
plot “25fps.txt” using 2:4 with points, “100fps.txt” using 2:4 with points
Here’s a small script to extract maybe interesting data from Psychostats 3. Mostly a reminder for myself but anyone else who is interested about PS3 stats can use this method too. Blog interprets : D as smiley so “K : D” is written with space, same as with “K : M”.
limit=250
echo “# Rank Kills Deaths K : D K : M Online Skill”
lynx -source “http://css.setti.info/psychostats3/index.php?limit=$limit” | # Get Psychosts 3 HTML source
grep “<td class=.text. align=.center.>\|<td class=.text.>\|<td class=.text. nowrap>” | # Find stat lines from HTML
cut -f 2- -d “>” | # Parse stats
sed ’s/<\/td>//’ | # Parse stats
cut -f 1 -d “&” | # Parse stats
sed -e ‘N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;’ # Parse one player’s stats in one line
#| sed -e ’s/,//g’ -e ’s/\./,/g’ # Replace periods (.) with commas (,)
Output should look something like this:
# Rank Kills Deaths K : D K : M Online Skill
1 13141 5482 2,40 0,69 317:55:50 15319,84
2 2247 908 2,47 0,95 39:25:18 15194,82
3 1665 754 2,21 0,67 41:21:15 14996,65
4 6149 2466 2,49 1,05 97:22:15 14715,97
5 21162 11396 1,86 0,61 582:14:46 14640,08
6 8672 4509 1,92 0,77 187:35:11 14638,51
7 6207 3721 1,67 0,58 178:41:34 14475,05
8 7245 4069 1,78 0,49 246:23:09 14378,98
9 1660 1200 1,38 0,50 55:40:32 14178,03
10 4375 2496 1,75 0,70 104:45:04 14150,38
That in turn can be handled with GNUPlot.
Something like comparing skill to K : D could be done to draw nice graphs.
GNUPlot script:
reset
set xlabel “Skill”
set ylabel “K : D ratio”
set title “Skill vs.“
set terminal png color;
set output “demo-plot.png”;
plot ‘ps3data.txt’ using 7:5 with points
That will result into a image which looks like this:
My hard disk drive started to slowly degrade. Windows boot up time grew longer and sometimes the hard drive was crunching something for 5 - 30 seconds. Later on the crunching time was between 5 - infinity. Then it was clear that something is wrong with the drive rather than Windows or some background process doing some useless disk scanning every once in a while.
The hard disk brand was Seagate Barracuda 320 GB 7200 RPM. Some time earlier I had bought 500 GB Samsung disk where I planned to completely restore the failing disk. I had about 280 GB data stored to the disk including Windows partition (30 GB) and 290 GB for data.
For backing up completely the whole 320 GB hard drive to the new 500 GB hard drive was the initial plan. For doing that job there are lots of tools. One of the most well known is Norton Ghost utility. Norton Ghost can (or it should) copy hard disk to another. When copying hard disks there is even option to copy MBR which is necessary for moving Windows from disk to another.
Copying the old hard disk to the new one took little less than 3 hours with Ghost. I then removed the old hard disk and tried to boot with the new hard disk. Everything went fine until Windows logon screen came up and the system failed to proceed forward. Norton Ghost had failed.
The more “hack-like” solution is to use Linux tools to copy hard disk. Linux is a good tool for this kind of operations because there are lots of CD-bootable distributions. I can boot Linux from CD and then do whatever I need to do to backup my data. This is also the somewhat harder way because the handling hard disk drives with Linux commands is not something that people have to deal with often. Thus it’s harder to learn than for example Norton Ghost’s easy graphical user-interface. Still, the basic idea is not hard at all - the hard part is figuring out that there exists such commands which can do hard disk backupping stuff in Linux. If the command is known then it’s easy.
The magical command is dd. By dd it’s possible to handle hard disk operations as if all the stuff in the disk was just bits and bytes. Dd doesn’t differentiate between boot sector or image - both are just data.
I used Knoppix as the “bootable live system”. Any other Linux release which has “bootable live system” can do the same thing. The live system boots Linux console or even graphical user-interface where the backup commands can be executed.
The magical command with parameters is
dd if=/dev/sda of=/dev/sdb bs=4k
The hard disk was copied about 70 MB / s which took about an hour to complete. After doing this I removed again the old hard disk and booted with the new. Everything worked! Where Norton Ghost fails a 28 kilobyte dd program succeeds.
Miscellaneous note: Very good tool to analyze hard disks seems to be program called SpinRite. There are two good video clips of the author telling how the software works. While looking for these links I accidentally found the following: SpinRite is 80% hype, 10% dangerous, and 10% real substance. I have not used this program earlier so I do not know whether it actually is what it promises but Steve seems to know what he is talking about.
Web analysis organization, XiTi Monitor, has released the latest report on Firefox market share evolution in Europe and globally.
![]()
IE is really crappy browser. For example on Setti page all the PNG images which have transparencies are not showed properly.
Firefox Opera IE OK OK Crap
Messageboard at Setti mainpage had to be changed to moderated when there started to be too much stupid one-liners. The difference between from page 388 backwards to onwards is like day and night. Stupid messages completely disappeared. There are still stupid people who post stupid messages but it is relieving to know that they don’t get published.
Not all members are moderated though. Currently there are handulf of players who have proved to be able to write something sensible every now and then. Currently not moderated users (who are still active) on mboard are:
Also admins and some others who have not posted anything for ages are not moderated. Those who are not moderated can see the informative message:
Your messages are not moderated. Your post will show immediately.
Users who are moderated see the message:
Your message must be approved before others can see it. Your message will be in waiting state before it is either approved or disapproved.
If you look for messages that not-moderated members have posted you might get the idea why admins can trust that they don’t post anything stupid. That is, there is no need for moderation. Unfortunately there are just a few such members.
It doesn’t mean that all the other members or their posts are stupid but it’s just that these are just not needed, not even once. Unfortunate reality is that if moderation is removed from some members then that kind of posts will increase.
Also commenting on these blog entries is moderated. However mboard moderation system beats this moderation hands down. Whenever new comment is posted for example on this post the comment disappears. It’s as if there was some error. Not a single bit of information that the comment has been succesfully sent and must be approved before displaying. I added the moderation info in the layout some time ago.
There are lots of stuff that had to be done so that the “START BLOG” button actually creates the blog and is ready to run. Here are some things which had to be dealt with.
Some players (for example: “. . : :EchO: : . .”, “Hattori Hanzo”) have registered themselves such names that cannot be easily written to urls. Obvious cases are those special characters which don’t appear in ASCII chart. Another thing is spaces which could have been dealt with by replacing them with _ or with nothing. However it’s not like those who had exotic name lose something if they change their username. Both EchO and HattoriHanzo have re-registered. Registering with odd names is not possible. Old usernames are still preserved though, so names with special characters are now a rarity. Hold on to your passwords
People who have “weird” characters in their names do not have “START BLOG” button on their useraccount page. There is notification that their username is not valid and they have to re-register IF they want to blog - it’s not mandatory.
As said in the previous chapter, newly registered users cannot register names which include special characters or spaces. In fact, someone actually registered with such a name and I had to update the registration form again (oops, old version was active).
Because comments are only allowed for registered users all new users have to have also usernames for these blogs. Because Setti mboard and these blogs are from different worlds there must be some integration between them. So, whenever user registers for mboard they also get username (not blog) for the blogs. If username wasn’t created then they wouldn’t be able to comment at all. Allowing anonymous comments is stupid because quite quickly spam bots and stupid random browsers find these blogs.
Default Wordpress installation requires e-mail addresses to be applied too but that seemed stupid. Luckily it is possible to create users with WPMU functions without specifying e-mail address.
This way both mboard useraccount and these blog accounts seem to be as one even though they are separate. Because all functionality still goes through mboard -> useraccount things can be controlled in more concentrated way. For example users don’t have to remember username / password for both mboard and these blogs.
Figuring out how to start a blog for some user was somewhat easier than figuring out for example how to signup a user without e-mail. Default blog owners didn’t have some privileges which would be useful. For example creating pages wasn’t possible. Also comment moderation wasn’t enabled even though all comments are by default moderated.
Logging in is maybe the most elegant solution. Both logging in to a blog and logging into a default user account are done with same login page. Login page can figure out
What is neat about this is that all required authentication is done by the same authentication thingies that identify all registered users for mboard. Wordpress doesn’t know anything about the user.
The layout ‘Boxy But Gold’ is taken from Wordpress themes gallery. There are millions of different themes. One requirement was that the main parcel is dynamic. There are lots of themes which don’t scale with the browser. No matter how big your browser is the text is still in that narrow parcel. That is not good.
Another “requirement” was that it is easy to include the default Setti header on top of the blogs. I tried couple themes and Boxy But Gold was the first one for which the header fitted perfectly. Not a single bit had to be changed either from BBG or Setti stylesheets.
The layout is not the best possible I have to admit. Positioning of pages (eg. see my blog, the upper left corner) is not good at all. All the pages are in lower case no matter how you write the page. Positioning of sub-pages is not any different from their parent pages (on my blog the “css stuff” page is parent of “high resolution cs:s video”). Originally the pages were at the right side but that is even worse.
Some links were also completely broken in the default theme installation. Those are now removed.
I’m still quite pleased with the blogs. The main blogs page which lists all new blogs is still somewhat cluttered because the blog entries don’t show up correctly. For example paragraphs are completely lost. This post surely won’t look pretty on the front page.
Here’s a video of a great video game! Just kidding, the music video by Ural 13 Diktators, a Finnish band who make retro kind of music. They take some of the samples from C64 sounds and they have covered quite a bit some well known hits from the ’80s. Still, great music with a flashback in time.
Absolutely great.
People have asked for forums to be installed at Setti occasionally. However forum postings and the whole content of the forums eventually goes into “whay me banned?”, “cheeter plz admin ban him now pls!11″, “plsz restrict awp” and etc. postings. Other kind is “where can I find <insert something you cannot find>?”. This observation can be seen on many other forums. At that point nobody is interested in writing anything useful to the forums anymore.
Another thing is that usually forums have these stupid categories (General, CS:S, Off-topic, Chatting, Map requests, … ) which quickly die because nobody actively writes to them. Only good category is the General category where everything could be posted on such a small community as Setti. Using lots of different categories only makes it slower to browse through new posts.
The “General” category now seems to be the Setti mboard. One thread into which all questions and answers are posted. Whenever people ask something it doesn’t take long for someone to answer to it. Having separate thread for each question+answer is not needed. There are not so much posts that questions would quickly flow away from the mainpage.
Forums are also familiar to lots of noobs who just register to post some stupid questions. Blogs are little bit more exotic and people - hopefully - don’t register just to post some stupid question on someone’s blog.
Moderation is still a must have to ensure that there’s some quality level for each post. Before Setti’s main messageboard was moderated there started to be lots of “lol”, “wtf”, “pls ban blabhal” and such posts which aren’t of any use. Because the board is now moderated people don’t so easily post stupid stuff for the whole world to see. And even if someone does, which does still happen, the message can be easily disapproved so nobody else has to read it.
Users who want to create lots of content of their own (videos, images, tutorials, own scribblings, diary, … ) can now easily manage the content. All other users can still comment on the posts of that particular user. This encourages people to write something which they think other people would want to read too rather than posting “lol” on their blog.
That is sort of own forum for each registered user.
Happy blogging!