Search
Write a publication
Pull to refresh
-4
0.2
Send message

109 бесплатных курсов по Data Science

Reading time5 min
Views13K
image

Информационные технологии позволяют получить невероятно крутые образовательные ресурсы в один клик. Бесплатно.

Я сейчас решаю задачу, как из огромной массы жизненно важного контента выбрать тот, который стоит попробовать в первую очередь, как «разметить данные», чтобы нейросеточка у подрастающего поколения обучилась более эффективно. (ontol.org, «Выгорание», «Удаленка», телеграмм-канал).

Предлагаю вам подборку бесплатных онлайн-курсов по Data Science от лучших университетов в мире:

Читать дальше →

Программируем прямо в Nginx

Reading time13 min
Views42K


Nginx — великолепный веб-сервер. Все мы привыкли использовать его в связке с бекендами на разных языках программирования. Но оказывается можно писать простые программы прямо внутри конфигурационного файла Nginx. Это можно использовать для балансировки, написания простых API и даже отдавать динамические страницы прямо из конфига.

В статье мы разберем примеры написания простых программ в конфиге nginx.
Читать дальше →

Генерация рандомных ветвлений на Питоне

Reading time17 min
Views9.4K
image

Вспоминая Докинза, основную идею можно выразить так: если долго держать смерч над помойкой, то может собраться Боинг-747. Появление структуры из хаоса дуриком: перебирая и рекомбинируя всё подряд, из всех бессмысленных и беспорядочных процессов можно увидеть вполне осмысленные и упорядоченные. Если такие процессы каким-либо образом закрепляются и повторяются, то система, еще вчера представлявшая из себя броуновское движение, сегодня начинает выглядеть уже так, как будто ее поведение настроила невидимая рука, и что она совершает какие-то осмысленные с нашей точки зрения действия. При этом никакой руки и близко нет. Она настроила себя сама.

Чтобы в этом убедиться еще раз, я и стремлюсь написать некое подобие цифровой жизни, которая из хаоса и без лишних указаний от человека способна будет сама себе рандомно генерить логику и существовать по ней в своем естественном пространстве обитания — операционной системе. Да, в этом, вероятно, есть отличие от многих программ из направления «Искусственная жизнь», которые «живут» в загончиках, плодят «хищников» и «травоядных», и со-существуют на искусственных полях с «едой» и друг другом. Никакие из этих программ не взаимодействуют с объектами системы (процессами, файлами и т.д.), а значит код по-настоящему не живет. Кроме того, этот код так или иначе всё равно выполняет какую-то нужную человеку задачу и очень из-за этого ограничен рамками.

Чтобы реализовать код с большой степенью свободы действий в операционной системе, который при этом не представлял бы из себя просто хаотический набор исполняющихся инструкций, появилась модель, которая состоит из 3 модулей.
Читать дальше →

Рецепты PostgreSQL: шаблонизатор mustach

Reading time3 min
Views2K
Для приготовления шаблонизатора mustach нам понадобится postgres и mustach. Можно также воспользоваться готовым образом.

Зачем нужен шаблонизатор в базе? Ну, во-первых, если шаблонизатор в базе, то и сами шаблоны тоже должны быть в базе. А зачем нужно хранить шаблоны в базе? Да потому, что шаблоны, как и данные, тоже могут зависеть от времени. Например, пусть в базе есть счета (это данные). Очевидно, что они зависят от времени: в этом месяце сумма одна, в следующем — другая, потом — третья и т.д. Но и шаблон счёта тоже может зависеть от времени: в этом году один, а в следующем уже другой (как это было с введением 20% ). Поэтому удобнее сами шаблоны тоже хранить в базе. Ну а шаблонизатор в базе удобен тем, что можно тут же в базе шаблонизировать, потом (тут же в базе) преобразовать в pdf и (тут же в базе) отправить на email. И всё это можно сделать асинхронно с помощью планировщика.
Читать дальше →

Как устроиться в LinkedIn, Facebook, Google в Кремниевой Долине

Reading time8 min
Views26K

Зачем это читать?


В предыдущей статье я рассказал про реальные доходы и расходы, на которые может рассчитывать инженер, работающий в одной из Big Tech компаний. Если вдруг это вас заинтересовало, здесь будут подробности про то, как туда устроиться.


Я работаю в LinkedIn, который был приобретен Microsoft в 2016 году. У меня были предложения от Facebook, Bayer и разных стартапов, плюс множество собеседований с другими компаниями в Долине, включая Google и Tesla.


В LinkedIn часть моих обязанностей (как и многих других сотрудников) — проводить интервью с кандидатами. Я знаю, как происходит процесс, и я покажу письма реальных рекрутеров.

Читать дальше →

Больше разработчиков должны знать это о базах данных

Reading time19 min
Views44K
Прим. перев.: Jaana Dogan — опытный инженер из Google, которая в данный момент занимается вопросами наблюдаемости production-сервисов компании, написанных на Go. В этой статье, снискавшей большую популярность у англоязычной аудитории, она в 17 пунктах собрала важные технические детали, касающиеся СУБД (а иногда — распределённых систем в целом), которые полезно учитывать разработчикам крупных/требовательных приложений.



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

Когда самое лучшее время для инвестиций?

Reading time3 min
Views22K
Всем привет. Недавно прочитал пост на Хабре ״Как стать долларовым миллионером за 30 лет, лежа на диване״. Судя по активности в комментариях — тема инвестирования актуальна. Многих интересует вопрос, когда же лучше всего инвестировать? Что будет, если сегодня я куплю акций, а завтра они упадут? Ждать падения, а только потом инвестировать? Или же просто каждый месяц покупать акции?
Читать дальше →

Скромное руководство по схемам баз данных

Reading time7 min
Views44K

Geometry of Flowers by Mookiezoolook

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

Но как оценить, какая схема лучше? И что вообще значит «лучше», когда мы говорим об архитектуре БД? Команда Mail.ru Cloud Solutions предлагает познакомиться с рекомендациями Майка Алча, консультанта по разработке программного обеспечения. Нам кажется, что он довольно лаконично резюмировал некоторые принципы грамотной архитектуры.
Читать дальше →

450 бесплатных курсов от Лиги Плюща

Reading time19 min
Views74K
image


Информационные технологии позволяют получить невероятно крутые образовательные ресурсы в один клик. Бесплатно.

Я сейчас решаю задачу, как из огромной массы жизненно важного контента выбрать тот, который стоит попробовать в первую очередь, как «разметить данные», чтобы нейросеточка у подрастающего поколения обучилась более эффективно. (ontol.org, «Выгорание», «Удаленка», телеграм-канал).

Предлагаю вашему вниманию полную подборку всех бесплатных курсов от Лиги Плюща.

Лига плюща (The Ivy League) — ассоциация восьми частных американских университетов, расположенных в семи штатах на северо-востоке США. В состав лиги входят: Брауновский университет (Brown University), Гарвардский университет (Harvard University), Дартмутский колледж (Dartmouth College), Йельский университет (Yale University), Колумбийский университет (Columbia University), Корнеллский университет (Cornell University), Пенсильванский университет (University of Pennsylvania), Принстонский университет (Princeton University).

Эти университеты выпустили около 500 онлайн-курсов, 450 из которых сейчас доступны.

Оглавление


Computer Science (37)
Data Science (18)
Программирование (8)
Гуманитарные науки (80)
Бизнес (72)
Art & Design (20)
Наука (32)
Социальные науки (74)
Здоровье и медицина (32)
Инженерия (15)
Образование и преподавание (21)
Математика (14)
Личностное развитие (7)

Читать дальше →

Книга «Как тестируют в Google» — бесплатная электронная версия

Reading time11 min
Views72K
image Привет, Хаброжители!

В книге описано тестирование программных продуктов в Google: как устроены процессы, как организованы команды, какие техники используются, кто ответственен за качество. Принципы, на которых построено тестирование в Google, применимы в проектах и компаниях любого размера. Авторы книги сами работали над продуктами Google, создавая инструменты тестирования, настраивая процессы и занимаясь непосредственно тестированием.

Книга рассчитана на профессионалов из индустрии разработки программного обеспечения: специалистов по тестированию, программистов, менеджеров.
Читать дальше →

Мониторим базу PostgreSQL — кто виноват, и что делать

Reading time7 min
Views37K
Я уже рассказывал, как мы «ловим» проблемы PostgreSQL с помощью массового мониторинга логов на сотнях серверов одновременно. Но ведь кроме логов, эта СУБД предоставляет нам еще и множество инструментов для анализа ее состояния — грех ими не воспользоваться.

