Рубрика «Программирование» - 455

За последние несколько месяцев мы в BitClave услышали о большом количестве новых блокчейн-проектов, применяющих блокчейн во всех мыслимых и немыслимых сферах. Надеюсь вы понимаете, что один лишь факт использования блокчейна в проекте не придает ему никаких суперспособностей. Мы проанализировали ситуацию и рады представить вам наше текущее видение того, как использовать блокчейн правильным образом. Эта статья поможем вам определить заслуживает ли проект вашего времени, денег и сил. Также в статье имеется упрощенный пример того, как блокчейн может быть внедрен в рынок интернет-рекламы.

image
Читать полностью »

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

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

image

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

В моём прошлом посте я рассказывал о хакатонах. Разных, хороших. Настолько хороших, что и внутри компании захотелось устроить собственные соревнования. В посте расскажу, как проходили хакатоны в Avito, какие проекты реализовали, про техничку с полторашкой, кодокатицу, свидетеля столовой и носочки с котиками.

Куда катится техничка с полторашкой: хакатоны в Avito - 1

Читать полностью »

Однажды попалась мне игра пентамино, где было необходимо уложить 13 фигурок в квадрат 8 на 8. После некоторого периода времени, втечение которого я безуспешно пытался решить эту задачу, я решил, что необходимо написать программу, которая бы делала это за меня. Для этого необходимо было выбрать алгоритм решения. Первое, что приходит на ум — это обычный алгоритм ветвей и границ, когда фигурки укладываются одна за другой примыкая друг к другу (алгоритм с танцующими ссылками здесь не подходит, поскольку фигурки разные). Для ускорения этого алгоритма обычно используются различные эвристики, например, предпочтение отдается ветвлению с наименьшим количеством вариантов. Можно придумать и реализовать и другие эвристики в этом алгоритме, но тут я подумал, что множество различных ухищрений для ускорения решения подобных задач уже реализовано в SAT солверах. Поэтому, необходимо перевести задачу на соответствующий математический язык и воспользоваться каким-либа SAT солвером. О том, как это было реализовано и какие получились результаты можно почитать под катом.
Читать полностью »

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

Этот раз не стал исключением и я задумал создать бота, который позволял бы с наибольшим комфортом и минимумом усилий смотреть любимые фильмы и сериалы, да еще и предоставлял контент в нескольких вариантах озвучки. Сказано — сделано. И теперь, когда железный друг человека радостно раздает пользователям их любимые шоу, я бы хотел поговорить о том, что сопутствовало созданию бота, какие проблемы вставали на моем пути и как они были решены. В первой главе я расскажу о Go глазами PHP-разработчика, во второй главе о поиске дзена для парсинга Кинопоиска, а в третьей — о недокументированной фиче Telegraph.

image
Читать полностью »

На мой взгляд один из лучших способов научится чему-то это поделится знаниями с другими людьми.

В этот раз мне понадобилось понять, как создаются пользовательские объекты в NanoCAD с помощью MultiCAD.NET API. В блоге компании Нанософт есть статья от 2013 года, в которой объясняются базовые вопросы создания пользовательских примитивов. Но согласитесь было бы не интересно, просто воспроизвести эту статью, поэтому мы ее немного дополним.

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

Под понятием «псевдо-3D» в данном случае я имею ввиду, что наши объекты не будут обладать свойствами модели твёрдого тела, то есть это будет просто набор связанных геометрических примитивов в трёхмерной системе координат. Может это не совсем корректный термин, но я пока лучше ничего не подобрал.

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

Так или иначе если вы интересуетесь: проектированием, САПР, NanoCAD, разработкой под .NET и в частности на C#, а также овцами и Улицей Сезам, то возможно эта статья как раз для вас.

Вам тоже интересно причем тут овцы и Улица Сезам? Тогда милости прошу под кат.

«Как баран на новые ворота» или пользовательские «псевдо-3D» объекты в NanoCAD с помощью MultiCAD.NET API - 1
Читать полностью »

Доводилось ли тебе, дорогой читатель, когда-нибудь писать рассказы? Может быть это было сочинение в школе или эссе на тему «Как я провел Лето» «Смысл жизни» на факультете психологии в университете. Всегда от пишущего требовали одного, донести свои мысли четко и, по возможности, интересно. Мне хотелось бы поделиться с тобой историей о том, как я писал рассказ, в котором объяснял почему $inline$2+2=4$inline$ и почему $inline$2+2*2=6$inline$. Статья несет в себе цель не сколько описать техническую сторону программирования, сколько ее эстетическую часть и, что главное, описать психологию программирования. Сопровождаться сия статья будет ссылками на коммиты в GitHub.

Читать полностью »

image

Джеф Нельсон (Jeff Nelson), придумал Chromebook, #Xoogler.

Думаю, этот вопрос следует разбить на три разных вопроса или по-другому его сформулировать. Давайте разделим вот так:

  1. Является ли возрастной признак определяющим в карьере программиста?
  2. Не стоит ли мне подумать о карьере технического руководителя вместо должности наемного профессионала?
  3. Является ли совершенствование себя как разработчик софта тупиковым вариантом карьеры?

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

Причины, по которым возрастная тенденция наблюдается в компьютерной индустрии, многообразны и не свидетельствуют о наличии какого-то сговора не нанимать сотрудников старшего возраста. Во-первых, некоторые компании считают, что легче всего набирать новых работников из числа выпускников топовых вузов (Массачусетского института, Стенфорда и т.д.). Недавние выпускники дешево обходятся. У них стабильный уровень подготовки. У них нет отрицательного опыта работы в других компаниях. Они как чистый лист, поэтому в какой-то степени их легче обучить корпоративной культуре, методологии разработки ПО, передовым технологиям и объединить с такими же выпускниками для работы над новым стартапом.
Читать полностью »

Введение

В предыдущей статье был описан процесс превращения Qt Creator в полноценную IDE для проектов на платформе Arduino. Шаги были описаны подробно, но без описания смысла происходящего, поэтому эффект от такой статьи небольшой. В каждом конкретном случае могут возникать и возникают разнообразные нюансы и разобраться в них без понимания того как устроен проект сложно.

Поэтому в данной заметке мы разберемся в структуре и настройках проекта.
Читать полностью »

Введение

Платформа Arduino популярна, независимо от того, ругают её или хвалят. Её создателям удалось снизить порог вхождения до уровня несколько кликов мышью + пара строк кода и вуаля — вот вам моргающий светодиодик. И вообще, для быстрого прототипирования поделок на AVR, Arduino вещь крайне удобная. Единственное что им не удалось это IDE, которую и IDE-то назвать сложно. Среди функций IDE она обеспечивает только одну — автоматизацию создания и сборки проекта.

Для пользователей Windows существует альтернатива: MS Visual Studio Community + плагин vMicro который позволяет писать скетчи, но уже со всеми вкусностями, предоставляемыми IDE. Плагин без проблем качается в самой студии через меню «Инструменты» и в триале работает сколько угодно. Платная версия в теории поддерживает пошаговую отладку, но меня, как владельца лицензионной копии vMicro они не очень-то и впечатлили.

Для пользователей Linux всё как всегда: хотим хорошую IDE — выбираем «жертву» и пытаемся прикрутить к ней нужный функционал. Существуют решения на базе Eclipse, но я не люблю эклипс, о чём уже однажды писал. Я мирюсь с ним как с неизбежным злом, когда под рукой нет вообще ничего подходящего. Из всех бесплатных IDE я больше всего уважаю мощный и замечательный Qt Creator, в котором я и моя команда работаем уже больше года. Поэтому и рассказывать буду о том, как превратить его в среду разработки для Arduino

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js