A database server exposed directly to the internet (e.g. an Oracle server on port 1521) would be pretty unusual I reckon, and in most cases it'd be a mistake - either redundant and unintentional, or intentional but done without regard to security.
In the context of user-initiated use of the internet for the average user, equating the internet with the WWW is pretty accurate these days. Outside of that context, it's technically incorrect.
This trend is part usability improvement (everything is accomplished via a web browser) and part security improvement (fewer ports, protocols and clients to vet).
Claiming a file system is a database is a bit of a stretch.
File systems tend not to support transactions consisting of more than operation. They also tend not to support ad-hoc queries and indexing - which is often available as an add-on service, e.g. 'locate' or Windows Search, but not part of the file system itself.
Compare to an LDAP directory, which is somewhat similar to a filesystem but with support for the above. (To be precise, transactions are part of the protocol but optionally implemented, and index creation is not part of the protocol but is a typical feature.)
I'd say an LDAP directory is a database, and a file system is a file system.
So future archaeologists are digging around for, y'know, interesting and valuable stuff, and they come across an ancient, beautiful and mysterious artifact made out of valuable materials.
Their immediate response is - of course - to stop digging, re-bury the artifact, and never go near the place again.
I'd say the case for Dvorak on a thumbboard is (even) stronger than on a regular computer keyboard, on account of that tendency to alternate hands.
On a regular keyboard this isn't ideal. It's faster to type two keys per hand than one key per hand.
This isn't really flaw in Dvorak - on the mechanical typewriters that it was designed for, one key per hand is best.
There are keyboard layouts designed around this observation. I've dabbled in it myself. My best effort spelled out a profanity on the home row, which is great because it's very easy to learn.
Latency is inevitably worse on an emulated system. The length of time between say, pushing a button and having that action getting back to your eyes and ears is longer, and likely to be less synchronized.
It's particularly bad if you're substituting a modern LCD TV for a CRT TV.
This is a big deal of course, as many classic games are tuned to human reaction times. If a game requires you to react in 200ms, and you lose 50ms to extra latency in your system, you don't stand a chance.
Think Space Invaders when the aliens are right in front of you.
Did I really write that comment? It came out all wrong.
IMHO, I agree that Microsoft is, at their core, not an innovative company.
And AmigaBasic was woeful.
What I wanted to point out was that Microsoft had their hands tied in the 80's, insofar as they were merely an OS vendor for a very nasty hardware platform they had little control over.
In order to connect with their market, they were stuck with targetting the lowest common denominator of 8086 with CGA graphics.
It wasn't until 80386 and VGA were commonplace (circa 1990?) that Microsoft could feasibly have done anything ground-breaking in the OS space. And with Windows 3, they made it clear that breaking ground wasn't their strategy.
Microsoft has always been a pure software play in the desktop space, whereas the innovations in the 80's and 90's were mostly about hardware.
They made application software and dev tools for other platforms too, which at the time were innovative enough.
Lest we forget AmigaBasic, which did a lot to make the Amiga an attractive platform early on. It was slow and unstable for sure, but it did a good job of exposing the multimedia capabilities of the platform.
This trick doesn't work in C++, which considers this as two distinct overloads.
I was also wrong about Java - the 'final' keyword can be added to or removed from argument declarations freely, without affecting the method signature or Javadocs.
Function arguments are an awkward case: the extra 'const' becomes part of the function signature, even though it's irrelevant to the caller. It's understandable (and idiomatic) to spare an API user the distraction.
The purist in me would like a language feature for declaring stronger const-ness of an argument within the function body.
Likewise for Java ('final' keywords in public method signatures).
Another big drawback of decimal time is of course that we'd lose a lot of handy factors.
Imagine a world where everyday utterances like 'meet you at a third to four' or 'let's break for fifth of an hour' would be met with quizzical expressions before everyone fumbles for their calculators.
Good idea. This could work as per opening and closing auctions, but repeated throughout the day, and with similar benefits in terms of fairer and more stable prices (buyers and sellers split the buy/ask spread).
Maybe this would work even better on a longer cycle, say five minutes. Market releases would be made at the start of the cycle, giving everyone a chance to react before the next auction.
A small charge or levy for placing or changing an order might help too.
Not a minimum hold time, but Australia for one has varying capital gains tax based on how long stocks have been held.
That doesn't preclude profitable HFT though, since the tax will always be less than the profit. (I'm assuming here that transaction fees are deductible.)
Also note that if the HFT is done off the side of a sizable investment holding of the stock, then a lot of trades would be possible between buying shares and re-selling those 'same' shares.
What's needed to kill HFT is a per-transaction levy or a change in exchange fee structure.
That's not to say I favour killing HFT any more than I disapprove of market regulation;-)
There are some gotchas around moving to a smaller drive (NTFS unmovable files), block alignment, and over-provisioning (leaving some space unallocated on the SSD can be worthwhile).
From my experience of a single migration to a smaller SSD on Windows XP, I suggest having a look at 'Paragon Migrate OS to SSD'.
Agreed, add 'fast RAM' to the A1200 and Doom away. There was a Doom-alike on the Amiga called Gloom, complete with motion sickness.
I recall Mac emulation on the A1200 with an after-market 68030 and RAM expansion card. It performed fine in 256 colours, whereas Amiga OS itself would choke. Going easy on the chip RAM bandwidth more than made up for the overheads of the chunky-to-planar conversion and the loss of hardware acceleration (the blitter).
That's true looking at just the resolution, but overall it's not a fair comparison, since a printer 'dot' is either there or not (1 bit per colour), whereas a display 'dot' is a full-colour pixel.
How about we compare the information density?
A typical monitor with 100 ppi and (waves hands) 24 bits per pixel is 2400 bits per inch.
A CMYK print at 600DPI is also 2400 bits per inch.
Neoteny accounts for a lot of the differences between chimps and humans.
In a sense that's not even divergent evolution, as humans are just discarding the specializations that chimps develop as they mature, rather than replacing them with a different set of specializations.
Skull question: Which two of these skulls are the most similar?
I was in a similar position to OP in Beijing in 2005.
I tried getting a software engineering job locally, but came up cold. It seems I was just too out-of-left-field to be considered. I also suspect there there was a perception that I'd be unwilling to work to local salary standards.
It's a shame really, as a savvy manager could turn the English proficiency of a native speaker into a considerable competitive advantage. I'm sorry, but you just can't beat a native speaker.
So, I ended up taking an English teaching course (put on locally by the University of Arizona), and started teaching. It was a refreshing challenge and paid fairly well (by local standards), but it's not my calling.
In the end, I agree with the recommendation to approach international companies operating locally. This should give the best employment prospects and (particularly if you can position yourself as an 'international' rather than 'local' employee) the best remuneration.
Or if you're really bold, try to get a non-technical job with a Chinese companies that deals a lot with English-speaking customers (not least, outsourcing firms). Or go entrepreneurial.
You get the version where Bilbo wins the ring, and the version where Bilbo steals it. True to the source material.
A database server exposed directly to the internet (e.g. an Oracle server on port 1521) would be pretty unusual I reckon, and in most cases it'd be a mistake - either redundant and unintentional, or intentional but done without regard to security.
In the context of user-initiated use of the internet for the average user, equating the internet with the WWW is pretty accurate these days. Outside of that context, it's technically incorrect.
This trend is part usability improvement (everything is accomplished via a web browser) and part security improvement (fewer ports, protocols and clients to vet).
Claiming a file system is a database is a bit of a stretch.
File systems tend not to support transactions consisting of more than operation. They also tend not to support ad-hoc queries and indexing - which is often available as an add-on service, e.g. 'locate' or Windows Search, but not part of the file system itself.
Compare to an LDAP directory, which is somewhat similar to a filesystem but with support for the above. (To be precise, transactions are part of the protocol but optionally implemented, and index creation is not part of the protocol but is a typical feature.)
I'd say an LDAP directory is a database, and a file system is a file system.
You nailed it, this whole idea is stupid.
So future archaeologists are digging around for, y'know, interesting and valuable stuff, and they come across an ancient, beautiful and mysterious artifact made out of valuable materials.
Their immediate response is - of course - to stop digging, re-bury the artifact, and never go near the place again.
Yeah, right.
Oops - that should be 20ms latency on the original system, not 2ms.
(I figured that as 25 frames per second, with an average response time of half a frame.)
I'd say the case for Dvorak on a thumbboard is (even) stronger than on a regular computer keyboard, on account of that tendency to alternate hands.
On a regular keyboard this isn't ideal. It's faster to type two keys per hand than one key per hand.
This isn't really flaw in Dvorak - on the mechanical typewriters that it was designed for, one key per hand is best.
There are keyboard layouts designed around this observation. I've dabbled in it myself. My best effort spelled out a profanity on the home row, which is great because it's very easy to learn.
The latency issue is all (well, 90%+) about I/O, and no emulated system is complete without I/O.
Have a look at the latency measurements here. Around 70ms at best. These aren't emulated games, but I don't think that makes much difference.
On the original systems, typical latency would be just one frame, around 2ms.
If cherry-picking hardware is allowed, replace the LCD with a CRT, replace the wireless USB with a parallel port game controller, and block your ears.
Latency is inevitably worse on an emulated system. The length of time between say, pushing a button and having that action getting back to your eyes and ears is longer, and likely to be less synchronized.
It's particularly bad if you're substituting a modern LCD TV for a CRT TV.
This is a big deal of course, as many classic games are tuned to human reaction times. If a game requires you to react in 200ms, and you lose 50ms to extra latency in your system, you don't stand a chance.
Think Space Invaders when the aliens are right in front of you.
Also, light guns don't work on an LCD.
Did I really write that comment? It came out all wrong.
IMHO, I agree that Microsoft is, at their core, not an innovative company.
And AmigaBasic was woeful.
What I wanted to point out was that Microsoft had their hands tied in the 80's, insofar as they were merely an OS vendor for a very nasty hardware platform they had little control over.
In order to connect with their market, they were stuck with targetting the lowest common denominator of 8086 with CGA graphics.
It wasn't until 80386 and VGA were commonplace (circa 1990?) that Microsoft could feasibly have done anything ground-breaking in the OS space. And with Windows 3, they made it clear that breaking ground wasn't their strategy.
Microsoft has always been a pure software play in the desktop space, whereas the innovations in the 80's and 90's were mostly about hardware.
They made application software and dev tools for other platforms too, which at the time were innovative enough.
Lest we forget AmigaBasic, which did a lot to make the Amiga an attractive platform early on. It was slow and unstable for sure, but it did a good job of exposing the multimedia capabilities of the platform.
I did an experiment with gcc, and apparently the following is fine in C after all:
extern char *my_strncpy(char *dest, const char *src, int n);
char *my_strncpy(char * const dest, const char * const src, const int n) { /* ... */
}
This trick doesn't work in C++, which considers this as two distinct overloads.
I was also wrong about Java - the 'final' keyword can be added to or removed from argument declarations freely, without affecting the method signature or Javadocs.
Function arguments are an awkward case: the extra 'const' becomes part of the function signature, even though it's irrelevant to the caller. It's understandable (and idiomatic) to spare an API user the distraction.
The purist in me would like a language feature for declaring stronger const-ness of an argument within the function body.
Likewise for Java ('final' keywords in public method signatures).
Another big drawback of decimal time is of course that we'd lose a lot of handy factors.
Imagine a world where everyday utterances like 'meet you at a third to four' or 'let's break for fifth of an hour' would be met with quizzical expressions before everyone fumbles for their calculators.
Good idea. This could work as per opening and closing auctions, but repeated throughout the day, and with similar benefits in terms of fairer and more stable prices (buyers and sellers split the buy/ask spread).
Maybe this would work even better on a longer cycle, say five minutes. Market releases would be made at the start of the cycle, giving everyone a chance to react before the next auction.
A small charge or levy for placing or changing an order might help too.
Not a minimum hold time, but Australia for one has varying capital gains tax based on how long stocks have been held.
That doesn't preclude profitable HFT though, since the tax will always be less than the profit. (I'm assuming here that transaction fees are deductible.)
Also note that if the HFT is done off the side of a sizable investment holding of the stock, then a lot of trades would be possible between buying shares and re-selling those 'same' shares.
What's needed to kill HFT is a per-transaction levy or a change in exchange fee structure.
That's not to say I favour killing HFT any more than I disapprove of market regulation ;-)
Without computers in the 80's, I'd never have learned the meaning of 'gumshoe', or that many career criminals have a penchant for croquet.
Entering text != entering equations
There are some gotchas around moving to a smaller drive (NTFS unmovable files), block alignment, and over-provisioning (leaving some space unallocated on the SSD can be worthwhile).
From my experience of a single migration to a smaller SSD on Windows XP, I suggest having a look at 'Paragon Migrate OS to SSD'.
The browsers solved that ages ago (automatically append .com and try it).
I was most relieved to find that my browser does not do that.
Agreed, add 'fast RAM' to the A1200 and Doom away. There was a Doom-alike on the Amiga called Gloom, complete with motion sickness.
I recall Mac emulation on the A1200 with an after-market 68030 and RAM expansion card. It performed fine in 256 colours, whereas Amiga OS itself would choke. Going easy on the chip RAM bandwidth more than made up for the overheads of the chunky-to-planar conversion and the loss of hardware acceleration (the blitter).
Hardly cutting edge... Windows has had 'libraries' for *years*.
That's true looking at just the resolution, but overall it's not a fair comparison, since a printer 'dot' is either there or not (1 bit per colour), whereas a display 'dot' is a full-colour pixel.
How about we compare the information density?
A typical monitor with 100 ppi and (waves hands) 24 bits per pixel is 2400 bits per inch.
A CMYK print at 600DPI is also 2400 bits per inch.
Neoteny accounts for a lot of the differences between chimps and humans.
In a sense that's not even divergent evolution, as humans are just discarding the specializations that chimps develop as they mature, rather than replacing them with a different set of specializations.
Skull question: Which two of these skulls are the most similar?
I was in a similar position to OP in Beijing in 2005.
I tried getting a software engineering job locally, but came up cold. It seems I was just too out-of-left-field to be considered. I also suspect there there was a perception that I'd be unwilling to work to local salary standards.
It's a shame really, as a savvy manager could turn the English proficiency of a native speaker into a considerable competitive advantage. I'm sorry, but you just can't beat a native speaker.
So, I ended up taking an English teaching course (put on locally by the University of Arizona), and started teaching. It was a refreshing challenge and paid fairly well (by local standards), but it's not my calling.
In the end, I agree with the recommendation to approach international companies operating locally. This should give the best employment prospects and (particularly if you can position yourself as an 'international' rather than 'local' employee) the best remuneration.
Or if you're really bold, try to get a non-technical job with a Chinese companies that deals a lot with English-speaking customers (not least, outsourcing firms). Or go entrepreneurial.
why are people never happy unless they're ripping down someone else?
FTFY. Are people any nicer in New Zealand? Please let me know.
As a Kiwi myself, I can tell you 'cutting down tall poppies' is an antipodean tradition.
In person, we're generally polite, honest, seldom confrontational, and almost never sycophantic. I wouldn't say nice.