Pull to refresh
0
0
Darivush @Darivush

User

Send message

МиниАТС у себя дома

Reading time13 min
Views48K
У меня есть стационарный телефон от Укртелекома. И все бы хорошо, если бы не воровали телефонный кабель. И вот оставшись очередной раз без городской связи, я решил заняться поиском альтернатив. Интернет у меня идет по оптике. Узнав что Укртелеком предоставляет услуги SIP телефонии я уже обрадовался решению проблемы малой кровью. Однако оказалось, что номер при этом у меня изменится. А ведь старый номер это единственное, что меня останавливало от ухода с Укртелекома. Ну раз потери номера мне было не избежать, тогда я решил более плотно заняться вопросом обеспечения себя связью.
Total votes 23: ↑22 and ↓1+21
Comments55

Боремся с нагрузками в HPE Vertica

Reading time5 min
Views6.2K
Типовой сценарий работы «just in time» хранилища данных выглядит так: десятки (ETL) сессий почти непрерывно захватывают с источников данные и вставляют их в хранилище. Параллельно множество других (ELT) сессий отслеживают поступление данных, заполняют консолидированный слой и ведут расчет агрегатов и витрин. Одновременно с этим, на поступающих первичных и рассчитанных данных, выполняют запросы пользователи, BI и другие системы. Вся эта каша должна ладно вариться в рамках сервера хранилищ данных, без тормозов и затыков, какими бы не были пиковые нагрузки.

В HPE Vertica для планирования работы сервера под нагрузками разработан специальный механизм, под названием «ресурсные пулы». Идея его в том, что каждый пользователь сервера работает в рамках выделенного ресурсного пула, который регулирует приоритетность доступа к ресурсам кластера, ограничивает конкурентность выполнения запросов и описывает правила резервирования и работы с памятью сервера.

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


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments4

Балансировка двух провайдеров на основе BGP и EEM

Reading time15 min
Views28K

Статья рассматривает способ управления BPG-анонсами на маршрутизаторах Cisco, c операционной системой IOS XE, с помощью Cisco Embedded Event Manager (EEM) для балансировки входящего трафика и резервирования uplink от нескольких вышестоящих провайдеров.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments18

Страх и ненависть и пагинация

Reading time8 min
Views27K

А в чем проблема?


Типичная пагинация


Как бы нам не хотелось этого отрицать, практика показывает, что подавляющее большинство своего времени типичный iOS-разработчик проводит за работой с табличками. Проектирование сервисного слоя — это интригующе, разработка универсального роутинга в приложении — захватывающе, а от настройки гибких политик кэширования вообще крышу сносит, но работа с табличными интерфейсами — это наши серые будни. Иногда луч света все же попадает и в эту область, и вместо очередной возни с constraint'ами перед нами может встать задача реализации постраничной загрузки — или, как это модно называть в мобильных приложениях, infinite scroll'а.


Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments8

SNMP MIBs и как их готовить

Reading time18 min
Views253K
Доброго времени суток, читатель.

Предыстория


Я 5 лет работаю в компании, предоставляющей широкополосный доступ к всемирной паутине. Занимаюсь непосредственным управлением оборудованием, а также планированием и мониторингом сети. На момент моего прихода в сети было немногим больше 100 единиц управляемого оборудования вендоров Cisco и D-Link. Рисовали карту сети по старинке в visio, ip-адреса вели там же, но мой руководитель в то время начал писать некоторый софт для инвентаризации оборудования — началось все с учета выданных ip-адресов. Учитывая рост сети (а точнее модернизация в лице замены глупых «мыльниц» на «управляки»), мы и решили, что обычного Cacti нам не хватает. Стандартные счетчики по SNMP мы собирали сразу, но найти что-то более нужное и интересное было трудно. Неоднократные попытки овладеть другими опциями не приводили к конечному результату, но не так давно удалось «обуздать» MIB-файлы для коммутаторов D-Link и считаю, что данная статья ускорит процесс изучения коммутаторов и протокола SNMP. Это позволит быстрее и качественнее управлять сетью.
image
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments15

Настройка rsyslog для сбора логов по сети через шифрованное соединение

Reading time6 min
Views20K
На Хабре есть несколько статей по rsyslog, но не нашлось ни одной, описывающей, как настроить взаимодействие клиента и сервера через защищенное соединение. Попробую исправить этот момент.

Допустим, у нас есть несколько серверов, имеющих доступ в интернет и не имеющих какой-то приватной сети между собой. В один прекрасный момент нам надоедает лазать на каждый их них по очереди и мы решаем настроить централизованный сервер логов. Так как данные будут передаваться через интернет, необходимо их защитить, передавая их через TLS.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Как указывать диапазоны дат в интерфейсах?

Reading time5 min
Views34K
Однозначного и исчерпывающего ответа на вопрос поверхностный поиск не дал, справочники академического характера чаще всего выдают результаты для изданий (в т.ч. с вариантами использования римских цифр, что не очень подходит для интерфейсов), поэтому хочется понять, как лучше указывать именно диапазоны именно дат и именно в интерфейсах и попробовать сформулировать правило или выявить закономерности. Для этого я вспомнил все, какие мог, кейсы, и упорядочил их в таблице — кейс, числовой пример, формат полный и сокращенный, для дней, недель, месяцев, кварталов, полугодий и лет (внутри поста).

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

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

Например, получаются вот такие странные штуки:


Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments28

Nginx: защищаем урл одноразовым паролем

Reading time2 min
Views19K
Появилась задача обезопасить админскую часть на сайте. Причём это надо было сделать без внесения изменений в код самого сайта. Лучшее, что смог я найти — oauth2_proxy и nginx-google-oauth, но они требовали обработку коллбэков. Эти решения мне не понравились и я их отверг.

Пришлось обратиться к одному из модулей nginx и комплектующим для велосипеда.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments14

Mikrotik VRF+NAT — Управляем с одного хоста устройствами с одинаковыми IP-адресами

Reading time4 min
Views54K
Недавно знакомый попросил помощи с настройкой микротика. Просьба была не совсем простая. Идея в том, что нужно было одновременно управлять с одного хоста четырьмя устройствами с неуправляемым TCP/IP стеком. На всех этих устройствах были одинаковые настройки IP, причем просто IP-адрес и маска, ни шлюз, ни DNS не указаны. Странная, но, как оказалось, весьма реальная ситуация. Не будем вдаваться в подробности причин невозможности перенастройки адресации на этих устройствах, а просто примем этот факт за аксиому. Задача поставлена так, как есть, и ее нужно решить.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments16

Как определить дубликаты картинок с помощью PHP

Reading time4 min
Views46K
В любом проекте человеческий фактор никто не отменял, и если пользователи самостоятельно грузят картинки на сайт – появления дубликатов не избежать. Когда доходит до тысяч файлов, глазами всего не пересмотреть, а повторяющиеся картинки мало того, что никому не нужны, так еще и занимают место, тратят ресурс и в конце концов тормозят работу.



Потому рано или поздно встает вопрос автоматизации процесса поиска повторов, и тут мы рассмотрим основные, а также попробуем в деле.
Читать дальше →
Total votes 45: ↑37 and ↓8+29
Comments24

Перезапуск демона на PHP без потери соединений к нему

Reading time13 min
Views20K
На различных конференциях мы неоднократно рассказывали про наше облако для CLI-скриптов (видеозапись доклада, слайды). Облако предназначено для того, чтобы запускать различные PHP-скрипты по расписанию или через API. Как правило, эти скрипты обрабатывают очереди, и нагрузка «размазывается» приблизительно по 100 серверам. Ранее мы акцентировали внимание на том, как реализована управляющая логика, которая отвечает за равномерное распределение нагрузки по такому количеству серверов и генерацию заданий по расписанию. Но, помимо этого, нам потребовалось написать демон, который был бы способен запускать наши PHP-скрипты в CLI и следить за статусом их исполнения.

Изначально он был написан на Си, как и все остальные демоны в нашей компании. Однако мы столкнулись с тем, что существенная часть процессорного времени (около 10%) тратилась, по сути, впустую: это запуск интерпретатора и загрузка «ядра» нашего фреймворка. Поэтому, чтобы иметь возможность инициализировать интерпретатор и наш фреймворк только один раз, было принято решение переписать демон на PHP. Мы назвали его Phprocksyd (по аналогии с Phproxyd — PHP Proxy Daemon, демоном на Си, который у нас был до этого). Он принимает запросы на запуск отдельных классов и делает fork() на каждый запрос, а также умеет сообщать о статусе исполнения каждого из запусков. Такая архитектура во многом похожа на модель веб-сервера Apache, когда вся инициализация делается один раз в «мастере» и «дети» занимаются уже именно обработкой запроса. В качестве дополнительной «плюшки» мы получаем возможность включить opcode cache в CLI, который будет правильно работать, поскольку все дети наследуют ту же область общей памяти, что и мастер-процесс. Чтобы уменьшить задержки при обработке запроса на запуск, можно делать fork() заранее (prefork-модель), но в нашем случае задержки на fork() составляют около 1 мс, что нас вполне устраивает.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments16

Командное приготовление яичницы

Reading time2 min
Views4K
Фантазия на тему, как наша команда готовила бы яичницу.



Product manager (он всегда спецификацию пишет по-английски):
Our customers need fried eggs. Result should be hot and round. Sunny-side up.
P0. Should be cooked from eggs
P2. Fried eggs should be edible
Microwave method is out of scope.
Design of fried eggs will be attached later.

Team leader:
— Мне нужны точные оценки сколько времени потребуется на создание яичницы и разбиение по задачам. Поскольку требования сложные — предлагаю сделать сначала прототип.
Читать дальше →
Total votes 131: ↑99 and ↓32+67
Comments38

У Гугла проблемы со связностью IPv6 в Европе

Reading time1 min
Views13K
Моя сеть подключена к IPv6 через тоннель от he.net.
С утра начались звонки, что не работает интернет. Выяснилось, что сайт Гугла не открывается по ipv6.

Ответ поддержки ipv6@he.net:
As to Google, they appear to be having some issues in the EU with their v6 at this time.


В качестве временной меры предлагаю пользователям использовать ipv4 зеркало Гугла — ipv4.google.com

Upd. В 19.00 по МСК заработало.
Total votes 13: ↑9 and ↓4+5
Comments4

Google World Wonders Project собрал вместе чудеса света

Reading time1 min
Views3.1K


Чудес света больше чем семь, или восемь. В каждом уголке нашей планеты есть что-нибудь, что может считаться чудом. Это и строения, и города, и целые регионы. Корпорация Google решила собрать все эти чудеса света вместе, чтобы любой человек мог на них полюбоваться. Конечно, эффект от виртуального посещения той же Пизанской башни меньше, чем от непосредственной поездки, но все же это интересно. Новый проект Google World Wonders Project соберет вместе (вернее, уже собрал) 132 различных объекта и региона, от Йосемитского национального парка до той же Пизанской башни.

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments6

Акинатор и математика

Reading time6 min
Views112K
На Хабре уже несколько раз всплывала тема Акинатора, в том числе и с тегом не знаю как оно работает. Я на него наткнулся недавно и, разумеется, был восхищен. Затем, как вероятно и многим другим, мне в голову пришла мысль: «А как же это работает?» Ответа на этот вопрос я нигде не нашел, а потому задался целью написать аналогичную по функциональности программу, разобравшись по ходу дела что к чему.
Читать дальше →
Total votes 103: ↑95 and ↓8+87
Comments78

Активация Windows

Reading time8 min
Views53K
Винда релизится только раз в году, а убунта два раза. 2:1 — пингвин выйграл.

image

Близится час Х, в связи с чем решил посмотреть, что предлагают нам пираты для решения проблем с операционной системой.
Читать дальше →
Total votes 170: ↑114 and ↓56+58
Comments77

UPD: Cisco и 2 провайдера

