Pull to refresh
18
0
Валерий Шиманский @vertu77

User

Send message

Асинхронные режимы фреймворка gRPC и принципы их работы в С++

Reading time26 min
Views22K
Однажды мы с нашей командой решили попробовать gRPC для своих задач. После некоторых обсуждений, пришли к выводу, что будем использовать асинхронные клиент и сервер. Однако, под рукой оказался рабочий пример из документации только для одного режима. Примеры остальных режимов взаимодействия, основные принципы работы асинхронных операций, принципы работы асинхронного сервера и клиента в gRPC и многое другое под катом.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1

CPU-лимиты и агрессивный троттлинг в Kubernetes

Reading time8 min
Views38K
Прим. перев.: эта поучительная история Omio — европейского агрегатора путешествий — проводит читателей от базовой теории до увлекательных практических тонкостей в конфигурации Kubernetes. Знакомство с такими случаями помогает не только расширять кругозор, но и предотвращать нетривиальные проблемы.



Доводилось ли вам сталкиваться с тем, что приложение «застревало» на месте, переставало отвечать на запросы о проверке состояния (health check'и) и вы не могли понять причину такого поведения? Одно из возможных объяснений связано с лимитом квот на ресурсы CPU. О нем и пойдет речь в этой статье.

TL;DR:
Мы настоятельно рекомендуем отказаться от CPU limit'ов в Kubernetes (или отключить квоты CFS в Kubelet), если используется версия ядра Linux с ошибкой CFS-квот. В ядре имеется серьезный и хорошо известный баг, который приводит к избыточному троттлингу и задержкам
.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments3

Книга «Глубокое обучение. Погружение в мир нейронных сетей»

Reading time6 min
Views71K
image Привет, Хаброжители! Недавно у нас вышла первая русская книга о глубоком обучении от Сергея Николенко, Артура Кадурина и Екатерины Архангельской. Максимум объяснений, минимум кода, серьезный материал о машинном обучении и увлекательное изложение. Сейчас мы рассмотрим раздел «Граф вычислений и дифференцирование на нем» в котором вводятся основополагающее понятие для реализации алгоритмов обучения нейронных сетей.

Если у нас получится представить сложную функцию как композицию более простых, то мы сможем и эффективно вычислить ее производную по любой переменной, что и требуется для градиентного спуска. Самое удобное представление в виде композиции — это представление в виде графа вычислений. Граф вычислений — это граф, узлами которого являются функции (обычно достаточно простые, взятые из заранее фиксированного набора), а ребра связывают функции со своими аргументами.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments52

Книга «Программирование для детей. Учимся создавать сайты, приложения и игры. HTML, CSS и JavaScript»

Reading time1 min
Views38K
image

Всем привет! Мы издали книгу для детей, обучающую программированию. Профессор Бейрстоун и доктор Дэй (и, конечно пес Эрнест) играючи научат этому всего за шесть увлекательных приключений! Создавать собственные сайты, игры или приложения с помощью HTML, CSS и JavaScript — это весело и увлекательно.

Чтобы вы поняли, что это не только развлечение, но и серьезное веб-программирование мы покажем вам фрагмент книги про «Построение маршрута». Речь пойдет про добавление материала с другой страницы, встраивание карты с границу с помощью веб-api, применение api key, изучение принципа работы тега <iframe> и планирование маршрута с помощью карт Google.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments12

Нейронные сети для начинающих. Часть 1

Reading time7 min
Views1.5M
image

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
Читать дальше →
Total votes 70: ↑60 and ↓10+50
Comments64

Интерполяция замкнутых кривых

Reading time8 min
Views17K
Всем привет! Недавно возникла практическая необходимость использовать интерполяцию для замкнутых кривых. Проект разрабатывался под .Net на C#, а готовых реализаций алгоритма я не обнаружил, впрочем, как и для других языков и технологий. В результате пришлось самому изучить мат.часть существующих методов и написать свою библиотеку. Наработками и готовым решением готов поделиться с вами.


Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments18

Смотря на код с закрытыми глазами

Reading time6 min
Views123K
От переводчика

Эта статья — перевод блогозаписи Флориана Бейджерса, слепого программиста из Нидерландов.
Перевод любительский, поэтому прошу указывать на ошибки и критиковать.
Я не нашёл корректного перевода слова accessibility, поэтому перевёл его как «доступность». Если есть вариант получше — предложите, пожалуйста.
Антон Туманов предложил «адаптированность», за что ему большое спасибо.
Как заметил в комментарии pepelsbey, «доступность» является корректным переводом, вернул её обратно.
Почему я сделал перевод? Я наткнулся на опрос на Quora.com «Как программируют слабовидящие программисты?». Ответы людей меня впечатлили, а блогозапись Флориана показалась наилучшим вариантом для введения в этот важный вопрос.

Я — программист. А ещё я слеп. Слеп, как крот, как говорится. Таков я от рождения.

Когда я говорю об этом своим товарищам, то те из них, у кого никогда не было проблем со зрением, обычно задают один из трёх вопросов:

  • Как же ты тогда можешь читать то, что я пишу?
  • Ого. А как ты тогда можешь кодить?
  • Или — самый популярный вопрос — А ты видишь сны?

Мне задают эти вопросы снова и снова. Поэтому в этой блогозаписи я хочу на них ответить. Я попытаюсь нарисовать картинку для тех из вас, кто интересуется доступностью и тем, как слепые люди пользуются компьютером, кодят и выполняют другие работы в 21 веке.
Читать дальше
Total votes 227: ↑224 and ↓3+221
Comments174

Долгожданный рокеткам на «Союзе»

Reading time1 min
Views81K
Ракеты-носители на базе королёвской «семерки» летают уже пятьдесят семь лет, но всё это время на них не ставили видеофиксаторы («рокеткамы»). Для телеметристов это было не особо нужно, а желание фанатов космоса посмотреть «как оно выглядит в полёте» не становилось достаточно заметным для того, чтобы только для этого потратить деньги и время и сделать модуль видеофиксации с передачей видео на Землю по космическим стандартам. На форуме «Новостей космонавтики» даже собирали подписи под открытым письмом к Роскосмосу с просьбой установить на «Союзы» рокеткамы. Не знаю, подействовало ли это письмо, или же это инициатива ЕКА, но на днях случилось радостное событие — на «Союз», стартовавший с Куру, установили рокеткам! И теперь мы можем посмотреть, как отделяются боковушки и вторая ступень, практически, от первого лица. Для меня это очень радостная новость, надеюсь и вам понравится:

Анимация, вид снизу и в полёте, 2 МБ
Total votes 172: ↑168 and ↓4+164
Comments90

Обзор PocketBook Touch

Reading time5 min
Views29K
По результатам тестов авторитетного европейского журнала ComputerBild, последняя модель марки PocketBook – Touch — признана лучшим ридером.
Устройства оценивались в пяти категориях: качество экрана, функционал, технические характеристики, дополнительные функции и сервисное обслуживание. С опережением в каждой из категорий победителем стала модель PocketBook Touch.

image

Что же из себя представляет данный ридер и чем он так хорош?

Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments87

Съёмка показаний счетчика на телефон с последующим распознаванием

Reading time20 min
Views185K

Вступление


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

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

Решение простое — оставить ключи родственникам/друзьям/соседям, чтобы они могли приехать и включить котел, случись какая-нибудь неприятность. Хорошо, если есть сосед, который будет каждый день заходить и проверять, всё ли в порядке. А если нет? Или он тоже решит уехать куда-нибудь на выходные?

Итак, я решил наладить выкладывание показаний счётчика куда-нибудь в Интернет, чтоб я мог находясь где-нибудь в дальней поездке периодически проверять, тратится ли газ, а если вдруг перестанет тратиться, то срочно звонить родственникам/друзьям/соседям (или кому там я оставил ключи), чтобы приехали и нажали кнопку.

Конечно, после простого выкладывания показаний в Интернет я решил не останавливаться на достигнутом и замутил ещё распознавание показаний и графическое представление, об этом читайте в части 2 данного топика.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments84

Потоки — это Goto параллельного программирования

Reading time6 min
Views39K
Сразу раскрою мысль, вынесенную в заголовок. Использование потоков (также именуемых нити, треды, англ. threads) и средств прямой манипуляции ими (создание, уничтожение, синхронизация) для написания параллельных приложений оказывает столь же пагубное влияние на сложность алгоритмов, качество кода и скорость его отладки, какое вносило использование оператора Goto в последовательных программах.
Как когда-то программисты отказались от неструктурированных переходов, нам необходимо отказаться от прямого использования потоков сейчас и в будущем. И так же, как каждый из нас использует структурные блоки вместо Goto, вместо потоков должны использоваться структуры, построенные поверх них. Благо, все инструменты для этого появились во вполне традиционных языках.
Автор фото: Rainer Zenz
Читать дальше →
Total votes 76: ↑63 and ↓13+50
Comments57

Раздаем 500К на организацию кружков робототехники

Reading time5 min
Views57K


UPD: Конкурс завершен

Почти два года назад мы начали активно продвигать робототехнику в Екатеринбурге. Вскоре после начала нашей деятельности пришло понимание, что самый верный способ привлечения людей в эту сферу — работать со школьниками. Чем мы, собственно, успешно и занялись. Довольно быстро возникло желание масштабировать наш опыт. Нам удалось разделить это желание с двумя екатеринбургскими ИТ-компаниями — Naumen и Экстрим, результат — см. заголовок поста.

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

Читать дальше →
Total votes 84: ↑79 and ↓5+74
Comments17

Реверс-инжиниринг для самых маленьких: взлом кейгена

Reading time8 min
Views110K
Этот пост будет интересно действительно тем, кто только начинает интересоваться этой темой. У людей с опытом он, возможно, вызовет только зевки. За исключением разве что, может быть, эпилога
Реверс-инжиниринг в той менее легальной части, где он не касается отладки и оптимизации собственного продукта, касается в том числе и такой задачи: «узнать, а как у них это работает». Иначе говоря, восстановление исходного алгоритма программы, имея на руках ее исполнимый файл.
Для того, чтобы держаться азов и избежать некоторых проблем — «взломаем» не что-нибудь, а… кейген. В 90% он не будет запакован, зашифрован или иным способом защищен — в том числе и нормами международного права…
Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments32

Cетевое взаимодействие посредством TCP в C# — свой велосипед

Reading time10 min
Views50K


Приветствую!

Продолжу серию постов посвященных программированию, на этот раз я хочу поговорить на тему сетевого взаимодействие посредством TCP соединения между .Net приложениями. Статья может быть полезна новичкам или тем кто еще не сталкивался с сетью по отношению к .Net. Полностью работоспособный пример прилагается: http://yadi.sk/d/1OxmAFuCN3kmc.

Подробности под катом.
Читать дальше →
Total votes 22: ↑12 and ↓10+2
Comments9

Повышение визуального качества для фотографий документов

Reading time5 min
Views35K
В последнее время пользователи все чаще получают изображения документов при помощи фотокамер или мобильных устройств, прибегая к помощи сканера изредка, в особых случаях. В то же время, для изображений, получаемых фотокамерами, характерны следующие недостатки: геометрические искажения (о них мы говорили в статье про автоматическое выделение документа), неравномерность освещения (часто можно видеть тени или засветки при использовании вспышки), падение контраста, расфокусировка, смаз, цифровой шум при недостаточном освещении. Постараемся избавиться от этих недостатков, применяя некоторые преобразования к исходному изображению, чтобы приблизить его вид к отсканированному.
Читать дальше →
Total votes 94: ↑93 and ↓1+92
Comments30

2ndb — тетрадка для записей, которая изучает, а затем улучшает того, кто в ней пишет

Reading time18 min
Views15K
У вас есть такие друзья, которые всё время что-то записывают в тетрадку или в файлик в Google Docs? Вы спрашивали у них о том, зачем они это делают, и что именно они туда пишут? Если нет, то отвечу за них (не за всех, но за многих):

Это употребляемая еда (в том числе её энергетическая ценность), расходы, время, затрачиваемое на сериалы (игры, работу, спорт), их планы на будущее, их ощущения от того, что они потребляют (например, оценка шоколадок) и прочие метрики и сведения об их жизни.

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

Именно такую систему я бы и хотел описать более подробно: программный продукт, способный собирать информацию (на начальных этапах это в основном те данные, которые пользователь предоставляет самостоятельно, регулярно занося их в систему) и, анализируя её, находить в ней различные тенденции, связывать разнообразные аспекты человеческой жизни по каким-либо общим параметрам (например, обнаруживая хронологическую связь) и информировать пользователя в том случае, если у системы есть для него какие-либо рекомендации, советы или предостережения.
Читать дальше →
Total votes 30: ↑16 and ↓14+2
Comments10

Пять способов выгореть для программиста

Reading time4 min
Views113K
imageОт переводчика
Выгорание в жизни программиста может случиться по самым разнообразным причинам; если задаться целью перечислить все пути, которыми оно подкрадывается к нам, то одно лишь это перечисление займет немало времени. Это еще один повод, по которому не стоит недооценивать процесс выгорания — иначе однажды вам придется искать дорогу обратно, и стоить это может очень дорого. Последняя строка вовсе не голословна — мне самому однажды смогла помочь лишь любовь к коду — когда уже, казалось бы, все осточертело и ничего не хотелось, чтение подвернувшегося Макконнелла навеяло воспоминания о том, как же когда-то мне нравилось программировать. И сегодня мне нравится делать это снова.
А теперь — слово автору.

Я отошел от своего выгорания только недавно — несмотря на то, что случилось оно несколько лет назад. Да, мне было непросто… очень непросто. Когда я думаю о произошедшем, на ум приходит немало причин тому, что случилось со мной — но самое интересное заключается в том, что каждой из них я никогда раньше не придавал значения. Хотите повторить мой путь и выгореть? Пожалуйста, у меня готов целый список, как следует поступать в таком случае:

1. Думать о проекте и только о нем


Признайтесь себе: бизнес хочет, чтобы вы создавали наилучший продукт «для наших клиентов». Вы откладываете в долгий ящик какой-либо функционал из-за того, что не успеваете к дедлайну. Вы планируете проект и анализируете его со всех сторон для того, чтобы разбить на несколько «перевариваемых» частей, которые затем должны быть воплощены одним из кодеров (в роли обезьянки, или code monkey, кстати говоря, можете быть и вы один). Вы создаете рабочий прототип, затем получаете обратную связь и делаете еще одну итерацию. И все это — без единой мысли о себе любимом.
Читать дальше →
Total votes 170: ↑150 and ↓20+130
Comments149

Много бесплатных книг по программированию

Reading time7 min
Views345K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

Организация MDIF объявила о создании бесплатной сети Outernet

Reading time1 min
Views30K
Скрытый текст
странно, что новости до сих пор нет на хабре


В понедельник организация MDIF объявила о создании новой мировой сети доступа в Интернет. Проект получил название «Outernet» и предполагает размещение на околоземной орбите миниатюрных спутников CubeSats, покрывающих сетью Wi-FI все континенты.

Далее
Total votes 48: ↑38 and ↓10+28
Comments78

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

Reading time4 min
Views30K
На хабре уже не раз поднималась тема изучения английского языка (пруф). Она рассматривалась с разных ракурсов. Кто-то писал, что не зачем учить слова, при изучении иностранного. Кто-то делился способами, коих великое множество, от простых карточек, до целой тетради, исписанной по самое не хочу. В конце концов есть LinguaLeo, так же замечательный сервис, на котором без дополнительной платы можно учить по 10 слов в день. Хотя иногда платить не хочется, а 10 слов кажутся весьма небольшим количество для молодого организма, который познает таинства и прелести иностранной мовы. Тогда возможно этот скрипт вам будет полезен.
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments40

Information

Rating
Does not participate
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity