Pull to refresh
4
0
Иван Тищенко @Tihon_V

Веб-разработчик

Send message

Астрономический словарик: галактические скопления, галактическое гало, галилеевы спутники и гелиосфера

Reading time 7 min
Views 4.3K

Галактические скопления



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

Звёзды, существующие в рамках галактик, часто собираются в скопления – группы звёзд, связанных друг с другом гравитационно. Связанную гравитацией систему из звёзд, звёздных скоплений, межзвёздного газа и пыли, тёмной материи и планет мы называем галактикой.

При этом на ещё большем масштабе галактики тоже собираются в скопления – группы галактик, связанных между собою гравитацией. Если масса галактик находится в пределах 106 — 1013 солнечных масс, то галактическое скопление может иметь массу в 1014 — 1015 солнечных, и содержит от 100 до 1000 галактик. Для разделения скоплений галактик на классы в зависимости от их морфологии была разработана классификация Баутц — Моргана.
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 4

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 3 — NAT и сетевые соединения)

Reading time 6 min
Views 12K

В статье рассмотрено понятие «соединение» для TCP и UDP протоколов в ядре операционной системы Linux на примере работы оборудования MikroTik. Дополнительно рассматриваются особенности работы технологии NAT в указанном контексте. Материалы носят в основном теоретический характер и предназначены для людей, тонко настраивающих Firewall, Qos и маршрутизацию, где им придется непосредственно работать с рассматриваемыми connections.

Мы уже рассмотрели теоретическую части , где я подробно описал сущность сетевого соединения глазами ядра маршрутизатора. Далее была практическая части, где я закрепил информацию, в результате рассмотрения работы прикладного протокола DNS через подсистемы RouterOS.

В этой части, цикла статей, речь пойдет о диаграмме потока пакетов, при работе с которой важно понимать сущность рассматриваемого сетевого соединения, а также о не документированной в явном виде особенности работы NAT.

Цикл статей не предназначен для новичков и может их только запутать. Полагаю, что читатель хорошо знаком с предметом разговора.
Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 7

Маленькие «малинки» в крупном дата-центре (часть 4 — автоустановка)

Reading time 7 min
Views 5.7K

Это заключительная часть цикла статей, посвященного интеграции одноплатных компьютеров Raspberry Pi 4 в наши дата-центры. Мы рассмотрели, что происходит при загрузке «малинки» с момента включения до загрузки в операционную систему. Создали собственный мини-дистрибутив, который загружается по TFTP-протоколу и работает напрямую из памяти. Поговорили о хуках (hooks) Kea DHCP-сервера, разобрались, как они работают и что нужно для их создания.

Теперь соберем эти знания в цельную картину: зачем нам кастомная опция 224 и как управлять переключением режимов загрузки по сети и с локальной SD-карты.
Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 2

Создаем свой сайт или блог на Ghost в образе Docker

Reading time 3 min
Views 8.5K

Ghost — платформа для блогов с открытым исходным кодом, опубликованный под лицензией MIT. Ghost создавался как альтернатива WordPress, выросшего из движка для блога в сложную CMS. 

Фишкой Ghost является то, что он использует на стороне бекенда сервер Node.js и язык JavaScript и дает альтернативный вариант для разработки.

В этом посте объясняется, как задеплоить свой личный блог на Ghost — движке с базой данных MariaDB с помощью docker.

Читать далее
Total votes 6: ↑2 and ↓4 -2
Comments 5

Kubernetes — изучаем паттерн Sidecar

Reading time 6 min
Views 44K

Kubernetes - это движок оркестрации контейнеров с открытым исходным кодом для автоматического развертывания, масштабирования и управления контейнеризированными приложениями. Под (Pod) – это базовое понятие при проектировании приложений в Kubernetes. Kubernetes оперирует подами, а не контейнерами, при этом поды включают в себя контейнеры. Под может содержать в себе описания одного или нескольких контейнеров, монтируемых разделов, IP-адресов и настроек того, как контейнеры должны работать внутри пода.

Под, содержащий один контейнер, относится к одно-контейнерным подам и это самый распространенный вариант их использования в Kubernetes. Под, который содержит несколько связанных контейнеров, относится к мульти-контейнерным подам. Есть несколько паттернов для мульти-контейнерных подов и один из них — это паттерн sidecar. В этом посте мы на примере проекта детально рассмотрим этот паттерн.

Читать далее
Total votes 11: ↑8 and ↓3 +5
Comments 0

Чистый Cython VS nvc++: жжем металлические пластины на GPU для сравнения скорости

Reading time 6 min
Views 6.7K
image

image
Будем греть металлические пластины на GPU

Все знают, что Python не блещет скоростью сам по себе. На мой взгляд язык прекрасен своей читабельностью, но основная ниша его применения там, где вы большую часть времени ожидаете ввода/вывода каких-то данных. Условно, вы можете написать суперпроизводительный код на Rust или С, но 99% времени он будет просто ждать.

Тем не менее, Python прекрасен еще и как высокоуровневый синтаксический клей. В этом случае, его неторопливая интерпретируемая часть вызывает быстродействующий код, написанный на компилируемых языках программирования. Обычно для этого используются такие традиционные библиотеки как NumPy.

Но мы пойдем чуть дальше попробуем распараллелить вычисления на CUDA и задействуем странный, но работающий гибрид C++, stdpar и компилятора nvc++ от Nvidia. Ну и заодно попробуем оценить быстродействие. Возьмем две задачи: сортировку чисел и метод Якоби, которым будем рассчитывать нагрев металлической пластины.
Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Comments 4

Хост KVM в паре строчек кода. Примеры на C++ и на Python от эксперта Timeweb

Reading time 9 min
Views 12K
Привет!

Сегодня публикуем статью о том, как написать хост KVM. Мы увидели ее в блоге Serge Zaitsev, перевели и дополнили собственными примерами на Python для тех, кто не работает с языком С++.

KVM (Kernel-based Virtual Machine) — это технология виртуализации, которая поставляется с ядром Linux. Другими словами, KVM позволяет запускать несколько виртуальных машин (VM) на одном виртуальном хосте Linux. Виртуальные машины в этом случае называются гостевыми (guests). Если вы когда-нибудь использовали QEMU или VirtualBox на Linux, вы знаете, на что способен KVM.

Но как это работает под капотом?
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 9

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

Reading time 6 min
Views 21K

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

Коллеги, вы меня огорчаете

Reading time 12 min
Views 168K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Total votes 181: ↑137 and ↓44 +93
Comments 1152

Игровая статика, или как я перестал бояться и полюбил Google Apps Script

Reading time 10 min
Views 2.8K


Приветствую! Сегодня хотелось бы поговорить на одну тему, с которой так или иначе сталкивается любой гейм-дизайнер. И эта тема — боль и страдания работа со статикой. Что такое статика? Если вкратце — это все постоянные данные, с которыми взаимодействует игрок, будь то характеристики его оружия или параметры подземелья и его обитателей.

Представьте, у вас в игре есть 100500 видов различных мечей и им всем внезапно потребовалось немного поднять базовый урон. Обычно, в таком случае запрягается старый добрый эксель, а результаты затем вставляются в JSON/XML руками или при помощи регулярок, но это долго, хлопотно и чревато ошибками валидации.

Давайте посмотрим, как для таких целей может подходить Google Spreadsheets и встроенный в него Google Apps Script и можно ли на этом сэкономить время.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 2

Apache Airflow: делаем ETL проще

Reading time 25 min
Views 151K

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


И да, я буду не только рассказывать, но и показывать: в программе много кода, скриншотов и рекомендаций.



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

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

Спасите пароль: сказочная реализация схемы разделения секрета Шамира на Python

Reading time 6 min
Views 15K
Этот алгоритм, использующий язык Python и Схему разделения секрета Шамира, защищает ваш мастер-пароль от хакеров и вашей собственной забывчивости.


Для безопасного хранения множества уникальных паролей многие из нас используют менеджеры паролей. Вся их работа по сути завязана на мастер-пароле. Этот пароль защищает все остальные пароли, и, таким образом, несёт весь риск на себе. Любой, кто подберёт его или получит к нему доступ, может притвориться вами в самый неподходящий момент. Естественно, вы стараетесь сделать свой мастер-пароль максимально сложным, а затем запоминаете или где-то ещё фиксируете его.
Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 4

Прототип простого сервиса для здорового питания

Reading time 7 min
Views 7K

image


В контексте статьи картинка обретает двойной смысл.


Дисклеймер


В обществе в принципе много "наносного" касательно "правильной" еды, "диет", "стиля жизни" и прочего. Как правило это просто проявления относительно высокого уровня зарплат в конкретном регионе и низкого уровня грамотности людей. Мы с моей девушкой поставили для себя очень простую задачу — есть вкусно, просто, дешево, правильно и быстро.


И так получилось, что при выборе инструмента планирования такого питания взор пал на PostgreSQL, который стоит на домашнем сервере. Аналогично можно легко сделать и в Excel или Гугл-таблицах, но в нашем случае SQL оказался более быстрым + есть открытые базы с готовыми данными. Данная статья может рассматриваться вами как "заготовка" для аналогичного SQL сервиса или просто как идея, которую вы можете взять и применить для себя.
Также обратите внимание — чтобы пользоваться этим в полной мере, вы должны хотя бы чуточку уметь в табличные процессоры (Excel).

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