Правда, если просто смотреть на них с консоли, можно очень быстро окосеть без какой-либо пользы, потому что количество доступных нам данных превышает все разумные пределы.


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

Сегодняшняя статья — о том, какие выводы можно сделать, наблюдая в динамике различные метрики баз PostgreSQL-сервера, и где может скрываться проблема.
Читать дальше →

PostgreSQL Antipatterns: насколько глубока кроличья нора? пробежимся по иерархии

Reading time6 min
Views8.4K
В сложных ERP-системах многие сущности имеют иерархическую природу, когда однородные объекты выстраиваются в дерево отношений «предок — потомок» — это и организационная структура предприятия (все эти филиалы, отделы и рабочие группы), и каталог товаров, и участки работ, и география точек продаж,…



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

Существует много способов хранения такого дерева в СУБД, но мы сегодня остановимся только на одном варианте:

CREATE TABLE hier(
  id
    integer
      PRIMARY KEY
, pid
    integer
      REFERENCES hier
, data
    json
);

CREATE INDEX ON hier(pid); -- не забываем, что FK не подразумевает автосоздание индекса, в отличие от PK

И пока вы всматриваетесь в глубину иерархии, она терпеливо ждет, насколько же [не]эффективными окажутся ваши «наивные» способы работы с такой структурой.


Давайте разберем типовые возникающие задачи, их реализацию на SQL и попробуем улучшить их производительность.
Читать дальше →

Стоимость денег, типы процентов, дисконтирование и форвардные ставки. Ликбез для гика, ч.1

Reading time9 min
Views66K
Представьте себе ситуацию – вы покупаете машину, и вам предлагают два варианта: заплатить с рассрочкой в несколько месяцев или погасить всю сумму сразу и с небольшой скидкой. Какой окажется выгоднее?

Или, например, вы хотите разместить вклад на год. Можно положить на весь срок под высокий процент или на отдельные короткие сроки под более низкий. Что лучше и насколько?



Все ответы под катом. И добро пожаловать в мир, где время — всегда деньги. До этого вы знали об этом, но теперь — в деталях и с примерами.
Читать дальше →

Материалы митапа GOnline: дизайн библиотек, кодогенерация, машинное обучение

Reading time3 min
Views6.9K

Делимся материалами с нашего совместного митапа с сообществами GolangKazan и Go Yola для Go-разработчиков. Под катом — видеозаписи выступлений с таймкодами для удобной навигации и ссылки на презентации спикеров.


Читать дальше →

Go, Vue и 3 дня на разработку: система реального времени для мониторинга пациентов

Reading time8 min
Views18K
В ноябре 2019 года люди услышали о первых случаях неизвестной смертельно опасной болезни в Китае. Теперь все знают о том, что эта болезнь называется COVID-19. Видимо, эпидемия навсегда изменила тот мир, который мы знали. Вирус опасен и очень заразен. И человечество пока не особенно много знает о нём. Очень надеюсь, что скоро будет найдено лекарство от этой болезни.



Природа вируса такова, что очень сложно помешать его распространению. В Шри-Ланке, где я живу, мы столкнулись с такой же ситуацией, с которой столкнулись люди в других странах. Здесь я хочу рассказать о том, как программисты смогли оказать посильную помощь тем, кто сражается с болезнью лицом к лицу.
Читать дальше →

Шаблон backend сервера на Golang — часть 2 (REST API)

Reading time32 min
Views33K

UPD. Ссылка на новый репозиторий проекта с поддержкой развертывания в Kubernetes


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


Первая часть шаблона посвящена HTTP серверу:


  • настройка HTTP сервера через командную строку и конфигурационный файл
  • настройка параметров TLS HTTP сервера
  • настройка роутера и регистрация HTTP и prof-обработчиков
  • настройка логирования HTTP трафика, логирования ошибок в HTTP
  • HTTP Basic и MS AD аутентификация, JSON Web Token
  • запуск сервера с ожиданием возврата в канал ошибок
  • использование контекста для корректной остановки сервера и связанных сервисов
  • настройка кастомной обработки ошибок и кастомного логирования
  • сборка кода с внедрением версии, даты сборки и commit

Вторая часть шаблона посвящена прототипированию REST API.
Ссылка на репозиторий проекта осталась прежней.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Архитектура шаблона REST API


В ходе тестирования шаблона на стенде были получены следующие результаты.

Читать дальше →

Теории вероятностей: готовимся к собеседованию и разрешаем «парадоксы»

Reading time17 min
Views104K

Каждый год я участвую примерно в сотне собеседований в образовательных проектах JetBrains: собеседую абитуриентов в Computer Science Center и корпоративную магистратуру ИТМО (кстати, набор на программу идёт прямо сейчас). Все собеседования устроены по одному шаблону: мы просим на месте порешать задачи и задаём базовые вопросы по дисциплинам, которые студенты изучали в университетах. Большинство вопросов, которые мы задаём, довольно простые — нужно дать определение некоторого понятия, сформулировать свойство или теорему. К сожалению, у значительной доли студентов все эти определения выветриваются сразу после экзаменов в университетах. Казалось бы, что тут удивительного? В современном мире любое определение можно за пару секунд нагуглить, если это нужно. Но невозможность восстановить базовое определение свидетельствует о непонимании сути предмета.

Если непонимание алгебры или математического анализа может мало влиять на вашу жизнь, то непонимание теории вероятностей делает из вас лёгкую мишень для обмана и манипулирования. Суждения о вероятностях различных событий настолько глубоко вошли в нашу повседневную жизнь, что умение правильно рассуждать и отличать правду от невежества или манипуляции является необходимым. В этом небольшом обзоре мы поговорим о базовых понятиях теории вероятностей, научимся правильно формулировать утверждения про простые случайные процессы и разберём несколько парадоксов. Часть материала позаимствована из брошюры А. Шеня «Вероятность: примеры и задачи», которую я очень рекомендую для самостоятельного изучения.
Читать дальше →

Какие алгоритмы разработчики Яндекса реализовывают каждый день

Reading time8 min
Views53K

Споры о том, нужно ли разработчикам писать алгоритмический код на собеседованиях, бесконечны. В поддержку положительного ответа я уже публиковал рассказ об алгоритмических секциях с написанием кода в Яндексе и примерами задач, которые там можно встретить. Теперь я хочу развить эту тему и показать примеры реального продакшен-кода.




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


В статье четыре примера. Два на C++, один на TypeScript и один на Python. Способность быстро писать относительно простые алгоритмы без багов — общая необходимость, она не зависит от специализации разработчика.

Читать дальше →

Какие ошибки делают руководители на удалёнке

Reading time8 min
Views33K
Привет, Хабр! Я не разработчик, а менеджер. Меня некоторое время учили управлять людьми, а потом я погрузилась в мрачный мир разработки, где всё идёт не так, как говорят в университете. Сейчас я руковожу практикой управления жизненным циклом программного обеспечения и хочу рассказать несколько, возможно, важных для тимлидов и ПМ'ов вещей, которые касаются перехода на удалёнку. Потому что в наших командах люди было уже начинали так косячить. А потом покажу и расскажу про наш стек автоматизации для удалёнки, и о том, как мы аппрувим релизы из чатов на телефоне одной кнопкой, а не поднимая VPN в защищённый периметр, и это ускорило согласования, и это помогает согласовывать день в день.

Первый совет — хватит доставать своих людей!



Я знаю, звучит очень глупо, но многие руководители, не видя людей рядом, начинают как-то компенсировать своё желание убедиться, что они работают. Происходят вот такие чаты:


Дятел-менеджмент в чистом виде

Если стоит задача повысить эффективность команды сейчас и в перспективе — оставьте людей в покое. И установите 15-минутные дейли по утрам. Я уже успела увидеть и общепроектные синхры раз в четыре часа, и дейли по два часа, и впадающих во фрустрацию менеджеров, привыкших договариваться сидя лицом к лицу с кем-то.
Читать дальше →

Парсеры Пратта для чайников

Reading time8 min
Views9K

Рекурсивный спуск работает идеально, когда вы можете принимать решение относительно разбираемого куска кода с помощью текущего контекста и токена.


Картину портят выражения: постфиксные, инфиксные и прочие. Проблема: вы не можете понять, какого типа выражение вы обрабатываете до тех пор, пока не разберёте его первую половину. Зачастую для вас также важны приоритет операции и её ассоциативность, чтобы построенное AST имело правильную структуру.


В этой статье мы напишем парсер для диалекта Go, особенности которого мы рассмотрим чуть ниже. Как вы сможете убедиться, алгоритм Пратта решает большинство наших проблем.


Читать дальше →

Information

Rating
5,008-th
Registered
Activity