Search
Write a publication
Pull to refresh
2
0
Send message

TrapC: безопасный «наследник» C и C++. Что за язык?

Reading time5 min
Views9.6K

Стартап Trasec разрабатывает новый язык программирования, который называется TrapC. Авторы проекта провозглашают его «наследником» C и C++. ЯП обещает устранить главные проблемы «предков», включая небезопасное управление памятью. Для этого в TrapC внедрены автоматические проверки и защита программ от типичных ошибок. Это делает невозможным выход за границы буфера или обращение к несуществующей памяти и значительно усложняет жизнь хакерам. Давайте оценим новинку.

Читать далее

Машинное обучение: Линейная регрессия. Теория и реализация. С нуля. На чистом Python

Level of difficultyEasy
Reading time12 min
Views12K

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

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

Читать далее

Малопотребляющий датчик с передачей данных по радиоканалу

Level of difficultyMedium
Reading time14 min
Views18K
Несколько лет назад я опубликовал статью о простейших приемниках и передатчиках для обмена данными на частоте 433 МГц (на рисунке внизу левая пара). Публикация была вызвана в основном тем фактом, что абсолютно во всех источниках в интернете приемник подключался неграмотно, и это значительно снижало возможности удобного и дешевого способа связи. Приемник MX-RM-5V (известен также под названием XD-RF-5V) представляет собой дешевую регенеративную схему, которая крайне чувствительна к помехам и капризна к настройке, что хорошо известно радиолюбителям, но почему-то совершенно темный лес для остального мира, включая даже опытных ардуинщиков. Поэтому такой приемник, как минимум, следует включать с отдельным хорошо зафильтрованным аналоговым стабилизатором, что сразу повышает дальность в разы.



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

STM32 — грамотно включаемся от кнопки

Level of difficultyEasy
Reading time7 min
Views20K

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

Читать далее

Почему необходимо захватить Млечный путь?

Level of difficultyMedium
Reading time6 min
Views21K

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

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

Читать далее

Создание блога на FastAPI с нуля: JWT, Markdown и современный веб-дизайн

Reading time38 min
Views19K

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

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

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

Читать далее

Механическое телевидение: странный зверь из 1926 года

Level of difficultyEasy
Reading time12 min
Views13K

26 января 1926 года члены Королевского института вместе с репортером The Times собрались в маленькой лаборатории, расположенной в Лондоне, районе Сохо. В тот день они стали свидетелями необычного события: лицо куклы чревовещателя двигалось на экране буквально в прямом эфире. 

То была первая официальная демонстрация механического телевидения, которую организовал изобретатель Джон Логи Бэрд. Наша статья — об этом важном историческом событии.

Читать далее

Как я создал Telegram-бота для хранения файлов и чуть не стал библиотекарем

Reading time14 min
Views24K

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

Читать далее

Роль аналитика в разработке сложных информационных систем

Reading time10 min
Views4.1K

Создание больших сложных информационных систем (ИС) — это долгий, дорогой и часто непростой процесс. Иногда бывает так, что потрачено очень много денег, сил и времени, а система всё равно делает не то, что нужно. В этой статье расскажем, как аналитик может помочь избежать этого, а также... 

Читать далее

Как финансовый аналитик может использовать нейросеть ChatGPT / ТОП-10 Промптов:

Level of difficultyEasy
Reading time6 min
Views19K

Вы — финансовый аналитик, часто сталкиваетесь с большим объемом данных и задач, требующих точного и быстрого анализа? Думаю, да, но времени на выполнение дел всегда мало, и сил в том числе. Человечество придумало множество вещей, ускоряющих обыденные дела, чтобы времени было больше, но, к сожалению, его все равно нет. Но вот чудо: в ноябре 2022 года компания OpenAI выпустила ChatGPT — помощника, который всегда тут, всегда работает и всегда развивается. Время пришло, и на момент выкладки этой статьи все финансовые аналитики, да что греха таить, почти все офисные работники могут применять ChatGPT в своей работе, экономя время!

