Fedora 25 and Vagrant NFS shared folders

Обновил систему на ноутбуке до Fedora 25, и столкнулся с тем, что с настройками по умолчанию vagrant не смог пробросить общий каталог в гостевую систему. Для того, чтобы это исправить необходимо внести одно небольшое изменение в Vagrantfile (это в дополнение ко всем действиям указанным в посте про настройку среды разработки.

Vagrantfile:
...
config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_udp: false
...

Без указания о неиспользовании протокола UDP, каталог не пробрасывался. Не знаю с чем это связано, может у меня где-то настройки неверны, но это мне помогло.

P.S. Стим через примус тоже не завелся :(, будем разбираться.

Рубрика: Новости | Оставить комментарий

Asus P7H55-M LX revisited

Ранее упоминал о глючности данной материнской платы.

Но, как оказалось, я был неправ. Всему виной, по всей видимости, процессор — i5-650, ибо заменив его на xeon x3440 она замечательно обнаружила все планки, в любой конфигурации, без глюков.

Искать биос с поддержкой xeon не пришлось, все сразу завелось.

Процессор спокойно погнался до 3.6Ггц (штатная 2.93Ггц), c кулером Gammaxx-400 температура не поднималась выше 72˚C (могу ошибаться, записать забыл или забыл где записал), с кулером Gammax-300 под нагрузкой выдало 84˚C.

Рубрика: Новости | Оставить комментарий

Mac OS X Sierra 10.12.4

Обновился с бубном. Для безболезненного обновления необходимо обновить Clover как минимум до ревизии 3994, иначе кексты не загрузятся. После обновления отваливается звук. Конкретно для материнской платы Asus B85-PLUS, следует прописать в EFI/CLOVER/config.plist/Devices/Audio/Inject=1, а после этого запустить патчер от toleda.

Рубрика: Новости | Оставить комментарий

PHP strtotime() revisited

В прошлой записи я упоминал о баге(особенности) функции strtotime(), все же есть workaround:

<?php
date_default_timezone_set('Europe/Moscow');
$today = strtotime('28-04-2013'); // 28-04-2013, воскресенье
$thisWeek = strtotime('last sunday +1 day', $today);
$lastWeek = strtotime('-1 week', $thisWeek);
$nextWeek = strtotime('+1 week', $thisWeek);

echo 'last week - '.$lastWeek.' / '.date('d-m-Y H:i\n',$lastWeek);
echo 'this week - '.$thisWeek.' / '.date('d-m-Y H:i\n',$thisWeek);
echo 'next week - '.$nextWeek.' / '.date('d-m-Y H:i\n',$nextWeek);

результат работы:
last week - 1365969600 / 15-04-2013 00:00
this week - 1366574400 / 22-04-2013 00:00
next week - 1367179200 / 29-04-2013 00:00

Рубрика: Новости | Оставить комментарий

Another tool for downloading youtube videos

До mps-youtube я находил еще одну утилиту — youtube-dl. Не разобравшись с ней отложил ее. Однако что-то mps-youtube сломался и я вновь обратился ко вражескому поисковику за ответом. Как оказалось youtube-dl может выполнять те же операции, которые мне требовались.

Скачать все видео пользователя:

youtube-dl -iw ytuser:<user-id> -o '%(title)s.%(ext)s'

Скачать весь плейлист:

youtube-dl -iw <playlist-id> -o '%(title)s.%(ext)s'

Флаги:

-i - ignore errors, skip unavailable video
-w - do not overwrite files
-o - output filename template

Подробнее в тексте помощи утилиты.

Рубрика: Новости | Оставить комментарий

Successfully updated to El Capitan (10.11.1 — 15B42)

el_capitan

Рубрика: Новости | Оставить комментарий

Fedora 21 as web-developer workstation

То же самое, что и с Ubuntu 14.04. Несколько странно, что в базовую установку не входит компилятор C++ и wget (хотя может это мои глюки).

Скрипт, как и оный в предыдущем посте, предполагает установку на ноутбук с гибридом intel + nvidia, а также устанавливает steam-клиент. Сам steam следует запускать через primus.

Перезагрузка требуется как минимум два раза: первый после апдейта свежеустановленной системы, ибо смена ядра — на данный момент апгредило с 3.17 до 4.1.8, второй — после установки bumblebee, чтобы оно доустановилось.

Vagrant (1.7.2) ставится из репозитория, также как и Ruby (2.1.7). Чтобы vagrant успешно пробрасывал каталог в гостевую систему посредством nfs, следует внести поправки в настройки файрволла. Разрешить пролезать сервисам nfs, mountd и rpcbind, а также открыть UDP-порт 2049.

С моим глючным интернетом установка на ноутбуке с нуля занимает порядка полутора часов. Проверялось на Fedora 21 Xfce x64.

#!/bin/bash

# update
sudo dnf -y update

#### reboot

# install stuff
sudo dnf -y install wget vim tmux git mercurial gcc gcc-c++ make m4 bindfs \
ruby keepassx @virtualization

# install libraries for building python & ruby libs
sudo dnf -y install python-devel libffi-devel openssl-devel ruby-devel \
libstdc++-devel libvirt-devel kernel-devel

# install pip
curl -sSL https://bootstrap.pypa.io/get-pip.py | sudo python

# install python libs
sudo pip install requests[security] uwsgi virtualenv

# enable rpmfusion repository
sudo dnf -y install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# install exfat support (rpmfusion)
sudo dnf -y install exfat-utils fuse-exfat

# install additional codecs (rpmfusion)
sudo dnf -y install gstreamer gstreamer-ffmpeg gstreamer-plugins-bad \
gstreamer-plugins-bad-free gstreamer-plugins-bad-nonfree gstreamer-plugins-base \
gstreamer-plugins-good gstreamer-plugins-ugly gstreamer-plugin-crystalhd \
gstreamer1-plugins-bad-freeworld gstreamer1-plugins-bad-free \
gstreamer1-plugins-good gstreamer1-libav ffmpeg freetype-freeworld

# entertainment stuff (rpmfusion)
sudo dnf -y install steam vlc

# install google chrome
sudo dnf -y install --nogpgcheck \
https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

# install skype
sudo dnf -y install --nogpgcheck \
http://download.skype.com/linux/skype-4.3.0.37-fedora.i586.rpm

# vagrant
sudo dnf -y install vagrant

# vagrant libvirt support
vagrant plugin install vagrant-libvirt vagrant-mutate vagrant-rekey-ssh

# vagrant nfs mount tune
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-port=2049/udp
sudo firewall-cmd --reload

# enable libvirtd daemon
sudo systemctl enable libvirtd
sudo systemctl start libvirtd

# pull debian 8 virtualbox image
vagrant box add debian/jessie64

# convert virtualbox image to libvirt image
vagrant mutate debian/jessie64 libvirt

# install bumblebee repository
sudo dnf -y install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora$(rpm -E %fedora)/noarch/bumblebee-release-1.2-1.noarch.rpm \
http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora$(rpm -E %fedora)/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm

# install nvidia optimus support
sudo dnf -y install bumblebee bumblebee-nvidia bbswitch-dkms primus \
VirtualGL.i686 VirtualGL.x86_64 primus.i686

###### reboot

Update: Vagrant 1.7.2 забагован, либо ставить другую версию, либо патчить ручками. Diff для /usr/share/vagrant/plugins/guests/redhat/cap/nfs_client.rb

18,19c18,19
< def self.systemd?
< `ps -o comm= 1`.chomp == 'systemd'
---
> def self.systemd?(machine)
> machine.communicate.test("test $(ps -o comm= 1) == 'systemd'")
23c23
< if systemd?
---
> if systemd?(machine)
Рубрика: Новости | Оставить комментарий

Ubuntu 14.04 LTS as web-developer workstation

Поставил на ноутбук Ubuntu 14.04 LTS вместо Fedora 20. Ниже скрипт, который обновляет систему и ставит базовый набор необходимых инструментов.

#!/bin/bash

# update system
sudo apt-get update && sudo apt-get upgrade

### reboot

# install useful tools
sudo apt-get install vim gcc make m4 bindfs rsync ant tmux git mercurial vlc

# install hfs+ support
sudo apt-get install hfsplus hfsutils hfsprogs

# install libraries needs by python & ruby
sudo apt-get install libffi-dev python-dev libssl-dev zlib1g-dev ruby-dev

# install skype & keepass ... skype pulls mysql as dependency :(
sudo apt-get install skype keepassx

#install chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i ./google-chrome-stable_current_amd64.deb

# install kvm
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder \
bridge-utils virt-manager qemu-system libvirt-dev libxslt-dev \
libxml2-dev

# install pip (python 2.7.6 installed out of box)
sudo curl -sSL https://bootstrap.pypa.io/get-pip.py | python

# install some python libs
sudo pip install requests[security] --upgrade
sudo pip install uwsgi virtualenv

# install rvm (optional) (ruby 1.9.3 installed out of box)
#sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys \
409B6B1796C275462A1703113804BB82D39DC0E3
#sudo curl -sSL https://get.rvm.io | bash -s stable

# install vagrant (old one coz it requires ruby 1.9)
# newer version requires ruby 2.0+
wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.5_x86_64.deb
sudo dpkg -i ./vagrant_1.6.5_x86_64.deb

# install required vagrant plugins
vagrant plugin install vagrant-libvirt
vagrant plugin install vagrant-mutate
vagrant plugin install vagrant-rekey-ssh

# pull debian 8 image
vagrant box add debian/jessie64

# conver to libvirt format
vagrant mutate debian/jessie64 libvirt

# install nvidia optimus support + steam
sudo apt-get install bumblebee bumblebee-nvidia primus mesa-utils steam

### reboot

После этого можно работать с vagrant с использованием kvm. Выглядит это примерно так:

$ vagrant init debian/jessie64
$ vagrant up --provider=libvirt
Bringing machine 'default' up with 'libvirt' provider...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              v1_default
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              1
==> default:  -- Memory:            512M
==> default:  -- Management MAC:    
==> default:  -- Loader:            
==> default:  -- Base box:          debian/jessie64
==> default:  -- Storage pool:      default
==> default:  -- Image:             /var/lib/libvirt/images/v1_default.img (10G)
==> default:  -- Volume Cache:      default
==> default:  -- Kernel:            
==> default:  -- Initrd:            
==> default:  -- Graphics Type:     vnc
==> default:  -- Graphics Port:     5900
==> default:  -- Graphics IP:       127.0.0.1
==> default:  -- Graphics Password: Not defined
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        9216
==> default:  -- Keymap:            en-us
==> default:  -- INPUT:             type=mouse, bus=ps2
==> default:  -- Command line : 
==> default: Creating shared folders metadata...
==> default: Starting domain.
==> default: Waiting for domain to get an IP address...
==> default: Waiting for SSH to become available...
==> default: Configuring and enabling network interfaces...
==> default: Installing rsync to the VM...
==> default: Rsyncing folder: /home/awlee/v1/ => /vagrant
==> default: Replaced insecure vagrant key with less insecure key!

$ vagrant ssh
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Oct 16 22:04:04 2015 from 192.168.121.1
vagrant@debian-jessie:~$

Ставим веб-сервер на виртуальную машинку и получаем окружение для проекта идентичное боевому серверу. Основная система хоста остается чистой и не засранной.

Рубрика: Новости | Оставить комментарий

Bluetooth Headset

Заказал Rapoo H6080. Как гарнитура — не понравилась. Мега-нечувствительный микрофон, тебя никто не слышит.

Возможно этим страдают все bluetooth-гарнитуры, но при использовании микрофона звук, видимо переключается в моно-режим и становится настолько ужасным, что кажется, как будто он идет из толчка.

В это же время микрофон тоже тупит и тебя слышно также (если вообще слышно), как ты слышишь звук в наушниках.

Помимо этого подключив их посредством USB-кабеля (в этом случае они работают как рядовые USB-наушники), через некоторое время звук начинает заикаться, и так продолжается до тех пор пока их не переподключишь. Возможно это глюки USB-драйвера — не проверял.

До этого совсем немного тестил BlueDio H+ (Turbine) — на борту FM-приемник, слот для microSD-карты, микрофон. Если я правильно помню они работали как гарнитура даже через USB-соединение.

Есть еще «одноухая» Jabra Mini 0.3.5 — с ней та же фигня как и с Rapoo H6080, включается микрофон — падает качество звука.

А Wireless Headset не хотел брать из-за того, что радио-ресивер-трансмиттер подходит лишь для того гаджета, для которого он предназначен :(

Судя по всему все же придется брать их, если совсем припрет… Wireless Headset (с качественным звуком) сейчас стоят от 6-7к. Хотя, конечно, вот совсем недавно вышли в продажу Plantronics Backbeat Sense, но жаба душит.. 13к в РФ.

Рубрика: Новости | Оставить комментарий

OSX vulnerability

Судя по всему версии до 10.11 подвержены уязвимости, которая позволяет получить полный контроль над системой. Уязвимость позволяет любому пользователю получить root-права. Простой тест выглядит так:

$ EDITOR=/usr/bin/true DYLD_PRINT_TO_FILE=/this_system_is_vulnerable crontab -e

если на выходе получили, а все пользователи OS X до версии 10.11 точно его получат
osxvulnerable

то у вас проблема. На данный момент решается установкой дополнительного kext’а (SUIDGuard).
Источник информации — Stefan Esser

Рубрика: Новости | Оставить комментарий

Speedup by RAM Disk + rsync

Выделил 4Гб памяти под RAM-Disk, число 8388608 есть число 512-байтных блоков = 4096 * 2048

$ diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach 
-nomount ram://8388608`

поставил утилиту fswatch

$ brew install fswatch

настроил апдейт изменений через rsync

$ fswatch -ro /Volumes/RAMDisk/<source_folder>/ | xargs -n1 -I{}
rsync -ua --delete /Volumes/RAMDisk/<source_folder>/
~/<destination_folder>/

Теперь можно работать на RAM-диске, переносим туда какого-нибудь монстра типа PhpStorm / Android Development Studio / Eclipse / Flexible Development Tools и все остальные java-based IDE, указываем рабочий каталог на RAM-Disk, запускаем fswatch, таким образом гарантируем себе 99% вероятность сохранения рабочих файлов на жестком диске.

Совсем быстро оно работать конечно не станет, но работа с файловой системой существенно ускорится, меня допустим раздражает табличка в FDT, которая гласит что-то вроде «Сохраняюсь, ждите… можете прервать».

Рубрика: Новости | Оставить комментарий

Обновился до 10.10.4

Screenshot 2015-07-02 14.45.59

NVIDIA все так же оперативно выпускает свои драйвера под Mac OS X. Обновился без проблем, полет нормальный.

Рубрика: Новости | Оставить комментарий