Как использовать passwd

Standard

Коротка заметка ( в будущем наполню):
1) Заходите в document root сайта и выполняете htpasswd -c .passwd someuser
где .passwd — файл к-ый будет создан и someuser — имя пользователя
2) В .htaccess вашего document root пропишите

AuthType Basic
AuthBasicProvider file
AuthUserFile /path/to/your/file/.passwd
Require user someuser

Проблемы с proftpd

Standard

Если у вас появилась такая строка «proftpd unable to determine ip address».

Это значит, следующее: ftp берет название вашего хоста из /etc/hostname и дальше пытается определить его ip-адрес, но не может. Скорей всего эта ошибка появится когда вы измените hostname на серваке. Решение — простое, добавьте в /etc/hosts строку:

127.0.0.1 YourHostname.

Как подключиться по openvpn в ubuntu

Standard

Только что пришлось подключаться через vpn,  в windows постоянно были какие-то косяки, и хаки с openvpn клиентом. Сел за ubuntu, и все завелось в пару команд.

Итак наши  действия:

  1. Устанавливаем openvpn: sudo apt-get install openvpn
  2. Подключаемся используя конфиг-файл: openvpn —config your_config_file

Вышел php 5.5 alpha 3

Standard

Раз уж я начал освещать каждый новый выход php 5.5, тогда продолжу.

Итак предыдущие обзоры:

В третей альфе, сделаны следующие изменения (нововведения):

  1. Добавлен метод Generator::throw()
  2. Новые cURL функции и опции, например: curl_escape(), curl_multi_setopt(), curl_multi_strerror(), curl_pause(), curl_reset()
  3. Поддержка атрибута Max-Age в setcookie функции
  4. Исправлено пару багов в mysqlnd и ядре

Весь список изменений здесь. Я очень часто использую curl, поэтому добавление новых функций в расширение только приветствую, жду не дождусь set, get операций над cookies.

Книги по javascript и jQuery

Standard

Продолжаю серию статей по книжной тематике, книги для других языков:

JavaScript: The Definitive Guide

Javascript the definitive guide

Это моя первая книга по JavaScript, описывает все с нуля, вполне простым языком. Как правило все начинают именно с нее. Написано очень подробно, даже очень — сначала описывается сам язык, потом его взаимодействие с бразуером, затем полный справочник по языку и api браузера. Замечу, что у Ильи Кантора — создателя сайта javascript.ru есть курсы для новичков, года два назад я записался на начальный курс и он был практически идентичен, тому что вы найдете в этой книге (хотя Илья иногда отмечал особенности браузеров — чего в книге нет, UPDATE: начал перечитывать и понял, что ошибся — особенности браузеров тоже описаны) , впрочем строение курса скорей всего поменялось. Сейчас на английском есть 6-ое (!) издание книги, я заказал себе одну с амазона, так что кому надо могу отдать 5-ое издание на русском совершенно бесплатно (правда там много пометок карандашом). Если вы новичок — это пожалуй, самая лучшая книга для старта.

JavaScript & jQuery: The Missing Manual

JavaScript & jQuery: The Missing Manual

Книга написана очень ясно и понятно, минимум теории — максимум практики. Большая часть отведена под jQuery, есть раздел посвященный фишкам, например как сделать галлерею фотографий, с их предзагрузкой (так вконтакте, кстати делает). Если посмотрите на рейтинг книг по javascript на amazon — missing manual идет практически вровень с definitive guide, так что если вы начнете с этой книги ничего не потеряете.

JavaScript: The Good Parts

JavaScript The Good Parts

Из предисловия: «Большинство языков программирования содержат хорошие и плохие части, но JavaScript имеет больше плохих, будучи разработанным и выпущенным в спешке перед тем как эти части могли быть пересмотрены».  Несмотря на то, что книга о хороших особенностях языка, всё плохое здесь описано и даются соответствующие рекомендации как это обходить. Много внимания уделено особенностям наследования и его отличиям от обычной ООП парадигмы. Подойдет для программиста среднего уровня. Написана Дугласом Крокфордом — человеком, к-ый популяризировал json и создал замечательный инструмент JSLint. Да и что касается объема страниц вот вам сравнение с первой книгой :)

 

Регистрация facebook приложения

unnamed
Standard

Казалось бы, что такого сложного в регистрации приложения  :), но мне «повезло» так как мой сотовый оператор — МТС.

Страница создания приложения здесь, facebook необходим ваш телефон, его можно добавить на странице мобильных настроек, на ней можно получить код, к-ый надо отправить на определенный номер, но у МТС есть неприятная особенность — весь трафик из фейсбука (возможно от других соц. сетей тоже) блокируется, получается что смс с ответным кодом не придет. Решение — подключить услугу МТС Онлайн, все это дело стоит 1.5 руб в день, правда нам ведь никто не мешает подключить и сразу отключить :)

Вышел php 5.5 alpha 2

Standard

Вышла 2 альфа версия PHP 5.5. Качаем с этой страницы.

Из нового:

  1. Функция empty() теперь поддерживает выражения и вызов функции как аргументы.
    До этого момента был возможен вызов empty($somevar), но нельзя было сделать empty(some_function())
  2. Оптимизирован доступ к временным и скомпилированным VM переменным. На 8% меньше обращений к памяти.
  3. MySQL расширение теперь бросает E_DEPRECATED ошибку, вместо него используйте MySQLi, PDO или Mysqlnd
  4. Оптимизация VM стека

Все это не может не радовать, пхп становится лаконичней и быстрее.

Doctrine Collection против array_chunk

Standard

Столкнулся с такой задачей: необходимо разбить коллекцию объектов (Doctrine) на части. Изначально подумывал использовать array_chunk, но ему на вход нужно подать массив, ок — doctrine поддерживает метод ->toArray(), но проблема в том, что toArray() превращает и коллекцию и объекты, которые в ней содержатся в массив. Можно было бы поизвращаться с Doctrine Pager, но решение уже существовало — метод getData(), к-ый надо выполнить над коллекцией. В итоге получаем массив содержащий объекты.

Вычисляем md5 и sha1 строки в консоли

Standard

Часто бывает необходимо вычислить md5 (или sha1) значение строки (для паролей, к примеру). Раньше мне приходилось идти в браузер набирать в поисковике «md5 online», теперь использую только консоль. На маке есть чудесная программа openssl, ее мы будем использовать для вычисления. Т.к. взять аргумент в alias нельзя, приходиться создавать функции, итак мои функции для вычисления sha1 и md5 в ~/.bash_profile :

sha1(){
echo -n "$1" | openssl sha1;
}
# Назвал не md5 тк такая прога уже есть в консоли мака,
# чтобы не затереть выбрал km5
km5(){
echo -n "$1" | openssl md5;
}

чтобы начать их использовать — набирите source ~/.bash_profile. Теперь можно вычислить sha1 от строки 111:

sha1 111
# => 6216f8a75fd5bb3d5f22b6f9958cdede3fc086c2

Как добавить / убрать слеш из урла

Standard

Сегодня речь пойдет о редиректах насущных, в прошлый раз я упомянал как сделать редирект с www на без www, сейчас задача убрать из урла слеш (или добавить), например должен отсылать 301 редирект на /.

Пропишите это в .htaccess:

# Чтобы убрать слеш
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Это чтобы добавить слеш
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]