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

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

image

То ли программирование — это легко, то ли я просто ничего не понимаю. MemeGenerator.net

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

Кодинг, программирование и стучание по клавишам

Большую часть времени на своей первой работе в сфере технологий я посвящал HTML, CSS и JavaScript. Я делал так, чтобы элементы вели себя тем или иным образом или плел с их помощью визуальные сюжеты. В то время я не думал о себе как о программисте, да и не хотел им тогда становиться. Лишь некоторое время спустя, когда я понял как делать другие вещи в NodeJS, PHP и MySQL, я начал рассматривать себя в этом качестве. Мешая в голове мысли о всем великом, что есть в программировании, я получил свою первую работу с «программистским» названием «инженер-разработчик ПО», в рамках которой я ежедневно и активно решал те или иные задачи.
Читать полностью »

CalculiX — довольно известный в узких кругах пре/постпроцессор и решатель для задач механики деформируемого твёрдого тела и задач механики жидкостей и газов. Основной код полностью написан коллективом из двух человек — их имена «в вольной русской транскрипции» Гидо Донт (решатель), Клаус Виттиг (пре/пост). Дополнительно к основному коду можно найти удобный функциональный графический Launcher для подготовки расчётного файла. Чуть более подробная информация есть в русской Вики, несколько лет назад вбитая мною и ещё парой неравнодушных пользователей (ETCartman и Пруль, привет! К слову, могу подозревать, что ETCartman написал CalculiX Launcher, но это история, покрытая тайнами никнейнов).

С точки зрения рядового российского инженера, CalculiX не столь важное и необходимое в повседневной работе ПО, чтобы обращать на него внимание. Совсем иначе на CalculiX могут взглянуть научные сотрудники, ранее проводившие вычислительные эксперименты в Abaqus — CalculiX фактически является открытым клоном Abaqus, поскольку родоначальник у них один — Гидо Донт.

Большие два плюса CalculiX — кроссплатформенность и открытость исходников. Большие два минуса — практически полная неизвестность среди инженеров в СНГ и несколько меньший функционал по сравнению с Abaqus. Тем не менее, я решился сделать небольшую заметку о том, как получить бинарник CalculiX с поддержкой решателя на CUDA, в слабой надежде, что кому-нибудь на просторах СНГ данная информация пригодится.
Читать полностью »

При решении задач электроники все методы хороши, если они устраивают ТЗ, бюджет и разработчика. Linux был мне неизвестен, но вместе с задачами, которые решаешь, растешь и сам. Этот пост расскажет о том, как применить компьютер с Ubuntu для связи большого компьютера с контроллером в соответствии со схемой:

Взгляд снизу вверх или Ubuntu Server для разработчика электроники. Часть 1 - 1

Статья описывает практику применения описанной техники и не ставит целью охватить все глубины и возможности современной аппаратуры. Это один из вариантов решения поставленной задачи.
Читать полностью »

Картинка для привлечения внимания
Картинка для привлечения внимания

На днях появилась подработка, поступил заказ записать скетч на ардуино. Простенький, но объёмный. С повторяющимися блоками. Нужно было управлять каждым портом Arduino Mega отдельно, при получении команды по Uart. Отправляешь символ — и светодиод (к примеру) загорается на определенное время. Написал скетч на 2 команды, скинул заказчику для тестов, получил предоплату. Дальше, нужно было масштабировать на все порты.

Для начала я честно попробовал руками. Написав первые 26 #define, энтузиазм иссяк. Я пошел подышать свежим воздухом, и вспомнил, что у меня на ПК (Win 7 x64), уже установлен Python 3.6 из дистрибутива Anaconda. Кстати, это наиболее удобный способ установки Python`а на Windows, т.к. всё уже включено и настроено по умолчанию, и есть пакетный менеджер.

Итак, приступим.

Создаем папку, в ней пустой файл, я назвал его «arduino_gen.py» и bat файл «start_py.bat» со следующим содержимым:

python.exe arduino_gen.py > code_out.txt
@pause

Этот файл нам потребуется, для запуска программы на Python`е
Теперь мы напишем программку, которая сгенерирует нам необходимый код для Arduino.
Читать полностью »

В конце мая я оказался среди слушателей конференции Scala Days в Копенгагене. Одним из ключевых спикеров был создатель языка Scala Мартин Одерский. Он рассказал о развитии языка и, в частности, о разработке компилятора, названного Dotty. Планируется, что на основе Dotty будет разработан новый компилятор для версии 3.0.

Мартин не раз выступал на эту тему, и я бы хотел собрать здесь всю актуальную информацию о Dotty – новые ключевые возможности и элементы, удаленные за ненадобностью.

Dotty – будущее языка Scala - 1
Мартин Одерский. План развития Scala на ближайшие несколько лет

Этот пост будет полезен и знатокам, и совсем новичкам, для которых разговор о Dotty я предваряю рассказом об особенностях Scala, а также о том, что лежит в его математической основе.
Читать полностью »

Оригинал статьи: https://github.com/blu/ascii_pruner
Автор: Мартин Кръстев

Один мой друг обратил мое внимание на интересную статью на habrahabr.ru — русский перевод статьи Дэниела Лемира Быстрое удаление пробелов из строк на процессорах ARM. Эта статья заинтриговала меня по двум причинам: во-первых, кто-то на самом деле потратил время и усилия по поиску оптимального решения общей проблемы на не-x86 архитектуре (ура!), а во-вторых, результаты автор дал в конце статьи немного озадачили меня: порядка 6-ти кратное преимущество для Intel? Автор сделал однозначный вывод, что ARM-у ну очень далеко по соотношению «эффективность на такт» до «большого железа» от Интела в этой простой задаче.

Вызов принят!

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

Как контролировать семейный бюджет?

image

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

Я подумал, что меня устроит вариант, если каждый день мне будет приходить уведомление о том, сколько денег у меня ещё осталось в этом месяце. То есть я бы устанавливал бюджет на месяц, и что-то бы считало мои траты и каждый день посылало отчёт о состоянии бюджета.

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

Тестирование в Badoo «с высоты птичьего полёта» - 1

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

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

Введение

MPS — это среда разработки языков программирования на платформе Intellij Idea. Она предоставляет возможность моделировать языки программирования, описывать структуры, сосредотачиваясь конкретно на дизайне и бизнес-логике, не отвлекаясь на парсеры, лексеры и различные сторонние фичи языка. Что нужно сразу обозначить: язык, который разрабатывается с помощью MPS, не компилируется в рабочую программу. Чаще всего он генерируется в модели других языков либо в текстовую форму.

Почему я решил написать этот пост? Я считаю, что это очень недооцененная возможность, а недооценена она потому что порог вхождения очень высок, плюс это один из самых непопулярных продуктов JetBrains.

Документация очень подробная, описывает все возможности, но если нет осознания «что я делаю и зачем мне это делать», то она вряд ли будет полезна. Также есть серия уроков от JetBrains на YouTube, но опять же, я более-менее начал понимать, что происходит, только после двух просмотров всей серии и досканального изучения предлагаемых sample проектов.

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

Секция безопасной разработки на PHDays VII: итоги встречи сообщества PDUG - 1

24 мая на площадке форума PHDays VII прошло очередное мероприятие сообщества Positive Development User Group. Пока за стеной хакеры увлеченно (и весьма успешно) атаковали инфраструктуру вымышленного города, мы разговаривали о том, как разработчики могут сделать свои приложения неуязвимыми для взлома.

Что из этого вышло, смотрите под катом — там собраны презентации и видеозаписи докладов.Читать полностью »


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