Pull to refresh
11
0
Goncharov Ivan @vanuch

User

Send message

Hg Init: Часть 6. Архитектура репозиториев

Reading time5 min
Views30K
Это шестая, заключительная часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:



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

Часть 6. Архитектура репозиториев



Наш рецепт становится все лучше:

Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments17

Сохранил в .WWF — спас дерево!

Reading time1 min
Views27K
Всемирный фонд дикой природы WWF издавна славится своим оригинальным подходом к агитации. Наверняка, многие помнят чёрное облако и «Пока не поздно».

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

image

Для этого они создали специальный формат файлов (расширение .wwf) – являющийся практически полным аналогом PDF, однако без возможности выводить документы на печать.

Почитать подробнее о формате и скачать софт для его использования можно на специально созданном сайте www.saveaswwf.com (пока правда доступна версия для пользователей Mac OS X 10.4+, но обещают в ближайшее время выложить версии и для других ОС).
Читать дальше →
Total votes 116: ↑95 and ↓21+74
Comments81

Hosts Commander — модификация hosts из командной строки

Reading time3 min
Views26K
Я хотел бы посвятить немного времени файлу hosts. Года два назад, когда я в очередной раз забирался в глубину системных директорий, чтобы подправить всего одну строчку в этом файле, мне подумалось, как было бы классно работать с hosts из командной строки. Тогда идея отправилась в дневничок, и долгое время оставалась нетронутой. Пару дней назад я реализовал почти все идеи, которые пришли в голову по этому поводу. Результатом делюсь с хабрасообществом. Буду рад, если кому-нибудь пригодится.

Что получилось?


А получилась небольшая программа hosts.exe, которую кратко можно охарактеризовать так:
  • Операции добавления, удаления и отключения хостов
  • Поддерживает операции над хостами по маске
  • Простые выборки из hosts по атрибутам и маске
  • Создание резервных копий hosts и откат последней операции
  • Поддержка IDN (можно создавать русскоязычные домены)
  • Поддержка IPv6 адресов
  • Поддержка алиасов (несколько доменных имён в строке)
  • Сохраняет исходное оформление и кодировку файла hosts
  • Большое количество алиасов для каждой команды (кому как удобнее)
Читать дальше →
Total votes 81: ↑69 and ↓12+57
Comments163

Hg Init: Часть 5. Процесс слияния

Reading time4 min
Views41K
Это пятая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:


Иногда при слияниях возникают конфликты. Обычно их легко разрешить. В любом случае их надо разрешить, или у вас будет несколько «голов». А кому это нужно?

Часть 5. Процесс слияния




Обеспечение слаженной работы нескольких людей над одним и тем же кодом — это важная функция системы контроля версий.

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

Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments21

Настройка и оптимизация MySQL сервера

Reading time9 min
Views314K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →
Total votes 180: ↑171 and ↓9+162
Comments19

Hg Init: Часть 4. Исправляем ошибки

Reading time4 min
Views73K
Это четвертая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:


Одно из главных преимуществ Mercurial состоит в том, что вы можете использовать личные клоны репозитория для экспериментов и разработки новых возможностей. Если что-то пошло не так, можно все исправить за мгновение.

Часть 4. Исправляем ошибки




Mercurial позволяет свободно экспериментировать. Представьте, что во время работы вы что-то не то сделали в редакторе, и случилось нечто ужасное:

Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments36

Большие потоки трафика и Linux: прерывания, маршрутизатор и NAT-сервер

Reading time6 min
Views61K
Написано по следам публикации Большие потоки трафика и управление прерываниями в Linux

В нашей городской сети более 30 тысяч абонентов. Суммарный объем внешних каналов — более 3 гигабит. А советы, данные в упомянутой статье, мы проходили еще несколько лет назад. Таким образом, я хочу шире раскрыть тему и поделиться с читателями своими наработками в рамках затрагиваемого вопроса.

В заметке описываются нюансы настройки/тюнинга маршрутизатора и NAT-сервера под управлением Linux, а также приведены некоторые уточнения по поводу распределения прерываний.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments54

Hg Init: Часть 2. Основы Mercurial

Reading time7 min
Views230K
Это вторая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Возможно, вы захотите прочитать и первую часть «Переобучение для пользователей Subversion».

Даже если вы работаете в одиночку, то вам стоит использовать Mercurial. Так вы сможете получить все прелести контроля версий. Эта часть покажет насколько просто добавить каталог в Mercurial, чтобы с легкостью отслеживать предыдущие версии.

Часть 2. Основы Mercurial



