Не так давно мне довелось беседовать с разработчиком, не понимавшим, почему полностью резервированная связь между ЦОДами не может гарантировать 100% доступность сервиса.
Антон @AntonioKread-only
User
vmd — консольное приложение для скачивания музыки из vk.com
2 min
9.6KУ вас в vk.com есть любимые музыкальных группы или друзья, с которыми ваши музыкальные вкусы совпадают? У меня да. И хотелось иметь актуальную локальную копию музыки этих групп и друзей, чтобы слушать её, например в машине, телефоне, плейере или где-нибудь ещё. Так родилась идея создания консольного open source приложения vmd (vkontakte music downloader), которое я обещал выложить на github вот в этом посте. Программа мультиплатформенная работает под linux, windows и mac os x. Скачать бинарные сборки под эти ОС можно скачать на домашней странице проекта. Под хабракатом рассказано, как vmd использовать и некоторые технические подробности.
+25
Бесплатные VM с Windows для тестирования сайтов на старых версиях IE
1 min
152KMicrosoft уже несколько лет раздаёт бесплатные виртуальные машины с Windows XP, Vista и 7 для тестирования веб-сайтов на старых версиях браузера Internet Explorer.
Все образы укомплектованы соответствующей версией IE и апдейтами безопасности. Для XP установлены апдейты до октября 2012 года, для остальных — до марта 2011 года. В остальном — это чистая свежая инсталляция Windows без особенных модификаций. Образы в формате VHD можно загрузить в Microsoft Virtual PC или другой пакет виртуализации. Самораспаковывающиеся архивы RAR для удобства скачивания разбиты на части по 700 МБ.
Все образы укомплектованы соответствующей версией IE и апдейтами безопасности. Для XP установлены апдейты до октября 2012 года, для остальных — до марта 2011 года. В остальном — это чистая свежая инсталляция Windows без особенных модификаций. Образы в формате VHD можно загрузить в Microsoft Virtual PC или другой пакет виртуализации. Самораспаковывающиеся архивы RAR для удобства скачивания разбиты на части по 700 МБ.
+40
Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом, часть 2
12 min
81KTutorial
Translation
Это вторая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text, первая часть — тут.
Если последовательность бит не выглядит разумной(с точки зрения человека), то это случай, когда документ скорее всего был неверно сконвертирован в определенный момент. К примеру мы берем текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ, и, не придумав ничего лучше, сохраняем его в UTF-8. Текстовый редактор предположил, что он правильно прочитал текст с кодировкой Mac Roman и теперь его надо сохранить в другой кодировке. В конце концов, все эти символы валидны в Unicode. В смысле, в Unicode есть пункт для É, для G, и так далее. Так что мы просто сохраняем его в UTF-8:
Мой документ – полная чушь в любой кодировке!
Если последовательность бит не выглядит разумной(с точки зрения человека), то это случай, когда документ скорее всего был неверно сконвертирован в определенный момент. К примеру мы берем текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ, и, не придумав ничего лучше, сохраняем его в UTF-8. Текстовый редактор предположил, что он правильно прочитал текст с кодировкой Mac Roman и теперь его надо сохранить в другой кодировке. В конце концов, все эти символы валидны в Unicode. В смысле, в Unicode есть пункт для É, для G, и так далее. Так что мы просто сохраняем его в UTF-8:
11000011 10001001 01000111 11000011 10001001 11000011 10101100 11000011 10001001 01010010 11000011 10000101 01011011 11000011 10001001 01100110 11000011 10001001 01000010 11000011 10001001 11000011 10101100 11000011 10001001 01001111 11000011 10000111 11000011 10010101 11000011 10101100 11000011 10010100 11000011 10000111 11000010 10110101 11000011 10000111 11100010 10001001 10100000 11000011 10000111 11000010 10111011 11000011 10000111 11000010 10100010
+72
Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом
8 min
120KTutorial
Translation
Это первая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text
Если вы работаете с текстом в компьютере, вам обязательно нужно знать про кодировки. Даже если вы посылаете электронные письма. Даже если вы их только получаете. Необязательно понимать каждую деталь, но надо хотя бы знать, что из себя представляют кодировки. И вот первая хорошая новость: статья может быть немного запутанной, но основная идея очень и очень простая.
Эта статья о кодировках и наборах символов.
Если вы работаете с текстом в компьютере, вам обязательно нужно знать про кодировки. Даже если вы посылаете электронные письма. Даже если вы их только получаете. Необязательно понимать каждую деталь, но надо хотя бы знать, что из себя представляют кодировки. И вот первая хорошая новость: статья может быть немного запутанной, но основная идея очень и очень простая.
Эта статья о кодировках и наборах символов.
+80
Проксируем и спасаем
7 min
168KTutorial

