I think you're missing the point here. Getting from one location to the other is a significant part of the game, and greater than 50% of the pleasure of the game from my playing it. And if you're doing that by driving through intersections, you're doing it all wrong. I don't think I shot up more than 10 guard posts in the whole time I played the game.
Here's what I wrote in a comment on TFA:
It's odd that people complain about having to "trudge across the map", because that's actually my favourite part of the game. In my mind, it calls me back to the classic Thief series, still my all-time favourites.
In Far Cry 2, I enjoyed receiving a mission location, then pulling out the map from the box - which I had marked up with known guard locations, safe-houses etc. - and plotting the best way to get from here to there. I'd usually take a bus to the nearest station, then plan to trek to a safe-house and sleep until night. Then, I'd make the final trip to the target, whether by driving around off the roads, or speeding through checkpoints on boat, or sneaking across the rivers and plains unseen.
This strategic dimension, beyond the tactical side of normal FPS combat, is what really hooked me into Far Cry 2. It's easily the best game I've played in some time. I think it's better than Crysis, for example, and waaay better than any of the Half Life 2 series - a series I find terminally boring, linear, predictable and insulting to intelligence.
In modern processors, there is no penalty for using virtual memory, all translation from virtual to physical address space is done internal to the processor and you won't notice the difference.
That's not quite true; the CPU adjustments do have a cost, ameliorated by caches such as the TLB, but physical memory is so slow these days that you don't notice how slow virtual memory is.
To get good performance, you have to hit L1/2[/3] cache; if you fall back to physical memory you've already lost, never mind the translation overhead.
TFA is completely bogus. He explicitly compares mass-produced Apple configurations to custom-configured generic versions:
I priced them in build-to-order configurations sold directly by the manufacturers so I could customize them to match the MacBook when possible
In other words, when there's a generic laptop that has higher specs than the Apple, and priced lower under the usual deals that e.g. Dell does (40+% discount), it is expressly ignored.
When you manipulate the data like that, you can prove anything.
100% wrong. Monolithic kernels can't protect themselves from rogue drivers, and the NT kernel is monolithic, just like Linux.
And MacOS (modified Mach) isn't off the hook either - it's all running in a single address space to reduce cost of IPC, so it's about as stable as Win3.1 WRT drivers:
Unfortunately, I do not want to directly invoke wget, since I am running wget from a script.
Basically, I want to refresh an offline mirror of a section of a website that needs a cookie or two for access. I have the scripts all written already. All I need is a text file in historical Mozilla cookie format that contains all the cookies, including session cookies, just like allcookies would do.
Yes, it's called allcookies. It's not compatible with FF3.
If you are aware of another extension that works with FF3 and has a simple 'dump all cookies' menu item that dumps everything including session cookies, please do tell.
Unfortunately, FF3 is missing FF2 features. In particular, FF3 doesn't use a cookies.txt file. This means that it integrates poorly with wget. And this, in turn, is the reason I have not upgraded to FF3 on one of my machines, and may have to turn to IE7 for secure browsing.
I've written my own client-based screenscraper that calculated all flight options, aggregating across Aer Lingus, Ryanair, easyJet, Aer Arann, and a couple of others I don't recall now.
Given a starting set of airports, a final destination set of airports, a date range, and a trip length range in days, it would calculate the cheapest round-trip journey, including legs if that made it cheaper.
The cheapest trips were always Ryanair-only flights.
There are no (free) meals, movies, headphones, pillows or blankets on Ryanair flights. There isn't even a pouch on the seat back in front of you - those take too much time to empty out and reduce turnaround time.
Not even your seat reservation is free on Ryanair, because there aren't any - to get a seat you like (be it window or aisle or, if you're a bit weird, a middle seat) - you have to queue up early or pay extra to join the priority queue.
Ryanair usually has the lowest fares, even when you count in all their extra charges (credit card booking fee, checking in fee, luggage fee (different from checking in fee), airport fee (if you fly from Knock in Ireland, someone stiffs you for another 20 EUR or so just before you board).
O'Leary (Ryanair CEO) has never made good customer service a priority. Basically, he sees airplane travel as like bus travel: cut the price down as much as possible, headline it as even lower (i.e. not including extra fees), and pack 'em in.
His strategy, as it is, is to force people to come back solely on price, even if their experience was miserable. When price differentials in the plane business can be well over 100 EUR from one option to the next, this works, alas.
So, here in this news item he is punishing two people: customers who dared to book outside Ryanair's system, and screen scrapers who might be able to level the price visibility playing field (even though Ryanair usually wins here as it is).
He's relying on the fact that the low prices are such a big draw that he can afford to push customers around.
Flying Ryanair is a bit like taking a cheap bus driven by an unpleasant bouncer. It's usually the cheapest option (often by quite a ways) to get from A to B, but if you piss off the driver, he has no qualms about breaking your nose for you.
Use-ability is in the mind of the use-r, eh? Well that's exactly the point! The user (i.e. the customer) is exactly who needs to be pleased, and if they aren't happy, the software is broken, period. Lack of perceived usability in aggregate isn't a user problem - it's a software problem. I fully agree with TFA - it comes down to incentives. Too much open source software is written with the wrong incentives for usability, i.e. with the thought that the non-technical[*] user will be able to use the software efficiently.
[*] And I emphasize non-technical, because that's what makes software useful: doing a job by abstracting away technical details, so that you don't need to worry about them.
It seems pretty clear to me. All mathematical "knowledge" that can be proved using prior mathematical work and ultimately based on a set of axioms, was implicit in the original axioms. When we do mathematics, all we are doing is "discovering" the ramifications of our axioms - but that doesn't mean that mathematics are discovered from some platonic realm.
Rather, we have deliberately chosen the axioms, the underlying assumptions of our game. These axioms, and the rules of the game, have been invented to be consistent with one another (Godel aside). All other "knowledge" that comes out of consequences of the rules and axioms isn't "new", as such, but merely an implication of our chosen axioms.
As much as I dislike authority figures harassing me the truth is that the object is to protect people and if they are tied up in court with traffic offenses they can't stop violent offenders so it usually isn't worth fighting over 5MPH.
And do you have some statistics to back up your preferences - i.e. how many people hurt / killed by violent offenders, versus traffic offenses?
The rationalization they have is actually for customers, believe it or not. They way they talk, it's "we do this, then Hollywood etc. will put their content on PCs, therefore consumers get extra content". Yes, I know, I swapped customers for consumers, but that's symptomatic of typical contempt for customer education.
It seems to me that the whole DRM thing is a play by MSFT to lock in entertainment in the living room in the same way as APPL has tried to lock in music on portable devices. MSFT wants Hollywood etc. to buy in, and that means making them feel safe, and that in turn means convincing hardware vendors to play along. The hoped-for end result of this play is that MSFT has a new monopoly, protected by both law and technology.
It's also related to their XBox gaming strategy, of course.
Software development is a wide field. Sometimes developers are writing business rules, in which cases sometimes I can agree, implementing as many features as possible with as small a staff as possible, will produce low-quality code. But that code would be low quality whether or not DbC was implemented. You can have any two of (low cost, high quality, short development). It doesn't really change things.
My experience is in application server runtimes and compilers. In those cases, I've learned that, for want of a less common term, a stitch in time saves nine. Assertions written into the codebase find bugs sooner than users report them, and it's certainly better to find those assertions before corruption occurs that could cause far worse problems.
In a phrase, the niche is professional coders, rather than hack-a-day cowboys.
Assertions, whether invariants, preconditions or postconditions, can be viewed as extensions to the type system [1]. Since they are expressions of a boolean type and don't modify state (at least, no sane ones would mutate state), they're very easily analysed.
Combine that with a runtime like.NET or the JVM. Compilers and analysers can use such contracts to perform extra typechecking of e.g. arguments to methods, where the methods have preconditions. "Runtime cost" doesn't exist if the runtime has support, especially where verification also exists. Consider the old conundrum: do you check your parameters, or do you expect your caller to check the arguments before they're passed? What if the parameters being wrong leads to a subtle error that manifests later rather than a dramatic failure? With properly stated contracts, these checks can be inserted at the lowest level and automatically propagated higher statically by the compiler or dynamically by the runtime as necessary.
The niche that DbC is supposed to fill is formalising what is already recognised good practice - stating your assumptions while writing your code. If you have much experience as a programmer, you'll know that it's useful to use assert, ASSERT, or some other feature of your environment at choice places where you make certain assumptions that you think can't be broken. And if you've read The Pragmatic Programmer, you'll know why you'll want to leave those assertions in the final release.
Most popular languages, such as C#, Java, C++ etc., capture very little programmer intent in their type systems. There's a lot more potential there - preconditions and postconditions can e.g. state that a variable will be in a certain range dependent on the values of other variables, and then automatically detect range mismatches with e.g. loop invariants. Basically, assertions are really useful extensions to the type system.
I think you're missing the point here. Getting from one location to the other is a significant part of the game, and greater than 50% of the pleasure of the game from my playing it. And if you're doing that by driving through intersections, you're doing it all wrong. I don't think I shot up more than 10 guard posts in the whole time I played the game.
Here's what I wrote in a comment on TFA:
It's odd that people complain about having to "trudge across the map", because that's actually my favourite part of the game. In my mind, it calls me back to the classic Thief series, still my all-time favourites.
In Far Cry 2, I enjoyed receiving a mission location, then pulling out the map from the box - which I had marked up with known guard locations, safe-houses etc. - and plotting the best way to get from here to there. I'd usually take a bus to the nearest station, then plan to trek to a safe-house and sleep until night. Then, I'd make the final trip to the target, whether by driving around off the roads, or speeding through checkpoints on boat, or sneaking across the rivers and plains unseen.
This strategic dimension, beyond the tactical side of normal FPS combat, is what really hooked me into Far Cry 2. It's easily the best game I've played in some time. I think it's better than Crysis, for example, and waaay better than any of the Half Life 2 series - a series I find terminally boring, linear, predictable and insulting to intelligence.
Great. Rather than being correct first time, you must teach this unruly dumb kid how not to apply its stupidity.
What's more it can't learn the rule; it needs to be taught repeatedly, again and again for every site.
Still not there:
It's the cookie problem that I have biggest issues with. Sqlite was the biggest problem when FF 3 first came out, but it has since receded somewhat.
Since I don't use AwesomeBar at all, I would be very glad if Sqlite was ripped out and nice, easy to use text files were restored.
In modern processors, there is no penalty for using virtual memory, all translation from virtual to physical address space is done internal to the processor and you won't notice the difference.
That's not quite true; the CPU adjustments do have a cost, ameliorated by caches such as the TLB, but physical memory is so slow these days that you don't notice how slow virtual memory is.
To get good performance, you have to hit L1/2[/3] cache; if you fall back to physical memory you've already lost, never mind the translation overhead.
TFA is completely bogus. He explicitly compares mass-produced Apple configurations to custom-configured generic versions:
I priced them in build-to-order configurations sold directly by the manufacturers so I could customize them to match the MacBook when possible
In other words, when there's a generic laptop that has higher specs than the Apple, and priced lower under the usual deals that e.g. Dell does (40+% discount), it is expressly ignored.
When you manipulate the data like that, you can prove anything.
Only takes 25 seconds to restore from hibernation in XP on my laptop. That's not that long.
Of course, resume from sleep is a lot faster, but that will eat battery if you don't keep your laptop plugged in often.
100% wrong. Monolithic kernels can't protect themselves from rogue drivers, and the NT kernel is monolithic, just like Linux.
And MacOS (modified Mach) isn't off the hook either - it's all running in a single address space to reduce cost of IPC, so it's about as stable as Win3.1 WRT drivers:
http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/Mach/chapter_6_section_1.html
Unfortunately, I do not want to directly invoke wget, since I am running wget from a script.
Basically, I want to refresh an offline mirror of a section of a website that needs a cookie or two for access. I have the scripts all written already. All I need is a text file in historical Mozilla cookie format that contains all the cookies, including session cookies, just like allcookies would do.
Yes, it's called allcookies. It's not compatible with FF3.
If you are aware of another extension that works with FF3 and has a simple 'dump all cookies' menu item that dumps everything including session cookies, please do tell.
Unfortunately, FF3 is missing FF2 features. In particular, FF3 doesn't use a cookies.txt file. This means that it integrates poorly with wget. And this, in turn, is the reason I have not upgraded to FF3 on one of my machines, and may have to turn to IE7 for secure browsing.
I've written my own client-based screenscraper that calculated all flight options, aggregating across Aer Lingus, Ryanair, easyJet, Aer Arann, and a couple of others I don't recall now.
Given a starting set of airports, a final destination set of airports, a date range, and a trip length range in days, it would calculate the cheapest round-trip journey, including legs if that made it cheaper.
The cheapest trips were always Ryanair-only flights.
Ryanair aren't that small any more - their market cap is 65% or so of Bank of Ireland, and turnover is comparable too.
Ryanair works because they usually have the lowest fare, often by quite a large percentage (60% to 5% (seriously) or lower (!) of next competing bid).
That's their whole strategy. Customer service is not even considered, much less a priority.
There are no (free) meals, movies, headphones, pillows or blankets on Ryanair flights. There isn't even a pouch on the seat back in front of you - those take too much time to empty out and reduce turnaround time.
Not even your seat reservation is free on Ryanair, because there aren't any - to get a seat you like (be it window or aisle or, if you're a bit weird, a middle seat) - you have to queue up early or pay extra to join the priority queue.
Ryanair usually has the lowest fares, even when you count in all their extra charges (credit card booking fee, checking in fee, luggage fee (different from checking in fee), airport fee (if you fly from Knock in Ireland, someone stiffs you for another 20 EUR or so just before you board).
O'Leary (Ryanair CEO) has never made good customer service a priority. Basically, he sees airplane travel as like bus travel: cut the price down as much as possible, headline it as even lower (i.e. not including extra fees), and pack 'em in.
His strategy, as it is, is to force people to come back solely on price, even if their experience was miserable. When price differentials in the plane business can be well over 100 EUR from one option to the next, this works, alas.
So, here in this news item he is punishing two people: customers who dared to book outside Ryanair's system, and screen scrapers who might be able to level the price visibility playing field (even though Ryanair usually wins here as it is).
He's relying on the fact that the low prices are such a big draw that he can afford to push customers around.
Flying Ryanair is a bit like taking a cheap bus driven by an unpleasant bouncer. It's usually the cheapest option (often by quite a ways) to get from A to B, but if you piss off the driver, he has no qualms about breaking your nose for you.
Use-ability is in the mind of the use-r, eh? Well that's exactly the point! The user (i.e. the customer) is exactly who needs to be pleased, and if they aren't happy, the software is broken, period. Lack of perceived usability in aggregate isn't a user problem - it's a software problem. I fully agree with TFA - it comes down to incentives. Too much open source software is written with the wrong incentives for usability, i.e. with the thought that the non-technical[*] user will be able to use the software efficiently.
[*] And I emphasize non-technical, because that's what makes software useful: doing a job by abstracting away technical details, so that you don't need to worry about them.
It seems pretty clear to me. All mathematical "knowledge" that can be proved using prior mathematical work and ultimately based on a set of axioms, was implicit in the original axioms. When we do mathematics, all we are doing is "discovering" the ramifications of our axioms - but that doesn't mean that mathematics are discovered from some platonic realm.
Rather, we have deliberately chosen the axioms, the underlying assumptions of our game. These axioms, and the rules of the game, have been invented to be consistent with one another (Godel aside). All other "knowledge" that comes out of consequences of the rules and axioms isn't "new", as such, but merely an implication of our chosen axioms.
Oops, I meant AAPL of course.
The rationalization they have is actually for customers, believe it or not. They way they talk, it's "we do this, then Hollywood etc. will put their content on PCs, therefore consumers get extra content". Yes, I know, I swapped customers for consumers, but that's symptomatic of typical contempt for customer education.
It seems to me that the whole DRM thing is a play by MSFT to lock in entertainment in the living room in the same way as APPL has tried to lock in music on portable devices. MSFT wants Hollywood etc. to buy in, and that means making them feel safe, and that in turn means convincing hardware vendors to play along. The hoped-for end result of this play is that MSFT has a new monopoly, protected by both law and technology.
It's also related to their XBox gaming strategy, of course.
IPv4 address is a 32-bit integer. Typical notation is in base-256, but you can use other bases.
E.g. on my machine:
ping 66.102.7.104
is equivalent to:
ping 1113982824
Similarly, 24.75.345.200 is actually this address:
PING 407656904 (24.76.89.200): 56 data bytes
For an OS scheduler, yes, having one thread per object would be a bad idea. However, it's a very scalable model for soft threads, see e.g. Erlang.
Software development is a wide field. Sometimes developers are writing business rules, in which cases sometimes I can agree, implementing as many features as possible with as small a staff as possible, will produce low-quality code. But that code would be low quality whether or not DbC was implemented. You can have any two of (low cost, high quality, short development). It doesn't really change things.
My experience is in application server runtimes and compilers. In those cases, I've learned that, for want of a less common term, a stitch in time saves nine. Assertions written into the codebase find bugs sooner than users report them, and it's certainly better to find those assertions before corruption occurs that could cause far worse problems.
In a phrase, the niche is professional coders, rather than hack-a-day cowboys.
.NET or the JVM. Compilers and analysers can use such contracts to perform extra typechecking of e.g. arguments to methods, where the methods have preconditions. "Runtime cost" doesn't exist if the runtime has support, especially where verification also exists. Consider the old conundrum: do you check your parameters, or do you expect your caller to check the arguments before they're passed? What if the parameters being wrong leads to a subtle error that manifests later rather than a dramatic failure? With properly stated contracts, these checks can be inserted at the lowest level and automatically propagated higher statically by the compiler or dynamically by the runtime as necessary.
4 7778.aspx
Assertions, whether invariants, preconditions or postconditions, can be viewed as extensions to the type system [1]. Since they are expressions of a boolean type and don't modify state (at least, no sane ones would mutate state), they're very easily analysed.
Combine that with a runtime like
The niche that DbC is supposed to fill is formalising what is already recognised good practice - stating your assumptions while writing your code. If you have much experience as a programmer, you'll know that it's useful to use assert, ASSERT, or some other feature of your environment at choice places where you make certain assumptions that you think can't be broken. And if you've read The Pragmatic Programmer, you'll know why you'll want to leave those assertions in the final release.
Most popular languages, such as C#, Java, C++ etc., capture very little programmer intent in their type systems. There's a lot more potential there - preconditions and postconditions can e.g. state that a variable will be in a certain range dependent on the values of other variables, and then automatically detect range mismatches with e.g. loop invariants. Basically, assertions are really useful extensions to the type system.
[1] For example, consider that a 'requires x != null' constraint and a notional non-nullable reference type from C# or Java, analogous to 'MyType!' in C-w (C Omega):
http://blogs.msdn.com/cyrusn/archive/2004/06/03/1
Avoiding tax isn't illegal. Evading tax is.