http://habrahabr.ru/post/231605/
В основу PHP7 ляжет PHPng. Многие из свежих предложений и патчей делаются уже на его базе — в том числе такие интересные вещи, как uniform variable syntax, native big integers и abstract syntax tree. Из-за изменений во внутренних API, многие сторонние расширения (например, xdebug, расширения для mongodb и memcached, php-protocolbuffers) должны быть переработаны, поэтому в PHP 5.7 PHPng войти уже не сможет.
И еще интересное "на почитать":
PHP 6 не будет, не осилили
Суть в том, что 6 версия должна была содержать в ядре UTF-16, но "не осилили", и почти все плюшки кроме юникода пошли в 5.4
четверг, 31 июля 2014 г.
python: pip или easy_install?
"Использую easy_install только для того чтобы установить pip… Он умеет ставить пакеты прямо из систем управления пакетами, например:
pip install git+git://github.com/frol/django-email-confirmation.git
Также можно записать в файл список всех пакетов, которые нужны в проекте и потом установить все этим пакеты используя команду:
pip install -r requirements.txt
Ну, и конечно можно указывать требуемые версии используя знаки сравнения:
pip install liten==0.1.3
pip install liten>=0.1.3 "
http://habrahabr.ru/post/112332/#comment_3595049
What's the difference between pip and easy_install?
https://pip.pypa.io/en/1.5.X/other-tools.html#easy-install
http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install
Похоже, у easy_install только 1 плюс - штатно пакеты уже собраны, не надо держать билд-серверы с компиляторами. Плюс
" в debian-based есть пакет python-stdeb. в нём — утилка pypi-install, которая делает из eggа deb-пакет и ставит его."
http://habrahabr.ru/post/112332/#comment_3596282
pip install git+git://github.com/frol/django-email-confirmation.git
Также можно записать в файл список всех пакетов, которые нужны в проекте и потом установить все этим пакеты используя команду:
pip install -r requirements.txt
Ну, и конечно можно указывать требуемые версии используя знаки сравнения:
pip install liten==0.1.3
pip install liten>=0.1.3 "
http://habrahabr.ru/post/112332/#comment_3595049
What's the difference between pip and easy_install?
- All packages are downloaded before installation. Partially-completed installation doesn’t occur as a result.
- Care is taken to present useful output on the console.
- The reasons for actions are kept track of. For instance, if a package is being installed, pip keeps track of why that package was required.
- Error messages should be useful.
- The code is relatively concise and cohesive, making it easier to use programmatically.
- Packages don’t have to be installed as egg archives, they can be installed flat (while keeping the egg metadata).
- Native support for other version control systems (Git, Mercurial and Bazaar)
- Uninstallation of packages.
- Simple to define fixed sets of requirements and reliably reproduce a set of packages.
- It cannot install from eggs. That’s not a problem anymore though because pip supports the superior binary wheel format since the 1.4 release.
- It is incompatible with some packages that extensively customize distutils or setuptools in their setup.py files.
https://pip.pypa.io/en/1.5.X/other-tools.html#easy-install
http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install
Похоже, у easy_install только 1 плюс - штатно пакеты уже собраны, не надо держать билд-серверы с компиляторами. Плюс
" в debian-based есть пакет python-stdeb. в нём — утилка pypi-install, которая делает из eggа deb-пакет и ставит его."
http://habrahabr.ru/post/112332/#comment_3596282
среда, 16 июля 2014 г.
FreeBSD: not staged
Было обнаружено для некоторых портов такое
Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html
Что такое staged:
Staging is when the port installs into the work directory instead of into /. From here a package can be created without ever installing into / and often as a user without root. This also gives us abilities to improve quality of packages and opens up opportunities for sub-packages in the future. With staging we have had the ability to add in-tree testing of plists which in the past required a tool such as porttools, Tinderbox or Poudriere.
A guide for converting your port to Staging can be found at:
https://wiki.freebsd.org/ports/StageDir
Совсем вкратце: нужно иметь возможность установки пакетов не от рута и не в корень, а в рабочий каталог.
с 31 июня такие порты помечены deprecated, мейнтейнеры обнулены (сброшены), и 31 августа удалены из дерева портов.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-submitting.html
Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html
Что такое staged:
Staging is when the port installs into the work directory instead of into /. From here a package can be created without ever installing into / and often as a user without root. This also gives us abilities to improve quality of packages and opens up opportunities for sub-packages in the future. With staging we have had the ability to add in-tree testing of plists which in the past required a tool such as porttools, Tinderbox or Poudriere.
A guide for converting your port to Staging can be found at:
https://wiki.freebsd.org/ports/StageDir
Совсем вкратце: нужно иметь возможность установки пакетов не от рута и не в корень, а в рабочий каталог.
с 31 июня такие порты помечены deprecated, мейнтейнеры обнулены (сброшены), и 31 августа удалены из дерева портов.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-submitting.html
понедельник, 14 июля 2014 г.
CouchApp: JavaScript приложения в CouchDB
http://habrahabr.ru/post/110675/
CouchApp это небольшие приложения, которые пишутся на javascript и могут выполнять роль "обёртки", выполняя преобразования над данными, проверки итд. Ну и просто помогают формировать html код.
https://github.com/couchapp/couchapp
http://couchdb.readthedocs.org/en/latest/couchapp/views/intro.html
CouchApp это небольшие приложения, которые пишутся на javascript и могут выполнять роль "обёртки", выполняя преобразования над данными, проверки итд. Ну и просто помогают формировать html код.
https://github.com/couchapp/couchapp
http://couchdb.readthedocs.org/en/latest/couchapp/views/intro.html
zabbix2 и некоторые изменения
Во 2 версии появился шаблон для mysql, включающий в себя поля
А вот обёртки под него нет. И тут используется сила 2 версии: можно описать шаблон так
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N | awk '{print $$2}'
В такой схеме легко добавить например репликацию.
Для сравнения, как выглядели записи для 1 версии:
и в этом случае переменные были просто mysql.uptime, mysql.questions итд
Но нигде новый формат толком не описан, даже в офдоке на версию 2.0
Линки
https://www.zabbix.com/forum/showthread.php?t=39338
https://www.zabbix.com/documentation/ru/2.0/manual/appendix/recipes
https://www.zabbix.com/documentation/2.0/manual/appendix/items/supported_by_platform
http://www.slideshare.net/shinguz/mysql-monitoring-with-zabbix
https://www.zabbix.com/forum/archive/index.php/f-11.html
https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters/extending_agent
MySQL insert operations per second mysql.status[Com_insert]
MySQL commit operations per second mysql.status[Com_commit]
MySQL begin operations per second mysql.status[Com_begin]
MySQL bytes sent per second mysql.status[Bytes_sent]
MySQL status mysql.ping
MySQL bytes received per second mysql.status[Bytes_received]
MySQL delete operations per second mysql.status[Com_delete]
MySQL rollback operations per second mysql.status[Com_rollback]
MySQL slow queries mysql.status[Slow_queries]
MySQL uptime mysql.status[Uptime]
MySQL queries per second mysql.status[Questions]
MySQL update operations per second mysql.status[Com_update]
MySQL select operations per second mysql.status[Com_select]
MySQL version mysql.version
MySQL commit operations per second mysql.status[Com_commit]
MySQL begin operations per second mysql.status[Com_begin]
MySQL bytes sent per second mysql.status[Bytes_sent]
MySQL status mysql.ping
MySQL bytes received per second mysql.status[Bytes_received]
MySQL delete operations per second mysql.status[Com_delete]
MySQL rollback operations per second mysql.status[Com_rollback]
MySQL slow queries mysql.status[Slow_queries]
MySQL uptime mysql.status[Uptime]
MySQL queries per second mysql.status[Questions]
MySQL update operations per second mysql.status[Com_update]
MySQL select operations per second mysql.status[Com_select]
MySQL version mysql.version
А вот обёртки под него нет. И тут используется сила 2 версии: можно описать шаблон так
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N | awk '{print $$2}'
В такой схеме легко добавить например репликацию.
Для сравнения, как выглядели записи для 1 версии:
### Set of parameters for monitoring MySQL server (v3.23.42 and later) ### Change -u and add -p if required #UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l #UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f2 -d" " #UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f2 -d" " #UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f2 -d" " #UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f2 -d" " #UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":"|cut -f2 -d" " #UserParameter=mysql.version,mysql -V
Но нигде новый формат толком не описан, даже в офдоке на версию 2.0
Линки
https://www.zabbix.com/forum/showthread.php?t=39338
https://www.zabbix.com/documentation/ru/2.0/manual/appendix/recipes
https://www.zabbix.com/documentation/2.0/manual/appendix/items/supported_by_platform
http://www.slideshare.net/shinguz/mysql-monitoring-with-zabbix
https://www.zabbix.com/forum/archive/index.php/f-11.html
https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters/extending_agent
Centos 6: python 2.7, 3.3, ruby 1.9.3 итд
Полный список
3. Available Collections
Currently, the following collections are available for CentOS 6.5 and later (package name in parenthesis):
yum install -y centos-release-SCL
этот пакет в репе extras, по умолчанию extras активен (enabled=1)
Ттот же питон 2.7 будет отдельным названием python27, потому что заменять штатный питон нельзя -- сломается ряд системных утилит включая yum.
http://wiki.centos.org/AdditionalResources/Repositories/SCL
http://dev.centos.org/centos/6/SCL/docs/
Метод 2:
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
https://github.com/0xdata/h2o/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-exactly-for-centos-machine-only
3. Available Collections
Currently, the following collections are available for CentOS 6.5 and later (package name in parenthesis):
- Ruby 1.9.3 (ruby193)
- Python 2.7 (python27)
- Python 3.3 (python33)
- PHP 5.4 (php54)
- Perl 5.16.3 (perl516)
- Node.js 0.10 (nodejs010)
- MariaDB 5.5 (mariadb55)
- MySQL 5.5 (mysql55)
- PostgreSQL 9.2 (postgresql92)
yum install -y centos-release-SCL
этот пакет в репе extras, по умолчанию extras активен (enabled=1)
Ттот же питон 2.7 будет отдельным названием python27, потому что заменять штатный питон нельзя -- сломается ряд системных утилит включая yum.
http://wiki.centos.org/AdditionalResources/Repositories/SCL
http://dev.centos.org/centos/6/SCL/docs/
Метод 2:
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
https://github.com/0xdata/h2o/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-exactly-for-centos-machine-only
Выпуск CentOS 7
Вышел релиз Centos 7http://habrahabr.ru/post/229043/
Из глобальных изменений отметил бы отказ от 32 битных сборок и переход на файловую систему xfs по умолчанию. Переход по умолчанию на сборку mariadb вместо mysql, монтирование /tmp в tmpfs
systemd не самых свежих версий
завязка на NetworkManager
Обновление -- как обычно, через чистую установку.
среда, 9 июля 2014 г.
mount: unknown filesystem type 'linux_raid_member'
# mount /dev/sda3 /mnt/
mount: unknown filesystem type 'linux_raid_member'
Можно прямо указать ФС через -t ext3 например. Но вариант пригоден только для зеркала, прочие уровни надо монтировать через md, загрузив
insmod md_mod
Может быть ошибка
mount: /dev/sda3 already mounted or /mnt/ busy
С ненулевой вероятностью уже загружен md_mod и появились /dev/md*, тогда надо монтировать именно md устройство.
mount: unknown filesystem type 'linux_raid_member'
Можно прямо указать ФС через -t ext3 например. Но вариант пригоден только для зеркала, прочие уровни надо монтировать через md, загрузив
insmod md_mod
Может быть ошибка
mount: /dev/sda3 already mounted or /mnt/ busy
С ненулевой вероятностью уже загружен md_mod и появились /dev/md*, тогда надо монтировать именно md устройство.
вторник, 8 июля 2014 г.
понедельник, 7 июля 2014 г.
четверг, 3 июля 2014 г.
FreeSWITCH: shoutcast
Вроде бы, зачем может быть нужен shoutcast? Но он становится полезен, когда есть большая очередь, внешний источник звука может существенно разгрузить диск и freeswitch. Но надо быть осторожным с перекодированием из mp3, это требует ресурсы.
https://wiki.freeswitch.org/wiki/Mod_shout
простейший пример
Можно и писать на сервер (что-то транслировать в мир)
Пример в вики (и выше) указывает на несуществующий адрес, для теста можно взять тут
http://www.shoutcast.com/
http://radio.aol.ca/
https://wiki.freeswitch.org/wiki/Mod_shout
простейший пример
<action application="playback" data="shout://scfire-dll-aa02.stream.aol.com:80/stream/1074"/>
Можно и писать на сервер (что-то транслировать в мир)
<action application="record" data="shout://source:pass@10.10.10.10:8000/stream.mp3"/>
Пример в вики (и выше) указывает на несуществующий адрес, для теста можно взять тут
http://www.shoutcast.com/
http://radio.aol.ca/
Подписаться на:
Сообщения (Atom)