Back on Linux (after one year of Apple and OS X)(dywypi.org)
dywypi.org
Back on Linux (after one year of Apple and OS X)
http://dywypi.org/2012/02/back-on-linux.html
321 comments
Last July I bought one of the new Macbook Air's. The price for the hardware you got was unbeatable, and that was ignoring build quality! While previous Air's were anemic tarted up netbooks, the 2011 Air's were (and are) powerful enough for everyday use.
There was just one problem with the Air however. Horrible Linux support. I'd been using Kubuntu happily for years. After looking at all the ugly dirty hacks people were using to get their Air's running, I decided to give OSX a trial for 6 months or so. Long enough for Linux support to mature. I hadn't used OSX since the early 2000's and it looked like the OS had come a long way. To be precise, what really changed my mind was how far the OSX modding community had come. Despite being hated and loathed by Apple, they had managed to fill in some of the gaping holes in core functionality that Apple philosophy forbade, such as a way to remap keys (in all applications, not just some). I could finally remap the Apple key to something that didn't break my touch-typing habits on all the other OS's I use daily!
6 months later, I'm ready to jump ship. I like OSX Lion's touchpad gestures, but beyond that, I'll miss little else about the OS. OSX isn't bad mind you, but it's infuriatingly difficult to modify when it does something you don't like. It's buggy. It's actually pretty dated and ugly looking now too. OSX's virtual desktop management has absolutely nothing on KDE's.
Unfortunately, just as the next version of Kubuntu was starting to look like a good one for the Air, Canonical announced that they are ceasing paid development of Kubuntu. My favorite KDE distro is now officially on deathwatch. Maybe it will live on with community support, like any other distro has to, or maybe it'll fall by the wayside. I appreciate what Canonical is trying to do with Unity, but it's not for me. I'd long felt like Kubuntu, despite it's many virtues, was being treated like a red-headed step-child. This tears it. I haven't decided what distro I'm going to yet, but it will be one that puts KDE first, and that rules out anything Ubuntu.
There was just one problem with the Air however. Horrible Linux support. I'd been using Kubuntu happily for years. After looking at all the ugly dirty hacks people were using to get their Air's running, I decided to give OSX a trial for 6 months or so. Long enough for Linux support to mature. I hadn't used OSX since the early 2000's and it looked like the OS had come a long way. To be precise, what really changed my mind was how far the OSX modding community had come. Despite being hated and loathed by Apple, they had managed to fill in some of the gaping holes in core functionality that Apple philosophy forbade, such as a way to remap keys (in all applications, not just some). I could finally remap the Apple key to something that didn't break my touch-typing habits on all the other OS's I use daily!
6 months later, I'm ready to jump ship. I like OSX Lion's touchpad gestures, but beyond that, I'll miss little else about the OS. OSX isn't bad mind you, but it's infuriatingly difficult to modify when it does something you don't like. It's buggy. It's actually pretty dated and ugly looking now too. OSX's virtual desktop management has absolutely nothing on KDE's.
Unfortunately, just as the next version of Kubuntu was starting to look like a good one for the Air, Canonical announced that they are ceasing paid development of Kubuntu. My favorite KDE distro is now officially on deathwatch. Maybe it will live on with community support, like any other distro has to, or maybe it'll fall by the wayside. I appreciate what Canonical is trying to do with Unity, but it's not for me. I'd long felt like Kubuntu, despite it's many virtues, was being treated like a red-headed step-child. This tears it. I haven't decided what distro I'm going to yet, but it will be one that puts KDE first, and that rules out anything Ubuntu.
I don't even know where to start with the author's complaints about the memory model. Inactive memory is not "memory from a recently used app". Inactive is just like active memory. It is not unused memory. Inactive memory is memory that has not been accessed recently and will therefore be swapped to disk first. Just like active memory, it can be be freed immediately if it has not been modified (eg. a memory mapped file, or a local copy of some shared memory), but if it has been modified, it must be paged to disk because otherwise data would be lost.
All the purge command and "Repair permissions" do is swap out lot's of memory. But this is not unused memory. This memory will likely be paged in again sooner or later. It does not help much if you simply have too little memory. That's why the author claims he has to run the commands again and again. But the problem is not the broken memory management system. The author simply has too little RAM.
Which leaves the question: Why does Mac OS need more RAM than Linux?
Well, there's the simple fact that there is much more stuff running in the background on Mac OS. You have automatic indexing of every file on your hard drive and file system monitoring. Try downloading an app that opens some file type. The moment it is unzipped, the Finder automatically uses it to open supported files.
Then you have an automatic version control and backup system running in the background, for every single file on your hard disk (Time Machine). Additionally, many Mac apps aggressively cache data in memory. Take iTunes. You can scroll lag-free through music libraries with tens of thousands of songs and their album artwork, and filter them instantly.
These things use up RAM. Lot's of it. And that's why you can't run 3 VMs on your Mac if you only have 4GB.
If you don't want the extra features / bloat of Mac OS please go ahead and use Linux. But don't write a completely ignorant piece about how you think the memory management model in Mac OS is broken without reading the real docs: https://developer.apple.com/library/mac/documentation/Perfor...
All the purge command and "Repair permissions" do is swap out lot's of memory. But this is not unused memory. This memory will likely be paged in again sooner or later. It does not help much if you simply have too little memory. That's why the author claims he has to run the commands again and again. But the problem is not the broken memory management system. The author simply has too little RAM.
Which leaves the question: Why does Mac OS need more RAM than Linux?
Well, there's the simple fact that there is much more stuff running in the background on Mac OS. You have automatic indexing of every file on your hard drive and file system monitoring. Try downloading an app that opens some file type. The moment it is unzipped, the Finder automatically uses it to open supported files.
Then you have an automatic version control and backup system running in the background, for every single file on your hard disk (Time Machine). Additionally, many Mac apps aggressively cache data in memory. Take iTunes. You can scroll lag-free through music libraries with tens of thousands of songs and their album artwork, and filter them instantly.
These things use up RAM. Lot's of it. And that's why you can't run 3 VMs on your Mac if you only have 4GB.
If you don't want the extra features / bloat of Mac OS please go ahead and use Linux. But don't write a completely ignorant piece about how you think the memory management model in Mac OS is broken without reading the real docs: https://developer.apple.com/library/mac/documentation/Perfor...
After two decades of Unix use, in 2000 I switched to Apple and OSX - the only reason I considered it was because of the design of the Titanium Powerbook, which I saw in those days as an amazing piece of hardware design, which - amazingly - gave me a Unix workstation in a fantastic portable package. I simply couldn't believe that Apple, of all people, were delivering what I'd wanted for years - a smart, functional, fully working Unix workstation in a portable format.
So I was very happy for a year or two, and am now on my 4th Macbook Pro. The Macbook Pro (17") has come to represent everything that I desired in the 80's and 90's for a Unix workstation.
But: only because I'm running Linux on it. Mac OSX, sure, has its time and place - but when it comes to putting the power of this amazing bit of hardware to good use, nothing beats having a proper Linux distribution onboard. Proper memory management, proper user security model, proper levels of abstraction between a user program and a system service, and so on. Its simply an amazing bit of gear, now that I've set it up right.
Oh, though .. how I wished SGI had gone a different path, and released their Indy laptop to great fanfare. How I wish they hadn't been usurped by Microsoft, it would be so, so nice to have an SGI laptop in the 21st Century ..
So I was very happy for a year or two, and am now on my 4th Macbook Pro. The Macbook Pro (17") has come to represent everything that I desired in the 80's and 90's for a Unix workstation.
But: only because I'm running Linux on it. Mac OSX, sure, has its time and place - but when it comes to putting the power of this amazing bit of hardware to good use, nothing beats having a proper Linux distribution onboard. Proper memory management, proper user security model, proper levels of abstraction between a user program and a system service, and so on. Its simply an amazing bit of gear, now that I've set it up right.
Oh, though .. how I wished SGI had gone a different path, and released their Indy laptop to great fanfare. How I wish they hadn't been usurped by Microsoft, it would be so, so nice to have an SGI laptop in the 21st Century ..
I've had a few Apple machines over the years (mainly as test machines and toys). I've had two MacBooks, one MacBook Pro, an iMac and a couple of Mac Minis. I have nothing now other than a cheap second hand desktop PC (and some cash in pocket!):
I agree with the build quality - they are good quality as in good materials and good fit. However, with my EE cap on, the designs themselves are bad and are quite dangerous. When there is literally that amount of LiPoly cells sitting inside a chassis, you want to be able to isolate the power. One bit of water in it and it's effectively an incendiary device. I've seen one recent MacBook Pro (pre-thunderbolt) go up with my own eyes quite spectacularly and wouldn't want something you can't drop the cells out of rapidly if you inevitably pour your coffee in it.
With regards to the software, I found the OSX environment inconsistent and XCode absolutely terrible. The OSX environment is inconsistent from the "task focused" application designs that you see. Every shipped application has its own set of behaviours and pretty much ignores a common standard resulting in head scratching. The keyboard shortcuts system is horrid and doing anything without the trackpad is hard work. XCode was just a mismash of concepts thrown together badly. As a comparison point, Visual Studio is a lot more mature and consistent and that is saying something.
The whole Apple/OSX ecosystem is a good attempt but it's not good enough for the money on the basis that some of the fundamentals are flawed. I'd actually throw more money behind Microsoft at the moment as they are heading in what I percieve to be the right direction. Apple started at a good point and have got worse. Microsoft started at a bad point and are getting better.
TBH however, the best OS/hardware ecosystem I've come across so far was SunOS4 and Sun4 architecture in the early 90s.
I agree with the build quality - they are good quality as in good materials and good fit. However, with my EE cap on, the designs themselves are bad and are quite dangerous. When there is literally that amount of LiPoly cells sitting inside a chassis, you want to be able to isolate the power. One bit of water in it and it's effectively an incendiary device. I've seen one recent MacBook Pro (pre-thunderbolt) go up with my own eyes quite spectacularly and wouldn't want something you can't drop the cells out of rapidly if you inevitably pour your coffee in it.
With regards to the software, I found the OSX environment inconsistent and XCode absolutely terrible. The OSX environment is inconsistent from the "task focused" application designs that you see. Every shipped application has its own set of behaviours and pretty much ignores a common standard resulting in head scratching. The keyboard shortcuts system is horrid and doing anything without the trackpad is hard work. XCode was just a mismash of concepts thrown together badly. As a comparison point, Visual Studio is a lot more mature and consistent and that is saying something.
The whole Apple/OSX ecosystem is a good attempt but it's not good enough for the money on the basis that some of the fundamentals are flawed. I'd actually throw more money behind Microsoft at the moment as they are heading in what I percieve to be the right direction. Apple started at a good point and have got worse. Microsoft started at a bad point and are getting better.
TBH however, the best OS/hardware ecosystem I've come across so far was SunOS4 and Sun4 architecture in the early 90s.
I prefer Linux over OS X as well. The OSX userland is a strange mixture of GNU and BSD tools in sometimes ancient versions. OSX has a UNIX certification but there are some bugs in their POSIX API or even missing functions like clock_gettime. Linux seems more POSIX compliant.
The OSX package managers suck. I tried fink, macports, and homebrew. A lot of packages are simply broken especially now after Apple switched to clang. You end up in all kinds of weird situations. A friend of mine recently wanted to install Octave and gnuplot with homebrew and it took him several days until he gave up.
It's hard to get help with problems in OSX. This might have been improved. But back when I started using OSX in 2005/6 it was really bad. It was rare to find people with a good knowledge of the deeper layers of OSX. It was a complete different culture than Linux or even Windows. Maybe that has improved now that OSX is much more popular.
And it feels like Apple is more and more ignoring the UNIX folks.
The OSX package managers suck. I tried fink, macports, and homebrew. A lot of packages are simply broken especially now after Apple switched to clang. You end up in all kinds of weird situations. A friend of mine recently wanted to install Octave and gnuplot with homebrew and it took him several days until he gave up.
It's hard to get help with problems in OSX. This might have been improved. But back when I started using OSX in 2005/6 it was really bad. It was rare to find people with a good knowledge of the deeper layers of OSX. It was a complete different culture than Linux or even Windows. Maybe that has improved now that OSX is much more popular.
And it feels like Apple is more and more ignoring the UNIX folks.
I agree with the author: Apple has by far the best hardware in the PC business -- here's a great example of the extremes they go to in order to manufacture superior machines: http://www.businessweek.com/magazine/apples-supplychain-secr...
Alas, Apple's #1 target user is not the developer; it's Aunt Tillie. And this shows in the choices they make for OS X.
IMO Linux distributions have vastly superior software installation and management tools because they had to evolve them in order to survive and thrive in the wilds of the Internet. There has never been an 'Apple Store' with a 'Genius Bar', so to speak, for Linux users.
I agree with the author that Debian and its derivatives, like Ubuntu, have perhaps the best software-management tool on earth: apt-get. The damn thing is fast, and in my experience never breaks anything -- the system is always kept in a consistent state. (My experience with other software management tools -- particularly RedHat's yum -- has been less than 100% trouble-free.)
Alas, Apple's #1 target user is not the developer; it's Aunt Tillie. And this shows in the choices they make for OS X.
IMO Linux distributions have vastly superior software installation and management tools because they had to evolve them in order to survive and thrive in the wilds of the Internet. There has never been an 'Apple Store' with a 'Genius Bar', so to speak, for Linux users.
I agree with the author that Debian and its derivatives, like Ubuntu, have perhaps the best software-management tool on earth: apt-get. The damn thing is fast, and in my experience never breaks anything -- the system is always kept in a consistent state. (My experience with other software management tools -- particularly RedHat's yum -- has been less than 100% trouble-free.)
My first reaction was "Linux developer prefers developing Linux software on Linux - News at 11".
However, I suppose there is more to it than that. The issue is that the fact OSX is Unix under the hood is merely an implementation detail and always has been. I'd much prefer it if Apple used a solid, up to date Linux distro under the hood, but they don't. To me using the Unix system in OSX feels a bit like using Cygwin on Windows.
Conversely with modern virtualisation software, you can have your cake and eat it. I use OSX to run desktop and media apps, at which it excels, and have Linux and Windows 7 running in VMs. Perhaps not good enough if you're doing resource intensive stuff like heavy duty compiles on your Linux system, but for my purposes it works very well. It has the added advantage that if I hack around with the VMs and something goes wrong, I can usually revert to a recent VM checkpoint.
However, I suppose there is more to it than that. The issue is that the fact OSX is Unix under the hood is merely an implementation detail and always has been. I'd much prefer it if Apple used a solid, up to date Linux distro under the hood, but they don't. To me using the Unix system in OSX feels a bit like using Cygwin on Windows.
Conversely with modern virtualisation software, you can have your cake and eat it. I use OSX to run desktop and media apps, at which it excels, and have Linux and Windows 7 running in VMs. Perhaps not good enough if you're doing resource intensive stuff like heavy duty compiles on your Linux system, but for my purposes it works very well. It has the added advantage that if I hack around with the VMs and something goes wrong, I can usually revert to a recent VM checkpoint.
Inactive memory is not an OS X specific, and it's actually implemented in a number of other OSes, including FreeBSD.
> when it's on disk, it definitely is not made active quickly.
If an application is unloaded then many operations need to be taken to initialize stuff, reading the disk for various stuff, processing some data, allocating memory (which will be zeored out, then initialized with whatever struct and data the program needs)
If an application memory is swapped, then reactivating that memory consists of:
1. paging memory back in RAM
2. there is no step two
Paging is key, as it means the data is in a format efficiently readable and that can be put back in memory at a very reduced cost. Compare this to reading random files entrenched in a filesystem and scattered on a disk, plus doing some more processing.
> First usually freed around 200MB of memory
Out of 4GB. Wow, what an incredible improvement! Pardon me while I go write a cron entry running that command every minute so that my system can stay in good shape!
> When arriving to work the first thing was to hit repair disk permissions
This is absolutely astonishing. Seriously, Repair Permissions is a glorified ch{mod,own} -R. Quiz time! Why do you thing it reduces the 'Inactive Memory'? Because it's hitting the disk. Hard. Actually every system file gets hit. And in doing so, those files make their way into the cache and the Inactive Memory gets properly evicted. So the supposedly non-functional memory management turns out to be perfectly functional after all.
> And of course this does not support installing Python, Ruby, Perl on any other software that has its own way of distributing software.
which is bullshit (although there's no Perl).
Apparently the author wants python/ruby/perl packages provided by the package manager, which might just be a bad idea given how bad the status of those packages is in Debian. One would be much better served with pip+virtualenv and rbenv/rvm+bundler.
There's a brew-pip if you really want to integrate
> And in case you mix up MacPorts and homebrew, you're deeply screwed.
How so? they live in completely different directory trees. As long as you don't screw up your PATHs or something they're oblivious to each other. I've had them living side by side for some time before dropping MacPorts without any issues.
> working command line tools
As for compile time, it's hardly a problem as Homebrew mitigates that (contrary to MacPorts) by not duplicating every library already available in the OS. Besides, the system (much like ABS on ArchLinux) is made to make you writing your own packages or tweaking an existing one a straightforward affair. Compare to creating a .deb properly, which is, ahem, non-trivial. Yes, it would be faster not building stuff (like Arch which brings the best of both worlds together) but hosting binary packages has a cost that skyrockets as you have more users (plus one would need to make binary builds for the various OSX versions, a problem that simply doesn't exist). What's more, having software compiled from the 'original' source instead of third party is interesting in a number of ways, including running vanilla software instead of the heavily patched ones of Debian.
I'm glad the author has found a place for him but going on such an uninformed rant is unfair.
> when it's on disk, it definitely is not made active quickly.
If an application is unloaded then many operations need to be taken to initialize stuff, reading the disk for various stuff, processing some data, allocating memory (which will be zeored out, then initialized with whatever struct and data the program needs)
If an application memory is swapped, then reactivating that memory consists of:
1. paging memory back in RAM
2. there is no step two
Paging is key, as it means the data is in a format efficiently readable and that can be put back in memory at a very reduced cost. Compare this to reading random files entrenched in a filesystem and scattered on a disk, plus doing some more processing.
> First usually freed around 200MB of memory
Out of 4GB. Wow, what an incredible improvement! Pardon me while I go write a cron entry running that command every minute so that my system can stay in good shape!
> When arriving to work the first thing was to hit repair disk permissions
This is absolutely astonishing. Seriously, Repair Permissions is a glorified ch{mod,own} -R. Quiz time! Why do you thing it reduces the 'Inactive Memory'? Because it's hitting the disk. Hard. Actually every system file gets hit. And in doing so, those files make their way into the cache and the Inactive Memory gets properly evicted. So the supposedly non-functional memory management turns out to be perfectly functional after all.
> And of course this does not support installing Python, Ruby, Perl on any other software that has its own way of distributing software.
which is bullshit (although there's no Perl).
$ brew install python
even gives you a distribute's easy_install out of the box. You can install Ruby the same way (and since it's 1.9 it includes rubygems) but I'd recommend using rbenv+ruby-build, which is also in the package list.Apparently the author wants python/ruby/perl packages provided by the package manager, which might just be a bad idea given how bad the status of those packages is in Debian. One would be much better served with pip+virtualenv and rbenv/rvm+bundler.
There's a brew-pip if you really want to integrate
> And in case you mix up MacPorts and homebrew, you're deeply screwed.
How so? they live in completely different directory trees. As long as you don't screw up your PATHs or something they're oblivious to each other. I've had them living side by side for some time before dropping MacPorts without any issues.
> working command line tools
$ brew install coreutils
But I'd hardly describe BSD utils as non-working (hint: I did not install coreutils yet I spend my days on the command line).As for compile time, it's hardly a problem as Homebrew mitigates that (contrary to MacPorts) by not duplicating every library already available in the OS. Besides, the system (much like ABS on ArchLinux) is made to make you writing your own packages or tweaking an existing one a straightforward affair. Compare to creating a .deb properly, which is, ahem, non-trivial. Yes, it would be faster not building stuff (like Arch which brings the best of both worlds together) but hosting binary packages has a cost that skyrockets as you have more users (plus one would need to make binary builds for the various OSX versions, a problem that simply doesn't exist). What's more, having software compiled from the 'original' source instead of third party is interesting in a number of ways, including running vanilla software instead of the heavily patched ones of Debian.
I'm glad the author has found a place for him but going on such an uninformed rant is unfair.
I was considering going the other way - but after reading this, maybe I'll stick where I am.
--
One thing that does seem a bit odd:
>"I'm a long time Ubuntu user, but this time I decided to go with Debian. Why? Mostly because our servers are Debian and because latest updates of Ubuntu have mostly focused on breaking the desktop environment."
vs.
> "Do I miss something? Sure. Even though Linux in modern times mostly works out of the box, there's still slight issues with external displays, for example I can't set the 30" Dell monitor at work to be the only display without doing some xrand magic. I guess that's really the only thing I'm missing from OS X, a sane and automatic way of handling external displays."
I'm a bit sick of hearing this meme perpetuated. Give Unity a chance ... in fact, the author's main gripe about Debian is resolved in a really fluid way by Ubuntu + Unity. I think Unity's multi-monitor support is one reason why it's worth sticking with.
--
One thing that does seem a bit odd:
>"I'm a long time Ubuntu user, but this time I decided to go with Debian. Why? Mostly because our servers are Debian and because latest updates of Ubuntu have mostly focused on breaking the desktop environment."
vs.
> "Do I miss something? Sure. Even though Linux in modern times mostly works out of the box, there's still slight issues with external displays, for example I can't set the 30" Dell monitor at work to be the only display without doing some xrand magic. I guess that's really the only thing I'm missing from OS X, a sane and automatic way of handling external displays."
I'm a bit sick of hearing this meme perpetuated. Give Unity a chance ... in fact, the author's main gripe about Debian is resolved in a really fluid way by Ubuntu + Unity. I think Unity's multi-monitor support is one reason why it's worth sticking with.
Is there anyone who got Linux to work full on a Macbook or MB Pro? I get most flavors of Linux to boot and get a nice X running, however, things I cannot miss like the touchpad control, screen backlight controls and keyboard backlight are completely not working. Also the battery is falling faster than my Android under Linux.
Is there any Linux working well? I have no problem with tweaking (I hacked on device drivers on previous laptops when they didn't work), but even with tweaking I never managed to get it working well. Otherwise I can have nice Apple hardware with my favorite OS....
Is there any Linux working well? I have no problem with tweaking (I hacked on device drivers on previous laptops when they didn't work), but even with tweaking I never managed to get it working well. Otherwise I can have nice Apple hardware with my favorite OS....
Regarding hardware quality:
"...why there's no PC manufacturers that would
have the same overall quality of the hardware."
In my experience, business ThinkPads beat MacBooks by a mile for working (e.g. programming). I am surprised to see so many coders use MacBooks. Thinkpads have better ergonomics, are more robust and better performance/configurable hardware (e.g. RAM).I think the bottom line is that the author is used to working with Debian and thus perceives differences between OS X and Debian as bugs.
It is true that jumping between Linux and OS X can be difficult at times. It's also true that Debian's packaging system is better than OS X's.
It is true that jumping between Linux and OS X can be difficult at times. It's also true that Debian's packaging system is better than OS X's.
On the memory side of things (in Linux)
RAM is cheap, buy 32GB or whatever your machine can support.
Once you have a large amount of memory set /proc/sys/vm/swappiness to a low number like 10 (sysctl -w vm.swappiness=10)
if you want to free up memory because some application was eating it up run
sync; echo 3 > /proc/sys/vm/drop_caches
I rarely if ever have to do this, but it helps to know if you need to do it.
I run Debian/KDE and Kubuntu and it's a fantastic setup. Setting up multiple monitors (I have 2 27" monitors) is a breeze with twinview using kde's systemsettings program. Some xorg optimization tips Option "UseEvents" "On" Option "RenderAccel" "O" in your xorg.conf file under device will speed things up even more
I run all the other os's in virtualbox, its fast (windowsX boot time is about 2 seconds, osx takes a bit longer), and you can even do some 3D stuff, though I don't play any games so I have no idea if those work.
Out of all the operating systems I've used over the past 21 years of working with computers I have found Linux to be the best fit for customization, speed, available software, ease of use, and friendly community. Though I did like vax/vms when I was a kid, I had a mouse! it was awesome :D.
Overall though I would say if your going to be doing development, especially in a server type environment, use Linux, osx was built for your average joe who doesn't know how to use a computer. Linux is usable by your average joe, but it goes beyond that so easily allowing for extreme customization on just about every facet of the operating system that you can imagine. I feel lost without my build, the nice thing is, I put it on a usb stick and I can use it on any computer, thankfully I have never had to do that :D.
And don't worry about KDE, We have a great community, and we'll keep it going. Its not about profitability, and that is what a lot of these business people seem to forget. We work on Linux because we love the system. Not because we get paid to work on it.
I run Debian/KDE and Kubuntu and it's a fantastic setup. Setting up multiple monitors (I have 2 27" monitors) is a breeze with twinview using kde's systemsettings program. Some xorg optimization tips Option "UseEvents" "On" Option "RenderAccel" "O" in your xorg.conf file under device will speed things up even more
I run all the other os's in virtualbox, its fast (windowsX boot time is about 2 seconds, osx takes a bit longer), and you can even do some 3D stuff, though I don't play any games so I have no idea if those work.
Out of all the operating systems I've used over the past 21 years of working with computers I have found Linux to be the best fit for customization, speed, available software, ease of use, and friendly community. Though I did like vax/vms when I was a kid, I had a mouse! it was awesome :D.
Overall though I would say if your going to be doing development, especially in a server type environment, use Linux, osx was built for your average joe who doesn't know how to use a computer. Linux is usable by your average joe, but it goes beyond that so easily allowing for extreme customization on just about every facet of the operating system that you can imagine. I feel lost without my build, the nice thing is, I put it on a usb stick and I can use it on any computer, thankfully I have never had to do that :D.
And don't worry about KDE, We have a great community, and we'll keep it going. Its not about profitability, and that is what a lot of these business people seem to forget. We work on Linux because we love the system. Not because we get paid to work on it.
I really can't understand bitching about memory in this day and age. First thing I do when getting a new machine is to max out the RAM. My Mac Pro has had 32 GB since 2008, iMac all have 16 GB and Macbooks 8 GB. It's such a cheap thing to do and it improves your daily life so much, it's essentially free in the end.
I must be missing something. Why waste 10 min running purge and repair disk permissions to retrieve memory when a restart is much faster???
I abandoned MacPorts for Homebrew. One feature I like is that I can build any package I want (that doesn't have a formula) with './configure --prefix=/usr/local/Cellar/name/version-no' and then do a 'brew link name' to make all the symbolic links or 'brew unlink name' to remove them. Helps solve annoying problems.
My main grump with MacOSX (still on Snow Leopard) compared to Linux is issues with 64 bit Python and MacOSX seems to store files all over the disk. Basically, if you want to work differently from the Steve Jobs Way, it takes a LOT of work. Couldn't agree more about the superior hardware quality.
I abandoned MacPorts for Homebrew. One feature I like is that I can build any package I want (that doesn't have a formula) with './configure --prefix=/usr/local/Cellar/name/version-no' and then do a 'brew link name' to make all the symbolic links or 'brew unlink name' to remove them. Helps solve annoying problems.
My main grump with MacOSX (still on Snow Leopard) compared to Linux is issues with 64 bit Python and MacOSX seems to store files all over the disk. Basically, if you want to work differently from the Steve Jobs Way, it takes a LOT of work. Couldn't agree more about the superior hardware quality.
I think this is mostly a case of someone who develops for Linux, but prefers to develop on his desktop instead of a development server that is close to the production environment. This results in requiring the desktop to be closer to that of the production environment. I think this is the main reason I've seen people switch away from having a Mac. Personally, I've always seen my desktop and laptop as a terminal and this approach has been working for me for 20 years now, it also allows me to not having to upgrade my desktop a lot or waste a chunk of my life fiddling with it.
>There are at least four different ways of installing software on OS X. Download a DMG image, drag the icon from there to Applications folder, run an installer, install stuff from Mac App Store or compile it yourself. There seems to be no standard way how to do this properly. Of course, being a software dev, I ended up using the last alternative a lot.
It sounds to me like the author expects OS X to be like Linux where its UNIX underlying is the centre point of the OS. That's true to some extend, however OS X abstracts a lot away so the user don't ever necessary to have touch the UNIX part of the package. Once you understands it that way, the way of "installing" software on OS X is reduced to 2 (plus 1) for most people.
One is drag and drop an icon into somewhere in your hard drive; which is not even "installing" since what you do is simply... copy it to your local disk. Installing applications via Mac App Store simply automates this (the plus 1 part). Another one is via PKG installer; if any app does this you should be alarmed that they're modifying your system, they're going to scattered files across your system, uninstalling this thing going to be nightmare, etc.
Once you stepped into UNIX land, you're on your own. It would be nice if Apple provide a central repository of packages, but then I have to worry about outdated packages (given the nature of Apple that avoid anything with GPL/GPLv3). Homebrew has already done a great job covering that.
It sounds to me like the author expects OS X to be like Linux where its UNIX underlying is the centre point of the OS. That's true to some extend, however OS X abstracts a lot away so the user don't ever necessary to have touch the UNIX part of the package. Once you understands it that way, the way of "installing" software on OS X is reduced to 2 (plus 1) for most people.
One is drag and drop an icon into somewhere in your hard drive; which is not even "installing" since what you do is simply... copy it to your local disk. Installing applications via Mac App Store simply automates this (the plus 1 part). Another one is via PKG installer; if any app does this you should be alarmed that they're modifying your system, they're going to scattered files across your system, uninstalling this thing going to be nightmare, etc.
Once you stepped into UNIX land, you're on your own. It would be nice if Apple provide a central repository of packages, but then I have to worry about outdated packages (given the nature of Apple that avoid anything with GPL/GPLv3). Homebrew has already done a great job covering that.
Everything is a tradeoff. There's so much more going on in Mac OS X (especially Lion) than a typical Linux distro that you are literally talking apples and oranges.
For my money, Mac OS X makes the right set of tradeoffs to give an overall good to great user experience, even at the command line. It gets enough of the right things correct that for a developer/hacker/tinkerer, they can take it from there and add whatever else they need.
For me, Vagrant (http://vagrantup.com/) has been amazingly useful. I can install any of the popular Linux distros and configure them anyway I want without worrying about Mac OS X's installed apps and libraries. A killer feature: because Mac OS X and VirtualBox share folders, I can still use all of my Mac OS X tools (editors, IDEs, whatever) with Linux. And thanks to Chef, I can spin-up specialized configurations in just minutes. Having access to apt-get is cool and all, but being able to create specialized, configured environments using Chef cookbooks is faster and way less error-prone.
All of this (and more) and I still get all of the benefits of Mac OS X native applications, superb driver support, etc. And all of this on 4MB 2009 MacBook Pro.
For my money, Mac OS X makes the right set of tradeoffs to give an overall good to great user experience, even at the command line. It gets enough of the right things correct that for a developer/hacker/tinkerer, they can take it from there and add whatever else they need.
For me, Vagrant (http://vagrantup.com/) has been amazingly useful. I can install any of the popular Linux distros and configure them anyway I want without worrying about Mac OS X's installed apps and libraries. A killer feature: because Mac OS X and VirtualBox share folders, I can still use all of my Mac OS X tools (editors, IDEs, whatever) with Linux. And thanks to Chef, I can spin-up specialized configurations in just minutes. Having access to apt-get is cool and all, but being able to create specialized, configured environments using Chef cookbooks is faster and way less error-prone.
All of this (and more) and I still get all of the benefits of Mac OS X native applications, superb driver support, etc. And all of this on 4MB 2009 MacBook Pro.
With regard to memory usage in OS X I have never had any issues with my current iMac. I have 8 GB of memory, and despite very heavy usage (Safari/Chrome/Firefox for browser testing, Coda as IDE, Tower for Git management, Skype, Terminal, iTunes, MySQL Workbench, occasionally MAMP) I rarely see any swap usage. Currently my swap used is 2 MB.
(I must say that I am still using Snow Leopard. I refuse to install Lion because it is pathetic compared to the much more efficient Snow Leopard. I have installed it on my other Mac machine and am not impressed.)
Interestingly the most memory hungry program on my computer is Chrome. It seems to spawn a ridiculously huge number of processes:
iTunes is the second worst offender: 300 MB. I have a pretty large library, but its not that large. Perhaps it does some very rigorous caching.
(I must say that I am still using Snow Leopard. I refuse to install Lion because it is pathetic compared to the much more efficient Snow Leopard. I have installed it on my other Mac machine and am not impressed.)
Interestingly the most memory hungry program on my computer is Chrome. It seems to spawn a ridiculously huge number of processes:
Google Chrome 137.9 MB
Google Chrome Helper 29.5 MB
Google Chrome Helper 7.7 MB
Google Chrome Renderer 123.5 MB
Google Chrome Renderer 36.7 MB
Google Chrome Renderer 46.8 MB
Google Chrome Worker 26.6 MB
Google Chrome Worker 26.2 MB
That's a grand total of 7 processes and over 400 MB of memory for just three tabs. As much as I love Google Chrome its a little ridiculous.iTunes is the second worst offender: 300 MB. I have a pretty large library, but its not that large. Perhaps it does some very rigorous caching.
That's a pretty self-indulgent rant. I've got nothing against the ultimate decision by any means, but that decision is being rationalized -- and rationalized poorly.
8GB of RAM costs $39. If the OPs time is worth so little that they'd rather stew for 5-10 minutes every day waiting for repair permissions to finish, then that's simply their choice. FWIW, I haven't done anything like that on my 4GB MB Air since I bought it, and it almost never gets rebooted. Granted the SSD makes VM usage a lot more transparent, but still...
The software installation comment displays a lack of understanding of what's going on with the App Store; e.g., it's new, things are still ramping up, etc.
As an aside, my 2-cents to anyone new to the platform is to stay away from MacPorts. It does things just differently enough to make future updates (outside of what they provide, or before they get around to providing it) a potential time-sink to sort out. Not worth it to me; it's easy enough to build what you need, and there are plenty of places for excellent guidance.
8GB of RAM costs $39. If the OPs time is worth so little that they'd rather stew for 5-10 minutes every day waiting for repair permissions to finish, then that's simply their choice. FWIW, I haven't done anything like that on my 4GB MB Air since I bought it, and it almost never gets rebooted. Granted the SSD makes VM usage a lot more transparent, but still...
The software installation comment displays a lack of understanding of what's going on with the App Store; e.g., it's new, things are still ramping up, etc.
As an aside, my 2-cents to anyone new to the platform is to stay away from MacPorts. It does things just differently enough to make future updates (outside of what they provide, or before they get around to providing it) a potential time-sink to sort out. Not worth it to me; it's easy enough to build what you need, and there are plenty of places for excellent guidance.
These complaints about OSX, esp. installing software, match my problems exactly. I'm a programmer and programme lots. It Just Works™ on Linux with a proper package manager.
I recently went back to GNU/Linux (Ubuntu). This was after a three year stint on OSX though. OSX is good for people who don't like to tweak. I'm much happier with my Ubuntu laptop than I was with my Macbook, now I have it set up how I like. I'm generally happier using free software anyway.
I can only applaud the author for switching to Linux. Developers using Linux will develop for Linux and we will all be better off. What exactly reasons are, are of less importance.
I really tried several times to switch completely and it's not easy. My bigest gripe is that even with graphics acceleration firefox and chrome are still sluggish in certain aspects and also productivity shortcuts are missing on linux. I tried different flavors and just couldn't make things work. It can't be my everyday machine yet.
If someone would make distribution focused on developers, that would be the best things that happened to linux. Do I really need to install git as package and get stupid office packaged? Zsh and gvim and emacs out of the box.
I really tried several times to switch completely and it's not easy. My bigest gripe is that even with graphics acceleration firefox and chrome are still sluggish in certain aspects and also productivity shortcuts are missing on linux. I tried different flavors and just couldn't make things work. It can't be my everyday machine yet.
If someone would make distribution focused on developers, that would be the best things that happened to linux. Do I really need to install git as package and get stupid office packaged? Zsh and gvim and emacs out of the box.
I run Debian unstable on a quad-core T520 since our servers run Debian testing and everything Just Works, but most of the developers in my shop run Mac OSX and they have endless it's-not-quite-Linux problems: installing MySQL fails because the build thought that it was a fat binary or that it was 32-bit-but-the-libraries-were-64-bit; Mac OSX system paths are kinda weird; or homebrew installed a binary in a bizarre directory.
I can't help but wonder: since all the WMs are adopting Apple's desktop experience, are the multi-touch gestures worth the minor-but-frustrating lack of compatibility? I use Gnome3 and, while I complain about X,Y or Z, it's basically the same as Mac OSX.
I can't help but wonder: since all the WMs are adopting Apple's desktop experience, are the multi-touch gestures worth the minor-but-frustrating lack of compatibility? I use Gnome3 and, while I complain about X,Y or Z, it's basically the same as Mac OSX.
To me, the three major operating platforms are tools that all have strengths and weaknesses. In the same way that I wouldn't use my nice chisels to loosen a laptop screw, I wouldn't use a MacBook for writing code for our Linux infrastructure. I am more efficient doing that work on Linux itself.
At the same time, I shoot photos and video, and do some writing to take a break from IT. I've tried doing that work using the included tools on all three platforms. I find the Mac platform the most efficient and trouble-free for that work. Linux is second, but is frustrating at times - especially regarding video.
At work, even though we have a heterogenous server environment, we communicate using Office and SharePoint. Also the wireless network seems to work best with Windows. Thus, at work I use Windows 7 with PuTTY, Gnu Screen, and several Linux VMs, and at home I use a MacBook with a Linux VM. These two setups let me use the three PC platforms for the workflows for which they seem best suited.
I think it's missing the point to debate which is the one true platform. We all have things we want to do, things we want to create. In my experience, the question is not "which platform is better in general?", it's "on which platform can I most easily get my work done?". If my current platform no longer works well, I try the others. In the end, I'm paid more for getting more work done in less time, so the efficiency of a platform for that work decides the question.
At the same time, I shoot photos and video, and do some writing to take a break from IT. I've tried doing that work using the included tools on all three platforms. I find the Mac platform the most efficient and trouble-free for that work. Linux is second, but is frustrating at times - especially regarding video.
At work, even though we have a heterogenous server environment, we communicate using Office and SharePoint. Also the wireless network seems to work best with Windows. Thus, at work I use Windows 7 with PuTTY, Gnu Screen, and several Linux VMs, and at home I use a MacBook with a Linux VM. These two setups let me use the three PC platforms for the workflows for which they seem best suited.
I think it's missing the point to debate which is the one true platform. We all have things we want to do, things we want to create. In my experience, the question is not "which platform is better in general?", it's "on which platform can I most easily get my work done?". If my current platform no longer works well, I try the others. In the end, I'm paid more for getting more work done in less time, so the efficiency of a platform for that work decides the question.
95% of my problems with any computer occur as a result of me wanting to use a piece of software that requires me to upgrade something. be it the OS or just some library.
in the old days when I ran Red Hat Linux this was the main reason my system would rot: I would want to run some piece of software, the developer had decided to depend on some very recent version of a library not present on my system and I would have to roll the dice and install it. usually it would be okay, occasionally things would break, but eventually it would lead to my system becoming unusable from all the dodgy packages that were installed.
things got a bit better with Debian. and even better with Ubuntu.
to this day I still have this problem. this weekend I had to upgrade my laptop to the latest OS and in the process I managed to brick it. I spent most of my weekend getting it on its feet again.
the thing is: I spend perhaps 1/10 as much time dicking around with my system now as I did when I was running Ubuntu on a Thinkpad. and more of the system works more of the time. I think most of this is down to Macs and OSX being a much less diverse environment. the hardware is well defined, the OS releases are far fewer and thus more defined etc.
that being said: when things go wrong on a Mac it is much more of a pain to sort things out. it is much easier to find solutions online for Linux problems -- and Linux is much easier to diagnose. I'm not entirely sure why.
in the old days when I ran Red Hat Linux this was the main reason my system would rot: I would want to run some piece of software, the developer had decided to depend on some very recent version of a library not present on my system and I would have to roll the dice and install it. usually it would be okay, occasionally things would break, but eventually it would lead to my system becoming unusable from all the dodgy packages that were installed.
things got a bit better with Debian. and even better with Ubuntu.
to this day I still have this problem. this weekend I had to upgrade my laptop to the latest OS and in the process I managed to brick it. I spent most of my weekend getting it on its feet again.
the thing is: I spend perhaps 1/10 as much time dicking around with my system now as I did when I was running Ubuntu on a Thinkpad. and more of the system works more of the time. I think most of this is down to Macs and OSX being a much less diverse environment. the hardware is well defined, the OS releases are far fewer and thus more defined etc.
that being said: when things go wrong on a Mac it is much more of a pain to sort things out. it is much easier to find solutions online for Linux problems -- and Linux is much easier to diagnose. I'm not entirely sure why.
The issue with transitioning back to Linux is not the OS or its applications. The main issue to be able to find decent laptops that are able to run the software. Lenovo, HP, and Dell are among the brands that won't offer a quality experience (think antiglare screen, lightweight, battery efficient and decent weight.) Noise is also an issue with the fan level on most PC laptops today. SJ didn't like fan noise and it may have helped in designing the best laptop on the market today.
I have been a Mac user for the last four years. I used to really like it, everything was stable and polished and just worked really well.
But in the last few months, things started falling apart. My computer would freeze every few days, syncing would destroy parts of my data, the iPhone would crash every now and then, there would be weird random glitches...
I'm certainly not ready to abandon ship yet, but I can see it coming. The Mac is not what it used to be any more.
But in the last few months, things started falling apart. My computer would freeze every few days, syncing would destroy parts of my data, the iPhone would crash every now and then, there would be weird random glitches...
I'm certainly not ready to abandon ship yet, but I can see it coming. The Mac is not what it used to be any more.
In one paragraph he says he has four gigabytes of memory, and after switching to LInux, he says he has eight.
It seems he's misunderstanding inactive memory, which can be either filesystem caching (since it's already backed on disk, can be freed with no penalty) or allocated memory by the processes but not recently used (which would count as used under Linux, and when running out of free mem, would be paged to disk on both Linux and Mac OS X).
It seems he's misunderstanding inactive memory, which can be either filesystem caching (since it's already backed on disk, can be freed with no penalty) or allocated memory by the processes but not recently used (which would count as used under Linux, and when running out of free mem, would be paged to disk on both Linux and Mac OS X).
When someone rants about memory usage it is usually a sign he knows nothing what he is talking about. On virtual memory systems with on-demand paging that use shared libraries and where all file system I/O is mmap(2) based, memory is managed in a very different way than what most people expect. It's understandable, most people don't know and don't have to know what virtual memory is, even if they have a superficial understanding of swapping. Most people, even most technical people, don't know about the implications of shared libraries in memory measurement.
The users are presented with data they don't understand. Everybody talks about things like "this app is using 300MB of RAM", when such statements don't make any sense in the modern world. The way file systems, file system caches, virtual memory, and shared libraries in the context of virtual memory interact is architecturally identical on all major operating systems today, including Windows, Mac OS X, Linux, Solaris, and the BSDs. There are various differences in implementation making each system optimized for particular workloads, but understanding the differences between the system is out of reach of most people who complain on their blogs, and it only affect out-of-reach workloads anyway. It's funny how much can one advocate for something when all alternatives are the same.
But all memory management rants are nothing compared to mentioning Mac OS X' repair disk permissions feature. Of course, this feature doesn't magically repair anything, but it's sold as a panacea. I read the first paragraph about memory management and decided to give it one more chance, but then repair permissions was mentioned as a solution. Sorry, this is no HN worthy.