How to use command line on Mac OS X

A friend of mine (who came from Windows world) have bought a Mac recently and he asked me how to use command line on Mac OS X:

My answer was:

1) 99% of commands are identical in Linux. This is good news as there are a lot of material about it available on the Internet;

2) Terminal.app from OS X is cool, but it’s not perfect. I (and 90% of developers I know) use iTerm2 (http://iterm2.com/). It’s light (3mb), free, open-source, has a better interface than the native one and it rocks! Best terminal I’ve ever used.

3) This is the most useful topic in my answer: an awesome cheat-sheet with command line commands made by the Git-tower team;

4) To finish: I’ve recorded a screencast showing up how to create scripts in OS X and Linux (similar to BAT file in Windows). Unfortunately this is only available in portuguese:

What do I have in the OS X’s menu bar?

menubar

Application Description Type
Caffeine Prevent your Mac from automatically going to sleep, dimming the screen or starting screen savers Free
ColorSnapper Color picker Paid
1Password Password manager Paid
Dropbox File hosting service Free / Paid
CrashPlan Online data backup in real time Paid
Spectacle Window control Free / Open source
Evernote I love Evernote, but I don’t use this icon for anything.
When I close it, it returns automatically ¯\_(ツ)_/¯
Free / Paid
Chrome notifications I never really use it, but I guess there’s no way to remove it though Free
Text Expander Custom keyboard shortcuts into frequently-used texts Paid
AirPlay Play content on your TV via Apple TV Free
Time Machine Built-in backup feature of OS X that works with an external HD or Time Capsule Free

Um conselho para estudantes de computação

graduation cap diploma isolated on a white background

Enquanto eu divulgava o projeto do meu curso de programação pelas redes sociais, uma pessoa me fez a seguinte pergunta:

Terminei meu 1º semestre de Ciência da Computação e por enquanto, tudo parece tranquilo. Mas não deixo de me preocupar quando a coisa ficar realmente “interessante”. Fico pensando naqueles códigos de tamanho imenso, na lógica maciça empregada nele. Será que não enche o saco? Resolver bugs, procurando linha por linha onde está o erro? Valeu Lucas!

Minha resposta:

Olá! Interessante sua pergunta. Me lembro que na época de faculdade eu fazia estas mesmas perguntas :-)

Apesar de projetos / códigos crescerem, eu diria pra você não se preocupar muito com isso agora. Existem ferramentas que te ajudarão a organizar tudo isso. Exemplos: criação de testes automatizados, controlador de versões (como Git), bons editores (ou IDEs), etc.

Se você quiser saber como será sua profissão futuramente, uma boa maneira de ver isso na prática é olhar os pull requests de algum projeto open-source e ver o que está sendo discutido lá. Aproveite e veja os códigos também, você vai ver que mesmo em um projeto grande, não existe bicho de 7 cabeças (ok, algumas raras vezes existe). A página de pull requests do Rails é um bom lugar pra ver isso: https://github.com/rails/rails/pulls.

Eu sou completamente apaixonado por essa área e não consigo me ver fazendo outra coisa. O bacana é que você pode trabalhar com muitas coisas diferentes, como desenvolvimento web (backend ou frontend), desenvolvimento de jogos, desenvolvimento de apps para iOS / Android, robótica, IA, BI, entre outros – a lista é grande. Enfim, é uma área muito bacana :)

Claro: nem tudo são flores. Tem dia que enche o saco, tem dia que nada funciona e isso pode ser um pouco irritante. Mas nada que uma noite bem dormida e um bom café pra renovar e partir pro código novamente.

Minha dica final é: siga pessoas da área. Mas não se limite somente à blogs, veja também o que bons programadores (brasileiros e gringos) estão falando nas redes sociais, leia bons livros, participe de eventos da comunidade (exemplo: GuruSP), seja curioso (pergunte sempre) e não se limite somente ao que a faculdade pode te oferecer.

Durante o período de faculdade você tem basicamente 3 fontes de aprendizado: sozinho (auto-ditata), através de colegas e através das aulas (professores). Todas são importantes, mas nunca siga seu caminho utilizando apenas as aulas. Conseguir ler bons livros, criar uma boa base de conhecimento na área ou fazer boas amizades durante esse período é essencial. Além disso, colegas da faculdade são potenciais futuros colegas de emprego (podem te ajudar a conseguir um) ou ainda futuros sócios! :)

Coisas sobre Linux que me chamaram a atenção recentemente

LinuxVersions

Você pode não saber (ou esquecer às vezes), mas o Linux está muito presente na sua vida. Mesmo que você não o use diretamente como sistema operacional principal, mais da metade dos sites que você acessa está rodando em plataforma Linux. Isso inclui empresas gigantes como Google, Facebook, Twitter, Soundcloud, Amazon, Spotify, etc – a lista é muito, mas muito longa. A maioria dos filmes que você assiste utilizam Linux para renderizar cenas extremamente complexas que às vezes levam semanas ou mesmo meses para serem renderizados. O sistema móvel Android também é um Linux também caso você não saiba. E o seu roteador e a sua SmartTV provavelmente rodam Linux também!

Embora atualmente meu computador principal rode OS X, eu estou em contato com vários servidores que rodam Linux os quais acesso frequentemente. Além disso, utilizei Linux como S.O. principal de 2007 à 2011, através das distros Ubuntu e OpenSUSE (além de outras que utilizei por pouco tempo, como Slackware e Debian).

Na última semana várias coisas me chamaram a atenção no mundo Linux e esse é o motivo desse post:

1. O último episódio do podcast do Hack ‘n’ Cast (v0.3) foi uma introdução ao Linux e foi muito bom, vale a pena escutar: http://mindbending.org/pt/hack-n-cast-v03-introducao-ao-gnulinux.

2. Um amigo que é programador disse que nunca (palavra forte!) usaria Linux porque nem criar um script similar ao batch do “Janelas” ele conseguia. Bom, pensando que isso pudesse ser útil para mais pessoas, gravei um screencast ensinando como criar scripts no Linux e no Mac OS X: http://youtu.be/W84Ok6XGnow.

3. Assisti à uma ótima palestra chamada “Linux Sucks”: http://youtu.be/5pOxlazS3zs.

4. Lembrei e reli o excelente ponto de vista do Pothix sobre porque ele deixou o OS X e voltou a usar Linux: http://pothix.com/blog/development/menos-mac-e-mais-linux.

5. Pra finalizar (e descontraír), há um tempo atrás eu ganhei de um amigo que trabalha na RedHat um chapél vermelho (red hat, rá!), o qual foi parar na cabeca do Tux que eu tenho na minha estante, vide fotos abaixo. Ficou bem bacana! :-)

1

2

Bom, essa não é a primeira vez que eu escrevo sobre Linux e também não será a última. Linux é muito mais importante do que as pessoas pensam. Pense 3 vezes antes de subestimar o sistema do pinguim! ;)

Swift BR – grupo de discussão sobre a nova linguagem lançada pela Apple

swift-icon

A idéia desse grupo é fazer com que os usuários possam conhecer uns aos outros, compartilhando e discutindo idéias interessantes relacionadas à essa nova linguagem lançada pela Apple, para substituir o Objective C como linguagem padrão para desenvolvimento de aplicações tanto OS X quanto iOS.

https://groups.google.com/d/forum/swiftbr