Как ни странно современная мировая робототехника на данный момент развивается на таком феномене как ROS и open-source. Да, по каким то причинам это в России непонято и малоизвестно. Но мы — русскоязычное сообщество ROS, — пытаемся это изменить и поддержать тех энтузиастов-робототехников, которые пишут открытый код для роботов. В этой статье хотелось бы раскрыть работу над таким начинанием в виде конкурса ROS пакетов, который идет сейчас.
Рубрика «Программирование» - 147
Приглашаем на конкурс разработки open-source пакетов на Robot Operating System
2020-10-02 в 13:39, admin, рубрики: open source, ROS, машинное обучение, Программирование, Разработка робототехники, робототехникаУлучшение Python-кода: 12 советов для начинающих
2020-10-02 в 9:15, admin, рубрики: python, Блог компании RUVDS.com, Программирование, разработкаВ мои обязанности входит наём Python-разработчиков. Если у заинтересовавшего меня специалиста есть GitHub-аккаунт — я туда загляну. Все так делают. Может быть, вы этого и не знаете, но ваш домашний проект, не набравший ни одной GitHub-звезды, может помочь вам в получении работы.
То же самое относится и к тестовым задачам, выдаваемым кандидатам на должность программиста. Как известно, мы, когда впервые видим человека, формируем первое впечатление о нём за 30 секунд. Это влияет на то, как мы будем, в дальнейшем, оценивать этого человека. Мне кажется несправедливым то, что люди, обладающие привлекательной внешностью, добиваются всего легче, чем все остальные. То же самое применимо и к коду. Некто смотрит на чей-то проект и что-то тут же бросается ему в глаза. Ошмётки старого кода в репозитории — это как крошки хлеба, застрявшие в бороде после завтрака. Они могут напрочь испортить первое впечатление. Может, бороды у вас и нет, но, думаю, вам и так всё ясно.
Обычно легко понять то, что некий код написан новичком. В этом материале я дам вам несколько советов о том, как обыграть кадровиков вроде меня и повысить свои шансы на получение приглашения на собеседование. При этом вас не должна мучить мысль о том, что, применяя эти советы, вы кого-то обманываете. Вы не делаете ничего дурного. Применяя те небольшие улучшения кода, о которых пойдёт речь, вы не только повышаете свои шансы на успешное прохождение собеседования, но и растёте как программист. Не могу сказать, что профессиональному росту способствует упор на заучивание алгоритмов или модулей стандартной библиотеки.
В чём разница между новичком и более опытным разработчиком? Новичок не работал с устаревшими кодовыми базами. Поэтому он не видит ценности в том, чтобы вкладывать время в написание кода, который легко поддерживать. Часто новички работают в одиночку. Они, в результате, не особенно заботятся о читабельности кода.
Читать полностью »
Лучшие IDE для Raspberry Pi
2020-10-01 в 13:15, admin, рубрики: diy или сделай сам, Raspberry Pi, Блог компании RUVDS.com, Программирование, программирование микроконтроллеров, разработка, Разработка на Raspberry PiRaspberry Pi — это, может, и не единственный одноплатный компьютер (single-board computer, SBC) на рынке, но он, определённо, является самым популярным. Raspberry Pi пользуется огромное количество людей, он является центром экосистемы, в которую входит множество официальных и неофициальных ресурсов и изделий — от книг и дополнительного оборудования до форумов и учебных курсов. Raspberry Pi снабжён отличной, поддерживаемой в актуальном состоянии документацией. Благодаря Raspberry Pi Foundation регулярно выходят новые модели SBC, появляются и усовершенствования моделей предыдущих поколений. Raspberry Pi, учитывая его серьёзную вычислительную мощность, отлично показывает себя в роли настольного компьютера. Он подходит и тем, кто занимается программированием.

Raspberry Pi
Из этого материала вы узнаете о том, почему Raspberry Pi имеет смысл рассматривать как компьютер, подходящий для разработчика ПО. Здесь же мы поговорим о выборе интегрированной среды разработки (integrated development environment, IDE). Среди рассмотренных IDE можно найти инструменты для программирования практически на любом языке.
Читать полностью »
Мой топ IT книг из прошлого века, актуальных до сих пор
2020-10-01 в 8:32, admin, рубрики: Алгоритмы, информатика, книги, книги по программированию, математика, Программирование, проектирование, Проектирование и рефакторинг, разработка, рефакторинг, Совершенный код, Читальный залВ этой статье автор предложил написать свои книги, которые относятся к разряду неувядающей классики. Я написал несколько книг в комментариях, а потом решил, что достойных книг гораздо больше, и решил написать статью. Если в оригинальной статье был сделан упор на электронику, то у меня будет упор на разработку программ.
Disclaimer: это мой личный топ из тех книг, которые я лично прочитал, и у которых первое издание было в прошлом веке, даже если она переиздавалась недавно (при условии актуальности именно того издания, которое было в прошлом веке).
Гугл-программисты. Как идиот набрал на работу идиотов
2020-09-29 в 4:21, admin, рубрики: Карьера в IT-индустрии, Программирование, управление персоналом, управление разработкой, черт знает чтоВ стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.
Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.
Вот этот опыт и замутил моё сознание. Настолько, что я решил поменять методику – подумал, что дело не в ней, а во мне. Я есть великий специалист по техническим собеседованиям.Читать полностью »
Архитектура интерпрайз-приложений может быть другой
2020-09-28 в 14:00, admin, рубрики: .net, .net core, C#, reinforced, архитектура приложений, базы данных, Программирование, Проектирование и рефакторинг
Меня раздражает традиционная архитектура бизнес-приложений — об этом я уже говорил. Я критикую — я предлагаю. Сейчас я расскажу, к чему меня привели поиски решений для проблем из предыдущей статьи.
Мне нравится перебирать архитектурные концепции. Всю жизнь я пытаюсь найти в области архитектуры и дизайна ПО что-то работающее и в то же время простое. Не требующее разрыва мозга для понимания и кардинальной смены парадигмы. Идей накопилось порядочно и я решил объединить лучшие из них в своём фреймворке — Reinforced.Tecture. Разработка таких штук даёт гигантское количество пищи для размышлений, я хочу ими поделиться.
Тексты про такие технические вещи обычно до ужаса нудные. Я честно постарался не нудить, поэтому мой текст получился слегка агрессивным. Если вам с этим норм и интересно почитать про архитектуры .NET-приложений — заходите.
Попробуем выдвинуть аргументы против Rust
2020-09-28 в 12:30, admin, рубрики: Rust, критика, Программирование, системное программирование, эффект ЛиндиНедавно я прочитал статью c критикой Rust. Хотя в ней было много правильных вещей, она мне не понравилось — слишком многое там очень спорно. В целом, я вообще не могу рекомендовать к прочтению никакой статьи с критикой Rust. Это нехорошо, ведь важно обсуждать недостатки, а шельмование низкокачественной и неумелой критики, к сожалению, заставляет пропустить мимо внимания действительно хорошие аргументы.
Итак, попробую привести аргументы против Rust.
Читать полностью »
История двух стандартных библиотек Си
2020-09-28 в 7:50, admin, рубрики: glibc, musl, musl-vs-glibc, Анализ и проектирование систем, безумие отладки, ненормальное программирование, Программирование, Си, системное программирование, стандартная библиотекаСегодня мне пришел баг-репорт от пользователя Debian, который скормил какую-то ерунду в утилиту scdoc и получил SIGSEGV. Исследование проблемы позволило мне провести отличное сравнение между musl libc и glibc. Для начала посмотрим на стектрейс:
==26267==ERROR: AddressSanitizer: SEGV on unknown address 0x7f9925764184
(pc 0x0000004c5d4d bp 0x000000000002 sp 0x7ffe7f8574d0 T0)
==26267==The signal is caused by a READ memory access.
0 0x4c5d4d in parse_text /scdoc/src/main.c:223:61
1 0x4c476c in parse_document /scdoc/src/main.c
2 0x4c3544 in main /scdoc/src/main.c:763:2
3 0x7f99252ab0b2 in __libc_start_main
/build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
4 0x41b3fd in _start (/scdoc/scdoc+0x41b3fd)
В исходниках на данной строчке написано вот что:
if (!isalnum(last) || ((p->flags & FORMAT_UNDERLINE) && !isalnum(next))) {
Подсказка: p — это корректный, ненулевой указатель. Переменные last и next имеют тип uint32_t. Сегфолт случается на втором вызове функции isalnum. И, самое важное: воспроизводится только при использовании glibc, но не musl libc. Если вам пришлось перечитать код несколько раз, вы не одиноки: тут попросту нечему вызывать сегфолт.Читать полностью »
Простой интерпретатор Lisp на Umka
2020-09-26 в 18:22, admin, рубрики: compiler, interpreter, интерпретатор, компилятор, Компиляторы, Программирование, функциональное программированиеРазработка моего статически типизированного скриптового языка Umka вошла в ту стадию, когда потребовалась проверка языковых возможностей на более сложных примерах, чем скрипты в пару десятков строк. Для этого я решил реализовать на своём языке интерпретатор Lisp. На это меня вдохновил педагогический эксперимент Роба Пайка, одного из создателей языка Go. Недавно Пайк опубликовал маленький интерпретатор Lisp на Go. Особенно впечатлило замечание Пайка, что описание интерпретатора заключено на одной странице 13 древнего Читать полностью »
Враг не пройдёт, или как помочь командам соблюдать стандарты разработки
2020-09-23 в 19:25, admin, рубрики: governance as a code, автоматизация, архитектура по, Блог компании Конференции Олега Бунина (Онтико), Программирование, тестирование, Тестирование веб-сервисовПодход governance as a code обеспечивает контроль соблюдения архитектурных принципов как в части конфигураций инфраструктуры, так и в части программного кода. Правила проверки каждого артефакта, будь то конфигурация k8s, список библиотек или даже описание сценария CI/CD, описаны специальным кодом проверки правил, имеют свой жизненный цикл, могут тестироваться и ничем не отличаются от обычного программного продукта.
Александр Токарев (Сбербанк) расскажет, как и что можно проверять в процессе разработки программного обеспечения, чтобы разрабатывать более безопасные и качественные приложения, и почему Сбербанк решил не использовать такие очевидные решения как SonarQube, а разработать собственное решение на базе Open Policy Agent без дополнительных пакетов над ним. Также Александр покажет, когда выбирать admission controller, когда использовать «чистый» Open Policy Agent, а когда можно обойтись без какого-либо контроля.
Александр поговорит о том, нужны ли стандарты, что такое язык Rego и что за крутой продукт Open Policy Agent, а также рассмотрит нетиповые кейсы его применения, как с ним работать, и как его использовать для контроля. Email Александра.



