> Nothing that is not designed with touch in mind will work really well on a touchscreen.
I do (mostly) agree with you. Particularly with things like tooltips which activate on hover [though there should now be a way to detect a really light touch]. That's why I'd mostly want at least a keyboard, and possibly a mouse too. But think how complex many real programs actually are, vs the relatively small changes to tweak them for touch. For example, I'd hate to do real work in LibreOffice on a touchscreen - but it would be nice to be able to open a document and have the ability to edit it a bit. It wouldn't have to be perfect; just usable. The UI wouldn't need to change much, except for making modal dialogs fullscreen (not new windows), and allowing zoom/pan to access the controls. > Another thing I don't get. Why would you want to pimp up your iPad to become a laptop when you could just as easily buy, you know, a laptop?
Well, that's the conclusion I reached...the iPad can't replace the laptop; therefore I have to take the laptop with me most of the time. But if I have a laptop anyway, why would I bother taking the iPad too? If I could go on holiday and leave my laptop behind, I might consider it.
> Plaintext [apple.com] works for me, but there are tons of others.
I was thinking more on the lines of a programming editor, with syntax-highlighting etc. I
Aside: a neat thing to do would be to support a whole VM running in the background, connected to the display via VNC. This sounds inefficient, but it works surprisingly well - you can run a full Debian system on a Zaurus that way!
Well, dropbox is OK, but if you've ever used ssh + passphrases + rsync, you'll know that it's not a patch on that - besides which, why would I shift several GB up into the cloud and back again, when it should be possible to just copy directly? I run desktop Linux, so iTunes just isn't an option. Yes, I do totally take your point that many X applications wouldn't work well with a touch screen, but many of them would work. Of the ones that didn't, it would often be much easier to make some tweaks than to start from scratch. Besides which, an iPad with optional bluetooth mouse and keyboard might be a genuine replacement for a laptop.
The other thing I find is that, as a geek, the iPad is really annoying. It's viscerally frustrating, because there are so many things it can't do - not because it's technically impossible, nor because nobody has yet been able to write it, but because of the constant "thou shalt not"s from Apple. I quite understand that Apple might not want to devote engineering effort to making my unusual choices easier - but I deeply resent that they put such a lot of effort into making the device harder to use, and less helpful. For example, I transcoded all my music into ogg files (the original reason was because 5 years ago, mp3 didn't properly do gapless playback, eg for symphonies when the music continued over a track-change). The iPad won't accept these. Why? Because Apple are being pig-headed. There's no technical reason. Even having jailbroken the thing, I don't trust Apple not to push out an update to remove the jailbreak. Safari is perfectly decent, but I prefer Firefox. I'd like to have the option of Flash. There isn't even a good text editor or shell on there.
Well, the obvious improvement would be in connectivity. The iPad is a real pain to get files on and off (especially without iTunes), and even when jailbroken, the native apps just won't "see" photos or ogg files. Also, if it ran Linux, we could have ports of every single X application to run on it. So many possibilities! Android tablets aren't bad - but Android doesn't run X - it's rather limiting that none of the native Linux stuff can run on Android. Interestingly, Maemo (Nokia's N900) could run the full platform - the result was really powerful.
There are very very many distros out there that exist as "respins" or "custom editions" which are basically debian + package-selection. For example, dyne:bolic, musix, ubuntu studio, kubuntu, ubuntu-gnome-remix. Why aren't they just published as: base-distro + package-repository + taskel (list of packages to apt-get) + settings to change + (optionally) list of packages to remove?
I've never understood this - it hugely increases the maintainer workload, makes it harder to migrate (need to reinstall), makes it harder to try out, makes it harder to have a mixed system, and make it a real problem if the distro maintainer quits.
Perhaps someone can explain this to me, because I am truly puzzled.
Aside: yes, I recognise the advantage of, say, xubuntu (as a more minimal base-system), and I know that Kubuntu can be installed with "apt-get install kubuntu-desktop" - but why do most systems insist on clean-install from ISO as the primary (sometimes only) way to install them?
What puzzles me is why nobody has ported Linux to the iPad. Dualboot android, or even something like maemo/meego would be excellent. If I were Samsung at this point, I think I'd be sponsoring that kind of project!
Linux open-source drivers work extremely well: if your driver is open source, and in-tree, then any kernel dev who breaks the internal ABI is responsible for fixing all drivers that call it. So, for example, if an internal function gains an extra argument, it will be fixed across the entire tree. This gives huge flexibility, and allows Linux to evolve rapidly (for example, the USB subsystem is now on iirc its 4th major version).
The price we pay for this is a slight extra amount of work for manufacturers who write closed-source out-of-tree blobs. In your example, PowerVR should have worked with the kernel guys (who are very helpful) to get their driver in-tree - then it would work for many years to come.
If the kernel had a stable ABI, it would make life much harder for the kernel devs, in order to make it easier for the blob-writers. Why would that be a good tradeoff?
It's probably a fair bet that, even in the days of DOS, you had a decent keyboard on which to type. Even the VT100-era machines (pre arrow-keys) were preferable to a soft-keyboard that takes up half the screen.Of course you can get a keyboard adapter for the iPad, but then you might as well have a real laptop.
I was given an iPad3, which I managed to jailbreak. Nevertheless, the device is pretty useless: I'f I'm on the move, I have a smartphone. If I'm travelling and needing to seriously work, I take a laptop. If at home, I have a desktop. There's no situation in which the iPad is the preferred tool for the job. That *might* change if we could run a decent window manager on it, do proper multi-tasking, plug in a USB keyboard (the iPad3 only supplies 20mA, not enough). We's also need proper support for rooted iPads: for example, I can transfer my photos onto the device by scp, but iPhoto won't actually "see" them even if I put them in the right directory.
0. Do consider writing this yourself...a 100 line shell-script (carefully written and documented) may well be easier to debug than a complex off-the-shelf system.
1. You can easily identify the disks with eg/dev/disk/by-uuid/ which, combined with some udev rules, will make it easy to identify which filesystem is which, even if the disks are put into different caddys. [Note that all SATA drives are hot-swap/hot-plug capable: remember to unmount, and to connect power before data; disconnect data before power; observe precautions with static, with cable-lengths, and don't break the connectors (which have limited life-cycles) ] You shouldn't need to reboot.
2. Consider just trying the trees together with symlinks (Use "find" to recurse, then ln -s"). Unless you have many tens of thousands of small files, this will work remarkably well, especially if the disk that holds the symlinks is fast and has a sensible filesystem; you could even make it a ramdisk. [Personally, I've been bitten by unionfs systems, and I'm a little wary of them. They break in weird ways]
3. Unless you have a good reason to do otherwise, install the latest Ubuntu LTS release (Precise Pangolin 64). I recommend you install {L,X}ubuntu as a base, rather than the pure-server edition or the full gnome/kde systems, because it gives you a minimal environment, but with X installed: no unwanted services, but you don't have to begin from a 80x25 terminal! You can just "apt-get install ubuntu-desktop" to convert to the full version if you need to.
Just double-check your BIOS: are you using the SSDs in the SATA native (AHCI) mode, or the old fashioned IDE mode? Also, are you using a SATA II (or III) rather than SATA I port? Remember that SSDs shine on random reads and writes: if you try to benchmark with something like hdparm -tT. you won't see much improvement.
The Integral Fast Reactor (and various other Generation IV designs) have solved this problem. We even built (most of) a prototype. Let's just build some already.
I don't think that's true. After all, cows are really quite hard to handle: the milking machinery alone is more complex than the bioreactor would be. Cows produce huge amounts of methane too, and require vet treatment, food year round, lots of space, and incur the useless overhead of bulls. Milk production is erratic, and cannot be quickly scaled up and down as demand fluctuates.
Personally, I find soy-milk most unpleasant. Almond milk is rather delicious, but not really a substitute (it's basically marzipan in solution) - and much more expensive to make. I think we should be able to synthesise something very similar to cow's milk, with similar nutritional and culinary properties... only without the cow.
I've always wondered why we use cows to generate milk. Given that most of milk is relatively simple (water, sugars, chalk, oil), why can't we have bioreactor into which we put grass-clippings, and get out something roughly similar to milk?
The need for adding protein, and some kinds of vitamins might be moderately tricky, but I should think that this wouldn't matter for many applications. The only thing that would require the full complexity of real milk would be in making (good quality) cheese. This would also appeal to vegans, some vegetarians, and many people with lactose intolerance.
Seems to me that this is a very serious violation of the spirit of the antitrust rulings when MS killed netscape. Why aren't our consumer protection agencies stepping in to forbid MS from doing this?
I once was given a drive to repair that had probably been dropped. It wouldn't even spin up. The owner wasn't willing to pay $500 for recovery, and asked me to just do anything possible. So, I carefully removed the lid (no dust precautions!) and tried to rotate the platter by hand - it wouldn't go, because the head had physically stuck to it. With the careful application of brute force, I was able to free it, and to my amazement it actually worked. Then the use of dd_rescue was able to recover almost all the data!
I recommend the self-documenting approach. You already have to map name and MAC in dhcpd.conf (assuming you use DHCP reservations), so just put some extra comments in there (what the device actually is). That way you can be fairly sure that the docs will remain in sync with reality. However, that approach only works for relatively small networks.
In general, avoid the "split brain" approach where you have independenytly generated documentation AND config files. Make one generate the other.
I hope Firefox doesn't try this trick. Although it doesn't need to use > 4GB, it does need support for leaking more than that. I have an 8GB swap partition, mostly to stop firefox crashing more than once a week!
I don't understand Oracle's position here.Surely all they have to do is compile the latest release of their software with the relevant compiler options?
Thanks to X, you can kill the desktop, window-manager and taskbar, and start another WM/DE without even closing your applications. X makes this really easy. (For example, "metacity --replace").
Fortunately, you don't have to stick with a single DE. For example, start with xfce (window manager and panel), then mix-and match GTK/QT/other applications (kwrite + firefox + vlc), add extra services (xscreensaver), and configure the rest with xbindkeys/xinput/xmodmap. All window-managers work the same way (you can even script with devilspie). Most panel applets are interchangeable.
But I do wish that the desktop developers would get version N working perfectly and polished before starting to work on version N+1 (which is completely unrelated).
It's always annoyed me that to declare a pointer to int, we write:
int *x; which means "let x be that thing which, when de-referenced, is an integer" or more briefly "(*x) is an int". [Anyone who thinks that it is really "int* x" (note the spacing) should consider what happens with "int* x,y" ]
So, let's have an explicit pointer declaration. I propose:
"&int x" meaning "x is a variable of type address-of-integer".
I don;t think you can argue that Linux's design is fundamentally poorly done...the USB subsystem for example was originally written for USB 1.0 devices (basically mice, keyboards and serial ports); usb 2.0 and 3.0 didn't even exist then. The redesign for 3.0 changed the implementation of 1.0, as did all the power-management stuff for laptops. Yes, other OSes can cope, but Linux can go one better!
Also, I don't buy your argument about not always having access to a compiler: everyone does: I'm not arguing that the end user should recompile (though they can), but that it's easy enough for the person doing the porting.
You also rather miss the point about syscalls: there are plenty of things that would ideally be changed - but it's impractical to do so, because it would need a coordinated change across *all* of thousands of different userspace programs, run by different projects - and a coordinated deployment across millions of machines. However, keeping the kernel drivers synchronised and updated in parallel is easy: they're all in the same git tree.
1. Should the driver API be stable? Usually not: a long term stable API means that it's hard to make changes when necessary. For example, the Linux USB subsystem has been substantially re-written 4 times. This is never a problem, because when someone changes the kernel API, they also are responsible for updating all drivers in the tree that are affected by it. It means that Linux's USB support isn't hamstrung by lots of legacy cruft.
2. Should the ABI be stable? No. This breaks pretty much every time the kernel is compiled. The solution: recompile the drivers.
The only problem is that Nvidia don't want to play by Linux's rules: they want to ship a binary, rather than source driver. The result is that Nvidia (and nobody else) gets snarled up on the API/ABI policy which works exceptionally well for all the open-source kernel drivers.
The argument for a stable ABI is rather like the (claimed) USP of Java: write once, run anywhere. The thing is, if you can recompile on your target platform, that advantage disappears. Why would anyone care about binary compatibility if they can have source-compatibility?
Aside: there is a very different logic with the Posix (system-call) API between userspace and kernel space. This means that, for example, fopen() works exactly the same way now that it did 20 years ago.
> Nothing that is not designed with touch in mind will work really well on a touchscreen.
I do (mostly) agree with you. Particularly with things like tooltips which activate on hover [though there should now be a way to detect a really light touch]. That's why I'd mostly want at least a keyboard, and possibly a mouse too. But think how complex many real programs actually are, vs the relatively small changes to tweak them for touch. For example, I'd hate to do real work in LibreOffice on a touchscreen - but it would be nice to be able to open a document and have the ability to edit it a bit. It wouldn't have to be perfect; just usable. The UI wouldn't need to change much, except for making modal dialogs fullscreen (not new windows), and allowing zoom/pan to access the controls.
> Another thing I don't get. Why would you want to pimp up your iPad to become a laptop when you could just as easily buy, you know, a laptop?
Well, that's the conclusion I reached...the iPad can't replace the laptop; therefore I have to take the laptop with me most of the time. But if I have a laptop anyway, why would I bother taking the iPad too? If I could go on holiday and leave my laptop behind, I might consider it.
> Plaintext [apple.com] works for me, but there are tons of others.
I was thinking more on the lines of a programming editor, with syntax-highlighting etc. I
Aside: a neat thing to do would be to support a whole VM running in the background, connected to the display via VNC. This sounds inefficient, but it works surprisingly well - you can run a full Debian system on a Zaurus that way!
Well, dropbox is OK, but if you've ever used ssh + passphrases + rsync, you'll know that it's not a patch on that - besides which, why would I shift several GB up into the cloud and back again, when it should be possible to just copy directly? I run desktop Linux, so iTunes just isn't an option. Yes, I do totally take your point that many X applications wouldn't work well with a touch screen, but many of them would work. Of the ones that didn't, it would often be much easier to make some tweaks than to start from scratch. Besides which, an iPad with optional bluetooth mouse and keyboard might be a genuine replacement for a laptop.
The other thing I find is that, as a geek, the iPad is really annoying. It's viscerally frustrating, because there are so many things it can't do - not because it's technically impossible, nor because nobody has yet been able to write it, but because of the constant "thou shalt not"s from Apple. I quite understand that Apple might not want to devote engineering effort to making my unusual choices easier - but I deeply resent that they put such a lot of effort into making the device harder to use, and less helpful. For example, I transcoded all my music into ogg files (the original reason was because 5 years ago, mp3 didn't properly do gapless playback, eg for symphonies when the music continued over a track-change). The iPad won't accept these. Why? Because Apple are being pig-headed. There's no technical reason. Even having jailbroken the thing, I don't trust Apple not to push out an update to remove the jailbreak. Safari is perfectly decent, but I prefer Firefox. I'd like to have the option of Flash. There isn't even a good text editor or shell on there.
Well, the obvious improvement would be in connectivity. The iPad is a real pain to get files on and off (especially without iTunes), and even when jailbroken, the native apps just won't "see" photos or ogg files. Also, if it ran Linux, we could have ports of every single X application to run on it. So many possibilities!
Android tablets aren't bad - but Android doesn't run X - it's rather limiting that none of the native Linux stuff can run on Android. Interestingly, Maemo (Nokia's N900) could run the full platform - the result was really powerful.
There are very very many distros out there that exist as "respins" or "custom editions" which are basically debian + package-selection. For example, dyne:bolic, musix, ubuntu studio, kubuntu, ubuntu-gnome-remix. Why aren't they just published as: base-distro + package-repository + taskel (list of packages to apt-get) +
settings to change + (optionally) list of packages to remove?
I've never understood this - it hugely increases the maintainer workload, makes it harder to migrate (need to reinstall), makes it harder to try out, makes it harder to have a mixed system, and make it a real problem if the distro maintainer quits.
Perhaps someone can explain this to me, because I am truly puzzled.
Aside: yes, I recognise the advantage of, say, xubuntu (as a more minimal base-system), and I know that Kubuntu can be installed with "apt-get install kubuntu-desktop" - but why do most systems insist on clean-install from ISO as the primary (sometimes only) way to install them?
What puzzles me is why nobody has ported Linux to the iPad. Dualboot android, or even something like maemo/meego would be excellent.
If I were Samsung at this point, I think I'd be sponsoring that kind of project!
Linux open-source drivers work extremely well: if your driver is open source, and in-tree, then any kernel dev who breaks the internal ABI is responsible for fixing all drivers that call it. So, for example, if an internal function gains an extra argument, it will be fixed across the entire tree. This gives huge flexibility, and allows Linux to evolve rapidly (for example, the USB subsystem is now on iirc its 4th major version).
The price we pay for this is a slight extra amount of work for manufacturers who write closed-source out-of-tree blobs. In your example, PowerVR should have worked with the kernel guys (who are very helpful) to get their driver in-tree - then it would work for many years to come.
If the kernel had a stable ABI, it would make life much harder for the kernel devs, in order to make it easier for the blob-writers. Why would that be a good tradeoff?
It's probably a fair bet that, even in the days of DOS, you had a decent keyboard on which to type. Even the VT100-era machines (pre arrow-keys) were preferable to a soft-keyboard that takes up half the screen.Of course you can get a keyboard adapter for the iPad, but then you might as well have a real laptop.
I was given an iPad3, which I managed to jailbreak. Nevertheless, the device is pretty useless: I'f I'm on the move, I have a smartphone. If I'm travelling and needing to seriously work, I take a laptop. If at home, I have a desktop. There's no situation in which the iPad is the preferred tool for the job. That *might* change if we could run a decent window manager on it, do proper multi-tasking, plug in a USB keyboard (the iPad3 only supplies 20mA, not enough). We's also need proper support for rooted iPads: for example, I can transfer my photos onto the device by scp, but iPhoto won't actually "see" them even if I put them in the right directory.
My suggestion would be:
0. Do consider writing this yourself...a 100 line shell-script (carefully written and documented) may well be easier to debug than a complex off-the-shelf system.
1. You can easily identify the disks with eg /dev/disk/by-uuid/ which, combined with some udev rules, will make it easy to identify which filesystem is which, even if the disks are put into different caddys. [Note that all SATA drives are hot-swap/hot-plug capable: remember to unmount, and to connect power before data; disconnect data before power; observe precautions with static, with cable-lengths, and don't break the connectors (which have limited life-cycles) ] You shouldn't need to reboot.
2. Consider just trying the trees together with symlinks (Use "find" to recurse, then ln -s"). Unless you have many tens of thousands of small files, this will work remarkably well, especially if the disk that holds the symlinks is fast and has a sensible filesystem; you could even make it a ramdisk.
[Personally, I've been bitten by unionfs systems, and I'm a little wary of them. They break in weird ways]
3. Unless you have a good reason to do otherwise, install the latest Ubuntu LTS release (Precise Pangolin 64). I recommend you install {L,X}ubuntu as a base, rather than the pure-server edition or the full gnome/kde systems, because it gives you a minimal environment, but with X installed: no unwanted services, but you don't have to begin from a 80x25 terminal! You can just "apt-get install ubuntu-desktop" to convert to the full version if you need to.
Just double-check your BIOS: are you using the SSDs in the SATA native (AHCI) mode, or the old fashioned IDE mode? Also, are you using a SATA II (or III) rather than SATA I port? Remember that SSDs shine on random reads and writes: if you try to benchmark with something like hdparm -tT. you won't see much improvement.
The Integral Fast Reactor (and various other Generation IV designs) have solved this problem. We even built (most of) a prototype. Let's just build some already.
I don't think that's true. After all, cows are really quite hard to handle: the milking machinery alone is more complex than the bioreactor would be. Cows produce huge amounts of methane too, and require vet treatment, food year round, lots of space, and incur the useless overhead of bulls. Milk production is erratic, and cannot be quickly scaled up and down as demand fluctuates.
Depends on the rate of change. If meat prices simply rise above inflation for 20 years, nobody is likely to even notice.
Personally, I find soy-milk most unpleasant. Almond milk is rather delicious, but not really a substitute (it's basically marzipan in solution) - and much more expensive to make. I think we should be able to synthesise something very similar to cow's milk, with similar nutritional and culinary properties... only without the cow.
I've always wondered why we use cows to generate milk. Given that most of milk is relatively simple (water, sugars, chalk, oil), why can't we have bioreactor into which we put grass-clippings, and get out something roughly similar to milk?
The need for adding protein, and some kinds of vitamins might be moderately tricky, but I should think that this wouldn't matter for many applications. The only thing that would require the full complexity of real milk would be in making (good quality) cheese. This would also appeal to vegans, some vegetarians, and many people with lactose intolerance.
No it doesn't. They'll just have to turn (mostly) vegetarian. Meat isn't a requirement for a balanced diet.
Seems to me that this is a very serious violation of the spirit of the antitrust rulings when MS killed netscape. Why aren't our consumer protection agencies stepping in to forbid MS from doing this?
I once was given a drive to repair that had probably been dropped. It wouldn't even spin up. The owner wasn't willing to pay $500 for recovery, and asked me to just do anything possible. So, I carefully removed the lid (no dust precautions!) and tried to rotate the platter by hand - it wouldn't go, because the head had physically stuck to it. With the careful application of brute force, I was able to free it, and to my amazement it actually worked. Then the use of dd_rescue was able to recover almost all the data!
I recommend the self-documenting approach. You already have to map name and MAC in dhcpd.conf (assuming you use DHCP reservations), so just put some extra comments in there (what the device actually is). That way you can be fairly sure that the docs will remain in sync with reality. However, that approach only works for relatively small networks.
In general, avoid the "split brain" approach where you have independenytly generated documentation AND config files. Make one generate the other.
I hope Firefox doesn't try this trick. Although it doesn't need to use > 4GB, it does need support for leaking more than that. I have an 8GB swap partition, mostly to stop firefox crashing more than once a week!
I don't understand Oracle's position here.Surely all they have to do is compile the latest release of their software with the relevant compiler options?
Thanks to X, you can kill the desktop, window-manager and taskbar, and start another WM/DE without even closing your applications. X makes this really easy. (For example, "metacity --replace").
Fortunately, you don't have to stick with a single DE. For example, start with xfce (window manager and panel), then mix-and match GTK/QT/other applications (kwrite + firefox + vlc), add extra services (xscreensaver), and configure the rest with xbindkeys/xinput/xmodmap. All window-managers work the same way (you can even script with devilspie). Most panel applets are interchangeable.
But I do wish that the desktop developers would get version N working perfectly and polished before starting to work on version N+1 (which is completely unrelated).
It's always annoyed me that to declare a pointer to int, we write:
int *x;
which means "let x be that thing which, when de-referenced, is an integer" or more briefly "(*x) is an int".
[Anyone who thinks that it is really "int* x" (note the spacing) should consider what happens with "int* x,y" ]
So, let's have an explicit pointer declaration. I propose:
"&int x"
meaning "x is a variable of type address-of-integer".
I don;t think you can argue that Linux's design is fundamentally poorly done...the USB subsystem for example was originally written for USB 1.0 devices (basically mice, keyboards and serial ports); usb 2.0 and 3.0 didn't even exist then. The redesign for 3.0 changed the implementation of 1.0, as did all the power-management stuff for laptops. Yes, other OSes can cope, but Linux can go one better!
Also, I don't buy your argument about not always having access to a compiler: everyone does: I'm not arguing that the end user should recompile (though they can), but that it's easy enough for the person doing the porting.
You also rather miss the point about syscalls: there are plenty of things that would ideally be changed - but it's impractical to do so, because it would need a coordinated change across *all* of thousands of different userspace programs, run by different projects - and a coordinated deployment across millions of machines. However, keeping the kernel drivers synchronised and updated in parallel is easy: they're all in the same git tree.
There's a couple of points here.
1. Should the driver API be stable? Usually not: a long term stable API means that it's hard to make changes when necessary. For example, the Linux USB subsystem has been substantially re-written 4 times. This is never a problem, because when someone changes the kernel API, they also are responsible for updating all drivers in the tree that are affected by it. It means that Linux's USB support isn't hamstrung by lots of legacy cruft.
2. Should the ABI be stable? No. This breaks pretty much every time the kernel is compiled. The solution: recompile the drivers.
The only problem is that Nvidia don't want to play by Linux's rules: they want to ship a binary, rather than source driver. The result is that Nvidia (and nobody else) gets snarled up on the API/ABI policy which works exceptionally well for all the open-source kernel drivers.
The argument for a stable ABI is rather like the (claimed) USP of Java: write once, run anywhere. The thing is, if you can recompile on your target platform, that advantage disappears. Why would anyone care about binary compatibility if they can have source-compatibility?
Aside: there is a very different logic with the Posix (system-call) API between userspace and kernel space. This means that, for example, fopen() works exactly the same way now that it did 20 years ago.