Lots of people do. While you are correct that larger businesses with "real" IT departments are standardizing on Win2K, there are many smaller businesses/universities/groups want to stick with Win95 or Win98 because they don't want to upgrade (for a variety of very good reasons which other posters have touched on) and want all the machines to be running the same thing for consistancy. While very small businesses (less than 5) won't do the "double tax", medium sized businesses do licensing for two reasons. First, it's cheep (as in as good or better than what OEMs pay, because there's no physical media, and the license is written in a particular way to reduce support costs). Second, it keeps them legal in a really obvious way. So, let's say you are running a call center with 100+ machines that you started running Win95 on to get a new app, but you need backward compatiblity for some funky other app that you don't have source to and the company that wrote it is out of business (and you don't have the resources to rewrite/replace it), and you need to buy new machines. Buy the new machines, license the OS from MS to gain legality and compatiblity and there you go...
It's not unreasonable for a group that has their computing needs met by a certain platform/configuration to try and stay on that platform/config as long as possible to keep the cost of change down. This is very common for non-computer-related businesses.
You got that one right. Without the atmosphere or a nice space shuttle to shield you from all that alpha and gamma radiation, the system (both CPU and memory) will have huge error rates. Modern processors are already slightly succeptable to alpha particles here on earth. In space...
Besides, the business model is bogus. Iridum couldn't make it doing phones, what makes him think that he can make money with data-only transmissions competing with DSL, CableModems and GSM/PCS technology?
Oh yea, then there's the latency issue since you are sending your signals further, making it unacceptable for playing games... Anyway, there's no real North American or Europe market that can support him. Maybe in more remote places lacking current infrastructure it would make sense, but can they pay the cost of all those mini-sats at 120lb a pop???
The problem with doing that (I had Matlab on the Mac, and access to Mathematica and MathCad on other platforms) is twofold:
You can't type symbolic stuff fast enough. Unless their interfaces have significantly changed, you just can't get in the data as fast as
writing all the squggly bits placed correctly next to each other fast enough.
The notes that you take are designed to show you how to solve the problems with the intermediary steps. Dumping them into Maple is great in that it will solve them for you, but you don't get the intermedary stuff that you need to actually understand how to do it on the test;-)
Don't get me wrong, those symbolic math programs are some of the coolest things since sliced bread, but they weren't designed for taking notes (well, MathCad might not be too bad if you had the interface really down). But then again, publishing programs like latex and FrameMaker do a great job with formatting complex equations. But again, the input rate is a dangerous issue.
When I was in college (OK, it's been a few years) I started out with a Dos-based 286 Toshiba laptop. No graphics, just text. This worked fairly well for taking notes, and then I'd move them over to my desktop 386 to edit/print/view them. This worked OK, but if the class had a lot of drawings, it was a serious problem. Note, remember with
non-WYSIWYG editors, ascii-art was an option.
After a year and a half of that, I got an Apple
powerbook Duo 210. (68030, 8MB ram MacOS 7.?,
16-greyscale 640x400 <4lb). No floppy, no expansion
ports or much of anything. But with a copy of
an integrated wordprocessor/spreadsheet/drawing
program (either clairsworks or MS-Works, I forget which I was using) I was able to do all kinds of stuff very quickly, and because it was light and small I could take it many more places and get stuff done.
I used it for doing my physics labs writeups in the lab. I used it for a lot of English and other
non CS non-Computer Engineering courses. For those it worked really well.
If I was to do it today:
Good desktop machine. Get a nice desktop for your dorm/apartment. Plenty of ram, processor power and a really good monitor/keboard/mouse
(remember how much typing you'll be doing on it at 2am!)
Very lightweight underpowered notebook. You don't need to be able to play quake III on your notebook (that's what the desktop is for). Get something used, like an IBM Thinkpad. Doesn't
even need to be the same OS. Remember the laptop
is just a text/drawing editor. Nothing more, so
don't waste money on it in case something goes
wrong...
I'd normally say that the full size WinCE
machines like the Vadem Clio or the IBM z50 would
be good, but they tend to be terribly expensive.
Attach some post-its to the laptop on the
wrist-rest areas. Then have a pen handy to jot
down quick diagrams that the professor is erasing
too quickly.
Alternatively to a underpowered laptop, if you have mostly text, you could even use a Palmpilot with a keyboard!
Get a good way of syncing files from the laptop to the desktop. There are a variety of ways of doing this. Network/Samba/FTP copies, The
windows 'briefcase' or even CVS (my personal favorite).
Figure out what works for you, and then use it
consistently.
Figure out how to connect it to the campus
network so you can print using the printers on
campus. (I didn't even have a printer of my own
for the last three years of college. It wasn't
useful)
Back up your desktop machine's data:-)
The only alternatives to a two machine system
that I've seen so far is the IBM Thinkpad A21p.
And it runs around $4K and weighs in at 7.6lb.
Don't ask about battery life. The +15in screen
eats them alive.:-)
Finally: Don't even try to use it in a math class or other highly symbolic class. Machines are optimized for text, and just don't deal well with
inputting differential equations. It does seem a
bit odd that Computer Engineers would have the
hardest time using a computer to take notes, but that is what I've found. History, philosophy, even chemistry were fine, but all the nifty diagrams
and charts made notetaking in upper division CS, CpE and EE classes substantially more difficult.
Certainly if you are doing managment of any kind, you must read Mythical Man-Month (try and get
the reprint with extra chapters). But I would also
encourage you to read (after MMM) either 'The Cathedral and the Bazzar' by Eric Raymond or one
of the 'Extreme Programming' books. The reason
that I suggest this, is that some things have
changed since MMM was written (namely large
open-source projects) and a lot can be learned by
understanding how those projects were 'managed'
and why they were so successful. I think it is
important to get grounding in MMM first, then
learn about how to potentially do better than
MMM implies you can do.
XP has a lot of good ideas. Not all of them should
be applied to all projects, but some of the more
'radical' ideas should at least be considered. I work at a hardware company, and so some of the assumptions that XP is based on don't apply to us, but we still use various XP techniques from time to time because they are helpful.
I would also stand behind 'The Pragmatic Programmer'. While it it is focused much more on the individual programmer, it has sound advice that applies to just about any programming work environment
Clearly the first one on the list has to be AvantGo.
Next, I've got some more 'specific' apps to what I do, specifically, the Programmers Calculator, which has great hex-bin-dec conversion and some
other nice features for doing computer-stuff (seems to have gone missing, but there are other similar calculators). I
also have to report my hours working on various
projects, so Titrax
(http://www.titrax.com/) is a nice app for keeping
track of that without too much effort.
Personally, I like apps that allow me to sync with
other data sources. Anybody know of an good way
to sync databases to a palm app using a linux
box (maybe a plugin for
jpilot?
First, there are area/power/performance tradeoffs
that are determined by the technology. When you
change the underlying technology, the tradeoffs
that you made no longer make any sense. Would you
buy a processor without caches today? Of course
not! But 10 years ago, caches were small and of
limited value because the tradeoffs were different.
The other big reason that chips get constantly
redesigned is that because of circuit issues (speedpaths and the
like) you can't just shrink the design and get
much faster. It becomes diminishing returns. If
you take a look at a graph of clock (or
even performance) rate over
time for a family of processors that extends
across process technologies, you'll see that it
isn't a nice linear scaling. It tapers off, because you need to redesign the chip to compensate for changes in the underlying technology.
Finally, it's economic. People will fork out money
for the latest architecuture and highest frequencies. As long as people are willing to pay
for it (and not pay for 1GHz 386es), there will
be companies actively designing new chips.
Under the 'also' category, the reason I like having a tower so much (and putting it on the floor under my desk) is to keep it quiet.
Modern machines tend to be a bit noisy, and getting it out of site not only frees up valuable
desk space, but decreases fan noise as well.
Probably the real reason the cards aren't put in
front is that marketing people (and many people
with
some kind of 'asthetic preferences') would object
to putting those nasty grey-metal card-ends on
the front of the machine. It would be a huge eyesore...
You might not want to put drives at a 45 degree angle. I know that hard drives have to be at either 0 or 90 degrees since they rely on the
gravity to be symmetric across the plane of the
disk spin. (if it is at some other angle there
is more force on one side of the bearings, thus
wearing them out prematurely). I would suspect that some CD/DVD drives
rely on that assumption as well...
I don't agree with all of your points, but some
are good:
Drivers - I don't think I've seen any for
WinNT or Linux that don't work right on multiple.
Cost - sure, DP motherboards are more expensive, but there are two factors that you are ignoring. First, DP or Quad-Proc motherboards tend to be substantially higher quality, and in many cases have better chipsets and I/O subsystems. Second, It's always cheeper than a second machine.
Competition
Lack of OS support - this really goes to #6
Bad architecture - What do you suggest as an
alternative? DEC's point-to-point busses and NUMA
memory layout? While a shared front-side-bus may
not have great performance on memory-intensive
applications, it's much less complex and less expensive than other alternatives (see #2)
Difficulty of programming SMP - This is the
real problem. It isn't easy to write good parallel programs, even in a shared-memory SMP model.
Higher performance NUMAs just add to the complexity. Until we get good parallel compilers, or usage models that are implicitely parallel
(running lots of independant apps). The cost can't
be justified for the performance of even a simple
SMP implementation, let alone a more expensive
complex (and faster) one.
Riffage.com
has mp3s and does implement a kind of scoring/sharing mechanism that attempts to suggest
music based on what people who have rated things similarly to you in the past. I wasn't too keen on it earlier since it didn't seem too accurate at the time, but it might have gotten better with more artists and users.
If you are trying to get Windows apps ported, then you are looking at a lot of work since the hard part (the program->OS interface) would need to be reworked.
If you are looking at porting GNU/Linux/Unix apps, then it is generally pretty easy. The older, and better written apps tend to port more cleanly, along with anything that uses `configure` to resolve system dependancies. I used to work on a University suport team and we would have to compile the same application for HP/UX, Linux, SunOS, Solaris and NeXTStep. Most stuff went cleanly, or with a few tweaks to take care of libs.
It can't be too hard, since there are a couple of linux-based ARM machines out there already. Most closely related to your interests is the netwinder. Be sure to check out http://www.arm.linux.org.uk/
I would argue that there are several strong reasons for not having the primary sync mechanism be ethernet. I'll just touch on each briefly:
Configuration - Computer and Palm both plugged into network. How does the palm find the right computer to sync with?
Security - How does the computer know that the palm is a legitimate user of it's services? This is a more solveable problem once you have dealt with the Configuration problem
Robustness - Having an open TCP/IP server means that you may have additional security issues like denial of service attacks, and raises the 'necessary quality' of your product.
Cost - RS232 serial connections are really dirt cheep (and the dragonball has hardware support). The USB probably costs more (I don't know exactly by how much) but Ethernet is the most expensive of the three, both in terms of hardware and computational power to drive the TCP/IP stack.
Biggest isssues are probably the security and configuation issues. They would lead me to do RS232 or USB if I were designing these devices (disclaimer: I don't design these devices, but I do use them)
Well, the 'Plain Old Text' option doesn't seem to work quite right in that it snarfs up all but the last function definitions in the perl code. So, plan B is to download the script from http://members.xoom.com/Mikem42/randxterm
I've had a D-220 and then later upgraded to a D-400. While digital cameras can't beat SLRs for quality in general, my D-400 is good enough (thanks to photo printing from kodak.com and shutterfly.com) to be comparable to a generic 35mm point-n-click with zoom.
Olympus is really strong because they are leveraging their experience in film cameras and lenses very effectivly into their digital cameras. They have really nice capture.
My strong reccomendation is to get a camera with an optical zoom (3x is good). It really makes the difference, and digital zoom is a joke as we all pretty much know.
#!/usr/bin/perl # This script randomly chooses colors until two of sufficient contrast # are found, and displays an xterm with those foreground and background # colors. Contrast is determined based on a variation of the CIE L*a*b* # color model.
srand;
$lightness_scaling = 1.55; # the higher the scaling factor, the more lightness # counts in the distance function. Make small to get # more light/dark difference betwee BG and FG.
$contrast_threshold = 120; # pick a higher threshold for more contrast
$num_fg_iterations = 30;# pick a higher number for more attempts at an acceptabl e # fg color before abandoning bg color choice.
do { # pick a background color $BH = 360.0 * rand(1); # Hue $BL = rand(1)/3.0 + rand(1)/3.0 + rand(1)/3.0; # Lightness # make sure we're not outside double cone... $BS = rand(1)*2*(0.5-abs($BL-0.5)); # Saturation
Really this comes down to applied art theory. You need to come up with a color model, and then by constraining things you can come up with a solid solution fairly quickly.
Basically there are two factors that will matter to you. First is contrast, you don't want two very light or two very dark colors. The second is the actual color (hue). If you remember the color wheel, that would help a lot, because you can think of the situation like two cones stuck together at their bases. At the tips, are black and white, at the middle are the maximum color values. The goal therefore is for the two points inside the cones to be sufficiently far apart to be easily visually distinguishable.
What looks good? Again to color wheel! Generally, you want to pick a complementary color to your current one. The complementary colors (artists should jump in and correct me as necessary) are the two on the wheel that form a equalateral triangle. Picking either of these should result in more pleasing choices. However, if you initial color is a bad color to begin with, the complements probably won't be good colors either.
Writing this code isn't hard, but sit down with a pencil and paper and make sure you understand your color model first. Then code it up and tweak the parameters until good results start coming out. I'll post a reply to this with an example perl script that generates randomly colored xterms with sufficient contrast based on a variation of the CIE L*a*b model.
They actually squeeze a lot on a screen, and as for the keyboard issue, there are actually several options. I personally have the Landware one which is a bit on the small side for really fast typing, but quite useable.
No, the reason that AMD doesn't have a DP or MP system out is not because they 'overclock' the Athlons. It is because they have the EV6 front side bus from DEC, which is a point to point protocol. This means that you need a much more complex chipset with a lot more pins to do even dual-processor configurations.
Intel on the other hand has a shared front side bus, so all the CPUs can see each other's traffic and results in a substantially less complex chipset, with a lot fewer pins. Probably lower performance (depending on several factors), but certainly a cheeper solution for dual and 4-way SMP machines
The Viewsonic PT813 is a nice once. I think they still make it. It is a nice trinitron tube, and we've got a lot of these at work. Everybody agrees that they are most likely the best. The IBM 21 inch monitors that ship with their RS6Ks are good, but I tend to like the Viewsonic better. Sony's might be a little better, but I suspect that they either are the same identical tube internally and/or I would have a lot of trouble telling the difference between the two.
Sherry Turkle's books are quite good and while 'nontechnical', they are fairly meaty in the psych area. I'd reccomend "Life on the Screen" as probably the one that you are most interested in and is widely available, but "Second Self" is good as well. I haven't read any of her other books though.
It's really short on features and configurability so far, but it looks really nice. I'm still trying to figure out if I can use XML to solve some of my outstanding problems and something along these lines is a step in the right direction:-)
It's not unreasonable for a group that has their computing needs met by a certain platform/configuration to try and stay on that platform/config as long as possible to keep the cost of change down. This is very common for non-computer-related businesses.
I'm just glad I'm not in that position :-)
- Mike
Besides, the business model is bogus. Iridum couldn't make it doing phones, what makes him think that he can make money with data-only transmissions competing with DSL, CableModems and GSM/PCS technology?
Oh yea, then there's the latency issue since you are sending your signals further, making it unacceptable for playing games... Anyway, there's no real North American or Europe market that can support him. Maybe in more remote places lacking current infrastructure it would make sense, but can they pay the cost of all those mini-sats at 120lb a pop???
- Mike
- Mike
- You can't type symbolic stuff fast enough. Unless their interfaces have significantly changed, you just can't get in the data as fast as
writing all the squggly bits placed correctly next to each other fast enough.
- The notes that you take are designed to show you how to solve the problems with the intermediary steps. Dumping them into Maple is great in that it will solve them for you, but you don't get the intermedary stuff that you need to actually understand how to do it on the test
;-)
Don't get me wrong, those symbolic math programs are some of the coolest things since sliced bread, but they weren't designed for taking notes (well, MathCad might not be too bad if you had the interface really down). But then again, publishing programs like latex and FrameMaker do a great job with formatting complex equations. But again, the input rate is a dangerous issue.- Mike
After a year and a half of that, I got an Apple powerbook Duo 210. (68030, 8MB ram MacOS 7.?, 16-greyscale 640x400 <4lb). No floppy, no expansion ports or much of anything. But with a copy of an integrated wordprocessor/spreadsheet/drawing program (either clairsworks or MS-Works, I forget which I was using) I was able to do all kinds of stuff very quickly, and because it was light and small I could take it many more places and get stuff done.
I used it for doing my physics labs writeups in the lab. I used it for a lot of English and other non CS non-Computer Engineering courses. For those it worked really well.
If I was to do it today:
The only alternatives to a two machine system that I've seen so far is the IBM Thinkpad A21p. And it runs around $4K and weighs in at 7.6lb. Don't ask about battery life. The +15in screen eats them alive. :-)
Finally: Don't even try to use it in a math class or other highly symbolic class. Machines are optimized for text, and just don't deal well with inputting differential equations. It does seem a bit odd that Computer Engineers would have the hardest time using a computer to take notes, but that is what I've found. History, philosophy, even chemistry were fine, but all the nifty diagrams and charts made notetaking in upper division CS, CpE and EE classes substantially more difficult.
- Mike
- Mike
I would also stand behind 'The Pragmatic Programmer'. While it it is focused much more on the individual programmer, it has sound advice that applies to just about any programming work environment
- Mike
Next, I've got some more 'specific' apps to what I do, specifically, the Programmers Calculator, which has great hex-bin-dec conversion and some other nice features for doing computer-stuff (seems to have gone missing, but there are other similar calculators). I also have to report my hours working on various projects, so Titrax (http://www.titrax.com/) is a nice app for keeping track of that without too much effort.
Personally, I like apps that allow me to sync with other data sources. Anybody know of an good way to sync databases to a palm app using a linux box (maybe a plugin for jpilot?
- Mike
The other big reason that chips get constantly redesigned is that because of circuit issues (speedpaths and the like) you can't just shrink the design and get much faster. It becomes diminishing returns. If you take a look at a graph of clock (or even performance) rate over time for a family of processors that extends across process technologies, you'll see that it isn't a nice linear scaling. It tapers off, because you need to redesign the chip to compensate for changes in the underlying technology.
Finally, it's economic. People will fork out money for the latest architecuture and highest frequencies. As long as people are willing to pay for it (and not pay for 1GHz 386es), there will be companies actively designing new chips.
Besides, it's fun :-)
- Mike
Probably the real reason the cards aren't put in front is that marketing people (and many people with some kind of 'asthetic preferences') would object to putting those nasty grey-metal card-ends on the front of the machine. It would be a huge eyesore...
- Mike
- Mike
- Mike
- Mike
- Mike
If you are looking at porting GNU/Linux/Unix apps, then it is generally pretty easy. The older, and better written apps tend to port more cleanly, along with anything that uses `configure` to resolve system dependancies. I used to work on a University suport team and we would have to compile the same application for HP/UX, Linux, SunOS, Solaris and NeXTStep. Most stuff went cleanly, or with a few tweaks to take care of libs.
It can't be too hard, since there are a couple of linux-based ARM machines out there already. Most closely related to your interests is the netwinder. Be sure to check out http://www.arm.linux.org.uk/
- Mike
Biggest isssues are probably the security and configuation issues. They would lead me to do RS232 or USB if I were designing these devices (disclaimer: I don't design these devices, but I do use them)
- Mike
Sorry for the difficulities,
- Mike
Olympus is really strong because they are leveraging their experience in film cameras and lenses very effectivly into their digital cameras. They have really nice capture.
My strong reccomendation is to get a camera with an optical zoom (3x is good). It really makes the difference, and digital zoom is a joke as we all pretty much know.
- Mike
#!/usr/bin/perl
# This script randomly chooses colors until two of sufficient contrast
# are found, and displays an xterm with those foreground and background
# colors. Contrast is determined based on a variation of the CIE L*a*b*
# color model.
srand;
$lightness_scaling = 1.55; # the higher the scaling factor, the more lightness
# counts in the distance function. Make small to get
# more light/dark difference betwee BG and FG.
$contrast_threshold = 120; # pick a higher threshold for more contrast
$num_fg_iterations = 30;# pick a higher number for more attempts at an acceptabl
e
# fg color before abandoning bg color choice.
do {
# pick a background color
$BH = 360.0 * rand(1); # Hue
$BL = rand(1)/3.0 + rand(1)/3.0 + rand(1)/3.0; # Lightness
# make sure we're not outside double cone...
$BS = rand(1)*2*(0.5-abs($BL-0.5)); # Saturation
($BR, $BG, $BB) = hls2rgb($BH, $BL, $BS);
($BX, $BY, $BZ) = rgb2xyz($BR, $BG, $BB);
($BL, $Ba, $Bb) = xyz2Lab($BX, $BY, $BZ);
$i = 0;
do {
# pick a foreground color
$FH = 360.0 * rand(1); # Hue
# $FL = rand(1)/3.0 + rand(1)/3.0 + rand(1)/3.0; # Lightness
$FL = rand(1); # Lightness
# make sure we're not outside double cone...
$FS = rand(1)*2*(0.5-abs($FL-0.5)); # Saturation
($FR, $FG, $FB) = hls2rgb($FH, $FL, $FS);
($FX, $FY, $FZ) = rgb2xyz($FR, $FG, $FB);
($FL, $Fa, $Fb) = xyz2Lab($FX, $FY, $FZ);
$i++;
#printf("FG: %02X %02X %02X : %f %f %f\n", 255*$FR, 255*$FG, 255*$FB,
# $FL, $Fa, $Fb);
#printf("BG: %02X %02X %02X : %f %f %f\n", 255*$BR, 255*$BG, 255*$BB,
# $BL, $Ba, $Bb);
#printf("contrast: %f\n\n", contrast($BL, $Ba, $Bb, $FL, $Fa, $Fb));
} while ((contrast($BL, $Ba, $Bb, $FL, $Fa, $Fb) 360) {
$hue1 -= 360;
}
if ($hue1 0.008856) {
$L = 116 * ($Y/$Yn)**(1/3) - 16;
} else {
$L = 903.3 * ($Y/$Yn);
}
$a = 500 * ((($X/$Xn)**(1/3)) - (($Y/$Yn)**(1/3)));
$b = 200 * ((($Y/$Yn)**(1/3)) - (($Z/$Zn)**(1/3)));
return ($L, $a, $b);
}
sub contrast {
my ($L1, $a1, $b1, $L2, $a2, $b2) = @_;
my ($contrast);
$contrast = sqrt( $lightness_scaling*($L1-$L2)**2 + ($a1-$2)**2 + ($b1-$b2)*
*2);
return $contrast;
}
Basically there are two factors that will matter to you. First is contrast, you don't want two very light or two very dark colors. The second is the actual color (hue). If you remember the color wheel, that would help a lot, because you can think of the situation like two cones stuck together at their bases. At the tips, are black and white, at the middle are the maximum color values. The goal therefore is for the two points inside the cones to be sufficiently far apart to be easily visually distinguishable.
What looks good? Again to color wheel! Generally, you want to pick a complementary color to your current one. The complementary colors (artists should jump in and correct me as necessary) are the two on the wheel that form a equalateral triangle. Picking either of these should result in more pleasing choices. However, if you initial color is a bad color to begin with, the complements probably won't be good colors either.
Writing this code isn't hard, but sit down with a pencil and paper and make sure you understand your color model first. Then code it up and tweak the parameters until good results start coming out. I'll post a reply to this with an example perl script that generates randomly colored xterms with sufficient contrast based on a variation of the CIE L*a*b model.
- Mike
  - Mike
Intel on the other hand has a shared front side bus, so all the CPUs can see each other's traffic and results in a substantially less complex chipset, with a lot fewer pins. Probably lower performance (depending on several factors), but certainly a cheeper solution for dual and 4-way SMP machines
- Mike
- Mike
- Mike
CFLAGS = -I/myhome/conge-0.1.1/src/libflux-0.2.8/include -g `gtk-config --cflags`
It's really short on features and configurability so far, but it looks really nice. I'm still trying to figure out if I can use XML to solve some of my outstanding problems and something along these lines is a step in the right direction :-)
- Mike