1. Failing to check function parameters before using them: null pointers, limits, lengths, etc. This will make your program unstable and/or unpredictable.
I would go one step up from that: Failure to understand the contract of an API is what gets people. It's fine for basic functions like the C mem{cmp,move,cpy,set} functions to assume inputs are correct. It would be expensive to check them for every single call, and anyone passing in a NULL value to these functions can't be trusted to honor the return code anyhow. However, any competent developer using that API understands the contract, and does their own checking as necessary.
Also, checking vs. NULL usually only catches a small set of null-related issues. Assignment to a member of a NULL "object" might be hitting the address 0x20 (for example), which is indeed non-NULL but still invalid.
That's not too hard to work around. Suppose that instead of returning an absolute NULL, each of those functions instead returns an "null" object? If they all work by returning a flyweight, then really you're just looping through the same empty-object over and over again.
I've done this in C++, PHP, and Python. I imagine it extends equally into other languages. The C or C++ approach would be to have a global static hidden somewhere in the source file, and just use that constant as your null object.
HFT has been all over the news recently. Of course politicians are looking at it. It sounds like you are suggesting that every single person in Congress and the Senate has been payed off.
I can't comment about the cocaine allegation—never been on a trading floor. I don't know what that has to do with your argument, in any case. I guess it demonstrates that pit traders (NOT high frequency traders) have expendable income.
In an attempt to re-anchor this conversation with the main topic, I think that a big difference between a trader (of any sort) and a scalper is that the former is permitted by the exchanges themselves, whereas the latter acts in direct violation of TicketMaster's terms of service.
I'm genuinely curious: can you point out any recent legislation (either passed pro-HFT or blocked anti-HFT) that benefits high frequency traders to the detriment of the general market?
The only sensible way to report a failure on construction is to throw an exception. That doesn't result in memory leaks unless the constructor function is already incorrect.
Torrent seeding looks different from most malware. An ISP that is effectively classifying malware to protect the health of the network is also effectively QoSing known background-transfer services (i.e. your Ubuntu sharing is less important than your HTTP requests).
A machine that is actively participating in a DOS or impacting other users directly is a different case than one thats infected and idle.
If the machine is infected and idle, there's no way to detect that a virus is present upon it. ISP-based virus detection happens by classifying traffic flows to/from the machine.
If all investors mutually decide to only participate in the opening/closing auctions and forgo continuous trading, you would get what you want. But for many investors and low-frequency traders, continuous trading is still valuable.
Probably on the whole commercial products are better if only because people have money invested in them and they are less likely to get bored with them half way through.
I suspect most people developing commercial products get bored with them by the time they're half-way through, but they have to be shipped in order to keep beer and pizza on the table.
Motive doesn't matter: a completed product is more useful than an incomplete product. An incomplete product is only valuable as a collection of good ideas. Sometimes good ideas are better than crappy products, but only because ideas eventually turn into products.
Not sure what version of C you're using, but if you have access to const you should use it: const char *const a[10] =... will indicate that the strings are truly constant and can be put in a read-only location. I don't have a compiler on hand right now, so I can't promise the syntax there 100%.
This comment is an obvious attempt by you to lie. You are clearly not interested in an actual discussion on the subject, so the rest is not worth commenting on.
I don't follow why the GP's post was a lie, can you explain?
...there are too many factors that can interfere with [sound] working. From the personal choice of using a walkman...
I haven't at all argued that the "safety sound" should be audible to anyone listening to a portable music player, so please don't use that argument. Music players are commonly acknowledged as a risk for pedestrians.
...we are comparing different types of preparation i.e. plotting a route vs. planning travel.
Fair enough. I am more interested in the impact of a complete lack of planning, e.g. following GPS directions without knowing anything beyond the next turn.
There are usually 1-2 tourists per year who turn up at Sydney (Canada) expecting Sydney (Australia). The mystery is that places like London (Canada) don't seem to generate the same level of confusion with London (UK).
That is pretty funny... Canada's practical joke on the world.
Of course I look both ways before crossing. I also look the wrong way down one-way streets (because anyone who is driving the wrong way isn't likely to stop for me). I don't think you are grasping my point: humans are designed to both hear and see - if you deprive one sense, you are reducing the ability of a human to react. If you'd like to give people only the bare minimum, and then get upset when they miss a signal somewhere (and get hit by a car), expect a higher rate of failure.
The door analogy is a bit off, too... I don't imagine the rate of fatalities due to pedestrian-door collisions is very high!
...everybody else wouldn't have to live with pointless noise pollution for the rare time that they might be in the vicinity of the blind crossing traffic.
What you call "pointless noise pollution", I call "auditory cues". My eyes are both on the front of my head, giving me very good depth perception at the cost of peripheral vision. So for the directions outside of my current field of vision, my ears are useful at identifying SOMETHING GETTING CLOSE REALLY FAST GET OUT OF THE WAY. It can be plenty quieter than a traditional car and still be useful.
That, and I live in a big city. The noise pollution that I notice is by commercial vehicle engines, excessive honking, and squealing brakes; not personal vehicle engines.
I've seen "MM" suffix in the context of foreign currency trading/exchanges. Though they also use the term yard to signify a billion (of some currency).
A hundred years ago taking a transatlantic trip required a huge amount of planning and was a month or longer proposition. Now you can book a flight online and catch it the following day (usually at a premium price though!) to just about anywhere in the world.
You're comparing apples to oranges. When I book a flight across the world, I don't have to worry about navigation. I can't get lost on the plane, I just sit down and wait while the plane travels on its precisely-defined flight plan that someone else put together. OTOH when I drive to my friend's new house across town, I need to navigate myself the whole way there. Reviewing the entire route before stepping into the car will make me safer on the road, because I don't have to focus as much on "TURN RIGHT NOW". More people are skipping that review step and flying by the seat of their pants, because the technology enables that foolish behavior.
...the owner of an ISP bragged about slowing down P2P connections...I think the concept of neutrality should also prohibit those kinds of shady behaviors.
I fail to see how that is shady behavior. That class of traffic is (1) not latency-sensitive and (2) very high-bandwidth. I would love to see my interactive web traffic, gaming, and video streaming all prioritized above P2P!
Ok, I'll grant you that it's not optimal from a technical standpoint. Best would be applying QoS so that P2P operates at full line speed if nothing else is happening. But that tends to require more people who actually know what they're doing, so that's an education issue rather than a moral issue (to me, at least).
If net neutrality laws were in place they'd still be allowed to prioritise gaming traffic for everyone.
Define "everyone". Every single game may require different mechanisms of packet detection in order to even apply QoS in the first place. Most are port-based, but some may be protocol-based (i.e. deep packet inspection). Are port-based games "more equal" than the others, then? Also, please point me to the nearest lawmaker that knows enough about network infrastructure and software design to manage to craft a law that allows the good (protocol-based QoS) while still denying bad (anti-competitive tactics by middle-tier ISPs that also act as content providers). On this topic, I am as afraid of incompetent lawmakers as I am malicious businesses.
I know another ISP that did this sort of thing years ago, but I don't know the ISPs in TFA. Business packages probably don't include QoS for common game packets. Gaming packages probably doesn't include static IPs or multicast routing agreements. VoiP prioritization is common across the two, but I wouldn't expect much more.
If they had enough capacity on their network to avoid congestion, they wouldn't *need* to prioritise anything.
Congestion is unavoidable. As soon as the bandwidth appears, some use-case will appear that can suck up all of that bandwidth. A blanket statement of "prioritization = bad, capacity = good" is not productive, because both are important. Or do you think that mankind as a whole will suddenly become more frugal than history suggests?
...an ISP could just prioritize all UDP packets and gaming performance would improve without violating net neutrality.
Doesn't work that way. See, if the ISP prioritizes all UDP, then latency-insensitive UDP gets prioritized as well, resulting in no net benefit. Effective QoS needs to take into account expected bandwidth, meaning either deep packet inspection (identify common headers for games/VoiP), or averaging out all UDP bandwidth. Unfortunately, net-neutrality does prevent effective QoS, because the Evil Corporations want to look at the same information as the Bountiful ISP of Gaming Awesomeness.
You're assuming that the company hasn't agreed to open source the code. Some companies actually do release stuff they've done, or contribute back to OSS projects they use.
The justification laid out offhand is this:
Far as I'm concerned, that sort of thing belongs to me in the first place.
The judge won't care what his opinion is. The judge will care about employment contracts/agreements. Justification that doesn't go straight to "we agreed" implies that no agreement was negotiated.
I disagree. I think self-defense is always justifiable, but that doesn't mean it's moral. Besides that, stabbing someone in the back in return for a previous stabbing is not self-defense, but revenge.
It should please you to know that NASDAQ disabled Flash orders in their markets, and BATS encouraged the SEC to disallow flash orders long ago. I don't know whether the SEC has actually done any rules-lawyering on the issue, but both BATS and NASDAQ voluntarily shut this down over a year ago.
I would go one step up from that: Failure to understand the contract of an API is what gets people. It's fine for basic functions like the C mem{cmp,move,cpy,set} functions to assume inputs are correct. It would be expensive to check them for every single call, and anyone passing in a NULL value to these functions can't be trusted to honor the return code anyhow. However, any competent developer using that API understands the contract, and does their own checking as necessary.
Also, checking vs. NULL usually only catches a small set of null-related issues. Assignment to a member of a NULL "object" might be hitting the address 0x20 (for example), which is indeed non-NULL but still invalid.
That's not too hard to work around. Suppose that instead of returning an absolute NULL, each of those functions instead returns an "null" object? If they all work by returning a flyweight, then really you're just looping through the same empty-object over and over again.
I've done this in C++, PHP, and Python. I imagine it extends equally into other languages. The C or C++ approach would be to have a global static hidden somewhere in the source file, and just use that constant as your null object.
The type is atomic without resorting to a typedef. There's one less superfluous dependency. It's inviting to add initializations.
HFT has been all over the news recently. Of course politicians are looking at it. It sounds like you are suggesting that every single person in Congress and the Senate has been payed off.
I can't comment about the cocaine allegation—never been on a trading floor. I don't know what that has to do with your argument, in any case. I guess it demonstrates that pit traders (NOT high frequency traders) have expendable income.
In an attempt to re-anchor this conversation with the main topic, I think that a big difference between a trader (of any sort) and a scalper is that the former is permitted by the exchanges themselves, whereas the latter acts in direct violation of TicketMaster's terms of service.
I'm genuinely curious: can you point out any recent legislation (either passed pro-HFT or blocked anti-HFT) that benefits high frequency traders to the detriment of the general market?
The only sensible way to report a failure on construction is to throw an exception. That doesn't result in memory leaks unless the constructor function is already incorrect.
Torrent seeding looks different from most malware. An ISP that is effectively classifying malware to protect the health of the network is also effectively QoSing known background-transfer services (i.e. your Ubuntu sharing is less important than your HTTP requests).
If the machine is infected and idle, there's no way to detect that a virus is present upon it. ISP-based virus detection happens by classifying traffic flows to/from the machine.
If all investors mutually decide to only participate in the opening/closing auctions and forgo continuous trading, you would get what you want. But for many investors and low-frequency traders, continuous trading is still valuable.
Motive doesn't matter: a completed product is more useful than an incomplete product. An incomplete product is only valuable as a collection of good ideas. Sometimes good ideas are better than crappy products, but only because ideas eventually turn into products.
This macro isn't referenced.
Not sure what version of C you're using, but if you have access to const you should use it: const char *const a[10] = ... will indicate that the strings are truly constant and can be put in a read-only location. I don't have a compiler on hand right now, so I can't promise the syntax there 100%.
I don't follow why the GP's post was a lie, can you explain?
I haven't at all argued that the "safety sound" should be audible to anyone listening to a portable music player, so please don't use that argument. Music players are commonly acknowledged as a risk for pedestrians.
Fair enough. I am more interested in the impact of a complete lack of planning, e.g. following GPS directions without knowing anything beyond the next turn.
That is pretty funny... Canada's practical joke on the world.
Of course I look both ways before crossing. I also look the wrong way down one-way streets (because anyone who is driving the wrong way isn't likely to stop for me). I don't think you are grasping my point: humans are designed to both hear and see - if you deprive one sense, you are reducing the ability of a human to react. If you'd like to give people only the bare minimum, and then get upset when they miss a signal somewhere (and get hit by a car), expect a higher rate of failure.
The door analogy is a bit off, too... I don't imagine the rate of fatalities due to pedestrian-door collisions is very high!
What you call "pointless noise pollution", I call "auditory cues". My eyes are both on the front of my head, giving me very good depth perception at the cost of peripheral vision. So for the directions outside of my current field of vision, my ears are useful at identifying SOMETHING GETTING CLOSE REALLY FAST GET OUT OF THE WAY. It can be plenty quieter than a traditional car and still be useful.
That, and I live in a big city. The noise pollution that I notice is by commercial vehicle engines, excessive honking, and squealing brakes; not personal vehicle engines.
I've seen "MM" suffix in the context of foreign currency trading/exchanges. Though they also use the term yard to signify a billion (of some currency).
You're comparing apples to oranges. When I book a flight across the world, I don't have to worry about navigation. I can't get lost on the plane, I just sit down and wait while the plane travels on its precisely-defined flight plan that someone else put together. OTOH when I drive to my friend's new house across town, I need to navigate myself the whole way there. Reviewing the entire route before stepping into the car will make me safer on the road, because I don't have to focus as much on "TURN RIGHT NOW". More people are skipping that review step and flying by the seat of their pants, because the technology enables that foolish behavior.
I fail to see how that is shady behavior. That class of traffic is (1) not latency-sensitive and (2) very high-bandwidth. I would love to see my interactive web traffic, gaming, and video streaming all prioritized above P2P!
Ok, I'll grant you that it's not optimal from a technical standpoint. Best would be applying QoS so that P2P operates at full line speed if nothing else is happening. But that tends to require more people who actually know what they're doing, so that's an education issue rather than a moral issue (to me, at least).
Define "everyone". Every single game may require different mechanisms of packet detection in order to even apply QoS in the first place. Most are port-based, but some may be protocol-based (i.e. deep packet inspection). Are port-based games "more equal" than the others, then? Also, please point me to the nearest lawmaker that knows enough about network infrastructure and software design to manage to craft a law that allows the good (protocol-based QoS) while still denying bad (anti-competitive tactics by middle-tier ISPs that also act as content providers). On this topic, I am as afraid of incompetent lawmakers as I am malicious businesses.
I know another ISP that did this sort of thing years ago, but I don't know the ISPs in TFA. Business packages probably don't include QoS for common game packets. Gaming packages probably doesn't include static IPs or multicast routing agreements. VoiP prioritization is common across the two, but I wouldn't expect much more.
Congestion is unavoidable. As soon as the bandwidth appears, some use-case will appear that can suck up all of that bandwidth. A blanket statement of "prioritization = bad, capacity = good" is not productive, because both are important. Or do you think that mankind as a whole will suddenly become more frugal than history suggests?
Doesn't work that way. See, if the ISP prioritizes all UDP, then latency-insensitive UDP gets prioritized as well, resulting in no net benefit. Effective QoS needs to take into account expected bandwidth, meaning either deep packet inspection (identify common headers for games/VoiP), or averaging out all UDP bandwidth. Unfortunately, net-neutrality does prevent effective QoS, because the Evil Corporations want to look at the same information as the Bountiful ISP of Gaming Awesomeness.
The justification laid out offhand is this:
The judge won't care what his opinion is. The judge will care about employment contracts/agreements. Justification that doesn't go straight to "we agreed" implies that no agreement was negotiated.
I disagree. I think self-defense is always justifiable, but that doesn't mean it's moral. Besides that, stabbing someone in the back in return for a previous stabbing is not self-defense, but revenge.