Beautiful Tools
mahdiyusuf.com
mahdiyusuf.com
It doesn't surprise me at all that so many beautiful iOS apps are created in XCode, which is certainly the most beautiful IDE I've ever used. With Android, on the other hand, it's hardly a surprise when you look at Eclipse that the apps produced are... uninspired.
It's also echoed by Linus Torvalds when he evangelized the MacBook Air a few months ago. That article led directly to me buying an Air (which had been on my mind anyway) in favor of lugging around the bigger Macbook Pro supplied by my employer. The Air is completely silent, has stunningly beautiful lines, and a screaming fast SSD. I could use a couple more gigs of ram but 4GB is workable and the trade-off is one I'm happy with.
Outside my craft, I have a real passion for high quality tools that are made to last a lifetime. Truly good knives in the kitchen, a good set of enameled cast iron and stainless cookware, beautiful and simple appliances like the Vitamix and Moccamaster. In the bathroom a high quality badger hair shaving brush and a classical safety razor. In the garage high-quality tools that feel good in your hand and won't break when you're using them.
I could go on for another 5 paragraphs. Suffice to say, +2 from me.
Seems like a spurious correlation to me. Both Xcode and the iOS frameworks were designed by Apple, a company known for their excellent interface design and aesthetically pleasing look and feel. iOS apps aren't beautiful because Xcode is beautiful. iOS apps and Xcode are beautiful because Apple designed their interface elements.
The purchase is not merely an exchange of money for a product that gives pleasure or does what it's expected to. It certainly isn't the guilty pleasure of someone who recognizes that they are consuming more than they really need to. No, it has a kind of ceremonial importance. It is a badge of social honor and distinction, a proof of discerning taste which sets the buyer apart from the grubby masses and puts them in the company of Personalities even as they enjoy the new-box smell and savor the kinds of product claims that we are jaded to in most advertising.
So it is that a post about configuring free tools for productivity results in a paean to Linus Torvalds, MacBook Air, Vitamix, Moccamaster, and your real passion for beautiful, most beautiful, stunningly beautiful, truly good, beautiful, simple, high quality, high-quality, feel good. The 99 names of Apple.
Mumbo jumbo --are you into "french social theory"?
I, for one, used OS X when it was quite a novelty (10.2 days), and I use it now that everybody and his dog uses it. Neither popularity nor exclusivity has anything to do with it.
I don't care about "badges of social honor", I _do_ care that it's a fucking full blown UNIX with all the commercial programs I need also available, and that doesn't require constant tinkering to get basic things like close-lid/sleep or GPU acceleration or multimedia working. That the hardware is well made also counts for a lot.
Nothing about "blindly buying a brand". Apple can also make flops: pre mighty mouse Apple mice, Apple TV, the Finder, XCode, FCP X 1.0, Safari (ho hum), pricy adapters, and lots of other things.
There are like 100,000,000 million Apple stuff owners in the US.
You seriously believe those are 100 million fanboys???? (not to mention that if your explanation includes "mass hysteria" then you have to know you're talking BS). They are just people that bought a specific fucking brand, because that what they wanted to buy, given the alternatives. The "reality distortion field", "fanboys" etc, mostly BS from people trying to justify being cheapskates, or feeling some envy for others that can afford more expensive gear.
Perceiving a criticism of Apple, you jump in with both feet. Clearly Apple isn't just something you bought. You start with a pointedly personal comment, so it seems that you took the comments about Apple personally.
You used OS X before it was cool, proving that your purchases were not about jumping on a bandwagon and that exclusivity has nothing to do with it.
You enumerate virtues of Apple products, in defense of your purchases. You clearly see no reasonable alternatives to them; indeed, you were forced by the total inferiority of other products. Consider what this implies about the people who buy other brands: they lack discernment, or they are poor.
You clarify that you are not buying blindly. I didn't say anything about this, so it is clearly important to you. I understand: your purchase was based on the great virtues of the product which set it apart from the competition. And your purchases set you apart from the people who buy other things.
I don't know what you are talking about when you get into fanboys and mass hysteria. I gather that you are responding to some tribal enemy, because you go on to accuse them of being cheapskates or envious people. Very personal!
Nice try, Freud, you only forgot that this is a public forum, and jumping "with both feet" into discussions is what we _do_ here. I participate into most of the discussions, and I like to leave "pointedly personal comments" all the time.
>You enumerate virtues of Apple products, in defense of your purchases. You clearly see no reasonable alternatives to them; indeed, you were forced by the total inferiority of other products. Consider what this implies about the people who buy other brands: they lack discernment, or they are poor.
Or they just don't have the same needs as mine, Sherlock. Haven't thought of that, eh?
I studied CS in mid-nineties, so I run Linux at the time, and I wanted a usable UNIX for Python/Java work that could also run MS Office and audio/MIDI sequencing programs (my hobby). So, I need to run: UNIX + Adobe CS + (Reason||Logic||Cubase). If you can take a minute from your psychology for dummies manual to find me a better OS X alternative for those, I would be grateful...
>You clarify that you are not buying blindly. I didn't say anything about this, so it is clearly important to you.
Oh, I see what you did here. Are you still in high school, and just discovered this "pop psychology" thing? You wrote a whole comment implying people are idiots and/or caught on the marketing hype for buying Apple, even calling it "brand tribalism", and now suddenly you "didn't say anything about this". Well, you did.
>I understand: your purchase was based on the great virtues of the product which set it apart from the competition. And your purchases set you apart from the people who buy other things.
Seems like you're trying hard to feel superior to other people because you're ...not feeling superior to them. Like, people are generally misguided to feel superior based on their purchases but your deep insight cuts through all that bullshit. Well, whatever makes you feel good.
>I don't know what you are talking about when you get into fanboys and mass hysteria.
What I was talking about is that the common "fanboy" accusation ("Apple purchasers are fanboys") makes no sense when talking about 100 million people. And neither do incoherent BS notions like the "reality distortion field", like millions of consumers suddenly had some kind of mass hysteria and couldn't see reality anymore.
How about: people evaluate what they need, what they can afford and what they want and buy accordingly?
>I gather that you are responding to some tribal enemy, because you go on to accuse them of being cheapskates or envious people.
You gather wrong. Reading comprehension is a bitch, though, so I sympathize. What I say is that people that talk ill of people buying Apple, with BS notions (from your dime-a-dozen pop-psychology, to the "fanboy" or Reality Distortion Field accusations), are probably either envious or cheapskates. For, if you are not envious, then you don't even care what others buy or not. Oh, and you keep using this word "tribe". I don't think it means what you think it means.
I agree that it's BS but I don't think the reason is mostly about envy or cheapness. I believe it's about feeling superior for not using the expensive trendy thing. It's a way of saying "I'm good at my job and more skilled than you are which is why a MacBook is beneath me. I prefer the Linux machine because I'm one of the elites who knows how to really use it".
People are just religious about their OS, even the ones who claim not to be and go off on diatribes about whatever gear being too expensive or just trendy. I'm a Mac and Xubuntu user who has recently been forced to develop on Windows while at work and I can say that beauty is important and the Mac exudes beauty. Win7 is decent too. But I bring it up because as a user of all 3 OSes I'll often get asked what I develop on. Instead of explaining in detail how I use all 3 at different times and appreciate each for their specific upsides I'll usually just say "Mac" or "Linux". No matter which I choose to say though the person asking usually always says "oh, how come you don't use Mac, it's all Unixy but pretty and easy" or "Why aren't you using Linux? Are you a fanboy or need your hand held to use a computer?". In all of these cases it's obvious the person has a superiority complex about their choice of platform.
And there's a hierarchy of how people think they're superior for using whichever one with Windows at the bottom:
If you use Windows, well, people just like to hate on Windows (and I personally don't blame them but I can still see why some like it).
The Mac users talk shit about Windows users because they believe they're part of an elite club full of design-minded hipsters. Web dev Mac users will add that Windows sucks for development (which it kind of does unless you're deploying to a full MS stack).
Linux users look down on both Mac and Windows users. They'll say the Mac users prefer form over function, need their hand held, don't like to control their PC (implies lack of skill), and are just following trends. They'll say much of the same about Windows with some added remarks about MS being the devil (as it pertains to FOSS).
No matter what one says about the other I think it's all about superiority. People justify their choice of technology by making themselves believe their choice is the best. They tend to ignore the fact that people have certain personal preferences, different use cases, and different backgrounds when making these criticisms. Developers especially will tend to think every other developer has a similar workflow and is working with the same technologies, therefor their choice of platform is what everyone else should use because "I get shit done more efficiently with this so if others don't that means they're somehow less skilled than me". Envy and money no doubt do play some role but I think it plays a smaller role than you say it does.
No one could even claim unanimity inside the apple user pool regarding that, let alone outside. Better use some relativity rather than portraying oneself as someone wrapped up by the marketing message.
What's inherently wrong with "brand tribalism" or "proof of discerning taste"?
I read this is a tribute to Apple, nothing more.
If it's any indication of that being a budding trend, there's even a subreddit for it:
Some specific recommendations --
- Keep a version controlled `dotfiles` folder, link important files to it and share it across dev envs.
- Add shortcuts to modify your vimrc (<leader>v) and apply it (<leader>V) to help you tweak fast and get instant feedback.
- Using an approximation of REPL for any work I do has been the single largest productivity boost I have: minimize keystrokes between (Write Code) <> (Build/Compile/Run/Whatever/Get feedback) <> (Write code). I started using vimux recently (lets you run commands in a split pane without actually leaving the pane with vim installed) and have never been happier.
- While speaking of nice fonts to write code in, http://www.google.com/webfonts/specimen/PT+Mono is a new favourite of mine. Of course, your mileage will vary.
(edit: formatting)
Surprisingly often, this can be accomplished by simply running "watch" in a separate terminal window. (see also http://www.profv.de/vim-watch-wmii)
With DejaVu, you can easily get awesome things like: ▷ λ ⇒ ≤ ⊥ ⧺ ∈ ∆ ⤜ ∅ ∑ ≡ ∘ √ (all in true monospace that plays nicely with Vim!). I have to admit this may not be for everyone :), but fun to hack Haskell with.
Also I get the impression the poster uses ZSH, Tmux, and Vim. I use Vim and Tmux too, but unfortunately not at the same time if I can help it. There are one or two Vim commands that don't work in Tmux because of a key mapping conflict. Been so long since I've tried that I can't remember exactly what the conflict is, but does anyone know what I'm talking about and know of a solution?
Edit: Thanks everyone, very helpful. Also, in case anyone else wondering, after a little research, it appears the syntax for aliases are the same for .bashrc/.bash_aliases, .profile, and .zshrc.
So I moved all my aliases to .aliases and sourced that file .bash_aliases, .zshrc, (and .profile but I don't think it's needed here. also didn't seem to work when I sourced it in .profile only and not the other two).
The files you're describing are just startup files, read by bash as it starts up in various modes. I put my configuration into .zshrc. It will take some effort to understand your new shell's default behaviors and how to customize them.
unbind C-b
set -g prefix `
bind-key ` send-prefix
This removes Ctrl-b as the tmux prefix, sets it to ` (backquote) instead, and makes pressing ` twice insert an actual `.It really doesn't take very long to get used to typing `` when you mean `.
instead of .bash_profile you want .zprofile and instead of .bashrc you want .zshrc. Put your zsh aliases wherever you want (.zshrc will work fine).
Tmux uses Ctrl-B as its prefix by default, which is a commonly used key in vim. You can choose whatever prefix you want in .tmux.conf, maybe something which doesn't conflict with anything you use in vim, or you can rebind the one key with the conflict in vim's very flexible system. Also, Tmux will let you send through a prefix key literally (like Ctrl-B Ctrl-B).
That alone is worth me trying it out, particularly when browsing DB dumps and Apache logs which are all time stamped. (It's easier to identify the correct one than retype a timestamp)
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/ \1$(parse_git_dirty)/"
}PS1='[\w$(parse_git_branch)] '
I /love/ my editor, I've been using it for 20 years. There's a great visual merge tool I've been using every day for over a decade. And a handful of others. Some of these I purchased (and keep up to date) with my own money. I don't mind, it's worthwhile investment.
Then I see people who regularly write code in Notepad or the moral equivalent, and I want to cry. They have no idea what they are missing.
I happen to disagree on colors; I'm red-green colorblind. Colors may be great for providing hints, but conveying /meaning/ with colors is fraught with peril.
It's just a single file, so the checkout is easier, and it downloads all the plugins on its own.
Read the vimrc before you use it, otherwise you might find yourself a bit surprised.
I've tried a VIM plugin on IntelliJ IDEA, but it doesn't work well. I'd like to use the VIM keybindings with IDEA for the sake of speed and enjoyment, but it seems that I should first contribute quite a lot of code for the IDEA VIM plugin to get it working properly.
How do you VIM lovers work with Java code bases?
Cygwin is effectively a UNIX environment on your Windows machine, with support for many programs. A big draw is that it uses a UNIX folder structure /usr/, /etc/ and so on.
Git Bash, as I understand it, is just a bash prompt and basic tools (cd, ls and the like). You will probably have a hard time installing other programs. Don't take my word for it though!
Here's a better list in 5 minutes.
Vim + pathogen + NERDTree + CtrlP + CTags + surround.vim + whatever shortcuts you're comfortable with mapped to <leader>
Git + "git config --global --add color.ui true" + Tig
XMonad
Microsoft Ergonomic keyboard
Trackball mouse
Arch Linux
Grep + find
Ditz to track bugs for small projects
Sphinx for documentation
Jenkins for CI
Konsole
Ofcourse, Oh-My-Zsh + Zsh's vi mode + a good font too.
To add to my argument for when you downvote this, Fish is nicer to use and easier to setup than Zsh.
Seriously, someone blogs about three well known "tools", which has been done to death by now - one of which is about fucking fonts (seriously?) and that's considered a useful contribution?
I mean, with gems like these, how can you possibly go wrong?
>So the prompt here is a current directory surrounded with square braces.
Wow, thank you for explaining that. To contribute back, did you know that the sky looks blue in the day time?
>No one loves a slow terminal. No one.
Aha! But I love me a slow terminal!
>What makes a good programming font? > > mono-spaced > readable > you can tell the difference between O and 0.
Someone give this man a publishing contract, this is blowing my mind!
The level of brain damage here is mind bending. Even more so given that so many of you are sufficiently brain damaged that you are professional developers who can't dig up the 500 articles which have already covered this.
To add insult to injury, the highest rated comment is praising XCode. Because it's pretty. Jesus H Christ. From my experience with using Mac OS X, which I have no comprehension of how anyone can stand from up close - I mean come on, you JUST got the ability to full screen an app? You can't change the window manager to something usable? Want to customize something? Fuck you, customize that! Oh wait, you can't! - it's clear that Apple products are shiny on the outside and polished turds on the inside. The only good thing about OS X is what Apple didn't write - that is to say, the Mach 3 microkernel and BSD userland apps. Apple wrote iTunes in whole and it's an insult software applications.
http://devcodehack.com/xcode-sucks-and-heres-why/ http://amplicate.com/hate/xcode
So really? We have a group of developers for who having pretty buttons is more important than, you know, solving the fucking problem? I sincerely hope that I never have to work with anyone who fits into that category. You'll probably spend half the day plucking your eyebrows while the rest of us get shit done. Oh wait, I have, and they were just as idiotic as some of the people here. They were idiotic because style won over substance. If you care about style, go paint, design UI's or make music and get out of my industry.
Frankly, I'm sick of you hipster "developers". Bring back the four inch thick specs, uncombed hair and social anxiety ridden social rejects as I'd rather deal with them than this crap any day of the week. Someone here even hinted that them using Mac OS X when it was version 10.2 was a badge of honor. Yes, mentioning that you were there "at the start" then saying that you don't care about badges is implying that you see it as a badge. Moronic. Using Linux when it was in it's 0.x evolutions is a badge of honor. Writing kernel drivers is a badge of honor. Working on exotic systems like Solaris or QNX is a badge of honor. Get some perspective and show some respect for the roots of this culture.