Search
Write a publication
Pull to refresh
4
0
dannie-walker @danSamara

User

Send message

Git Wizardry

Reading time17 min
Views452K
1 Введение


В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
распределенной системой контроля версий git и указать на отличия по сравнению с
классическими централизованными СКВ. Целью было прежде всего обобщение опыта
работы с системой без упоминания тонкостей синтаксиса отдельных команд.

Данный же топик задумывался как непосредственное введение в работу с git, нечто
среднее между tutorial и обобщенной справкой, до которого все же рекомендуется
прочитать упомянутое выше введение. Сознательно избегаются технические
подробности работы git, употребляются только общие для СКВ термины и
ограничивается список упоминаемых команд.

Читать дальше →

Git Workflow

Reading time6 min
Views120K

1 Вступление



В топике освещаются не столько подробности работы с git, сколько его отличия от схемы разработки других систем контроля версий, и общий подход (выработанный по большей части личным опытом и Git Community Book) к работе.


Читать дальше →

Как выявить медленные SQL запросы?

Reading time2 min
Views93K
Это случалось с каждым из нас при разработке веб-сайтов или приложений, использующих MySQL в качестве базы данных. Производительность внезапно сильно падала, и вы не имели понятия, почему это случилось. Этому могут быть причиной многие факторы (сильная загрузка CPU, нехватка дискового пространства, или слабая пропускная способность канала), но также это может быть и неоптимизированный запрос, выполняемый намного дольше, чем должен.

Как узнать, какие из запросов выполняются дольше всего?
В MySQL есть встроенный функционал для ведения логов медленных запросов.
Узнать, как включить этот функционал

Об экономии денег в проекте

Reading time4 min
Views13K
Однажды мне на глаза попалось исследование о том, какую цену предлагают наши конкуренты за те же самые услуги и работы, что и мы. И эти данные были неприятными: мы были заметно дороже. Чтобы сохранить заказы и удержать позиции, нам были нужны перемены.

Забегая вперед, скажу, что в итоге мы перестроили свою работу. Причем, не только понизив издержки, но и повысив зарплаты программистам. Как – читайте под катом.
Читать дальше →

Анонимность, доступная каждому

Reading time7 min
Views61K
imageВсем привет, давайте знакомиться.

Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.






Да, давайте знакомиться

Несанкционерованный доступ к эккаунтам Facebook и Twitter через открытые WiFi сети

Reading time1 min
Views2.7K
Инженер Эрик Батлер разработал приложение для браузера Firefox, которое позволяет получить доступ к персональной информации пользователей социальных сетей во время доступа к ним через открытые Wi-Fi сети.
Читать дальше →

Ускоряем Drupal: Pressflow + Nginx + Varnish

Reading time7 min
Views21K
Данная статья достаточно подробно показывает, как можно перейти на разработку сайтов Друпал с серьезной стрессоустойчивостью и возможностью обрабатывать большой трафик.

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

Довольно долго для разработки я использовал связку Drupal + Nginx с настройками сервера по умолчанию:

server {
listen 62.xxx.xx.xx:80;
server_name mysite.com www.mysite.com;
rewrite>^(/manager/.*)$>https://$host$1>permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass 62.xxx.xx.xx:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass mysite.com:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /home/pathto/drupal613;
access_log /home/httpd-logs/mysite.com.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass 62.xxx.xx.xx:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}


Читать дальше →

PulseAudio, часть 1: управление из командной строки

Reading time11 min
Views158K

Одним из новшеств Ubuntu 10.10 стал переход с «голой» ALSA на PulseAudio. Ранее постилось много советов прибить и удалить его для решения проблем, однако теперь PulseAudio стабилен, с ним не шипят колонки ;), и он способен на такое, что не снилось Alsa :)

В статье я с самого начала расскажу что это такое и как оно работает, а так же:
  • Как переключить весь звук на USB-колонку на закрывая приложений (usb hotplug);
  • Как выбрать порт звуковой карты для вывода звука (колонки ноутбука/наушника, LineOut/Наушники);
  • Как выбрать профайл звуковой карты (маппинг физических портов: 5.1 или стерео+lineIn?);
  • Как управлять громкостью и усиливать тихий сигнал (!);
  • Как сделать Skype громче музыки?

И представлю своё решение, призванное упростить управление PulseAudio ;)
Любопытно!

Сумбурные заметки про python и django

Reading time5 min
Views47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

Читать дальше →

Почтовые ящики для стандартных сервисов, ролей и функций

Reading time2 min
Views11K
Недавно столкнулся с неприятной ситуацией — почтовый сервер попал в спам-листы. Дыру быстро нашли и залатали, но компания Oracle уже занесла наш сервер в свой черный список, причем блокировали нас ещё на стадии соединения.
Возник вопрос — куда писать? На сайте была только форма для клиентов, support@oracle.com предназначался для них же.
После недолгих раздумий, появилась мысль — а нет ли стандарта, определяющего почтовые адреса по которым надо писать в таком случае? Оказалось, что есть и описан он в RFC 2142.

Самое интересное содержится в таблицах, которые приведены ниже.
Читать дальше →

Ускорение сайта «в 1 клик» — реальность

Reading time5 min
Views1.9K
С выходом новой версии WEBO Site SpeedUp (приложения для автоматического ускорения сайтов) — 1.3.0 — мы смогли, наконец, с уверенностью сказать: оно здесь. В смысле: идея автоматического ускорения сайтов реализована.

Напомню, что все начиналось полтора года назад, когда возникла идея собрать воедино все методы ускорения сайта, побороть особенности хостинга множества провайдеров и особенности браузеров, завернуть это все в красивый интерфейс и сделать максимально простым. Последний пункт оказался наиболее трудоемким по реализации (порядка полугода ушло у нас на осознание, проектирование и реализацию окончательной концепции).
Как мы это сделали?

Веб-шрифты на распутье

Reading time11 min
Views31K
Перевод не претендует на 100%-ную точность, но я постарался максимально точно передать мысли и слог автора. Комментарии приветствуются.

Начиная с Интернет Эксплорера 4 в 1998-ом, а затем с марта 2008-ого и до марта 2010-ого, один за другим, вся «большая пятерка» десктопных браузеров — Сафари, Файрфокс, Опера и Хром — выкатили сравнительно похожие реализации правила @font-face для привязки шрифтов. Вместе с тем, неотъемлимая часть веб-издательского паззла, часть, которой не хватает с начала Веба, встала на место и теперь настоящая, веб-ориентированая типографика начинает принимать форму.

Для начала, обзор последних событий:
  1. 18-ого марта 2010 года была учреждена группа Web Fonts Working Group в W3C. Её первая задача была утвердить спецификацию WOFF как стандарт доставки sfnt (OTF и TTF) шрифтов в веб в «сжатом» виде.
  2. Была представлена отрисовка шрифтов в IE9 с помощью Windows’s DirectWrite в IE9 Platform Preview.
  3. Появились первые инструменты для подготовки веб шрифтов, такие как Font Squirrel’s @Font-Face Generator и EOTFAST.
  4. Пошла новая волна «шрифтохранилищ» в виде Typekit, Typotheque и бесплатного, опенсорсного Kernest.
  5. Появились первые “трастовые/кредитные” лицензии на веб-шрифты от дизайнеров коммерческих шрифтов.
  6. CSS3 Fonts Module включил в себя некоторые продвинутые свойства OpenType.
  7. Adobe Flash, когда-то надежная, кросс-платформенная среда замены текста (sIFR), сейчас выглядит абсолютно убогой.
  8. Google запустил бесплатный сервис шрифтов с растущей библиотекой. Все шрифты в библиотеке доступны и для частного хранения/использования.

Теперь пройдемся по пунктам…
Читать дальше →

pdb – Интерактивный отладчик

Reading time23 min
Views98K

pdb – Интерактивный отладчик


Версии Python: 1.4 и выше

pdb является интерактивной средой отладки для программ на Python. Он включает возможности приостановки выполнения программы, просмотра значений переменных, построчного выполнения кода так, что вы можете понять, чем ваша программа на самом деле занимается, и найти логические ошибки.
Читать дальше →

Прикручиваем клевые шрифты с помощью @font-face

Reading time3 min
Views43K
Недавно столкнулся с задачей прикручивания достаточно необычного шрифта для мобильного веб клиента. Так как работа была под айфон, то я решил, что в этой задаче мне поможет css 3 и такая штука как @font-face. Пользу от такого способа решения задачи, я думаю, видят все, потому что:
  • сохраняется поиск по тексту, потому что это текст, а не картинка;
  • появляется возможность использовать онлайн-переводчики и разные фишки связанные с текстом;
  • никто не отменяет для нас использование line-height, letter-spacing, text-shadow,text-align, и селекторов вида ::first-letter и ::first-line

Читать дальше →

13 плагинов для того, чтобы сделать Gedit более удобным редактором

Reading time4 min
Views27K
Давайте уделим немного внимания старому доброму текстовому редактору Gedit. Он является дефолтным текстовым редактором для большинства Linux-дистрибутивов использующих Gnome в качестве оконного менеджера. Как выяснилось, и как мы в дальнейшем убедимся, Gedit поддерживает плагины, в числе которых есть много полезных и интересных.
Читать дальше →

Мобильное приложение Яндекс.Электрички для iPhone

Reading time1 min
Views5.6K

Яндекс.Расписания впервые пробуют силы в новом для себя направлении — мобильных приложениях. Сегодня мы представляем вам мобильное приложение Электрички для iPhone.



Основной функционал приложения совпадает с базовыми возможностями сервиса Яндекс.Расписания: вы можете посмотреть актуальное расписание электричек со всеми отменами и изменениями по своему региону, воспользовавшись как поиском, так и расписанием по станции. На данный момент приложение работает для 25 регионов России, Украины, Казахстана и Литвы. Как только на Яндекс.Расписаниях будет запущен новый регион, данные для него сразу появятся и в мобильном приложении.

Читать дальше →

TDL4 – первый полноценный руткит для x64 систем (Win7, Vista …)

Reading time3 min
Views17K
В конце прошлой недели была обнаружена принципиально новая версия нашумевшего руткита TDL3 (есть некоторые факты позволяющие утверждать, что этот зверь появился даже несколько раньше), основной особенностью этой версии стала полноценная поддержка x64 систем.

TDL4 удаётся успешно обходить защитный механизм проверки цифровой подписи в х64 версиях windows-систем. Авторы TDL4 применили довольно изящный способ обхода, который заключается в использовании техник заражения MBR и старта вредоносного кода раньше самой операционной системы. Подобные методологии уже активно применялись такими вредоносными программами, как Mebroot, StonedBoot и др.

Последней распространенной версией TDL3, о которой мы проводили летом подробное исследование, была 3.273. Сейчас отcчет версий ведется с начала, и рассматриваемая в статье версия идет под номером 0.02 (версию можно увидеть в конфигурационном файле бота). Столь странный номер версии наводит на мысли, что авторы пока только отлаживают новые технологии, появившиеся в этой версии, и в дальнейшем нас ожидает что-то более интересное. С точки зрения функционала принципиальных изменений, кроме нового способа инсталляции драйвера через заражение MBR и небольших изменений в скрываемой файловой системе, мы не заметили. Драйвер очень похож на то, что мы уже видели в TDL3 и, вероятнее всего, был просто пересобран с учетом особенностей х64 систем. Предыдущая версия руткита использовала для загрузки вредоносного функционала механизм инфицирования системных драйверов без изменения их размера, но так как в х64 системах при загрузке драйвером проверяется цифровая подпись, злоумышленники от этого механизма отказались.

Итак, теперь заражение осуществляется следующим образом:
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Chief Technology Officer (CTO)
Lead
People management
Building a team
Linux
High-loaded systems
PostgreSQL
Python
Rust