Сообщения

Сообщения за 2018

Новый блог

Изображение
Удобней и приятней оказалось писать на Medium. Без лишних слов, решено было переехать на новое место. https://medium.com/german-gorelkin

Не без паники в Go

Изображение
В то время, как обсуждается возможный новый дизайн обработки ошибок и ведутся споры о преимуществах явной обработки ошибок, предлагаю рассмотреть некоторые особенности ошибок, паник и их восстановления в Go, которые будут полезны на практике. error error это интерфейс. И как большинство интерфейсов в Go, определение error краткое и простое: type error interface { Error() string } Получается любой тип у которого есть метод Error может быть использован как ошибка. Как учил Роб Пайк Ошибки это значения , а значениями можно оперировать и программировать различную логику. В стандартной библиотеки Go имеются две функции, которые удобно использовать для создания ошибок. Функция errors.New хорошо подходит для создания простых ошибок. Функция fmt.Errorf позволяет использовать стандартное форматирования. err := errors.New( "emit macho dwarf: elf header corrupted" ) const name, id = "bimmler" , 17 err := fmt.Errorf( "user %q (id %d) not foun

Markdown Cheatsheet

Изображение
Markdown - облегчённый язык разметки, созданный с целью написания наиболее читаемого и удобного для правки текста, но пригодного для преобразования в языки для продвинутых публикаций. Документ в Markdown формате должен восприниматься как есть, как обычный текст, что бы не бросались в глаза ни теги, ни инструкции форматирования. Автором языка Markdown является John Gruber. Активно используются в различных приложениях. GitHub, Jupyter Notebook, Telegram и пр. Один из онйлан редакторов  Stack Edit Markdown шпаргалка

Data analysis. NumPy. Часть 2

Изображение
Это вторая статья в серии, где мы знакомимся с базовый набор инструментов для первичного анализа данных с помощью Python. В этой части рассмотрим транслирование(broadcasting), сравнения массивов и маски, "прихотливая" индексация (fancy indexing), сортировки и структурированные данные. Часть 1. Введение в NumPy Часть 2. Подробней о NumPy Часть 3. Первичный анализ. Pandas Часть 4. Визуализация. Matplotlib и Seaborn Часть 5. Немного machine learning с помощью scikit-learn Часть 6. Больше данных. Обучение с Vowpal Wabbit В статье будет описания и различного рода заметки, а примеры с комментариями написаны в  jupyter notebook Транслирование(Broadcasting) (notebook) Еще один способ применения векторизации - использовать возможности транслирования(broadcasting). Это набор правил по применению бинарных универсальных функций к массивам различного размера. Для массивов одного размера бинарные операции выполняются поэлементно. Транслирование дает  возможность выполнять та

The Twelve-Factor App

Изображение
Парни из  Heroku  предложили набор общих концептуальных решений проблем, которые наиболее часто возникают при разработки и поддержки веб-приложений. Важно не забывать, что  Приложение двенадцати факторов(The Twelve-Factor App) — это методология для создания SaaS-приложений, а не свод законов по разработки любого ПО. Другими словами это оптимальные решения в усредненной ситуации. В конкретных ситуациях возможные более эффективные решения, тем более при разработки другого типа приложений. https://imgur.com/gallery/V9nAWbd 1. Codebase (Кодовая база) Одна кодовая база, отслеживаемая в системе контроля версий, – множество развёртываний Весь код приложения должен быть в системе контроля версий. И разворачиваться для разработки, тестирования и на рабочих серверах из одного репозитория. Если у вас несколько приложений используют общий код, то общий код надо выделить в отдельную библиотеку, и объявить ее как зависимость. 2. Dependencies (Зависимости) Явно объявляйте и изолируйт

Аналитическая культура. От сбора данных до бизнес-результатов

Изображение
Книга Карла Андерсона "Аналитическая культура"(Creating a Data-Driven Organization) - это пошаговое руководство по внедрению Data-driven-культуры в компанию — от сбора данных и наглядных отчетов до анализа и обоснованных решений. В частности Data-Driven Organization это состояния при котором такие инструменты как machine learning могут быть очень эффективны. Сейчас тема machine learning сильно раздута, но при этом для многих это некий магический черный ящик, который можно один раз настроить, для какого то бизнеса процесса, и он будет сам по себе жить и давать отличные предикшены. К сожалению пока это не всегда так. Автор книги пытается ответить на два основных вопроса: что означает для компании управление на основе данных? как компания может к нему прийти? Во многих компаниях генерируется множество отчетов, реализованы различные дашборды, но  обычно они ретроспективны, то есть часто лишь представляют прошлые или настоящие факты без обеспечения достаточного

Data analysis. NumPy. Часть 1

Изображение
Эта статья первая в серии про базовый набор инструментов для первичного анализа данных с помощью Python. В первую очередь рассмотрим базовую библиотеку для работы с многомерными массивами NumPy . Pandas позволяет эффективно работать с неоднородными данными. Удобно загружать, обрабатывать и анализировать табличные данные  с помощью SQL-подобных запросов. С помощью Matplotlib, Seaborn, Plotly реализуется отличная визуализация. Часть 1. Введение в NumPy Часть 2. Подробней о NumPy Часть 3. Первичный анализ. Pandas Часть 4. Визуализация. Matplotlib и Seaborn Часть 5. Немного machine learning с помощью scikit-learn Часть 6. Больше данных. Обучение с Vowpal Wabbit В статье будет описания и различного рода заметки, а примеры с комментариями написаны в jupyter notebook NumPy — это библиотека языка Python, добавляющая поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами. Создания м

Рекурсивные SQL запросы

Изображение
CTE(обобщенное табличное выражение) может ссылаться на себя, создавая рекурсивное CTE. Рекурсивное CTE многократно выполняется, чтобы возвращать подмножество данных до тех пор, пока не получится конечный результирующий набор. Обычно рекурсивные запросы используются для возвращения иерархических данных, например: отображение сотрудников в структуре организации или генерация последовательности. Структура рекурсивного CTE WITH cte_name ( column_name [,...n] ) AS ( CTE_query_definition –- Anchor member is defined. UNION ALL CTE_query_definition –- Recursive member is defined referencing cte_name. ) -- Statement using the CTE SELECT * FROM cte_name CTE разбивается на закрепленный и рекурсивный элементы. Запускается закрепленный элемент с созданием первого вызова. Рекурсивный элемент ссылается на закрепленный и вызывается пока не вернет пустой набор. Классический пример с сотрудниками DECLARE @Employees TABLE ( ID int NOT NULL, [Name] nvarchar(200) NOT NULL, Manag

Learning How to Learn

Изображение
Learning How to Learn на данный момент один из топовых курсов. Он достаточно короткий, рассчитан на 4 недели, но вполне можно прослушать за 2-3 вечера. Пару лет назад читал книгу  Барбары Оакли "Думай как математик" , собственно материал книги и курса почти полностью совпадают, несколько отличается подача. Добавлены интервью, часть их которых на мой взгляд сомнительные. Терренса Сеновски совсем немного рассказывает про работу нейронов и нейромедиаторов. Курс отличный, некоторые сложные вещи объясняются популярно и полностью с практической точки зрения. Наверно в 16-23 года такой курс дал был хороший буст. Сейчас конечно понимания многих идей от туда пришло со временем. Но структурировать такие знания всегда хорошо. Course Certificate На эту же тему неплохая книга Кэл Ньюпорт "В работу с головой" . В общем то те же идеи, но иногда под другим углом или более развернутые. Не люблю в большинстве своем всякие книги по саморазвитию, это как правило всякий треш, г

Немного бумажных книг

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