Pull to refresh
3
0

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

Send message

Просто, но быстро. Телеграм бот на коленке

Level of difficultyEasy
Reading time13 min
Views12K

В современном мире телеграм-боты стали неотъемлемой частью нашей повседневной жизни. Они стали незаменимыми в самых разнообразных задачах – от автоматизации повседневных операций до обеспечения клиентов высококачественным сервисом.

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

Не страшно! В этой статье я поделюсь с вами всеми этапами создания собственного фреймворка для телеграм-бота с использованием C#.

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

Комфортная работа в Linux. ZRAM и гибернация — особенности взаимодействия

Level of difficultyMedium
Reading time16 min
Views10K

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

Когда RAM близка к заполнению, данные неактивных в данный момент приложений начинают выгружаться из неё на диск, в файл или раздел подкачки. Когда при запуске ещё одного приложения, открытии файла или вкладки браузера, потребуется срочно освободить нужный для этого действия объём оперативной памяти, пауза в работе компьютера может быть заметна, даже когда в системе стоит SSD. На HDD же, в случае запуска ресурсоёмкого приложения, подкачка может приостановить работу и на несколько десятков секунд. Кроме того, постоянная подкачка на SSD приводит к его ускоренному износу, что с учётом цены SSD, также не лучшее решение.

Если типовые задачи вашего компьютера требуют в 2-3 раза больше оперативной памяти, чем стоит в системе, наилучшим решением будет её увеличение. Если установить больше памяти невозможно технически (самый, пожалуй, острый пример — нетбуки на процессоре Atom с максимально возможным объёмом RAM 2 Гб) — ресурсоёмкие задачи лучше перенести на более мощный аппарат, а этот использовать только для офисно-браузерных задач (отдать детям или родителям). В случае же менее значительной нехватки (в пределах половины имеющегося объёма RAM), есть возможность улучшить ситуацию.

Читать далее
Total votes 17: ↑17 and ↓0+20
Comments28

SwiftUI уроки (часть 9)

Reading time11 min
Views2K

Разбираемся с List, ForEach and Identifiable 

В UIKit для iOS один из наиболее часто используемых элементов управления пользовательским интерфейсом - это UITableView. Если вы имеете опыт разработки приложений с использованием UIKit, то знаете, что table view предназначен для отображения списков данных. Этот элемент управления пользовательским интерфейсом широко используется в приложениях ориентированных на контент, например, в новостных приложениях или в принципе в любых популярных приложениях, таких как Instagram, Twitter, Reddit и другие.

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

Гипотеза вселенной 3. Гравитация и свет. Волна пространства

Reading time86 min
Views17K

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

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

Относитесь к материалу именно так, тогда Вам будет легче понять его, а мне объяснить и передать Вам свои мысли.

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

Читать далее
Total votes 16: ↑8 and ↓8+4
Comments26

Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора

Level of difficultyMedium
Reading time14 min
Views9.4K

Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отладчика? Постараемся ответить на этот вопрос в этой статье.

Задачи:

- Обозначить цель сбора дампа процесса.

- Описать структуру памяти процессов в Linux и отметить различия в старой и новой версиях ядра ОС

- Рассмотреть вариант снятия дампа памяти процесса внутри виртуальной машины на базе связки гипервизора Xen и фреймворка с открытым исходным кодом DRAKVUF.

Читать далее
Total votes 16: ↑16 and ↓0+20
Comments2

Рисуем рабочий процессор в Paint и запускаем на нём ОС | Ритуал по призыву демона Тьюринга

Level of difficultyEasy
Reading time28 min
Views15K


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

Термос этот он нашёл на улице и хотел перепрошить его маленький и беззащитный Cortex-M0+.
Человек бредил. Раз в пару минут его глаза загорались и он издавал душераздирающий крик: «Если что-то существует, то на этом можно запустить Doom!».

Но действительно ли это так? И что вообще значит «запустить»?

Почему нельзя просто вывести изображение логотипа или распиновать VGA для вывода изображения на дисплей абсолютно любого устройства?
Ведь все так и делают)


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

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

Ну а если вы всё ещё здесь — добро пожаловать под кат.
Читать дальше →
Total votes 78: ↑76 and ↓2+103
Comments16

Как я портировал Sonic 2 на графический калькулятор

Level of difficultyMedium
Reading time8 min
Views5.2K

Этот пост посвящён тому, как я портировал 8-битный Sonic 2 на TI-84+ CE

Часть 1: с чего всё началось


Эта история началась осенью 2022 года, когда я смотрел видео This Does Not Compute об истории игр на графических калькуляторах. Примерно на пятой минуте автор мимоходом упомянул типы процессоров, которые использовались в этой линейке графических калькуляторов. В большинстве из них был установлен Z80, в 89 и 92 задействовали M68K, а в линейке Nspire использован процессор на основе ARM.

Это меня очень заинтересовало, ведь я знал, какие процессоры использовала Sega в своих ретроконсолях: Z80 в Master System и M68K в Genesis. Калькуляторы имеют экраны в градациях серого, но мне захотелось узнать, пробовал ли кто-нибудь портировать игру Sonic с консолей на один из калькуляторов.

К своему удивлению, я выяснил, что этого никто не делал; более того, за исключением SonicUP и Sonic TI-Blast никто не создавал завершённый платформер про Соника для калькуляторов TI. Если не считать Nspire, но он настолько мощный, что способен эмулировать старые игровые консоли, так что меня он не особо интересует.

Поэтому я задался вопросом: удастся ли мне портировать уже существующий дизассемблированный код Sonic на графический калькулятор TI. Но сначала мне нужно было выбрать конкретную игру.
Читать дальше →
Total votes 40: ↑37 and ↓3+52
Comments4

Векторные базы данных: простым языком про устройство и принцип работы

Level of difficultyEasy
Reading time11 min
Views21K

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

Читать далее
Total votes 30: ↑29 and ↓1+35
Comments16

Как я делал сеть на 10 гигабит с минимальным бюджетом

Level of difficultyMedium
Reading time11 min
Views68K


Решил я ускорить тривиальную задачу в виде передачи файлов с одного компьютера на маленький домашний NAS. Раньше 10 гигабит были для меня чем-то заоблачным (с учётом цены на свичи, а также сетевые карты). Но благодаря апгрейду дата-центров, а также свежим чипам для свичей от Realtek, апгрейд оказался недорогим и безболезненным.

О выборе железа и тестах — под катом.
Читать дальше →
Total votes 109: ↑108 and ↓1+134
Comments148

Можно ли научить чат-бота всегда говорить правду. Часть 2

Level of difficultyMedium
Reading time10 min
Views2.2K

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

Часть первая тут.

Как пользователи, мы хотим иметь возможность просто загрузить все нужные нам документы в RAG и пользоваться ими без дополнительных настроек. Большинство традиционных подходов RAG также используют полученные документы “как есть”, без проверок, являются ли эти документы релевантными или нет. Более того, современные методы в основном рассматривают полные документы как справочные знания, как во время поиска, так и во время использования. Но значительная часть текста в этих извлеченных документах часто не важна для генерации и только затрудняет поиск релевантной информации. А если результат работы ретривера окажется низкого качества, есть большая вероятность получить галлюцинацию в ответе.

Для решения проблемы можно двигаться в нескольких направлениях.

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

Числа и байты: как работает память в Linux?

Level of difficultyHard
Reading time27 min
Views19K
image

Часть первая: физическая память


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

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →
Total votes 31: ↑31 and ↓0+35
Comments18

Клетка ХIV. Гомеостаз и метаболизм

Reading time14 min
Views2.1K

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

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

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

Если на пути кровотока поставить фильтр-регулятор (это как раз почки), то кровь, и ее плазма будут очищаться, обломки белков разлагаться до аминокислот, вредные (ядовитые) вещества удаляться, а полезные – возвращаться в кровоток с целью доставки, туда, где они нужны, и повторного использования. Задача удаления вредного и ненужного возлагается на естественную выделительную систему, а в случае ее отказа на искусственную почку (ИП), которая также устроена весьма непросто.  

Читать далее
Total votes 8: ↑5 and ↓3+6
Comments2

Несколько самодельных стеклодувных приспособлений и инструментов. Текущее дооснащение домашней мастерской

Level of difficultyEasy
Reading time8 min
Views3.2K

В стеклодувном деле уйма мелкого ручного специфического инструмента. Однако нет нужды обзаводиться сразу всем арсеналом – львиная его доля имеет простые недорогие варианты исполнения, отработанные стеклодувами прошлого и без труда изготовляемые по месту, перед основной работой и по мере необходимости. Кое в чём легко узнаются хрестоматийные примеры из учебников, кое-что может быть простейшей одноразовой проволочной державкой. Напомню – речь идёт о хоббийных работах в условиях деревенской домашней мастерской.
Читать дальше →
Total votes 65: ↑65 and ↓0+77
Comments39

SwiftUI уроки (часть 8)

Reading time17 min
Views1.9K

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

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

Настраиваем Windows WSL для локальной разработки Laravel

Level of difficultyEasy
Reading time4 min
Views7K

В этой небольшой статье я очень сжато расскажу, как правильно настроить WSL в Windows 11 для локальной разработки Laravel-приложения. Мы собираемся установить php, mysql, nginx и composer, а также отредактировать файл hosts в самом Windows. Заранее прошу не гневаться на меня поклонников Docker, здесь я рассказываю именно про WSL.

Итак, без лишних промедлений, приступим. И начнем с того, что, как мы предполагаем, у нас есть Windows и всё. Если WSL уже установлен, львиную часть статьи можно пропустить.

Убедитесь в том, что ваша версия Windows совместима с WSL.

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments24

TinyML — машинное обучение на микроконтроллерах

Reading time9 min
Views14K


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

Тем не менее подобные интеллектуальные решения всё сильнее входят в жизнь и начинают захватывать всё новые и новые сферы.

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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments11

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

Level of difficultyHard
Reading time118 min
Views3.3K

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Total votes 24: ↑24 and ↓0+24
Comments15

Зачем Программисту Микроконтроллеров Диофантовы Уравнения

Level of difficultyEasy
Reading time4 min
Views12K

Школьные уроки математика не прошли даром.

Вот, настал день, когда впервые пришлось решить на работе Диофантовое уравнение.

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments60

Введение в нейросети: что, зачем и как?

Level of difficultyMedium
Reading time25 min
Views45K

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?
Total votes 48: ↑46 and ↓2+54
Comments27

Клетка ХV. Картирование типов клеток

Level of difficultyMedium
Reading time14 min
Views1.2K

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

В рамках проекта Атлас клеток человека (Human Cell Atlas) создан такой атлас и уже используется. Он включил данные, полученные сразу несколькими международными исследовательскими коллективами. Развитие современных технологий секвенирования РНК отдельных клеток (scRNA-seg) показало, что типы клеток человеческого организма очень многообразны, сейчас насчитываются сотни различных типов. В предлагаемой работе приводится характеристика транскриптома, в рамках которого осуществляется картирование клеток, его структура и динамичность.

Транскриптом называют молекулу РНК, образующуюся в результате транскрипции (экспрессии соответствующего гена или участка ДНК). Примерами транскриптов являются: матричные РНК (мРНК). В статье приводится характеристика транскриптома, его структура и динамичность. Методы исследования транскриптов. Кодирующие и некодирующие РНК, их классификация, микро РНК, siРНК, нано-РНК, сборка транскриптов кратко рассматриваются в публикации.

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

Читать далее
Total votes 9: ↑6 and ↓3+8
Comments0

Information

Rating
Does not participate
Location
Россия
Registered
Activity