morontt.info

GitСинхронизация форкнутого репозитория с оригинальным

Очередная заметка для самого себя, чтобы не искать. Вроде бы всё до ужаса элементарно, но не запомню, пока не напишу об этом :)

Первым делом добавляем remote-репозиторий, ссылающийся на оригинальный, назовём его, к примеру upstream1. Список удалённых репозиториев можно посмотреть командой git remote -v, чтобы убедиться, что всё верно.

После вытягиваем все изменения, произошедшие в репозитории upstream2 и сливаем их со своим репозиторием3.

# шаг 1

git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

# шаг 2

git fetch upstream

# шаг 3

git checkout master
git merge upstream/master

PHPактивация PHP-расширений

Поднимая проект на Laravel столкнулся с неожиданной проблемой. А именно, с невозможностью установки вендорских библиотек композером. Неожиданность тут в том, что расширение php5-mcrypt было у меня установлено. Однако composer не обманешь.

laravel requires ext-mcrypt

Небольшое исследование показало, что необходимое расширение хоть и присутствует, но не подключено. Если же расширение не установлено, то делается это так (в Ubuntu и Debian):

sudo apt-get install php5-mcrypt

Но вернёмся к активации установленных расширений...

Gitgit diff и FreeBSD

В общеобразовательных целях решил поиграться с FreeBSD и, естественно, установил туда Git. Настроил, как положено, вывод цветов в консоль, т.е.:

git config --global color.ui true

И, вроде бы, всё хорошо, однако при использовании команды git diff вывалилась такая печалька на экран.

git diff colors incorrectly

Решение нагуглилось секунд за 30. Нужно всего лишь установить в конфигурации Git-а правильный пейджер.

git config --global core.pager 'less -R'

Вот, собственно, и всё. Можно было и не писать этого всего, но должны же быть тут какие-то заметки :)

LinuxМонтирование диска медиаплеера в линуксах

Напишу тут пару команд для того, чтобы примонтировать диски двух медиаплееров, которые использовал или использую.

Первый пациент, это Popcorn Hour A-300, про него я когда-то писал тут. Аппарат был хороший, но сильно долго не прожил по моей вине - глюкнул винт, а я, находясь под воздействием пива, разобрал и собрал плеер, вывихнув при этом разъём SATA из платы. Ну да ладно, то другая история, а сейчас монтирование. По NFS.

sudo mount -t nfs -o vers=3 192.168.1.169:/share ~/path/to/A300

Причём без этой опции vers=3 не получалось, вечер провозился точно, пока где-то не нагуглил.

Второй медиаплеер Dune HD TV-303D. Пришёл на смену первому и работает по сей день. NFS в нём я не обнаружил, примонтировал используя Samba

sudo mount -t cifs -o guest,rw,uid=morontt,gid=morontt //192.168.1.171/dunehdd ~/path/to/DuneHD

Пользователя и группу желательно указать свои, как и сетевой адрес устройства, и точки монтирования :)

Возможно, что каждый раз выполнять команду или запускать скрипт с ней внутри будет неудобно, но если устройства никуда не собираются перемещаться друг относительно друга, то можно прописать подключение в /etc/fstab, а нужную строку подсмотреть в /etc/mtab, когда устройство примонтировано. Что-то вроде такой строки (может, ещё опции придётся подкорректировать):

//192.168.1.171/dunehdd /home/morontt/path/to/DuneHD cifs rw,uid=morontt,gid=morontt 0 0

P.S. Монтирование по протоколу samba может не удаться сходу и будет ругаться на неизвестную файловую систему. В таком случае поможет установка пакета cifs-utils, т.е.:

sudo apt-get install cifs-utils

UbuntuУстановка последних версий Node.js и npm

Просто памятка. Надоело уже искать по интернету.

Делаем раз:

# ниже по ситуации, в зависимости от дистрибутива,
# если нет команды apt-add-repository
#
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update

Делаем два:

sudo apt-get install nodejs

И готово. Проверено на Ubuntu 14.04 LTS и 12.04 LTS :) Если не ошибаюсь, то npm установится автоматически с nodejs. Ежели не установился, то ещё одна строчка в консоли:

sudo apt-get install npm

JavaScripttypeahead.js - Автокомплитер и Twitter Bootstrap.

Прикручивал автодополнение к полям формы на сайте, использующем Twitter Bootsrap, выбрал по инерции знакомый и привычный jQuery UI и тут же столкнулся с проблемой. Поля, использующие bootstrap-datepicker.js разнесло до полной неузнаваемости. Для начала просто отключил стили, необходимые для автокомплитера из jQuery UI, предполагая, что проблема именно в них, да и просто из любопытства, однако это не помогло - внешний вид улучшился, но до исходного варианта было ещё далеко :)

Морочить себе голову не стал, пытаясь соединить несовместимое, просто вбил в поисковик "twitter bootstrap autocomplete". И сразу наткнулся на то, что надо, т.е. на typeahead.js. Тут официальная страница с примерами, хорошая документация на GitHub. Добавить нечего. Просто брать и использовать. Внешний вид хорошо вписывается в общий стиль, не выглядит чужеродным :)

typeahead.js

ApacheНастройка HTTPS в Apache

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

В двух словах - что такое HTTPS и с чем его едят.

HTTPS - это расширение протокола HTTP, поддерживающий шифрование. Данные, передаваемые подобным образом, шифруются с использованием SSL или TLS.

В данной заметке будет создаваться самоподписанный сертификат и хотя браузеры начнут ругаться, что такой сертификат не является доверенным, но свою задачу выполнять он всё таки будет, т.е. если и не исключит возможность прослушивания при помощи тех же снифферов, например, но, по меньшей мере, сильно затруднит жизнь некоторых хацкеров. И что немаловажно - такой сертификат не будет стоить ни копейки, в отличии от сертификатов, подписанных компаниями-сертификаторами :)

Контроль версийComposer TransportException, проблемы с загрузкой пакетов.

Иногда так бывает, что composer не может стянуть вендорские файлы. Тут даже и сам композер совершенно не при чём, может валяться github, например, или другой ресурс, где необходимый пакет размещается.

composer transportexception

Собственно, вылазит ошибка вида:

[Composer\Downloader\TransportException]
The "https://api.github.com/repos/bla-bla-bla/zipball/v6.6.6" file could not be downloaded (HTTP/1.1 404 Not Found)

До сегодняшнего дня я просто выжидал, пока очнётся ресурс, откуда должен скачаться пакет, однако на этот раз мне не повезло, поскольку два вечера подряд я наблюдал одно и то же сообщение (хотя утром в другом проекте библиотеки скачались как по маслу, просто забыл под шумок стянуть и других вендоров, повисших в неопределённости). Пришлось лезть в гугл и искать. И оно того стоило, поскольку первая же ссылка указала решение.

php composer.phar install --prefer-source

Данная опция указывает composer-у, что необходимые файлы должны извлекаться непосредственно из исходников в репозитории системы управления контроля версиями, а не из подготовленного пакета (по умолчанию для стабильных версий). Собственно, всё. Больше информации здесь

Zend FrameworkZend_Service_Twitter, небольшие изменения

Месяц назад обновил версию Zend Framework до 1.12.3 в движке этого блога, потестировал изменения локально, ничего страшного не обнаружил, залил на хостинг. Белый экран. Спустя пару минут вспомнил, что в девелоперском и тестовом окружениях у меня отключены последние сообщения из твиттера. А так же и то, что в последнем (первом) зенде были внесены изменения в Zend_Service_Twitter в связи с обновлением API до версии 1.1

Заметка, в принципе, и не стоит того, чтобы её писать, но по поисковым запросам вижу, что люди ищут, так что поделюсь решением, позволившим починить извлечение последних записей twitter-а.

PHPУстановка ImageMagick

Так уж вышло, что понадобилось для для одного проекта такое расширение, как ImageMagick. Ну а раз понадобилось, то надо устанавливать.

На рабочем макинтоше всяческие апачи и пэхэпэшки проинсталлированы у меня через MacPorts, потому и установка разрешилась поиском по интернету и парой команд, что ниже

sudo port install ImageMagick
sudo port install php5-imagick

Минут 45 ожидания (и наблюдения за компьютерной жизнью в консоли) и готово. Так долго вышло потому, что порты давно не обновлялись, а с установкой расширения попутно пересобралось всё, что только можно.

Ошибка httpd.exe

1 2