15 ms·
Hacker's Guide to Setting Up Your Mac
- 616c 12y agoI do not wants to flame, but is there a reason people dislike Macports so much. I tried Homebrew when it was 1-2 years old, but stuck with ports bc it was so stable, compiles from source, and I never heard a serious problem. I heard the opposite complaint on the net, but almost all Macports hate was from many years before. I am the only one who chose not to rely on Homebrew!?
- DigitalJack 12y agoI haven't used macports in quite a while, but I switched because homebrew was more up to date. It might not be the case now though.
- RexRollman 12y agoI am absolutely no kind of programmer but I prefer to compile from source on my own, when I can. For example, the first thing I did yesterday after clean installing Yosemite Beta 4 was to compile Scrypt.
- dekz 12y agoCan I perhaps ask why? Is it a trust issue that you don't like accepting a prebuilt binary from some random on the internet?
- RexRollman 12y agoI just enjoy the control.
- 72deluxe 12y agoThat''s quite witty! Do you also make all of your bread from the base ingredients too? :-)
- RexRollman 12y agoFor example, I like running the latest version of Vim (OS X is often behind). Compiling from the source, I can control what the binary is named (to avoid a name collision with the built in Vim), I can control the features (--with-features), and I can have it install to a directory of my choosing (~/Applications, where I also have scrypt install).I also install Lame and FLAC this way. As for bread, no, I am horrible at cooking!
- 72deluxe 12y agoThat's quite wise, particularly regarding the feature selection. Such joy from having the source! I suppose I never run into this problem because I don't use the software to its full extent and therefore don't miss any features! I must be lazy.
- madvoid 12y agoNope, I'm a Macports guy as well, never had any serious problems with it. I wish it was possible to run both though because there are packages exclusive to either that I would like to run.
- archagon 12y agoMy understanding is that Homebrew does not clobber any system defaults — works with the OS, not against it. I could be wrong, though.
- tvon 12y agoNo, MacPorts is actually more sane in this regard because it build it's own set of dependencies instead of relying on anything the system provides. This makes it a more soundly designed tool, IMO. Homebrew also recommends using /usr/local as the root which I think is just plain bad advice, but it is simple enough to change it to something else.
- 6cxs2hd6 12y agoWhy is /usr/local bad advice?
- teacup50 12y agoBecause /usr/local doesn't belong to homebrew and is not appropriate for homebrew to commandeer. MacPorts was originally written by the BSD team at Apple; if /usr/local was where a packaging system was supposed to stuff itself on OS X, they would have used it -- instead of /opt/local. The co-opting of /use/local breaks all kinds of stuff -- for instance, /usr/local/lib is in the default linker search path and can't be removed, which means that trying to not link against homebrew libraries requires some pretty evil hacks -- such as library symbol interposing to hide /usr/local from stat(), etc.
- antimagic 12y agoI disagree. / is where the stuff needed for single-user mode gets installed. /usr is where the OS's userland stuff gets installed. On Linux systems this includes everything that you get from your package manager, because this is considered to be part of your system. /usr/local is wher you install your own packages. For example, if I'm installing something from source, that's where I'm going to install it. Or if I'm building my own project, I would also install it there. On a Mac, there is no system-blessed pacakage manager - the official packages are pre-installed on your Mac and only change when you get an OS update. They tend to be installed in /Library or ~/Library. All of the add-on package managers therefore play a role much closer to that of hand-installed source. It's logical that they install to /ur/local. In particular, one of my main use case for package managers is when I want to try out a package that has a whole bunch of dependencies. I might want to compile the package that interests me by hand, as I need to tweak the config, but I don't want to have to do the configure-make-make install dance for the 30 packages that it has as dependencies. That's where homebrew / MacPorts comes into the picture, they save me that work. But they should be installed into the same hierachy as the package that does interest me, as they are at the same level of "officialness". One last thing. I know Fedora, Gentoo and MacOSX fairly well, and I have also worked a fair bit on a hand-rolled linux distribution. None of them ever had /usr/local/lib in their LD_LIBRARY_PATH by default, I've always had to configure that in my .bash_profile. This is exactly what you would expect, by default the directory should be empty, so why add it to the default LD_LIBRARY_PATH, that doesn't make any sense.
- nknighthb 12y agoI would think you can't find recent Macports complaints because nobody uses Macports. I didn't even realize it was still being updated at all. I stopped using it many years ago because it was frequently long out of date and broke in ways that I found impossible to fix without wiping everything and starting over. I switched to Fink, which broke occasionally but I was usually able to rescue it without too much hassle. Eventually I stopped using Fink maybe a year (or two?) ago in favor of homebrew, and have not had any serious problems since. brew's structure combined with 'brew doctor' and a vast and frequently-updated array of available packages seem to have done a pretty good job of avoiding the "can't get there from here" problems I had with fink and macports.
- rconti 12y agoHuh. I had no idea. I've been using MacPorts for what must be a decade, or close to it. Tried Fink a few times, never had any luck -- but never had a reason to find anything new (brew). I guess the Ports versions of everything I use are "good enough". If it ain't broke, and all that.
- johncoltrane 12y agoPeople don't really dislike Macports, they just like shiny new things on github.
- davidcelis 12y agoHomebrew isn't exactly new
- johncoltrane 12y agoHomebrew was new 5 years ago when a whole new generation of Mac-using front end developers discovered the command-line (and git, and tmux…). MacPorts worked perfectly well but hey! how can an old tcl-based, svn-using package manager compete with a new ruby-based package manager that's on GitHub?
- freiheit 12y agoI prefer Homebrew over Macports, because the Homebrew default is to use the stuff your system already has. Macports always wants to pull in (newer versions) a bunch of stuff that's already in OSX. There's benefits to both approaches. However, I really only need a few extras on my OSX laptop, and I don't really want to end up compiling dozens of extra stuff just to get the latest version. Sometimes I want to force that new version, but only if there's specific functionality I'm after. Others really want to get the latest and greatest of everything constantly...
- sbalea 12y agoI use MacPorts. I tried Homebrew about a year ago, it worked fine, but I could not see the benefit. The current MacPorts is pretty up to date, at least for my needs. Pretty trouble free…
- sanderjd 12y agoI think homebrew is much easier to contribute to. I started using it when I wanted something that neither Macports nor homebrew had at the time, and it was very simple to add it to homebrew. It seems like things are generally more up to date and comprehensive in homebrew, and I think it's because of how easy it is to add things.
- tjl 12y agoI stopped using Macports for two reasons. First, it was taking a long time for some of the ports to get up to date. That doesn't seem to be a problem now, but it was. The second reason is that it insists on using its own versions of tools that OS X already has. I'd prefer not to install new versions if I don't have to. I understand their reasoning, but that's why I don't use Macports.
- super_mario 12y agoI don't use either. I build my stuff manually, and that way I also contribute upstream if there is a problem with some software not building on Mac OS X out of the box. Macports was perhaps necessary a while back, when most people didn't realize Mac OS X was just another BSD based UNIX. Now that the word is out, most software builds without a hitch. And honestly if you can't download a source tar archive and compile it yourself with your own customizations, then don't call yourself a hacker.
- grizzkill 12y agoI like Macports a lot more. I've never had an issue with any of the packages really besides a few esoteric ones that failed to build or hadn't been updated in a while (and they are usually easy to by updating the portfile). I prefer the segregated environment of macports too, you won't overwrite any system stuff. I got the impression that homebrew wasn't a terribly well thought out tool and was a bit lazy. There's a lot of 'github' culture there which I'm wary of (and by github culture I mean half finished stuff and fancy looking projects lacking rigor). Case in point, it annoys me that their slogan is 'the missing package manager for OSX'. Macports had been around long before they were. I only sometimes wish that Macports had better binary package support.
- ccbean 12y agoAfter installing Mackup, the Mac backup tool mentioned in this guide, I noticed that it backed up my entire ~/.ssh directory to Dropbox. This included my id_rsa private key, which I would prefer not to have on Dropbox, even with a key passphrase.
- matthewmueller 12y agoYep, it's meant for backup and restoring. I'm hoping that in future builds of Mackup you will be able to configure what you backup.
- ccbean 12y agoRight, or even if Mackup could add a Y/n confirmation prompt before copying that private key file over to Dropbox.
- oalders 12y agoI don't like that it does this out of the box, but you can add something like the following to ~/.mackup.cfg [applications_to_ignore] ack bash git screen ssh tmux vim
- psophis 12y agoI would like if it defaulted to nothing. With options to add all, all but ignored, or specified applications.
- Artemis2 12y agoGenerate a new key now and consider the old one as compromised.
- deleted 12y ago[deleted]
- wasd 12y agoAnybody have any suggestions on how to do this on a Windows PC? I like Ninite[1] a lot but I would prefer something more customizable. [1]: https://ninite.com/ https://ninite.com/
- Aloha 12y agohttps://chocolatey.org/ https://chocolatey.org/
- deleted 12y ago[deleted]
- slicercorp 12y agohttp://boxstarter.org/ http://boxstarter.org/
- jsmeaton 12y agoJust in the interest of sharing, this is my boxstarter script for my development VM: https://gist.github.com/jarshwah/58f5f9f78d43ae269545 https://gist.github.com/jarshwah/58f5f9f78d43ae269545
- michielvoo 12y agoWindows Management Framework 5.0 Preview [1] contains early versions of Microsoft's OneGet and PowerShellGet. OneGet can install applications from repositories, using any number of providers. The preview version comes with a version of Chocolatey [2] built in managed code (C#) instead of PowerShell, but it supports the same Chocolatey gallery (a repository of software packages) and protocol. PowerShellGet [3] can install PowerShell modules (e.g. make new Cmdlets available on the PowerShell command line). The modules can be delivered as scripts or as compiled .NET assemblies. By default PowerShellGet is configured to use a (closed preview) repository [4], which makes it not very usable, but it's interesting to know what direction it is headed. As a more practical alternative to PowerShellGet, have a look at PSGet [4], a PowerShell module for installing PowerShell modules, with its own dedicated repository. Hopefully Microsoft's PowerShellGet will support PSGet as a provider in the future as well, the names are certainly confusing. Desired State Configuration (DSC) [6] is a new (Windows 8.1) capability to configure Windows using a declarative syntax extension of PowerShell v4. It can set registry keys, create files and directories, enable Windows Features, and more. DSC 'resources' are PowerShell modules, so DSC's capabilities can be extended, see this GitHub repository [5] for examples. Alternatively, have a look at Boxstarter [7]. It can do installation and configuration, and you can host your 'starter script' online and launch it with a single command. Boxstarter will take care of all Windows restarts that might be necessary along the way. [1]: http://www.microsoft.com/en-us/download/details.aspx?id=44070 http://www.microsoft.com/en-us/download/details.aspx?id=4407... [2]: https://chocolatey.org/ https://chocolatey.org/ [3]: http://blogs.msdn.com/b/powershell/archive/2014/05/20/setting-up-an-internal-powershellget-repository.aspx http://blogs.msdn.com/b/powershell/archive/2014/05/20/settin... [4]: https://msconfiggallery.cloudapp.net/ https://msconfiggallery.cloudapp.net/ [5]: http://psget.net/ http://psget.net/ [6]: https://github.com/powershellorg/dsc https://github.com/powershellorg/dsc [7]: http://blogs.technet.com/b/privatecloud/archive/2013/08/30/introducing-powershell-desired-state-configuration-dsc.aspx http://blogs.technet.com/b/privatecloud/archive/2013/08/30/i... [8]: http://boxstarter.org/ http://boxstarter.org/ Be aware that, although most modern package solutions for Windows are using NuGet as a packaging format, using NuGet.exe directly (the application) and with nuget.org (the website) is meant for managing software development dependencies, not installing/updating end-user applications or command-line utilities.
- deleted 12y ago[deleted]
- jug5 12y agoStep 1. Install linux
- codemac 12y agoIt worked pretty well on my macbook air once I figured out the marvell ata errors (the sata controller behaves poorly) and the backlight (magical recompilation every boot on a new kernel with dkms solved it).
- morganvachon 12y agoI get the joke, and it was the first thing that popped in my head too. But in all seriousness, OS X is Unix as well, and can do pretty much any Unix based task that GNU/Linux can. Sometimes the best tool for the job is the one you already own.
- moron4hire 12y agoMaybe it's less about Unix and more about FOSS for jug5.
- snotrockets 12y agoBSD differs from Linux in some important ways. If one of those differences affect your works, than Mac OS X is useless, even if it is Unix (and Linux, some would say, isn't)
- recursive 12y agoSo if operating system Z is different from linux in some way, then linux is better in that way? What if the differences positively affect your work?
- chc 12y ago"Useless" a strong word for a simple difference between two Unices that affects your work. You could just as well say Linux is useless because sysvinit and upstart aren't the same as launchd.
- 12y ago
- tomphoolery 12y agoYou thief! https://github.com/tubbo/dots https://github.com/tubbo/dots ;) Just kidding of course, yours is way better. Time to think of another silly name for my dotfiles...
- mikewhy 12y agolook into Brewfile[1] [1]: http://robots.thoughtbot.com/brewfile-a-gemfile-but-for-homebrew http://robots.thoughtbot.com/brewfile-a-gemfile-but-for-home...
- aalbertson 12y agothis is pretty awesome. Definitely some tools in here I'd not heard of before and will help get a nice clean mac. Definitely playing with this more!
- MikeKusold 12y agoI would also highly suggest installing curl via homebrew. The version that ships with OSX 10.9 has some broken features that might bite you. http://curl.haxx.se/mail/archive-2013-10/0036.html http://curl.haxx.se/mail/archive-2013-10/0036.html
- iancarroll 12y agoDid I miss something or does Chrome use the Keychain?
- chc 12y agoChrome uses the Keychain for passwords, but it handles certs itself AFAIK.
- iancarroll 12y agoNot according to this: http://www.chromium.org/Home/chromium-security/root-ca-policy http://www.chromium.org/Home/chromium-security/root-ca-polic...
- rsync 12y agoMy stumbling block is always that I start with macports, which requires Xcode, which requires logging into apple, app store, long download, long install ... Do I understand that brew does not require xcode and I can jump straight from a new machine to `brew install git` (for instance) ? If so, why does anyone use macports over brew ?
- deleted 12y ago[deleted]
- iancarroll 12y agoYou can download the command line tools directly, you may need to be a registered Apple dev first though
- reubenmorais 12y agoYou don't, just run xcode-select --install And it'll prompt you to install the command line tools.
- untog 12y agoand, in my experience, fail every time you try to do it.
- RexRollman 12y agoI just did this yesterday. Easy peasy.
- sigjuice 12y agoSimply typing gcc on a pristine Mavericks system will also prompt you to download the command line tools.
- scott_karana 12y agoHomebrew also requires at least the OS X Command-line developer tools, which previously were only included with XCode. I suspect macports might also be able to cope with just these tools? Or does it still have X11 ports?
- ryanmarsh 12y agoI'm surprised oh-my-zsh wasn't mentioned.
- swat535 12y agoi personally think Boxen is the easiest way to setup a brand new machine. it can also easily be distributed and updated the only downside is that it requires Xcode + command line tools. https://boxen.github.com/ https://boxen.github.com/
- xbryanx 12y agoAnd you can bootstrap that part of what you need for Boxen with one command: `xcode-select --install`
- davidcelis 12y agoBoxen always seemed pretty heavy-handed to me for a single developer as opposed to an IT team managing workstations for a team of developers. Is this not the case? A dotfiles repository always seemed like enough to me.
- yrmt 12y agoA great alternative to Homebrew is pkgin because of it's speed and the amount of packages available in pkgsrc. More info here: http://saveosx.org/ http://saveosx.org/
- 4ad 12y agoThis is the work of Jonathan Perkin (from joyent): http://www.perkin.org.uk/ http://www.perkin.org.uk/ It's great. It really is. I never understood why it's not used by more people. Homebrew is simply awful.
- felixrabe 12y agoBecause it's relatively new and Homebrew is simply useful? Would be great if you could elaborate some, maybe I'll be the next convert :)
- yrmt 12y agopkgsrc has had OS X support since Oct 2001. Source : http://www.netbsd.org/docs/pkgsrc/pkgsrc.pdf http://www.netbsd.org/docs/pkgsrc/pkgsrc.pdf
- yrmt 12y agoI also have a repo of 64bit packages built on Mavericks: http://pkgsrc.saveosx.org/Darwin/2013Q4/x86_64/All/ http://pkgsrc.saveosx.org/Darwin/2013Q4/x86_64/All/
- spost 12y agoJust curious, what's wrong with Homebrew? I'm just a student, not a full-time developer, but I've never had problems with it and find it pretty pleasant to use.
- yrmt 12y agoIt's slow and it has to build the packages most of the time. pkgin will install a precompiled packages very quickly. It is also a whole C program and Homebrew is just ruby scripts.
- astrange 12y agoThis "cool hacker settings for your Mac" script turns off your laptop's power saving features (sleep, display dimming, hibernation even though sleep was off(?)), removes at least three kinds of backups for data loss (MobileTimeMachine, Resume, hibernation file), and changes AppKit settings in a way your customers will never be using (by turning off Automatic Termination, which is pretty harmless). Please don't run scripts like this, unless you promise not to post about how your untested configuration is so unstable and has such bad battery life after an OS X update.
- saidajigumi 12y agoThat's a common problem with all of these OS X setup helpers. I recall one floating around with a big batch of defaults settings, many of which I would never use. That said, these projects are useful for showing off strategies for others to adopt. I treat them much like someone's heavily customized emacs or vim setups: a good reference for ideas, but only ever to be cherry picked into my own setup, and only after I understand the piece I'm picking.
- matthewmueller 12y agoCompletely agree, you should definitely closely inspect any script you run, before running it. These settings have been working well for me, but I may tweak them in the future.
- jobu 12y agoThat's a little hyperbolic. Sure, that script stops your Mac from automatically going to sleep, but it's not like it changes the CPU usage or power usage (and it will still sleep when you close the lid). Most of the settings in that script appear to be disabling automatic or "smart" things that average users don't want to think about and power users want done a specific way (e.g. backups, screenshots). Basically if you read that script and don't understand what it's doing then you shouldn't be running it.
- astrange 12y agoActually, I was going to check if those commands changed the lid-closed behavior and edit the post, but guess they don't. Still, it does turn off display dimming and automatic termination - those can both affect the leaving laptop on a table unplugged case, one much more than the other.
- unspecified 12y agoYou still have to replace /bin/bash and /bin/sh binaries, even after doing a `brew install bash`. ...right? `brew install bash` will just give you /usr/local/bin/bash, and then use that as your interactive shell.
- oinksoft 12y agoNo, you change your user shell to the shell you want. You can do this in the "Accounts" preference pane by control-clicking a user, selecting "Advanced Options" from the context menu, and changing the "Login shell" setting to your preferred shell.
- qzc4 12y ago#!/bin/bash
- oinksoft 12y agoThat should be #!/usr/bin/env bash, particularly for BSD which does not install bash in /bin. Nothing new about absolute executable paths being non-portable, #!/bin/bash is as bad as #!/usr/bin/python.
- qzc4 12y agoI'm not saying you should use that. It's just that "#!/bin/bash" shows 18 million results on Google while "#!/usr/bin/env bash" shows only 121,000.
- unspecified 12y agoRight....but your user shell has nothing to do with shellshock. Shellshock involves things like Apache invoking system calls that need a shell, and those system calls don't care what your user shell is. They care what /bin/sh and /bin/bash are (or wherever your system shells live, it's /bin for OSX). This guide is claiming that updating your login shell to bash via Homebrew will mitigate shellshock, which is flat-out wrong, and dangerous to boot.
- brown9-2 12y agoThe next thing you should do is update the unix tools you already have on your mac. This is more relevant than ever since the recent "Shellshock" debacle. How many developers are launching bash scripts with environment variables defined by third parties?
- swah 12y agoDo any of you use Dock replacements? I'm faster with the Windows-style taskbar and uBar (http://brawersoftware.com/products/ubar http://brawersoftware.com/products/ubar) was the sponsor of the last episode of John Gruber's podcast.
- function_seven 12y agoAssuming you have uBar installed, is there anything about it that makes it feel like an add-on? Or does it feel like it's really a part of the desktop environment? (I'm not talking about design aesthetic or anything like that, just wondering if it gets wonky sometimes)
- swah 12y agoThat's what I want to know too.
- tjl 12y agoWell, you get a 4 week trial, so that should give you a good idea of it.
- ubar 12y agoHi there, I'm the developer of uBar:) uBar is made to totally feel like part of the system. Please feel free to check out the 4 week trial, and take advantage of the The Talk Show coupon! And if you have any suggestions or feedback, you can send them via Twitter or email using the Send Feedback item in the uBar menu. Just see the release notes to see how much user feedback gets incorporated into updates:) Regards, Edward
- dekz 12y agoI use a auto-hidden dock which has nothing in it. It is populated by running programs and is not used as a launcher. For launching I use a tool like Quicksilver or Alfred of Spotlight. This way I get more screen realestate, I see no point staring at a dock icons all the time. My dock resembles Command-Tab.
- dfc 12y agoWhat is the difference between the cask installation suggested in the link and the cask installation procedure suggested on the cask home page? $ brew tap phinze/homebrew-cask ; brew install brew-cask $ brew install caskroom/cask/brew-cask FYI: The grep in homebrew/dupes is not a newer version of the grep provided by OSX. OSX grep is the BSD variant, hb/dupes provides GNU grep. I am always shocked by how poorly BSD grep performs compared to GNU grep. I think you need to provide the `--default-names` option in order to use GNU grep in place of BSD grep.
- phinze 12y ago> What is the difference between the cask installation suggested in the link and the cask installation procedure suggested on the cask home page? Two differences. One is that we moved to an org repo, so the first form is relying on the github redirect from the move. The other is that the second form relies on the semi-recently introduced "auto-tap" syntax in homebrew. Functionally they will get you to the same place (we've got code to notice that your remote is pointing to the old repo location and update it), but the second form is newer and cooler. ;)
- matthewmueller 12y agoGood to know. Thanks for your great work phinze. Updated the post :-)
- joeblau 12y agoLast year I was thinking about creating a service for this built on top of Hubot. The core idea is that you would go to a website and configure your profile. When you get a new Mac, you would just ssh install your profile, go way, come back and your Mac would be setup (Similar to GitHub's new employee setup). I didn't do much research into whether or not anyone would pay for the service or how many users they might be. But it sounds like this is a stab at helping individual users set up something personal.
- no_future 12y agoSo basically this is just a guide on how to use Homebrew? I see nothing time-saving or "hacker" about this.
- jongalloway2 12y agosprout-wrap works pretty well for me: https://github.com/pivotal-sprout/sprout-wrap https://github.com/pivotal-sprout/sprout-wrap
- mwfunk 12y agoOne of the most valuable skills someone can have, in my opinion, is not getting attached to really specific workflows or settings or tools. Instead I value being flexible and being able to adapt to whatever system I'm using. In practice, this means that whenever I think about making some change to my software environment, my first impulse is to ask myself, "do I really have to change this?" This is a 180 from my old, college-age attitude, in which I not only wouldn't question the impulse, I would look for ways to automate making as many little changes and tweaks as possible. At the time I thought I was doing it because I was really increasing my productivity, when in fact I was just doing it because it was fun and fed into my self-image as a super l33t hacker guy. If anything, it was a distraction from whatever I was actually supposed to be working on.
- burntsushi 12y agoI am exactly the opposite and it certainly has nothing to do with fun or self-image. I can hop on to any Linux box and be just fine. But I'm comfortable in a familiar setting with my `~/bin`, aliases, editor (vim), keybindings, a few key-remappings and package manager (pacman). There's a lot of benefits that come from having precisely the same environment on my web server, home machine, laptop, media PCs and my machine at work. I consistently look for ways to automate things. I do it not because I'm a tweaker for tweaking's sake, but because I find it insane to let myself be annoyed by tasks that I know I can automate away. (Then my brain can forget the details of the operation because it is enshrined in code and maybe even some documentation.) For me, it's an efficient way to work. Actually, that's a nice way to sum up how I work: how can I most effectively offload This Stuff I Know so I don't have to worry about it any more? I am extremely uncomfortable on Macs or Windows machines. The solution is to just not use them. (We, as programmers, are fortunate to have some freedom here. For example, I would not take a job with someone who forced me to use OSX or Windows.) To give you an idea of how far I'm willing to go: I wrote my own window manager. I spent years on that path. I got something working around late 2012 and haven't really touched the X11 world since. I had some really specific goals that I wanted to accomplish (support 3+ monitors correctly), and I did, and now I'm happier and more productive for it. Another plus: people using Go now have native X client libraries. Another example: I wrote 8,000 lines of Go to download all of IMDb and load it into a relational database in under 8 minutes (including building trigram indexes on all movie, episode, tv show and actor names). And then I built a command line utility that does fuzzy search and can rename all of my media files instantly. Renaming them manually was terrible drudgery. (And I certainly enjoyed the engineering challenge of making this fast.) Sorry for the banter. :-)
- juddlyon 12y agoIt's interesting to see how other folks tweak their machines, but this is a highly personal thing and you're likely to break things. The older I get, the more I leave things alone. Swim with the current.
- orangecat 12y agoThe older I get, the more I leave things alone. Me too, but I'd never discourage anyone from tinkering. Sure you might break stuff, and that's a learning opportunity.
- dopeh 12y agoDefinitely, but after reading some of the responses (e.g. "I ran this script but now my spotlight is missing"), I think too many people skip the learning part.
- deleted 12y ago[deleted]
- yvanscher 12y agoWhat do you guys think of http://bowery.io/ http://bowery.io/? It looks like you can have your dev environment for a specific project in the cloud without dealing with all this junk locally.
- csixty4 12y agoI like having separate "work" and "play" accounts on my machine, and Cask isn't really set up to work with multiple accounts (issue #5887 in their github issue tracker). That's something you'll need to keep in mind if you use this approach.
- efuquen 12y ago> allowing you to setup a new Mac in a matter of hours, not days Wow, it takes days for people to set up their Macs? I would be interested in something that would make this take minutes, not hours. It's already pretty easy to setup a Mac for development in a few hours.
- dekz 12y agoI recently received a new MBPr from a work laptop and I would totally agree it takes days to setup from scratch. * It takes hours to download Xcode * It takes hours to download OSX Updates * Setting up Homebrew, Zsh, Vim, Browsers, GitHub, Dropbox, Mail, Rbenv, Rubies, Cloning work repos * Getting those other smaller things you were tinkering with, Z, Go Everyones dev setup is different. So I'd agree it takes days to get set up.
- 72deluxe 12y agoBut the speed to download xcode + updates is related to your Internet speed, surely? Nobody says Linux takes days to set up and then reference their Internet connection...? I've got fibre, so perhaps I'm biased. Also, I avoid Homebrew/MacPorts etc. because the apps don't fit in with the window manager properly.
- dekz 12y agoYes but the parent comment is about installing in minutes vs hours vs days. I proposed my story where it took hours to download Xcode and eventually days to fully get my system setup. I also once had Fibre then moved to a bigger city without Fibre. Who doesn't say linux doesn't take days to setup? I say my OSX took days to setup, if you have a counter anecdote then elaborate.
- akfanta 12y agoWith that internet speed, it could take days to do anything. :D
- Watabou 12y ago
- thomasfl 12y agoMy personal favourite is to clone this .emacs.d to get the emacs hacks as featured on the http://emacsrocks.com http://emacsrocks.com screencasts: cd git clone https://github.com/magnars/.emacs.d.git
- kylemathews 12y agoI have an Ansible setup [1] that installs my dot files and other useful tools on Mac and Debian/Redhat derived platforms. I also created recently a Docker image [2] that runs my Ansible script so I can easily dev inside this Docker container. Just "git clone" and start working! [1] https://github.com/KyleAMathews/linux-config https://github.com/KyleAMathews/linux-config [2] https://registry.hub.docker.com/u/kyma/dev-image/ https://registry.hub.docker.com/u/kyma/dev-image/
- jimmcslim 12y agoIf you like Ansible you might also be interested in OSXC which is based on Ansible. http://osxc.github.io/ http://osxc.github.io/
- codez 12y agoI wrote something similar for myself in node based off of Zach Holmans dotfiles. A one liner tool in node that refers to defined config. https://github.com/jh3y/kody https://github.com/jh3y/kody The dependency on a new machine is to install node.
- kelv 12y agoI've built a less "hacker" way to automate the install of a bunch of common apps at http://getmacapps.com http://getmacapps.com Aiming for something you can easily use quickly, or send to less techy friends or parents to run.
- 72deluxe 12y agoLooks good but is opening a Terminal less techy for my mum? I would argue not. She wouldn't know what a terminal was, other than perhaps something at an airport? No offence meant by the way. I don't know of an easier way to get the required command to run, so apologies for no suggestions on how to improve it.
- deleted 12y ago[deleted]
- LowDog 12y agoThis is interesting given that OS X is anything but a hacker's paradise. The platform is very locked down, discourages tinkering and customization, and given how expensive Apple hardware is, this is the least accessible and most exclusive out of the three main players. Even worse is when developers make it the leading platform for their software, like in the case of Atom, where the Windows support is awful given that they started out focusing on OS X. I'm guessing it takes a lot of work to create and maintain things like homebrew in order to make the OS X experience more palatable, but why not just use your Linux flavor of choice and cut to the chase? I used to use OS X and I loved homebrew, but it feels like it's cut off from the rest of the operation system, which has often caused me a lot of headaches in the past.
- tptacek 12y agoI'm confused by the idea that a platform with a published kernel development kit could be considered "locked down, discouraging tinkering".
- habitue 12y agoThe kernel is open source, how about everything else? To act like is OSX is open because Darwin is open source is pretty disingenuous.
- 72deluxe 12y agoTrue, but why does it need to be open anyway? The windows development industry has done well without being OSS, no? Perhaps people should stop expecting OSX to be Linux. In the same way that nobody expects Linux to be OSX.
- habitue 12y agoI definitely don't expect Windows or OS X to turn into Linux. I think they each have advantages for the people who are using them. The grandparent was talking about hackability, and I was saying I don't think OS X counts as hackable just because the kernel is open source. There is a lot more that's closed source surrounding that kernel that makes it OS X.
- jason_slack 12y agoI've been a long time Mac user and I think that software setup and updates has always been a bit clunky. Apple tries to make it easy with Software Update. You can always Homebrew to get missing pieces. For me, I use CentOS for servers and I really wish that OS X had 'yum' (https://www.centos.org/docs/5/html/yum/ https://www.centos.org/docs/5/html/yum/) It feels very easy for me to install, update, remove, etc
- 72deluxe 12y agoThis is very true, and I too happily go to Linux land for servers. But for the typical target market of Apple devices (this is debatable), most people are happier with the download / open DMG / drag to applications scenario instead of typing, no?
- jason_slack 12y agoyes, I agree that most people are happy with the DMG process. I wonder if I could port yum to OS X. I'd have to look into how they structure the repo and how I would host it. What about just analyzing for what updates the system needs and pulling them from their respective websites, etc.
- aaronbrethorst 12y agoAnd nowhere in the instructions was the word "Xcode" used. Odd.
- alphadevx 12y agoIf you are a hacker would you be running a Mac? I'll stick to Linux and OSS, thanks.
- thejdude 12y agoFor me there was a time where I wanted stuff to just work, to get good battery life on my laptop and still have a Unix. I went Mac OS X for a few years (X years ago). A few years later I switched back to Linux. Much better Java support. Better window manager. Multiple desktops (yes, I had something like that on the Mac, but it was weird). Much better file manager. Much faster (than either Windows or Mac OS). I still love Apple hardware and their attention to detail regarding battery life, but you can pry my Gnome, I mean MATE, desktop from my cold dead hands. And Linux Mint at least has the Windows battery life (seems to be the only distro that does), so that's kind of ok.
- 72deluxe 12y agoWhy? Did you know that you can write code under Mac OSX too?
- alphadevx 12y agoHacker ethos to me is supposed to be about free computing, sharing, open sourcing you code, building communities etc. Closed source platforms like OSX and Windows are in conflict with that ethos in my opinion. Nothing to do with writing code, more to do with sharing it.
- 72deluxe 12y agoAh OK that makes sense. I suppose there is an argument about how open the hardware you build on is (do you have access to Intel's CPU designs? etc.), but that's another argument... I would be careful dismissing all users of OSX/Windows as not hackers though. I make my living writing software for both (it means I can eat if I don't share my code), and also use Linux outside work; does this make me not a hacker when I write under OSX? Regarding communities, there also appears to be rather significantly large communities associated with both Windows and OSX development platforms. It would be naive to believe otherwise.
- jokoon 12y agoin the end any hacker will end up realizing he should have used everything by default and not tinker too much.
- gauravagarwalr 12y agoThis just screwed up with my settings. I was lucky that I had almost everything backed up. The problem was with Mackup, in the sense, for it to 'backup' (which I assumed would just copy/paste the files) had actually moved the contents to Dropbox and created the symlinks in place. Therefore not a true backup!! :( I guess what I am trying to say is that please be VERY SURE of what the 3rd party tool/script does before you use it, cause sometimes you might just 'rm -rf' the seemingly useless artefacts. Screwing up your work environment is NEVER fun!
- rcarmo 12y agoOther than using brew (which I love and use from the outset), I would strongly advise against following this guide without understanding what it's doing. Seriously. That's why the author says "This script should not be run without prior examination", for starters. And the bit about having to install a new Python just to get pip when you can do it just fine with easy_install pip... rolls eyes
- jfmercer 12y agoThis is magnificent. Thank you.
- keypusher 12y ago> One area that's ripe for automation that hasn't seen much attention lately is setting up your computer. Really? Puppet, Chef, Ansible, Salt, etc are pretty attention getting.
- toredash 12y ago- The goal of this post is to automate 80% of the bootstrapping, allowing you to setup a new Mac in a matter of hours, not days. Who uses -days- setting up your own computer ?
- noir_lord 12y agoIf I'm not restoring an image (which is the right way but technically cheating). It takes me maybe an hour from inserting USB stick to been able to develop (most of that is watching progress bars), Vagrant has helped with that hugely.
- nogbit 12y agoHackers guide to setting up any laptop...especially ones that cost $1.5K less than a Mac. For beginners... https://wiki.archlinux.org/index.php/Beginners%27_guide https://wiki.archlinux.org/index.php/Beginners%27_guide All others... https://wiki.archlinux.org/index.php/Installation_guide https://wiki.archlinux.org/index.php/Installation_guide
- 0x420 12y agoMost of these I already have. I use GNU/Linux at home and it's what I'm most comfortable using, but at work I need OS X for compatibility with Adobe products. Any software that makes OS X feel a little bit more like home is a good thing.
- msie 12y agoFiddling around with rvm I tried to install the latest ruby on OSX. Well, something in "brew" broke so I tried to do a "brew update" but got an error with that. Then according to an SO entry I should "git reset" the local git repo used by "brew". Why do developers put up with this shit? Edit: I just discovered "brew doctor" and I had to use it. Ugh. Showing lots of warnings that I have to wade through...
- spitcode 12y agoI thought the guide would start off with erasing osx and installing Linux lolz, but honestly its a really good guide :)