В данном пособии мы узнаем как быстро и просто сделать рабочее зеркало любого сайта, что позволяет сменить IP и назначить любое доменное имя. Мы даже попробуем спрятать домен в url, после чего можно сохранить локально полную копию сайта. Все упражнения можно сделать на любом виртуальном сервере — лично я использую хостинг Хетцнер и OS Debian. И конечно мы будем использовать лучший веб-сервер всех времен и народов — NGINX!
К этому абзацу пытливый читатель уже приобрел и настроил какой нибудь выделенный сервер или просто запустил Linux на старом компьютере под столом, а так же запустил Nginx последней версии со страничкой «Save me now».
+63
Физика Ethernet для самых маленьких
6 min
444KTutorial
- Что такое домен коллизий?
- Сколько пар используется для Ethernet и почему?
- По каким парам идет прием, а по каким передача?
- Что ограничивает длину сегмента сети?
- Почему кадр не может быть меньше определенной величины?
Если не знаешь ответов на эти вопросы, а читать стандарты и серьезную литературу по теме лень — прошу под кат.
+76
IEC60027-2: Давайте использовать стандарты, или 1024 B == 1 KiB && 1024 B != 1 KB && 1000 B == 1 kB
5 min
131KДоброго времени суток, уважаемые!
В последнее время, читая различные статьи в хабре, всё больше стал замечать, что многие авторы до сих пор ничего не знают о ISO/IEC стандартах бинарных префиксов (KiB=кибибайт, MiB=мебибайт и т.д.) и постоянно путают их с SI префиксами (kB=килобайт, MB=мегабайт). Поэтому я решил ещё раз заговорить об этом в надежде, что, прочитав статью, ещё пара человек начнёт пользоваться стандартами!

+171
Продуктивное использование PHPStorm
7 min
328KВ процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
+114
С 1 ноября в PayPal появятся платежи в рублях
1 min
29KСогласно новым правилам PayPal в системе появятся транзакции в рублях:

Для фрилансеров, интернет-магазинов и сервисов это означает, что совсем скоро в Рунете можно будет безопасно принимать платежи и выводить в российские банки PayPal без лишних телодвижений. А также повысится доверие к электронным платежам у обычных пользователей.

