![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/a81/179/6fc/a811796fc7abeab47c2fca956daa0c5b.png)
Студент
Пишем надстройку для Excel на .NET с помощью библиотеки Excel-DNA
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/db9/bb5/795/db9bb5795bb817c5f5c7ab92a5203f01.png)
Excel-DNA - библиотека для .NET, с помощью которой можно написать и собрать полностью самодостаточный файл надстройки для Excel с расширением .xll
Этот файл достаточно положить в пользовательскую папку, без прав администратора, и просто включить в настройках Excel.
Такая надстройка будет иметь доступ к COM-модели Excel, C API Excel - позволяет взаимодействовать с интерфейсом программы и рабочими книгами. Сможет реализовать пользовательские формулы и добавить свое меню на интерфейсную ленту Ribbon UI.
В статье я расскажу как написать свою формулу для Excel на C#. Собрать и установить свою первую надстройку.
Ломаем хаскелем Brainfuck
Немного о bfc
Brainfuck — очень глупый язык. Там есть лента из 30к ячеек, по байту каждая. Команды bfc это:
- Передвижение по ленте влево и вправо (символы
<
и>
) - Увеличение и уменьшение значения в ячейке (символы
+
и-
) - Ввод и вывод текущей ячейки (символы
.
и,
) - И цикл while, который продолжается пока значение в текущей ячейке не ноль.
[
и]
это начало и конец цикла соответственно
Программировать на bfc сложно. Но, как известно, любую проблему можно решить добавлением слоя абстракции (кроме проблемы большого количества абстракций).
Метод персон на примере проектирования ПО для аренды шашлычных беседок
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/545/708/05c/54570805c798e7c0ded18c3794c800cd.jpeg)
При проектировании программ кто-то использует методику Алана Купера, а кто-то считает всё это баловством. Те, кто пользуются, тоже используют её по-разному. Предлагаю посмотреть полусерьёзный пример такой проектной работы и подискутировать о том, работает это или нет.
Уточню, что сам я не являюсь проектировщиком и рассматриваю ситуацию со стороны программиста, который с переменным успехом применяет метод персон после прочтения известной книги.
Что не так с OpenAPI?
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/dd5/c89/f31/dd5c89f31e7f43b446486a71d97c7c91.png)
Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума
У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.
Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?
Создание DSL на Python с библиотекой textx
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/e45/1c9/539/e451c9539c4e958b344cced806f15268.png)
Для описания объектов и процессов в терминах бизнес-логики, конфигурирования и определения структуры и логики в сложных системах популярным подходом является использование предметно-специфических языков (Domain Specific Language - DSL), которые реализуются либо через синтаксические особенности языка программирования (например, с использованием средств метапрограммирования, аннотаций/декораторов, переопределения операторов и создания инфиксных операторов, как например в Kotlin DSL) или с помощью применения специализированных инструментов разработки и компиляторов (например, Jetbrains MPS или парсеров общего назначения, таких как ANTLR или Bison). Но существует также подход реализации DSL, основанный на синтаксическом разборе и одновременной кодогенерации для создания исполняемого кода по описанию и в этой статье мы рассмотрим некоторые примеры использования библиотеки textx для создания DSL на Python.
Домашний NAS сервер
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/a79/b7f/8aa/a79b7f8aa5faaf4147ad3a16f1eb68ac.jpg)
Домашний NAS сервер на 10 жестких дисков для личного использования на базе Linux
Когда имеется большой объем файлов, который необходимо хранить на одном домашнем сервере с низким энергопотреблением, малыми габаритами, невысоким тепловыделением и бесперебойным питанием, а также с большим количеством жестких дисков...
Стенгазета на Rust с E-Ink и ChatGPT
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/5a4/eb0/897/5a4eb08970fc786c671cf1b6141cb562.png)
Самодельная автоматически обновляющаяся газета на E-Ink с использованием Rust и ChatGPT — как вам такой DIY?
Безграничные возможности FFmpeg на примерах
![](https://habrastorage.org/webt/dt/ad/pr/dtadprv2ztglpevibimpf3o3wuu.png)
FFmpeg — швейцарский нож для мультимедиа. Совершенно незаменимая программа, которую использует в повседневной жизни почти каждый, даже не зная об этом. Например, вы сняли видео и заливаете на видеохостинг — оно перекодируется и публикуется уже в другом разрешении/формате/размере. Как вы думаете, какая программа выполнила транскодирование? Вполне возможно, что под капотом на сервере работает FFmpeg.
FFmpeg объединяет более 300 видео/аудио/графических кодеков, декордеров, муксеров, демуксеров и фильтров. Благодаря ему вы можете написать собственный видеоплеер в тысячу строчек кода, не разбираясь с кишочками видеообработки.
Это «движок» почти всех современных инструментов для обработки/сжатия/редактирования видео. Они просто предлагают графический интерфейс с кнопками, а
ffmpeg
делает реальную работу. Реверс-инжиниринг искусного двоичного сложения в нейросети
Много внимания в последнее время уделяют крупным нейронным сетям с миллиардами параметров, и это не случайно. Комбинируя множество параметров с мощными архитектурами, такими как трансформеры и диффузия, нейросети способны достичь удивительных высот. Под катом — к старту нашего флагманского курса по Data Science — разберём, как именно работает маленькая нейросеть-сумматор. Возможно, это удивит вас.
Чем заменить телевизор
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/6b8/9bf/643/6b89bf64372ed87e72356213969a5c2b.jpg)
После определенных событий, произошедших за последние несколько месяцев, начал задумываться о замене телевидения себе и своим близким. Очевидно самый простой вариант это покупка ТВ приставки с Android на борту, однако взглянув на цены и предлагаемое железо, идея отпала.
Хостинг размером с монетку. Самые маленькие компьютеры 2022 года
![](https://habrastorage.org/webt/cg/of/b6/cgofb6uizwoflxnk_r_yumuez-q.jpeg)
Раньше компьютер занимал комнату, потом шкаф, потом коробку на столе. Сегодня не проблема взять одноплатник с кредитки и собрать ПК произвольной конфигурации: это будет маршрутизатор или NAS, сервер для управления IoT или хранения файлов.
Несколько лет назад на рынке появились сантиметровые «кубики» типа NanoPi и VoCore. Миниатюрный компьютер под Linux (c WiFi, Ethernet и карточкой microSD) можно установить в любом месте дома или офиса — его почти никто не заметит.
Виртуальный COM-порт на STM32 или как управлять контроллером через USB не привлекая внимания санитаров
Написать эту статью меня сподвигли те сложности, которые пришлось пройти в попытке разобраться, как же именно ядро контроллера STM32F103 работает с драйвером USB, который находится на борту. Имеющиеся туториалы по созданию устройств, в том числе и композитных, в основном сфокусированы на особенностях использования библиотек. Но когда оставшегося места в памяти контроллера мало а парамеры его работы полностью предсказуемы, лучшим решением становится написать собственный обработчик прерываний. А для этого нужно понять,
Химия вместо гадания: перекись водорода из кофейной гущи
![](https://habrastorage.org/webt/co/cy/xg/cocyxgj4dv-igblajknqjlwb19m.jpeg)
Не будет преувеличением, если сказать, что фактически у каждого в аптечке есть перекись водорода. Любой порез или царапина часто следовали одной и той же схеме обработки: перекись, зеленка, пластырь. Кто в детстве любил и умел находить приключения на одно место, а потому получал травмы разной степени тяжести, прекрасно помнит пощипывание и вспенивание перекиси на «вавке» и возмущенные причитания родителей. Помимо первой помощи H2O2 применяется и в косметологии, и в пищевой промышленности, и даже при разработке электроники. Проблема в том, что современные методы получения столь полезного вещества крайне сложны и затратны. Посему ученые из Токийского университета (Япония) предложили использовать то, что также частенько встречается в каждом доме, а именно кофе и чай. Как именно эти напитки помогают в синтезе H2O2, при чем тут бактерии, и насколько новый метод эффективен? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Принципы домашнего танкостроения
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/050/d1b/ffd/050d1bffd0fb70857991e52d15dc5b81.jpg)
Хотели бы свой дистанционно управляемый танк? В этой статье я расскажу про общие принципы танкостроения из доступных материалов.
Создание своей эргономичной клавиатуры, часть 3: оживляем её
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/55f/f8a/d61/55ff8ad6132d5f8f2ecbe9bbf313b4c1.jpg)
В предыдущей части были заказаны для клавиатуры платы и все её детальки. Они, конечно же, все приехали и настало время смешать всё вместе и вдохнуть жизнь с помощью свежепротранслированной прошивки. Если вы пропустили о чем речь — загляните в первую часть.
Как создать редактор кода для 40+ языков с помощью React
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/cd9/197/e83/cd9197e83218207b17b5a384c31b75bc.png)
Подробностями разработки онлайн-платформы выполнения и компиляции кода более чем на 40 языках делимся к старту курса по Frontend-разработке. Автор этого материала — основатель TailwindMasterKit.
boop! Необычные эффекты по ховеру или введение в React-Spring
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/ca3/167/f11/ca3167f112396f8cef5b7f3f60b6b962.jpg)
Анимация при наведении – прекрасный способ сделать приложение динамичным и отзывчивым. Это мелочь, но именно такие детали в итоге могут сделать продукт классным.
По результатам неофициального опроса в Twitter poll было решено назвать этот эффект «boop». В этом уроке для intermediate-пользователей React мы разберём, как его реализовать.
(Само)Убийственная концентрация. Почему проваливаются планы на гиперэффективность
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/7fc/57c/2e7/7fc57c2e7d2b55ec60f2e25003fb36d6.jpg)
Частая ситуация – когда хочешь резко повысить свои результаты в работе, но когда пытаешься собраться и настроить себя на супер-производительную работу – через какое-то время возникает чувство отторжения и сильный дискомфорт.
Почему так? Откуда дискомфорт и как неправильная концентрация может убить желание повышать свою эффективность – порассуждаем в данной статье.
USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows
![](https://habrastorage.org/webt/kl/ak/48/klak48qlbqvhdw6evqxoky5a8yq.jpeg)
Привет, Хабр! В прошлой статье мы рассмотрели историю и принцип работы технологии USB over IP, узнали, как ее применяют на базе готового аппаратного решения.
Для личного использования, однако, аппаратное решение скорее не подойдет: нужно приобретать дорогостоящее оборудование, что нецелесообразно. Поэтому под катом рассказываю, как организовать клиент-серверный комплекс USB over IP на современных ОС и автоматизировать этот процесс.
Информация
- В рейтинге
- Не участвует
- Откуда
- Рига, Латвия, Латвия
- Дата рождения
- Зарегистрирован
- Активность