Чем поможем и что изучим:

- Что такое ChatGPT и как он работает

- Автоматизация отчетности

- Анализ данных

- Риск-менеджмент

- Подготовка презентаций

- Бенчмаркинг

И многое другое...

Читать далее

Структурный дизайн. Древний секрет простого и быстрого кода

Level of difficultyMedium
Reading time30 min
Views13K

Я пишу коммерческий код с 2005 года и с 2014 года ищу способ систематически писать хороший код.

В рамках этих поисков я изучил всю популярную литературу о хорошем коде и его дизайне — от «Чистого кода» Анкл Боба до «DDD» Эрика Эванса. Однако все популярные подходы в значительной степени субъективны: они не дают объективного и последовательного судьи, который бы решал, какой код лучше.

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

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

Отчаявшись научиться писать стабильно хороший объектно‑ориентированный код, в 2016 году я пошёл в сторону функционального программирования и архитектуры. Там с детерминированностью было получше: если в коде нет побочных эффектов (ввода‑вывода, оператора присваивания и чтения глобальных переменных) — то код хороший, если есть — плохой. Однако как затащить в коммерческий проект и, главное, собственную голову свободные монады и их интерпретаторы — я так и не понял.

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

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

Читать далее

Как понять нейронные сети? Часть 1

Level of difficultyEasy
Reading time15 min
Views6.4K

Предуведомления

Я обещал в предыдущей публикации в этом блоге, что напишу про еще одну книжку, которую перевел в конце прошлого года для того же издательства «Бомбора». Книжка довольно увесистая, 526 страниц, называется «Understanding Deep Learning». Автор Simon J.D. Prince. — ученый, исследователь, почетный профессор Университета Бата (University of Bath). Он был руководителем проектов в двух компаниях, известных на рынке ИИ‑продуктов: Anthropics Technology Ltd и RBC Borealis. В 2012 году вышла его первая книга «Computer Vision. Models, Learning, and Inference», которая выдержала четыре издания, была переведена на китайский и продалась в количестве более десяти тысяч экземпляров (для научного издания это много).

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

Свой перевод я сдал в издательство с рабочим заглавием «Понимание глубокого обучения», которое, скорее всего, поменяется. Во‑первых, названия всегда придумывает отдел маркетинга, а во‑вторых, в предисловии автор пишет, что в названии книги содержится некоторая шутка или горькая ирония, потому что на момент написания книги (оригинал вышел в 2023 году) никто не понимал глубокого обучения. На Хабре очень много публикаций по этой теме, и, мне кажется, что читатели этого сайта в большинстве своем знакомы как минимум с основами, но все же рискну уточнить термины. «Глубокое обучение» — это сокращение от «обучение глубоких нейронных сетей». Во‑первых, удобнее при изложении, а во‑вторых есть преемственность с названием охватывающей области исследований — машинного обучения, которое много лет развивалось без использования нейронных сетей, а теперь успешность их применения и бурный рост исследований и продуктов на их базе настолько превзошли все другие подходы, что многими термины «машинное обучение» и «глубокое обучение» воспринимаются как синонимы, хотя это пока еще не так.

Читать далее

Почему LLM так плохо играют в шахматы (и что с этим делать)

Level of difficultyEasy
Reading time14 min
Views11K

В своём последнем посте я говорил об одной загадке: все большие языковые модели (LLM) ужасно играют в шахматы. Все, за исключением gpt-3.5-turbo-instruct, которая по какой-то причине умеет играть на уровне продвинутого любителя. И это несмотря на то, что этой модели больше года и она намного меньше новых моделей. Что происходит?

Я предложил четыре возможных объяснения:

Теория 1: достаточно большие базовые модели хороши в шахматах, но это свойство не сохраняется после их подстройки под чат-модели.

Теория 2: по какой-то причине gpt-3.5-turbo-instruct обучали на большем объёме шахматных данных.

Теория 3: в некоторых архитектурах LLM есть нечто магическое.

