Nitrogen + Django Templates

ставим эрланг, если не стоит

$ brew install erlang

получаем nitrogen

$ mkdir example && cd example
$ git clone git://github.com/nitrogen/nitrogen.git

создаем проект

$ cd nitrogen
$ make rel_inets PROJECT=test

подключаем модуль ErlyDTL

$ cd ../test
$ vim ./rebar.config

в секцию deps добавляем строчку

{erlydtl, ".*", {git, "git://github.com/erlydtl/erlydtl", {branch, master}}}

подтягиваем зависимости с гитхаба

$ ./rebar get-deps compile

запускаем наше приложение и заставляем мониторить изменения в коде

$ bin/nitrogen console
$ bin/dev compile

создаем тестовую страничку

$ bin/dev page test

и самый простой шаблон

$ vim site/templates/test.dtl

который выглядит вот так

{{ test_var }}

правим наш сгенерированный код

$ vim site/src/test.erl

вносим туда примерно вот это

-module (test).
-compile(export_all).
-include_lib("nitrogen_core/include/wf.hrl").
-include("records.hrl").

template_path(Template) ->
    filename:join(["./site", templates, Template]).

render_template(Name, Variables) ->
    Template = template_path(Name ++ ".dtl"),
    Mod = list_to_atom(Name ++ "_tpl"),
    {ok, Mod} = erlydtl:compile(Template, Mod),
    {ok, Body} = Mod:render(Variables),
    Body.

main() ->
    render_template("test", [{test_var, "Hello, World!"}]).

и в браузере смотрим результат по адресу http://127.0.0.1:8000/test

Рубрика: Программирование | Метки: , , | Оставить комментарий

Год без Windows!

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

Железки работают отлично, никаких проблем не наблюдается до сих пор, все стабильно обновляется (на данный момент система обновлена до версии 10.10.3 (14D131). Были незначительные глючки из-за несвоевременного апдейта драйверов под видеокарту (чипсет Maxwell, к сожалению, дровами из коробки не поддерживается) — это лечится небольшой задержкой в обновлении системы, до тех пор пока не выйдут новые драйвера или ручным изменением строки с поддерживаемой версией в пакете с дровами / подменой старого идентификатора в самой системе (я предпочитаю обождать пару-тройку дней, Nvidia достаточно оперативно обновляет свои драйвера).

Также обновил систему на ноутбуке (Samsung NP300E7A), попатчил DSDT (надеюсь, что правильно), немного выправил настройки биоса… Эффектом стало отсутствие артефактов на экране — я не уверен, что полностью избавился от них, за «хакбуком» сижу довольно редко — надо тестить.

Update:
артефакты не пропали :( возможно есть какая-то зависимость при загрузке из кловера по таймауту и вручную по нажатию

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

How to download playlist video from Youtube

Задался вопросом как выкачать цикл видео с ютуба. Все приложения под Mac OS / Windows — оказались платными или порезаными. Естесственно это не нравится никому и мне в том числе. Порывшись во вражеском поисковике (ну привык я к нему, ничего не поделаешь, хоть они и игнорируют Крымский регион) , откопал замечательный штук — приложение на питоне, которое может решить эту задачу — mps-youtube. Все просто:

если нет питона, то для Mac OS X это выглядит вот так:

$ brew install pyenv
$ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' > ~/.bashrc
$ source ~/.bashrc
$ pyenv install 2.7.8
$ pyenv global 2.7.8

а для Linux (в частности Fedora 21) так:

$ sudo yum install git readline-devel zlib-devel patch openssl-devel sqlite-devel bzip2-devel libffi-devel
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc
$ source ~/.bashrc
$ pyenv install 2.7.8
$ pyenv global 2.7.8

update: немного поправил процесс установки, так не глючит midnight commander (оно теряет subshell), возможно это из-за «$(pyenv virtualenv-init -)», но проверять лень

ставим mps-youtube

$ pip install requests[security]
$ pip install mps-youtube

ну и пример:

$ mpsyt
> dvpl 84A56BC7F4A1F852
Рубрика: Новости | Оставить комментарий

VT-d feature missed :(

Промахнулся с процессором :(
Intel i3-4160 не поддерживает технологию Intel VT-d , надо было брать i5-4430 как минимум. Данная фича дает возможность «прокинуть» физическую железку в гостевую систему kvm. Чем это должно быть полезно мне? Хотелось иметь возможность параллельной работы нескольких операционных систем одновременно без потери производительности в графической составляющей. Как пример:
— хостом выбираем Fedora Linux
— в качестве графического адаптера отдаем ей встроеный Intel 4000/4600
— ставим kvm
— пробрасываем железку Nvidia / AMD
— ставим Windows/MacOS с использованием видеокарты в PCIe
— производительность железки в гостевой системе 95%, что дает нам возможность спокойно запускать графически насыщенные приложения

UPDATE:
— сменил процессор на Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
— заказал kvm-switch, чтобы не перетыкать клавиатуру и мышь в прокинутые usb-порты
— ждем-с :D

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

Upgrade

Обновил железки: Asus B85-PLUS, i3-4160, 8GB, GTX750. Три дня и ночи копался и боролся с нестабильностью поведения Mac OS X на новом железе. Описывать весь процесс установки не имеет смысла, оно и так везде встречается. Вкратце
— скачиваем инсталлятор Mac OS X Yosemite 10.10.1 из AppStore
— скачиваем дрова под видеокарту с сайта nvidia
— скачиваем efi-загрузчик clover
— скачиваем патчер для AppleHDA
— создаем флэшку с помощью UniBeast
— запускаем инсталлятор с ключиками: -v -f nv_disable=1 GraphicsEnabler=no , nv_disable=1 — из-за того, что в GTX750 используется новое ядро Maxwell, стандартные дрова из коробки его не поддерживают
— разбиваем диск с таблицей GPT
— после успешной установки, загружаемся c теми же ключами
— первичная настройка системы
— ставим дрова под видеокарту
— перегружаемся с ключами: -v -f -x nv_disable=1 GraphicsEnabler=no
— открываем Nvidia Driver Manager и выбираем NVIDIA Web Driver
— перегружаемся с ключами: -v -f kext-dev-mode=1 nvda_drv=1 GraphicsEnabler=yes
— ставим Clover, обязательно выбираем UEFIDriver64/OsxAptioFixDrv-64.efi
— необходимые кексты копируем в /EFI/CLOVER/kexts/10.10 , в моем случае это были: FakeSMC, NullCPUPowerManagement, RealtekRTL8111, EvOreboot
— создаем резервную копию /S/L/E/AppleHDA.kext
— запускаем audio_cloverALC-100.sh
— отказываемся от предложенного Layout-Id=2, вместо него выбираем Layout-Id=1, иначе не работает микрофон
— прописываем в /EFI/CLOVER/config.plist, секция Boot, ключ Arguments со строковым значением «-v kext-dev-mode=1 nvda_drv=1 GraphicsEnabler=1»

upd: затупил, верный ключ nv_disable

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

Motorola Moto G (XT1032) руссификация

Прямехонько из Испании поступил такой вот аппаратик. По умолчанию в прошивке отсутствует русский язык — его там нет вообще. Для руссификации потребовалось сделать следующее:

Разблокировка загрузчика (unlock bootloader):
1. Ставим дрова отсюда.
2. Скачиваем модифицированный fastboot отсюда.
3. Регистрируемся тут
4. Перегружаем телефон в fastboot-режим (выключаем телефон, включаем с зажатой кнопкой уменьшения громкости, держим 5 секунд, отпускаем).
5. Узнаем код для запроса разблокировки

fastboot oem get_unlock_data

6. Получаем ответ вида:

(bootloader) 3A95030735416420#54413932393046
(bootloader) 32423400585431303332000000#FE02
(bootloader) DF569E940008EFD94CCEA75DD5FF9D0
(bootloader) 4E6EEE3FB0FB020F000000000000000
(bootloader) 0000000

7. Берем все эти циферки соединяем в одну строчку и отдаем ее в форму на странице запроса разблокировки.
8. Если все в порядке, то внизу появится кнопка запроса разблокировки, при нажатии на нее по электронный почте придет код для разблокировки.
9. Разблокируем загрузчик

fastboot oem unlock <код_из_письма>

Зашиваем прошивку Moto X Google Play Edition
1. Скачиваем прошивку тут.
2. Распаковываем.
3. Прошиваем

fastboot flash partition gpt.bin
fastboot flash motoboot motoboot.img
fastboot reboot-bootloader
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash modem NON-HLOS.bin
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg fsg_intl.img
fastboot erase cache
fastboot erase userdata
fastboot reboot

4. У меня выскакивала ошибка/предупреждение вида «hab check failed for boot», забил на это и просто продолжил процесс перепрошивки не обращая внимания.

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

Удаление пакетов .pkg в Mac OS

Чтобы удалить пакет установленный из .pkg-инсталлятора (правда необходимо удостовериться, что удаляете то, что нужно):

sudo pkgutil --pkgs | grep <название_пакета> | xargs -n 1 pkgutil --forget
Рубрика: Новости | Оставить комментарий

Чайна парсел..

Платы разработчика, слева аналог Arduino Nano ATMega 328P, справа STM32F100 VL-Discovery

Платы разработчика, слева аналог Arduino Nano ATMega 328P, справа STM32F100 VL-Discovery

Пришла небольшая платка на микроконтроллере ATMega328P: 8bit AVR, 16MHz, 32Kb Flash, 2Kb SRAM, 1Kb EEPROM. Вторая плата досталась мне в подарок от одного хорошего электронщика и просто хорошего человека.

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

Mac OS Tmux + Vim paste yanked text problem [solved]

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

brew install reattach-to-user-namespace
echo 'set-option -g default-command "reattach-to-user-namespace -l bash"' >> ~/.tmux.conf
Рубрика: Новости | Оставить комментарий

Mac OS Vim paste workaround

При вставке большого куска текста из буфера обмена в vim, иногда возникает ситуация, когда редактор просто напросто тупо виснет. Практически единственный способ избежать этого предоставляет команда pbpaste.

* копируем текст в буфер обмена
* в vim набираем команду
    :read !pbpaste

Если такая же фигня случается в линуксе, то можно использовать пакет xsel. В частности, в Fedora это делается так

* ставим пакет xsel, если он не установлен
  sudo yum install xsel
* копируем текст в буфер обмена
* в vim набираем команду
    :read !xsel --clipboard --output
Рубрика: Новости | Оставить комментарий

Промахнулся с firmware

К сожалению забыл проверить самое главное у недавно пришедших Jiayu — а именно работу с сотовой сетью. Как оказалось я залил прошивку, которая работает по технологии WCDMA. Залил прошивку рассчитанную на работу в сетях TD-SCDMA. Подошло.

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

XMBC P2P-Stream addon

Обновился, с некоторым апдейтом оттуда были удалены парсеры тв-каналов и трансляций с популярных сайтов, временно все парсеры собраны автором в другом репозитории на github. Скоро он будет удален, судя по readme.md. Так что скоренько выполняем: git clone https://github.com/enen92/P2P-STREAMS-Parsers

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