2012-01-29

Configuring rake tasks with 'whenever' and using app specific rvm settings (.rvmrc)

There's a thorn waiting for you if you decide to schedule your rake tasks using cron if you chose to manage you ruby and gems installs with rvm on an app by app configuration.

'Whenever' already does the heavy lifting, but out-of-the-box it still won't work 'cos when cron fires a rake task you'll get a "Could not find bundler" error. A bit annoying... It sounds as if the rvm environment isn't set. And it's not!

The 'whenever' github project says:

"All jobs are by default run with bash -l -c 'command...'. Among other things, this allows your cron jobs to play nice with RVM by loading the entire environment instead of cron's somewhat limited environment."

And that's fine and all, but if it is so, why are we still getting those errors?

After going through the bash specification it became clear that the rvm "magic" that loads the gemset when you're inside your app directory couldn't happen because running bash -l gives you a login shell that won't fire all the bash configuration files you use when you open a terminal. For that you need the 'interactive' shell, or in another words you need to run it as bash -l -i.
But I haven't yet answered WHY you need it.

This is why:

When you install rvm you need to "Load RVM into your shell sessions as a function", you can see that in the rvm install page.
What this means is that you need to add a script line to one of you bash configuration files. They recommend .bash_profile and the script is:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

So, in order to have this when running a cron task you have 2 choices:
- Include the script on your task list of commands (messy and cumbersome)
- Run bash in interactive mode (clean and transparent, although eventually slower due to the overhead)

If you don't want to get your hands dirty on the output of 'whenever', I suggest you define the whenever's path and job template and place it on the schedule.rb file:

env 'PATH', ENV['PATH']
set :job_template, "bash -l -i -c ':job'"

Then run whenever --update-crontab

And you're done!

2011-06-08

Gimp failing to start in Kubuntu (11.04)

Although this is no brainer, here's a solution to a problem I had when I moved to KDE, but first the problem:

- GIMP is installed and running under Gnome;
- GIMP fails to start under KDE;
- Problem persists if you remove and re-install it;
- In Konsole, 'gimp' shoots a "segmentation fault":
(gimp:4450): GLib-WARNING **: /build/buildd/glib2.0-2.28.6/./glib/goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0
Segmentation fault

- But... GIMP runs if you 'sudo gimp' it...

Turns out that is a theme related issue...

All you have to do is:
  • start 'System Settings' and choose 'Application Appearance' in the 'Common Appearance and Behavior' group
  • choose the 'GTK+ Appearance' tab and select the option 'Raleigh' in the 'Widget style' drop down list.
  • click on the 'Apply' button.
  • start GIMP by clicking on it's icon (Kmenu>Applications>Graphics).
It should start without any problem and you're good to go!
You can even go back now and change the GTK+ Appearance to whatever you had before, because it won't matter.

2011-04-13

Access iPad file system using ubunto

After a few chokes I managed to access the file system of my iPad2 using Ubunto, here are the steps it took to get the job done:


1 - add this PPA:

ppa:pmcenery/ppa

2 - update:

sudo apt-get update

3 - install ifuse:

sudo apt-get install ifuse

4 - install libimobiledevice:

sudo apt-get install build-essential automake autoconf libtool libgnutls-dev libglib2.0-dev libxml2-dev libreadline5-dev

5 - install libimobiledevice1:

sudo apt-get install libimobiledevice1

6 - Go to 'System » Administration » User and Groups » Advanced settings » User Privileges' and check everything! :)

7 - Reboot

8 - Connect ipad

9 - If not mounted yet, mount it


By all means I'm no expert on this matter! Maybe some steps are redundant (who knows? :), maybe even unnecessary, all I'm saying is that these were the steps I had to take to make it work and you know that I'll just say: "Works on my machine!" :D
Anyway, hope this info will help someone with the same issue.

2011-03-30

Windows 7 VPN problems while browsing

Having trouble with internet browsing when you're connected through a VPN are you?

And you tried all available browsers also?
Sweat no more!

It seams that the last update on Microsoft Security Essentials brought with it a poisoned apple!
Here's what you have to do:
  1. Please open Microsoft Security Essentials and click on the 'Settings' tab
  2. Select 'Real-time protection' on the left panel
  3. De-select the option 'Enable Network Inspection System'
  4. Click 'Save Changes' :)
  5. Browse away!
Here's the visual breadcrumb trail:





Hope this will help...

2011-01-16

não posso deixar passar em branco

"[...]
Tudo é negro menos os nossos olhos
que dardejam luz no estupor da montanha incendiada pelo sol levante
já os nossos risos nervosos
soltos na velocidade da paisagem
desfilam para trás num bater de asas aflito e assustado
e o velho saxofone
como sereia rouca em calores de perdição
num sobressalto de vagas repentinas
abafa o chiar dos pneus
imprimindo correrias loucas ao granito macio da estrada
com que o mar cava a areia até aos nossos pés.

Vertigem"

Decididamente, cada vez gosto mais de Mão Morta... como se houvesse ainda mais para gostar.

2011-01-04

Decisões típicas de Ano Novo #1

Título: Deixar de colocar açúcar no café.

Estado: Iniciado

Prognóstico: Vai ser um ano bem amargo...

2010-11-29

O meu Windows 7 crasha aleatoriamente e eu não sei porquê - uma solução bizarra mas simples

Eu sou um bocado céptico em relação à febre dos lançamentos da Microsoft, quanto mais tempo passa mais céptico fico, é curioso... no entanto, e para contrariar esta tendência - ou talvez para fazer jus à excepção que confirma a regra - desde os primeiros rumores que sempre fui um apoiante (quase) incondicional do Windows 7 e até este momento não me tem desiludido... bom, isto dentro dos limites da gestão de expectativas normal para produtos mainstream.

Porém nesta história havia um espinho cravado na sola do pé do desempenho do Windows 7 no meu portátil. Desde o primeiro dia - vá lá, desde a primeira semana - que sem mais nem p'ra quê o portátil resolvia bloquear - ou no linguajar pseudo-técnico a que o democrático reino da informática nos habituou: crashar.

- Ah e tal... eu devo ter instalado alguma coisa que ele não digeriu bem...
- Ui e o camandro... os drivers do portátil devem andar em pé-de-guerra uns com os outros e agora é isto...
(...)

Mas a água que passa debaixo da ponte conseguiu lá passar por bem mais do que 1 ano e a cena mantinha-se: volta e meia quem me estivesse a ver diria que eu estava a ter espasmos na mão direita [por não perceber porque é que o rato não se mexia...].
Este fim-de-semana dei-me ao trabalho de pesquisar um bocado por este problema nas internetes e lá fui dando com problemas parecidos, uns mais originais do que outros, mas nenhum que fosse textualmente o meu.

Até que, num fórum manhoso, descobri um thread onde se debatia esta questão. Contrariamente ao que é habitual nestes casos, o post foi colocado a oferecer a solução, em jeito de «pshht! olhem lá o que eu fui descobrir!»:

Ao que parece, o Windows 7 64b vem com uma fava e quem a trinca fica à nora sem poder fazer mais nada que não seja mandar o sistema ao ar com um hard reboot.
Quando uma aplicação funciona em 32 bits e precisa do explorer, o SO passa a chamada para o executável 'explorer.exe' que está na pasta 'C:\Windows\SysWOW64', o que é giro e atencioso da parte dele, diga-se.
No entanto, há aplicações marotas que julgam que sabem mais do que ele, e vai daí dizem:
- Ó maior, vai mas é à pasta 'C:\Windows\System32' que eu é que sei!
E, claro está, sistema que se prese não alinha numa coisa dessas, e nada de 'explorer.exe' nessa pasta e ficamos nós a ter um momento Zen em frente ao computador.

SOLUÇÃO

(Porque pode haver gente a quem não interesse a história até aqui :)

Copiar o ficheiro 'explorer.exe' da pasta 'C:\Windows\SysWOW64' para a pasta 'C:\Windows\System32'.

Ainda agora não sei o que pensar disto tudo, do problema e da solução...

2010-11-23

Remote Desktop do Windows 7 para o Ubunto

A propósito deste post no pplware resolvi fazer a ligação ao Ubunto do Windows 7... e basicamente dei com os burros na água porque o cliente de Remote Desktop do Win 7 dava erro de protocolo.
Lá consegui fazer luz mas, como sempre nestas histórias, a luz arranca com bastante dificuldade e aos soluços. Para que a candeia que vai à frente continue a iluminar 2 vezes, aqui está a minha receita para a utilização com sucesso do protocolo no Ubunto (ou Linux de sabor deb) e do cliente no Windows 7. Sim, porque para o Vista e XP a coisa corre bem à primeira.

1 - Instalar o protocolo no Ubunto

sudo apt-get install xrdp

Isto vai instalar o gestor de sessões (sesman) e o protocolo xrdp. O sesman também come vnc, mas é mais imediata esta instalação.

2 - Ah e tal, porque o mstsc do Windows 7 é mais esquisito temos de ir buscar um mais antigo.

2.1 - Download da versão que está aqui nesta página da Microsoft
2.2 - Abrir o executável com um descompactador (o 7zip serve) e apenas extrair o ficheiro "msrdpcli.msi"
2.3 - Abrir este "msrdpcli.msi" com o descompactador e extrair o ficheiro "data.cab"
2.4 - Abrir este "data.cab" com o descompactador e extrair os 3 ficheiros para um directório onde serão executados, eu cá usei "portables\xRDP", mas cada um é como cada qual...
2.5 - Mudar o nome a esses 3 ficheiros retirando o prefixo "F10xx_"

3 - Executar o ficheiro "mstsc.exe" (se o nome foi bem alterado :) e colocar o ip/host da máquina Linux

4 - Escolher o modulo "sesman-X11rdp", colocar o user e password do Linux e já está! A vida é como chocolate quente a ser derramado sobre gelado de baunilha com nozes.