Как стать автором
Обновить

Google выпустила стабильную версию браузера Chrome 81

Время на прочтение3 мин
Количество просмотров10K


7 апреля 2020 года, на 21 день позже ранее запланированной даты 17 марта 2020 года, Google выпустила в релиз стабильную версию 81.0.4044.92 браузера Chrome. Также стала доступна стабильная версия номер 81 свободного проекта Chromium. Браузер Chrome 81 уже можно скачать и установить на пользовательские устройства с Android, iOS, Linux, Mac и Windows, или обновить с версии 80.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии0

Пишем интерпретатор BASIC в стиле 80-х

Время на прочтение22 мин
Количество просмотров9.3K


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

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

Когда появился @bbcmicrobot, я захотела создать нечто подобное для Retroputer. Мои навыки разработки на JS в основном ограничивались фронтендом, поэтому это будет отличным поводом получить опыт бэкенда. Только есть одна проблема: Retroputer может понимать только собственный язык ассемблера. Пока у него нет поддержки BASIC.

Так я и пришла к созданию интерпретатора BASIC в стиле 80-х, то есть полностью на языке ассемблера, как его тогда и писали. Я решила, что стоит поделиться своей работой, потому что нам не часто приходится погружаться в области, столь далёкие от привычных абстракций. Мой повседневный инструмент (JavaScript) делает многие аспекты тривиальными, и иногда это даже кажется магией. Понимание самого нижнего уровня процессов часто помогает в понимании этих абстракций.

Итак, давайте приступим.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии5

Tesla представила собственный аппаратный ускоритель нейросетей Dojo D1

Время на прочтение2 мин
Количество просмотров5.3K

Tesla представила чип Dojo D1 для обучения моделей искусственного интеллекта внутри своих центров обработки данных. Он выполнен на 7-нм техпроцессе и имеет вычислительную мощность 362 терафлопс.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

Tesla рассказала об архитектуре чипа D1 для суперкомпьютера Dojo

Время на прочтение4 мин
Количество просмотров2K

Tesla поделилась подробностями о собственном процессоре D1, который станет основой ИИ-суперкомпьютера Dojo. Компания рассказала об архитектуре, устройстве и возможностях нового чипа.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Низкоуровневое обнаружение Wi-Fi устройств в домашней сети

Время на прочтение10 мин
Количество просмотров22K

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

В этой статье я расскажу про несколько способов «‎научить» микроконтроллер распознавать присутствие людей дома исключительно с помощью Wi-Fi.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии21

На что способен мозг студента, познающего компьютерный мир

Время на прочтение7 мин
Количество просмотров24K
Доброго времени суток.

Закончив писать очередной скрипт на Bash, понял, что всё должно быть совершенно иначе, однако всё работало. Хочу вам показать, какие непотребства и костыли написал я, дабы решить задачу, но пока не имея вагона знаний. Иначе говоря, карикатура на программирование.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии30

Термодатчик из звуковой карты

Время на прочтение6 мин
Количество просмотров6.9K

Всем привет!

Как-то раз зимой у меня сгорел греющий кабель в водопроводе (он не даёт замёрзнуть воде в трубах, проложенных близко к поверхности). Кабель конечно пришлось заменить, водопровод отогрелся и снова заработал, однако возникло жгучее желание "что-то с этим сделать". Хотя бы узнавать о его неисправности заранее, а в лучшем случае - ещё и автоматически отогревать. Идея в общем-то несложная: надо мерять температуру трубы и включать обогрев (при помощи любого электрического обогревателя), если она мёрзнет. Всё просто, но датчика температуры под рукой нет. Конечно, можно его заказать на всем известном китайском сайте, или на не менее известном российском, но это совершенно неспортивно. Потому попробуем изготовить датчик из имеющихся под рукой компонентов. Для этого нам понадобится: звуковая карта (наверняка найдётся в компьютере), два jack-разъёма (от наушников или микрофонов), один терморезистор и пара резисторов.

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

Читать далее
Всего голосов 33: ↑31 и ↓2+29
Комментарии22

Программа для рисования четырёхмерного куба

Время на прочтение6 мин
Количество просмотров84K
Начнём с объяснения, что же такое четырёхмерное пространство.


Это — одномерное пространство, то есть просто ось OX. Любая точка на ней характеризуется одной координатой.


Теперь проведём ось OY перпендикулярно оси OX. Вот и получилось двумерное пространство, то есть плоскость XOY. Любая точка на ней характеризуется двумя координатами — абсциссой и ординатой.


Проведём ось OZ перпендикулярно осям OX и OY. Получится трёхмерное пространство, в котором у любой точки есть абсцисса, ордината и аппликата.


Логично, что четвёртая ось, OQ, должна быть перпендикулярной осям OX, OY и OZ одновременно. Но мы не можем точно построить такую ось, и потому остаётся только попытаться представить её себе. У каждой точки в четырёхмерном пространстве есть четыре координаты: x, y, z и q.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии58

Защищённый удалённый терминал

Время на прочтение3 мин
Количество просмотров8.1K
В связи принятием 152 закона о защите персональных данных, на рынке периодически появляются решения, которые позволяют построить информационную систему предприятия, готовую к аттестации.
В этом посте я опишу одно из таких решений, которое было разработано сотрудниками компаний Aladdin, Сitrix, S-Terra и TONK.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

Разбираем x.509 сертификат

Время на прочтение11 мин
Количество просмотров217K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Всего голосов 79: ↑75 и ↓4+71
Комментарии31

Как создать простой LoRa мессенджер: обмен зашифрованными текстовыми сообщениями между устройствами без интернета

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров12K

В современном мире IoT, когда связь в отдаленных районах становится все более актуальной, технология LoRa (Long Range) предоставляет нам возможность создать дальнобойный, надежный, энергоэффективный и зашифрованный канал связи без необходимости иметь какую-либо сетевую инфраструктуру. 

В этой статье мы рассмотрим, как создать простой LoRa мессенджер с использованием своего протокола обмена и готовых модулей, работающих в режиме P2P (peer-to-peer) – не идеального, но интересного решения для обмена текстовыми сообщениями в условиях ограниченной инфраструктуры.

Для упрощения и автоматизации процесса обмена сообщениями мы воспользуемся Node-RED. Этот инструмент, помимо реализации основной логики обмена сообщениями, также предоставит графический интерфейс для мессенджера, что сделает процесс более доступным и интуитивно понятным. 

Выглядеть будет просто, потому что воспользуемся всем готовым :)

Свистать всех наверх!
Всего голосов 31: ↑29 и ↓2+27
Комментарии36

Уведомления о деплое Gitlab через Telegram-бота при помощи Yandex Cloud Functions

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6K

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

Данная статья и родилась вследствие того, что на текущем проекте в нашей команде разработки есть боль: когда на беке вливают МР в ветку develop, то стенд падает на время деплоя. Основные участники, испытывающие эту боль — фронтенд разработчики и аналитики, которым чаще всего приходится взаимодействовать с бекендом. И во время недоступности стенда непонятно, деплой идёт или стенд упал из-за ошибки.

Нет, конечно, можно зайти в Gitlab, проверить, идёт ли сейчас деплой или посмотреть логи контейнера. Но для этого нужно быть в курсе, из-за деплоя каких конкретно микросервисов (естественно мы говорим о микросервисной архитектуре) стенд может быть временно недоступен. Ну и плох тот программист, который не хотел бы упростить жизнь себе и коллегам, автоматизировав при этом чаво-нибудь! :)

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Смотрите на свой Google календарь через календарь Висты

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

Дальше тут:
ru.vistarewired.com/2007/04/24/%d1%81%d0%bc%d0%be%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d1%81%d0%b2%d0%be%d0%b9-google-%d0%ba%d0%b0%d0%bb%d0%b5%d0%bd%d0%b4%d0%b0%d1%80%d1%8c-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%ba%d0%b0%d0%bb
Всего голосов 4: ↑1 и ↓3-2
Комментарии2

Как работают квантовые компьютеры. Собираем паззл

Время на прочтение33 мин
Количество просмотров243K


Квантовые компьютеры и квантовые вычисления — новый баззворд, который добавился в наше информационное пространство наряду с искусственным интеллектом, машинным обучением и прочими высокотехнологическими терминами. При этом мне так и не удалось найти в интернете материал, который бы сложил у меня в голове пазл под названием “как работают квантовые компьютеры”. Да, есть много прекрасных работ, в том числе и на хабре (см. Список ресурсов), комментарии к которым, как это обычно и бывает, еще более информативны и полезны, но картинка в голове, что называется, не складывалась.


А недавно ко мне подошли коллеги и спросили “Ты понимаешь как работает квантовый компьютер? Можешь нам рассказать?” И тут я понял, что проблема со складыванием в голове целостной картинки есть не только у меня.


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

Получилось или нет - решать, как обычно, вам.
Всего голосов 111: ↑111 и ↓0+111
Комментарии105

Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1

Время на прочтение4 мин
Количество просмотров53K

Введение


Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только начались упоминания о нём на хабре. Начал бесцельно запускать фтп-сервера, пробовать Node.js и прочие мелкие серверные дела, пока не приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на просторах интернета вроде дистанционного открытия гаража я не стал — в силу нормального не знания системы Linux и серверных языков программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии28

Qt Framework: потоки, иерархический конечный автомат, работа с USB-устройствами = QThread + QStateMaсhine + libUSB

Время на прочтение68 мин
Количество просмотров25K
Почти все разработчики программного обеспечения рано или поздно подходят к этапу, когда необходимо применить технологию распределения задач по отдельным потокам. Сейчас трудно представить разработку без применения того или иного фреймворка (framework).
Множество из них содержат необходимые инструменты для создания многопоточных приложений. Не исключение и Qt Framework.

Поговорим о методах Qt многопоточной разработки подробнее.

Сообщество разработчиков ПО на Qt Framework огромно. Люди охотно делятся навыками и приёмами создания многопоточных приложений. Существует множество замечательных книг и статей по вопросам изящного и не очень решения задачи работы с несколькими потоками.
Казалось бы, всё уже решено. Что ещё можно добавить?
Попробую описать работу потока на основе функционирования конечного автомата. Признаюсь, не находил материалы с подобным решением в сети.
Если статья поможет вам с идеей, что, по моему мнению, гораздо ценнее написанного кода, буду очень рад.

Выражаю отдельную благодарность А. Н. Боровскому за книгу «Qt4.7+.Практическое программирование на C++».
Рекомендую к обязательному прочтению!
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии28

Windows воспринимает Dvorak, как QWERTY. Исправляем сие недоразумение

Время на прочтение13 мин
Количество просмотров2.9K

Каждый, кто создавал кастомную не-QWERTY раскладку клавиатуры через Microsoft Keyboard Layout Creator (MSKLC), обнаружил, что в процессе работы во множестве программ (включая все программы в .NET) горячие клавиши находятся на тех же местах, что и раньше у QWERTY-раскладки (Ctrl+C, Ctrl+V всё там же; для пользователя Dvorak это теперь Ctrl+J и Ctrl+K, соответственно).

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

Починить раз и на всегда!
Всего голосов 10: ↑10 и ↓0+10
Комментарии15

Обработка 40 ТБ кода из 10 млн проектов на выделенном сервере с Go за $100

Время на прочтение52 мин
Количество просмотров11K
Написанной мной инструмент командной строки Sloc Cloc and Code (scc), который теперь доработан и поддерживается многими отличными людьми, подсчитывает строки кода, комментарии и оценивает сложность файлов внутри каталога. Здесь нужна хорошая выборка. Инструмент подсчитывает в коде операторы ветвления. Но что такое сложность? Например, заявление «У этого файла сложность 10» не очень полезно без контекста. Чтобы решить эту проблему, я запустил scc на всех исходниках в интернете. Это также позволит найти какие-то крайние случаи, которые я не рассматривал в самом инструменте. Мощное испытание методом грубой силы.

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

Короче говоря, я загрузил и обработал много исходников.

Голые цифры:

  • 9 985 051 репозиториев всего
  • 9 100 083 репозитория хотя бы с одним файлом
  • 884 968 пустых репозиториев (без файлов)
  • 3 500 000 000 файлов во всех репозиториях
  • Обработано 40 736 530 379 778 байт (40 ТБ)
  • Идентифицировано 1 086 723 618 560 строк
  • Распознано 816 822 273 469 строк с кодом
  • 124 382 152 510 пустых строк
  • 145 519 192 581 строк комментариев
  • Общая сложность по правилам scc: 71 884 867 919
  • 2 новые ошибки, найденные в scc
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии14

xbmcswift2 — микро-фреймворк для написания плагинов к Kodi (XBMC)

Время на прочтение7 мин
Количество просмотров7.1K

Вступление


Это, так сказать, «бонусная» статья в моей серии статей о плагинах к медиацентру Kodi (XBMC). Прежде всего, необходимо отметить, что, начиная с версии 14.0, популярный медиацентр меняет название с XBMC на Kodi. О причинах смены названия можно почитать на официальном сайте и форуме, и для нашей статьи они не принципиальны. Однако дальше в статье будет использоваться новое название — Kodi.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Реверс инжиниринг протокола пульта от инверторного кондиционера Electrolux

Время на прочтение12 мин
Количество просмотров15K


В этой статье я опишу свой опыт и основные этапы изучения ИК пульта от кондиционера. Из инструмента понадобится Arduino nano на mega328 и приемник ИК сигналов (у меня VS1838B).
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии21
1
23 ...