Tag-arkiv: Coda 2

Mac programmer jeg bruger på arbejdet

Macbay.dk er der ofte gode fif og tricks til forskellige apps medlemmerne af sitet bruger. Det fik mig til at tænke på at skrive hvad der er blevet til denne blogpost om de apps og metoder jeg bruger på min Mac i forhold til mit arbejde.

Min baggrund er at jeg arbejder med webudvikling (backend og frontend) i CMS’et Plone som er bygget oven på Zope og Plone. Plone er et CMS der ikke er så voldsomt kendt i Danmark, men det er med i toppen af poppen i udlandet. Organisationer som NASA, FBI og CIA er blandt de større der bruger systemet – ud fra at det er et af de mest sikre systemer med ganske få sikkerhedshuller gennem tiden (http://quintagroup.com/cms/plone/security).

Denne blogpost indeholder ikke en gennemgang af hvordan jeg bruger programmerne i detaljer, det er blot en liste over de programmer jeg bruger samt en kort beskrivelse. På et senere tidspunkt vil jeg gå mere i dybden med hvordan jeg bruger programmerne.

 

Grundlaget

En stor del af tiden foregår i Terminal hvor jeg styrer udviklingsserver (lokalt) og hvorfra jeg SSH’er til staging og production server (Ubuntu LTS servere).

 

Applikations listen

Sublime Text 2 (http://www.sublimetext.com/)

Source code skabes for det meste i Sublime Text 2, som har erstattet Textmate for mig (da det lå klart at det program mere eller mindre er dødt også selv om det nu er OSS).

Sublime Text har jeg valgt da det er cross platform og er en editor der har stort momentum i udvikler kredse.

Der findes OSS editore som VIM, Emacs osv. men selv om jeg har prøvet, så har jeg bare ikke kunnet vænne mig til deres workflow, hvorimod Sublime Text 2 har virket rigtigt fra start af.

Sourcetree app (http://www.sourcetreeapp.com/)

Jeg bruger Git til at holde styr på min sourcecode. Git er et distribueret versionsstyringsværktøj, som ikke er afhængigt af et centralt lager hvor udviklere indsender revisioner til. Subversion er det modsatte, nemlig et centraliseret lager. Begge dele har sine fordele og ulemper. Da jeg skulle vælge hvilket system jeg ville bruge, brugte jeg lidt tid på Google og der kunne jeg se at tendensen helt klart er at udviklere bevæger sig væk fra centraliserede versionsstyringssystemer over til de distribuerede.

Sourcetree app integrerer fint til online tjenester som Github (https://github.com/) og Bitbucket (https://bitbucket.org/). Jeg har valgt at bruge Bitbucket, da det giver gratis private repositories, hvor disse koster pænt meget ved Github.

Coda 2 (http://panic.com/coda/)

Jeg bruger Coda 2 udelukkende til SCSS (http://sass-lang.com/) og LESS (http://lesscss.org/) filer grundet dets ganske udemærket autocomplete og selectors til disse. Jeg bruger det ikke som kode editor da editoren ikke når Sublime Text 2 til sokkeholderne.

Pixelmator (http://www.pixelmator.com/)

Jeg er ikke grafiker, og har heller ikke de store grafiske evner så et billigt program som Pixelmator er mindst lige så godt for mig som Photoshop ville være det. Jeg ville dog ønske at det havde lidt flere af de samme muligheder som Fireworks har, men til prisen er det OK til mig.

Codekit (http://incident57.com/codekit/)

Webværktøj der indeholder de precompressors der bliver beskrevet herunder. Programmet er ikke nødvendigt, da man kan køre alle disse preprocessors direkte via Terminal, men det gør det meget mere simpelt kun at have et program kørende i stedet for at skulle holde styr på en lang række Terminal vinduer (og man behøver ikke at installere de forskellige precompressors da de er embedded i Codekit).

 

Sprog/frameworks jeg anvender

Python

Plone og Zope er bygget oven på Python (og en lille smule C), og udvides via Python. Python er et rigtig dejligt sprog, som efter PHP virker som et dejligt pust af frisk luft. Man skal dog lige vænne sig til at indentions er alfa og omega for ens scripts, men det er rart at slippe for at skulle bruge $ og ; hele tiden.

SCSS, LESS, Compass og Jade

Hvis man arbejder med CSS filer og ikke anvender en css preprocessor, så snyder man virkelig sig selv for at gøre CSS arbejdet nemmere og ikke mindst mere overskueligt.

Skal jeg starte på et nyt projekt med CSS er det SCSS (http://sass-lang.com/) jeg anvender sammen med Compass (http://compass-style.org/). Disse to giver mig en masse CSS muligheder med at skrive CSS der virker på tværs af flere generationer af browsere (og ja det er sgu altid lorte IE der er problemet). LESS bruger jeg mest når jeg skal tilpasse Twitters Bootstrap framework til et nyt site. LESS (http://lesscss.org) og SCSS minder meget om hinanden, men SCSS er lige en tand kraftigere og giver lidt flere muligheder.

SCSS og LESS koden er meget kortere end den CSS kode der bliver genereret, og det giver den fordel at det er meget lettere at overskue, og da det kan håndtere kode til forskellige browser versioner, så spare det også en for meget tid med at rode med css hacks.

Jade (http://jade-lang.com/) er en HTML template engine, som er en forkortet variant af HTML. Fordelen er igen at Jade koden er nem at læse og have et overblik over, og det er meget hurtigt at lave ens HTML om selv i komplicerede opbygninger, hvor man nemt kan miste overblikket.

Twitter Bootstrap (http://twitter.github.com/bootstrap/)

Før jeg opdagede Twitters Bootstrap framework brugte jeg ofte alt for lang tid på at opbygge den basale HTML kode på forskellige sites (og ikke mindst på at lave en opbygning der virker i flere varianter af Internet Explorer – jeg er stadig nødt til at supportere version 8 da det er den version der kører på vores terminal miljø.).

Grund opbygningen af Bootstrap gør at det kun er nogle få visuelle ting der ikke er mulige i f.eks. IE8, men selve strukturen skrider ikke og ødelægger ikke sitet

 

Diverse andre programmer

Alfred.app (http://www.alfredapp.com/)

Dette program er i gratis versionen ikke ret meget mere end en app launcher, og er ikke meget mere bevendt end Mac OS eget Spotlight, køber man dets PowerPack så sker der ting og sager, og så går det hen og bliver et meget kraftfuldt værktøj til at manipulere filer med eller til at udføre almindelige opgave.

Moom (http://manytricks.com/moom/)

Program til at kontrollere størrelse og placering af åbne vinduer uden at skulle bruge mus/trackpad. Jeg holder af at bruge tastaturgenveje hvor det er muligt, og med programmer som Alfred og Moom så er der rigtig mange ting jeg kan klare blot via tastaturet, hvor jeg ellers tidligere skulle igennem flere handlinger med trackpad for at opnå det samme

Hazel (http://www.noodlesoft.com/hazel.php)

Program der kører i baggrunden, og udfører forskellige handlinger på forskellige foldere. Jeg bruger dette mest til oprydning og standardbehandling af filer jeg modtager fra andre via Dropbox.

Dropbox (https://www.dropbox.com/)

Uundværlig cloud service – jeg tør næsten ikke tænke på hvor besværlig min hverdag ville være hvis ikke det havde været for Dropbox. Jeg bruger det fra alt til lokale repositories når jeg udvikler, til dokumenter, til deling mellem kolleger og familie, til lagring af programindstillinger. Der findes andre tjenester der kan det samme, men jeg har ikke prøvet nogen endnu som har været lige så pålidelig som Dropbox

Evernote (http://evernote.com/intl/da/)

Jeg bruger evernote primært som mødenotat værktøj, men også som drejebog for de sites jeg arbejder på. Ofte er det eksisterende hjemmesider jeg udvikler til, og der er tit problemstillinger i forhold til det nyudviklede, som jeg skal tage højde for når udviklingen er fuldført, og jeg skal til at implementere til live data (der aftales en frysning af indhold, og der opbygges et parallelt site med det nye konverterede indhold som så bliver til det nye live site). Der bruger jeg Evernote til at beskrive de steps jeg skal huske at gå igennem, eller de problemstillinger jeg ikke kan scripte mig ud af.

OmniFocus (http://www.omnigroup.com/products/omnifocus/)

Task management program. Jeg bruger Omnifocus på Mac, iPhone og iPad. Det giver et super overblik over de opgaver jeg sidder med og det er dejligt nemt at nedbryde de forskellige opgaver til små bidder som er overskuelige at gå i krig med. Tidligere brugte jeg en blanding af mails og papir noter, og på et eller andet tidspunkt bliver det så uoverskueligt at man er nødt til at skifte metode, og jeg fandt OmniFocus og GTD (http://en.wikipedia.org/wiki/Getting_Things_Done) som er den metodik det læner sig op ad.

 

Dette var en kort gennemgang af de programmer jeg anvender i min dagligdag på arbejdet med min Mac. Hvis du har spørgsmål om programmerne eller hvordan/hvorfor jeg bruger dem, så er du velkommen til at skrive en kommentar herunder.