Pull to refresh
-7
Karma
0
Rating
Сергей Зорин @Kemet

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

  • Posts
  • Comments

Визуализация при помощи генеративных алгоритмов: дифференциальная сетка (2D и 3D) и трещины

PythonAlgorithmsData visualizationGraphic designDesign
Translation
Tutorial
image

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

Все что вам необходимо знать: последнее время автору были особенно интересны биологические образы и дифференциальный рост. В посте есть результаты экспериментов с различными биологическими и физическими закономерностями, в частности дифференциальной сеткой, в том числе в 3D, и трещинами.
Осторожно, тяжелые красивые картинки
Total votes 18: ↑18 and ↓0 +18
Views3.2K
Comments 1

News

Show more

Ещё один велосипед: храним юникодные строки на 30-60% компактнее, чем UTF-8

AlgorithmsData storageData compression


Если вы разработчик и перед вами стоит задача выбора кодировки, то почти всегда правильным решением будет Юникод. Конкретный способ представления зависит от контекста, но чаще всего тут тоже есть универсальный ответ — UTF-8. Он хорош тем, что позволяет использовать все символы Юникода, не тратя слишком много байт в большинстве случаев. Правда, для языков, использующих не только латиницу, «не слишком много» — это как минимум два байта на символ. Можно ли лучше, не возвращаясь к доисторическим кодировкам, ограничивающим нас всего 256 доступными символами?

Ниже предлагаю ознакомиться с моей попыткой дать ответ на этот вопрос и реализацию относительно простого алгоритма, позволяющего хранить строчки на большинстве языков мира, не добавляя той избыточности, которая есть в UTF-8.
Читать дальше →
Total votes 92: ↑90 and ↓2 +88
Views10.7K
Comments 85

Очередная статья: STM32 для начинающих

Programming microcontrollers
Всех приветствую!

Это моя первая статья на Хабре, поэтому прошу не кидаться тяжелыми предметами. Заранее спасибо.

Начнем с предыстории. Когда-то мне пришлось перейти на микроконтроллеры ARM фирмы ST. Это было связано с тем, что PIC и AVR уже не хватало и хотелось новых приключений. Из доступного в хлебобулочных магазинах и большого количества статей о «быстром старте» выбор пал именно на STM32F100.

Я привык работать в IAR. Да, есть другие IDE, но мне хватает возможности IAR: относительно удобный редактор, не плохой отладчик и достаточно удобно работать с регистрами во время отладки.

Когда я попытался сделать первый проект меня ждало разочарование — CMSIS! Кому как, но для меня это было (и остается) ужасом: много буков, длинные и для меня не понятные структуры. Вникать во все это было не интересно. Попытался скомпилировать пару примеров и понял — это не наш метод.
Читать дальше →
Total votes 29: ↑22 and ↓7 +15
Views14.7K
Comments 43

Подсказки по микросервисной автоматизации процессов

Microservices
Translation

Camunda Microservice Workflow Automation 1


Возможно, ваша компания захочет перейти на архитектуру микросервисов и автоматизировать рабочие процессы (в этом посте блога я не вдаюсь в мотивацию, но вы, возможно, захотите прочитать о 5 Workflow Automation Use Cases You Might Not Have Considered или BizDevOps — the true value proposition of workflow engines). Это ставит вас в ряд со многими нашими клиентами. Как правило, у вас возникнут вопросы:


  • Область применения и границы — какой рабочий процесс вы хотите автоматизировать и как он ложится на несколько микроуслуг, или разраниченный контекст в вашем ландшафте. Я ограничен объемом этого поста, поэтому я не затрону эту тему сегодня, но вы, возможно, захотите прочитать Avoiding the «BPM monolith» when using bounded contexts или Real-Life BPMN.
  • Стек и инструменты — какой движок процессов я могу использовать?
  • Архитектура — я запускаю движок процесса централизованно или децентрализованно?
  • Управление — кто владельцы модели рабочего процесса и как ее развертывать?
  • Операции — как мне сохранить контроль?
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Views7K
Comments 4

Продолжение очередной статьи: STM32 для начинающих. Интерфейсы

Programming microcontrollers
Предыдущая публикация: «Очередная статья — STM32 для начинающих»

И как этим пользоваться?


В предыдущей статье создали класс для работы с портами ввода-вывода, проверили. И что дальше? Зачем это все запихивать в класс?

Возьмем для примера простенький опрос кнопок:


Для этой схемы в простейшем случае опрос будет выглядеть так:

int GetKey()
{
  volatile uint32_t* addr = reinterpret_cast<uint32_t*>(GPIOA_IDR);
  uint32_t ret_val = *addr;
  return ret_val & 0x0F;
}
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Views5.1K
Comments 13

SIP телефон на STM32F7-Discovery

EmboxSystem ProgrammingAsteriskDevelopment of communication systemsProgramming microcontrollers
Всем привет.

Некоторое время назад мы писали о том как нам удалось запустить SIP телефон на STM32F4-Discovery c 1 Мб ROM и 192 Кб RAM) на базе Embox. Тут надо сказать, что та версия была минимальной и соединяла два телефона напрямую без сервера и с передачей голоса лишь в одну сторону. Поэтому мы решили запустить более полноценный телефон со звонком через сервер, передачей голоса в обе стороны, но при этом уложиться в как можно меньший размер памяти.

Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Views11K
Comments 9

Разбираемся в особенностях графической подсистемы микроконтроллеров

EmboxOpen sourceSystem ProgrammingProgramming microcontrollers
Привет!

В этой статье я бы хотел рассказать об особенностях реализации графического пользовательского интерфейса с виджетами на микроконтроллере и как при этом иметь и привычный пользовательский интерфейс и приличный FPS. Внимание я хотел бы акцентировать не на какой-то конкретной графической библиотеке, а на общих вещах — память, кэш процессора, dma и так далее. Поскольку я являюсь разработчиком команды Embox, приведенные примеры и эксперименты будут на данной ОС РВ.

Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views10.5K
Comments 46

Обновление для IDE EmBitz 1.11

ProgrammingCompilersDebuggingProgramming microcontrollers
На официальном форуме появилось обновление для IDE EmBitz 1.11. Оно включает в себя расширенный список поддерживаемых микроконтроллеров STM32, обновленные версии библиотек CMSIS, SPL, HAL и LL, а также текущую версию компилятора gcc-arm-none-eabi-9-2020-q2-update и GDB сервер EBlink, необходимый для прошивки и отладки микроконтроллеров.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views4K
Comments 24

Go: Как использовать nil-значения без использования ссылочных типов

Go
Translation


Создано на базе изображений gopherize.me


Довольно часто из Go кода нам приходится работать с различными HTTP API или самим выполнять роль HTTP сервиса.


Один из частых случаев: получаем данные в виде структуры из базы данных, отправляем структуру внешнему API, в ответ получаем другую структуру, как-то её преобразуем и сохраняем в базу.


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


Для API нормальна ситуация, когда в структурах запроса и ответа есть поля, которые могут быть nil и могут принимать какие-то не-nil значения. Такие структуры выглядят обычно так

Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Views3.5K
Comments 6

Отзывчивый размер шрифта

Website developmentCSS
Sandbox

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


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


Но потом появились они — vw, vh, vmin, vmax — единицы измерения, которые базируются на viewport. У нас появился шанс на отзывчивую типографику.


Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views51.1K
Comments 20

За пределами массива

Reading roomCyberpunk
Sandbox
image

Усталость


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

Я слишком глуп для этой работы. Может сказывается отсутствие математической базы? Или может просто нет таланта. Наверное, у меня другой склад ума. Смотрю по сторонам и вижу беззаботный смех моих коллег, кажется, что им дается все намного легче. Код на кончиках пальцев. У меня все не так. Хотя это пройдет, я точно это знаю. Как только я закрою этот проект, появится легкое чувство эйфории, так бывает всегда. А потом, снова окунувшись в очередное болото программного кода, ты теряешь веру в себя. Это “колесо сансары” и я из него не выйду никогда.
Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Views19.5K
Comments 31

Мандатная модель распределения прав в FreeBSD v.2.0

System administration*nixServer Administration
🔥 Technotext 2020

Введение


В данной публикации пойдёт речь о мандатной модели bsdextended, на handbook её описывают как брандмауэр файловой системы. Преимущество данного подхода над тем который я описывал в данном руководстве является тот факт, что не имеет значения какая файловая система используется, так как ограничения будут происходить не по меткам на файлах, а по uid и gid пользователей.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views2.8K
Comments 9

Aнглийский для демо (структура, фразы, Q&A, грамматика, советы)

AgileIT careerPresentationsLearning languages


Демо в конце спринта (будь то внутреннее, заказчику или крупному клиенту) — это настоящая проверка знания английского для не носителя языка, так как эта небольшая презентация показывает:

  • беглость речи (fluency)
  • точность (accuracy) — много или немного ошибок в речи в целом
  • спонтанность языка (особенно, когда задают вопросы)
  • произношение
  • владение грамматикой
  • богатство или бедность лексики
  • насколько правильно человек умеет составлять предложения (структуры русского и английского предложения отличаются)
  • умение структурировать речь с помощью связующих слов (linking devices: e.g. firstly, secondly, finally, in addition, what concerns, etc.).
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views7K
Comments 4

Телефонный номер через ГосУслуги

ZadarmaSaaS / S+SAPIDevelopment of communication systemsCloud services
Если во время удаленной работы вам все равно нужно звонить и принимать звонки, без виртуального номера не обойтись. Но что делать, если нет возможности идти в офис оператора, или желания отправлять ему сканы документов?
Все, у кого есть подтвержденный аккаунт в ГосУслугах либо в крупных банках, могут включить себе виртуальный номер и бесплатную АТС за несколько минут — без загрузки документов или посещения офисов. Как это сделать быстро и просто опишем ниже.



Читать дальше →
Total votes 31: ↑25 and ↓6 +19
Views12.6K
Comments 12

Работа с SD-картой по интерфейсу SPI. Реализация на VHDL

FPGAProgramming microcontrollers
Привет, Habr! Однажды на работе мне досталась задача оценить возможность реализации хранения данных на SD-карте при подключении ее к FPGA. В качестве интерфейса взаимодействия предполагалось использование SPI, так как он проще в реализации. Полученным опытом хотелось бы поделиться.


Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views10.3K
Comments 16

Популярные ошибки в английском среди IT-специалистов. Часть 2: Произношение

Learning languages


Моя статья «Популярные ошибки в английском среди IT-специалистов» собрала много комментариев с полезными дополнениями. И я решила выпустить вторую часть, теперь посвященную Произношению.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views16K
Comments 69

Легкий способ выучить язык (любой)

Learning languages
Хочу побыть санитаром леса хабра и описать мой опыт и опыт других людей, которых я знаю лично по изучению иностранного языка (любого). Критерий успеха в этом деле я вижу один — когда переводчик не нужен уже (99% времени), ни словарь, ни контекстный. И постараюсь показать как пройти этой же дорогой, до того уровня, который вам нужен.
Без регистрации, СМС, выбрасывания денег (часто больших) и кучи времени. Настолько легко и приятно, насколько это в принципе возможно.

Чтобы таким образом постов с разного рода помощью в изучении языка стало как можно меньше (в идеале ноль). Я не нашел ничего в таких постах за прошлые годы, что бы было как максимум интересно мне, или как минимум (исходя из опыта) полезно тем, кто изучает языки. В 99% это фантазии непонятно кого о том, как «можно было бы» изучать язык, но толку от этого нет, как показывает практика (или это даже вредно).

image
Читать дальше →
Total votes 14: ↑5 and ↓9 -4
Views7K
Comments 27

Языковая механика стеков и указателей

ProgrammingGo
Translation

Прелюдия


Это первая из четырех статей в серии, которая даст представление о механике и дизайне указателей, стеков, куч, escape analysis и семантики значения/указателя в Go. Этот пост посвящен стекам и указателям.

Оглавление цикла статей:

  1. Language Mechanics On Stacks And Pointers
  2. Language Mechanics On Escape Analysis (перевод)
  3. Language Mechanics On Memory Profiling (перевод)
  4. Design Philosophy On Data And Semantics

Вступление


Не буду лукавить — указатели трудны в понимании. При неправильном использовании указатели могут вызвать неприятные ошибки и даже проблемы с производительностью. Это особенно верно при написании конкурентных или многопоточных программ. Неудивительно, что многие языки пытаются скрыть указатели от программистов. Однако, если вы пишете на Go, вы не сможете избежать указателей. Без четкого понимания указателей вам будет сложно писать чистый, простой и эффективный код.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views4.4K
Comments 7

Минисериал: троичный компьютер своими руками

Abnormal programmingEntertaining tasksProgrammingAlgorithmsDIY

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


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


Читать дальше →
Total votes 141: ↑141 and ↓0 +141
Views25.3K
Comments 148

Information

Rating
5,765-th
Location
Россия
Registered
Activity