Pull to refresh
-1
0
Михаил @MuKPo6

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

Send message

Гибрид компьютера и IP-телефона. Анатомия аппаратной платформы GM-Box. Часть 1 – прототипирование

Reading time7 min
Views5.6K

Привет, сегодня я начну рассказывать историю разработки аппаратной платформы для создания «умных» рабочих мест Smart Workspace от зарождения идеи до запуска в серийное производство нашей командой Гетмобит.

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

Наш продукт – это программно-аппаратный комплекс (ПАК), его центральная часть – гибридная док-станция GM-Box G1. Это устройство нового поколения «все в одном» (all-in-one) объединяет в себе: «тонкий клиент», IP-телефон, систему аутентификации с использованием смартфона как ключа, считыватель бесконтактных карт, набор основных модулей беспроводной связи и даже несколько видов зарядки для смартфона.

В серии статей вас ждет описание кейсов промышленного дизайна и прототипирования, разработки электроники и пластиковых корпусов, испытаний и запуска собственного производства в России. Будет много фоток рабочего процесса и откровений инженера, который принял в этом активное участие (т.е. меня). Поехали!

Читать далее

Объектно-ориентированный JavaScript простыми словами

Reading time23 min
Views120K


Доброго времени суток, друзья!

В JavaScript существует 4 способа создать объект:

  • Функция-контруктор (constructor function)
  • Класс (class)
  • Связывание объектов (object linking to other object, OLOO)
  • Фабричная функция (factory function)

Какой метод следует использовать? Какой из них является лучшим?

Для того, чтобы ответить на эти вопросы мы не только рассмотрим каждый подход в отдельности, но и сравним между собой классы и фабричные функции по следующим критериям: наследование, инкапсуляция, ключевое слово «this», обработчики событий.

Давайте начнем с того, что такое объектно-ориентированное программирование (ООП).

Как генерируются UUID

Reading time7 min
Views145K

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

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать дальше →

«Умопомрачительный ритм»: как наш мозг меняет состояния сознания — новое исследование

Reading time3 min
Views16K

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

Что еще за «ритм»

«Ремонт для звука»: разбираемся с акустической подготовкой помещения — 10 тематических материалов

Reading time3 min
Views12K

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

Что там у вас с ремонтом

Евангелист Open Source Эрик Реймонд: Windows перейдет на ядро Linux в недалеком будущем

Reading time3 min
Views44K

Эрик Реймонд — евангелист свободного ПО, сооснователь фонда Open Source Initiative, автор «закона Линуса» и книги «Собор и базар», своеобразной «священной книгой» свободного ПО. По его мнению, в недалеком будущем Windows перейдет на ядро Linux, так что сама Windows станет слоем эмуляции на этом ядре.

Похоже на шутку, но сегодня вроде бы и не 1 апреля. Свое утверждение Реймонд аргументирует активными действиями Windows в сфере открытого ПО. Так, Microsoft активно работает над Windows Subsystem for Linux (WSL) — подсистемой Linux для Windows. Также он не забыл о браузере Edge, который работал сначала на движке EdgeHTML, но полтора года назад его перевели на Chromium.
Читать дальше →

Танец света: секрет синхронизации светлячков

Reading time13 min
Views6.5K


Насекомые по праву считаются самыми многочисленными и разнообразными представителями фауны. Они живут во всех уголках нашей планеты: от тропических джунглей Амазонки до каменистых берегов Гренландии. Среда обитания в сопряжении с эволюционными изменениями породили множество уникальных видов, чей внешний вид, повадки или гастрономические предпочтения не перестают удивлять. Одними из самых необычных представителей класса насекомых можно с уверенностью назвать светляков, способных излучать свет за счет специальных органов (лантерн). Но не только сам факт свечения удивителен, но и то как он применяется. Ученые из университета Колорадо (Боулдер, США) попытались понять, как у светляков вида Photinus carolinus происходит синхронизация свечения. Как проводилось исследование, чем отличается поведение роя светляков от одиночных особей, и в чем же секрет синхронизации свечения? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.

Валидация в PHP. Красота или лапша?

Reading time6 min
Views22K
Выбирая лучший PHP-валидатор из десятка популярных, я столкнулся с дилеммой. Что для меня важнее? Следование всем SOLID / ООП-канонам или удобство работы и наглядность кода? Что предпочтут пользователи фреймворка Comet? Если вы считаете, что вопрос далеко не прост — добро пожаловать под кат в длинное путешествие по фрагментам кода :)

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

Отпечаток браузера: что это, как работает, нарушает ли закон и как защититься. Часть 1

Reading time5 min
Views70K
image

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

Что такое отпечатки браузера?


Это метод, используемый сайтами и сервисами для отслеживания посетителей. Пользователям присваивается уникальный идентификатор (отпечаток). Он содержит много информации о настройках и возможностях браузера пользователей, что используется для их идентификации. Кроме того, отпечаток браузера позволяет сайтам отслеживать поведенческие паттерны, чтобы впоследствии еще точнее идентифицировать пользователей.

Уникальность примерно такая же, как у реальных отпечатков пальцев. Только последние собирает полиция для поиска подозреваемых в совершении преступлений. А вот технология отпечатка браузеров применяется вовсе не для отслеживания преступников. Ведь мы же здесь не преступники, верно?
Читать дальше →

Программирование квантовых компьютеров: джентльменский набор издательства «Питер»

Reading time7 min
Views14K

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

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

Вот как это было

Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

Reading time70 min
Views395K
В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


Неожиданное открытие


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

Собеседование php-developer (вопросы и ответы)

Reading time10 min
Views285K
Так уж получилось, что в этом году я прошел ряд собеседований на позицию PHP разработчика, чего я не делал уже несколько лет. Будучи человеком ленивым практичным, перед собеседованием я попытался найти сборники вопросов-ответов, но все найденное было довольно старым, поэтому я решил сам подготовить список вопросов, которые встречал.

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

ARM против x86: В чем разница между двумя архитектурами процессоров?

Reading time6 min
Views268K
Вы наверняка знаете, что мир процессоров разбит на два лагеря. Если вы смотрите это видео со смартфона, то для вас работает процессор на архитектуре ARM, а если с ноутбука, для вас трудится чип на архитектуре x86.

А теперь еще и Apple объявила, что переводит свои Mac на собственные процессоры Apple Silicon на архитектуре ARM. Мы уже рассказывали, почему так происходит. А сегодня давайте подробно разберемся, в чем принципиальные отличия x86 и ARM. И зачем Apple в это все вписалась?


Итак, большинство мобильных устройств, iPhone и Android'ы работают на ARM'е. Qualcomm, HUAWEI Kirin, Samsung Exynos и Apple A13/A14 Bionic — это все ARM-процессоры.

А вот на компьютере не так — там доминирует x86 под крылом Intel и AMD. Именно поэтому на телефоне мы не можем запустить Word с компьютера.

Web Cryptography API: пример использования

Reading time6 min
Views21K
Доброго времени суток, друзья!

В этом туториале мы рассмотрим Web Cryptography API: интерфейс шифрования данных на стороне клиента. Данный туториал основан на этой статье. Предполагается, что вы немного знакомы с шифрованием.

Что конкретно мы будем делать? Мы напишем простой сервер, который будет принимать зашифрованные данные от клиента и возвращать их ему по запросу. Сами данные будут обрабатываться на стороне клиента.

Сервер будет реализован на Node.js с помощью Express, клиент — на JavaScript. Для стилизации будет использоваться Bootstrap.

Код проекта находится здесь.

Если вам это интересно, прошу следовать за мной.
Читать дальше →

Улучшения покрытия PHP кода в 2020 году

Reading time10 min
Views8.1K
А вы знали что метрики покрытия вашего кода врут?

В 2003 году Дерик Ретанс (Derick Rethans) выпустил Xdebug 1.2. Впервые в экосистеме PHP появилась возможность собирать данные о покрытии кода. В 2004 году Себастьян Бергманн выпустил PHPUnit 2, где впервые это использовал. У разработчиков появилась возможность оценивать эффективность своих наборов тестов, используя отчеты о покрытии.

С тех пор функциональность перенесли в универсальный независимый компонент php-code-coverage. В качестве альтернативных драйверов появились PHPDBG и PCOV. Но фундаментально основной процесс для разработчиков за последние 16 лет не поменялся.

В августе 2020 года с релизом php-code-coverage 9.0 и связанных с ним релизов PHPUnit 9.3 и behat-code-coverage 5.0 стал доступен новый способ оценивать покрытие.
Читать дальше →

Эта музыка будет вечной или днк программирование

Reading time10 min
Views4.2K
Писать можно о разном, даже более того – на разном. Вот и программирование как таковое тоже бывает не ограничено определенными рамками, привычных всем стереотипов, связанных с компьютерами. Ранее на Хабре уже выходили статьи про так называемое литературное программирование и о том, почему оно может быть даже лучше классического. К сожалению, там же объяснялось и то, почему оно не так распространено – попробуй уместить в одном человеке хорошего писателя и программиста. Но вот если взять поэта…
Читать дальше →

Полное руководство по сезонной депрессии (SAD). 7 видов светотерапии

Reading time26 min
Views74K


Я проделал большую работу по исследованию англоязычной литературы на тему «рекуррентное депрессивное расстройство (F33) с сезонным паттерном». В этой статье я системно изложу всю найденную информацию.

Почему эта статья важна:

  1. Лучшая книга по сезонной депрессии (Winter Blues) за все 27 лет её существования не была переведена на русский язык, а англоязычную версию не найти в открытом доступе. Я купил и прочитал книгу через Kindle, а также внедрил 70% описанных в ней методик в жизнь. Моя статья будет, по сути, пересказом книги и её адаптации под российские реалии
  2. Полное непонимание сезонной депрессии как обывателями, так и некоторыми профессиональными врачами в России, хотя эта страна находится в группе риска
  3. Низкое качество статей рунета в целом и статей по здоровью в частности. А статьи на Хабре, имеющие отношение к SAD, можно пересчитать по пальцам, и они не дают общей картины
  4. Производители ламп яркого света используют хитрые манипуляции, маркируя слабенькие лампы как дающие 10 000 люкс, но достигая этой яркости на расстоянии около 10 сантиметров от лампы до хрусталика глаза
Читать дальше →

Путь к Федеративному GraphQL

Reading time11 min
Views7.2K

Программисты любят хорошие истории, поэтому надеюсь что пятилетний путь к композитному API с помощью GraphQL в боевой среде (на пике выдающей 110 запросов в секунду при 100мс задержке) будет интересен.

[Если вы спешите, проскрольте ниже к урокам и гляньте на открытый код graphql-schema-registry]

Читать далее

PC-3000 Flash: восстанавливаем данные с карты microSD

Reading time4 min
Views30K


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

До недавнего времени все карты памяти типа SD, Sony MemoryStick, MMC и других, использовали простую «классическую» структуру с отдельными частями – контроллер, плату и чип памяти NAND в корпусе TSOP-48 или LGA-52. В таких случаях процесс восстановления был очень простым – мы выпаивали чип памяти, читали его в PC-3000 Flash, и вели ту же подготовку, что и в случае с обычными USB-флэшками.

Однако что делать, если наша карта памяти или UFD-устройство имеет монолитную структуру? Как получить доступ к чипу памяти NAND и прочесть данные с него?

Google продвигает новый стандарт WebBundles — потенциально опасную для веба технологию «упаковки» веб-сайтов

Reading time5 min
Views49K
В общем потоке новостей остался незамеченным совместный призыв продукт-менеджера Chrome Кенджи Бахе и веб-консультанта Google Юсуке Уцуномии об использовании нового стандарта Web Bundles, разработанного Google. На chromium.googlesource появился соответствующий мануал по использованию WebBundles и, собственно, особо о нем больше не говорилось. Запись от лица Базе и Уцуномии была опубликована еще в ноябре 2019 года, но вызвала реакцию сообщества только сейчас, и то, исключительно на нескольких профильных площадках и в одном блоге, посвященном кибербезопасности.



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

Information

Rating
Does not participate
Location
Одинцово, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead
Git
Linux
OOP
PHP
MySQL