Search
Write a publication
Pull to refresh
60
0

Пользователь

Send message

Как спасти разбитую читалку, если у вас прямые руки

Reading time9 min
Views17K
Статей о том, как подключить дисплей на электронных чернилах к Arduino, STM32, ESP32 и т.д. (нужное подчеркнуть) на этом ресурсе более чем достаточно, и я не стану утомлять читателя очередным погодным информером. Речь пойдет о том, как в хозяйстве можно использовать электронную книгу, ставшую жертвой комбинации четвертой фундаментальной силой природы – гравитации и седалищной мышцы Человека Разумного. Хе-хе. 

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

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

Загадка отсутствия дефолтного приложения «Калькулятор» на iPad и поиск его замены

Reading time5 min
Views29K


Любой человек, мало-мальски знакомый с экосистемой Apple, знает, что приложение «Калькулятор», по умолчанию предустановленное на iPhone, Apple Watch и компьютеры Mac, обошло стороной планшеты компании. Вероятно, многие люди, впервые пытавшиеся произвести вычисления на iPad, недоумевали и задавались вопросом: как компания, издавна славившаяся своим софтом и произведшая множество революций в сфере программного обеспечения, до сих пор не смогла обеспечить пользователей своих планшетов, казалось бы, самой простой программой, аналоги которой школьники создают, впервые изучая программирование: калькулятором. Спойлер: мы не знаем.

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

Шпаргалка по JS-методам для работы с DOM

Reading time18 min
Views82K

image


Основные источники



Введение


JavaScript предоставляет множество методов для работы с Document Object Model или сокращенно DOM (объектной моделью документа): одни из них являются более полезными, чем другие; одни используются часто, другие почти никогда; одни являются относительно новыми, другие признаны устаревшими.


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


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


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


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

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

Отслеживание и визуализация положения МКС с помощью 30 строк JavaScript-кода

Reading time6 min
Views7.7K


Предлагаю вашему вниманию перевод этой замечательной статьи.

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

Мы создадим приложение с нуля и примерим на себя роль настоящего ученого в области ракетостроения.

  • Мы узнаем, где найти данные для отдельного спутника, известные как двухстрочный набор элементов (two-line element set, TLE) (далее — ДНЭ)
  • Мы используем библиотеку ”satellite-js” для предсказания орбиты спутника по ДНЭ (это часть напрямую связана с ракетостроением)
  • Мы используем библиотеку ”CesiumJS” для визуализации результата, однако, вы можете использовать любую библиотеку/движок, которые умеют работать с долготой, широтой и высотой

Превью конечного результата:


Здесь мы видим движение МКС по орбите со скоростью, увеличенной в 40 раз. Для того, чтобы увидеть текущее положение МКС, нажмите на иконку часов в верхнем левом углу панели управления.

Инструменты для аудита CSS

Reading time6 min
Views9.4K


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

Существуют некоторые инструменты, облегчающие выполнение указанных задач. Но давайте начнем с того, что понимается под «аудитом» CSS.

Аудит CSS — задача не из легких


Как правило, оценка качества кода включает в себя его анализ в поиске багов и других проблем, например, проблем с производительностью. Для большинства языков программирования концепция аудита кода проста: она работает или не работает. Но CSS — это особенный язык, большая часть ошибок которого игнорируется браузером. Один и тот же стиль можно применять совершенно по-разному. Это обуславливает сложность аудита CSS. И «сложность» — это еще мягко сказано.
Читать дальше →

Гений и не лечишься. Является ли одаренность психическим расстройством?

Reading time10 min
Views24K


Каждый из нас хотя бы раз в жизни слышал про кого-то: это талантливый программист, музыкант, дизайнер. Обычно в подобной роли выступает сын маминой подруги, но иногда признаки гениальности проявляют коллеги по работе или кто-то из приятелей. Однако при близком знакомстве с такими персонажами часто оказывается, что одаренность поставляется в комплекте с целым набором ментальных проблем. Один гений страдает периодическими депрессиями, второй мнителен до психоза, третий не пользуется айрподсами, потому что слышит голоса прямо у себя в голове. Четвертый ужасно рассеян и необязателен, пятый страдает от перепадов настроения, которые не лучшим образом сказываются на его работоспособности, шестой не считает нужным мыться и вообще следить за своим внешним видом… Так может быть, одаренность — это болезнь? Что говорят по этому поводу профессиональные исследователи?
Читать дальше →

Технологии честности и «отец всех продаж»

Reading time8 min
Views7.3K


Воровали всегда.

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

А без помощников-приказчиков на бойком месте никак не обойтись.

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

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

Сейчас, с высоты веков, нам, наверное, ясно, что на свете есть проблемы, которые должны решаться не кнутом или пряником, а технологичностью, максимальной отстраненностью «человеческого фактора» от операционных процессов, но вряд ли это было с такой же степенью отчетливости понятно человеку в XIX веке.
Читать дальше →

Что такое компьютерный зрительный синдром и как от него защититься?

Reading time11 min
Views31K


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

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


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

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

Реверс-инжиниринг неизвестного микроконтроллера

Reading time44 min
Views16K


Сложная завязка


Предыстория...


В рамках моей работы над реверс-инжинирингом электронных eInk-ценников мне довелось столкнуться с интересной проблемой. Конкретная компания (Samsung Electro Mechanics/SoluM) перешла с использования сторонних чипов, происхождение которых мне удалось выявить (Marvell 88MZ100) на новый чип, который стала применять со своими ценниками следующего поколения.

Казалось, что это их собственный чип, разработанный силами компании именно для этой цели. Браться за реверс-инжиниринг такой штуки – дохлый номер. Друг дал мне несколько ценников с такими чипами – повозиться. Оказалось, они бывают двух типов: одни с сегментированным дисплеем на электронных чернилах, а другие – с обычным графическим дисплеем на электронных чернилах. Главный чип в обеих моделях один и тот же, поэтому первым делом я взялся за устройство с сегментированным дисплеем, поскольку оно проще, и на его примере легче разобраться с неизвестной системой. Было не вполне ясно, с чего начать, но, конечно же, как раз такие задачки всегда самые интересные! 

Исследование



Глупо пытаться решить кроссворд, не прочитав вопросы к нему. Столь же глупо браться за реверс-инжиниринг устройства, не собрав сперва всю информацию, которая о нем уже имеется. Итак, что нам исходно известно? Протокол беспроводной передачи данных, вероятно, такой как обычно, поскольку ни одна компания не захочет мигрировать на новый либо поддерживать для своих клиентов сразу два протокола, не спеша выполняя миграцию. Старый протокол был ZigBee-подобным на 2,4 Ггц, поэтому новый, вероятно, такой же. Вот фото платы с обеих сторон.

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

Ахиллесова пята коронавируса

Reading time4 min
Views12K
Вирус SARS-​CoV-2 критически зависит от особого механизма, обеспечивающего синтез его белков. Коллаборация под руководством исследовательской группы из Высшей Технической Школы Цюриха (ETH Zurich) докопалась до молекулярного устройства этого процесса и показала, что его можно ингибировать специальными химическими соединениями, тем самым существенно подавляя репликацию вируса в инфицированных клетках. 


Видео: Said Sannuga, Cellscape.co.uk / ETH Zurich, The Ban Lab 

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

Когда клетка здорова, рибосома движется вдоль РНК в строго размеренном темпе, считывая три нуклеотида РНК за шаг. Такой трехбуквенный код определяет соответствующую аминокислоту, которая прикрепляется к наращиваемому белку. Почти не случается такого, чтобы рибосома сдвинула один или два нуклеотида РНК вперед или назад, отступив от этого правильного трехчастного паттерна. Если такой сдвиг в рибосоме (его называют «сдвиг рамки считывания») все-таки происходит, то он приводит к ошибкам в считывании генетического кода.

Трюки CSS, которые сделают из вас ниндзя верстки

Reading time5 min
Views52K

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


Многие свойства, о которых пойдет речь, являются экспериментальными. Большинство из них поддерживаются всеми современными браузерами, однако, если вы решите использовать какое-либо из названных свойств в продакшне, не поленитесь зайти на Can I use и уточнить поддержку (недавно сильно расстроился, обнаружив, что Safari не поддерживает атрибут loading="lazy").


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


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


Итак, вы готовы к нашему небольшому путешествию в удивительный и почти безграничный мир CSS? Тогда вперед.


grid + place-items


Здесь вы найдете полное визуальное руководство по Grid и Flexbox.


Данная техника позволяет выравнивать элементы по горизонтали и вертикали при помощи всего лишь двух строк кода.

Практическое руководство по TypeScript для разработчиков

Reading time10 min
Views98K

Представляю вашему вниманию перевод статьи "Working With TypeScript: A Practical Guide for Developers".


Что такое TypeScript?


TypeScript — это популярный статический типизатор (static type checker) или типизированное надмножество (typed superset) для JavaScript, инструмент, разработанный Microsoft и добавляющий систему типов к гибкости и динамическим возможностям JavaScript.


TypeScript развивается как проект с открытым исходным кодом, распространяется под лицензией Apache 2.0, имеет очень активное и высокопрофессиональное сообщество, а также огромное влияние на экосистему JavaScript.


Установка TypeScript


Для того, чтобы начать работу с TypeScript, нужно либо установить специальный интерфейс командной строки (command line interface, CLI), либо воспользоваться официальной онлайн-песочницей или другим похожим инструментом.

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

Как я влюбился в Rust и чего мне это стоило

Reading time10 min
Views34K

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


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


Хочу сразу заметить, что эта статья целиком и полностью — субъективное мнение автора, единственная цель которой — заинтересовать читателей, ценящих в программировании как хобби те же самые вещи, что и он сам, и речь в ней не пойдёт ни о быстродействии, ни о востребованности языка в сфере IT, ни о каких-либо других технических составляющих этой области, вокруг которой часто возникают разного рода споры. Я остановлюсь на том, что Rust — быстрый и безопасный компилируемый ЯП общего назначения. Об остальном — далее.

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

Даже не пытайтесь повторить это в GUI

Reading time7 min
Views18K


Есть такое понятие, как дружественный пользователю Linux. Возникло оно оно очень давно, возможно через несколько минут после того, как Линус Торвальдс анонсировал свою разработку в листе comp.os.minix. Трудно сказать принесла-ли пользу данная концепция и различные её воплощения на рабочей станции. Понятно одно, что прогресс на этом пути довольно-таки ощутимо не совпадает с ожиданиями этого самого пользователя.

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

Предлагаем рассмотреть несколько сценариев из реальной жизни, где хочешь — не хочешь, все необходимо сделать в CLI. Таких примеров очень и очень много, это всего лишь пара кейсов в огромном множестве подобных.
Читать дальше →

Есть ли у игровой индустрии шанс стать более человечной?

Reading time11 min
Views10K
Бесконечные переработки без отпусков и неоплачиваемые сверхурочные. Сокращения и увольнения. Выгорание и переезды в поисках новой работы. Конфликты с руководством и непрозрачные схемы вознаграждения и т.д. Именно из этого сделана современная игровая индустрия, — так считает журналист Джейсон Шрайер, автор вышедшей на прошлой неделе книги Press Reset, которая рассказывает об обратной стороне геймдева.

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

image

Отправной точкой для разговора о будущем геймдева Шрайер делает вопрос: “Что работникам игровой индустрии нравится в ней меньше всего?”. На этот вопрос опытные разработчики отвечают примерно одно и то же: игровая индустрия очень сурово обходится с людьми. Она пережевывает и перемалывает их, оставляя после себя одни кости.

Как выбрать механическую клавиатуру для программиста или геймера

Reading time4 min
Views92K

В большинстве своём, механические клавиатуры превосходят мембранные сразу по нескольким параметрам. Но выбор клавиатуры не сводится лишь к отсечению всех экземпляров класса «мембранные». Механические клавиатуры тоже сильно разнятся. И как же найти ту самую единственную?

Сначала мы быстро вспомним, чем отличаются эти два базовых класса клавиатур, а потом постепенно придём к ответу на поставленный вопрос.

1. Количество одновременных нажатий клавиш (KRO): у мембранных клавиатур обычно оно составляет 2 (2KRO), 3 (3KRO) или 6 (6KRO). У механических — таких ограничений вообще нет (NKRO). Неважно, сколько клавиш вы нажмёте одновременно: компьютер получит и обработает соответствующие сигналы от каждой из них.

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

Как я перестал бояться и полюбил бомбу. История создания и уничтожения ядерного оружия

Reading time24 min
Views32K

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

Немного истории


Кого можно считать «отцом атомной бомбы»? К сожалению, на этот вопрос не существует однозначного ответа. Созданию ядерного оружия предшествовала череда научных открытий на протяжении практически всей первой половины 20-го века. Условную точку отсчета можно поставить в 1896 году, когда французский химик Антуан Анри Беккерель обнаружил радиоактивность урана. Следующие несколько десятилетий ученые шаг за шагом приближались к созданию атомной бомбы: открытие альфа-, бета- и гамма-лучей; обнаружение радиоактивных изотопов некоторых химических элементов; публикация закона радиоактивного распада; открытие ядерной изомерии… Наконец, в 1938 году немецкие физики Отто Ган и Фриц Штрассман впервые в мире смогли осуществить искусственное расщепление ядра атома (урана). С этого момента началась эпоха разработки ядерного оружия. А также немецкая ядерная программа.
Читать дальше →

Радиоконструктор «Электронные кубики»: ностальгия по детству

Reading time6 min
Views23K

У меня есть очень любопытный радиоконструктор. Он был выпущен в 1977 году и стоил в ту пору 10 рублей. Из этого конструктора можно собрать 35 конструкций, причём, без пайки. В качестве элемента питания используется батарейка типа «Крона».

Конструктор c неизменным успехом был испытан на детях поколений X, Y и Z. В причине этого успеха мы попробуем разобраться дальше.

Немного о том, как работает виртуальный DOM в React

Reading time10 min
Views78K

image


Настоящий или реальный (real) DOM


DOM расшифровывается как Document Object Model (объектная модель документа). Проще говоря, DOM — это представление пользовательского интерфейса (user interface, UI) в приложении. При каждом изменении UI, DOM также обновляется для отображения этих изменений. Частые манипуляции с DOM негативно влияют на производительность.


Что делает манипуляции с DOM медленными?


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


Манипуляции с DOM являются сердцем современного интерактивного веба. К сожалению, они намного медленнее большинства JavaScript-операций. Ситуация усугубляется тем, что многие JavaScript-фреймворки обновляют DOM чаще, чем необходимо.


Допустим, у нас имеется список из 10 элементов. Мы изменяем первый элемент. Большинство фреймворков перестроят весь список. Это в 10 раз больше работы, чем требуется! Только 1 элемент изменился, остальные 9 остались прежними.


Перестроение списка — это легкая задача для браузера, но современные веб-сайты могут осуществлять огромное количество манипуляций с DOM. Поэтому неэффективное обновление часто становится серьезной проблемой. Для решения данной проблемы команда React популяризовала нечто под названием виртуальный (virtual) DOM (VDOM).

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

Восстановление погибших дискет с осциллографом

Reading time4 min
Views18K

Плата Greaseweazle F7 Plus выступает в роли флоппи-контроллера, источник

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

Но что делать, если Greaseweazle не может прочитать биты на магнитной поверхности — и сообщает о повреждённых данных? Что, если на дискете материал исторической важности, исходный код в единственном экземпляре или культовая игра? Неужели всё потеряно?

Совсем нет. Известный хакер Крис Эванс с инженером Филом Пембертоном протестировали новый способ восстановления данных с флоппи-дискет, используя осциллограф. В частности, они вернули к жизни игру «Ферма старого Макдональда» для BBC Micro. Подробнее см. в блоге Криса Эванса, здесь краткий пересказ, как это было сделано.

Information

Rating
Does not participate
Registered
Activity