Posts Tagged ‘ubuntu’

Virtualbox guest ssh

Воскресенье, Январь 8th, 2012

Всё время забываю, как делать port-forwarding в Virtualbox для Ubuntu-host в Ubuntu-guest.

Итак. Для начала в настройках сети виртуальной машины устанавливаем Network Adapter как NAT. Делаем это при выключенной виртуальной машине.

Дальше смотрим виртуалки, которые есть:

$ VBoxManage list vms

И делаем, собственно, port forwarding:

$ VBoxManage modifyvm "Ubuntu 11.10" --natpf1 "guestssh,tcp,,2222,,22"

Ubuntu 11.10 - это имя виртуальной машины, для которой пробрасываем порты.

Всё. Дальше, запускаем виртуальную машину и соединяемся с ней:

$ ssh -p 2222 user@localhost

Готово.

Уведомлялка о новых твитах для Ubuntu на Ruby

Пятница, Декабрь 24th, 2010

Мне надоело постоянно лазать в твиттер, чтобы посмотреть, что там новенького пишут. Поэтому, потакая своей лени, я решил автоматизировать это дело :)
Сразу код:

require 'twitter'
last_created_at = 0

Twitter.configure do |config|
  config.consumer_key       = 'your key here'
  config.consumer_secret    = 'your key here'
  config.oauth_token        = 'your token here'
  config.oauth_token_secret = 'your token here'
end

client = Twitter::Client.new

loop do
  tweet = client.home_timeline.first

  if DateTime.parse(tweet.created_at) > last_created_at
    system("notify-send -u normal -t 5000 -i info '#{tweet.user.screen_name}' '#{tweet.text}'")
    last_created_at = DateTime.parse(tweet.created_at)
  end

  sleep 60
end

Эта штука ползает каждую минуту в мой твиттер и показывает, что там новенького. Есть небольшая недоработка: если с предыдущего захода появятся, например, 2 новых твита, то будет показан только крайний. Если кому не лень это исправить - прошу кинуть код в комменты.

Как это юзать? Для начала нужно установить:

  • sudo apt-get install libnotify-bin
  • gem install twitter
  • Зарегистрировать свое приложение тут http://twitter.com/apps/new и вставить в скрипт в конфигурацию полученные ключи и токены

Дальше сохранить предоставленный код в файл и запустить его из консоли:

$ ruby twitter.rb&

Результат выглядит так:
2iho

UPD 13.01.2011

Кирилл Никитин прислал мне исправленный вариант, который я реквестовал выше, за что ему решпект.

require 'twitter'

last_id = nil
tweets = []

Twitter.configure do |config|
  config.consumer_key       = 'your key here'
  config.consumer_secret    = 'your key here'
  config.oauth_token        = 'your token here'
  config.oauth_token_secret = 'your token here'
end

client = Twitter::Client.new

loop do
  if last_id
    tweets = client.home_timeline :since_id => last_id
  else
    tweets << client.home_timeline.first
  end

  last_id = tweets.first.id unless tweets.empty?

  tweets.reverse.each do |tweet|
    system("notify-send -u normal -t 5000 -i info '#{tweet.user.screen_name}' '#{tweet.text}'")
  end

  tweets.clear
  sleep 60
end