All streams
Search
Write a publication
Pull to refresh
4
0
Андрей Васильев @vap1977

Спец по распределенным встраиваемым системам

Send message

Вот именно поэтому я и не люблю энфорсинг чего угодно на уровне коммит-хуков, и поэтому же не люблю непрошенные или слишком легко делаемые "reformat code". Если это небольшая локальная правка в легаси-файле — то надо просто поправить, придерживаясь стиля, принятого в этом конкретном файле. Даже если это неудобно и нужно руками в нужных местах пробелы добавлять. А не выдавать коммит, в котором мешанина.

Так может, просто заменить почти всю ту толстую пачку правил, которые это обеспечивают, на ровно одно правило — в коммите можно править чужой стиль только в том случае, если в этом коммите правится только стиль, и в описании коммита явно написано, что это правка стиля?
И, кстати, если кто-то бездумно жмет "Reformat code" в IDE и потом коммитит весь получившийся трэш ради тщательно спрятанной в нем одной строчки содержательных изменений — он должен перестать это делать, потому что это сильно мешает коллегам.

Ну так-то да. Но потом джуны начинают морщить лоб, рвать волосы и терять самооценку, попытавшись создать std::begin от массива, переданного в параметрах функции — "ну как же, ну ведь с глобальным массивом же работало!", и все это потому, что массив, переданный через параметры, имеет sizeof () равный sizeof-у указателя, а не всего массива, и итератор не создается :)
Не подумайте, что я против итераторов или алгоритмов. Просто лично у меня как-то с ними не складывается. Не особо нужны, поэтому в голове не задерживаются, приходится лазать в книжку, поэтому стараюсь не использовать, поэтому в голове не задерживаются, и так далее, самоподдерживающийся процесс. Да и на плюсах я уже очень давно не пишу… А когда писал, плюсы были совсем не такие, как сейчас.

Тот чип, что имею ввиду — это младший альтеровский Cyclone-IV, стоит меньше $10 в розницу, паябельный вручную корпус, 6 с лишним тысяч триггеров, 30 штук блоков памяти по 9 килобит. Я на нем расширение ввода-вывода для своего нынешнего устройства делал: пачка UART-ов (больше дюжины) через быстрый SPI с удобным для основного процессора протоколом, развязка клоковых доменов, пачка GPIO-шек (у основного процессора со свободными пинами напряженка), софтверно-переключаемые внешние интерфейсы, конфигурируемые пины плат расширения. Все это удовольствие на верилоге написалось с нуля за пару недель без предыдущего опыта работы на verilog, и спасло меня от громадной возни с кучей противоестественных ограничений, которых было бы уйма, если бы я попытался все сделать на основном процессоре.
Кстати, бесплатность софта сохраняется вплоть до очень немаленьких чипов. Вроде бы 4-е циклоны все поддерживаются на бесплатном квартусе. Ну а когда один чип стоит за тысячу баксов — тут уж и софт можно купить.

Так задач для FPGA немного, тем более интересных пионерам.

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

Увы, имхо, misra c требует вещей, которые после некоторого порога сложности проекта (очень небольшого) приводят не к упрощению и большей контролируемости проекта, а наоборот.

Да нет там никакого особенного порога входа. Отладочная плата для "пионерских поделок" стоит $40, софт бесплатный, хороший учебник — бесплатный, чип со вполне приличной для многих задач емкостью — от $6 до $12.
Была бы нормальная задача, а реализовать — несложно.

Самое интересное в STL — контейнеры, а вот их я бы неопытному разработчику крайне не советовал применять на микроконтроллерах. Да, их можно "правильно приготовить", но многие ли новички знают, как именно?
Вообще, имхо, при программировании под микроконтроллеры весьма разумно перенять подходы, принятые в линуксовом ядре. Списки, таскание контекста в предвыделенных структурах и жонглирование членством их в списках, структуры данных с использованием container_of для доступа к содержимому, и все такое прочее.

Я джорнаду (вроде бы 680-ю) видел в Микробите на Кронверкском, если воспоминания не перепутались. На отдельном стеклянном стенде сразу у входа. Воспринял тогда как какую-то совершенно неразумную роскошь, хоть и очень крутую. Ну а потом, уже сильно позже, сам купил с рук 690-ю, тоже ставил jLime, тоже поднимал wifi и блютус на 16-битных не-cardbus-овских pcmcia. Даже по работе немного пользовался, было удобно в поле по wifi цепляться к прибору ssh-ем, особенно учитывая семь часов от батареи.
А потом джорнада отошла бывшей жене, она на ней переводами занималась.

Здравствуйте!
Наткнулся на вашу статью.
Очень заинтересовали следующие статьи цикла — как раз сейчас пытаюсь поднимать OpenLinux, и пока что не очень получается.
Есть ли надежда их в ближайшее время увидеть? :)


P.S. Извините за задвоенный комментарий, случайно отправил после первой строчки.

Причины могут быть какие угодно, сколь угодно фантастические. Но фантастику мы все же не рассматриваем.


Цитата в тему:


Я вижу, что по улице бежит Петрович с окровавленным топором и орет, что
он грохнул свою Клавдию, ибо в ней сидел зеленый бес.


Конечно, версий может быть множество.


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


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


  3. Что бес действительно был. Зеленый-презеленый.



И если адвокаты или авторы криминальных романов будут разбирать эти
версии — это их право.

В данном случае зловредные действия — это и есть несоответствие модели (подразумевающей честный подсчет голосов) реальности (такового подсчета не подразумевающей).
Тем, что оно специализируется на пропаганде. Причем еще и не только крайне тенденциозно подобранной, но еще и лживой. То есть — это уже политика, причем очень грязная ее разновидность.
Если что, чтобы сразу отсечь крикунов «сначала добейся», мои изделия там есть, и даже с разных мест работы. И в этих изделиях мой вклад — большой, не рядом стоял, а проектировал и реализовывал базовую архитуктуру, иногда — был главным по принципу единственности.
Да он там и меня предлагал забанить (ну ладно, не предлагал — всего лишь обосновывал, как было бы хорошо, если бы всех таких как я можно было централизованно забанить. Но имхо разница — чисто на уровне придирки к словам).
Кстати, Chronicler предлагал сделать всего лишь очень маленькое подмножество того, что предлагал vaily, но опять-таки претензии есть к Chronicler-у, но нет к vaily.
Либертарианцы так не считают (это я про первый пункт, про убийство коммунистов). Как специалист говорю.
Либо для всех — и для меня тоже. Либо, если кто-то считает, что у меня не должно быть свободы, то у него тоже не должно быть свободы.
Вы очень несимметрично подходите к вопросу.
Некто А призывает забанить некоего Б, Б в ответ призывает забанить этого А, но у вас есть претензии к Б, а к А претензий нет.
Бизнесмены не господствующий класс.
Бизнесмен _ничего_ не может сделать с государством. Государство может сделать с бизнесменом вообще все, что захочет.
Последние три четверти века государства избавились от влияния бизнесменов, теперь бизнесмен может быть в лучшем случае просителем. И то ему придется очень сильно прогибаться, чтобы его просьбу вообще заметили.
В последние годы да, минпромторг взял за правило отдавать IP разработчику.
Но тут фишка еще в том, что кроме разработчика (того, кто в минпромторг вхож и кому «дадут») есть еще соисполнители, которые часто ключевую часть работы и делают, а им уже сложнее. И к тому же нужно клювом не щелкать, чтобы свои старые наработки случайно не отдать — заранее надо еще до начала работы суетиться с регистрацией своих разработок, а если прощелкал и не зарегистрировал, и в договоре не прописал (а кто ж даст мелкому соисполнителю всякое странное прописывать) — то полностью зависишь от добронамеренности головника. То есть, ссориться с ним нельзя, и возможно, придется делать «не свои» задачи за спасибо.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity