Actualizarea sistemului de operare

Primul pas pe care îl fac este actualizarea sistemului de operare și a aplicațiilor care sunt deja instalate. Pentru mine este foarte important ca aplicațiile și sistemul de operare să fie actualizat, îmi place să descopăr noi posibilitați. Uneori am șansa să dau și peste noi bug-uri, asta este prețul când încerci lucruri noi și sunt ok cu el :).

Setări Dock, pentru laptop prefer să-l fac mai mic și să fie implicit ascuns.

Homebrew

El este managerul de pachete pentru MAC OS cu ajutorul căruia pot instala diferite aplicații. Pentru a-l instala avem nevoie de  Xcode Command Line Tools care poate fi instalat și din linia de comandă

$ xcode-select --install

după care instalăm homebrew

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Următorul pas testăm daca totul s-a instalat ok cu ajutorul comenzii

$ brew doctor

Următorul raspuns va apărea in cazul în care nu sunt erori: our system is ready to brew.

Cum utilizăm Homebrew

Pentru a instala un pachet (aplicație) folosim una din următoarele comenzi:

$ brew install <nume-pachet>
$ brew cask install <nume-pachet>

Ultima îți dă posibilitate să instalezi programe externe cum ar fi spre exemplu Google Chrome

Pentru a actualiza Homebrew:

$ brew update

Ca să vezi care pachete trebuie actualizate:

$ brew outdated

Pentru a actualiza un pachet folosim:

$ brew upgrade <nume>

Homebrew păstrează pachetele vechi instalate in caz că noua versiune iți dă bătaie de cap și trebuie să revii la o versiune anterioară. De obicei rar cînd mă întorc la o versiune mai veche, peste câteva zile după actualizare șterg versiunea cu ajutorul:

$ brew cleanup

În caz că dorești să vezi ce ai instalat:

$ brew list --versions

iTerm2

Terminalul de baza este destul de bun, dar eu prefer iTerm2 pentru setările care pot fi făcute, taburi și culori (theme). Pentru a-l instala:

$ brew cask install iterm2

SSH

Fiind developer ai nevoie să accesezi spre exemplu servere externe sau să utilizezi cheia ta pentru a  te conecta la serverele git cum ar fi GitHub sau Bitbucket pentru aceasta generăm cheile noastre cu ajutorul comenzii:

$ ssh-keygen -t rsa -b 4096 -C "valeriu@example.com"

Acum de fiecare dată cand vei folosi SSH iți va cere să scrii passphrase, pentru a simplifica conectările instalăm SSH Agent

$ brew install ssh-agent

Pe GitHub  găsiţi acest articol unde este foarte bine explicată această procedură.

GIT

Folosesc la greu Git, pot spune că pentru 99% din proiecte, am început să-l utilizez din linia de comandă după care am trecut la clientul oferit de GitHub ca până la urmă să mă opresc la Sourcetree:

$ brew cask install sourcetree

Dacă nu folosești încă git, îți recomand să începi chiar de acum.

Setările globale pe care le fac sunt:

$ git config --global user.name "Valeriu Tihai"
$ git config --global user.email "valeriu@example.com"

Gitignore

Creez un fișier gitignore

$ vi ~/.git_ignore_global

în care adaug următorul conținut:

# MAC OS #
# ------------------------------------------ #
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# Windows OS #
# ------------------------------------------ #
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache

# Sublime Text #
# ------------------------------------------ #
# workspace files are user-specific
*.sublime-workspace

# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project

# sftp configuration file
sftp-config.json

# Package control specific files
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/
Package Control.merged-ca-bundle
Package Control.user-ca-bundle
oscrypto-ca-bundle.crt
bh_unicode_properties.cache

# Sublime-github package stores a github token in this file
# https://packagecontrol.io/packages/sublime-github
GitHub.sublime-settings

# WordPress #
# ------------------------------------------ #
*.log
wp-config.php
wp-content/advanced-cache.php
wp-content/backup-db/
wp-content/backups/
wp-content/blogs.dir/
wp-content/cache/
wp-content/upgrade/
wp-content/uploads/
wp-content/wp-cache-config.php
wp-content/plugins/hello.php

/.htaccess
/license.txt
/readme.html
/sitemap.xml
/sitemap.xml.gz

# Node.js #
# ------------------------------------------ #
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

# SASS #
# ------------------------------------------ #
.sass-cache/
*.css.map

# Compiled source #
# ------------------------------------------ #
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
# ------------------------------------------ #
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

Dacă ai nevoie de ceva specific pentru tine atunci îți recomnad să vezi în acest repozitoriu ce setări pentru gitignore sunt.

Ultimul pas, îl învăț de git unde este acest fișier și în asa fel nu este nevoie ca de fiecare dată în fiecare proiect să adaug .gitignore. În așa fel fișierele nu vor fi încărcate pe serverele git și vor rămâne numai în calculator.

$ git config --global core.excludesfile ~/.git_ignore_global

Browser

Este clar că nu poți face Front-End fără a avea browser de aceea eu instalez Google Chrome și Firefox:

$ brew cask install google-chrome
$ brew cask install firefox

Browserul meu de bază este Google Chrome, extensiile pe care le folosesc de obicei sunt:

Sublime Text

$ brew cask install sublime-text

Sublime text este editorul meu preferat, ușor de utilizat, rapid și care are multe extensii care măresc productivitatea atunci când e nevoie să scrii cod. Am observat un lucru interesant, lumea este mirată când văd că scrii pe un fundal întunecat.

Pentru a putea adăuga diferite extensii instalăm Package Control:

$ cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/
$ git clone https://github.com/wbond/sublime_package_control.git "Package Control"

După care putem instala diferite extensii, Command+Shift+P alegem din listă Install Package și apoi scriem numele extensiilor dorite.

Gulpjs

Pentru a instal Gulp avem nevoie de Node.js pentru aceasta scriem comanda următoare;

$ brew install node

Apoi instalăm gulpjs global

$ npm install gulp-cli -g

Aceasta este instalarea de bază, la care se va adăuga de fiecare dată și instalare locală in mapa proiectului și tot acolo vom adaugă setările specifice și vom instala extensiile necesare, dar despre toate acestea vom vorbi într-un alt articol pentru că este o temă destul de complexă cu detaliile sale.

MAMP PRO

Folosesc MAMP pentru a putea lucra la diferite proiecte local, softul dat vine cu o mini suită de programe și utilitare cum ar fi  Apache, Nginx, MySQL, Apache, PHP, Perl, Python, Dynamic DNS, Memcached, Postfix, phpMyAdmin, APC, SQL Lite Manager, phpLiteAdmin, Sequelpro, eAccelerator, XCache, OPCache și altele

$ brew cask install mamp

Ce mai instalez?

$ brew cask install dropbox
$ brew cask install filezilla
$ brew cask install skype
$ brew cask install spectacle
$ brew cask install vlc
$ brew cask install slack
  • Dropbox pentru a sincroniza documentele necesare;
  • Filezilla clientul FTP și SFTP utilizat atunci când nu am acces prin SSH la serverul clientului;
  • Skype vorbesc cu familia;
  • Spectacle penru a gestiona ferestrele fără ajutorul mouse-lui;
  • VLC este playerul video, care îl folosesc tot mai rar din cauza că totul se petrece online deja;
  • Slack comunicare cu diferite echipe, de exemplu WordPress.

Vizualizare rapidă

$ brew cask install betterzipql
$ brew cask install qlcolorcode
$ brew cask install qlimagesize
$ brew cask install qlmarkdown
$ brew cask install quicklook-csv
$ brew cask install quicklook-json

# sau asa
$ brew cask install betterzipql qlcolorcode qlimagesize qlmarkdown quicklook-csv quicklook-json
  • betterzipql – vizualizarea arhivelor
  • qlcolorcode – pentru a vedea sintaxa codurilor
  • qlimagesize – arată dimensiunea si rezoluția imaginii
  • qlmarkdown – vizualizarea fișierelor Markdown
  • quicklook-csv – vizualizarea fișierelor CSV
  • quicklook-json – vizualizarea fișierelor JSON

Concluzie

Acestea de obicei sunt programele și setările mele de bază pentru a putea începe să lucrez, cu timpul la sigur că mai apar și altele care sunt instalate atunci când am nevoie de ele.

Actualizează la timp sistemul tău de operare, aplicațiile și uneltele. Instalează pentru început numai strictul necesar, după, în dependență de necesitate adăuga programe noi.

Eu am ales să instalez cu ajutorul liniei de comandă pentru că sar peste etapa de a copia fișierele în calculator și cel mai mare avantaj – comenzile pot fi grupate (brew install nume1 nume2 numeN) și ele se executa singure una câte una.

Sunt curios să aflu care sunt preferințele tale.

Valeriu Tihai