Для фрилансеров, интернет-магазинов и сервисов это означает, что совсем скоро в Рунете можно будет безопасно принимать платежи и выводить в российские банки PayPal без лишних телодвижений. А также повысится доверие к электронным платежам у обычных пользователей.
+75
Обновление FreeBSD от и до
7 min
90KКак часто бывает, зацепив одну, на первый взгляд, маленькую тему, с желанием быстро все узнать и все настроить, приходится закапываться в дремучие дебри и читать не одну статью и/или мануал. Так и получилось у меня в этот раз. Изначально было желание просто узнать, как обновлять порты (или исходные тексты портов) чтоб при желании, устанавливать не устаревшее ПО, но пришлось закопаться немного по глубже.
Эта статья предназначена только для новичков во FreeBSD, опытные профи тут вообще ни чего нового, думаю, для себя не найдут. По этому, если вы на «ты» с этой системой, можете смело пропускать дальнейший текст.
Информации на эту тему хватает, но из 6-10 заметок и статей я взял, так скажем, лучшие наработки и опыт, и записал их в одну, с ссылками на более полные статьи, так что при желании можно получить более подробную информацию по каждому пункту.
Содержание статьи:
1) Выбор ПО для обновления исходных текстов.
2) Процесс обновления исходных текстов системы и портов.
3) Обновление системы(ядро и мир).
4) Обновление портов при помощи pkg_*, portupgrade, portdowngrade.
5) Заключение
6) Дополнительная литература.
Эта статья предназначена только для новичков во FreeBSD, опытные профи тут вообще ни чего нового, думаю, для себя не найдут. По этому, если вы на «ты» с этой системой, можете смело пропускать дальнейший текст.
Информации на эту тему хватает, но из 6-10 заметок и статей я взял, так скажем, лучшие наработки и опыт, и записал их в одну, с ссылками на более полные статьи, так что при желании можно получить более подробную информацию по каждому пункту.
Содержание статьи:
1) Выбор ПО для обновления исходных текстов.
2) Процесс обновления исходных текстов системы и портов.
3) Обновление системы(ядро и мир).
4) Обновление портов при помощи pkg_*, portupgrade, portdowngrade.
5) Заключение
6) Дополнительная литература.
+35
Простейший бэкап конфигов FreeBSD с отправкой архива на почту
3 min
10KTutorial
Для небольшой локальной сети был установлен NAS под FreeBSD и, естественно, в конце концов встал вопрос бэкапа его конфигурации на случай краха системы. Ничего громоздкого наворачивать не хотелось, тем более, что скорость восстановления в случае чего пока не критична. Поэтому было принято решение написать простейший скриптик под себя, каждую ночь складывающий в архив необходимые файлы. А в качестве внешнего хранилища был выбран почтовый сервер. Этим скриптом и хочу поделиться с вами.
Оговорюсь сразу. Кому этот способ не подойдёт:
Оговорюсь сразу. Кому этот способ не подойдёт:
- заядлым параноикам
- желающим в день Х восстановить работоспособность сервера за полчаса
- у кого размер архива будет превышать 25 Мб. (в случае с gmail)
+22
Массовая остановка запросов
1 min
12KRecovery Mode
В качестве небольшого дополнения к статье Чистка сервера базы данных.
Иногда, в очереди скапливается большое количество запросов к БД, выполнение которых необходимо остановить, не перезапуская MySQL.
Для решения этой проблемы мы используем такой метод:
Получаем список долго выполняемых запросов, в данном случае — SELECTы, выполняемые дольше 100 секунд
Собственно, убиваем их:
По желанию, можно выбирать запросы по хосту, имени пользователя, базе данных, и т.д.
Иногда, в очереди скапливается большое количество запросов к БД, выполнение которых необходимо остановить, не перезапуская MySQL.
Для решения этой проблемы мы используем такой метод:
Получаем список долго выполняемых запросов, в данном случае — SELECTы, выполняемые дольше 100 секунд
SELECT CONCAT('KILL ', id, ';')
FROM information_schema.processlist
WHERE
`info` LIKE('SELECT%')
AND `time` > 100
INTO OUTFILE '/tmp/killList.sql';
Собственно, убиваем их:
SOURCE /tmp/killList.sql;
По желанию, можно выбирать запросы по хосту, имени пользователя, базе данных, и т.д.
+22
SugarJS — Синтаксический сахар для JavaScript
4 min
22K
Что такое SugarJS?
SugarJS — это open source (лицензия — MIT) библиотека Javascript, который расширяет нативные объекты полезными методами. Она разработана, чтобы быть интуитивным, ненавязчивым инструментом, повышающим выразительность кода, который позволял бы делать больше с меньшим количеством кода и меньше задумываясь над рутиной.
На самом деле у них очень информативный и простой сайт — где все уже хорошо написано.
Я просто постараюсь обозначить основные моменты.
Кратко...
- Расширяет нативные элементы Javascript полезными, интуитивными методами.
- Прост для понимания и в использовании.
- Метод SugarJS не используется при наличии метода в родной реализации браузера.
- Имеет систему тестирования, имеющую огромный набор тестов.
- Расширяет возможности работы с датой и временем, обеспечивает их форматирование на нескольких языках (русский есть).
- Отлично ладит с другими фреймворками и сторонним кодом.
- Модульность, вы можете включать только нужные пакеты.
- Полностью совместимый ECMAScript.
- Заявлена поддержка всех основных браузеров, включая мобильные.
- Поддерживает Node.js.
- Имеет хорошую и удобную документацию.
Заинтересовало? Добро пожаловать под кат.
+84
Оптимизация связки Nginx, Apache, PHP, MySql
9 min
80KНеожиданно поступила задача разобраться почему определенный сайт не работает столь быстро сколь хочется. В основе его CakePHP, в связке с Apache и MySQL. В статье описание процесса поиска узких мест и приведение в порядок на столько, на сколько это возможно.
Название сайта светить не буду — думаю, программисты сами узнают. Скажу лишь, что это приложение для социальной сети нагрузкой 70-150 тысяч посетителей в обычное время. Все усложняется тем, что периодически производится рекламная рассылка, которая привлекает около 200-300 тысяч посетителей за пару часов.
Итак, под катом описание всей борьбы на протяжении 4 дней.
Название сайта светить не буду — думаю, программисты сами узнают. Скажу лишь, что это приложение для социальной сети нагрузкой 70-150 тысяч посетителей в обычное время. Все усложняется тем, что периодически производится рекламная рассылка, которая привлекает около 200-300 тысяч посетителей за пару часов.
Итак, под катом описание всей борьбы на протяжении 4 дней.
+63
Создаем рекурсивные ярлыки в Windows
5 min
124KВсе мы знаем, что такое ярлык. А что будет, если сделать ссылку ярлыка самого на себя?
Создание ярлыка на ярлык приводит к его копированию. И что будет, если принудительно создать побайтно такой ярлык?
Но, расскажу я не об этом, а о том, как можно создать папку, от вида которой все программы вылетают с ошибками.
Да, только от вида: на папку даже кликнуть не успеете.
Зайти в такую папку обычными файловыми менеджерами будет невозможно.

Но тут не обошлось без ярлыка, и я расскажу, как это сделать и для чего можно использовать.
Создание ярлыка на ярлык приводит к его копированию. И что будет, если принудительно создать побайтно такой ярлык?
Но, расскажу я не об этом, а о том, как можно создать папку, от вида которой все программы вылетают с ошибками.
Да, только от вида: на папку даже кликнуть не успеете.
Зайти в такую папку обычными файловыми менеджерами будет невозможно.

Но тут не обошлось без ярлыка, и я расскажу, как это сделать и для чего можно использовать.
+209
MySQL Performance real life Tips and Tricks. Part 3-rd.
14 min
23KРешил продолжить цикл заметок по данной тематике. В данной статье особое место хотел уделить профайлингу MySQL запросов. Описать средства, которые предоставляются MySQL для профайлинга, и что нужно делать для определения узких мест запроса.
Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.
Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.
+52
Полезные ссылки для PHP разработчика с MageConf 2012
2 min
28K
Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
+39
MIMB – Мульти-установочная и мульти-загрузочная флэшка
2 min
58KПривет, Хабрачитатели!
В повседневной практике часто нужен набор инструментов – Linux и иногда Windows LiveCD, а также установочные диски различных дистрибутивов. Диски легко подвергаются механическим повреждениям. Учитывая, что набор используемого инструментария и дистрибутивов у каждого не так велик (во избежания развода зоопарка) и зачастую вполне умещается на USB-носителе до 4G, целесообразно поместить все на одну флэшку.
К вашему вниманию флэшка для загрузки Live сборок Linux и Windows и установки дистрибутивов Linux. Подготовлен образ .img, который легко разворачивается при помощи dd. Кому интересно, подробности под катом.
В повседневной практике часто нужен набор инструментов – Linux и иногда Windows LiveCD, а также установочные диски различных дистрибутивов. Диски легко подвергаются механическим повреждениям. Учитывая, что набор используемого инструментария и дистрибутивов у каждого не так велик (во избежания развода зоопарка) и зачастую вполне умещается на USB-носителе до 4G, целесообразно поместить все на одну флэшку.
К вашему вниманию флэшка для загрузки Live сборок Linux и Windows и установки дистрибутивов Linux. Подготовлен образ .img, который легко разворачивается при помощи dd. Кому интересно, подробности под катом.
+43
Двадцать способов потерять свои данные
8 min
137K
С потерей данных я впервые столкнулся, когда лишился своей коллекции тщательно отредактированных переводов любимой книги во время банальной переустановки ОС. Это было очень давно, однако воспоминания о часах кропотливого труда, потраченного на доведение до ума нескольких миллионов знаков текста до сих пор не дают мне покоя. Тогда ещё не было различных облачных технологий типа дропбокса, поэтому потеря оказалась практически невосполнимой. Конечно, не всё и не всегда так трагично – если сам носитель всё ещё есть в наличии, потерянные данные можно восстановить. Эх, знал бы, где упаду…
Поэтому я решил, что правильнее всего будет посвятить свой первый пост в блоге компании, занимающейся восстановлением данных тому, как эти данные чаще всего теряются. Итак, вашему вниманию представляется топ-20 причин, по которым юзеры обычно остаются без своей драгоценной информации. Даже если вы гуру системного администрирования, например, освежить азы будет не лишним — чтобы соломку подстелить.
+20
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Registered
- Activity