Mercurial — это система контроля версий. Разработчики используют ее для администрирования исходного кода. У нее два основных назначения:
  1. Она хранит все предыдущие версии каждого файла
  2. Она может объединить разные версии вашего кода, то есть сотрудники могут независимо работать над кодом и затем объединять свои изменения


Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments66

Перехват вызовов функций в Linux или простейший файрвол своими руками

Reading time5 min
Views4.3K

Вступление


Нетерпеливым эти лирические отступления можно не читать.

Некоторое время назад меня посетила мысль: «Как сделать так, чтобы закрыть доступ к интернету (или к какому-то конкретному хосту) какой-нибудь одной программе в Linux?». Эта мысль меня посетила и полетела дальше по своим делам. И вот сегодня я получил в свой RSS-ридер один вопрос на askdev.ru. Ба! Да это как раз то, о чем я думал! Надо помочь человеку, заодно и самому разобраться в вопросе.

Полез я в гугл смотреть, нету ли каких-нибудь намеков на решение. Оттуда я узнал, что штатным iptables это с некоторых пор сделать стало невозможно, а народ рекомендует посмотреть в сторону AppArmor. «Горя огромным желанием изучить AppArmor», я стал искать дальше и почти случайно наткнулся на сообщение на ЛОРе, в котором описывался довольно интересный метод.
Читать дальше →
Total votes 97: ↑88 and ↓9+79
Comments21

Числа, которые должен знать каждый программист

Reading time1 min
Views17K
Чтобы было понятно, на чём следует концентрироваться при оптимизации, слайд из доклада «Создание программных систем в Google и его уроки»:
Таблица
Total votes 164: ↑108 and ↓56+52
Comments120

Мониторинг состояния канала по jitter / packet loss

Reading time4 min
Views43K
Добрый день, коллеги.

Собравшись с мыслями, решил нормально оформить родившееся у меня решение.

Итак, постановка задачи:

Есть два канала между точками А и Б, чаще всего от разных провайдеров. Необходимо обеспечить учет качества обслуживания на данных каналах, а именно:
1. При потерях >0.5% на канале, канал не должен использоваться.
2. При jitter > 10мс, канал не должен использоваться.

Такая задача возникла у меня на работе, поскольку два города соединены двумя каналами, по которым бегает в большом количестве голос, который, как известно, весьма капризен в отношении вышеописанных показателей. Кому интересно — милости прошу под кат.
Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments37

Еще раз об архитектуре сетевых демонов

Reading time13 min
Views19K
Во многих статьях, в том числе на хабре, упоминаются и даже описываются разные способы построения архитектуры сетевых сервисов (демонов). При этом мало у кого из авторов есть реальный опыт создания и оптимизации демонов, работающих с десятками тысяч одновременных соединений и/или гигабитным трафиком.

Так как большинство авторов не удосуживается хотя бы залезть в документацию, то обычно в таких статьях вся информация базируется на неких слухах и пересказах слухов. Эти слухи бродят по сети и поражают википедию, хабрахабр и другие уважаемые ресурсы. В результате получаются опусы вроде "Вы наверное шутите, мистер Дал, или почему Node.js" (пунктуация автора сохранена): она, в основном, верная по сути, но изобилует неточностями, содержит ряд фактических ошибок и изображает предмет с какого-то непонятного ракурса.

Мне было сложно пройти мимо статьи, изобилующей фразами вроде «эффективные реализации polling'а на сегодняшний день имеются лишь в *nix-системах» (как будто poll() есть где-то, кроме некоторых *nix). Этот пост начинался как комментарий, разъясняющий уважаемому inikulin ошибки в его статье. В процессе написания оказалось, что проще изложить предмет с самого начала, что я собственно и делаю отдельным постом.
В моем очерке нет срыва покровов или каких-то неизвестных трюков, здесь просто описываются преимущества и недостатки разных подходов человеком, который проверял, как всё это работает на практике в разных операционных системах.
Для желающих просветиться — добро пожаловать под кат.
Читать дальше →
Total votes 161: ↑159 and ↓2+157
Comments53

Большие потоки трафика и управление прерываниями в Linux

Reading time4 min
Views64K
В этой заметке я опишу методы увеличения производительности линуксового маршрутизатора. Для меня эта тема стала актуальна, когда проходящий сетевой трафик через один линуксовый маршрутизатор стал достаточно высоким (>150 Мбит/с, > 50 Kpps). Маршрутизатор помимо роутинга еще занимается шейпированием и выступает в качестве файрволла.
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments42

О шрифтовых способах выделения (часть 1)

Reading time3 min
Views20K
Всегда надо помнить, что любое выделение в тексте тревожит равномерность набора и тем самым уменьшает комфорт прочтения и как следствие, восприятие информации. Поэтому во всех неоправданных случаях от выделения следует отказаться. Любое выделение, также как и его степень, должно быть логически обоснованым.
В первой части обзора будут представлены самые популярные способы выделения, а также возможные ошибки их применения и рекомендации, как этого избежать.
Читать дальше →
Total votes 49: ↑39 and ↓10+29
Comments33

Кодировки

Reading time6 min
Views62K

Всем рано или поздно приходится работать с различными кодировками. Заметив в коде своей команды различные, порой странные, подходы к решению этих проблем, пришлось провести разъяснительную беседу. Ниже поделюсь своим видением правильной работы с не-ASCII символами в коде. Буду рад конструктивной критике.

Читать дальше
Total votes 76: ↑73 and ↓3+70
Comments61

TOP-5 умных видео за всю историю SmartVideos.ru!

Reading time1 min
Views817
Cпециально для тех, кто не видел, мы собрали — 5 самых просматриваемых и обсуждаемых умных видеороликов за всю историю существования сайта SmartVideos.ru, которые мы перевели и озвучили!

1. Эксперименты с неньютоновской жидкостью


2. Финансовый кризис. Наглядно



3. Представляем десятое измерение


Читать дальше →
Total votes 26: ↑19 and ↓7+12
Comments4

Создание загрузочной USB Flash с Windows 7 из-под Ubuntu

Reading time2 min
Views436K
Недавно друг попросил установить ему Windows 7. Так уж вышло, что мой DVD-привод давно не работает, зато есть флешка на 8 ГБ. Тема создания загрузочной флешки с Windows 7 из-под Windows уже давно сильно разжевана в Сети. Но я пользуюсь Ubuntu, так что пришлось искать другое решение. На самом деле, как мне кажется, оно еще и проще.

Читать дальше →
Total votes 88: ↑74 and ↓14+60
Comments137

Создание приложений на GTK+ с использованием среды Glade

Reading time10 min
Views46K
Данный пост посвящен созданию приложений с использованием кроссплатформенной библиотеки GTK+. Ориентирован он в основном на новичков? поэтому какие-то вещи возможно для многих покажутся очень простыми и банальными, но я постарался максимально подробнее всё описать, чтобы было понятно для всех.

Немалым достоинством этой библиотеки является то, что она бесплатна для коммерческого использования. В интернете не так много документации и действительно качественных статей по работе с GTK+. В очень многих примерах интерфейс программы пишется «ручками», что порой очень неудобно. Я сам с этим столкнулся и довольно часто больше времени тратил на то, чтобы правильно расположить виджеты (объекты) на форме, в контейнеры, а не сосредоточиться на решении поставленной задачи.

Я продемонстрирую как можно очень быстро создать интерфейс для GTK+ с помощью приложения для визуального создания графических интерфейсов Glade и интегрировать его в вашу программу. Glade не является ни компилятором, ни отладчиком. Он позволяет лишь описать интерфейс и представить его в файлах XML-формата GladeXML.

Базовым интерфейсом для библиотеки GTK+ является язык C. Но я в данном примере буду ипользовать C++. Соответственно появятся небольшие особенности, о которых я обязательно расскажу. Дистрибутив Linux я использую Ubuntu 10.04.

Задача будет такая: написать небольшое приложение состоящее из холста, бокового меню (выбора того, что нарисовать на холсте), главного меню и строки состояния. При этом боковое меню и холст при изменении размера всего окна приложения должны оставаться постоянного размера. Но тот контейнер, в котором находится холст может изменять свой размер в зависмости от увеличения/уменьшения размеров главного окна. И при необходимости должны появляться полосы прокрутки.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments34

XPath наглядно

Reading time1 min
Views60K
XPath является одним из ключевых моментов на дороге к пониманию XSLT. И на первых порах хочется получить какой-нибудь простой способ поэкспериментировать с ним, чтобы в деталях разобраться, как он работает. Способа такого, впрочем, не наблюдается. Приходится или качать совсем не бесплатные XML/XSLT редакторы, или довольствоваться статичными картинками с zvon.org. Может быть, я плохо искал. Но с моей колокольни все обстоит именно так. И когда передо мной в очередной раз встала задача «Объяснить XSLT», в голове и родилась идея крохотного сервиса. После того, как все заработало, было решено выкатить его для всеобщего пользования: наверняка не я один сталкивался с похожими проблемами.
Читать дальше →
Total votes 100: ↑93 and ↓7+86
Comments35

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity