The biggest is coordination across multiple files. Suppose I want to update both foo.txt and bar.txt simultaneously. How can I jigger around temporary files in such a way that both files are guaranteed to remain consistent? I don't think you can.
For a single file, you could do something like this (gross pseudocode):
./solve -o foo.txt.tmp link foo.txt foo.txt.old rm foo.txt link foo.txt.tmp foo.txt #... repeat as necessary rm foo.txt.old
That final rm is the step that destroys the old data, so all you need to do is loop through all "uncommitted moves" for foo.txt and bar.txt, then once everything else works you remove foo.txt.old and bar.txt.old. If anything fails, you just relink the old names on the way out.
A smaller benefit is that you don't need temporary files.
This is true. The approach I'm describing doubles disk usage. Support from the storage (filesystem/database) layer should be more efficient. Another benefit for high-volume systems is that the storage layer may put its logs on a different disk that is tuned for frequent small writes, as opposed to sharing the same disk as the original data.
For instance, transactions can span both file system accesses and registry accesses and have ACID semantics in total.
Yeah, I prefer the "everything is a file (descriptor)" approach. This is more of a "misfeature" in the Windows approach to configuration, IMHO.
It's like the Unix people implemented relative paths and rpath's $ORIGIN and such and then forgot that they did that.
I love $ORIGIN and use it myself, but I've found that it's incredibly cryptic to most people. Even the googles, they don't seem to provide much information aside from mailing lists where people bicker over the feature.
I'm talking about data on a server. And no, access speed isn't such an issue because the files aren't accessed that often. And compressing back and forth with external program all the time is just stupid.
I'm not sure about your use case, but the first that comes to my mind is compressed log files. "Compressing back and forth with external program[s]" seems to be just fine for me: zcat, zgrep, zless et. al. seem to do the job just fine. Heck, even with a program that wants a filename on the command line, you can use bash to do things like./mycrap -i <(zcat input.txt.gz) -o >(gzip -c -9 output.txt.gz). It takes a few extra pipes and processes to do this, but the program simply sees./mycrap -i/dev/fd/63 -o/dev/fd/62 and chugs along oblivious of the compression.
[transactional NTFS] is the sort of thing I'd actually love to see more of in the Linux world, but the Linux folks are too busy spouting off about how MS never innovates.
Looking at the wikipedia page for this, it sounds like something that can be done without too much difficulty by writing to temp files (in the same filesystem) and then "committing" the transaction by jiggling hard links (off the top of my head, I'm thinking fsync, fdatasync, link, and unlink). Granted, it would probably be nice to wrap this type of logic into a portable library, it doesn't seem like the Linux "ecosystem" is really lacking for this sort of functionality. Is there some additional functionality that I've overlooked that Transactional NTFS provides?
For our kids that works about as well as caging any animal. They scream and cry and carry on.
The biggest problem I see here is that you should approach this as crating your child, not caging him (or her). A proper crate should be more or less covered to act as a sort of "den" or "cave" in which your child may seek refuge. You should feed your child in his (or her) crate to train him (or her) to develop positive associations. Please note that because it is a refuge, your child must be allowed and encouraged to urinate outside of the crate rather than soil his (or her) own den. Over time, you'll find that the screaming subsides and your child will be able to spend more time in the crate—up to 8 hours, if you must work away from home—without issues.
You don't need to add the union of options. You need to design the basic options such that their combinations cover as much ground as possible.
Well, if you cover "as much ground as possible" you're still going to deny the whims of some users. Which is what Google is (quite reasonably) doing in this case. Rearranging a core component of the UI itself is not a "basic option" for a web browser the way (for example) cookie management is. The users who are asking for customization in this aspect because "it's just one checkbox" are asking for the Thundercougarfalconbird.
Unfortunately, I can't help but think that one day, the option that I want to
Is this what happens when you shutdown -p now when posting on/.? Oh dear!
These days I find that DuckDuckGo often gives better results - it's a toss-up.
I recently switched to DDG both at home and at work. The "red box answer" tends to be very good, but IME the overall quality of the first two pages is worse than google's. However, when I want the google results I can just enter !g search terms and BAM I get the google results. It's similar to how Opera has done search engines for a long time, but it's nice to have everything pre-programmed. Because of this, making duckduckgo the default search engine is strictly an increase in functionality.
It's a sad day when basic UI customizability is referred to as "bloatware"
One man's "basic customizability" is another man's "pointless option". The problem is, add the union of every man's "basic customizability" options to the list of supported features, and you have a Thundercougarfalconbird. They made a judgement call on the importance of this particular option, and all you have to do is use someone else's free-as-in-beer browser to show them that they made the wrong call.
MS Windows refers to the timezone as GMT - which it is not. GMT is always GMT...
You, like MS, don't seem able to make the distinction.
No, I am making the distinction perfectly well, but perhaps I was not clear. A logical timezone from the database in question is identified as something like "Europe/London" or "GB" (this happens to be a filename, wheee). When you convert an epoch to a local time, you end up with a "named" GMT offset for that local time, and the timezone database has picked "GMT" as the name for half of the year, and "BST" as the name for the other half of the year.
That is, from the timezone database's perspective, GMT is always GMT, and Europe/London is sometimes GMT. And BST is always one hour offset from GMT, but for half of the year BST simply doesn't exist.
My Windows systems already half do this. They get the time correct on Daylight Savings time, but insist on calling it GMT, which it isn't.
If you're referring to British time, you should note that the timezone database in question also does this. You can check in Linux (bash) with the command TZ=Europe/London date -d 2011-01-01 and likewise 2011-07-01. Seems to switch between GMT and BST. Sucks to your assmar, I guess.
However, when I am at the airport with a boarding pass that says my flight departs at 11:30, and my watch says 10:15, do I have fifteen minutes or an hour and fifteen minutes to get to the gate (or more, depending upon how many time zones I've crossed)?
Ignore your watch. Use the force... or look at the clocks in the airport. I've never seen a boarding pass that didn't use local time, and I've never seen an airport that didn't have a gratuitous amount of clocks.
I had unknowingly traveled from Central daylight savings time to Mountain standard time, making me two hours early for an 8:00 am prospective student orientation.
I bet you'll never forget that little quirk about Arizona! If you travel to the Midwest, be aware that Indiana is all sorts of messed up relative to the surrounding states. But still, it's not anywhere close to being a sufficient reason to effect the sweeping change that the local fauna is advocating in this thread.
Those aren't really requirements, they are just something that we have been conditioned to accept.
They are requirements precisely because everyone has been "conditioned" to understand local time. I am a huge proponent of GMT or (localtime,timezone) tuples where appropriate, but this all boils down to compression of information. The vast majority of time references in communication are local (either same timezone or fixed offset, e.g. US Central vs. Eastern for TV programming). Switching everything to GMT optimizes global communication at the expensive of local communication. Ultimately, the reason for this cost is because it is different, but that reason cannot be hand-waved away.
So where is GMT appropriate? Well, pretty much any storage medium should use GMT internally. Calendar services should understand "user requested 12:30pm $TZ which means 1318959000.000000000". User inputs should generally be assume to be (time,timezone) tuples, where the timezone is either implied or expressly configured (e.g. "I live in America/New_York'). But I sure as shit am not going to invite my wife to meet me for lunch as 23:00:00 GMT, I am going to say "noon". I bet she'll figure it out.
Yeah, I didn't realize they were All-American until recently either. I'm not a big guy and I only wear wool socks seasonally, but I have two pairs from nearly 10 years ago that are still whole. They've worn a bit too thin for hiking boots, but they're still fine with sneakers.
I'm sure there's still t-shirts and other basic stuff still made in the USA, but what about socks? Underwear?
They're not exactly basic stuff, but Wigwam socks are made in Wisconsin with mostly American-sourced wool. I think you're SOL for consumer electronics, unfortunately.
impose a transaction tax (eg 0.01%) on every trade of any kind performed on the stock markets
You mean something like the SEC Section 31 fees? Right now the fee is $19.20 per $1M in stocks sold. If my math is correct, that amounts to 0.096 basis points per stock traded, or slightly less than 1/10 of your example. I don't know how the dynamics of the market would change with such a fee hike, but I can imagine that it wouldn't be ponies and butterflies like most people seem to suggest. Imposing fees with the express purpose of penalizing behavior sounds like a good way to deepen the entrenchment of the few super-profitable companies, who don't care because now they have less competition.
re-balance shareholders' interests against equity build using suitable regulatory legislation.
I'm not sure what you mean by this, but I'm guessing that you mean to reduce the impact that "shareholder interests" have on corporate decision-making. For that, sadly I think we all have to wait for a "changing of the guard" in the SCOTUS.
Out of the group capable of bypassing the systems one would expect at least a few to be lucky enough to actually make a couple of billions.
FTFY. This guy was trading so-called "delta 1" derivatives, meaning he was expected to be leveraged and hedged. The hedge gives you smaller—but more consistent—profits and losses, meaning you live to fight another day.
So that's $260 going out for cell phones which is crazy.
Holy crapola, that is crazy. My friends make fun of me because it costs me something like $0.20 to send a text and $0.10 to receive a text, and I don't have GPS or usable WWW access. But boy, I feel better about all of that when I pay $35-38/mo.
The hundred milliseconds will ALMOST NEVER be noticed because most humans do not immediately scroll down the bottom of the page to see if all elements are completely loaded. No, for most, browsing a webpage begins much earlier.
I wish. Most websites have inline ads that delay content display. Most successful websites also spend a lot of time on optimizing their "branding" at the expense of usability for a partial page load. If my browser doesn't know the dimensions of yet-to-be-loaded components on a page, it has to delay final rendering. Watching a page flicker as margins get adjusted is insanely distracting.
That's too bad; you really should reconsider.
For a single file, you could do something like this (gross pseudocode):
That final rm is the step that destroys the old data, so all you need to do is loop through all "uncommitted moves" for foo.txt and bar.txt, then once everything else works you remove foo.txt.old and bar.txt.old. If anything fails, you just relink the old names on the way out.
This is true. The approach I'm describing doubles disk usage. Support from the storage (filesystem/database) layer should be more efficient. Another benefit for high-volume systems is that the storage layer may put its logs on a different disk that is tuned for frequent small writes, as opposed to sharing the same disk as the original data.
Yeah, I prefer the "everything is a file (descriptor)" approach. This is more of a "misfeature" in the Windows approach to configuration, IMHO.
TheReasonIsBecauseThisIsEasierToType. ItsAnnoyingToConstantlyReachForTheUnderscore. PlusILikeArguingAboutHowToCapitalizeThingsLikeTcpIp.
I love $ORIGIN and use it myself, but I've found that it's incredibly cryptic to most people. Even the googles, they don't seem to provide much information aside from mailing lists where people bicker over the feature.
I'm not sure about your use case, but the first that comes to my mind is compressed log files. "Compressing back and forth with external program[s]" seems to be just fine for me: zcat, zgrep, zless et. al. seem to do the job just fine. Heck, even with a program that wants a filename on the command line, you can use bash to do things like ./mycrap -i <(zcat input.txt.gz) -o >(gzip -c -9 output.txt.gz). It takes a few extra pipes and processes to do this, but the program simply sees ./mycrap -i /dev/fd/63 -o /dev/fd/62 and chugs along oblivious of the compression.
Looking at the wikipedia page for this, it sounds like something that can be done without too much difficulty by writing to temp files (in the same filesystem) and then "committing" the transaction by jiggling hard links (off the top of my head, I'm thinking fsync, fdatasync, link, and unlink). Granted, it would probably be nice to wrap this type of logic into a portable library, it doesn't seem like the Linux "ecosystem" is really lacking for this sort of functionality. Is there some additional functionality that I've overlooked that Transactional NTFS provides?
Ugh, Smarty is a bloated POS. It certainly is popular, but you're better off using PHP to template itself. Less is more!
The biggest problem I see here is that you should approach this as crating your child, not caging him (or her). A proper crate should be more or less covered to act as a sort of "den" or "cave" in which your child may seek refuge. You should feed your child in his (or her) crate to train him (or her) to develop positive associations. Please note that because it is a refuge, your child must be allowed and encouraged to urinate outside of the crate rather than soil his (or her) own den. Over time, you'll find that the screaming subsides and your child will be able to spend more time in the crate—up to 8 hours, if you must work away from home—without issues.
Well, if you cover "as much ground as possible" you're still going to deny the whims of some users. Which is what Google is (quite reasonably) doing in this case. Rearranging a core component of the UI itself is not a "basic option" for a web browser the way (for example) cookie management is. The users who are asking for customization in this aspect because "it's just one checkbox" are asking for the Thundercougarfalconbird.
Is this what happens when you shutdown -p now when posting on /.? Oh dear!
I recently switched to DDG both at home and at work. The "red box answer" tends to be very good, but IME the overall quality of the first two pages is worse than google's. However, when I want the google results I can just enter !g search terms and BAM I get the google results. It's similar to how Opera has done search engines for a long time, but it's nice to have everything pre-programmed. Because of this, making duckduckgo the default search engine is strictly an increase in functionality.
I recently discovered that Opera has this feature. It's bliss! OTOH, maybe I leave too many tabs open at once...
One man's "basic customizability" is another man's "pointless option". The problem is, add the union of every man's "basic customizability" options to the list of supported features, and you have a Thundercougarfalconbird. They made a judgement call on the importance of this particular option, and all you have to do is use someone else's free-as-in-beer browser to show them that they made the wrong call.
No, I am making the distinction perfectly well, but perhaps I was not clear. A logical timezone from the database in question is identified as something like "Europe/London" or "GB" (this happens to be a filename, wheee). When you convert an epoch to a local time, you end up with a "named" GMT offset for that local time, and the timezone database has picked "GMT" as the name for half of the year, and "BST" as the name for the other half of the year.
That is, from the timezone database's perspective, GMT is always GMT, and Europe/London is sometimes GMT. And BST is always one hour offset from GMT, but for half of the year BST simply doesn't exist.
If you're referring to British time, you should note that the timezone database in question also does this. You can check in Linux (bash) with the command TZ=Europe/London date -d 2011-01-01 and likewise 2011-07-01. Seems to switch between GMT and BST. Sucks to your assmar, I guess.
Ignore your watch. Use the force... or look at the clocks in the airport. I've never seen a boarding pass that didn't use local time, and I've never seen an airport that didn't have a gratuitous amount of clocks.
I bet you'll never forget that little quirk about Arizona! If you travel to the Midwest, be aware that Indiana is all sorts of messed up relative to the surrounding states. But still, it's not anywhere close to being a sufficient reason to effect the sweeping change that the local fauna is advocating in this thread.
They are requirements precisely because everyone has been "conditioned" to understand local time. I am a huge proponent of GMT or (localtime,timezone) tuples where appropriate, but this all boils down to compression of information. The vast majority of time references in communication are local (either same timezone or fixed offset, e.g. US Central vs. Eastern for TV programming). Switching everything to GMT optimizes global communication at the expensive of local communication. Ultimately, the reason for this cost is because it is different, but that reason cannot be hand-waved away.
So where is GMT appropriate? Well, pretty much any storage medium should use GMT internally. Calendar services should understand "user requested 12:30pm $TZ which means 1318959000.000000000". User inputs should generally be assume to be (time,timezone) tuples, where the timezone is either implied or expressly configured (e.g. "I live in America/New_York'). But I sure as shit am not going to invite my wife to meet me for lunch as 23:00:00 GMT, I am going to say "noon". I bet she'll figure it out.
Yeah, I didn't realize they were All-American until recently either. I'm not a big guy and I only wear wool socks seasonally, but I have two pairs from nearly 10 years ago that are still whole. They've worn a bit too thin for hiking boots, but they're still fine with sneakers.
They're not exactly basic stuff, but Wigwam socks are made in Wisconsin with mostly American-sourced wool. I think you're SOL for consumer electronics, unfortunately.
He was supposed to be on the same one as Bilbo.
A cron-based build has a lower barrier to entry than any CI tool. Buildbot/hudson/whatever can come after the tourniquets are secure.
Seconded.
You mean something like the SEC Section 31 fees? Right now the fee is $19.20 per $1M in stocks sold. If my math is correct, that amounts to 0.096 basis points per stock traded, or slightly less than 1/10 of your example. I don't know how the dynamics of the market would change with such a fee hike, but I can imagine that it wouldn't be ponies and butterflies like most people seem to suggest. Imposing fees with the express purpose of penalizing behavior sounds like a good way to deepen the entrenchment of the few super-profitable companies, who don't care because now they have less competition.
I'm not sure what you mean by this, but I'm guessing that you mean to reduce the impact that "shareholder interests" have on corporate decision-making. For that, sadly I think we all have to wait for a "changing of the guard" in the SCOTUS.
I found it in my iTunes install one day. Imagine that!
FTFY. This guy was trading so-called "delta 1" derivatives, meaning he was expected to be leveraged and hedged. The hedge gives you smaller—but more consistent—profits and losses, meaning you live to fight another day.
Holy crapola, that is crazy. My friends make fun of me because it costs me something like $0.20 to send a text and $0.10 to receive a text, and I don't have GPS or usable WWW access. But boy, I feel better about all of that when I pay $35-38/mo.
I wish. Most websites have inline ads that delay content display. Most successful websites also spend a lot of time on optimizing their "branding" at the expense of usability for a partial page load. If my browser doesn't know the dimensions of yet-to-be-loaded components on a page, it has to delay final rendering. Watching a page flicker as margins get adjusted is insanely distracting.