Теория 4: существует «конкуренция» между разными типами данных, поэтому чтобы LLM могла хорошо играть в шахматы, большая доля данных должна быть информацией о шахматных партиях.

В Интернете нашлось ещё множество других теорий. Самые распространённые из них:

Теория 5: OpenAI жульничает.

Теория 6: на самом деле LLM не могут играть в шахматы.

Я провёл новые эксперименты. Хорошие новости — ошибались все!

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

Читать далее

Мне 34, я был в 65 странах, и у меня есть для вас лайфхак

Level of difficultyEasy
Reading time4 min
Views101K

Вы же попались на этот кликбейт?

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

За первый же месяц с ботом я купил перелёт в США и обратно в два раза дешевле стандартной цены. А сколько времени сберёг на мониторинг — не сосчитать. Поделюсь ссылками на мой проект в GitHub и названием бота. Вы сможете собрать похожее решение под свой запрос и летать в отпуск, испытывая меньше фрустрации от ценника на билеты и туры.

Читать далее

Без компьютеров: как люди-вычислители предсказали возвращение кометы

Level of difficultyEasy
Reading time10 min
Views3.6K

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

В первой части рассказа о вычислителях Антон Басов @antonbasov, исследователь истории науки и техники, автор Центра непрерывного образования факультета компьютерных наук ВШЭ,  рассказывает о тех, кто смог предсказать траекторию движения кометы и рассчитать семнадцать томов логарифмов при помощи сложения и вычитания.

Читать далее

Self-service, self-hosted, small-code база данных для внутренних разработок (есть open source версия + AI)

Level of difficultyEasy
Reading time9 min
Views4.2K

Totum — база данных для непрограммистов в которой можно создать корпоративное приложение со сложной логикой. Это своеобразный гибрид базы данных и электронных таблиц с возможностью программировать логику короткими кодами на специальном простом языке. Наиболее эффективно подходит для внутренних разработок в небольших компаниях. Только self-hosted, есть open source версия и конечно-же AI.

Читать далее

Жизнь — это косичка в пространстве-времени

Level of difficultyEasy
Reading time8 min
Views11K

«Простите, а сколько сейчас времени?» Полагаю, вы, как и я, не раз задавали этот вопрос, как будто для вас очевидно, что существует такая вещь, как время. Однако вы, вероятно, никогда не подходили к незнакомому человеку и не спрашивали: «Извините, а сколько сейчас пространства?». Если вы безнадёжно заблудились, то, вероятно, вместо этого скажете что-то вроде: «Извините, а где я нахожусь?», тем самым признавая, что вы спрашиваете не о свойстве пространства, а скорее о свойстве себя. Точно так же, когда вы спрашиваете о времени, вы на самом деле спрашиваете не о свойстве времени, а скорее о своём местоположении во времени.

Читать далее

Создаем свою ORM на python — гайд

Level of difficultyMedium
Reading time41 min
Views8.3K

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

ORM позволяет абстрагироваться от сырых SQL запросов путем абстракций.

В этой статье мы и рассмотрим создание своей ORM на Python с документацией и публикацией на PyPI. Данный проект очень интересен со стороны реализации: ведь требуется изучить большую часть ООП, принципов и паттернов.

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

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

Читать далее

Химик рассказал про разницу между стиральным порошком и жидкостью для стирки – кроме очевидной

Level of difficultyEasy
Reading time5 min
Views194K

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

Хотите ли вы получить белое бельё? Нужны ли вам энзимы? И в чём разница между порошком и жидким моющим средством?

Как это часто бывает, ответить на эти вопросы поможет знание химии.

Что такое стиральный порошок?

Активными ингредиентами как порошков, так и жидкостей для стирки являются «поверхностно-активные вещества», также известные как детергенты (поэтому по-английски продукт называется «laundry detergent»). Как правило, это заряженные молекулы, ионы, которые имеют две различные части в своей структуре. Одна часть хорошо взаимодействует с водой, а другая — с маслами.

Читать далее

Information

Rating
8,971-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity