AngularJs, Backbone, Meteor, Knockout… It’s all a poker game after all, isn’t it?

So many interesting things, all claiming to be the next revolution in WebApp development… Right now seems that it’s the time to bet in one of them and see who wins the race.

I’m betting on Angular, the only thing that still bothers me is the tendency to create too many “reusable” components that are not plain HTML tags, like their <tabs> example on http://angularjs.org/

Also, they have a huge parter (Google) and on their first meetup they revealed that google is going to launch apps written in angular.

Code Syntax Highlight on Sharepoint 2007

So… I got fed of not having code syntax highlighting on our corporate sharepoint, and the solution we were using (copying code from Aptana and pasting it as rich text) is awful. You end up with hundreds of pointless font-face and font-color tags. terrible. nonsense. just awful.

So, the solution is to use some JS Code Syntax Highlighter (nope, no server components access). Here I expose the steps taken and the result (that is awesome).

First things first: Find your master on Sharepoint Designer

Well, if you don’t know what’s Sharepoint Designer, there are some things that you can only do with that. Download Sharepoint Designer 2007 (or a version for your sharepoint) and run it. Then open your sharepoint site on it. Your master (the file that gets included on every page) is located at /_catalogs/masterpage/default.master.

Sharepoint Designer 2007 File Manager

The KISS of Version Control

Save a copy of default.master, just in case. You never need that until you need that…

Which syntax coloring script should I use?

Yes, I’ve done that question… and googled it as well, checked out some options, ended up with Alex Gorbatchev’s Syntax Highlighter (is he related to Mikhail Gorbachev? Have no idea…).

A couple files are needed:

  • shCore.js
  • shBrushJScript.js
  • shCore.css
  • shThemeDefault.css

I added another dark theme, RDark.

Concat, minify, upload to SP server

There’s a way to use Alex’s CDN, but I wouldn’t advise that for 2 reasons:

  • You’d be increasing his traffic bill
  • If his server is down, your intranet would be down
So, I got the CSS files and went to htmlcompressor.com, dragged the files to the compressor, created a new css file on sharepoint (/css/syntax.css) and pasted the minified CSS onto it.
Then, the same with JS, but with a couple different settings:
  • Google Closure Compiler (v1810)
  • Single line output
  • Did not use JSMin as failback engine (Closure is more strict to errors than JSMin)
  • Added a comment onto this file with a link to Author’s website (future reference)
Created a new JS file on SP (/js/syntax.js) and pasted the minified thing to it.
Finally, edit default.master
Then, I’ve checked to see if I had done a backup for the master and added the following code to the HEAD tag:

(Of course I’m omitting server and company data here)

Then, I just had to erase all the junk html to a cleaner version, using the <pre class=”brush:js”> approach. This is the final result:

JS Coding Standards from Douglas Crockford on Intranet’s Sharepoint Site, proper syntax and RDark theme (cuz we like to code on dark bg, don’t we?

Well, I’m much happier now :)

CORS Proof of Concept

Getting data from a completely different domain without XSS headaches… CORS awesomeness is awesome!

Server:

Client:

Reinstalar OSX Lion do Disco de Recuperação (por HDD fail)

Pois é… o mac começou a ficar instável, com umas lentidões anormais. Imaginei que era o pouco espaço em disco disponível, ou algum erro de permissões. O que fazer? Mandar o Disk Utility verificar…

Ele me disse que precisaria carregar o recovery mode e rodar novamente o programa. Fiz isso, bootando e segurando Command + R. Mandei verificar, ele disse que precisava reparar. Mandei reparar, disse que não conseguia recuperar. Aconselha fazer backup do que puder e reinstalar o sistema (tradução: salve-se quem puder).

Ok, penso eu… reboot e toca a vida. Porém, ao rebootar, aparece uma barra de progresso embaixo do spinning wheel (achei em algum lugar que era um fsck rodando em bg) e antes que a barrinha se complete, o computador desliga. Só consigo bootar no Recovery mode (Command  + R). Que fase…

Bom, peguei o meu HD externo, limpei umas coisas que haviam nele e fui fazer backup. Tendo só o terminal, usei cp -pr, e para copiar os arquivos ocultos juntos, usei a dica que achei do #shopt -s dotglob.

Depois do backup do /Users/meu_usuario (evitando Library que é enorme, e outras tralhas) rebootei no recovery console. Mas ao tentar instalar o Lion, ele trava o HDD primário, o que faz sentido já que o próprio Recovery Console roda a partir do disco que ele vai precisar apagar. Então a solução é passar o Base System (650MB que tem o recovery console e ferramentas como Terminal e o instalador do Lion) para um pen drive. Aí a dúvida: Todo tutorial que achei não funciona, por um detalhe ou outro. Então decidi escrever, em português, o que estou fazendo pois parece estar funcionando. Neste exato momento estou olhando a tela de instalação do Lion no HDD limpo, me dizendo que vai levar “About 5 hours and 38 minutes” para concluir o processo…

  • A primeira coisa é pegar um pen drive disposto à limpeza, e bootar o mac com Command + R. 
  • Depois, launch o Disk Utility, e formate o pen drive com HFS, o formato Journaled nativo do mac
  • Para listar os devices montados, digite mount
  • No meu caso, o disco do Recovery estava montado em /dev/disk0s3 (/Volumes/Image Volume)
  • Sabendo disso, pode-se montar com diskutil mount /dev/disk0s3
  • E depois, finalmente, se monta a partição que será gravada no pen drive com hdiutil mount /Volumes/Image\ Volume/com.apple.recovery.boot/BaseSystem.dmg -noverify
  • Feito isso, basta sair do Terminal com CMD+ Q e abrir o Disk Utils. O disco montado vai aparecer ao lado, clique nele, depois no tab Recovery e para o campo Destination arraste o penDrive recém formatado.
  • Clique em Restore e aguarde, o sistema de recuperação está passando para o pen drive.
  • Depois disso, é só Restartar o sistema, com OPTION pressionado. Aparece uma tela com dois discos, o de recuperação e o pen drive (alaranjado).
  • Selecione o pen drive, e o Recovery Console abrirá, agora a partir do pen drive.
  • Escolhi o “Reinstall OS Lion”, e agora pude escolher o HD principal do computador.

Quando comecei este artigo, faltavam 5,5h, agora estou em 3 horas e 10 minutos.

Passaram-se aproximadamente 2h. O note rebootou e agora está instalando o sistema. About 18 minutes, diz ele. 

O tempo incial depende da conexão com a internet, pois ele tem de baixar uns 4GB que equivalem ao disco de instalação.

Depois, como o php já vem instalado vou instalar um mySQL e baixar os backups dos sites. Movies e etc são secundários. O que preciso de início é Firefox, Chrome, Editor de código, FTP client. Interessante como na verdade se usa pouca coisa! E um editor de imagens tb. Ao invés de preservar todos os instaladores que tinha no HD, optei por baixar de novo. Assim também instalarei menos coisas.

11 minutos, diz ele…

Rebootado o sistema, entrei no Lion, skipped colocar a minha foto. Restaurando arquivos do backup e instalando programas.

Como sempre, esqueci de fazer um backup dos favoritos do Safari. Tudo bem, Chrome pega da Cloud.

Eis a lista:

  • da AppStore
    • Growl
    • Alfred
    • Cloud
    • MplayerX
    • Twitter
    • FlyCut
  • iWork 09
  • iLife 11
  • Chrome Canary
  • Firefox 11
    • Colorzilla
    • CSS Usage
    • Firebug
    • Firebug Autocompleter
    • Firecookie
    • Firequery
    • MeasureIt
    • Web Developer Toolbar
  • Flash
  • Sublime Text 2
  • DropBox
  • Sparrow
  • TrueCrypt
  • Lion Tweaks

Continua…

Best Terminal Tip Ever!

How to do a quick and easy backup on a *nix system?

First, enable cp to include hidden files

Then, just

I’m using it now to back up my user to an external HD, in recovery mode, on a macbook.

Will edit this post after its finished….

Update: Finished, everything seems to be alright!

MacOS .htaccess not setting php_values [SOLVED]

So… I’ve spent a good amount of minutes trying to figure out why my local Apache wasn’t setting php_values, because everything seemed fine… actually it was ignoring .htaccess completely, and the httpd.conf was with AllowOverride All. Just couldn’t get what was going on…

Then, I found out that my MacBook has a /etc/apache2/users directory, and inside it a tiny my_user.conf with AllowOverride None!!!

Changed from None to All, Also added FollowSymLinks in the Options line, and now everything is as it should be…

Beware the /etc/apache2/users dir!

Mashup = grooveshark + musicuo Bookmarklet

 

musicuo Bookmarklet

Instalar Modem 3G Claro no OS X Lion

Sabe o que mais admirava no Steve Jobs? O ponto de vista do “it just works”.

A Claro, ou Huawei, alguém, não pensa do mesmo jeito no Brasil.

Estou num café baixando drivers do Huawei E226 para fazer esta joça funcionar no mac com Lion, e eis o que descobri até agora:

  1. O driver na página de suporte da Huawei para Macs é um .exe (WTF?)
  2. Provavelmente não vai funcionar
  3. Não existem páginas em português sobre o assunto
Por isso estou escrevendo este post. No momento estou baixando dois drivers, um da operadora 3 de UK que parece ter funcionado para algumas pessoas, de 7.4MB, e outro do 4shared (valha-me) de 14MB. Tudo isso para ter no meu network panel o bendito HUAWEI Mobile e com isto criar uma nova interface.
Quase terminando de baixar… Por incrível que pareça o de 14MB está descendo mais rápido, provavelmente será o primeiro.
Ok. O patacão de 14MB tem uns drivers em 32 bits que não funcionam e um monte de PDFs, useless…
O instalador da operadora de UK parece mais promissor. Abriu um assistente da “3″ mas me permitiu escolher um Custom provider…
Vou verificar se aparece o Huawei no Network Setup antes de continuar… Aparecem 2 entradas. Mas já que estou neste wizard, vamos ver o que ele faz…
Depois de me bater um pouco procurando Telephone Number, me liguei que na VIVO era *99#, então tentei o mesmo.
senha = claro
Feito isso, botei para conectar, desliguei o wifi e… voila! Estou terminando de escrever o POST na rede 3G.
Agora vou começar o processo de limpeza…
Na pasta do 3Connect tem um Uninstaller, mas sou capaz de apostar que ele vai tirar o driver também, então vou pelo AppCleaner. Apareceram os arquivos abaixo, conectado vou tentar remover todos (se ele tentar remover o driver, imagino que vá causar um erro e abortar)
Arquivos removidos, continuo na internet. Sucesso. :)
Removi uma outra entrada no Network Panel, Além do modem. Nada gritou nem quebrou. Feeling good so far.
Vou considerar done. Levou mais tempo que eu esperava, algo em torno de 30 minutos incluindo as buscas… mas agora funciona.
Boa sorte, quem ler este.

Grooveshark’s bookmarklet