Pull to refresh
0
0
Косыгин Александр @kosalnik

User

Send message

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

Reading time16 min
Views8.7K

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments0

Сделай то, сделай это, сделай сам

Reading time4 min
Views14K

Доброго времени суток Дамы и Господа! Многим приходилось сталкиваться с необходимостью анализа большого количества данных при помощи Python по запросам начальства или коллег. Однотипные запросы поступают с определенной периодичностью, и не составляет труда подставить новые данные в свой код и провести анализ. Но иногда из-за определенной нагрузки не всегда хочется заниматься таким анализом. Намного проще сделать скрипт с графическим интерфейсом, чтобы сам заказчик для анализа данных мог нажать пару кнопок и получить желаемый результат. Тем более, можно изначально вложить в интерфейс столько «хотелок» заказчика для анализа, сколько будет душе угодно.

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

Создание сеток шестиугольников

Reading time25 min
Views95K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →
Total votes 92: ↑91 and ↓1+90
Comments25

Практическое руководство по разработке бэкенд-сервиса на Python

Reading time57 min
Views172K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments48

UI-компоненты на пиксельных шейдерах: пишем ваш первый шейдер

Reading time10 min
Views13K
Кого можно назвать «пиксельных шейдеров начальник и пикселов командир»? Дениса Радина, работающего в Evolution Gaming над фотореалистичными веб-играми с использованием React и WebGL: он известен многим как раз под именем Pixels Commander.

В декабре на нашей конференции HolyJS он выступил с докладом о том, как использование GLSL может улучшить работу с UI-компонентами по сравнению с «обычным джаваскриптом». А теперь для Хабра мы подготовили текстовую версию этого доклада — добро пожаловать под кат! Заодно прикладываем видеозапись выступления:


Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments12

Лекции Технополиса. Проектирование высоконагруженных систем (осень 2017)

Reading time5 min
Views51K


Мы начинаем публиковать курсы лекций Технополиса — образовательного проекта команды Одноклассников в Санкт-Петербургском Политехническом университете Петра Великого. Создание высоконагруженных приложений — это не только проектирование и написание кода, но и огромное количество других аспектов на всём протяжении жизненного цикла продукта. Мы пройдём по всему процессу создания и использования высоконагруженной системы. Особое внимание будет уделено особенностям эксплуатации, сетям, балансировке нагрузки, иерархии памяти, повседневным инструментам. Также поговорим о мониторинге, аудите и многом другом. Лекции курса читает команда экспертов под руководством ведущего разработчика в Одноклассниках Вадима Цесько.

Список лекций:

  1. Введение (Вадим Цесько incubos)
  2. Типовые архитектуры (Александр Христофоров)
  3. Эксплуатация (Илья Щаников)
  4. Сетевой стек (Дмитрий Самсонов dmitrysamsonov)
  5. Балансировка (Андрей Домась)
  6. Процессоры и память (Алексей Горбов)
  7. Хранилища данных (Сергей Егоричев)
  8. JVM (Андрей Паньгин apangin)
  9. Мониторинг (Сергей Шарапов Sharapoff)
  10. Облака (Леонид Талалаев)

Total votes 77: ↑75 and ↓2+73
Comments14

Миллион одновременных соединений на Node.js

Reading time9 min
Views104K


TL;DR:


  • Node.js v0.8 позволяет обрабатывать 1 млн одновременных HTTP Comet соединений на Intel Core i7 Quad/16 Gb RAM практически без дополнительных настроек.
  • На 1 соединение тратится чуть больше 10 Kb памяти (4.1 Kb Javascript Heap + 2.2 Kb Node.js Native + 3.8 Kb Kernel)..
  • V8 Garbage Collector не рассчитан на управление > ~500Mb памяти. При превышении нужно переходить на альтернативный режим сборки мусора, иначе «отзывчивость» сервера сильно уменьшается.
  • Подобный опыт можно (и нужно!) без особых затрат повторить самому (см. под катом).

Читать дальше →
Total votes 193: ↑187 and ↓6+181
Comments125

Оптическое распознавание символов на микроконтроллере

Reading time12 min
Views25K


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

Распознавание символа означает анализ его изображения с целью получения некоторого набора признаков для сравнения их с признаками класса [ 1 ]. Выбор такого набора и способы его определения отличают разные методы распознавания, но для большинства из них необходима одномоментная информация обо всех пикселях изображения.

Последнее обстоятельство и достаточно большой объем вычислений делают невозможным использования маломощных вычислительных устройств (микроконтроллеров) для оптического распознавания символов. «Да и зачем?» — воскликнет информированный читатель, «мощности вычислительных устройств постоянно растут, а их цена падает!»[2, 3]. Допустим, что ответ будет такой: просто интересно, возможно ли упростить метод распознавания до такой степени, чтобы можно было бы использовать микроконтроллер?
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments27

Nginx + Lua, гибкая балансировка нагрузки с сохранением сессии

Reading time5 min
Views22K

При балансировке нагрузки важный вопрос — сохранение сессии клиента. Особенно, если за балансировщиком стоит какой-то интерактивный backend. И тем более, если захотелось сделать A/B тестирование и гибко регулировать порции клиентов к различному содержанию. "Nginx plus" предлагает такие возможности, но что делать, если хочется дёшево и быстро?


На помощь приходит возможность расширить функционал Nginx с помощью Lua.


Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments24

Анализ исходного кода Duke Nukem 3D: Часть 1

Reading time19 min
Views43K
image

Уйдя с работы в Amazon, я провёл много времени за чтением отличного исходного кода.

Разобравшись с невероятно замечательным кодом idSoftware, я принялся за одну из лучших игр всех времён: Duke Nukem 3D и за её движок под названием "Build".

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

Как обычно, я переработал свои заметки в статью. Надеюсь, она вдохновит вас на чтение исходного кода и совершенствование своих навыков.
Total votes 101: ↑98 and ↓3+95
Comments31

Let's Encrypt и nginx: настройка в Debian и Ubuntu

Reading time13 min
Views303K

image


Если вдруг вся эта история прошла мимо вас, Let's Encrypt — центр сертификации от некоммерческой организации ISRG, существующий при поддержке EFF и многих компаний, взявшей на себя миссию дать людям бесплатные SSL/TLS сертификаты для сайтов и серверов. Сертификаты от Let's Encrypt уже используются на более чем 10 миллионах доменов.


Кроме очевидной бесплатности у сертификатов от Let's Encrypt есть особое, отсутствующее у любых других коммерческих сертификационных центров, достоинство: если вы однажды получили сертификат от Let's Encrypt, то, при прочих равных, это навсегда. Не нужно раз в год-два вручную обновлять сертификаты. Не нужно вообще вспоминать что сертификаты где-то есть. Получил, настроил и забыл!


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


Организации автоматического обновления сертификатов в статье уделено пристальное внимание, с тем чтобы вы могли в полной мере оценить это принципиальное преимущество Let's Encrypt.

Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments96

Жонглируем версиями PHP в системе

Reading time4 min
Views47K

Проблема “ хочу новую версию %software% на моем стареньк… стабильном Debian/CentOS…” так же стара, как *nix-мир. Способов добиться желаемого хватает. Есть масса решений как притащить в систему несколько версий одного и того же софта. Но дальше хочется не просто иметь ещё одну версию, но и управлять тем, какая из версий доступна в системе по умолчанию, для конкретных приложений или пользователей.


Что делать, если хочется сменить системную версию PHP на одну из кастомных сборок? Давайте отталкиваться от того, что у вас на сервере уже установлено несколько версий PHP и вы хотите, чтобы в консоли команда php была конкретной версии, отличающаяся от той, что шла с системой. В этой статье я расскажу, как правильно это настроить, чтобы не было проблем с будущими пакетными обновлениями.


Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments26

Краткое введение в тензоры

Reading time3 min
Views160K
В заметке Магия тензорной алгебры было дано очень неплохое введение в математику тензоров. Но, как мне кажется, этот текст все-равно несколько сложен для понимания. В нем не до конца понятно, что же это такое тензор и зачем он вообще нужен.

Сейчас я попытаюсь дать совсем простое введение в тензоры. Я не претендую на математическую строгость, поэтому некоторые термины могут употребляться не совсем корректно.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments26

Магия тензорной алгебры: Часть 1 — что такое тензор и для чего он нужен?

Reading time7 min
Views344K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение



Это было очень давно, когда я учился классе в десятом. Среди довольно скудного в научном плане фонда районной библиотеки мне попалась книга — Угаров В. А. «Специальная теория относительности». Эта тема интересовала меня в то время, но информации школьных учебников и справочников было явно недостаточно.



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



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

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

Reading time3 min
Views73K


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments5

Создание 3D сканера из вебкамеры, лазера, и еще кучки радиодеталей

Reading time6 min
Views140K
В прошлом году мы с другом были на летней школе. На ней необходимо было сделать проект. Прочитав две статьи про создание 3d сканеров (раз, два) мы решили попробовать свои силы в его сборке и по возможности улучшить его конструкцию. Мы даже не представляли, что из этого получится и тем более не представляли, что победим с ним на нескольких научно-инженерных выставках. Но по порядку. Кому интересно узнать результат, добро пожаловать под кат (много фотографий).

image
Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments58

Ремонт БП FSP Epsilon 1010, принцип работы APFC

