quarta-feira, 31 de julho de 2013

back to the future (ii)

Savages - "City's Full" (2012)

quarta-feira, 17 de julho de 2013

O BPN

Alguém pôs no Memorando de Entendimento uma data limite para a venda do BPN. O Governo ainda em funções fez da venda do BPN um ponto de honra e assinou um contrato para tal, na véspera do fim do prazo estabelecido. Era obrigatória, dizia, quando tempos depois o cancelamento da venda da TAP mostrou a margem de manobra que sempre há nestas coisas. O acordo de venda do BPN envolveu comprovados telefonemas entre o actual Primeiro-Ministro e responsáveis políticos angolanos, país de onde veio o capital para a compra. Foi uma venda com fins políticos, politicamente enquadrada. Desde que o negócio foi feito, fomos sabendo pormenores. Hoje ficámos a saber que os actuais donos do BPN estão a resolver problemas legais herdados e a mandar a conta ao Estado (ver Público). Podemos não perceber nada desses problemas e até pode acontecer que os actuais donos estejam a fazer um serviço ao Estado. Tudo pode ser. O que é verdadeiramente estranho é que o Estado seja obrigado a pagar contas sobre actos que não pode controlar, sobre cujo preço não se pode sequer pronunciar. Não é estranho? É. Mas outra coisa não seria de esperar de um contrato feito nas circunstâncias descritas, por um Governo que não olhou a meios para atingir determinados fins, quase todos contraproducentes. Pode-se passar uma esponja sobre actos destes? Ou tudo isto é normal e só o povo é que não está a ver bem a coisa?

Pedro Lains, 15/07/2013.

# edit 20/07/2013:

Nicolau Santos, "Contas do Dia" Antena 1, 18/07/2013 [.mp3]

domingo, 7 de julho de 2013

Mac OS X: notificações automáticas de actualizações do sistema para utilizadores standard

UpdateCheck, Mac OS X Software Update notifications for non-admin users
Ideia/script original de Sven Anderson. Modificado por mim para ser compatível com o Mountain Lion. Usa o Finder em vez do Growl para notificar o utilizador; descarrega e instala as actualizações via terminal em vez de abrir a App Store por causa disto.

1.- Aceder à conta administrator.

2.- Abrir o ficheiro "sudoers" via visudo:
~$ sudo visudo

2a) Premir a tecla 'i' para editar.

2b) Adicionar o seguinte:
username ALL=NOPASSWD:/usr/sbin/softwareupdate
(ex: paulo_ ALL=NOPASSWD:/usr/sbin/softwareupdate)

2c) Premir a tecla 'Esc' para sair do modo edição.

2d) Escrever ':w' para gravar o ficheiro.
 
2e) Escrever ':q' para sair.

Nota: Se por qualquer motivo for preciso sair sem gravar, escrever ':q!'.

3.- Voltar à conta standard.


4.- Criar o ficheiro updateChecker.scpt via AppleScript Editor...
 set theList to every paragraph of (do shell script "sudo softwareupdate -l")  
 set updates to ""  
 repeat with anItem in theList  
      if anItem starts with "  * " then  
           if updates is not "" then  
                set updates to updates & return  
           end if  
           set updates to updates & (characters 6 thru -1 of anItem)  
      end if  
 end repeat  
 if updates is not "" then  
      tell application "Finder"  
           set answer to button returned of (display dialog "Software Update available:" & return & updates with title "Software Update available" buttons {"Cancel", "Launch Terminal"} default button {"Launch Terminal"} cancel button {"Cancel"} with icon file ":System:Library:CoreServices:Software Update.app:Contents:Resources:SoftwareUpdate.icns")  
           if answer is equal to "Launch Terminal" then  
                tell application "Terminal"  
                     do script "sudo softwareupdate -i -a"  
                     activate  
                end tell  
           end if  
      end tell  
 end if  
... e copiá-lo para ~/AppleScripts

5.- Criar o ficheiro de.anderson.sven.updateCheck.plist
 ~$ nano ~/Library/LaunchAgents/de.anderson.sven.updateCheck.plist
 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
 <plist version="1.0">  
 <dict>  
      <key>Label</key>  
      <string>de.anderson.sven.updateCheck</string>  
      <key>LowPriorityIO</key>  
      <true/>  
      <key>Nice</key>  
      <integer>1</integer>  
      <key>ProgramArguments</key>  
      <array>  
           <string>osascript</string>  
           <string>/Users/username/AppleScripts/updateChecker.scpt</string>  
      </array>  
      <key>RunAtLoad</key>  
      <true/>  
      <key>StartInterval</key>  
      <integer>86400</integer>  
 </dict>  
 </plist>  
Nota 1: Substituir 'username' pelo nome do utilizador. (Atenção: Não funciona se metermos '~'. É mesmo preciso pôr a path toda...).
(ex: /Users/paulo_/AppleScripts/updateChecker.scpt)

Nota 2: A directoria "AppleScripts" é, obviamente, apenas uma sugestão. Se decidirem copiar para outra directoria, não se esqueçam de fazer a respectiva alteração no ficheiro.

6.- Sair da sessão e voltar a entrar.
Ou executar no terminal:
~$ launchctl load ~/Library/LaunchAgents/de.anderson.sven.updateCheck.plist

# edit 23/07/2013