Search
Write a publication
Pull to refresh
170
4

java / open source

Send message

Пора обновить ваш монитор

Reading time16 min
Views186K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →

Опыт построения умного дома на Raspberry Pi и открытой платформе OpenHAB. Часть 1

Reading time6 min
Views40K

Два года назад у нас появился загородный дом. Только сейчас, во время пандемии, мы поняли, что это была инвестиция, а не трата бабла повышение уровня жизни. Изначально планировали жить на два дома — квартира в городе и дом за городом. Поэтому появилось желание автоматизировать его по максимуму. Ну, как минимум, чтобы зимой можно было прогреть дом перед приездом.


Эта статья не является полной инструкцией что и как делать, а больше сборником куда копать и что почитать или посмотреть, чтобы сделать самому.


Тем не менее вы найдете для себя много полезной информации и ссылок, а главное при минимальных навыках поиска информации в интернете вы сможете сами найти все необходимые пошаговые инструкции. В наш век DIY (Do It Yourself, самоделки), вы все можете получить в виде 5-20 минутных делай-как-я видео инструкций. Нынче никто уже не пишет по-старинке.

Нехватка кадров, о чём, где, для кого, а есть ли на самом деле?

Reading time6 min
Views18K
Россия, страна очень интересная, сейчас будет не много лирики и оффтопа но они понадобятся позже для некоторого понимания ситуации.
Читать дальше →

Смотрим внутренности отечественного 28нм MIPS процессора — Baikal-T1

Reading time2 min
Views80K
Думаю многие уже слышали про реализованный московскими разработчиками Байкал Электроникс процессор Байкал-Т1 — с двумя ядрами Imagination Technologies P5600 MIPS 32 r5 и набортным 10GbE. Байкал оказался первым, кто реализовал в кремнии это ядро.

Терзал этот процессор я с перерывами больше года — но наконец под катом могу поделиться результатами.
Читать дальше →

Почему полётов стало больше, а авиапроисшествий — нет

Reading time13 min
Views48K

Крэш-тесты самолёта: затейники из NASA уронили «Боинг 720» на радиоуправлении, заполненный манекенами, чтобы посмотреть, что будет.

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

В 2019 по миру выполнено почти 36 миллионов коммерческих рейсов. Из них 19 миллионов как раз на лайнерах четвёртого поколения, 15 из которых — рейсы Airbus. Так что можно сказать, что европейский авиапроизводитель хорошо разбирается в этом вопросе, любит ковырять статистику и делать прогнозы. Сейчас мы возьмём их большой отчёт «A Statistical Analysis of Commercial Aviation Accidents 1958-2019», добавим «Flight Control Systems: Practical Issues in Design and Implementation» Роджера Пратта и попробуем разобраться, что же поменялось.

Ну и заодно посмотрим, где же можно здорово ошибиться с современными самолётами.
Читать дальше →

Компания Ampere анонсировала 128-ядерный ARM-процессор Altra Max

Reading time3 min
Views19K


Несколько месяцев назад калифорнийская компания Ampere представила первый в отрасли 80-ядерный ARM-процессор Ampere Altra. Этот чип на 64-битной архитектуре предназначен для установки в серверное оборудование, он не для потребительского рынка. Сейчас же компания расширила линейку процессоров, дополнив ее 128-ядерной моделью.

Altra Max совместим с другими моделями Altra и могут устанавливаться в серверы, где уже стоят процессоры компании той же линейки. Вся она базируется на дизайне ARM Neoverse N1, он же лежит в основе процессоров AWS Graviton2 от AWS. Компания Ampere заявила, что новые процессоры позволят повысить производительность оборудования, в чем заинтересованы поставщики облачных услуг.
Читать дальше →

Используем Xtend для прикладной кодогенерации: сеанс чёрной магии с разоблачением

Reading time12 min
Views7.7K

Привет Хабр! Меня зовут Когунь Андрей. В КРОК я руковожу группой разработчиков Java (у нас большая распределённая по всей стране команда). Ещё я провожу встречи московского сообщества Java разработчиков JUG.MSK. Делаю это исключительно в корыстных целях: фотографируюсь там со всеми докладчиками, и однажды открою галерею с самыми интересными людьми в мире Java-разработки. Также помогаю делать конференции для разработчиков: JPoint, Joker и DevOops — в качестве члена программного комитета. Ну и для души, так сказать, преподаю Java-технологии студентам.


В КРОК мы с коллегами в основном занимаемся заказной разработкой. Одно из наших направлений — так называемые учётные системы. Их надо делать по возможности быстро. Они типовые, различия обычно наблюдаются только в доменной модели. Поэтому мы постоянно боремся за то, чтобы писать меньше бойлерплейт-кода, будь то тривиальные геттеры-сеттеры, конструкторы и т.п. или CRUD-репозитории и контроллеры. Мы для этого активно пользуем кодогенерацию.


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


Читать дальше →

Об оценках сроков в разработке ПО

Reading time8 min
Views44K
В течение всей истории разработки ПО мы искали надежные способы оценки времени на реализацию задач и проектов. Но и спустя более чем 60 лет существования отрасли наши прогнозы все еще оставляют желать лучшего. Может быть, дело не в том, как именно мы пытаемся оценивать, а в том, что мы вообще опираемся на оценки?

К примеру, возьмите методологию Scrum, по которой сегодня работают многие компании. Центральная идея Scrum — брать в спринт не больше задач, чем ваша команда способна за это время выполнить. На первый взгляд, звучит разумно. К сожалению, слишком часто на практике этот подход приводит к замедлению работы команды в обмен на иллюзию планирования. Позвольте объяснить, почему.
Читать дальше →

Полный цикл создания устройства и работа с фабриками в Китае

Reading time11 min
Views25K
Меня зовут Андрей Холодный. Весь мой опыт связан с телекомом: я работал практически во всех крупных провайдерах связи и даже руководил своим стартапом. На моих проектах регулярно возникали задачи разработки и выбора поставщиков роутеров и ТВ-приставок. С конца 2018 года я применяю этот опыт в Яндексе: руковожу командой, которая координирует разработку и производство устройств с Алисой.



Под катом — конспект моего недавнего доклада. В нем два больших блока: про этапы разработки устройства и про общение с фабриками в Китае. Надеюсь, конспект будет полезен тем, кто начинает думать о производстве собственных устройств.
Читать дальше →

Сколько инструкций процессора использует компилятор?

Reading time3 min
Views35K
Месяц назад я попытался сосчитать, сколько разных инструкций поддерживается современными процессорами, и насчитал 945 в Ice Lake. Комментаторы затронули интересный вопрос: какая часть всего этого разнообразия реально используется компиляторами? Например, некто Pepijn de Vos в 2016 подсчитал, сколько разных инструкций задействовано в бинарниках у него в /usr/bin, и насчитал 411 — т.е. примерно треть всех инструкций x86_64, существовавших на тот момент, не использовались ни в одной из стандартных программ в его ОС. Другая любопытная его находка — что код для x86_64 на треть состоит из инструкций mov. (В общем-то известно, что одних инструкций mov достаточно, чтобы написать любую программу.)

Я решил развить исследование de Vos, взяв в качестве «эталонного кода» компилятор LLVM/Clang. У него сразу несколько преимуществ перед содержимым /usr/bin неназванной версии неназванной ОС:

  1. С ним удобно работать: это один огромный бинарник, по размеру сопоставимый со всем содержимым /usr/bin среднестатистического линукса;
  2. Он позволяет сравнить разные ISA: на releases.llvm.org/download.html доступны официальные бинарники для x86, ARM, SPARC, MIPS и PowerPC;
  3. Он позволяет отследить исторические тренды: официальные бинарники доступны для всех релизов начиная с 2003;
  4. Наконец, в исследовании компиляторов логично использовать компилятор и в качестве подопытного объекта :-)

Начну со статистики по мартовскому релизу LLVM 10.0:
ISA Размер бинарника Размер секции .text Общее число инструкций Число разных инструкций
AArch64   97 МБ 74 МБ 13,814,975 195
ARMv7A 101 МБ 80 МБ 15,621,010 308
i386 106 МБ 88 МБ 20,138,657 122
PowerPC64LE 108 МБ 89 МБ 17,208,502 288
SPARCv9 129 МБ 105 МБ 19,993,362 122
x86_64 107 МБ 87 МБ 15,281,299 203
В прошлом топике комментаторы упомянули, что самый компактный код у них получается для SPARC. Здесь же видим, что бинарник для AArch64 оказывается на треть меньше что по размеру, что по общему числу инструкций.

А вот распределение по числу инструкций:
Читать дальше →

Обзор стоматологического 3D-сканера Medit Identica T300

Reading time4 min
Views1.6K

В новом обзоре познакомим вас с устройством для быстрого создания моделей стоматологических оттисков. Представляем 3D-сканер Medit Identica T300.

Помимо собственного программного обеспечения, входящего в комплект поставки, корейский производитель предлагает пользователям своих продуктов облачный сервер Medit Link для синхронизации работы различных специалистов.

Мы подробно расскажем о функционале и особенностях сканера Identica T300 и прилагаемых программных продуктов.

3D ML. Часть 2: функции потерь в задачах 3D ML

Reading time22 min
Views13K


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


В этой заметке мы поговорим о том, какие функции ошибки (Loss functions) алгоритмов используются в 3D ML, какие из них можно использовать в качеств метрик качества (metrics), а какие — в качестве регуляризаторов (regularizers).

Читать дальше →

3D ML. Часть 1: формы представления 3D-данных

Reading time25 min
Views29K


Сегодня появляется все больше 3D датасетов и задач, связанных с 3D данными. Это связано с развитием робототехники и машинного зрения, технологий виртуальной и дополненной реальности, технологий медицинского и промышленного сканирования. Алгоритмы машинного обучения помогают решать сложные задачи, в которых необходимо классифицировать трехмерные объекты, восстанавливать недостающую информацию о таких объектах, или же порождать новые. Несмотря на достигнутые успехи, в области 3D ML остаются еще нерешенными ряд задач, и эта серия заметок призвана популяризировать направление среди русскоязычного сообщества.


В первой части будут рассмотрены основные формы и форматы представления пространственных данных и их особенности.

Читать дальше →

Жесткий цигун с условными знаками или зачем нужен geometry generator

Reading time15 min
Views6.4K


Требования заказчика к условным обозначениям на картах кажутся вам нереальными? Дальше вы узнаете, как с помощью geometry generator, QGIS и Python сделать так, чтобы ваши условники были лучше всех.

Читать дальше →

PyTrace — Time Travel Debugger для Python

Reading time2 min
Views7K
Мне часто приходится сталкиваться с отладкой.

Иногда я ставлю точку останова, но понимаю что уже слишком поздно, и надо начинать все сначала.

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

Усложняется все тем, что приходится работать с унаследованным кодом, который иногда сложно понять.

Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?

Встречайте,

PyTrace — это трейсер с возможностями Time-Travel Debugging-а

image

Мама, я теперь стример

Reading time4 min
Views6.9K
Всем привет, меня зовут Ваня, я тимлид в Tinkoff.ru. По совместительству — член программного комитета Frontend Conf и РИТ++. Возможно, вам будут интересны мои мысли по поводу онлайн-выступлений.



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

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

Умная хрущёвка на максималках

Reading time10 min
Views63K
Моя статья про проводной умный дом была популярной на Хабре (159 тысяч просмотров) — в ней я описал положительный опыт от идеи до реализации умного дома в новостройке.

Вместе с тем, у меня есть опыт интеграции и со старыми домами — квартира в типовом советском пятиэтажном кирпичном доме семидесятых годов постройки уже 5 лет автоматизирована. Она имеет единую панель управления для разных подсистем и не зависит от облачных сервисов. В отличии от новостройки, эта квартира в пятиэтажке была автоматизирована не сразу, а поэтапно за несколько лет, по мере возникновения интереса к разным элементам управления и контроля, таким как:

  1. мониторинг приборов учета;
  2. датчики контроля: домофона, температуры, шума, открытия дверей, ...;
  3. единая панель управления умным домом;
  4. подъездное видеонаблюдение;
  5. настенный дисплей для текущего времени и температуры за окном;
  6. освещение в квартире, включая кнопку «выключить всё»;
  7. удаленное обесточивание квартиры;
  8. удаленное перекрытие воды.


3D модель этой двухкомнатной квартиры 47 кв.м, которая была автоматизирована, нарисованная в Sweet Home 3D
Хрущёвка в полном фарше

Ваш профессиональный спад придет (гораздо) раньше, чем вы думаете

Reading time24 min
Views63K
Вот как извлечь из него максимум.


Изображение: Люси Гутьеррес

«Неправда, что ты больше никому не нужен».

Эти слова исходили от пожилой женщины, сидящей позади меня на позднем вечернем рейсе из Лос-Анджелеса в Вашингтон. В самолете было темно и тихо. Мужчина, которого я счел за ее мужа, почти беззвучно пробормотал в ответ что-то вроде «Лучше бы я был мертв».

И снова женщина: «О, прекрати это говорить».

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

Когда в конце рейса включился свет, я наконец-то увидел опустошенного человека. Я был в шоке. Я узнал его – он был и остается знаменитым на весь мир. Тогда, в возрасте восьмидесяти лет, он был любим как герой за мужество, патриотизм и достижения многих десятков лет назад.
Читать дальше →

Как платить программистам

Reading time5 min
Views30K
Данная статья — это ответ на эту статью.

Ну что ж. Если с представлением о том, как управлять программистами, всё настолько плохо, придётся написать тут, как всё на самом деле.

И не забываем читать классику — «Путь камикадзе: аудит менеджмента безнадёжного проекта» и «Мифический человеко-месяц».

Итак. Я программист.
Ниже — тезисы исходной статьи, под ними — текст, почему они не верны, или комментарий.

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

Да. Чтобы контролировать вы должны вникать, не каждый начальник это умеет, а если ПО не является выпускаемым компанией продуктом (будь то торговля софтом или сложный гаджет с его использованием в процессоре), то не каждому начальнику и стоит тратить на это время. Например, если руководитель классно экономически обсчитывает коттеджные посёлки, какая разница знает ли он чем занят it отдел.

«Держите зарплаты в секрете»

В фирмах, занятых рекламой и дизайном (и следовательно часы сотрудников просто перепродают, там полезны программисты iOs), а также тех фирмах где объективные причины высокой текучки (постоянно меняется стек требуемых технологий) — да. В фирмах с очень низкой текучкой кадров — особой разницы нет.

«Повышайте случайно»

— нет. Это такая грубая ошибка как автомобилисту ехать на красный свет, останавливаться на перекрёстке и поворачивать на мосту. За такие действия увольнение начальника должно прилетать в течении суток. И прилетит.

«Никаких конференций. Не разрешайте им посещать митапы»

Большинство программистов, кого я знаю, этого и не делают. Это модно в основном у длинноволосых студентов вузов. А запретить посещать митапы не в ваших силах. Рабства нет, люди живут не у вас на фазенде.
Читать дальше →

Information

Rating
487-th
Location
Россия
Registered
Activity