Pull to refresh

Присматриваемся к одноплатникам на RISC-V, обзор модуля Sipeed Lichee RV на процессоре Allwinner D1

Reading time20 min
Views24K
Sipeed Lichee RV

Одноплатные компьютеры на RISC-V процессоре сравнительно новое веяние. Поднебесная активно работает над снижением зависимости от западных информационных систем и технологий, именно поэтому новая открытая архитектура RISC-V одна из ключевых ставок Китая. Для продвижения в массы китайский чипмейкер Allwinner на базе ядра Alibaba/T-Head Xuantie C906 RISC-V разработал процессор Allwinner D1 и упрощенную модификацию Allwinner D1s. На сегодня разработано несколько одноплатников на RISC-V процессоре, и в первенство по массовости вырвалась компания Sipeed с модульным компьютером Система-на-Модуле Lichee RV с 512 Мб ОЗУ всего за $16.90, работающим на Linux. Разработчик может спроектировать несущую плату для данного модуля, добавив необходимые периферийные устройства и разъемы. В результате получится решение максимально подготовленное для себя. Данный модуль предназначен для создания интеллектуальных информационных систем, терминалов, роботов, и т.д. В первой части рассмотрим архитектуру процессора, возможности модуля, дистрибутивы, программное обеспечение. Во второй части детально рассмотрим порты и интерфейсы для программирования, напишем программы на Python и C#.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments37

SCADA «BortX» с поддержкой языка управления в рамках ANSI /ISA-88 для ESP8266

Reading time4 min
Views6.3K
Признаюсь честно — очень люблю cовременные микроконтроллеры. В частности, производства китайского производителя Espressif Systems с интерфейсом Wi-Fi. Речь, естественно, идет о ESP8266 и ESP32, которые обладают большим потенциалом в образовательном контексте.

image

Конечно, у них есть свои недостатки. Но цена. Это чудо. В частности, если покупаешь условный «Witty Cloud» за три доллара, в котором даже не надо мучаться вопросами питания и программирования. Сфера применения в IoT позволяет создать собственные проекты автоматизации различными путями — классическим образом: путем написания кода и работы в IDE. Или через тот же FLProg. Однако, как всегда, есть нюансы, несколько тормозящие репрезентацию работы в рамках типового применения ESP8266 как аппаратной основы. И проблема вовсе не в сетевом подключении, осуществляемой к домашней/офисной локальной сети с выходом в Internet через роутер.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

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

Reading time4 min
Views2K

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Старые протоколы, которыми можно пользоваться и сегодня

Reading time13 min
Views11K
Устали от тяжёлых веб-страниц, всплывающих окон, мерцающих баннеров, N-факторной аутентификации, слежки за пользователями и аналитики? Тогда вы можете попробовать поработать с протоколами, которые не менялись последние тридцать лет.


Примерно тридцать лет назад люди видели онлайн-страницы так.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments23

From four to thirty two. Early years of computers and networks in Russia

Reading time38 min
Views1.6K

Part I: From four to eight



I like to read the memoirs of people who observed the computers taking first steps in their countries. They always have something romantic about them. Usually, such memories are greatly influenced by the circumstances of that encounter with his first computer: it could be the workplace, or education establishment, it could be just an unexpected and random thing.

Like many of my friends, I was lucky to see the end of that special romantic period, when computer makers were not trying to please the regular users. They were creating the devices with distinctive and unique features they thought were right for some of reasons. This approach is clear to see in both software and hardware. Such features were making the device to sell in millions or be a commercial failure.

It all started differently for different people. Some of them were working with buzzing massive computers that could fill an entire room, the others had desktop-style home computers. There were people, who made their first computer themselves using specialist magazine publications. Different types of computers created the variety of specific traditions, interests and subcultures.
Read more →
Total votes 5: ↑4 and ↓1+3
Comments1

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

Reading time10 min
Views22K

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

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

Программирование на Python и установка Docker для Sipeed Lichee RV RISC-V

Reading time15 min
Views9.1K
Lichee RV

В первой части познакомились с процессором Allwinner D1 на RISC-V архитектуре, рассмотрели возможности, поработали с одноплатным компьютером Sipeed Lichee RV. Старый образ операционной системы содержал многие недоработки, которые не позволяли полностью оценить работу одноплатника. В продолжение рассмотрения Lichee RV, возьмем новый образ Ubuntu, построенный на последнем ядре Linux 5.19, окончательный выпуск которого ожидается в конце июля 2022 года. Поработаем с GPIO из Python`а и установим Docker. Теперь полноценно протестируем новый образ, проверим на что способна плата и начнем уже программировать на Python.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments6

Ломаем модифицированный AES-256

Reading time9 min
Views58K
Недавно в институте я столкнулся с любопытной криптографической задачей, которой хотел бы поделиться с Сообществом. Одним предложением задачу могу обозначить, как "Атака на LSX-шифр, не содержащий нелинейной компоненты, на основе открытых текстов". Так как русскоязычных примеров решения таких учебных «головоломок» встречается немного, а сама задача рекомендована для начинающих свой путь специалистов, я считаю, что такая статья может быть интересна юному криптоаналитику. Пожалуйте под кат.
image

Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments4

Кратко с реализацией о AES 128 ECB

Reading time5 min
Views10K

Если вбить в яндекс 'aes 128 ecb mode', найдутся хорошие статьи ребят на "хабре": раз и два — толковые и одновременно слишком подробные.


Рассказ об алгоритме в картинках находится здесь (который также можно найти по ссылкам в одной из статей ребят выше).


Кратко об алгоритме: 1) создаем объект с 16-байтным state и массивом 16-байтных ключей; 2) пишем примитивы для объекта (они же трансформации); 3) запускаем n раз (где n — кол-во раундов). Все трансформации делаем симметричными — для зашифровки и расшифровки одновременно. Расшифровка в терминах алгоритма — это зашифровка наоборот.


Структура:


using byte_t = unsigned char;
struct aes128 {
  aes128(const std::string& text, const std::string& cipher, bool decrypt = false)
    : state({begin(text), end(text)}), keys({{begin(cipher), end(cipher)}}), decrypt(decrypt) {}
  aes128() = default;
  aes128(const aes128&) = default;

  std::vector<byte_t> state;
  std::vector<std::vector<byte_t>> keys;
  bool decrypt;
}
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments8

Как устроен AES

Reading time7 min
Views291K

О чём эта статья



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

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

Читать дальше →
Total votes 120: ↑115 and ↓5+110
Comments45

Создаем плагин региона для Oracle Application Express

Reading time8 min
Views7.5K
Данная статья предназначается всем тем, кто плотно работает с Oracle Application Express (в просторечии — APEX, а то и просто апекс). А так же тем, кто что-то слышал и подумывает начать использовать его в работе. После прочтения статьи, я надеюсь, у вас прибавится желания сделать это.

Вводная информация


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

  • Что такое SQL и PL/SQL, и чем они друг от друга отличаются
  • Какие объекты бывают в СУБД Oracle и зачем они нужны (таблицы, пакеты, вью)
  • Основные компоненты приложения апекса: страница, регион, итем, процесс и т. д., как их создавать и удалять
  • Основы администрирования апекса: как создать в оракле таблицу, пакет, вью и как потом сделать их доступными для своего приложения
  • Как использовать значение итема в качестве параметра SQL-запроса

Ничего сверхсложного в этих пунктах нет, всеми этими вещами на базовом уровне можно более-менее овладеть за месяц неспешной работы. Пример предназначен для пятой версии апекса, которая вышла чуть меньше года назад.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments0

Google Analytics — обходим семплирование и собираем сырые данные

Reading time7 min
Views11K
image
Привет!

Если у вас посещаемый сайт (более 500 тысяч сессий за отчетный период) или вы строите какие-то сложные отчеты через интерфейс (сегментирование, подключение дополнительных параметров, частое изменение отчетного периода) — Google Analytics начинает экономить свои ресурсы и включает семплирование данных. Подробности хорошо описаны в официальной справке. То есть, чтобы подготовить вам отчёт, берутся не все данные, а какая-то часть, например 30%, и потом пропорционально показатели подгоняются под 100% и отображаются у вас в отчете.

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

Избежать проблемы легко — подключить Google Analytics 360, но дорого.
Давайте научимся собирать сырые данные, используя бесплатный Google Analytics.

// эта инструкция — не решение всех ваших проблем, знакомимся с технологией!

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

«Пишите письма…» или тренируемся работать с данными по обращениям граждан в правительство Москвы (DataScience)

Reading time19 min
Views5.8K
Приветствую коллеги! Пришло время продолжить наш спонтанный мини цикл статей, посвящённый основам машинного обучения и анализа данных.

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

Итак, сегодня мы с Вами поднимем животрепещущую тему – обращения граждан в органы исполнительной власти Москвы, нас с вами сегодня ждет: краткое описание набора данных, примитивный анализ данных, применение к ним модели линейной регрессии, а также краткая отсылка к учебным курсам для тех, кто совсем ничего не поймет из материала статьи. Ну и конечно же останется пространство для самостоятельного творчества.

Напомню, что наша статья рассчитана в первую очередь на начинающих любителей Python и его распространённых библиотек из области DataScience. Готовы? Тогда, милости прошу под кат.


Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments5

GA Measurement Protocol — полное руководство

Reading time8 min
Views25K

На Хабре уже есть один обзор Measurement Protocol, но так как есть ряд дополнений и наличие кейсов — решил написать полное руководство.

Содержание

  • Техническая сторона

    • Обязательные параметры
    • Передача взаимодействия в GA
    • Параметры cid, uid, ni

  • Measurement Protocol на практике

    • Стандартный код отслеживания GA
    • Интеграция с CRM
    • Отслеживание транзакций
    • Возврат или частичный возврат средств
    • Оффлайн-точки продаж
    • Открытие писем

  • Дополнительные ресурсы
  • Выводы
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

Как не заменить фару сосиской: определение качества изображений в сервисе оценки технического состояния автомобиля

Level of difficultyMedium
Reading time19 min
Views2K

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

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

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments1

Компиляция программ с помощью Notepad++

Reading time17 min
Views55K

Компиляция программ при помощи текстового редактора на примере Notepad++




Цель: Научиться компилировать программы из командной строки. Научиться компилировать из текстового редактора Notepad++ (вернее научиться писать скрипты и связывать их), создавать скрипты и макросы, устанавливать системные переменные.

Сам текстовый редактор ничего не компилирует и не запускает. Также как и IDE не компилирует. Компиляция происходит с помощью компилятора. Выполнение производится некоторой средой выполнения. Это может быть интерпретатор команд или среда выполнения.
При компиляции программы на C# упаковываются в сборки. Код на языке IL автоматически преобразуется в код для конкретного процессора. Что относится к java, то скомпилированные файлы .class выполняется виртуальной машиной Java. Файлы .java компилируются в бай-код, то есть некоторый промежуточный код. Компиляция в exe файл тоже производится компилятором.

.EXE (сокр. англ. executable — исполнимый) — расширение исполняемых файлов, применяемое в операционных системах DOS, Windows, Symbian OS, OS/2 и в некоторых других, соответствующее ряду форматов. Процесс получения exe файла состоит из следующих этапов: препроцессинг, ассемблирование, компилирование, линковка.

ОUT файлы — исполняемые файлы для UNIX-подобных операционных систем.
Файл может хранить исполняемый код, общую динамическую библиотеку или объектный код.

Терминология

Читать дальше →
Total votes 27: ↑17 and ↓10+7
Comments51

Особенности «национальной» маршрутизации

Reading time3 min
Views16K
Каждый, кому приходится заниматься хоть немного IP-сетями представляет основы IP-маршрутизации.
Можно не знать протоколов динамической маршрутизации, или знать, но не до тонкостей. Можно не быть гуру OSPF, BGP и иже с ними, но тот алгоритм, по которому уже из сформированной route-таблицы (сформированной тем или иным способом, вручную или благодаря динамике) выбирается next-hop представляют многие.

Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments12

Защита от DDoS на уровне веб-сервера

Reading time5 min
Views46K
Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

image

Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments4

Флэш-память для загрузки FreeNAS и прочих embedded OS

Reading time16 min
Views118K

Аннотация


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

Еще один NAS своими руками, часть 2: хорошие воспоминания*


*Рекламный слоган одного известного производителя памяти звучит «Good memories start here».

Практически все специалисты рекомендуют при выборе загрузочной флэшки не экономить и не использовать популярный бренд noname. Несмотря на корневую файловую систему FreeNAS версии 9 в режиме read-only, потребительские USB-флэшки компактного дизайна за полгода отказывали дважды, в обоих случаях примерно спустя пару месяцев эксплуатации. Причем оба использованных бренда, по мнению некоторых опрошенных представителей отрасли, вполне адекватные и уважаемые, в поставке откровенного брака незамеченные.


На фото: два вполне адекватных представителя крохотных флэшек на 8Гб и 16Гб

В чем же дело? Бесконечен ли ресурс чтения флэш-памяти? Попробуем разобраться.
Читать дальше
Total votes 95: ↑95 and ↓0+95
Comments54

Как черные SEO-оптимизаторы собирают миллионы посетителей по высоко-актуальным запросам в Яндексе

Reading time4 min
Views58K
Мне казалось, что поисковики давно победили black hat тактики с помощью машинного обучения и других мощных технологий. Сети дорвеев если и остались, то только где-то на обочине интернета, в маргинальных тематиках типа казино или контента для взрослых.

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

image
Читать дальше →
Total votes 102: ↑101 and ↓1+100
Comments206
1
23 ...