Pull to refresh
-1
Karma
0
Rating
Диман @ibex

User

Зачем нужен static при объявлении анонимных функций?

Reading time 2 min
Views 16K
Website development *PHP *Symfony *Yii *Laravel *

Буквально на днях пришел вопрос от одного из подписчиков касательно одного из постов моего telegram канала. Его смутил вот такой кусок кода:

usort($firstArray, static function($first, $second) { return $first <=> $second;
});

Вопрос звучал так:

"Зачем делать callback’и в функции сортировки (usort), статическими?"

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

Читать далее
Total votes 67: ↑65 and ↓2 +63
Comments 14

MathOps или математика в мониторинге

Reading time 18 min
Views 11K
Конференции Олега Бунина (Онтико) corporate blog okmeter.io corporate blog System administration *Server Administration *DevOps *
То, о чем я хочу рассказать, началось 30 декабря 2010 года, когда компания Etsy выложила на GitHub первый коммит своей системы StatsD. Эта, сейчас уже, суперпопулярная система, написанная на JavaScript (хипстеры ликуют), в которую можно отправлять метрики, замеры исполнения кусков вашего кода, а она их агрегирует и отправляет уже агрегированными в систему хранения time-series.



На фоне популярности StatsD и других time-series систем появилась идея «Monitor Everything»: чем больше различных вещей в системе измеряется, тем лучше, потому что в случае неожиданной ситуации будет возможно найти нужную, уже собранную метрику, которая позволит во всем разобраться.

Давайте вообще все, что можно, мониторить — и будет классно!

Но как часто бывает с любой модной технологией, которая изначально сделана с некоторыми ограничениями, при начале использования люди не очень задумываются об этих ограничениях, а делают как написано, как придется.

И так получилось, что есть много проблем со всем этим, про которые, собственно, нам и расскажет Павел Труханов ( tru_pablo ).
Total votes 47: ↑46 and ↓1 +45
Comments 0

Новые возможности postgres_exporter для мониторинга PostgreSQL

Reading time 9 min
Views 13K
PostgreSQL *

Добрый день, читатели habr!


В первой заметке о posgres_exporter, я рассмотрел достаточно частный случай, при работе с новой, на тот момент фитчей, а именно возможностью мониторинга одним экспортером набора экземпляров и/или баз данных. И описал тот "букет" проблем с которыми при этом столкнулся и какие обходные решения применял, что бы это всё заработало.
И вот, 25 ноября, вышел очередной релиз postgres_exporter 0.8.0. В нём были решены проблемы описанные в предыдущей заметке, а также, что особо приятно, добавлен новый функционал.


Прошу под кат...

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 3

10 способов сделать резервную копию в PostgreSQL

Reading time 5 min
Views 227K
System administration *Database Administration *
Многие разговоры про бэкапы начинаются с присказки что люди делятся на две категории… так вот я отношусь к тем людям которые делают бэкапы. Правильно настроенное резервное копирование и проверка резервных копий укрепляет сон. А наличие заранее написаных и проигранных инструкций по восстановлению вообще укрепляет пищеварение и иммунитет. Так вот, за время работы с PostgreSQL мне довелось часто настраивать резервное копирование, при этом условия и требования были самые разные. Однако при этом набор инструментов за редким исключением оставался неизменным. В этой статье поделюсь своим опытом в деле, как можно брать резервные копии PostgreSQL.
image

Читать дальше →
Total votes 41: ↑39 and ↓2 +37
Comments 18

Советы по выбору усилителя сигнала сотовой связи 2G/3G/4G/5G

Reading time 8 min
Views 299K
Cellular communication

Статья о вариантах усиления сигнала сотовой связи на различных объектах: дача, офис, склад..., так же краткий обзор популярных предложений на рынке.


Существует два основных варианта усиления сотовой связи:


  1. С помощью антенны, модема и роутера.
  2. С помощью активного усилителя (репитера).

Первый вариант для усиления интернета 3G/4G/5G, не усиливает голосовую связь в обычном для нас формате (но можно пользоваться звонками через мессенджеры: WhatsApp, Viber, Skype, Telegram).


Второй вариант универсальный – усиливает интернет и голосовую связь, но имеет ряд ограничений (о ограничениях ниже).


Total votes 60: ↑58 and ↓2 +56
Comments 165

Прозрачное Socks5 проксирование приложений в linux

Reading time 2 min
Views 23K
Configuring Linux *
Потребовалось мне как-то запустить игру, которая запускается под wine, через прокси. Поднял ssh-туннель, запустил игру через proxychains, и… игра не смогла соединиться с сервером, хотя chromium без проблем работал и показывал ip прокси. Попробовал tsocks — игра вообще не запустилась. Можно, конечно, было настроить VPN-туннель с помощью того же ssh, но сервер — VPS, под OpenVZ, у которого по умолчанию выключен TUN, что привело бы к письму в техподдержку и ожиданию.
Итак, пятиминутное гугление привело меня к заброшенному проекту Transocks, который, в отличие от proxychains и tsocks, которые подгружают свои библиотеки и перехватывают сетевые вызовы, слушает определенный порт и перенаправляет все, что в него пришло, через socks4 прокси. К сожалению, transocks у меня не собрался, и я начал гуглить дальше.
Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Comments 17

Code Conventions: как мы сохраняем быстрый темп разработки PHP-проекта

Reading time 7 min
Views 20K
Roistat corporate blog Open source *PHP *Perfect code *Development Management *
Привет, Хабр. Меня зовут Евгений Удодов, я сооснователь и технический директор компании Roistat. Хочу поделиться нашим опытом разработки большого и сложного продукта — системы аналитики.

TL;DR: Мы выложили на github наш Code Conventions и рассказали в статье о том, как его применять на практике.

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

За 4 года существования нашего проекта мы сделали больше 20 000 Pull Request’ов (далее PR) и под катом я расскажу, как же мы решили эти проблемы.


Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 61

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

Reading time 11 min
Views 24K
ITSumma corporate blog IT Infrastructure *Nginx *Angular *GitHub *

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 33

Мошенники и ЭЦП — всё очень плохо

Reading time 5 min
Views 232K
Information Security *Legislation in IT

Недавно общественность облетела новость о первом случае продажи квартиры мошенниками с помощью ЭЦП и подделки документов. Когда я раньше читал подобные новости, всегда воспринимал отстранённо, как будто со мной этого не может произойти, но я ошибался. И теперь могу заявить, в зоне риска мошенников — каждый, увы, даже хабровчане.

Читать дальше →
Total votes 356: ↑356 and ↓0 +356
Comments 780

Анализ дружеских связей VK с помощью Python. Продолжение

Reading time 14 min
Views 65K
Python *Programming *
В предыдущей статье мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую статью, и я не буду описывать все заново. Под хабракатом большие картинки и много текста.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 21

IPv6, miredo, dynamic DNS AAAA

Reading time 3 min
Views 23K
Configuring Linux *System administration **nix *Network technologies *IPv6 *


Захотелось странного — чтоб мои IPv6-enabled (miredo) хосты еще и динамически обновляемую DNS запись имели. Поизучав вопрос выяснил, что многие распространённые dyndns сервисы или не предоставляют возможность регистрации AAAA (IPv6 эквивалент записи типа A для IPv4), или не предоставляют её бесплатно, или имеют мутные настройки динамического обновления неизвестного уровня безопасности (или вовсе http/plaintext). Перепробовал с десяток сервисов и решил остановиться на freedns.afraid.org
Плюсы:
  • Человеко-понятная админка (без всяких «купить AAAA за $0 USD»)
  • Бесплатно дают AAAA
  • Безопасное (https) обновление
  • URL-based обновление (не приходится испытывать сомнений о конфиге для агентов типа ddclient)

Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 13

Запускаем i2pd в контейнере Docker на CentOS 7

Reading time 3 min
Views 9.2K
Configuring Linux *System administration *
Sandbox

image На Хабрахабре есть отличная статья по i2pd. Единственный недостаток проекта в том, что его авторы предоставляют пакеты только для Ubuntu и Debian, что составляет определённое неудобство для пользователей CentOS.


Владельцу домашнего NAS на CentOS 7 вроде меня остаётся либо собирать i2pd из исходников, либо воспользоваться Docker, чтобы установить его поверх образа Debian Jessie.


Итак, статья посвящена созданию контейнера с i2pd в Docker под CentOS 7.

Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 7

Эффективное использование Github

Reading time 13 min
Views 119K
2ГИС corporate blog Website development *Git *Version control systems *GitHub *

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



Читать дальше →
Total votes 149: ↑148 and ↓1 +147
Comments 38

Как объяснить бабушке, что такое Agile за 15 минут с картинками

Reading time 7 min
Views 1.1M
Edison corporate blog Development Management *Project management *Agile *Product Management *
Translation
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера

image

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
Total votes 72: ↑63 and ↓9 +54
Comments 38

Не соблаговолите ли больше не нарушать, сэр (мэм)?

Reading time 4 min
Views 65K
Recognitor corporate blog Open source *Image processing *
Примерно неделю назад Vasyutka опубликовал пост про распознавание номеров и обещал, что мы выложим софт, который можно будет опробовать. Мы немножко схитрили, не рассказав все подробнее. Ну, а то бы никакой интриги не было! Ядро алгоритма распознавания мы сделали с полгода назад, но тот проект, для которого оно было сделано, не двинулся. Он остановился где-то на альфа-версии. Подумав, и посовещавшись с заказчиком, мы решили, что это нехорошо, когда такой алгоритм пылится на полке и не приносит пользу обществу. С другой стороны выкладывать все исходники распознающей части не хотелось. Тогда и родилась идея, о которой пойдёт речь в этой статье.
image
Решили мы, собственно, сделать открытый сервер, который бы распознавал номера, приходящие http-запросами. Так как вся идея некоммерческая, то сервер, конечно, слабенький, но на то, чтобы народ игрался, надеюсь, его хватит.
А вот тут крутой поворот сюжета. Пост этот не про протокол обращения к серверу. Об этом будет следующий пост. Этот пост о программе, которую мы начали делать как пример работы с сервером, но которая вылилась в интересную на наш взгляд концепцию. В статье будет рассказано про Android-приложение, которым можно сфотографировать номер автомобиля… И обругать владельца бранным словом! Ну, или посмотреть статистику того, сколько раз сего автомобилиста обругали.
Те, кому невтерпёж, смогут расковырять работу с сервером из исходников в конце статьи. Остальных подержим пару дней в напряжении, а потом выложим законченный мануал.
Заинтриговал?
Total votes 120: ↑110 and ↓10 +100
Comments 65

Централизованный сбор и обработка журналов печати Windows

Reading time 12 min
Views 59K
PowerShell *
Sandbox
В небольших офисах далеко не всегда используются сетевые принтеры и МФУ, поэтому получить статистику использования печатающих устройств получить достаточно сложно. Тем более, если это требуется произвести с минимальными затратами. Такие данные смогут помочь определить наиболее активно используемые устройства, оценить нагрузку на них и принять своевременные решения по закупке расходных материалов, техническом обслуживании или даже замене на более экономичные и производительные. Данную задачу возможно решить без дополнительного ПО используя встроенные средства управления журналами Windows и скриптом на Powershell.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 18

Опыт перехода с Sublime на Vim

Reading time 22 min
Views 75K
Website development *PHP *VIM *
Sandbox


Данная статья не раскрывает всех премудростей перемещения по тексту или его редактирования. Основные движения можно узнать в vimtutor, остальные комбинации изучаются в процессе работы. Некоторые из них, особо важные в процессе программирования, я освещу позже.

Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 123

«Прозрачный» Squid с разграничением доступа

Reading time 3 min
Views 41K
Configuring Linux *System administration *
Sandbox


Как готовить кальмара, думаю что не я один сталкивался с задачей настройки Squid'а для разграничения доступа сотрудникам предприятия, но при этом он должен быть «прозрачным». Другими словами конфигурация показанная далее удовлетворяет трём условиям:

  • Имеется список запрещенных интернет-ресурсов, доступ к которым закрыт у всех пользователей (Пример: социальные сети);

  • Имеется список разрешенных интернет-ресурсов, доступ к которым открыт у всех пользователей (Пример: портал государственных услуг);

  • Имеется список ip-адресов пользователей которые должны иметь доступ ко всем интернет-ресурсам кроме входящих в список запрещенных.

Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Comments 25

Home Assistant или еще один «мозг» для проекта типа «Умный Дом»

Reading time 11 min
Views 72K
Programming microcontrollers *Development for IOT *
Sandbox
Добрый день, уважаемый читатель. На днях довелось мне поиграться с многим уже известной игрушкой от Google – Google Home. Штука хорошая — обзор ее я делать конечно не буду. В чулане совершенно случайно завалялись Raspberry PI 3 (RPi), Arduino Mega и еще им подобная мелочь, которую захотелось подключить к Google Home (GH) с целью голосового управления. Простого API у GH нет, но есть возможность с помощью стороннего сервиса организовать голосовое управление системой на RPi + Arduino с задержкой команд в несколько секунд.

Читая буржуйские форумы (справедливости ради, нужно отметить, человек я повернутый на автоматизации и IoT), обратил внимание на доселе мне неизвестное нечто, что называют Home Assistant (HASS), эту систему умельцы-то и прикручивают к GH.

В двух словах о самой платформе:

Система написана на Python, последний релиз был 29 января, текущая версия: 0.37.0

Поддерживаемые ОС:

  • Windows 10
  • Mac OS X
  • Ubuntu 14.04
  • Raspbian (Raspberry PI)
  • iOS App – beta

Поддерживаемые компоненты: 545 шт., включая почти все TV/AV receivers, Broadlink, ZigBee, iCloud, Yandex TTS и многое, многое другое.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 27

Правильная утилизация батареек

Reading time 3 min
Views 361K
Energy and batteries
Привет, друзья!

Каждый из нас наверняка пользовался в своей жизни батарейками. Пульты, часы, игрушки, телефоны, масса других вещей — в доме всегда есть что-то, что работает на батарейках. А они имеют свойство вырабатывать свой ресурс. Однако все ли знают, что делать с отработавшими батарейками? Выбросить в мусорное ведро вместе с остальным домашним мусором? Это неправильно!

На корпусе батарейки практически всегда присутствует знак в виде перечеркнутого мусорного контейнера, сообщающий о том, что ее нельзя выбрасывать вместе с остальными бытовыми отходами.

Но что такого вредного или опасного в батарейках?
Узнать
Total votes 201: ↑193 and ↓8 +185
Comments 176

Information

Rating
Does not participate
Location
Измалково, Липецкая обл., Россия
Date of birth
Registered
Activity