В предыдущих статьях был описан шеститочечный метод разворачивания этикеток и как мы тренировали нейронную сеть. В этой статье описано, как склеить фрагменты, сделанные из разных ракурсов, в одну длинную картинку.
Читать полностью »
Рубрика «Программирование» - 153
Склеиваем несколько фотографий в одну длинную с помощью машинного обучения
2020-08-22 в 13:25, admin, рубрики: numpy, opencv, python, SIFT, машинное обучение, ненормальное программирование, обработка изображений, ПрограммированиеПочему разработчики влюбляются в функциональное программирование?
2020-08-22 в 13:16, admin, рубрики: Блог компании RUVDS.com, Программирование, разработка, Разработка веб-сайтов, функциональное программированиеФункциональное программирование (ФП) существует уже лет 60, но до сих пор оно всегда имело достаточно узкую сферу использования. Хотя компании, меняющие мир, вроде Google, полагаются на его ключевые концепции, средний современный программист знает об этом феномене очень мало, если вообще что-то знает.
Но это скоро изменится. В такие языки, как Java и Python, интегрируется всё больше и больше концепций ФП. А более современные языки, вроде Haskell, являются полностью функциональными.
Если описать функциональное программирование простыми словами, то это — создание функций для работы с неизменяемыми переменными. В противоположность этому, объектно-ориентированное программирование — это когда используется сравнительно постоянный набор функций, а программист, в основном, занят модификацией существующих переменных и созданием новых.
ФП, по своей природе, подходит для решения актуальных задач, вроде задач анализа данных и машинного обучения. Это не означает, что нужно попрощаться с объектно-ориентированным программированием и полностью перейти на функциональное. Современному программисту просто полезно знать основные принципы ФП, что даст ему возможность применить эти принципы там, где они могут сослужить ему хорошую службу.
Читать полностью »
Let’s Go! Три подхода к структурированию кода на Go
2020-08-22 в 7:49, admin, рубрики: design patterns, Go, IT-стандарты, Блог компании Издательский дом «Питер», Программирование, стандарты кодированияПривет! Не так давно у нас вышла новая книга по Golang, и успех ее настолько впечатляет, что мы решили опубликовать здесь очень важную статью о подходах к проектированию приложений на Go. Идеи, изложенные в статье, очевидно не устареют в обозримом будущем. Возможно, автору даже удалось предвосхитить некоторые гайдлайны по работе с Go, которые могут войти в широкую практику в ближайшем будущем.
Читать полностью »
Разбор худшего в мире куска кода
2020-08-21 в 13:16, admin, рубрики: javascript, Блог компании RUVDS.com, Программирование, разработка, Разработка веб-сайтовЕсть одна итальянская страница на Facebook. Называется она «Il Programmatore di Merda», что в переводе означает «Дерьмовый программист». Мне нравится эта страница.
Там часто публикуют куски отвратительного кода и мемы о программировании. Но однажды я увидел там кое-что совершенно потрясающее.

Этот кусок кода заслужил почётное звание «лучшего произведения» за неделю.
Я решил этот код разобрать, но тут так много всего неправильного, что мне сложно даже выбрать первую проблему для анализа.
Если вы — начинающий программист, то мой материал поможет вам понять то, какие ужасные ошибки совершены тем, кто писал этот код.
Читать полностью »
4 угла хорошо, а 6 лучше: гексагональные шахматы в консоли и с ботом
2020-08-21 в 10:25, admin, рубрики: c++, hse spb, ncurses, альфа-бета отсечение, Блог компании Питерская Вышка, гексагональная сетка, Занимательные задачки, интеллектор, Программирование, Учебный процесс в IT, шахматыПривет!
Мы учимся на первом курсе бакалавриата «Прикладная математика и информатика» в Питерской Вышке. Во время работы над семестровым командным проектом по С++ мы решили написать компьютерную версию Интеллектора с ботом — шахматную игру на гексагональной доске с особыми фигурами.
В этой статье мы расскажем о том, как шла разработка игры, как приручить гексагональную доску, как можно рисовать в командной строке, а также как мы сделали бота, которого почти не можем победить.

Модернизация старого PHP-приложения
2020-08-20 в 9:40, admin, рубрики: legacy, php, refactoring, Блог компании Mail.Ru Group, никто не читает теги, Программирование, Проектирование и рефакторинг, Разработка веб-сайтов
Недавно мне выдалась случайная возможность поработать с несколькими старыми PHP-приложениями. Я заметил несколько распространённых антипаттернов, которые пришлось исправлять. Эта статья не о том, как переписывать старое PHP-приложение на <вставьте сюда название чудесного фреймворка>, а о том, как сделать его более удобным в сопровождении и менее хлопотным в работе.
Читать полностью »
Фольклор программистов и инженеров (часть 2)
2020-08-20 в 7:00, admin, рубрики: Блог компании NIX, инженерные системы, истории из жизни, Программирование, фольклор, Читальный зал
Продолжение подборки историй из интернета о том, как у багов иногда бывают совершенно невероятные проявления. Первая часть тут.
Читать полностью »
Мёртвый код: найти и обезвредить
2020-08-19 в 11:03, admin, рубрики: legacy, legacy code, legacy-код, php, Блог компании Badoo, Программирование, Проектирование и рефакторинг, Разработка веб-сайтов
Меня зовут Данил Мухаметзянов, я работаю бэкенд-разработчиком в Badoo уже семь лет. За это время я успел создать и изменить большое количество кода. Настолько большое, что в один прекрасный день ко мне подошёл руководитель и сказал: «Квота закончилась. Чтобы что-то добавить, нужно что-то удалить».
Ладно, это всего лишь шутка — он такого не говорил. А жаль! В Badoo за всё время существования компании накопилось больше 5,5 млн строк логического бизнес-кода без учёта пустых строк и закрывающих скобок.
Само количество не так страшно: он лежит, есть не просит. Но два-три года назад я начал замечать, что всё чаще читаю и пытаюсь разобраться в коде, который на самом деле не работает в продакшен-окружении. То есть, по сути, мёртв.
Эту тенденцию заметил не только я. В Badoo поняли: наши высокооплачиваемые инженеры постоянно тратят время на мёртвый код.
Читать полностью »
Фольклор программистов и инженеров (часть 1)
2020-08-18 в 7:00, admin, рубрики: Блог компании NIX, инженерные системы, истории из жизни, Программирование, фольклор, Читальный зал
Это подборка историй из интернета о том, как у багов иногда бывают совершенно невероятные проявления. Возможно, вам тоже есть что рассказать.
Читать полностью »
VKWave — фреймворк для разработки ботов ВКонтакте
2020-08-16 в 13:03, admin, рубрики: api, asyncio, python, vkwave, Вконтакте API, Программирование
Привет!
Сегодня я хочу рассказать о замечательной библиотеке для разработке ботов ВКонтакте с помощью языка программирования Python.
VKWave
VKWave — это фреймворк для разработки ботов ВКонтакте, написанный с помощью asyncio. Основные цели проекта — дать возможность разработчику конфигурировать фреймворк максимально под себя, в тоже время обеспечивая достойную скорость разработки.

