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

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

Отправить сообщение

Смотрим на современный инструмент для FPGA

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

Область разработки для ПЛИС, довольна консервативна и неповоротлива. Поскольку она узкоспециализирована, то новые инструменты и среды появляются редко, а старые инструменты имеют свои слабости в самой своей основе и перекладывать их на новые рельсы уже ни кто не будет. Посмотрим на новый язык и инструмент для ПЛИС разработчиков, который следует современным тенденциям разработки.

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

Алгоритмы быстрого умножения чисел: от столбика до Шенхаге-Штрассена

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

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

И уж конечно, никогда при написании a * b мы не задумываемся о том, как реализовано умножение чисел a и b в нашем языке. Какие вообще есть алгоритмы умножения? Это какая-то нетривиальная задача?

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

Скорее к формулам!
Всего голосов 173: ↑173 и ↓0+173
Комментарии30

Наноматериалы и нанотехнологии. Часть IV

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

В 1986 году в Австралии был открыт редкий биоминерал – медный оксолат кальция. Его назвали мулуит. В природе этот минерал связывают с деятельностью живых организмов. Он обнаружен в лишайниках на медьсодержащих минералах. Структура кристалла долгое время (почти 40 лет) не была достоверно определена. Получение кристаллов и расшифровка структуры мулуита оказалась задачей. Кристаллографам СПбГУ в лабораторных условиях удалось синтезировать кристаллы мулуита, пригодные для рентгеноструктурного анализа, и которые возможно подробно изучить на имеющемся оборудовании.

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

В предлагаемой публикации будет рассмотрена та основа, которая обеспечивает представление внутреннего устройства материи в форме кристалла (атомной структуры, решетки). Оказалось, на нашей планете физические законы таковы, что ограничивают разнообразие представителей мира кристаллов. Имеются в виду те 230 пространственных Фёдоровских кристаллографических групп, которым подчинены закономерности устройства вещества. Этот взгляд можно воспринимать как геометрическую интерпретацию пространства со всеми его свойствами, понимая, что структуры вещества диктуются не геометрией, а химией и физикой, энергиями материальных частиц и их взаимодействием.

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

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

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

Самое понятное объяснение Специальной теории относительности

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

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

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

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

Для иллюстраций я написал интерактивный визуализатор СТО, работающий в браузере. Ссылка на него и исходники проекта в конце статьи.

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

Доступ к серверу за NAT

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+6
Комментарии34

Методы ввода иероглифов

Время на прочтение5 мин
Количество просмотров185K
Ввиду роста популярности китайского языка в последнее время, решил поделиться своим опытом и небольшими наработками в принципах и методах ввода этих самых загадочных иероглифов. Для начала немного теории, что это и с чем это есть.


Читать дальше →
Всего голосов 113: ↑109 и ↓4+105
Комментарии72

Как выглядит китайская клавиатура

Время на прочтение8 мин
Количество просмотров387K
Вы, вероятно, представляли ее себе как целый орган — грандиозное сооружение длиной в пару метров с сотнями и тысячами клавиш. На самом деле, большинство китайцев используют обычную клавиатуру с латинской раскладкой QWERTY. Но как с помощью нее можно набрать такое несметное количество различных иероглифов? Мы попросили рассказать об этом нашу сотрудницу Юлию Дрейзис. Ее с Китаем связывают и давняя любовь, и работа.

История вопроса: печатные машинки


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

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

image
Печатная машинка фирмы «Шуангэ», 1947 год (принцип действия придуман японцем Киота Сугимото в 1915 году).

Читать дальше →
Всего голосов 242: ↑237 и ↓5+232
Комментарии213

Ужасы японского языка. Письменность

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

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

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

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

Читать далее
Всего голосов 165: ↑162 и ↓3+207
Комментарии331

Формула для корейского, или распознаем хангыль быстро, легко и без ошибок

Время на прочтение7 мин
Количество просмотров23K
На сегодняшний день сделать распознавание корейских символов может любой студент, прослушавший курс по нейросетям. Дайте ему выборку и компьютер с видеокартой, и через некоторое время он принесёт вам сеть, которая будет распознавать корейские символы почти без ошибок.

Но такое решение будет обладать рядом недостатков:

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

Во-вторых, размер. Тот же самый последний слой из предыдущего примера будет весить 512 * 3001 * 4 байт, то есть около 6-ти мегабайт. Это только один слой, вся сеть будет весить десятки мегабайт. Понятно, для настольного компьютера это проблема небольшая, но на смартфоне не все будут готовы хранить столько данных для распознавания одного языка.

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

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

И сегодня я расскажу, как нам удалось решить эти проблемы.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии18

Не Мистер Робот: фильмы и сериалы про IT, про которые вы могли не знать

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

Всем привет, с вами я - доктор Аргентум. И сегодня я изучил фильмы и сериалы про IT, ИБ и другие произведения, связанные с ними. Я постарался включить в этот топ фильмы и сериалы, про которые вы могли не знать.

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

Погнали!

Читать далее
Всего голосов 12: ↑4 и ↓8-2
Комментарии25

Ручная работа со стеклом. Соединение деталей в плоские и объёмные конструкции

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров6.6K
Работа со стеклом. Техника Тиффани

Стекло — особенный материал с необычными свойствами и, как правило, не вызывает энтузиазма при вероятном применении в своих работах, когда речь идёт о техническом творчестве в домашней лаборатории-мастерской. Слишком оно капризно в обработке, требует специального инструмента и приёмов, работа длительная и кропотливая. Тем не менее предложенная несложная техника расширяет возможности мастера-самоделкина и открывает ряд перспектив как художественного, так и сугубо утилитарного толка.
Читать дальше →
Всего голосов 80: ↑80 и ↓0+80
Комментарии23

Распаковываем файл gzip вручную

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

В этой небольшой статье мы создадим файл gzip, после чего разберём его внутренние составляющие и просмотрим начинку. Избегая лишней сложности, в качестве содержимого для сжатия мы просто запишем в изначальный файл 8 символов a.

$ echo "aaaaaaaa" > test.out
$ xxd test.out
00000000: 6161 6161 6161 6161 0a     aaaaaaaa.

Файл получился размером 9 байт — 8 символов a плюс перевод каретки в конце.

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

$ gzip -1 test.out
$ xxd test.out.gz
00000000: 1f8b 0808 bf35 6a61 0403 7465 7374 2e6f  .....5ja..test.o
00000010: 7574 004b 4c84 002e 00b6 66d7 ad09 0000  ut.KL.....f.....
00000020: 00

Дисклеймер: эту статью я писал в целях обучения, так что мог допустить некоторые ошибки. Мне нравится заниматься низкоуровневым программированием, но моя основная деятельность сосредоточена на веб-разработке для Microsoft Teams.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+54
Комментарии14

Озвучка самокатов, часть 2: MIDI через пьезоизлучатель

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

Всем привет! В первой части статьи мы рассказали о том, как на наших IoT модулях реализована схема управления пьезоэлектрическим излучателем (баззером) с регулировкой частоты и амплитуды; как эта схема управляется микроконтроллером программно, воспроизводя простые звуки и мелодии. Такая реализация показала себя надежной в эксплуатации, нетребовательной к ресурсам и на начальном этапе решала задачу базовой озвучки самоката. Шло время, появлялись новые сценарии взаимодействия с пользователями и нам самим хотелось чего-то большего — например, хорошо было бы сделать звучание самоката более “фирменным”, узнаваемым и приятным на слух. Так мы и задумались о “звуковом рефакторинге” — об этом и расскажем вам в этой статье.

Слушать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Озвучка самокатов, часть 1: зачем нам пьезокерамика и как ее готовить

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

В Софт, хард и два колеса: как мы строили IT-инфраструктуру в Whoosh упоминалось, что первые версии IoT мы ставили под непрозрачную крышку, замещая стандартный модуль управления от самоката Xiaomi M365. То есть, после установки и проклеивания крышки, связь с модулем была только через облако. В идеальном мире этого было бы достаточно, но реальность диктовала условия, в которых нужна была индикация процессов — как в режиме обслуживания, так и в городе, у пользователей. Прием управляющих команд, отправка телеметрии, подключение к сети и выход устройств в онлайн — разные этапы нужно было различать сервисной команде для быстрой диагностики, а пользователя — предупреждать об изменениях в базовых сценариях использования — командах, ошибках, ограничениях и т.д.

Нужны звуки — решили ставить buzzer (или зуммер). Это такая электромеханическая штуковина, которая под воздействием внешнего переменного напряжения умеет деформироваться и издавать звуки.

Под катом рассмотрим базовые принципы работы излучателей, стандартные техники дизайна управляющей электроники, а в продолжении расскажем, как мы выжали из зуммера максимум возможностей

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

Как устроен протокол iMessage

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

В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.

Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.

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

Измерение скорости чтения-записи носителей с помощью утилиты dd

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров17K
Недавно, я вновь побывал в роли технического эксперта, когда занимался переводом книги «Understanding Software Dynamics» от Richard L. Sites. В ходе работы над главой — про скорость работы с жёстким диском, мне поступил вопрос от коллеги: каким образом можно просто и быстро измерить скорость чтения и записи твердотельных носителей информации, в разрабатываемых в компании устройствах? При этом стояла задача реализовать всё это наиболее простыми способами, чтобы они были переносимы между совершенно разными платформами и архитектурами. Носители же информации могут быть любыми: USB Flash, eMMC, SD, NAND и прочее, прочее. Единственное, что их объединяет — это Linux.

Задача захватила меня с головой…
Читать дальше →
Всего голосов 41: ↑39 и ↓2+57
Комментарии47

Реверс-инжиниринг ячейки регистра процессора Intel 386

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

Новаторский Intel 386 (1985 год) стал первым 32-битным процессором линейки x86. У него есть множество внутренних регистров: регистры общего назначения, индексные регистры, селекторы сегментов и более специализированные регистры. В этом посте мы изучим кремниевый кристалл 386 и объясним, как реализованы некоторые из этих регистров на уровне транзисторов. Изученные мной регистры реализованы как статическое ОЗУ, где каждый бит хранится в стандартной восьмитранзисторной цепи, называемой «8T». Исследование этой цепи демонстрирует интересные техники размещения, использованные Intel для «сжатия» двух ячеек с целью минимизации необходимого им пространства.
Читать дальше →
Всего голосов 69: ↑68 и ↓1+96
Комментарии6

О чем нам намекают естественные системы физических единиц

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

Мы привыкли к различным единицам измерения, всяким метрам в секунду и киловатт-часам. В формулы пролезают многочисленные константы - c (скорость света), h (постоянная Планка), G (гравитационная постоянная), k (постоянная Больцмана). Однако оказывается, что для фундаментальной физики куда удобнее принять одну из 'естественных' единиц. Таких систем несколько - но лучше по англ.

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

Наоборот, некоторые системы (Система Си) только запутывают (см. главу "Критика"): Вследствие этого в системе единиц СИ электрическое поле и электрическая индукциямагнитное поле и магнитная индукция (в сущности — различные компоненты тензора электромагнитного поля) имеют разную размерность. Такую ситуацию Д. В. Сивухин характеризует так:

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

«Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib

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

Сперва я рассказывал простые вещи о Telegram Bot API и делал интересных ботов — виртуальную подругу и друга для заказа шавермы. Затем коснулся тестовых серверов и юзерботов. И наконец, пришла пора заглянуть глубже — узнать, как сделать свой клиент для Telegram. Что такое TL-схема и TDLib? Об этом мы сегодня и узнаем.

Данная статья не только поможет тем, кто решил написать свой клиент для Telegram, но и немного расширит кругозор остальным: MTProto — это не приевшийся JSON API. Добро пожаловать под кат!

Готовы показать свои знания в IT? Примите участие в IT-кроссворде Selectel, выиграйте 10 000 рублей на аренду серверов и эксклюзивный мерч Selectel.

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

Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 7 — Заключительная

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

Алгоритм Шора

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

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность