И ещё 21 рабочее место удалёнщиков

Содержание

Рабочие места команды CSSSR

В студии CSSSR все работают удалённо, поэтому ребята прислали нам целую пачку фотографий.


Феликс Экстер:

Практически всегда работаю дома в своей комнате. Удобен большой стол. Минималистичное рабочее место — это ноутбук, телефон, мышка и кошка Космос.

Татьяна Цветкова, js-разработчица и верстальщица:

Работаю дома. Детей нет, есть собака и коты. После работы обычно еду на тренировку в конюшню, поэтому сидеть дома не устаю.

В реальной жизни:

Если прибраться:

Кирилл Корсун, JS-юнлинг:

Вот так я работал в Китае:

Евгений Вецель, ведущий программист JS:

Балкон с тройным зеркальным остекленением, с кондиционером и теплым полом. За спиной всегда готовые кроссовки, стоящие на беговой дорожке, и крепление для планшета. Два легко вращающихся монитора и экран ноутбука (для чатов). Механическая клавиатура Leopold на topre клавишах. Беспроводной трекбол — спасение от профболезней программистов. Apple-наушники с микрофоном.

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

Минусы — «резко континентальный» климат, солнце превращало балкон в 40 градусную теплицу (даже ноутбук чуть вздулся от жары), поэтому задумывать балкон как постоянный кабинет, означает запланировать приобретение кондиционера. Я сторонник того, чтобы приучать организм к тому, что если ты одел рабочую одежду, взял большую кружку воды, включил звук идущего поезда (мой бзик, изолирует от шумов и задает ритм) сел в свой кабинет — то ты работаешь. Если ты захотел прокрастинировать, то бери планшет и прокрастинируй сколько влезет, но делать ты это можешь только на беговой дорожке. Привычка вырабатывается 21 день, но потом становится легче.

Ян Шевцов, начинающий верстальщик:

Никита Голубов, JS-разработчик:

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

Вадим Лобуренко, верстальщик:

Владислав Алеев, верстальщик:

Живу с девушкой, она художница. Большую часть дня, а, бывает, и ночи, провожу в отдельной комнате, в которой есть всё необходимое — компьютеры, книжный шкаф и кровать.Ничего лишнего. В перерывах выхожу подышать в парк.


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

Елизавета Яновская, исполнительный директор:

Переезжаю с места на место, из страны в страну. Сейчас живу в Батуми, Грузия. Полюбила работать в Шератоне, потому что по утрам хожу сюда в бассейн, а днем и вечером пользуюсь их интернетом со скоростью в 20 мб/с.

Места для тихой работы в одиночестве

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

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

Клавиатура и монитор

Боль­ше все­го про­грам­ми­сты вза­и­мо­дей­ству­ют с мони­то­ром и кла­ви­а­ту­рой. Тут ситу­а­ция такая.

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

Меха­ни­че­ская кла­ви­а­ту­ра с длин­ным ходом кла­виш.

Одно вре­мя были попу­ляр­ны эрго­но­ми­че­ские кла­ви­а­ту­ры в фор­ме… бана­на? вол­ны? Сей­час их про­дол­жа­ют исполь­зо­вать толь­ко те, кто при­вык к ним в нача­ле двух­ты­сяч­ных.

Кла­ви­а­ту­ра Microsoft Sculpt выгля­дит кру­то и сде­ла­на доб­рот­но. Печа­тать на ней удоб­но, и люди, кото­рые при­вык­ли к таким кла­ви­а­ту­рам, ника­кие дру­гие уже тер­петь не могут. Но при­вы­кать к ним необя­за­тель­но — про­стые пря­мые кла­ви­а­ту­ры тоже очень даже ниче­го.

Про­грам­ми­сту нужен боль­шой мони­тор, что­бы одно­вре­мен­но видеть мно­го кода, парал­лель­но откры­тых фай­лов, отлад­чи­ков и т. д. Если мони­тор сверх­вы­со­ко­го раз­ре­ше­ния (4К), то текст будет выгля­деть кра­си­во и глад­ко; если стан­дарт­но­го — он про­сто будет намно­го дешев­ле. Неве­ро­ят­ная цве­то­пе­ре­да­ча и кон­траст­ность для про­грам­ми­ста не име­ет боль­шо­го смыс­ла, но поче­му бы и не пора­до­вать себя?

FOSS News №30 – дайджест новостей свободного и открытого ПО за 17–23 августа 2020 года

Всем привет! Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире. Этот выпуск получился особенно серьёзным по уровню поднятых вопросов. Разбираем проблемы Mozilla и рассматриваем вопрос почему это касается не только одной компании, отмечаем 20-летие FreeBSD Foundation, узнаём об основании отдельного от Mozilla фонда Rust Foundation, радуемся появлению нового свободного драйвера для NTFS от российских разработчиков, изучаем как разработчики Linux смогли успешно выпустить недавний большой релиз, холиварим (или нет) на тему дизайна и удобства для пользователей свободного ПО и ещё узнаём много другого нового.

Стол

Во многих IT-компаниях в целях экономии закупаются простые столы-парты без шуфлядок. Не делайте этого! Столы берутся маленькие, положить что-то на них проблематично, спрятать в шуфлядку тоже (их же нет :)) – в итоге сверху горкой начинают лежать бумаги, коробки, кружки, ложки, ручки, мусор – и после этого случайно заглянувшие бухгалтеры начинают распускать слух о разгильдяях-программистах :). Старайтесь брать хороший устойчивый стол с дыркой для проводов и встроенными шуфлядками, желательно угловой – на нем просто больше места. Расположение столов в комнате – отдельный вопрос. В IT-компаниях существует практика иметь 1-2 легко просматриваемых со входа рабочих мест – на такие места часто сажают новичков в команде. Не надо так делать – некоторые люди просто не смогут чувствовать себя уверенно, когда их мониторы легко просматриваются. Создавайте для программистов чувство уюта и защищенности, в психологически некомфортных условиях работать так же тяжело, как и в некомфортных физически.

«Дилемма сугроба». Решение проблем традиционного краудфандинга (Часть 1)

Перевод

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

Повсеместная реклама заполняет наше культурное пространство и отвлекает наше внимание. Широкомасштабная слежка за людьми угрожает нашим гражданским свободам

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

Стол

Рань­ше были попу­ляр­ны сто­лы с выдвиж­ной под­став­кой под кла­ви­а­ту­ру и стой­кой для компакт-дисков, но в жиз­ни это ока­за­лось ненуж­ным: кла­ви­а­ту­ра долж­на сто­ять на сто­ле, а компакт-диски уже нико­му не нуж­ны. Сей­час оче­вид­но, что спе­ци­аль­ные ком­пью­тер­ные сто­лы не нуж­ны, нуж­ны про­сто каче­ствен­ные сто­леш­ни­цы и устой­чи­вые нож­ки. Чаще все­го про­грам­ми­сты хотят от сто­лов такое:

  • широ­кую и тол­стую сто­леш­ни­цу, что­бы не про­ги­ба­лась под мони­то­ром (и под вто­рым мони­то­ром);
  • глу­би­ну от 75 сан­ти­мет­ров, ина­че мони­тор будет сто­ять слиш­ком близ­ко;
  • отвер­стия для про­во­дов.

Широ­кая сто­леш­ни­ца из мас­си­ва — уни­вер­саль­ный вари­ант для любой рабо­ты. Но обра­ти­те вни­ма­ние на дру­гие дета­ли: сто­леш­ни­ца сто­ит вплот­ную к стене и она доволь­но неглу­бо­кая. Боль­шой мони­тор здесь уже сто­ит слиш­ком близ­ко. Кла­ви­а­ту­ра сто­ит неглу­бо­ко — поло­жить руки осо­бен­но неку­да. Вро­де кар­тин­ка кра­си­вая, но в жиз­ни это будет не очень удоб­но.

Сей­час мода на здо­ро­вый образ жиз­ни и подъ­ём­ные сто­лы: сто­леш­ни­ца уста­нав­ли­ва­ет­ся на подъ­ём­ный меха­низм, что­бы её высо­ту мож­но было регу­ли­ро­вать. Утром мож­но отре­гу­ли­ро­вать стол для рабо­ты стоя, а после обе­да опу­стить его и про­грам­ми­ро­вать сидя. В «Икее» подъ­ём­ный меха­низм сто­ит 40-50 тысяч руб­лей.

Тут мне­ния рас­хо­дят­ся: одни гово­рят, что подъ­ём­ный стол — это луч­шее, что с ними слу­чи­лось, пото­му что теперь они здо­ро­вые, весё­лые и фито­ня­ши. Дру­гие утвер­жда­ют, что это балов­ство на неде­лю, а потом всё вре­мя будешь сидеть.

В любом слу­чае это доро­го­ва­то.

OLED из парикмахерской: гибкие дисплеи из человеческих волос и их перспективы

Вторичное использование органических отходов — это часть решения экологических проблем, связанных с глобальным загрязнением. Одно из решений проблемы — применение человеческих волос для производства гибких дисплеев. О разработке соответствующей технологии в этом году заявила группа австралийских ученых: Доцент Прашант Сонар, профессор Кен (Константин) Остриков, аспирант Амандип Сингх Панну, профессор Цинь Ли. Основная группа разработчиков трудятся в Квинслендском технологическом университете (QUT). Технология представляет собой превращение небольших прядей волос в углеродные наноточки. Ученые утверждают, что, в связи с насыщенностью волос такими химическими элементами как углерод и водород, они хорошо подходят в качестве сырья для создания дисплеев по технологии OLED. Под катом немного подробностей о том, каким образом можно превратить человеческие волосы в высокотехнологичный компонент.

Зоны для обсуждений

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

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

Если вам достались коллеги, которых ваши обсуждения раздражают даже в проектных кабинетах, есть другое решение: группа из акустических диванов с высокими спинками, к которым подведено электричество и свет. Туда вы можете спрятаться и, никому не мешая, обсудить всё наболевшее.

Наушники

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

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

Для боль­ших про­фес­си­о­наль­ных науш­ни­ков потре­бу­ет­ся внеш­няя зву­ко­вая кар­та — это коро­боч­ка, кото­рая может выда­вать на них гром­кий и каче­ствен­ный звук. Это для тех, кто любит во вре­мя рабо­ты вклю­чить тех­но.


Полез­но, если у науш­ни­ков есть своё место на сто­ле — напри­мер, под­став­ка или крюк на сто­леш­ни­це.

Стул

Ооо, это больной вопрос – как для компаний, так и для сотрудников. Большую часть дня IT-профессионал сидит, сидит на этом самом стуле – и пренебрегать его осанкой и удобством нельзя. В компаниях же эти требования к эргономичности рабочего места просто пренебрегаются! Более того, в этих самых компаниях царит стуловая иерархия – программисты получают копеечные стулья дешевле $50, а менеджеры получают «дорогие» стулья по $150. Это разделение, эта показная забота о здоровье менеджеров искусственно создают искусственную грань между менеджерами и простыми смертными. Зачем? Чем менеджер лучше тестировщика? Или дизайнера? Больше получает? В сфере интеллектуального труда сотрудник технологической ветки может получать больше своего начальника. Больше ответственность? Все равно если проблемы у заказчика – по шапке получит QA :). Менеджеры такие же члены команды,как и остальные сотрудники – даете хорошие стулья одним – давайте и остальным. Какой стул брать? Выберите модель не дешевле $200, попробуйте посидеть в ней сами и закупите для всех, если вам было комфортно. Посмотрите наличие возможности настраивать высоту стула, его глубину и наклон спинки. Еще есть вариант дать каждому выбрать стул на свой вкус, но это будет действительно накладно.

Важная информация должна быть на виду

Необходима поверхность, на которой можно закреплять жизненно важную информацию о проекте, расписание на день, разбивку обязанностей и так далее.

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

Ещё один вариант — маркерная или меловая поверхность стены. Послужит для тех же целей, и потом на ней можно писать, рисовать графики, отмечать дедлайны и пройденные этапы.

Ошибка 9. Применение некоторых математических функций неправильно или не к месту

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

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

2. Взятие целой части как , причём — вещественное и не меняется внутри цикла.

Здесь достаточно было бы написать , а ещё лучше , где .

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

3. Вычисление обратного значения.

Зачем так делать, когда можно написать

Решение: применяйте математические функции только там, где они нужны.

Системный блок

Главный элемент компьютера, определяющий мощность вашего железного друга. Какой подбирать? Настолько мощный, насколько вы себе это можете позволить. В идеале необходимо раз в год-полтора целиком обновлять системный блок. Выходят новые среды разработки, новые операционные системы, требования к вычислительным мощностям растут – не надо мучить программиста, заставляя его работать в новейшей IDE на компьютере трехлетней давности. Медленный компьютер – один из сильнейших демотиваторов сотрудника. Мало того, что на подвисания и дикие тормоза невозможно спокойно смотреть, так еще и неожиданное замедление работы может запросто выбить сотрудника из потока, в который, как все уже запомнили, вернуться можно будет лишь через 15 минут. Экономить на «железе» в наше время глупо – купить мощнейший прошлогодний системный блок стоит дешевле, чем средняя зарплата IT-специалистов на dev.by. Если кому-то покажется слишком частой замена системного блока раз в год – ну так вы же не будете выбрасывать отработавшую свое машину – ее можно продать и стоимость замены снизится более чем вдвое. Не покупать видеокарту с аргументацией «нечего в игрушки на работе играть» — тоже неразумно. Все больше и больше приложений и операционных систем переходят на частичное аппаратное ускорение. Пускай это будет не последняя видеокарточка для оверклокеров, но хоть какая-нибудь не интегрированная с материнской платой видеокарта должна быть. Винчестер – сейчас еще дорого, но где-нибудь через год уже можно будет смело покупать себе SSD винчестер хотя бы для системного диска. SSD для системного диска и обычный винчестер на 7200 – убойная связка.

Подставка для ноутбука

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

Рабо­тая за ноут­бу­ком в закры­том состо­я­нии, сле­ди­те за пере­гре­вом: обыч­но ноут­бу­ки отда­ют часть теп­ла через кла­ви­а­ту­ру. Если крыш­ка закры­та, теп­ло накап­ли­ва­ет­ся, могут повре­дить­ся ком­по­нен­ты. Без­опас­нее рабо­тать с откры­тым ноут­бу­ком.

Под­став­ка для рабо­ты с откры­тым ноут­бу­ком — регу­ли­ру­ет­ся высо­та и угол накло­на.

Разговоры по телефону и Skype должны быть изолированы от тех, кто к ним не причастен

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

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

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

Удобные рабочие места

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

Стол. Идеально, если он с электроприводом и может подниматься на разные высоты, чтобы работать сидя и стоя. Еще лучше — если он, как кресло в машине, помнит ваши настройки.

Добиться этого можно, запрограммировав ваши любимые положения стола стоя и сидя на RFID-карту, например. Тогда специальное приложение для смартфона сможет ещё и следить за вами: сколько сидели и стояли, и даже напоминать, что пора бы уже немного постоять.

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

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

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

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

Ошибка 6. Неправильный порядок обхода по пикселям изображения, приводящий к замедлению работы программы

Память в компьютере одномерна. Двумерные изображения хранятся в памяти в виде одномерных массивов. Обычно они записываются построчно: сначала идёт 0-я строка, затем 1-я и т.д. Последовательный доступ к памяти осуществляется быстрее, чем произвольный. Это связано с работой кэша процессора, который помещает данные из памяти в кэш большими блоками, например, по 64 байта для современных процессоров. В этот блок попадают сразу несколько соседних по горизонтали пикселей. Значит, при обращении к последующим пикселям в той же строке скорость доступа будет выше, чем к последующим пикселям в столбце.

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

Примечание: В разных языках способ представления многомерных массивов в памяти может быть различным. Имейте это в виду.

Шум и вибрация

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

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


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

О том, как выбрать компьютерное кресло, вы можете узнать ниже.

Пишем простую ORM с возможностью смены БД на лету

  • Tutorial

Привет, Хабр! Карма слита из-за неосторожного комента под холиварной статьей, а значит нужно написать интересный (я надеюсь) пост и реабилитироваться. Я несколько лет пользуюсь серверным telegram клиентом на php

И как многие пользователи — устал от постоянного роста потребления памяти. Некоторые сессии могут занимать от 1 до 8 гигабайт RAM! Поддержка баз данных была уже давно обещана, но подвижек в этом направлении не было. Пришлось решать проблему самому 🙂 Популярность open source проекта, накладывала интересные требования на pull request:

  1. Обратная совместимость. Все существующие сессии должны продолжить работать в новой версии (сессия — это сериализованный инстанс приложения в файле);
  2. Свобода выбора БД. Возможность менять тип хранилища без потери данных и в любой момент, так как у пользователей разные конфигурации окружения;
  3. Расширяемость. Простота добавления новых типов баз данных;
  4. Сохранить интерфейс. Код приложения, работающий с данными, не должен меняться;
  5. Асинхронность. Проект использует amphp, поэтому все операции с базами должны быть неблокирующими;

За подробностями приглашаю всех под кат.

Ошибка 8. Отказ от абстракций

Боязнь плодить сущности — типичная ошибка новичков, она приводит к проблемам с читаемостью и восприятием кода. Здесь можно привести много примеров.

1. Обращение к пикселям через непосредственное вычисление индексов в массиве вместо использования методов и . Помимо удобства, в этих методах можно проверять и корректно обрабатывать выход за границы изображения. Например, не выдавать ошибку, а эктраполировать значения изображения.

2. Дублирование кода при работе с цветными изображениями, приводящее к ошибкам (см. пример выше). Вместо copy-paste кода и замены на и на достаточно было бы использовать перегрузку операторов. В три раза меньше кода, в три раза понятнее.

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

4. Использование трёхмерных массивов для хранения цветных изображений вместо создания отдельного класса для изображения. В дополнение к предыдущему пункту, приходится помнить, какой из индексов соответствует какой цветовой компоненте. Также видел, как трёхмерные массивы используются для хранения векторов, как в виде , так и в виде . Запутаться легко.

5. Использование массива вместо класса. Угадайте, что возвращает следующая функция?

Ответ: массив из 11 элементов, каждый из элементов имеет свой сакральный смысл, непонятный без длительного анализа кода. Не делайте так! Заведите класс и назовите каждое из полей по-человечески.

6. Переиспользование переменных с изменением семантики. Видите в коде и и думаете, что это призводные по и по ? А вот и нет, это модуль и угол:

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

Доски

Обеспечьте сотрудников местом для визуализации мыслей. Whiteboard или даже аутентичная черная доска хорошо помогут вашей команде в обсуждениях — ну или хотя бы позволят нарисовать что-нибудь позитивное :). Для комнат это nice to have, но для комнат для совещаний — это обязательный элемент (про комнаты совещаний будет отдельный пост). /via @Amdy Сюда же стоит отнести и стены, покрытые IdeaPaint — чудесным составом, который превращает вашу стену в большой whiteboard. Проблема только в том, что надо одну стену освободить от сотрудников и столов, но это мелочи — у вас же громадный whiteboard! /via 9ka

Ошибка 2. Использование библиотек для работы с изображениями при отсутствии опыта обработки изображений

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

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

Вывод текста на OLED дисплей с контроллером SH1106 по шине SPI через библиотеку HAL

  • Из песочницы
  • Tutorial

Здравствуйте, уважаемые читатели. В своих разработках на микроконтроллерах STM32, для вывода осмысленной информации, я пользуюсь OLED дисплеями на чипе SSD1306. В последний раз пришел ко мне 1,3″ дисплей по демократичной цене — около 200руб. Первое, что бросилось в глаза — надпись SH1106 вместо SSD1306, поиск в интернете прояснил, что это практически тоже самое, только оставлен единственный страничный режим адресации, да и тот ограничен одной строкой. Как с ним работать я и постараюсь объяснить вам в этой публикации.

Где-то с год назад мне стало не хватать возможностей синей пилюли (STM32F103) и была заказана китайская плата разработчика STM32F407VE. Для отладки, часто, двух светодиодов не хватает, поэтому в каждом проекте для вывода информации подключаю OLED SSD1306 по шине I2C, в который влюбился еще со времен Arduino. Так как графику я на него не вывожу, в основном числа и текст, а размер готовых библиотек и их содержание поражало мое воображение, была написана небольшая библиотечка, которую я немного адаптировал под SH1106 и хочу поделится с вами процессом ее написания. Дисплей приехал 7pin SPI:

Плата разработчика у меня такая, но ничего вам не помешает подключить к другой, хоть на STM32F103, для чего HAL и был придуман (разве не так ?):


С этим читают