Pull to refresh
-11
1.1
Send message

Как вести технический блог?

Reading time16 min
Views20K


Я работаю в коммерческой разработке с 2011 года. С конца 2012 занимаюсь разработкой под iOS. Свою первую техническую статью я написал на Хабре в начале 2017 года про подход к локализации мобильных приложений. Потом выпустил ещё несколько статей по iOS-разработке на Хабре и в конце 2017 года я перешёл в новую компанию и решил вести блог про solution architecture https://medium.com/@nvashanin, где начал описывать общие концепты, обязанности архитектора, его скилл-сет и т.д. К лету 2020 года количество просмотров моих статей перевалило за 800 тысяч, а количество времени, которое люди потратили на прочтение — больше 6 млн минут, или около 12 лет чистого времени. Флагманская статья была переведена другими людьми на разные языки: например, польский или испанский.

В статье я расскажу про свой путь к техническому блогу — от идеи до регулярных публикаций. Расскажу, о чём можно писать, как писать и как оформлять статьи, а также о том, как на них заработать. Мне, например, удалось купить себе часы на деньги, которые принёс блог. Статья подойдёт тем, кто только задумывается о написании статей, а также будет полезна и тем, кто уже активно пишет.
Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments22

Какие зарплаты для IT-специалистов предлагают работодатели «Моего круга», данные за май-октябрь 2017

Reading time2 min
Views20K
Уже традиционно, в конце каждого года, мы на «Моём круге» смотрим, какие зарплаты предлагают работодатели, размещающие у нас свои вакансии для ИТ-специалистов. Безусловно, это не является объективным анализом зарплат во всей ИТ-отрасли — для этого у нас, всё же, маловато данных. Но, как минимум, это может быть полезной информацией для пользователей нашего сервиса: как работодателей, так и соискателей.

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

image
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments39

6 способов значительно ускорить pandas с помощью пары строк кода. Часть 2

Reading time6 min
Views10K
В предыдущей статье мы с вами рассмотрели несколько несложных способов ускорить Pandas через jit-компиляцию и использование нескольких ядер с помощью таких инструментов как Numba и Pandarallel. В этот раз мы поговорим о более мощных инструментах, с помощью которых можно не только ускорить pandas, но и кластеризовать его, таким образом позволив обрабатывать большие данные.



Часть 1

  • Numba
  • Multiprocessing
  • Pandarallel

Часть 2

  • Swifter
  • Modin
  • Dask
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments4

6 способов значительно ускорить pandas с помощью пары строк кода. Часть 1

Reading time5 min
Views20K
В этой статье я расскажу о шести инструментах, способных значительно ускорить ваш pandas код. Инструменты я собрал по одному принципу — простота интеграции в существующую кодовую базу. Для большинства инструментов вам достаточно установить модуль и добавить пару строк кода.


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

Как укрепить иммунитет и защититься от ОРВИ и, вероятно, COVID-19. Факты, доказанные наукой

Reading time27 min
Views65K
Самая научно-подтвержденная популярная статья в рунете. Отсюда вы узнаете конкретные способы эффективной профилактики ОРВИ и, вероятно, COVID-19, основанные на самой надёжной информации – мета-анализах клинических исследований.  

Читать дальше →
Total votes 63: ↑46 and ↓17+45
Comments126

Настройка LaTeX в Sublime Text

Reading time3 min
Views14K


Ниже представлено руководство по установке текстового редактора Sublime Text, с последующим добавлением в него возможности использования системы компьютерной вёрстки LaTeX. В качестве бонуса научим его понимать язык Julia.

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

Визуальный отладчик для Jupyter

Reading time6 min
Views17K
Прогресс большинства программных проектов строится на малых изменениях, которые, перед тем, как двигаться дальше, тщательно оценивают. Быстрое получение результатов выполнения кода и высокая скорость итеративной разработки — это одни из основных причин успеха Jupyter. В особенности — в сфере научных исследований.

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


Окружение JupyterLab

Проект Jupyter уже несколько лет прилагает усилия к тому, чтобы закрыть разрыв между блокнотами и обычными IDE. Эти усилия, в значительной мере, представлены платформой JupyterLab, которая даёт разработчику более совершенный и удобный интерфейс, в который входят менеджер файлов, текстовые редакторы, консоли, блокноты.

Правда, до недавнего времени в JupyterLab кое-чего не хватало. Речь идёт о том, что являло собой главную причину, по которой пользователи вынуждены были переключаться на другие среды. Пользователям Jupyter не хватало визуального отладчика. Пользователи, особенно те из них, которые привыкли к обычным IDE, долго просили об этой возможности.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments6

Цифровой двойник системы кондиционирования воздуха (СКВ) самолета

Reading time11 min
Views7K

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



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


Далее под катом:


Рассматриваются проблемы обеспечения точности расчета и скорости вычислений при создании достоверной математической модели реальной технической системы методами структурного моделирования для цифровых двойников. Описывается опыт создания достоверной модели стенда системы кондиционирования воздуха (СКВ). Даются примеры методик достижения необходимой точности модели для разных типов агрегатов системы.

Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments6

Прогнозирование временных рядов с помощью рекуррентных нейронных сетей

Reading time16 min
Views89K
Удалённый режим работы на фоне всеобщей самоизоляции может привести к весьма дурным последствиям. И эмоциональное выгорание – это ещё куда ни шло: там ведь и до крыши недалеко. В этой связи, как и многие, попробовал «успокоить» себя выделением времени на другие занятия – и начал переводить наиболее интересные статьи с английского языка на русский: «Даёшь машинлёрнинг в массы!».) Нужно воздать должное: здорово отвлекает. Если у вас есть предложения как по смысловому наполнению, так и по переводу данного текста для русскоязычного читателя, присоединяйтесь к обсуждению.

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

Эксперименты с микроконтроллерами в Jupyter Notebook

Reading time12 min
Views13K

Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике.


Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического представления данных. Долгое время мы просто считали на нем, используя Python и математические библиотеки (numpy, SciPy, matplot и т.д.). Но оказывается данная среда не так проста и имеет гораздо больший потенциал. Очень неожиданно, но Jupyter позволяет легко манипулировать электронными устройствами на микроконтроллерах, может служить чем-то вроде REPL среды для МК только без слабенького MicroPython и внушительной поддержкой переферии чипа, причем все это почти из коробки.


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

Загрузка NumPy-массивов с диска: сравнение memmap() и Zarr/HDF5

Reading time6 min
Views6.2K
Если ваш NumPy-массив слишком велик для того, чтобы полностью поместиться в оперативной памяти, его можно обработать, разбив на фрагменты. Сделать это можно либо в прозрачном режиме, либо явно, загружая эти фрагменты с диска по одному.



В такой ситуации можно прибегнуть к двум классам инструментов:

  • Метод NumPy memmap(), прозрачный механизм, который позволяет воспринимать файл, расположенный на диске, так, будто он весь находится в памяти. 
  • Похожие друг на друга форматы хранения данных Zarr и HDF5, которые позволяют, по необходимости, загружать с диска и сохранять на диск сжатые фрагменты массива.

У каждого из этих методов есть свои сильные и слабые стороны. 

Материал, перевод которого мы сегодня публикуем, посвящён разбору особенностей этих методов работы с данными, и рассказу о том, в каких ситуациях они могут пригодиться. В частности, особое внимание будет уделено форматам данных, которые оптимизированы для выполнения вычислений и необязательно рассчитаны на передачу этих данных другим программистам.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments3

Сканирующее окно по массивам NumPy

Reading time9 min
Views18K

CoLab блокнот с примерами.


Возможно сделать скользящее окно (rolling window, sliding window, moving window) по массивам NumPy на языке программирования Python без явных циклов. В данной статье рассматривается создание одно-, двух-, трех- и N-мерных скользящих окон по массивам NumPy. В результате скорость обработки данных увеличивается в несколько тысяч раз и сравнима по скорости с языком программирования С.


Cкользящее окно применяется в: обработке изображений, искусственных нейронных сетях, интернет протоколе TCP, обработке геномных данных, прогнозировании временных рядов и т.д.


Отказ от ответственности: в исходном коде могут быть ошибки! Если вы видите ошибку, пожалуйста, напишите мне.


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

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

Reading time13 min
Views2K

Для кого статья


Если вы что-то производите на заказ, то вы наверняка сталкивались с простоями из-за отсутствия достаточного количества проектов.


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


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


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

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

Android для радиоинженера (часть вторая)

Reading time5 min
Views9.7K
В первой части я немного рассказал о приложении RF & Microwave Toolbox. Во второй части расскажу о не менее интересном приложении, которое позволяет проектировать СВЧ устройства (преимущественно, планарные) на смартфоне/планшете под управлением ОС Android. Если вам интересно, то добро пожаловать под кат…



Total votes 27: ↑27 and ↓0+27
Comments10

SCADA на Raspberry: миф или реальность?

Reading time6 min
Views24K
image

Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.

В статье рассмотрим возможность применения таких встраиваемых компьютеров в промышленности. Возьмем за основу устройство на базе Raspberry Pi, поэтапно распишем процесс установки на него открытой бесплатной Open Source SCADA-системы российской разработки — Rapid SCADA, а также разработаем в ней проект абстрактной компрессорной станции, в задачи которой будет входить удаленное управление компрессором и тремя вентилями, а также визуализация технологического процесса производства сжатого воздуха.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments22

Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python

Reading time27 min
Views344K

Доброго дня! Мы продолжаем наш цикл статей открытого курса по машинному обучению и сегодня поговорим о временных рядах.


Посмотрим на то, как с ними работать в Python, какие возможные методы и модели можно использовать для прогнозирования; что такое двойное и тройное экспоненциальное взвешивание; что делать, если стационарность — это не про вас; как построить SARIMA и не умереть; и как прогнозировать xgboost-ом. И всё это будем применять к примеру из суровой реальности.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments19

Разработка электроники. Выигрышная стратегия технологического стартапа. Часть I

Reading time13 min
Views16K
Тема оказалось слишком широка, чтобы уместить её в одну статью. Предлагаю вашему вниманию вступительную часть. В ней пойдёт речь о действиях, которые желательно предпринять ещё до написания технического задания на разработку, чтобы существенно снизить риски неудачи.



Мир вошёл в эпоху “умных вещей”, что породило интерес к технологическим стартапам, который только растёт год от года. На КС они бьют рекорды по сборам, даже несмотря на то, что достойно выполнить свои обязательства удаётся далеко не всем. За десяток с хвостиком лет попыток работы в роли волшебника воплощающего задумки клиентов и вдыхающего в них жизнь мною накоплено много опыта. Безжалостная статистика говорит о том, что 9 из 10 стартапов терпят фиаско. В моей практике это соотношение менее драматично. Возможно потому, что стараюсь не принимать участие в проектах, изначально имеющих большие шансы на провал.

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

О чём пойдёт речь под катом
Не стоит отливать ТЗ в граните.

Сколько денег необходимо для запуска технологического стартапа?
Начинать проверку вашей идеи стоит ещё до начала разработки.
Стратегическая канва — отличный инструмент для проверки конкурентоспособности.
Создание пространства, свободного от конкуренции на реальном примере.
Изучение ближайших аналогов — хорошая практика.
Подбор ключевых компонентов и оценка себестоимости.
Как создать Голубой Океан
Total votes 34: ↑31 and ↓3+28
Comments84

Превращаем скрипты в красивые инструменты для машинного обучения

Reading time6 min
Views15K

Создаём семантический поисковик с машинным обучением в реальном времени за 300 строк Python кода.

Мой опыт подсказывает, что любой более или менее сложный проект по машинному обучению рано или поздно превращается в набор сложных неподдерживаемых внутренних инструментов. Эти инструменты, как правило, мешанина из скриптов Jupyter Notebooks и Flask, которые сложно развёртывать и интегрировать с решениями типа GPU сессий Tensorflow.


Впервые я столкнулся с этим в университете Карнеги, затем в Беркли, в Google X, и, наконец, при создании автономных роботов в Zoox. Зарождались инструменты в виде небольших Jupyter notebooks: утилита калибровки сенсора, сервис моделирования, приложение LIDAR, утилита для сценариев и т.д.


С ростом важности инструментов появлялись менеджеры. Бюрократия росла. Требования повышались. Маленькие проекты превращались в огромные неуклюжие кошмары.


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

План прокачки для получения профессии Data engineer

Reading time2 min
Views24K
Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность разрабатывать, строить и поддерживать хранилища данных.

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

Разделы:

  • Алгоритмы и структуры данных. Ключевой раздел. Изучишь его — всё остальное тоже получится. Важно набить руку в написании кода и использовании основных структур и алгоритмов.
  • Базы и хранилища данных, Business Intelligence. От алгоритмов переходим в хранению и обработке данных.
  • Hadoop and Big Data. Когда база не входит на винчестер, или когда данные нужно анализировать, но Excel уже не может их загрузить начинаются большие данные. На мой взгляд, переходить к этому разделу нужно только после глубокого изучения двух предыдущих.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments12

Windows 10 + Python = VS Code + WSL

Reading time3 min
Views33K
image

Microsoft… Технологических локомотивов нашего времени. Ни для кого не секрет что они крутые, а также, что они поглощают все больше и больше… Всего. К счастью последнее время они только радуют меня своим потенциалом. А после выступления Satya Nadella, где он рассказал миру о том, что Windows больше не является основным продуктом компании, так как они положили курс на внедрение своих API…. Повсюду

Для разработчиков ПО они так же не скупятся. C#, Azure, Visual Studio… Но сейчас пойдет речь о Python, ведь для него местечко здесь тоже пригрели.

Кратко о WSL


С обновлением Windows появилась возможность использовать такую штуку, как WSL (Windows Subsystem for Linux). Не так давно появилась WSL2 с ОЧЕНЬ крутыми доработками. WSL2 использует новейшую и самую новую технологию виртуализации для запуска ядра Linux внутри упрощенной служебной виртуальной машины. Это значит, что такие атрибуты, как изоляция и замедление работы здесь отсутствуют.
Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments36

Information

Rating
1,135-th
Registered
Activity