Reading time10 min
Views213K
Идея написать родилась после очередной непредвиденной поломки блока питания, чтобы поделиться опытом да и самому было где почитать в следующий раз, если попадётся на ремонт подобный блок питания (далее — БП) или понадобится вспомнить схему.



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

Необходимость вникнуть в работу APFC у меня появилась в 2005 году, когда я имел проблему с произвольной перезагрузкой компьютера. Комп я купил на «мыльной» фирмочке не вникая особо в тонкости. В сервисе не помогли: на фирме работает, а у меня перезагружается. Я понял, что пришла очередь напрячься самому… Оказалось проблема в домашней сети, которая вечером просаживалась скачками до 160В! Начал искать схему, увеличивать ёмкость входных конденсаторов, слегка попустило, но проблему не решило. В процессе поиска информации увидел в прайсах непонятные буквы APFC и PPFC в названиях блоков. Позже выяснил, что у меня оказался PPFC и я решил купить себе блок с APFC, потом взял ещё и бесперебойник. Начались другие проблемы — выбивает бесперебойник при включении системника и пропадании сети, в сервисе разводят руками. Сдал его обратно, купил в 3 раза мощнее, работает по сей день без проблем.

Поделюсь с вами своим опытом и надеюсь, вам будет интересно узнать немного больше про компонент системника — БП, которому несправедливо отводят чуть ли не последнюю роль в работе компьютера.

Блоки питания FSP Epsilon 1010 представляют собой качественные и надёжные устройства, но учитывая проблемы наших сетей и другие случайности, они иногда тоже выходят из строя. Выкидывать такой блок жалко, а ремонт может приблизиться к стоимости нового. Но бывают и мелочи, устранив которые, можно вернуть его к жизни.
Читать дальше →
Total votes 77: ↑73 and ↓4+69
Comments41

GRUB всемогущий, или Делаем загрузочную флешку

Reading time8 min
Views556K
Про сам grub, загрузочные флешки и особенно специальные утилиты для создания дисков написано уже не мало, но выглядят они узко направленными. Например только для создания флешки Windows 7, различные PEtoUSB, есть более универсальные как в этом топике. Куча утилит по сути устанавливают загрузчик grub, isolinux (реже BCDW или lilo, еще реже свой как Win7), и затем раскладывают предложенные ему файлы (Windows7,WindowsXP, Ubuntu и т.д.) по папкам. От сюда и требовательность к образам (как писали в комментариях к этому топику).

А между тем абсолютное большинство выложенных в интернете дисков (особенно USB) как раз и используют isolinux и grub, что мешает их просто объединять? да ничего!

Я постараюсь с примерами рассказать, как сделать загрузочную, установочную и просто Live флешку, причем все в одном без заточенных под конкретный дистрибутив утилит. И иметь возможность, при необходимости, легко добавить на флешку еще что-то, без очередного ее переформатирования.
image
(С) Картинка оттуда
Читать дальше →
Total votes 122: ↑113 and ↓9+104
Comments62

Autoruns уходит в offline и наносит удар по вирусам

Reading time1 min
Views1.6K
image

8 Июня вышла новая версия профессионального менеджера автозагрузки — Autoruns. Красивый номер 10 принёс долгожданную возможность настраивать не только работающую систему, но и редактировать автозагрузку выключенного Windows. Наконец-то можно загрузиться с LiveCD или подцепить диск к другому компьютеру и выкинуть вирусы из автозагрузки.

Давайте посмотрим как оно работает на практике…
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments16

Программа Calibre. Управление библиотекой и универсальный конвертер электронных книг

Reading time4 min
Views215K

Предисловие


Так как являюсь большим поклонником чтения, то в какой момент взор мой упал на электронные книги. Преимущества были для меня налицо. Особенно с частыми командировками. Вес, размер, удобство, ну и цена электронных версий книг (предпочитаю честную покупку текстов). Попользовавшись несколькими экземплярами остановился на Sony PRS-505. Сначала смутил формат lrf, но выход был быстро найден — онлайн-конвертеры fb2 в lrf. Онлайн — потому что являюсь пользователем Linux и дома и на работе, плюс дома для игр использую WinXP. В общем полный разброд. Но когда начал искать книги на английском, то наткнулся на кучу других форматов от pdf до epub и еще более экзотические варианты. Плюс книг на компах стало много и разбираться в них стало трудновато (я не единственный пользователь еКниги в семье). В общем назрела необходимость в каком то управлении этим хаосом и удобным конвертированием форматов, плюс нативная поддержка Linux. В одном из комментов на Хабре увидел упоминание про Calibre. Скачал, поставил — понравилось. Теперь пользуюсь полностью ей. Поэтому хотелось бы сделать краткий обзор данной программы.
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments72
1
23 ...

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity