Glad you're getting 6Mb/s. A friend of mine has Verizon [east coast] and barely gets 3Mb/s.
I'm guessing that when you say DSL2 and expect 20Mb/s down, you're meaning ADSL2+ [max is 24Mb/s vs. ADSL2 which is 12Mb/s]. I don't know how long 2+ has been out, but you might give 2+ a try if you're not already on it. Even with the bad wiring, it may help with some extra speed. Normally, if you're too far away, the extra 2+ frequencies don't help because they get dampened out, but your case may be an exception.
A couple of other things to try [with building owner's cooperation/blessing]: - You can pay to have a telco tech string new inside wiring - There are bidirectional DSL amplifiers that can go inline [~$100]. Normally, they're used to boost a DSL signal long haul (e.g. if a subscriber is [say] 20 miles to the CO, these are inserted every mile or so]. Putting one of these "in the cabinet" [where the telco wiring enters the building] might boost the signal enough to overpower the bad internal wiring. - I suspect that sonic already thought of this, but if you've got four wires entering your place, trying the "other" pair [inside vs. outside] might be better. I actually had this happen to me, and the tech changed things (e.g. one pair was bad, but the other was clean).
We both forgot to mention that because of the no datacap, sonic also lets you run a server from home 24x7 [which is a TOS violation for AT&T]
sonic.net has no datacaps and no "artificial" speed limits. [Note: I'm not affiliated with them--just a very happy customer since I switched in March].
Of course, I'm assuming that when you said "CPUC" that means California PUC. If so, go to http://www.sonic.net/ and enter your AT&T landline number. They will tell you how many feet you are from the sonic CO. Then, go to http://www.dslreports.com/foru... to see what your likely speed with sonic will be.
I'm 5000 feet to the sonic CO, so I got 1.3 megabytes/second [2x AT&T's elite service]. sonic is also cheaper. And, tech support couldn't be more pleasant or helpful.
In fact, when you post a tech question to a sonic tech forum, you might just get a response from Dane [Jasper]--the sonic.net CEO
I'm in Sunnyvale and I was awake at the time. I could feel it [for 3-4 seconds], but nothing fell. Dining room light hanging from ceiling swayed. Feeling here was less than a 4.3 in Carmel when I was in Cupertino. I've felt worse before. I was shocked to learn it was a 6.0 up north [And I hope the severely injured people recover quickly].
I was awake and felt the Californina quake [I'm in Santa Clara county]. It's probably the 7th or so quakes I've felt over the last 30 years. Where I was it was a small sway for 3-4 seconds. I was lucky [my heart goes out to those more deeply affected]. In the 1989 quake I was in Europe, but came back to find my place had stuff flung everywhere.
My prep [not great]: - 20 cans of spam [survival rate: one can/day] - Bottles of water - Bleach [1 drop per gallon of water from the toilet tank] - Flashlights with batteries - Landline phone (with old trimline so that it works w/o power) - Try to keep my gas tank at least 1/2 full - Car charger for cell phone - USB thumb drive on my key ring with copies of all my important documents [*]
[*] Had a fire that gutted half the building near mine once. I had HD backups of data, but they could have gone up in smoke. After that, I got the thumb drive. Now I scan in as much as I can [or print receipt/confirmations to.pdf files]
Why not instead of baffles construct an array of wind turbines to take the energy out the wind? Fix the deadly gales problem and power the building at the same time.
Yes, you could provide power for the death ray when the sun isn't shining.
But, "staunchly" is--it was [probably] a typo. A synonym for staunchly is "strictly" [which flows better, IMO], but "staunchly" would still be acceptable.
As to "it's" vs "its", it's often a toss up for many people as its usage isn't always clear cut [even among scholars and academics]. Consider the coin that might be used. In particular, if it's possessed by its own demons:-)
And the whole riff about GC. It makes out like it's superior in all cases.
It does mention refcounting as a subset [which perl does just fine with]. But, even with GC/refcount, you still have to break cyclic links in a tree (e.g. parent node has a list of children and each child points to its parent) when you're done or it will never GC. Also, sometimes you have to do something explicit to release resources (e.g. files) at a given time, rather than some arbitrary time later.
Further, GC is the bane of anything that must provide a constant semi-realtime response. With refcounting [can be done even in C/C++ if designed that way], you've got a "pay as you go" system [when refcount goes to zero, you free immediately]. With GC, you're "piling up debt" [of reclamation].
I've got a friend who is working on a java based web server system. When GC reclamation [finally] kicks in, the entire system goes "offline" for 35-45 seconds at a clip. He claims that particular system can be ameliorated with better programming practices (e.g. be mindful when a given construct will produce large amounts of GC), but is hard pressed to convince his colleagues of the need to do so.
Perhaps. But, if you cared to look at the other posts on the thread, you'd see how calm and rationale he was. Or look at the gcc bug report he filed. The gcc bug has gotten fixed
I've met Linus in the flesh a number of years back and he is truly a calm and mellow guy. He only does the "bullying" for the "shock effect" to get people [with strong egos] to actually start _thinking_.
And there is some precedent for this. A number of years back, gcc was doing an illegal code motion optimization across a spinlock. After literally hundreds of posts on the gcc mailing list about how this wasn't a bug, Linus started using muscle. I would have, too, at that point. When somebody finally pointed out that the optimization was actually violating requirements in the memory model of the [then] upcoming ISO C spec, it took another hundred or so posts before they actually believed one of their own [gcc people].
Since that time, the gcc folks have become more receptive to [rather than dismissive of] bugs filed by the kernel people--which is a good thing.
But, Germany wants to be part of the "special club" that has been US, GB, Canada, Australia, New Zealand for sharing SIGINT: http://en.wikipedia.org/wiki/U... But, most of those are just part of the UK, and they speak English [more or less:-)], so Germany can never really be "one of the good ole boys"...
I agreed with your original first paragraph [but forgot to mention it--sorry].
We need multiple such ranking lists just like we need multiple style guides. On the latter, some are better than others, but when they all converge on a given point, that's when it's more likely to be a valid concept.
I just looked at the latest tiobe and it appears to better match how I would have [being a programmer] ranked some of the languages. Spectrum will no doubt [have to] tune their methodology, based upon the drumming they're getting in this slashdot topic.
But, comparing languages can be apples/oranges or more like wrench/screwdriver. Although a master index can have benefit, subdividing it by use cases may be better. For example: - OS/embedded/realtime: C/C++/Obj-C - Web server backend: perl/Java/php - sysadmin: perl/python Even still, there are overlaps/hybrids in these as well.
In the link they provided explaining how they do their rankings, they mention Google search is one metric and also mention that it's what tiobe uses [with a link to tiobe's page]. They're trying to be more transparent and use multiple metrics vs just one or two. Maybe it's time to have an alternative to tiobe. If both indexes, done with different methodologies, provide similar results, this would tend to bolster the validity of each.
Clang warns about bad variable names? I need to switch!
I guess I should have used:
if (a_simple_boolean_expression_variable.that_is_automatic_scope.and_therefore_on_the_stack);
yet_another_simple_integer_variable.that_is_automatic.and_likewise_on_the_stack = 5;// set value to five
Or, if you [yikes!] prefer camel hump notation:
if (aSimpleBooleanExpressionVariable.thatIsAutomaticScope.andThereforeOnTheStack);
yetAnotherSimpleIntegerVariable.thatIsAutomatic.andLikewiseOnTheStack = 5;// set Value To Five
I prefer the warnings and use -Werror for my code.
However, adding -Werror to a library/whatever that the you don't [intend to] control/maintain that has lots of "benign" warnings just causes the headaches that you suggest. But, it leaves the code fragile/open to a bug that the compiler could help with.
But, it's the upstream developer's responsibility to fix the warnings which usually involve less hardship than not fixing them. You never know when it's trivial vs. uncovering a genuine bug. If all the trivial warnings are fixed, it allows more eyes on the problem. If I take over responsibility for a code base, the first thing I will do is fix the warnings [usually takes just a few hours]. By doing so, I've found genuine bugs. Otherwise, these get lost in the noise of the false positive warnings.
Case in point. I had some code that wasn't working. Built clean with gcc using -Wall. Couldn't see it visually despite several goings over. Finally recompiled with clang [thinking it might be an optimizer bug of some sort]. clang has some warnings that are default on with -Wall that gcc doesn't turn on. The code that was wrong, from several thousand lines, and trivial to see by inspection if you're zeroed in:
if (foo);
bar = 5;
clang flagged this as an "empty if" clause. I've since added the explicit -W option for gcc builds.
Some workloads perform much better on an FPGA, notably, realtime encoding/compression of HD H.264 video. I know because I've worked on such a broadcast quality encoder [currently being used by some major distribution outlets]. While you're right that it's harder to program an FPGA [in particular, validate the design], the performance gains can be huge. In particular, calculating motion vectors gets a win.
Note that H.264 DCT's are integer ones. And, with Intel's hybrid/onchip implementation, the FPGA logic could have access to the CPU's SIMD FP hardware. With Intel's hafnium and trigate technologies, adding the FPGA won't consume that much additional power.
And the developer that created this bug in 1998 is the same one who created heartbleed. Some people get a lifetime ban for hacking. Do we need a lifetime ban for coding?
In another comment, I posted a link to the talk that the libreSSL people gave on what they're doing. It's not really true that what they come up with won't run on other platforms. They're just removing a ton of "#if defined(OPENVMS) && (! defined(WIN32))" in favor of assuming a POSIX compliant libc. Even WinX now has that.
They're taking the "shim" approach. For example, they have two BSD-only functions: explicit_bzero [will _not_ be optimized away by the compiler--just calls bzero] and arrayalloc [does what calloc does but does _not_ zero the memory].
The BSD calloc/arrayalloc do a precheck for overflow of nmemb * size.
These are easy [trivial] to implement for non BSD systems: void explicit_bzero(void *ptr,size_t len) {
memset(ptr,0,len); } void * arrayalloc(size_t nmemb,size_t size) {
size_t totsize;
void *ptr;
The OpenBSD folks forked OpenSSL into LibreSSL. In addition to checking security, they are doing general code cleanup, removing unnecessary/dead code. They did a talk recently about what they've accomplished: https://www.youtube.com/watch?...
IMO [as a programmer of 40+ years (30+ with C)], the programming style of the code is horrible. One of the functions that produced heartbleed is called dtls1_process_heartbeat. For starters, it has one of the worst indenting schemes I've seen and seems to violate most style/best practice guides I've read. It isn't surprising that a bug [security or not] would creep in.
Well, consider that APL was originally based on an [alternate] mathematical notation developed by Kenneth E Iverson.
BTW, I was writing APL programs in 1972 [and I already knew Fortran]... The real problem with APL, aside from needing an alternate keyboard, was that the equations were so dense that proper commenting was difficult. And, if you did proper commenting, it broke up the equations, defeating the purpose...
Glad you're getting 6Mb/s. A friend of mine has Verizon [east coast] and barely gets 3Mb/s.
I'm guessing that when you say DSL2 and expect 20Mb/s down, you're meaning ADSL2+ [max is 24Mb/s vs. ADSL2 which is 12Mb/s]. I don't know how long 2+ has been out, but you might give 2+ a try if you're not already on it. Even with the bad wiring, it may help with some extra speed. Normally, if you're too far away, the extra 2+ frequencies don't help because they get dampened out, but your case may be an exception.
A couple of other things to try [with building owner's cooperation/blessing]:
- You can pay to have a telco tech string new inside wiring
- There are bidirectional DSL amplifiers that can go inline [~$100]. Normally, they're used to boost a DSL signal long haul (e.g. if a subscriber is [say] 20 miles to the CO, these are inserted every mile or so]. Putting one of these "in the cabinet" [where the telco wiring enters the building] might boost the signal enough to overpower the bad internal wiring.
- I suspect that sonic already thought of this, but if you've got four wires entering your place, trying the "other" pair [inside vs. outside] might be better. I actually had this happen to me, and the tech changed things (e.g. one pair was bad, but the other was clean).
We both forgot to mention that because of the no datacap, sonic also lets you run a server from home 24x7 [which is a TOS violation for AT&T]
sonic.net has no datacaps and no "artificial" speed limits. [Note: I'm not affiliated with them--just a very happy customer since I switched in March].
Of course, I'm assuming that when you said "CPUC" that means California PUC. If so, go to http://www.sonic.net/ and enter your AT&T landline number. They will tell you how many feet you are from the sonic CO. Then, go to http://www.dslreports.com/foru... to see what your likely speed with sonic will be.
I'm 5000 feet to the sonic CO, so I got 1.3 megabytes/second [2x AT&T's elite service]. sonic is also cheaper. And, tech support couldn't be more pleasant or helpful.
In fact, when you post a tech question to a sonic tech forum, you might just get a response from Dane [Jasper]--the sonic.net CEO
I'm in Sunnyvale and I was awake at the time. I could feel it [for 3-4 seconds], but nothing fell. Dining room light hanging from ceiling swayed. Feeling here was less than a 4.3 in Carmel when I was in Cupertino. I've felt worse before. I was shocked to learn it was a 6.0 up north [And I hope the severely injured people recover quickly].
I was awake and felt the Californina quake [I'm in Santa Clara county]. It's probably the 7th or so quakes I've felt over the last 30 years. Where I was it was a small sway for 3-4 seconds. I was lucky [my heart goes out to those more deeply affected]. In the 1989 quake I was in Europe, but came back to find my place had stuff flung everywhere.
My prep [not great]:
- 20 cans of spam [survival rate: one can/day]
- Bottles of water
- Bleach [1 drop per gallon of water from the toilet tank]
- Flashlights with batteries
- Landline phone (with old trimline so that it works w/o power)
- Try to keep my gas tank at least 1/2 full
- Car charger for cell phone
- USB thumb drive on my key ring with copies of all my important documents [*]
[*] Had a fire that gutted half the building near mine once. I had HD backups of data, but they could have gone up in smoke. After that, I got the thumb drive. Now I scan in as much as I can [or print receipt/confirmations to .pdf files]
Perhaps it was "The Green Slime" http://www.imdb.com/title/tt00...
Why not instead of baffles construct an array of wind turbines to take the energy out the wind? Fix the deadly gales problem and power the building at the same time.
Yes, you could provide power for the death ray when the sun isn't shining.
But, "staunchly" is--it was [probably] a typo. A synonym for staunchly is "strictly" [which flows better, IMO], but "staunchly" would still be acceptable.
As to "it's" vs "its", it's often a toss up for many people as its usage isn't always clear cut [even among scholars and academics]. Consider the coin that might be used. In particular, if it's possessed by its own demons :-)
How about Dr. Dobbs?
And the whole riff about GC. It makes out like it's superior in all cases.
It does mention refcounting as a subset [which perl does just fine with]. But, even with GC/refcount, you still have to break cyclic links in a tree (e.g. parent node has a list of children and each child points to its parent) when you're done or it will never GC. Also, sometimes you have to do something explicit to release resources (e.g. files) at a given time, rather than some arbitrary time later.
Further, GC is the bane of anything that must provide a constant semi-realtime response. With refcounting [can be done even in C/C++ if designed that way], you've got a "pay as you go" system [when refcount goes to zero, you free immediately]. With GC, you're "piling up debt" [of reclamation].
I've got a friend who is working on a java based web server system. When GC reclamation [finally] kicks in, the entire system goes "offline" for 35-45 seconds at a clip. He claims that particular system can be ameliorated with better programming practices (e.g. be mindful when a given construct will produce large amounts of GC), but is hard pressed to convince his colleagues of the need to do so.
And maybe perl. They forgot to mention that slashdot uses it [IIRC]. And TIOBE to compile the stats [IIRC].
http://developers.slashdot.org...
Perhaps. But, if you cared to look at the other posts on the thread, you'd see how calm and rationale he was. Or look at the gcc bug report he filed. The gcc bug has gotten fixed
I've met Linus in the flesh a number of years back and he is truly a calm and mellow guy. He only does the "bullying" for the "shock effect" to get people [with strong egos] to actually start _thinking_.
And there is some precedent for this. A number of years back, gcc was doing an illegal code motion optimization across a spinlock. After literally hundreds of posts on the gcc mailing list about how this wasn't a bug, Linus started using muscle. I would have, too, at that point. When somebody finally pointed out that the optimization was actually violating requirements in the memory model of the [then] upcoming ISO C spec, it took another hundred or so posts before they actually believed one of their own [gcc people].
Since that time, the gcc folks have become more receptive to [rather than dismissive of] bugs filed by the kernel people--which is a good thing.
IMO, cmd.com is [also] a four letter word :)
$lisp?? Was this on McGill's RAX/Music or BU's RAX/VPS system by any chance?
But, Germany wants to be part of the "special club" that has been US, GB, Canada, Australia, New Zealand for sharing SIGINT: http://en.wikipedia.org/wiki/U... But, most of those are just part of the UK, and they speak English [more or less :-)], so Germany can never really be "one of the good ole boys" ...
Among its many other uses, QEMU is used as the android developers' simulator.
I agreed with your original first paragraph [but forgot to mention it--sorry].
We need multiple such ranking lists just like we need multiple style guides. On the latter, some are better than others, but when they all converge on a given point, that's when it's more likely to be a valid concept.
I just looked at the latest tiobe and it appears to better match how I would have [being a programmer] ranked some of the languages. Spectrum will no doubt [have to] tune their methodology, based upon the drumming they're getting in this slashdot topic.
But, comparing languages can be apples/oranges or more like wrench/screwdriver. Although a master index can have benefit, subdividing it by use cases may be better. For example:
- OS/embedded/realtime: C/C++/Obj-C
- Web server backend: perl/Java/php
- sysadmin: perl/python
Even still, there are overlaps/hybrids in these as well.
In the link they provided explaining how they do their rankings, they mention Google search is one metric and also mention that it's what tiobe uses [with a link to tiobe's page]. They're trying to be more transparent and use multiple metrics vs just one or two. Maybe it's time to have an alternative to tiobe. If both indexes, done with different methodologies, provide similar results, this would tend to bolster the validity of each.
Clang warns about bad variable names? I need to switch!
I guess I should have used: // set value to five
if (a_simple_boolean_expression_variable.that_is_automatic_scope.and_therefore_on_the_stack);
yet_another_simple_integer_variable.that_is_automatic.and_likewise_on_the_stack = 5;
Or, if you [yikes!] prefer camel hump notation: // set Value To Five
if (aSimpleBooleanExpressionVariable.thatIsAutomaticScope.andThereforeOnTheStack);
yetAnotherSimpleIntegerVariable.thatIsAutomatic.andLikewiseOnTheStack = 5;
I can be flexible when needed ...
Engineers' Guide to the Supreme Court: They're not smart ...
I prefer the warnings and use -Werror for my code.
However, adding -Werror to a library/whatever that the you don't [intend to] control/maintain that has lots of "benign" warnings just causes the headaches that you suggest. But, it leaves the code fragile/open to a bug that the compiler could help with.
But, it's the upstream developer's responsibility to fix the warnings which usually involve less hardship than not fixing them. You never know when it's trivial vs. uncovering a genuine bug. If all the trivial warnings are fixed, it allows more eyes on the problem. If I take over responsibility for a code base, the first thing I will do is fix the warnings [usually takes just a few hours]. By doing so, I've found genuine bugs. Otherwise, these get lost in the noise of the false positive warnings.
Case in point. I had some code that wasn't working. Built clean with gcc using -Wall. Couldn't see it visually despite several goings over. Finally recompiled with clang [thinking it might be an optimizer bug of some sort]. clang has some warnings that are default on with -Wall that gcc doesn't turn on. The code that was wrong, from several thousand lines, and trivial to see by inspection if you're zeroed in:
if (foo);
bar = 5;
clang flagged this as an "empty if" clause. I've since added the explicit -W option for gcc builds.
Some workloads perform much better on an FPGA, notably, realtime encoding/compression of HD H.264 video. I know because I've worked on such a broadcast quality encoder [currently being used by some major distribution outlets]. While you're right that it's harder to program an FPGA [in particular, validate the design], the performance gains can be huge. In particular, calculating motion vectors gets a win.
Note that H.264 DCT's are integer ones. And, with Intel's hybrid/onchip implementation, the FPGA logic could have access to the CPU's SIMD FP hardware. With Intel's hafnium and trigate technologies, adding the FPGA won't consume that much additional power.
Also note the benefits for search in an article just published today: http://arstechnica.com/informa...
And the developer that created this bug in 1998 is the same one who created heartbleed. Some people get a lifetime ban for hacking. Do we need a lifetime ban for coding?
In another comment, I posted a link to the talk that the libreSSL people gave on what they're doing. It's not really true that what they come up with won't run on other platforms. They're just removing a ton of "#if defined(OPENVMS) && (! defined(WIN32))" in favor of assuming a POSIX compliant libc. Even WinX now has that.
They're taking the "shim" approach. For example, they have two BSD-only functions: explicit_bzero [will _not_ be optimized away by the compiler--just calls bzero] and arrayalloc [does what calloc does but does _not_ zero the memory].
The BSD calloc/arrayalloc do a precheck for overflow of nmemb * size.
These are easy [trivial] to implement for non BSD systems:
void
explicit_bzero(void *ptr,size_t len)
{
memset(ptr,0,len);
}
void *
arrayalloc(size_t nmemb,size_t size)
{
size_t totsize;
void *ptr;
totsize = nmemb * size; // blow up ...
if (/* totsize overflowed*/)
ptr = malloc(totsize);
return ptr;
}
The OpenBSD folks forked OpenSSL into LibreSSL. In addition to checking security, they are doing general code cleanup, removing unnecessary/dead code. They did a talk recently about what they've accomplished: https://www.youtube.com/watch?...
IMO [as a programmer of 40+ years (30+ with C)], the programming style of the code is horrible. One of the functions that produced heartbleed is called dtls1_process_heartbeat. For starters, it has one of the worst indenting schemes I've seen and seems to violate most style/best practice guides I've read. It isn't surprising that a bug [security or not] would creep in.
Here's the original commit for the code:
http://git.openssl.org/gitweb/...
Here's the commit for the heartbleed fix:
http://git.openssl.org/gitweb/...
Well, consider that APL was originally based on an [alternate] mathematical notation developed by Kenneth E Iverson.
BTW, I was writing APL programs in 1972 [and I already knew Fortran] ... The real problem with APL, aside from needing an alternate keyboard, was that the equations were so dense that proper commenting was difficult. And, if you did proper commenting, it broke up the equations, defeating the purpose ...