Как постичь машинное обучение, если ты не великий математик

Reading time 4 min
Views 35K
Предлагаем почитать перевод статьи Diego Isco с ресурса dev.to. Она будет полезна начинающим специалистам в области ML.

Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Comments 16

Code review Терминатор. Ревью, за которое вам скажут спасибо

Reading time 4 min
Views 7.1K

Рыжик помогает мне ревьюить код. А когда ему что-то не нравится — тоже настоящий Терминатор

«Code review Терминатор», — однажды назвал меня коллега после особо продуктивного ревью. С одной стороны, это тешило ЧСВ и было приятно. С другой — коллега действительно научился чему-то новому, и это позволило писать ему более качественный код. Так что win-win.

После смены работы сменились и коллеги. Но и на новом месте тоже начали благодарить за ревью. Решил разобраться, почему, и разложил по полочкам. Получилось 11 рекомендаций.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 15

Специфицируй это. Доклад Яндекса

Reading time 16 min
Views 16K
Хорошая спецификация к API помогает клиентам его использовать. Несколько месяцев назад на большом Pytup разработчик Яндекса Александр Брязгин bryazginnn выступил с докладом о том, что собой представляет спецификация REST API на примере OpenAPI + Swagger и зачем нужна такая связка. Из конспекта можно узнать, как мы прикручивали автоматическую генерацию спецификации в уже готовом сервисе, какие библиотеки нам пригодились и какой есть тулинг вокруг спецификации OpenAPI.


— Всем привет, меня зовут Александр. Я хотел бы поговорить с вами про спецификации.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 0

DLL & Python

Reading time 11 min
Views 60K

DLL & Python


image


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


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

Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 13

Как проверить навыки программирования на Python? Задачи от Яндекса

Reading time 9 min
Views 63K

Хакатон в Школе бэкенд-разработки

В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как на собеседовании. С другой стороны, мы также не могли переиспользовать условия задач, уже подготовленные для наших соревнований по программированию. Дело в том, что соревнования с целью определить лучших из лучших — это одно, а отбор специалистов с небольшим опытом в школу — совсем другое. Нам требовались задачи, по решению которых было бы видно, обладает ли разработчик базовыми навыками написания кода и умением грамотно использовать память и время. Вот какие условия мы составили.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 22

Как энергетик изучал нейросети и обзор бесплатного курса «Udacity: Intro to TensorFlow for Deep Learning»

Reading time 5 min
Views 11K
Всю свою сознательную жизнь, я был энергетиком (нет, сейчас речь не идет о напитке с сомнительными свойствами).

Я никогда особо не интересовался миром информационных технологий, да и даже матрицы я вряд ли на листочке смогу перемножить. Да и не нужно мне это было никогда, чтобы вы понимали немного о специфике моей работы, могу поделиться замечательной историей. Попросил я как-то моих коллег сделать работу в Excel – таблице, прошла половина рабочего дня, подхожу к ним, а они сидят и суммируют данные на калькуляторе, да- да, на обычном таком черном калькуляторе с кнопками. Ну и о каких нейронных сетях может идти речь после этого?.. Поэтому никаких особых предпосылок к погружению в мир IT у меня никогда не было. Но, как говорится «хорошо там, где нас нет», мои друзья прожужжали мне все уши о дополненной реальности, о нейронных сетях, о языках программирования (в основном про Python).

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

В этой статье я опущу мои попытки освоить азы Python и поделюсь с вами своим впечатлением от бесплатного курса по TensorFlow от Udacity.


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

Сертификация по программе IBM Data Science Professional Certificate

Reading time 11 min
Views 8.9K

Статья является кратким обзором о сертификации по программе IBM Data Science Professional Certificate.


Будучи новичком в Python, мне пришлось столкнуться с реализацией задач:


  • Загрузка и парсинг HTML таблиц
  • Очистка загруженных данных
  • Поиск географических координат по адресу объекта
  • Загрузка и обработка GEOJSON
  • Построение интерактивных тепловых карт (heat map)
  • Построение интерактивных фоновых картограмм (choropleth map)
  • Преобразование географических координат между сферической WGS84 и картезианский системой координат UTM
  • Представление пространственных географических объектов в виде гексагональная сетки окружностей
  • Поиск географических объектов, расположенных на определенном расстоянии от точки
  • Привязка географических объектов к полигонам сложной формы на поверхности
  • Описательные статистический анализ
  • Анализ категорийных переменных и визуализация результатов
  • Корреляционный анализ и визуализация результатов
  • Сегментация с использованием k-Mean кластеризации и elbow метода
  • Анализ и визуализация кластеров
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 1

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity