Как стать автором
Обновить
-1
0

Пользователь

Отправить сообщение

SQL миграции в Postgres. Часть 1

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров32K

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

Если приложение может быть недоступно какое-то время для проведения миграций, то ответы на эти вопросы не представляют сложности. А что делать, если миграции нужно проводить на горячую – не останавливая базу данных и не мешая другим с ней работать?

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии18

Как я подключил официальный бизнес API WhatsApp через Twilio

Время на прочтение8 мин
Количество просмотров24K
Как известно, WhatsApp не так давно начал предоставлять доступ к своему официальному бизнес API, который так необходим для создания чат-ботов для этого мессенджера «белыми» методами.

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

Одним из таких доступных партнеров является американская компания Twilio. Самое основное их преимущество на мой взгляд, это невысокая стоимость использования WhatsApp Business API.

Я подключил через Twilio официальный бизнес API WhatsApp и сейчас подробно расскажу, как это сделать.

WhatsApp Messenger
Читать дальше →
Всего голосов 10: ↑7 и ↓3+9
Комментарии16

Хочу купить чужой домен, как это сделать? Шаги от проверки к покупке

Время на прочтение4 мин
Количество просмотров20K

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

Рассказываю, как проверить и как купить.
Всего голосов 16: ↑14 и ↓2+25
Комментарии9

Asterisk от 1.8 до 16

Время на прочтение4 мин
Количество просмотров7.9K
Лет 10 назад у нас в компании была станция без поддержки sip и первый Asterisk 1.6 подключен по PRI потокам. В последующем захотелось переадресаций с подстановкой номера и управления категориями и был найден chan_ss7 от netfors, который после подпиливания напильником это все мог. Время шло и вышел PJSIP в 13 версии Aterisk, а chan_ss7 собирался только под 1.8. Да и периодически раз в полгода возникали проблемы с прерываниями, которые проявлялись в пропадающем голосе. Они сами появлялись и сами проходили.

Основная станция заменилась и научилась sip и было решено обновить Asterisk до 16.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+6
Комментарии16

Линукс-порт Far Manager: прогресс за 4 года

Время на прочтение5 мин
Количество просмотров69K
Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

Консольная версия


Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

Вот, смотрите, это far2l в GNOME Terminal


Читать дальше →
Всего голосов 178: ↑177 и ↓1+234
Комментарии585

Как построить диаграмму на Python

Время на прочтение6 мин
Количество просмотров22K

Каждый, кому хоть раз приходилось строить диаграммы в draw.io или Google Diagrams, помнит всю утомительность и медлительность этого процесса. Сегодня делимся с вами материалом, в котором шаг за шагом показывается, как можно строить красивые архитектурные диаграммы с помощью Python. Главное удобство — встроенные узлы для обозначения сервисов и языков программирования. Только код и никакой мыши.
Приятного чтения!
Всего голосов 37: ↑37 и ↓0+37
Комментарии11

Устранение узких мест в PostgreSQL при высоких нагрузках

Время на прочтение9 мин
Количество просмотров15K
Всем привет. Прямо сейчас в OTUS открыт набор на новый поток курса «PostgreSQL». В связи с этим, мы традиционно подготовили для вас перевод полезного материала по теме.





Взяв за основу статью Петра Зайцева об узких местах в производительности MySQL (MySQL Performance Bottlenecks), я хочу немного рассказать о PostgreSQL.

В наши дни для работы с PostgreSQL часто используются ORM-фреймворки. Обычно они работают хорошо, но со временем нагрузка увеличивается и возникает необходимость тюнить сервер базы данных. Каким бы надежным ни был PostgreSQL, но и он может тормозить при увеличении трафика.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+10
Комментарии3

Использование Nginx FastCGI Cache

Время на прочтение9 мин
Количество просмотров27K

FastCGI Cache — это система кэширования данных реализованая на уровне HTTP-сервера Nginx.

Преимущество FastCGI Cache заключается в том, что Nginx вернёт закешированный ответ пользователю сразу, как только получит запрос, при этом слой приложения не будет вовсе обрабатывать поступивший HTTP-запрос, если он имеется в кэше Nginx. 

Использование FastCGI Cache — отличный способ снизить нагрузку на вашу систему.

Если на вашем сайте есть страницы, которые изменяются редко или задержка обновления информации на некоторое время не критична, то FastCGI Cache именно то, что нужно.

Читать далее
Всего голосов 8: ↑7 и ↓1+11
Комментарии16

Как вернуть Windows Photo Viewer в Windows 10

Время на прочтение3 мин
Количество просмотров129K


Начиная с Windows 10, за открытие файла с изображением отвечает уже не Windows Photo Viewer. Вам предлагают новую программу, Microsoft Photos, в которой полно проблем с быстродействием и надёжностью.

И хотя Windows Photo Viewer ушёл в отставку, это всё же простая и небольшая программа для просмотра цифровых фото на ПК. В отличие от Microsoft Photos, Windows Photo Viewer работает быстрее и облегчает просмотр фотографий, хранящихся у вас на локальных носителях.

Если вы обновляли систему с Windows 7 или 8, тогда вам будет легко вернуть назад Windows Photo Viewer – нужно лишь сменить настройки приложений по умолчанию.
Читать дальше →
Всего голосов 23: ↑12 и ↓11+5
Комментарии41

Как подружить Zabbix с Asterisk «из коробки»

Время на прочтение8 мин
Количество просмотров17K
В предыдущей статье «Zabbix — расширяем макро границы» я рассказал как получать сессию авторизации и подставлять ее в локальный макрос хоста. В этой статье я расскажу как подружить Zabbix с Asterisk без внешних скриптов и ПО.

Идея «подружить» эти две системы родилась давно, причем без установки дополнительного софта и скриптов. Быстрое гугление выдавало множество вариантов решений, все сводилось к тому, что закиньте скрипты (на пыхе, баше, питоне и т. п.) на сервер, и будет вам счастье. Мне же хотелось реализовать мониторинг «из коробки» — без внешних скриптов и установки дополнительного софта на сервер с мониторингом и АТС.

Провозился я с этим в сумме 4 рабочих дня, но результат стоил того. Работа через интерфейс AMI, низкоуровневое обнаружение, триггеры, а главное, на подключение АТС и все остальные настройки теперь уходит минут 15.

В наличии заббикс 4.4, около 100 штук Астерисков 13 версии. Какие-то АТС идут с веб интерфейсом FreePBX, какие-то с голой консолью, кучей хитростей и интеграцией через диалплан.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Информация о компьютере: просто и быстро

Время на прочтение5 мин
Количество просмотров47K


Довольно часто нужно быстро, кратко, но информативно получить информацию о стационарном компьютере или ноутбуке, без дополнительного ПО и не «вскрывая крышку».

Это можно реализовать, например, средствами командной строки ОС Windows или PowerShell.
CMD — проверенный временем функционал, который есть в любой версии Windows.
Кроме того, для простых задач администрирования cmd использовать привычнее, а где-то и удобнее.

Что лучше — CMD или PowerShell? Я не готов однозначно ответить на этот вопрос.
Впрочем, ничто не мешает нам пользоваться и тем и другим, все зависит от поставленной задачи.

Мы не будем собирать всю информацию о ПК — для этого существует множество специализированного ПО!

Читать дальше →
Всего голосов 15: ↑6 и ↓90
Комментарии20

Простое обнаружение проблем производительности в PostgreSQL

Время на прочтение5 мин
Количество просмотров57K
Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потенциальные проблемы производительности, чтобы выяснить, что на самом деле происходит.

Повышение производительности PostgreSQL после настройки параметров


Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
Читать дальше →
Всего голосов 20: ↑19 и ↓1+25
Комментарии6

Исчерпывающий путеводитель по тегу iframe

Время на прочтение11 мин
Количество просмотров229K
iframe tag

Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer.


Хотя все современные браузеры поддерживают данный тег, многие разработчики пишут бесконечные статьи, не советуя им пользоваться. Я считаю, что плохая репутация, которая сформировалась, около данного тега не должна мешать вам использовать его. У данного тега есть много хороших примеров применения. Кроме того, iframe не так сложно защитить, поэтому вам не придется беспокоиться о заражении компьютера вашего пользователя.


Чтобы помочь вам сформировать собственное мнение и отточить свои навыки разработчика, мы расскажем обо всем, что вам нужно знать об этом противоречивом теге.


Мы рассмотрим большинство функций, которые предоставляет элемент iframe, и поговорим о том, как их использовать, а также о том, как iframe может быть полезен для преодоления некоторых сложных ситуаций. Наконец, мы поговорим о том, как вы можете защитить свой iframe, чтобы избежать потенциальных уязвимостей.


Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии9

PostgreSQL Antipatterns: обновляем большую таблицу под нагрузкой

Время на прочтение6 мин
Количество просмотров28K
Как стоит поступить (а как точно не надо), если в «многомиллионной» активно используемой таблице PostgreSQL нужно обновить большое количество записей — проинициализировать значение нового поля или скорректировать ошибки в существующих записях? А при этом сохранить свое время и не потерять деньги компании из-за простоя.


Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

Последовательное скачивание в uTorrent за 2 клика

Время на прочтение1 мин
Количество просмотров133K
Привет, Хабр!

Прочитав публикацию «uTorrent на страже online просмотра», был удивлен, что до сих пор не опубликован способ включить возможность последовательного скачивания файлов, не прибегая к дополнительному софту вроде BEncode Editor, а просто и быстро — буквально за два клика.

Итак:
Читать дальше →
Всего голосов 29: ↑21 и ↓8+20
Комментарии80

«Когда часы двенадцать бьют». Или гирлянда в браузере

Время на прочтение12 мин
Количество просмотров9.5K
Предположим, у нас есть несколько мониторов. И нам захотелось использовать эти мониторы в качестве гирлянды. Например, заставить их моргать одновременно. Или, может быть, синхронно менять цвет согласно какому-то умному алгоритму. И что, если сделать это в браузере – ведь тогда можно будет подключить к этому и смартфоны, и планшеты. Всё что есть под рукой.



И, раз уж мы используем браузер, можно добавить ещё и звуковое оформление. Ведь если достаточно точно синхронизировать устройства по времени, то можно воспроизводить звуки на каждом так, будто звучит одна многоканальная система.


С чем можно столкнуться при синхронизации Web Audio и геймплейных часов внутри javascript-приложения; сколько вообще разных «часов» есть в javasctipt (три!) и зачем все они нужны, а также готовое приложение для node.js – под катом.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии18

Почему Вы должны попробовать FastAPI?

Время на прочтение4 мин
Количество просмотров106K

image Лого взято из Github репозитория FastAPI


FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


FastAPI построен на базе Starlette и Pydantic.
StarletteASGI микро-фреймворк для написания веб-приложений.
Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии50

О чем молчит EXPLAIN, и как его разговорить

Время на прочтение4 мин
Количество просмотров22K
Классический вопрос, с которым разработчик приходит к своему DBA или владелец бизнеса — к консультанту по PostgreSQL, почти всегда звучит одинаково: «Почему запросы выполняются на базе так долго?»

Традиционный набор причин:

  • неэффективный алгоритм
    когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей
  • неактуальная статистика
    если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз
  • «затык» по ресурсам
    и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД
  • блокировки от конкурирующих процессов

И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.

Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»
Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии77

Настало время сделать новый Windows Terminal profiles.json

Время на прочтение3 мин
Количество просмотров13K
Я говорил об этом в течение нескольких месяцев, но если вы не слышали, вышел новый Windows Terminal. Вы можете скачать его из Windows Store и сразу же начать использовать. Все бесплатно и open source.

На момент написания этой статьи Windows Terminal где-то около версии 0.5. Он пока официально не выпущен как 1.0, поэтому все время обновляется.

И вот вопрос — вы уже установили Windows Terminal? Уже настраивали свой файл profile.json? Если это так, я хочу, чтобы вы удалили свои profiles.json! Подробнее под катом.

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии16

Терминальный сервер для админа; Ни единого SSH-разрыва

Время на прочтение8 мин
Количество просмотров57K


Если ваша работа требует держать множество SSH-сессий к разным серверам, вы наверняка знаете, как они легко ломаются при переключении на другой Wi-Fi или при временной потере интернета. Но что, если я скажу вам, что все эти проблемы давно решены и можно забыть про сломанные сессии и постоянные переподключения?

Открывая крышку ноутбука, все мои десятки SSH-сессий сразу доступны и находятся в том же состоянии, в каком я их оставил. В статье описывается настройка терминального сервера для системного администратора. Использование такого сервера позволяет забыть о сломанных SSH-сессиях, постоянном переподключении и вводе паролей.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии63

Информация

В рейтинге
5 359-й
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность