Как стать автором
Обновить
490
0
Umputun @umputun

решаю

Отправить сообщение

Нейросетевой калькулятор для сложения и вычитания не очень больших чисел

Время на прочтение5 мин
Количество просмотров23K

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


Работа уже опубликована на arXiv и сегодня будет представлена на конференции SIGBOVIK в формате аудиозаписи. В этом посте мы поделимся с вами результатами нашего эксперимента. Мотивация и детали реализации также под катом.


Читать дальше →
Всего голосов 71: ↑63 и ↓8+55
Комментарии47

Telegram бот для изучения языков

Время на прочтение5 мин
Количество просмотров35K

Не так давно я переехал в Финляндию и решил, что местный язык знать нужно. Занимаюсь с учителем онлайн, всё идёт хорошо, язык оказался не таким сложным, как казалось, но, пожалуй, самая большая проблема — увеличение словарного запаса. Сначала я решил пользоваться теми решениями, что есть. Но быстро понял, что они мне не очень подходят.

Пришлось самому написать небольшой бот для Телеграма, который можно использовать для изучения практически любого языка.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии53

Как разделить окружение для сборки и запуска сервиса в Docker сегодня и как это cделать завтра

Время на прочтение4 мин
Количество просмотров34K

image


Большинство из нас уже давно научилось готовить Docker и используют его на локальных машинах, на тестовых стендах и на боевых серверах. Docker, который недавно превратился в Moby, прочно вошел в процессы доставки кода до пользователя. Но best practice работы с контейнерной виртуализацией и, в частности, с Docker вырабатываются до сих пор.


Как это было


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

Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии34

Docker и определение доступных ресурсов внутри контейнера

Время на прочтение2 мин
Количество просмотров26K

Как объяснить контейнеру docker-а сколько у него есть ресурсов?


К написанию этой небольшой заметки меня подтолкнула статья-перевод Java и Docker: это должен знать каждый и скудный на результаты поиск информации по теме. Я давно использую LXC, который тоже ограничивает ресурсы контейнеров средствами cgroup, и там эта проблема уже решена.


Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии6

Микросервисы: опыт использования в нагруженном проекте

Время на прочтение17 мин
Количество просмотров68K


На конференции HighLoad++ 2016 руководитель разработки «М-Тех» Вадим Мадисон рассказал о росте от системы, для которой сотня микросервисов казалась огромным числом, до нагруженного проекта, где пара тысяч микросервисов — обыденность.

Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.

Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?

Про что сама эта история? Это про то, как мы росли, как проект развивался, как происходило какое-то переосмысление каких-то его частей, какого-то взаимодействия. Так или иначе, это про масштабирование проекта, потому что это всё — ради того, чтобы выдержать ещё больше нагрузки, предоставить клиентам ещё больше функционала и при этом не упасть, не потерять ключевых характеристик. В общем, чтобы клиент остался доволен. Ну и немного про то, какой путь мы прошли. С чего мы начинали.
Читать дальше →
Всего голосов 78: ↑77 и ↓1+76
Комментарии65

Вышел GitLab 8.15

Время на прочтение8 мин
Количество просмотров15K

В последнем релизе уходящего года мы завершаем наш Мастер-план и хотим показать вам кое-что интересное из того, над чем мы работали.



В GitLab 8.15 появилась фича Auto Deploy – автоматизированная настройка развертывания и приложений для ревью (Review Apps). Для проекта на Ruby on Rails такая настройка займёт меньше минуты. Посмотрите, как это работает, в видео на 1:42.


Вдобавок, доступ к вашим средам (environments) стал быстрее и проще: через терминал непосредственно в GitLab (там же на 5:18)


Мы хотим дать каждому возможность использовать всю мощь контейнеров (containers), непрерывной интеграции и развертывания (continuous integration and deployment, сокращенно CD/CI), приложений для ревью (review apps) и планировщиков контейнеров (container schedulers). В GitLab 8.15 мы взяли на себя всю сложную работу по настройке, и вся она происходит совершенно прозрачно. В демонстрационном видео мы настраиваем и разворачиваем Ruby-приложение с review apps, несколькими средами и чатопсом (chatops, управление инфраструктурой через интеграцию с чатом) на кластер Kubernetes примерно за 12 минут. Без GitLab такая задача обычно занимает дни, если не недели.


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


Всего голосов 29: ↑28 и ↓1+27
Комментарии13

Как работает Git

Время на прочтение19 мин
Количество просмотров148K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →
Всего голосов 110: ↑99 и ↓11+88
Комментарии38

Опыт использования AWS ECS в нашей инфраструктуре

Время на прочтение4 мин
Количество просмотров13K
image

В данной статье я бы хотел поделиться нашим опытом использования AWS ECS в инфраструктуре, рассказать о плюсах и минусах этого продукта и о том, как мы решали проблемы с этим связанные. Начнём с определения:
Amazon EC2 Container Service – это высокопроизводительный сервис управления контейнерами с высокими возможностями масштабирования.

По сути ECS это попытка компании Amazon влезть в рынок управления контейнеров, где сейчас существуют Kubernetes, Mesos/Marathon, Docker Swarm и другие. Однако, в отличии от них Amazon предоставляет сервис с API, таким образом наиболее близкий аналог это Google Container Engine (aka kubernetes-as-a-service). Стоит отметить, что сам ECS бесплатен, а платите вы только за EC2 инстансы.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии16

Интегрируем оплату через Paypal в web-приложение

Время на прочтение21 мин
Количество просмотров74K
В данной статье рассмотрена интеграция разовых платежей, а также оплаты по подписке с помощью Paypal в веб-приложение. Примеры реализованы на PHP, но, в принципе, без особых проблем то же самое можно сделать с помощью других технологий. Данный метод выбран как компромисс между простотой и гибкостью. Это попытка написать руководство, которое поможет быстро разобраться в теме и интегрировать оплату через Paypal в свой проект.

Статья ориентирована в основном на тех, кто раньше с этой системой не работал. Знатоки Paypal вряд ли найдут здесь для себя что-то новое. Но, возможно, они укажут на недостатки данного метода или посоветуют, как можно было бы по-другому это реализовать.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии29

Экстремальная сестра Земли. Прошлое и будущее «Утренней Звезды»

Время на прочтение10 мин
Количество просмотров162K


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

Ниже под катом мы постараемся разобраться какие космические и геологические процессы предопределили столь большую разницу между Венерой и ее сестрой Землей. А так же, какие действия человечества в будущем могут вернуть «утренней звезде» статус тропического рая.
Читать дальше →
Всего голосов 151: ↑147 и ↓4+143
Комментарии87

Коллекции иконок? Легко! Тысячи иконок в сетах.

Время на прочтение2 мин
Количество просмотров39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Всего голосов 159: ↑135.5 и ↓23.5+112
Комментарии36

Макинтош без мышки

Время на прочтение3 мин
Количество просмотров17K
Статья будет больше интересна маководам, особенно начинающим. Надеюсь, что кому-нибудь пригодится. Будет ещё и вторая часть про ввод текста, если эта понравится.

Мышь компьютерная — такой удобный девайс для тырканья в разные элементы интерфейса, но тыркать в них можно и без помощи мыши. Кстати, иногда это гораздо удобнее, чем перемещать руку с клавиатуры на мышь и обратно. Достаточно запомнить нужные комбинации клавиш и научить себя их использовать.
Попробуйте, и будет вам щасте
Всего голосов 92: ↑76.5 и ↓15.5+61
Комментарии61

26 способов показать загрузку

Время на прочтение1 мин
Количество просмотров1.1K
Ajaxload — это генератор gif'ов, показывающих загрузку. Есть 26 типов загрузки, а цвет и фон можно выставить любой.
Читать дальше →
Всего голосов 79: ↑72 и ↓7+65
Комментарии13

Первая помощь при офисном стрессе

Время на прочтение1 мин
Количество просмотров998
Некоторым повезло работать дома. Или в собственном кабинете.

Другим повезло меньше и приходится сидеть в кубике или огромной шумной комнате. Неудобства рождают стресс. Желание слегка придушить коллег. Налить им кофе в клавиатуру. Или сделать еще что-то гадкое.

Трудотерапия спасет мир! Самый эффективный выход — трудотерапия. Но в офисе обычно нет возможности взять лопату и вскопать грядку. И попытка подвигать мебель для снятия стресса может быть понята очень неправильно. Поэтому занятие должно быть тихим. Добрым. Не требовать сложного инструмента.

К счастью, нашлись люди, которые нашли решение проблемы. Нам потребуются вещи, которые есть в любом офисе: принтер (лучше, если он будет цветным), бумага, ножницы и клей. Взяв выкройки (в PDF), которые лежат на замечательном сайте readymech, вы печатаете их, вырезаете и после склеивания получаете двойную пользу. С однй стороны, в руках у вас чудесная игрушка, которую, в зависимости от качества исполнения, можно подарить любимому начальнику или охраннику, который вам нахамил на прошлой неделе. С другой стороны — стресса как ни бывало.
Всего голосов 40: ↑38 и ↓2+36
Комментарии29

Израильтяне совершают компьютерную революцию

Время на прочтение2 мин
Количество просмотров683
Его уже назвали «священным Граалем» компьютерной технологии. Речь идет о программном обеспечении, которое позволит человеку общаться с компьютером «нормальным языком», точно так же, как люди общаются друг с другом.

Специалисты-компьютерщики во всем мире уже более десяти лет бьются над ускользающей целью, но пока безрезультатно. Однако на днях основанная в Иерусалиме компания Linguistic Agents сообщила о том, что ее специалистам удалось создать прикладную программу, которая позволит компьютерам понимать человеческую речь. Стоит ли говорить, что это приведет к настоящей революции в компьютерном мире.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии16

Работа для программиста в США: 5 простых шагов

Время на прочтение5 мин
Количество просмотров291K
image Статья про то, что делать тем, кто хочет переехать работать в США. Я предполагаю инженерные позиции, на которые проще всего получить визы, но, возможно, статья окажется полезна и другим специалистам.

Мой опыт несколько отличается от нижеописанного (я попала на работу в США после стажировки). Но за 4 года в США пообщалась с людьми, которые попали сюда разными путями и набрала кое-какой опыт. Так что если бы я очень хотела найти работу в США сегодня, то я бы действовала примерно так, как описано ниже.

Заранее извиняюсь, если мой тон кому-то покажется наставническим — я не имею амбиций учить других жизни, просто иногда у меня получается такой стиль.
Читать дальше →
Всего голосов 166: ↑152 и ↓14+138
Комментарии138

Rust: как код может быть одновременно быстрым и безопасным. Рассказ Степана Кольцова в Яндексе

Время на прочтение2 мин
Количество просмотров54K
Привет. Меня зовут Степан Кольцов. Недавно я выступал на Java Party в киевском офисе Яндекса с докладом про язык Rust, который несёт в себе очень много для будущего программирования. Некоторые коллеги утверждают, что я всегда говорю про Rust, когда у меня есть такая возможность. Сегодня я хочу поделиться этим рассказом с вами и объяснить, почему мне это кажется важным.



Для начала пара слов о том, что такое Rust. Последние 15 лет между разработчиками на Java и на C++ ведётся спор о том, какой язык программирования хуже — Java или C++. Программы на C++ глючат, падают, и в них утекает память. Программы на Java тормозят и требуют слишком много памяти.

Rust — новый современный язык программирования, разрабатываемый компанией Mozilla — решает проблемы Java и C++: программы, написанные на Rust, одновременно быстрые и безопасные. Rust является таким же низкоуровневым (в смысле close-to-metal) языком программирования, как и C++, однако в язык встроены конструкции, позволяющие на этапе компиляции доказывать, что в программе не случатся ошибки работы с памятью, как то обращение после использования, двойное удаление, использование неинициализированной памяти и т.п. В Rust для этого используется механизм borrowed pointers. Большая часть моего рассказа была посвящена описанию этого механизма.
Читать дальше →
Всего голосов 114: ↑109 и ↓5+104
Комментарии128

Что нового в MySQL 5.1

Время на прочтение3 мин
Количество просмотров4.1K
Осталось совсем немного времени до выхода MySQL 5.1. В статье будут рассмотрены изменения и новые возможности этой версии.
Читать дальше →
Всего голосов 87: ↑82.5 и ↓4.5+78
Комментарии50

MySQL Performance real life Tips and Tricks. To be continued.

Время на прочтение6 мин
Количество просмотров8K
По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
Читать дальше →
Всего голосов 86: ↑81 и ↓5+76
Комментарии65

Триггеры в MySQL

Время на прочтение2 мин
Количество просмотров294K
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Поддержка триггеров в MySQL началась с версии 5.0.2
Читать дальше →
Всего голосов 55: ↑50.5 и ↓4.5+46
Комментарии49
1

Информация

В рейтинге
Не участвует
Откуда
США
Дата рождения
Зарегистрирован
Активность