Intel outperforming PowerPC was kind of expected.
However I am impressed with a technology behind Rosetta. Are ther any open source projects like that?
You are right to some extent. Many previous slashdotters said that too. From my own experience - we have discovered many memory-related bugs quicker just because we had a Solaris port and memory layout is different.
As a submitter of this story I am partially at fault for misunderstanding, because I wrote about "bugs". I wrote more extensive blog entry on that, but main point is that there are two many differences even in close platforms. So to actually write a cross-platform code you _must_ know peculiarities of each platform.
I mean, just look at APR or NSPR. Several examples:
Dynamically loaded libraries. Even Solaris and Linux different, let alone HP-UX and Windows
Taking care of endianness independence presents additional burden
Case-insensitive vs case-sensitive file names
Different forms of line feeds (I am aware of 3 (three))
Path separators, separation of path elements in PATH.
Even Linux distros have different layout of configuration files and startup scripts. If your application has to deal with that - you are in trouble. Let alone Solaris, HP-UX, AIX, whatever.
System utilities sometimes have different set of flags
If this is not enough, try to look at the output of some non trivial autoconfigure script!
How familiar. I had a lot of headache long ago with RedHat 9. It was kinda 3 yeras ago, so instructions are kinda fuzzy, sorry. Here are things to check (some of them were mentioned, but I do not have mod points, so I'll just repeat them to emphasize):
1. Check that kernel is compiled with modules 'serial' and 'visor', you can check if they are loaded by typing modprobe serial; modprobe visor. If these modules are compiled but not loaded for some reason, modprobe will actually load them, so if modprobe's go w/o problems you may already be able to sync your Palm.
If modules are not compiled (which is usually NOT the case when you use popular modern distros - you have to compile them yourself).
I am not sure, but at some point I inserted modprobe seial; modeprobe visor; command into/etc/rc.local to get them loaded for sure. It was ugly, but worked. May be other slashdotters have better advice on how to force loading of particular modules.
2. Ok, so your modules are in place. Now you should have appropriate permissions to read/write serial USB connections. chmod 666/dev/ttyUSB* under root should do the trick
3. Some programs expect Palm device under certain name, so it mightbe useful to that ln -s/dev/ttyUSB0/dev/visor ln -s/dev/ttyUSB0/dev/palm ln -s/dev/ttyUSB0/dev/pilot
4. To check that Palm is seen by drivers, attach cradle to USB, place palm into the cradle and press sync button. Do not expect anything to appear, just press it. Now review/var/log/messages and see that Palm device is actually there, w/o any errors.
5. Now, the trick is that Linux does not actually see Palm device until sync button is pressed. So you have to press sync button on craddle (or in Palm sync app) first, and only then fire up your Linux plam software of choice. AFAIR, there is a cute thingy called hotplug, that let's you hook some actions on certain device events, so go RTFM.
I agree - this is frustrating. Actually I thought modern distros automate that whole stuff, but did not check it for a long time though. Good luck!
1. Choose a testing framework. It depends on language. For C/C++ - cppunit, for Java - junit. 2. Start writing unit tests from lowest level functions: those that use barebones system libraries and start moving upwards. Do not go too far - it's a unit (!) testing, not a general or rgeression testing. 3. Ideally you should test all possible paths in functions. Apparently it is not feasible for large functions (that is one of the reasons function should be small). You should try to create a test to hit every condition and every branch of a condition at least once. 4. It's more complex that these 3 items, but I'd say this is a start.
My friend moved from Russia to Sweden, worked there for several years, and then moved to Toronto. And he is happy about that.
Sweden was not bad for him, but I guess Canada is better for many reasons.
1. Permanent residence is waaaay easier to get. Let alone citizenshop. 2. The company he worked for in Sweden came through series of lay-offs. He is not Swedish citizen and he is young, so in European tradition, he always was the first in line for a lay-off. He is smart, so he held on for several rounds, but eventually he gave up. 3. Taxes in Sweden are higher, even in comparison to high Canadian taxes. 4. He had friends working in Canada, but not in Sweden.
Depending on your needs you may use different programs for different tasks.
* Ploticus (http://ploticus.sourceforge.net/) was alredy mentioned, but I could not overemphasize its conceptual beauty and rich functionality. You may use it from a command line, which IMO is a great advantage. * GNU plot. Old but viable solution * If you need to do some things that are unavailable in other charting programs you may take a look at low-level libraries, such as GD (http://www.boutell.com/)
Learned about versatile ways in which people manage their music collection
... let alone the list of scripts for mp3/ogg/whatever tag manipulation, put in one place, with some kind of opinion, so I do not have to freaking google it
For any non-trivial software system you need comments AND meaningful names.
I found that while meaningful names are useful to describe how program works in terms of a language, comments are needed for a proper mapping to a domain area.
I found commenting conditionals and switch bracnhes particularly useful - in a comment I explain for which situation in a problem domain that was done.
I also find very useful to put problem-tracking references (like PR31337) useful, when I need to fix some problem report or implement a small feature. Later, that _will_ help you to understand WTF this kludgy code does. It even may save your butt if you are stupid (or inexperienced) enough not to have unit and regression tests.
MHO.
I probably have to see original series to get it, but that trailer did not strike me at all.
I remember seeing Matrix trailers. They were breathtaking. It was like "Whoaaa, this is gonna be BIG!". I do not have that feeling now. In fact, "6th sense" and "The forgotten" trailers were more exciting (yeah, that may be apples to oranges, but I'm talking about overall impression).
Not so funny as it seems. I've been "ringing" at all theft detectors. I found this happens if I'm in my indigo jeans. Few weeks later I found thin metallic stripe (apparently from a chewing gum pack) stuck in the seam near the belt.
You said about Java API? What is the language the implementation itself is written in?
From my experience it is importnat to have API in the sam language as implementation first and then have APIs.
You also did not describe motives behind the pressure. What are they? Technological, financial, Microsot grants... what? That would help in answering your question.
Changing anything will cost your employer money. Did they count how much reqrite will take in terms of time and money.
If you have to support several APIs, I'd say write IDL and generate interfaces for as many languags as you want. Unfortunately this is not as easy as it supposed to be.
I do not install any kind of "Window blinds", it's just a waste of time. Windows already hace nice and usable interface by default. The only tuning I do - I enable ClearType fonts. I also have many "quick start" icons, iTunes toolbar and I have my LCD screen turned into portrait mode (nvidia driver does the 90 deg rotation)
One of these:
* Use thin clients
* Use Linux. It allows you to make access to devices fine-grained
* Use third-party commerical software (google for it)
ZX Spectrum
That reminds me the old joke:
Rhinoceros has not very good vision. But... with its weight it is not _its_ problem.
Not like that. Both Steve Jobs and Bill Gates ripped off this idea from Xerox PARC guys,
Intel outperforming PowerPC was kind of expected. However I am impressed with a technology behind Rosetta. Are ther any open source projects like that?
Umm, yeas. You nailed it down to the point :)
But wait... How was I supposed to fit it into submission form?
You are right to some extent. Many previous slashdotters said that too. From my own experience - we have discovered many memory-related bugs quicker just because we had a Solaris port and memory layout is different.
As a submitter of this story I am partially at fault for misunderstanding, because I wrote about "bugs". I wrote more extensive blog entry on that, but main point is that there are two many differences even in close platforms. So to actually write a cross-platform code you _must_ know peculiarities of each platform.
I mean, just look at APR or NSPR. Several examples:
- Dynamically loaded libraries. Even Solaris and Linux different, let alone HP-UX and Windows
- Taking care of endianness independence presents additional burden
- Case-insensitive vs case-sensitive file names
- Different forms of line feeds (I am aware of 3 (three))
- Path separators, separation of path elements in PATH.
- Even Linux distros have different layout of configuration files and startup scripts. If your application has to deal with that - you are in trouble. Let alone Solaris, HP-UX, AIX, whatever.
- System utilities sometimes have different set of flags
If this is not enough, try to look at the output of some non trivial autoconfigure script!How familiar. I had a lot of headache long ago with RedHat 9. It was kinda 3 yeras ago, so instructions are kinda fuzzy, sorry. Here are things to check (some of them were mentioned, but I do not have mod points, so I'll just repeat them to emphasize):
/etc/rc.local to get them loaded for sure. It was ugly, but worked. May be other slashdotters have better advice on how to force loading of particular modules.
/dev/ttyUSB*
/dev/ttyUSB0 /dev/visor /dev/ttyUSB0 /dev/palm /dev/ttyUSB0 /dev/pilot
/var/log/messages and see that Palm device is actually there, w/o any errors.
1. Check that kernel is compiled with modules 'serial' and 'visor', you can check if they are loaded by typing modprobe serial; modprobe visor.
If these modules are compiled but not loaded for some reason, modprobe will actually load them, so if modprobe's go w/o problems you may already be able to sync your Palm.
If modules are not compiled (which is usually NOT the case when you use popular modern distros - you have to compile them yourself).
I am not sure, but at some point I inserted modprobe seial; modeprobe visor; command into
2. Ok, so your modules are in place. Now you should have appropriate permissions to read/write serial USB connections.
chmod 666
under root should do the trick
3. Some programs expect Palm device under certain name, so it mightbe useful to that
ln -s
ln -s
ln -s
4. To check that Palm is seen by drivers, attach cradle to USB, place palm into the cradle and press sync button. Do not expect anything to appear, just press it. Now review
5. Now, the trick is that Linux does not actually see Palm device until sync button is pressed. So you have to press sync button on craddle (or in Palm sync app) first, and only then fire up your Linux plam software of choice. AFAIR, there is a cute thingy called hotplug, that let's you hook some actions on certain device events, so go RTFM.
I agree - this is frustrating. Actually I thought modern distros automate that whole stuff, but did not check it for a long time though. Good luck!
I agree, you are right about proxies and misleading statistics. However, Google itself sees some value in it. Why would it acquire Urchin otherwise?
Not only that, but Google will conceal real web statistics from websites.
Remember acquisition of Urchin? Here is my concern about Google Webaccelerator.
1. Choose a testing framework. It depends on language. For C/C++ - cppunit, for Java - junit.
2. Start writing unit tests from lowest level functions: those that use barebones system libraries and start moving upwards. Do not go too far - it's a unit (!) testing, not a general or rgeression testing.
3. Ideally you should test all possible paths in functions. Apparently it is not feasible for large functions (that is one of the reasons function should be small). You should try to create a test to hit every condition and every branch of a condition at least once.
4. It's more complex that these 3 items, but I'd say this is a start.
My friend moved from Russia to Sweden, worked there for several years, and then moved to Toronto. And he is happy about that.
Sweden was not bad for him, but I guess Canada is better for many reasons.
1. Permanent residence is waaaay easier to get. Let alone citizenshop.
2. The company he worked for in Sweden came through series of lay-offs. He is not Swedish citizen and he is young, so in European tradition, he always was the first in line for a lay-off. He is smart, so he held on for several rounds, but eventually he gave up.
3. Taxes in Sweden are higher, even in comparison to high Canadian taxes.
4. He had friends working in Canada, but not in Sweden.
... that this yet another revenue stream project for Google waiting to emerge. No, Google is not evil. Just another corporation.
Depending on your needs you may use different programs for different tasks.
* Ploticus (http://ploticus.sourceforge.net/) was alredy mentioned, but I could not overemphasize its conceptual beauty and rich functionality. You may use it from a command line, which IMO is a great advantage.
* GNU plot. Old but viable solution
* If you need to do some things that are unavailable in other charting programs you may take a look at low-level libraries, such as GD (http://www.boutell.com/)
For any non-trivial software system you need comments AND meaningful names.
I found that while meaningful names are useful to describe how program works in terms of a language, comments are needed for a proper mapping to a domain area.
I found commenting conditionals and switch bracnhes particularly useful - in a comment I explain for which situation in a problem domain that was done.
I also find very useful to put problem-tracking references (like PR31337) useful, when I need to fix some problem report or implement a small feature. Later, that _will_ help you to understand WTF this kludgy code does. It even may save your butt if you are stupid (or inexperienced) enough not to have unit and regression tests.
But let's see...
will easily beat that!
MHO. I probably have to see original series to get it, but that trailer did not strike me at all. I remember seeing Matrix trailers. They were breathtaking. It was like "Whoaaa, this is gonna be BIG!". I do not have that feeling now. In fact, "6th sense" and "The forgotten" trailers were more exciting (yeah, that may be apples to oranges, but I'm talking about overall impression).
Delicious does not, Furl does what you want. Again, take a look at my comparison.
You may want to check out online bookmark services comparison chart. Most of them will import/export your bookmarks from all popular browsers.
Not so funny as it seems. I've been "ringing" at all theft detectors. I found this happens if I'm in my indigo jeans. Few weeks later I found thin metallic stripe (apparently from a chewing gum pack) stuck in the seam near the belt.
You said about Java API? What is the language the implementation itself is written in? From my experience it is importnat to have API in the sam language as implementation first and then have APIs. You also did not describe motives behind the pressure. What are they? Technological, financial, Microsot grants ... what? That would help in answering your question.
Changing anything will cost your employer money. Did they count how much reqrite will take in terms of time and money.
If you have to support several APIs, I'd say write IDL and generate interfaces for as many languags as you want. Unfortunately this is not as easy as it supposed to be.
I do not install any kind of "Window blinds", it's just a waste of time. Windows already hace nice and usable interface by default. The only tuning I do - I enable ClearType fonts. I also have many "quick start" icons, iTunes toolbar and I have my LCD screen turned into portrait mode (nvidia driver does the 90 deg rotation)
"I think there is a world market for maybe five computers". Duh!
One of these: * Use thin clients * Use Linux. It allows you to make access to devices fine-grained * Use third-party commerical software (google for it)