What do they serve to other user-agent strings, and what is an example of a user-agent string that gets that version?
I hope they don’t put their “Your browser is too slow! Try Chrome!” ad when the page is loaded with Chrome, for instance...
What do they serve to other user-agent strings, and what is an example of a user-agent string that gets that version?
I hope they don’t put their “Your browser is too slow! Try Chrome!” ad when the page is loaded with Chrome, for instance...
The 50 days of being active is currently the biggest bottleneck.
Why would there even be a max? Surely there is a min too. That would be a challenge - all posts must be between 138 and 140 characters!
There may be some cache issue, but I can’t get it to work even in the preview pane. I tried quoting someone but @PJH is rebaking posts faster than I can quote them.
From @codinghorror's blog:
At least they're using OVR instead of INS.
Just today, one of my friends rm
’ed *.py
instead of *.pyc
on his work computer.
I’m pretty sure I never accidentally lost a file when using a GUI. I’ve already messed up with rm
a few times.
And then he restored his code from source control. Right? Right?!
Given the expletives he produced when talking about this incident, I hightly doubt he had committed all his changes.
I might be confusing things, but I think I saw an XFCE-using distribution somewhere that opened the logout/shutdown window when pressing the power button.
Filed under: Only ~200 topics to go
Status: Pestering against our rule checker for C code which forbids using the ternary operator.
Replacing
const int num_items_static_assert[(sizeof(some_array) / sizeof(*some_array) == EXPECTED_ARRAY_SIZE) ? 1 : -1];
with the much more readable since there is no ternary operator
const int num_items_static_assert[1 - 2 * (sizeof(some_array) / sizeof(*some_array) == EXPECTED_ARRAY_SIZE)];
My apartment complex is booting out the local ISPs and installing their own fiber.Going from 6Mbps for $30/month to 20Mbps for $40/month. Winning!
Status: Complaining about dialog boxes lacking a “Dont’t bother me again” checkbox.
Status: FUCKING HELL WHY DOES THIS MOUSE DOUBLE CLICK WHEN I CLICK ONCE?
Status: Considering building some C program manually, because I have to change one of its files many times, and its Makefile is so broken it rebuilds everything every time.
Reconsidering the previous idea after seeing that building each file requires a gcc command line sufficiently long to overflow a 117x56 terminal.
Status: Writing server software. The corresponding client was written by another team, and is supposedly already complete and working, although its networking code has never been tested (since there was no server to test it with). Let’s see if it works...
Just an ordinary link, usually to #, #tag or #some_nonsense_that_extends_the_attempt_at_humor.
or just <a>some text</a> because Discourse tends to remove href="#" anyway.
Status: Disappointed that I’m no longer getting “All heap blocks were freed, no leaks are possible” when running my program under valgrind since the last system update added a memory leak in dlopen
.
Status: Loading slashdot for the first time today and getting this:
(it’s basically asking me if I allow their website to put cookies on my computer)
So, cookie law issues aside (I don’t know anything about them), i have the following rants:
Status: Downloading MS corefonts to a local webserver so ttf-mscorefonts-installer
can install them without trying to download them from Sourceforge through the HTTP proxy (which fails miserably for some reason).
Status: Finally got our code checker tool to work on a newly-installed dev server.
As it turns out, GCC provides a stdint.h
file which does a #include_next <stdint.h>
. Since the code checker do not knows what #include_next
does, it ignores it. It then chokes on a uint16_t
, starts throwing thousands of errors as a result, and eventually segfaults.
I ended up using the same workaround which was used on the old server: remove the offending stdint.h
file so it finds the real one.
Status: Working around the blocking of NTP packets by the corporate router by using the router itself as a NTP server.
My point was that it doesn't print the same thing every time because the Go devs noticed people assuming things about ordering that they shouldn't assume so they made map iteration order random.
I think it’s because they randomize the hash function to prevent hash collision DoS attacks. It’s probably not to make developers do the right thing.
Status: Fixing warnings reported by the C static analyser, in code I didn’t write. Finding some WTFs:
if (get_value(&value) < 0) {
fprintf(stderr, "get_value failed, value = %d\n", value);
} else {
printf("Value = %d\n", value);
}
// [... code assuming that value was correctly set]
> Python 2.4.3FUCK YOU CENTOS 5!!!
Been there, done that. You have my sympathy.
with
? No three-block try/except/finally
? except x, ExceptClass:
instead of except x as ExceptClass:
? No Popen.kill? Is this thing even Python?
I came up with http://repl.it/2n9 in 2:59.83. It solves the problem, though not efficiently and it'd be a bitch to extend.
The nested ternary operator thread is this way...
Status: After five minutes of wondering why I couldn’t execute a build script, I found that the NFS share randomly decided to mount itself with the noexec
option.
Now I need to find why it does this...
# server:/etc/exports
/home/ 10.33.0.0/255.255.0.0(rw,sync)
# client:/mnt/fstab
server:/home/VinDuv /home/VinDuv nfs rw,soft,timeo=10,user,auto,exec 0 0
Status: Adding features to a CLI application which basically reads user input, formats the data, sends it to another process, read the response, and display it to the user.Instead of using blocking I/O, it uses a select-based event loop and a state machine.
Status: Finally got a chance to rewri^Wrefactor this program to use blocking I/O; I also made some substantial improvements to it.
Net result: 12 files changed, 269 insertions(+), 1273 deletions(-)
so they can unbreak things
Except that here, bad settings broke the admin interface itself, which make a bit difficult to unbreak it.
More than: svn add foobar.c && svn commit foobar.c
?
I think @dkf is referring to a file which already is in the repository.
With svn, if it’s modified, you can do svn commit
and it will be included in the commit. Same with Mercurial. But with Git, you need to do git add thefile
before git commit
(or do git commit thefile
to only commit this file)
Status: Applying updates after reinstalling Windows 7. Currently at update 22/171.
a language anyone around here knows
Try lojban, this way you’ll only offend @ben_lubar.
Status: Starting logrotate
under gdbserver
to find out why it isn’t rotating files as it should. It’s probably a stupid configuration problem, but since its verbose output just says “log does not need rotating”, it will probably be faster that way...
The appropriate response would be to create a speed test with a built-in Web proxy...
It’s probably a stupid configuration problem
daily
(daily log rotation) and size=20M
(rotate when the size exceeds 20MB) options enabled, even tough they are mutually exclusive. And the 1668-line config parsing C code doesn’t bother raising a warning in this case. *sigh*.
Status: Without corporate email since yesterday. Our ExQuilla license expired on November 29th; the problem was known since mid-November but wasn’t acted upon until it was too late...
Could the signal handler reraise the signal that triggered it? Or would that cause a painful infinitely-recursive death?
I’m not sure what happens if you reraise a signal from a signal handler (probably nasal demons), but you can return from it, which will reraise it (at least in the SIGSEGV
case -- the program will fault again on the same spot). This will call your signal handler again, and the cycle will repeat.
What you can do is remove your signal handler when it’s called (or use the SA_RESETHAND
flag when setting it up, which probably does the same thing); this way, when the signal is reraised, the default handler will be called, and the program will be terminated.
Speaking of recursive death, I think you can get one with the aforementioned WTF handler, if exit(3)
happens to crash (for instance when it calls atexit(3)
handlers). I’m almost tempted to try it out...
sprintf_s becomes sprintf
You might be able to use snprintf
instead, which is “safe” (read: it will silently truncate longer strings but will at least always give back a null-terminated string).
Status: Considering multiple options to extract some information from a CAN device driver. I have the choice between opening and parsing the contains of a debug-only /proc
entry, popen()
ing some iproute2
command and parsing its output, or use the crappy AF_NETLINK
interface.
I think I’ll take the scenic route and add a specific ioctl
to the driver...
If @-mentions are indeed case-insensitive, then both @pjh and @PJH should show as mentions... which they do ;)
TRWTF is that the user card shows the username with the capitalization used in the @mention (instead of showing the real one)
Be grateful we don't have tagging included with that...
I suppose there isn’t any kind of changelog to know what changed?
Status: Finding out why a program takes 17 seconds to save its parameters to a leveldb database.
Relevant strace
output:
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_SHARED, 8, 0) = 0x7fa5bc8d3000
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d3000, 8192, MS_SYNC) = 0
msync(0x7fa5bc8d4000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d4000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d4000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8d4000, 4096, MS_SYNC) = 0
---- SNIP 607 lines ...
msync(0x7fa5bc8dd000, 4096, MS_SYNC) = 0
msync(0x7fa5bc8dd000, 4096, MS_SYNC) = 0
So for each one of the ~700 parameters, which are about 32 bytes each, the program will write 4096 bytes to the hard drive and wait until it’s done before continuing. Brillant!
Now it’s reddit on IE6. Spoiler alert: It doesn’t look good.