Reading time5 min
Views4.4K
Проблема стара как мир и сегодня мы ее решим :)
Дано: 2 провайдера (ISP1 и ISP2), внутренняя сеть и между ними маршрутизатор.
Задача: настроить один основной (ISP1) и один резервный канал (ISP2), при падении первого переключится на второй, при поднятии первого переключится обратно.

UPD: Обновил, дописал ip sla, пока без объяснений.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments19

«Производительность MySQL» в Киеве, 22.09.2009

Reading time2 min
Views596
Сегодня был на конференции "Производительность MySQL". Докладчик был Дмитрий Кравчук. Спасибо maghamed, 60% конференции я уже знал.
Сама конференция была интересной, в хронографическом порядке зарождения MySQL. Начиная от 1995 года, когда собрались Монти и Дэвид, до сегодняшнего дня, MySQL Perf версии.
Что не понравилось:
  • Sun имеет инсайдерскую версию MySQL Perf (производительность чуть выше чем в 5.4), которую не спешит выкатывать.
  • Почти всю конференцию было слышно «Sun это, Sun то».
  • Обделили maatkit вниманием (может потому что вражеская разработка?)
  • Порадовал слушатель, в компании которого была «масштабируемая система» — 1500 запросов на 1 страницу. При этом их техлид считает memcache костылями.
  • Не было бутербродов :(

Что понравилось:
  • Докладчик :). Дмитрий отвечал на все вопросы, было живое обсуждение. В конце выступления пошли хинты, про которые я до этого не слышал и нигде не видел.
  • Принцип «Доверяй, но проверяй». Дмитрий не верил никому, поэтому полностью сам тестил MySQL в производительности.
  • В зале был человек от Percona, который иногда помогал Дмитрию с ответами.
  • MySQL развивается! Не смотря на покупку Sun в последние годы много внимания было уделено производительности, что привело к появлению версии 5.4.

Пару хинтов для себя, чтобы не забыть:
  • Каждая аппликация уникальная и сервер надо настраивать под конкретные нужды (ваш КО)
  • Сейчас есть баг с innodb_max_dirty_pages_pct. Это значение просто игнорируется. Патч есть, в основную ветку еще вроде не внесли (могу ошибаться)
  • Пока существует баг с innodb_max_dirty_pages_pct влиять на флаш «грязных страниц» можно через innodb_log_file (не спрашивайте почему, спросите у Димы)
  • Интересная опция, про которую раньше не слышал — innodb_flush_log_trx_commit. Принимает значения 0, 1, 2. 0 — флаш каждую секунду (0 коммитов в сек = 1 флаш), 1 — флаш каждый коммит (10тыс коммитов в сек = 10тыс флашей), 2 — флаш каждую секунду, если был коммит (10 тыс коммитов в сек = 1 флаш). Оптимальный вариант для быстродействия естессно 2
  • innodb_io_capacity — стоит выставить в зависимости от возможностей винчестера. Дмитрий предлагал 2000
  • Query cache больше 20мб — зло
  • С включенным double write buffer в некоторых случаях можно потерять до 30% производительности
  • Redo log, bin log, Double Write buffer стоит хранить на разных винчестерах из-за random read для самой базы
  • Иногда стоит поиграться с max_purge_log
  • Блог Дмитрия dimitrik.free.fr
Total votes 7: ↑7 and ↓0+7
Comments10

Использование Midnight Commander в качестве IDE (codejump)

Reading time3 min
Views2.9K

Преамбула…


я давно искал редактор способный удовлетворить мои скромные запросы в плане написания кода на языке C. Он должен:
  1. работать в консоли;
  2. быть по возможности максимально быстрым;
  3. поддерживать подсветку синтаксиса;
  4. иметь возможность навигации по исходному коду (переход к определению функций, отображение свойств объектов, и т.п.);
  5. устанавливать закладки в тексте и перемещаться по ним;
  6. отображать номера строк;
  7. позволять удобно и интуитивно форматировать исходный код программы;
  8. иметь привычное для меня сочетание клавиш, либо иметь возможность эти сочетания переопределить;

Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments10
1
23 ...

Information

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