automatic stack allocation and cleanup (RAII technique)
Something I didn't find on digitalmars is a discussion of what you do if you want RAII on objects you return from a function (auto can't be returned, or be an out parm, right?). What is the D equivalent to a shared_ptr of iostream (or a auto_ptr of the same)?
What would a library use to hold objects that might be heavy weight objects (network sockets maybe, or 3D textures stored on a graphics card)?
Is there some idiom for it?
Oh, and is there a weak reference for use in caches or the like? (yeah, ok, so it always looks so good in manuals, and I've never gotten around to using them for caches, but I have used it in a few places for things like "call the timeout function in 20 seconds if this request is still alive")
This is where a stack-based allocation could come in handy. A new kind of object can be created which saves the stream in its constructor and restores the stream in its destructor. If these happen at known points in the program, then all is well. If the destructor (or finalizer) is called at an undefined point, badness results.
D has a stack-based allocation scheme, declare your variable auto and you get something that will be destructed when it goes out of scope. According to D's manual:
The auto attribute is used for local variables and for class declarations. For class declarations, the auto attribute creates an auto class. For local declarations, auto implements the RAII (Resource Acquisition Is Initialization) protocol. This means that the destructor for an object is automatically called when the auto reference to it goes out of scope. The destructor is called even if the scope is exited via a thrown exception, thus auto is used to guarantee cleanup.
Unfortunitly it also says:
Auto cannot be applied to globals, statics, data members, inout or out parameters. Arrays of autos are not allowed, and auto function return values are not allowed. Assignment to an auto, other than initialization, is not allowed. Rationale: These restrictions may get relaxed in the future if a compelling reason to appears.
So while it can be used for simple things, it looks painful to use for stuff that shared_ptr or even the reviled (by me!) auto_ptr can do so well.
I always wonder why anyone worries about the tiny incremental hit of function calls/vtable lookups in C++
Indirect jumps can be 20 times as costly as a direct jump, at least on a modern CPU. On a 68020 it isn't quite twice as slow. On some CPUs they almost assure a full pipeline stall. So it ain't all that tiny, unless the virtual functions are quite large.
If the application is so speed- or realtime-oriented that you can't afford having the compiler do some work for you, then write it in C...maybe throw in some C++-style patterns (typedef'd void pointers, etc) to help the compiler a bit. If the application requirements aren't that stringent, relax, use GC if you can, run the compiler, and think of England.
Ok, so I can normally afford the vtable jumps:-) Depending on how good the GC is, I might be able to afford it too. Some day I'll get a chance to give D a shot and find out. After all sometimes I get to use perl...
My complaint about garbage collection is that it only solves the memory problems. It doesn't solve deallocation problems with other resources, which are generally more expensive and more limited[...]I like C++ because it's "Resource allocation is acquisition" strategy can be consistently used for memory allocations as well as system resource allocation.
D's manual claims it supports RAII through auto variables. D's auto variables look like C++'s auto_ptr, except you can't use them as return values (I think you can use them as out arguments though). In C++ I really despise auto_ptr, the boost shared_ptr works much better (at a modest loss in speed).
I haven't used D, so I can't say how well it's auto really works. It seems awkward to use across function calls while C++'s RAII is no more awkward across calls as all inside one function.
If you havn't looked at the boost libs, you owe it to yourself to take a peek. It might cross "More memory management facilities in the STL" off your list.
But garbage collection likewise only occurs when memory is allocated*!
I know you have a footnote saying "I know this isn't exactly true"... but... it is very not true in Java and may be in D. In Java for some implementations at least there is a low priority thread that does GC. So any I/O can easily turn into I/O plus a GC. Or on a multi-processor it might "just happen" almost any time.
Yes, if you were designing D you could have some way to disable GC when you want it off, but blanket assertion that "GC isn't a problem here" is almost as bad as proponents of malloc/free saying "hey, any good programer never forgets a free...or does it twice".
Nevermind the fact that garbage collection schemes tough every page in memory while they mark and sweep and defeat the CPU's high speed caches.
Mark/sweep is older then I am (and I'll hazard a bet I'm older then you), and wasn't state of the art by the end of the 1970s!
Generational garbage collectors (at least some of them) are normally tuned to do a primary pass inside of the L2 footprint, and for some workloads do a good job of making the L1/L2/L3 cache more effective.
Some hardware garbage collectors are pretty amazing.
And those are just things I happened to read papers on in the late 80s to mid 90s! A decade behind state of the art! (the hardware GC was actually just barely into the 80s, and was suitable for hard real time use).
Are they more effective then well written malloc/free? If you look only at the cost of the alloc and free and the in use check it is hard to see how GC could really be cheaper then perfect use of malloc/free. If you look at cache effects one would assume GC comes off worse, but that can actually make things better. If you allow hardware assisted GC things can get even better for GC, but it is hard to imagine how that would happen on a modern CPU (it could be done, but...unless it were on the CPU I'm not sure all the cache coherence traffic would make it as big a win as it once was).
I'm not convinced that GC belongs in a bare metal all out speed language, but I'm not entirely convinced it doesn't. I am seriously convinced that there is room for a "very very fast, but maybe not as fast as C" language that has GC. After all GC eliminates a whole class of bugs, and that leaves more time to either optimize the algorithms or to add important functionality, or to get on with things and write another program. Any of those things might well justify a small speed loss. If they didn't, why is Perl (normally much slower then C) so popular?
The moment you extend the coverage area to include leesburg VA (or really the little bit I live in, north of the city, and 6 miles south of point of rocks in MD). Honest.
Well, duh! The consensus on the original iPod was "5G for $300! It'll never sell!". I bought one anyway, and it's been great. If I were to get another iPod I would give the mini a hard look, but I probably wouldn't pick it up because while I walk and hike a lot I don't do much running.
So I'm unsurprised that after predicting that the original iPod would fail (and having it turn out to be a run away success) that the iPod mini's prediction of "suck" would also be off the mark.
But given the resources still available on Earth, someone will eventually tender an offer for a fully-completed cable that the first entity can't refuse; no matter how valuable the cable, it is possible to pay the owner off today with $X dollars, which the first entity will (correctly) perceive is more valuable to have it in liquid form, available to then invest back into other things.
Sure, except the first entity may well have six cables before selling one of them off, then entity two can put stuff in orbit for very cheap, but entity one can still put five times as much stuff in orbit for cheep. When entities 3 through 96 want to put stuff in orbit who do you think can offer the better deal entity one with five cables, or entity two with only one cable (and maybe a non-compete clause)? Sure entity two might be able to put as much of it's own stuff in orbit as it wants (maybe!), but entity one will not only be able to put as much crap in orbit as it wants, it will be raking in money from other entities that want stuff in orbit.
That leaves entity one sitting on mounts of entity two's cash, and entity one has cash pouring in from all other entities at a rate far higher then entity two. It looks like all entity two has managed to do is establish itself as the "least fucked" entity. (and hey, that isn't bad, it is still in better shape then any currently existing entity!)
The darker picture would be if entity one wanted to use space to turn itself into a super power, and crush all other nations (or turn itself into a bigger super power and decide to crush far more then two nations at once!)
Aren't there some folks starting a new WIFI service near you?
Megapipe and SkyNet are both in downtown leesburg and said "sure no problem" before I bought the house, but there is like a 300 foot hill in the way, so no joy there. I can't find a WISP to my north or east (despite there being a great looking set of cooling stacks for a powerplant in MD, if I ran a WISP I would stick a transmitter on them bad boys, there have to be a lot of people in that footprint I could hit!). Of corse anyone running a WISP should feel free to drop me a line if they think they can hit me:-)
Verizon won't even call me back about T1 prices.
Have you tried going to broadband reports and calling everyone there who claims to do T1s? Failing that a friend has had luck with Limelight Networks, he is in Warrenton 'tho, so I donno if they do service up here.
Maybe VZ doesn't care to do T1's to homes, but lots of smaller ISPs do. Unfortunitly the price is way over what I can afford (I'm looking at "under $100", with a "it'll be painful at maybe $100 to $200, but I might be able to do it", and "$300 to $500, man I want broadband, but maybe I'll just have to drive to starbucks to download crap").
since we are looking into every single line that runs into houses to bring internet to homes, are water lines going to be next?
The FCC is looking to extend broadband into rural america, and at least the semi-rural bit of america I'm in there is no water service. I get mine from a 300 or so foot well. Since I'm not excited about cranking 300 foot of rope up and down to get buckets of water I have an electronic well pump. When I lose power I lose water (well, except for the 5 gal reserve). Fortunately I have a gas powered generator... (unfortunately it won't run the HVAC, in the winter I have a wood stove that can keep most of the house well above 70, in the summer I'm fucked)
It seems to me that the use of power lines for communications would decrease during a emergencies which might require HAM.
Yes. Sure with lack of power the HAMs face no BPL interference. I thought of that. Honest, I mean I want BPL.
The problem is if BPL interferes with HAMs, why the hell would they spend thousands and thousands of their own hard earned dollars on a hobby that they can only practice during a power outage? And even if they did, how would they get any good at it?
We get to rely on HAMs during emergencies because we make a deal with them: we let you mess around on some airwaves the public reserves for you, and in return during emergencies you drive around with your mobile rigs and call in fire emergencies, you stay at home and relay messages between mobile units and fire fighters (or other relays).
That's a pretty decent deal for HAMs so they take it.
You have a new deal in mind: we use all the airwaves almost all the time, and when we aren't on them you go out and save our bacon.
I don't think you will find many takers. Maybe a few of the people that have already paid for the equipment maybe.
Forgive my ignorance and lack of interest in actually reading any of the articles on the subject...but exactly what emergency services might get interefered with? And don't say HAM radio operators.
Hmmm, Ok, I won't say it is them, but it is. Ooops, I said it. HAMs do provide emergency communications when normal telephones (including mobile phones) fail. For example during prolonged power outages (like after a hurricane, the local cell tower died after 12 hours, and I doubt the landlines would have lasted if the power had been out for 3 or 4 days).
Don't get me wrong, I live out in the boonies, and I can't get DSL or cable, I want BPL, but I wouldn't think losing the emergency communications services HAMs provide is worth it. I would rather lump it and wait for some sort of wireless that doesn't radiate all over the place (WiMax, or NetTel's thing, or...)
911 isn't very useful in true emergency situations if your location can't even be traced. If you're being burglared (sp?), you don't have time to tell them your address. You call 911, say, "There's a burglar in my home, HELP!", and run and hide. You don't wanna be caught by the burglar on the phone trying to give them directions to your house.
I had Vonage last year (and still would if I hadn't moved to a place that doesn't have broadband). They had a 911 service that calls the non-emergency line (because it has a real phone number, and 911 isn't really a phone number). It gives the address you placed on file to the 911 operator. I'm pretty sure it could (and maybe even has been) improved to go through the normal 911 routing. I'm not sure there is a lot they can do about using a supplied address rather then the real address.
In some cases there is no useful "real" address anyway. I spent two weeks in the UK and I took my Vonage phone set up with me. It was great, people could call me one a normal 301 area code number, and I could make calls inside the USA at no toll.
How would a E911 requirement effect that? Would it deny me a valuable tool just because there is no US address? Or would it let me enter my billing address and just hope I don't need 911 in the UK? (and shouldn't it magically change to 999 while I'm in the UK, I mean that is the right number there...)
In a less extreme case people do use Vonage from hotels that offer high speed net access. How can a VOIP provider keep up with the address changes?
Back to extreme examples, what if I buy VZ's "broadband anywhere", or Nextel's service (when it is available) and plug the Vonage gear into the back of my laptop while riding down the highway. What address should be reported? Should it change as I keep moving?
Regulation is a big stick, it says "solve these problems to the governments satisfaction or stop selling the service". I like the big stick of the free market better "give people what they want or go bankrupt and stop selling the service". With that stick Vonage is free to solve the problem to it's customers satisfaction, and if Voice Pulse does a better job and all of Vonag'es customers switch, well good for Voice Pulse (and good for the customers!). In fact if no VOIP provider can get E911 working then a whole lot of customers will stay with normal wireline (or with wireline plus VOIP as a "outgoing long distance" line).
If E911 is technically possible VOIP providers will get to it in order to tap the larger market. If "almost E911" is as close as they can get, well they will get close, and I think it would be better if the people who want the service were allowed to decide if it is "good enough" rather then a bunch of windbags in congress (er, or unelected FCC bureaucrats)
Re:completely underwhelmed by Subversion...
on
Subversion 1.0 Released
·
· Score: 2, Informative
Arch is probably more protected from corruption than SVN in the sense that you never modify any file when committing to an archive. Stuff is always added, not modified. Committing is just generating a patch-log and adding that to the archive. The window of corruption is much smaller than generating a BDB transaction.
BDB doesn't have a "windows of corruption", it is a log baised relational datastore (some would say database, but I like to use a diffrent term to remind myself that BDB doesn't internally deal with any relations). Before the on-disk tables are written whatever is about to be overwritten is appended to the log file and sync'ed. Then the changes are made. If power is lost or the BDB process is killed the log files can be used to undo the half-completed changes. (this all assumes you dont ask BDB to not do it - which you can if you value speed over durability)
A BDB "database" can be corrupted, but it has to be done by hardware failure, or writing directly to the DB files, not merely by losing power at the wrong time.
I have used BDB in a number of projects (none of them storing source code), and not had a problem with corruption (except for the "throwaway" "tables" which I specifically chose to not have full durability protections on as I could recreate them from other "tables").
I don't have anything against WebDAV, but I can't at the moment think of a single practical advantage of Subversion over WebDAV vs. Subversion using svnserve.
For read-only views of a repository there are way more deployed WebDAV clients then subversion clients, like all modern Windows and Mac OSX boxes. In fact for trivial version control as well (like no comment, and each file change is a commit), not just read-only.
So you could install subversion on all the office boxes, and try to teach everyone how to use it, or you could use WebDAV and then next time someone "destroys the spreadsheet with all the client contact information" you can just get it back. Or all the other joys of trivial version control.
That doesn't mean WebDAV is "definitely the way to go" when replacing an existing version control system use by folks that actually place some value on using some sort of version control system.
The guy's probably thinking of storing the same sources in multiple repositories, doing independent changes, and then synching up. Think something like coding on a laptop on a flight: some version control systems allow you to take a copy of the repository with you, make multiple new revisions, and then merge the updates with the main development repository later on. I don't know about subversion, but CVS supports nothing quite like this.
Subversion doesn't (at least not directly). There is something called svk that is built (more or less) on top of subversion that does do that.
On the other hand the thing I most frequently want to do with CVS that I can't when I am disconnected (well, ok, other then "cvs commit") is "cvs diff", and subversion does support that while disconnected.
Is it really common practice to develop in something other than the current tree?
Yes. There are a few reasons I can think of to do it:
Putting important bugfixes in older versions of code. This use to be common in commercial software, but is less common now. As an example if you are working on an OS and a buffer overrun is found in some of the code you of corse want to fix that in the head of the tree, but you also want to make a bugfix release which will be off of whatever your customers are running typically the last two major releases or so. Looking at the open source world FreeBSD is working on 5.x and has some people running it in "the real world", but an important bug fix will go into the head of the tree, the last 4.x release, and I think the last 3.x release as well (in some cases).
Very large changes that can make the code unstable for a while. Maybe one guy is making the code run on a new database backend while other people are working on the GUI. For the most part they work on diffrent parts of the code, but bugs in one can stop the other group dead in it's tracks. It may be a good idea to branch the code and when both branches are stable merge them in.
People with crappy connectivity may want their own repository that they can later sync with the master.
In an open source project you may not have the authority to make a new release, or even alter the code that goes into releases (for example, nobody in the Linux community knows me, why would they let me alter their source tree!). You make your own repository and make whatever changes you think it needs and then send a single tested working patchset on to someone who can evaluate it.
You can also mix n' match those reasons. Or even extend them (esp the last one, think very very large open source projects with thousands of authors).
Once the kernel image is loaded into memory the BIOS is sumarily ignored.
Except for power control functions (suspend a laptop, power down...)
Also, the BIOS's API has been totally open (and basically unchanged) ever since the original IBM PC
Ignoring the IBM v. Compaq suit, or in fact the whole open issue....
There have been several big BIOS changes to do power management (at least two significant revisions of the current method, and a completely abandoned method before that). Changes in reporting of hard drive size. Changes in reporting of memory size. Changes for PCI. Changes for Plug n' Play (were there two or three sets of this?). Changes for reporting multiple processors (maybe multiple versions of this), including a new interrupt scheme which can be used independently of multiple CPUs on some (but not all) systems.
No, the BIOS has seen a ton of changes. Real ones that if you want to use modern hardware you need to track.
Google gets the majority of my searches, just because it's built into Safari
Google gets the majority of my searches because it seems to do a good job for me. However if it doesn't do it for you, think about downloading OmniWeb 5. It does most things at least as well as safari, and some better. It's search widget will search google by default, but it has other searches (and you can add more). You can also have location bar short cuts (you can tell it that g and a space is google, t and a space is tanoma and w and a zip code is whatever you like for weather forcasts). Plus the mini-page view "tab" stuff is much nicer then I thought it would be.
Yes, it remembers the last search engine you picked across browser restarts. In face if you want it to it remembers window layouts and what URLs you were on. Even if a "restart" was really a crash.
Compare this to other important commercial "stewardships", such as Postscript and PDF as managed by Adobe.[...]But I think the Free Software community should hold higher standards of Freedom to language technologies like Java, whereas we may be willing to give a little more slack to data formats like PDF.
FYI PostScript is a turing complete programing language, and not just "in theory, but who would want to use it?" either. It's a pretty good language, at least if you like FORTH like languages. So if you go holding higher standards for programming languages, don't give PostScript short shrift!
Personally I think "open" languages will tend to do better, C may have been owned by AT&T at one point, but they never pressed the point. C++ also gets developed "in the open" (despite coming from AT&T also). Perl and most other popular languages I can think of are "open". Even SQL has a openly devloped ANSI core, of corse almost every DB vender pisses on it to make it "smell proprietary" (or was that to "add value"?). I think that is why it tends to be less popular then a language of it's power ought to be.
That pretty much just leaves Visual Basic and Java as definitely not-open languages that are popular (and Java tries to be open-ish, I think technically the language is, but the libraries are not).
What you mean is software developed for Linux can run on both Windows and MacOS X without too much difficulty, because they are typically based purely on free software. I'd note that while some Windows apps can be run on Linux, no MacOS X apps can be run on Linux, nor on Windows.
Well at least some OSX programs ought to run under Linux with AfterStep, or OpenStep, or is it GNUStep? Whatever the GPLed NeXTStep implementation is. Assuming you get the source for them, or you run Linux on a PPC and make a syscall compatibility shim.
So it's better to say that Linux software is more compatible, than to bring MacOS into the picture (it doesn't even have dlopen as part of the core, just like Windows doesn't).
Um, OSX does have dlopen. Or at least a man page for it, I can't say I've used it on OSX. While I wouldn't say I have used anything I think of as "linux software" on OSX I have used a whole lot of things I would think of as "Unix software" on it. Including X based stuff. Things that I haven't been able to do when I had to use Windows. I've also been able to do a lot of work on OSX as if it was "just another Unix box" which I definitely couldn't do on Windows.
Just to play devil's advocate, let's admit that are many more potential users of Broadband over Powerline than there are HAMs
Yes and no, but I'll start by explaining my prejudices.
I'm in an area with no DSL, no cable modems, no EV-DO, no OFDM, and no ISDN, and no 802.11 provider can hit my house. In other words I'm screwed for broadband, but broadband over powerlines would probably work for me. I'm not a HAM. A few of my friends are HAMs, but not many. From a hobby point of view my use of broadband is more important to me then their use of radio equipment. That's enough about me.
HAM is more then just a hobby people enjoy. We had a hurricane last year that knocked out power and phones for a lot of people for a fair bit of time (I only lost power for a day, cell for half a day, and didn't lose my landline at all). For a lot of people HAMs were their only way to let the fire stations know they needed help. HAMs provide a valuable communication backstop in emergency situations.
Internet surfers (i.e. me!) provide squat in emergency situations.
So most of the time HAMs are a few people that play with radios, and are outnumbered by people that want to load MP3s and porn faster (and people that want to make money off of them). Part of the time HAMs save lives and valuable property.
So as much as I want a faster internet connection, I think HAMs are more important. Broadband over powerlines should only be allowed if HAMs still have some frequencies to play with, and if they are different from the existing ones the FCC should have to buy the HAMs new equipment. Even if that means I'm stuck with dialup for years longer.
Nextel could use some work in there coverage areas, I agree. But, for the price I can't find another provider who even comes close. I use my phone an outrageous ammount, $199 is still better then $560 (with t-mobile)
AT&T has a $99 all you can eat on their GSM network, but coverage isn't good.
Something I didn't find on digitalmars is a discussion of what you do if you want RAII on objects you return from a function (auto can't be returned, or be an out parm, right?). What is the D equivalent to a shared_ptr of iostream (or a auto_ptr of the same)?
What would a library use to hold objects that might be heavy weight objects (network sockets maybe, or 3D textures stored on a graphics card)?
Is there some idiom for it?
Oh, and is there a weak reference for use in caches or the like? (yeah, ok, so it always looks so good in manuals, and I've never gotten around to using them for caches, but I have used it in a few places for things like "call the timeout function in 20 seconds if this request is still alive")
D has a stack-based allocation scheme, declare your variable auto and you get something that will be destructed when it goes out of scope. According to D's manual:
Unfortunitly it also says:
So while it can be used for simple things, it looks painful to use for stuff that shared_ptr or even the reviled (by me!) auto_ptr can do so well.
Indirect jumps can be 20 times as costly as a direct jump, at least on a modern CPU. On a 68020 it isn't quite twice as slow. On some CPUs they almost assure a full pipeline stall. So it ain't all that tiny, unless the virtual functions are quite large.
Ok, so I can normally afford the vtable jumps :-) Depending on how good the GC is, I might be able to afford it too. Some day I'll get a chance to give D a shot and find out. After all sometimes I get to use perl...
D's manual claims it supports RAII through auto variables. D's auto variables look like C++'s auto_ptr, except you can't use them as return values (I think you can use them as out arguments though). In C++ I really despise auto_ptr, the boost shared_ptr works much better (at a modest loss in speed).
I haven't used D, so I can't say how well it's auto really works. It seems awkward to use across function calls while C++'s RAII is no more awkward across calls as all inside one function.
If you havn't looked at the boost libs, you owe it to yourself to take a peek. It might cross "More memory management facilities in the STL" off your list.
I know you have a footnote saying "I know this isn't exactly true"... but... it is very not true in Java and may be in D. In Java for some implementations at least there is a low priority thread that does GC. So any I/O can easily turn into I/O plus a GC. Or on a multi-processor it might "just happen" almost any time.
Yes, if you were designing D you could have some way to disable GC when you want it off, but blanket assertion that "GC isn't a problem here" is almost as bad as proponents of malloc/free saying "hey, any good programer never forgets a free...or does it twice".
Mark/sweep is older then I am (and I'll hazard a bet I'm older then you), and wasn't state of the art by the end of the 1970s!
Generational garbage collectors (at least some of them) are normally tuned to do a primary pass inside of the L2 footprint, and for some workloads do a good job of making the L1/L2/L3 cache more effective.
Some hardware garbage collectors are pretty amazing.
And those are just things I happened to read papers on in the late 80s to mid 90s! A decade behind state of the art! (the hardware GC was actually just barely into the 80s, and was suitable for hard real time use).
Are they more effective then well written malloc/free? If you look only at the cost of the alloc and free and the in use check it is hard to see how GC could really be cheaper then perfect use of malloc/free. If you look at cache effects one would assume GC comes off worse, but that can actually make things better. If you allow hardware assisted GC things can get even better for GC, but it is hard to imagine how that would happen on a modern CPU (it could be done, but...unless it were on the CPU I'm not sure all the cache coherence traffic would make it as big a win as it once was).
I'm not convinced that GC belongs in a bare metal all out speed language, but I'm not entirely convinced it doesn't. I am seriously convinced that there is room for a "very very fast, but maybe not as fast as C" language that has GC. After all GC eliminates a whole class of bugs, and that leaves more time to either optimize the algorithms or to add important functionality, or to get on with things and write another program. Any of those things might well justify a small speed loss. If they didn't, why is Perl (normally much slower then C) so popular?
The moment you extend the coverage area to include leesburg VA (or really the little bit I live in, north of the city, and 6 miles south of point of rocks in MD). Honest.
Well, duh! The consensus on the original iPod was "5G for $300! It'll never sell!". I bought one anyway, and it's been great. If I were to get another iPod I would give the mini a hard look, but I probably wouldn't pick it up because while I walk and hike a lot I don't do much running.
So I'm unsurprised that after predicting that the original iPod would fail (and having it turn out to be a run away success) that the iPod mini's prediction of "suck" would also be off the mark.
Sure, except the first entity may well have six cables before selling one of them off, then entity two can put stuff in orbit for very cheap, but entity one can still put five times as much stuff in orbit for cheep. When entities 3 through 96 want to put stuff in orbit who do you think can offer the better deal entity one with five cables, or entity two with only one cable (and maybe a non-compete clause)? Sure entity two might be able to put as much of it's own stuff in orbit as it wants (maybe!), but entity one will not only be able to put as much crap in orbit as it wants, it will be raking in money from other entities that want stuff in orbit.
That leaves entity one sitting on mounts of entity two's cash, and entity one has cash pouring in from all other entities at a rate far higher then entity two. It looks like all entity two has managed to do is establish itself as the "least fucked" entity. (and hey, that isn't bad, it is still in better shape then any currently existing entity!)
The darker picture would be if entity one wanted to use space to turn itself into a super power, and crush all other nations (or turn itself into a bigger super power and decide to crush far more then two nations at once!)
Megapipe and SkyNet are both in downtown leesburg and said "sure no problem" before I bought the house, but there is like a 300 foot hill in the way, so no joy there. I can't find a WISP to my north or east (despite there being a great looking set of cooling stacks for a powerplant in MD, if I ran a WISP I would stick a transmitter on them bad boys, there have to be a lot of people in that footprint I could hit!). Of corse anyone running a WISP should feel free to drop me a line if they think they can hit me :-)
Have you tried going to broadband reports and calling everyone there who claims to do T1s? Failing that a friend has had luck with Limelight Networks, he is in Warrenton 'tho, so I donno if they do service up here.
Maybe VZ doesn't care to do T1's to homes, but lots of smaller ISPs do. Unfortunitly the price is way over what I can afford (I'm looking at "under $100", with a "it'll be painful at maybe $100 to $200, but I might be able to do it", and "$300 to $500, man I want broadband, but maybe I'll just have to drive to starbucks to download crap").
Good luck.
The FCC is looking to extend broadband into rural america, and at least the semi-rural bit of america I'm in there is no water service. I get mine from a 300 or so foot well. Since I'm not excited about cranking 300 foot of rope up and down to get buckets of water I have an electronic well pump. When I lose power I lose water (well, except for the 5 gal reserve). Fortunately I have a gas powered generator... (unfortunately it won't run the HVAC, in the winter I have a wood stove that can keep most of the house well above 70, in the summer I'm fucked)
Hmmm...Adelphia...Verizon...miles of copper....do you live next door to me? Seriously? Are you in Leesburg? Wanna split the cost of a T1? :-)
Yes. Sure with lack of power the HAMs face no BPL interference. I thought of that. Honest, I mean I want BPL.
The problem is if BPL interferes with HAMs, why the hell would they spend thousands and thousands of their own hard earned dollars on a hobby that they can only practice during a power outage? And even if they did, how would they get any good at it?
We get to rely on HAMs during emergencies because we make a deal with them: we let you mess around on some airwaves the public reserves for you, and in return during emergencies you drive around with your mobile rigs and call in fire emergencies, you stay at home and relay messages between mobile units and fire fighters (or other relays).
That's a pretty decent deal for HAMs so they take it.
You have a new deal in mind: we use all the airwaves almost all the time, and when we aren't on them you go out and save our bacon.
I don't think you will find many takers. Maybe a few of the people that have already paid for the equipment maybe.
Hmmm, Ok, I won't say it is them, but it is. Ooops, I said it. HAMs do provide emergency communications when normal telephones (including mobile phones) fail. For example during prolonged power outages (like after a hurricane, the local cell tower died after 12 hours, and I doubt the landlines would have lasted if the power had been out for 3 or 4 days).
Don't get me wrong, I live out in the boonies, and I can't get DSL or cable, I want BPL, but I wouldn't think losing the emergency communications services HAMs provide is worth it. I would rather lump it and wait for some sort of wireless that doesn't radiate all over the place (WiMax, or NetTel's thing, or...)
I had Vonage last year (and still would if I hadn't moved to a place that doesn't have broadband). They had a 911 service that calls the non-emergency line (because it has a real phone number, and 911 isn't really a phone number). It gives the address you placed on file to the 911 operator. I'm pretty sure it could (and maybe even has been) improved to go through the normal 911 routing. I'm not sure there is a lot they can do about using a supplied address rather then the real address.
In some cases there is no useful "real" address anyway. I spent two weeks in the UK and I took my Vonage phone set up with me. It was great, people could call me one a normal 301 area code number, and I could make calls inside the USA at no toll.
How would a E911 requirement effect that? Would it deny me a valuable tool just because there is no US address? Or would it let me enter my billing address and just hope I don't need 911 in the UK? (and shouldn't it magically change to 999 while I'm in the UK, I mean that is the right number there...)
In a less extreme case people do use Vonage from hotels that offer high speed net access. How can a VOIP provider keep up with the address changes?
Back to extreme examples, what if I buy VZ's "broadband anywhere", or Nextel's service (when it is available) and plug the Vonage gear into the back of my laptop while riding down the highway. What address should be reported? Should it change as I keep moving?
Regulation is a big stick, it says "solve these problems to the governments satisfaction or stop selling the service". I like the big stick of the free market better "give people what they want or go bankrupt and stop selling the service". With that stick Vonage is free to solve the problem to it's customers satisfaction, and if Voice Pulse does a better job and all of Vonag'es customers switch, well good for Voice Pulse (and good for the customers!). In fact if no VOIP provider can get E911 working then a whole lot of customers will stay with normal wireline (or with wireline plus VOIP as a "outgoing long distance" line).
If E911 is technically possible VOIP providers will get to it in order to tap the larger market. If "almost E911" is as close as they can get, well they will get close, and I think it would be better if the people who want the service were allowed to decide if it is "good enough" rather then a bunch of windbags in congress (er, or unelected FCC bureaucrats)
BDB doesn't have a "windows of corruption", it is a log baised relational datastore (some would say database, but I like to use a diffrent term to remind myself that BDB doesn't internally deal with any relations). Before the on-disk tables are written whatever is about to be overwritten is appended to the log file and sync'ed. Then the changes are made. If power is lost or the BDB process is killed the log files can be used to undo the half-completed changes. (this all assumes you dont ask BDB to not do it - which you can if you value speed over durability)
A BDB "database" can be corrupted, but it has to be done by hardware failure, or writing directly to the DB files, not merely by losing power at the wrong time.
I have used BDB in a number of projects (none of them storing source code), and not had a problem with corruption (except for the "throwaway" "tables" which I specifically chose to not have full durability protections on as I could recreate them from other "tables").
For read-only views of a repository there are way more deployed WebDAV clients then subversion clients, like all modern Windows and Mac OSX boxes. In fact for trivial version control as well (like no comment, and each file change is a commit), not just read-only.
So you could install subversion on all the office boxes, and try to teach everyone how to use it, or you could use WebDAV and then next time someone "destroys the spreadsheet with all the client contact information" you can just get it back. Or all the other joys of trivial version control.
That doesn't mean WebDAV is "definitely the way to go" when replacing an existing version control system use by folks that actually place some value on using some sort of version control system.
Subversion doesn't (at least not directly). There is something called svk that is built (more or less) on top of subversion that does do that.
On the other hand the thing I most frequently want to do with CVS that I can't when I am disconnected (well, ok, other then "cvs commit") is "cvs diff", and subversion does support that while disconnected.
Yes. There are a few reasons I can think of to do it:
You can also mix n' match those reasons. Or even extend them (esp the last one, think very very large open source projects with thousands of authors).
Except for power control functions (suspend a laptop, power down...)
Ignoring the IBM v. Compaq suit, or in fact the whole open issue....
There have been several big BIOS changes to do power management (at least two significant revisions of the current method, and a completely abandoned method before that). Changes in reporting of hard drive size. Changes in reporting of memory size. Changes for PCI. Changes for Plug n' Play (were there two or three sets of this?). Changes for reporting multiple processors (maybe multiple versions of this), including a new interrupt scheme which can be used independently of multiple CPUs on some (but not all) systems.
No, the BIOS has seen a ton of changes. Real ones that if you want to use modern hardware you need to track.
Google gets the majority of my searches because it seems to do a good job for me. However if it doesn't do it for you, think about downloading OmniWeb 5. It does most things at least as well as safari, and some better. It's search widget will search google by default, but it has other searches (and you can add more). You can also have location bar short cuts (you can tell it that g and a space is google, t and a space is tanoma and w and a zip code is whatever you like for weather forcasts). Plus the mini-page view "tab" stuff is much nicer then I thought it would be.
Yes, it remembers the last search engine you picked across browser restarts. In face if you want it to it remembers window layouts and what URLs you were on. Even if a "restart" was really a crash.
FYI PostScript is a turing complete programing language, and not just "in theory, but who would want to use it?" either. It's a pretty good language, at least if you like FORTH like languages. So if you go holding higher standards for programming languages, don't give PostScript short shrift!
Personally I think "open" languages will tend to do better, C may have been owned by AT&T at one point, but they never pressed the point. C++ also gets developed "in the open" (despite coming from AT&T also). Perl and most other popular languages I can think of are "open". Even SQL has a openly devloped ANSI core, of corse almost every DB vender pisses on it to make it "smell proprietary" (or was that to "add value"?). I think that is why it tends to be less popular then a language of it's power ought to be.
That pretty much just leaves Visual Basic and Java as definitely not-open languages that are popular (and Java tries to be open-ish, I think technically the language is, but the libraries are not).
Well at least some OSX programs ought to run under Linux with AfterStep, or OpenStep, or is it GNUStep? Whatever the GPLed NeXTStep implementation is. Assuming you get the source for them, or you run Linux on a PPC and make a syscall compatibility shim.
Um, OSX does have dlopen. Or at least a man page for it, I can't say I've used it on OSX. While I wouldn't say I have used anything I think of as "linux software" on OSX I have used a whole lot of things I would think of as "Unix software" on it. Including X based stuff. Things that I haven't been able to do when I had to use Windows. I've also been able to do a lot of work on OSX as if it was "just another Unix box" which I definitely couldn't do on Windows.
Yes and no, but I'll start by explaining my prejudices.
I'm in an area with no DSL, no cable modems, no EV-DO, no OFDM, and no ISDN, and no 802.11 provider can hit my house. In other words I'm screwed for broadband, but broadband over powerlines would probably work for me. I'm not a HAM. A few of my friends are HAMs, but not many. From a hobby point of view my use of broadband is more important to me then their use of radio equipment. That's enough about me.
HAM is more then just a hobby people enjoy. We had a hurricane last year that knocked out power and phones for a lot of people for a fair bit of time (I only lost power for a day, cell for half a day, and didn't lose my landline at all). For a lot of people HAMs were their only way to let the fire stations know they needed help. HAMs provide a valuable communication backstop in emergency situations.
Internet surfers (i.e. me!) provide squat in emergency situations.
So most of the time HAMs are a few people that play with radios, and are outnumbered by people that want to load MP3s and porn faster (and people that want to make money off of them). Part of the time HAMs save lives and valuable property.
So as much as I want a faster internet connection, I think HAMs are more important. Broadband over powerlines should only be allowed if HAMs still have some frequencies to play with, and if they are different from the existing ones the FCC should have to buy the HAMs new equipment. Even if that means I'm stuck with dialup for years longer.
AT&T has a $99 all you can eat on their GSM network, but coverage isn't good.