1,791 karma · joined March 23, 2010
It's been like that for a while now. There's a BIOS setting for that.
HN: Are you running a web crawler off the following IPs? Fix it, it's broken.
to Ask HN: Are you running a web crawler off the following IPs? It's broken
This is not "Ask HN", I wasn't asking and I don't want it to come across as a question. If you feel like fixing capitalization, typos and punctuation - fine, but then stop. If you edit in a way that affects the tone and style of the title, then change the submitter name to your own! Because that title is certainly no longer mine.I also looked at the option of launching the program in a way that doesn't lock the .exe. For one, it's complicated. It requires creating a process in a Suspended state using a different executable, then basically gutting the memory of that process and replacing it with your own process copy, which needs to be fully preped with all imports and relocations taken care of, etc. In other words, it's pretty complicated.
But what's more important, the only type of software that employs this sort of process launching is the malware. In fact, the above method is derived straight from one of the viruses that made rounds a couple of years ago [1], and it was used by the virus to masquerade as a legit Windows process. So, in other words, you employ this sort of hackery in your program - you will quickly end up talking to anti-virus vendors about taking your software off their blacklists. It's a cool stuff, too bad it's off limits.
now is different. It re-prints current time once a second while waiting for the input. You basically get the running clock at the last line of output.
2) Ah, pedantic nitpicking, love it. Because the script is meant for interactive use with no streams redirected off the terminal, and because it doesn't output diagnostics or errors, but rather augments the stdout.
Or put differently - show me an example where writing into stderr would make more sense.
(edit) I guess someone can tee the output afterwards. Fine, I'll make it use stderr.
..., most of it, is filtered out by the replay protection at virtually no processing cost. The HMAC verification is not exactly a CPU killer either, even less so if there's some sort ASIC/accelerator involved, which won't be that unusual if there is an IPsec involved.
To not multiple the comments - what I said above about a single TCP packet obviously implies being on the route between the parties.
More generally speaking, I can alter the state of your secure over-TCP connection with an unauthenticated packet. Compare this to ESP where every packet that can potentially alter the state is first authenticated.
Say, you want to design a protocol with reliable delivery and/or loss detection. You will then have ACKs, send window and retransmissions. Guess what? If you don't follow windowing semantics of TCP, then one of two things will happen on saturated links - either TCP will end up with all the bandwidth or you will.
So - surprise! - you have no choice but to design a TCP clone.
[ EDIT ]
That said, there is a fundamental problem with TCP, when it's used for carrying secure connections. Since TCP acts as a pure transport protocol, it has no per-packet authentication and so any connection can be trivially DoS'd with a single fake FIN or RST packet. There are ways to solve this, e.g. by reversing the TCP and security layers and running TCP over ESP-over-UDP or TLS-over-UDP (OpenVPN protocol). This requires either writing a user-space TCP library or doing some nasty tunneling at the kernel level, but even as cumbersome as this is, it's still not a reason enough to re-invent the wheel. Also, if you want compression, it's readily available in TLS or as a part of IPsec stack (IPcomp). If you want FEC, same thing - just add a custom transform to TLS and let the client and server negotiate if to use it or not.
I mean, every network programmer invents a protocol or two in his lifetime. It's like a right of passage and it's really not a big deal. Unless it ends up attached to a brand name, in which case it starts attracting snarky remarks like this one :)
Might've been a bit more practical to build it as a story-hiding extension rather than a separate site. And I just happen to have such extension and... oh, look... it's under the BSD license... hint hint :)
[1] https://github.com/apankrat/internet-improvement-project/tre...
PS. I don't know why I picked (mod 5). Makes zero sense now.
Interestingly enough, nothing was happening on that Saturday. That I actually checked.
I obviously don't disagree that there's a lot of variables in play and some vary faster than others. What I meant by "10x" was that if the list were 20k subscribers instead of 2k for this particular experiment - what would've been the chance of the Saturday open rate jumping up.
The exact pattern will depend on the audience. If it's VmWare emailing IT people, then the open rate is probably going to be the same through the workdays and zero on weekends. If it's some hobby stuff, then it'd be in reverse. For my particular project, it just happens that Saturday sucked, which is a good thing to know.
So you are saying that if I had 10x the data, then the Saturday opening rate and the Sunday response rate could've been completely different?
From what I understand there are, for example, ways to invest in a motion picture, so it's not a big stretch to assume the same can be done with a game project.
A couple of things I forgot to mention in the post.
1. The numbers are based on hits through URLs with tracking information. Some visited and voted from the Twitter feed, some hit the base URL. This affects absolute numbers, obviously, but the %-ages should be about the same.
2. I also tallied up negative and positive votes, thought that perhaps people on Monday were more stressed and negative than on Sunday. But there were too few dislikes, so it's hard to make any conclusions -
like !like
Sat 22 3
Sun 44 3
Mon 34 1
Tue 34 1
Wed 35 4
EDIT - I added raw emails/opens/votes data at the end of the Tumblr post, just in case.It's actually reasonable. This is an opt-in mailing list and subscribers are generally interested in the project, so if they are hit with a relevant update on their free time, they will respond.
(edit) The rationale behind "Tue/Wed" is that I value views more than votes. Agreed on std.dev., yet Saturday still stands out as the least performing day.
bcp < filename
because this would allow for things like cat filename | gzip | bcp
with the receiving end doing bcp | gunzip > filename
Keep it as simple as it is now, but make it play nicely with other tools.HN thread from 6 months ago - http://news.ycombinator.com/item?id=4373959
(edit) I should also add that I pitched the idea to pg about a year ago, never heard anything back. I pinged him again when I released the extension and didn't hear anything back either.
Speaking from past experience, STUN and ICE are OK, but they got the whole process fundamentally wrong. They let the clients drive the traversal process. This is substantially inferior to letting a dedicated mediating server do that instead. I did that with one of my past projects and it helped with connecting peers in a large number of obscure scenarios.
Trying to deduce one-way path latency from the round-trip time ("ping") is impossible without further assumptions. You basically cannot understand if you are on a wire connection or if your uplink is via a sat by looking at just the ping output. You can try an bounce ping off multiple servers, relay pings and gather RTT properties over any graph path that includes your node and test servers, and yet you will always come one equation short for solving the linear system you'd end up with.
-- However --
If you make an assumption about some property of some path, then - boom - you can find the one-way latency for any edge on the graph. For example, if you have two test servers that sit on a backbone, you can assume the path latency between them is about the same either way. This gives you an extra linear for the system and this in turn lets you calculate the one-way latency between you and either of these servers.
It's a pretty neat problem. Makes you think, laterally.
> I never had any problems with FontSquirrel.
Neither have I. Until 4 days ago :)
1. Don't bother with direct font editing. Instead use a vector editor like Inkscape [1] to save your icons as SVG and then convert them to a complete font-face kit with IcoMoon [2].
2. IcoMoon will also let you cherry pick icons from a large number of both free and commercial icon packs. This is a great starting point, especially at the sketching phase.
3. A better way to browse icon packs though is with Fontello [3]. Same packs, snappier interface.
4. FontSquirrel font-kit generator is really good, because it does a great job (re-)hinting TTFs so that they come out looking better in smaller sizes (10-14px)
-- but --
There are fonts that FontSquirrel generator doesn't process correctly. It would happily spit out an @font-face kit, which will look normal most of the time. However on selected Windows boxes the font will render without anti-aliasing, naturally making it look like butt. It doesn't appear to depend on the Windows version (saw it happen on XP and W7) nor the browser (saw it on IE and Firefox). Also, same machines will render all other font-face kits just fine. I spent a couple of days chasing the cause, but then gave up because I found a simple workaround.The workaround is to serve OTFs. Instead of specifying .eot, .woff, .ttd, .svg in your CSS, list .eot, .otf, .woff, .ttf, .svg. OpenType files are generally heavier, but they also compress better, so it's a wash in terms of a I/O hit if served over gzip'd HTTP.
In other words -
+----------------------------+
| Make sure to test the hell |
| out of your font-face kits |
+----------------------------+
To that effect, Adobe Browser Lab [4] includes a version of Firefox that exhibits above behavior. However, the Lab also includes a version of Chrome that pixelates all fonts, because it appears to run on a machine with anti-aliasing disabled at the OS level (yes, it doesn't make any sense, must be some sort of an inside Adobe joke).So, the testing strategy is to get a proven font-face kit, like Open Sans, and check that both your font and this litmus font render well. If both look aliased, then it's the OS issue. If only yours does, then it's a problem with the font-face kit.
Having a 5.x.x.x address assigned to your machine doesn't make all Internet traffic for that address go to your box. You either don't understand the concept of routing domains or you just feel like trashing Hamachi in general.