Search
Write a publication
Pull to refresh
4
0

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

Send message

Как изучать китайский язык / 怎样学习汉语? Пошаговая инструкция

Level of difficultyEasy
Reading time2 min
Views106K

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

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

И как же?

Все, что нужно знать для разработки с использованием LLM

Level of difficultyMedium
Reading time11 min
Views53K

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

Читать далее

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views312K

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

Читать далее

Алгебра совокупностей Брусенцова и не только

Level of difficultyMedium
Reading time39 min
Views7.2K

Все, кто когда-либо интересовались трёхзначной логикой, троичной системой счисления или архитектурой троичных компьютеров, рано или поздно натыкались на труды Брусенцова Николая Петровича, в особенности 3 его самые известные книги:

1) Брусенцов Н.П. Начала информатики, 1994.

2) Брусенцов Н.П. Искусство достоверного рассуждения. Неформальная реконструкция аристотелевой силогистики и булевой математики мысли, 1998.

3) Брусенцов Н.П. Блуждание в трёх соснах (Приключения диалектики в информатике), 2000.

Для тех, кто не в курсе, Брусенцов Николай Петрович - главный конструктор первой в мире и Советском Союзе троичной ЭВМ "Сетунь". Об этом хорошем человеке можно найти достаточно много информации в открытых источниках. Но сейчас речь не о нём, а о разработанной им алгебре совокупностей (алгебре дизъюнктов), которая фигурирует в качестве фундамента во всех 3-х упомянутых выше книгах. К слову сказать, сами книги не являются учебниками по чистой математике или информатике. Они освещают проблемы злоупотребления формализмом в современной математической логике, а также содержат пути к возрождению и развитию аристотелевой силогистики. Мотивацией к написанию данной статьи послужило то, что каждую книгу пришлось прочитать раза по три, прежде чем в голове сложилась более или менее цельная картина. Этому также поспособствовало обилие терминологии, более присущей философским трактатам, нежели учебникам по математике. Поэтому цель данной статьи - получить представление об этой алгебре и облегчить чтение вышеуказанных книг. Статья носит обзорный характер, знакомит читателя с некоторыми понятиями (акценты расставлены жирным шрифтом) и пытается ответить на вопросы, неосвещённые в книгах явно.

Читать далее

Клетка X. Старение организма

Level of difficultyEasy
Reading time21 min
Views12K

На Земле обнаружено первое и пока единственное многоклеточное бессмертное существо. Это медуза Turritopsis dohrnii (туритопсис нутрикула). Она живет пока ее кто‑нибудь не съест или не разрушит. Медуза в благоприятных для жизни условиях обладает фантастическими способностями — может превращаться из взрослой особи в юную и проделывать такой фокус неограниченное количество раз.

Американский физик, лауреат Нобелевской премии Р. Фейнман заметил: «Если бы человек вздумал соорудить вечный двигатель, он столкнулся бы с запретом в виде физического закона. В отличие от этой ситуации в биологии нет закона, который утверждал бы обязательную конечность жизни каждого индивида».

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

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

Надо сказать, есть ещё одно живое существо, которому приписывают бессмертие. Это пресноводный полип Hydra vulgaris — гидра обыкновенная. Это открытие доказывает, что вечная жизнь существует. А природа ничего никому не должна.

Читать далее

Что вы знаете о символьном программировании?

Level of difficultyMedium
Reading time15 min
Views18K

Кликбейтный заголовок, риторический вопрос и обещание раскрыть тайну! Не самый лучший набор, но нормального названия для статьи мне в голову не пришло. Что же здесь все таки будет? Речь пойдет о реализации символьного программирования в Wolfram Language (WL). Я не буду рассказывать про отличия от других парадигм. А также здесь точно не будет общих определений. Вместо этого я попытаюсь ответить на несколько вопросов исходя из своего личного опыта и наблюдений.

Внимание! Я не математик и не знаю haskell и lisp! И буду рад если меня поправят настоящие математики, которые с ними знакомы.

Читать далее

Главное событие в мире AI: создатель ChatGPT рассказал, в какое будущее он нас всех ведет

Level of difficultyEasy
Reading time25 min
Views99K

В этой статье мы расскажем вам про самые важные фичи, внедренные за последние полгода в ChatGPT (самую мощную нейросетку в мире), а также обсудим – каким видением будущего поделился Сэм Альтман на прошедшей 7 ноября конференции от OpenAI. Спойлер: они хотят запилить «агентов Смитов», которые смогут самостоятельно взаимодействовать с миром!

Это мы читаем →

Путешествие от шифра Цезаря до RSA. Прикладная теория чисел

Level of difficultyEasy
Reading time4 min
Views6K

Путешествие от шифра Цезаря до RSA. Прикладная теория чисел.

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

Читать далее

Не Unity единым…

Level of difficultyEasy
Reading time15 min
Views43K

Игры бывают разные, большие и маленькие, триA и супер инди, в компаниях с сотнями разработчиков и что создаются самородками-одиночками. Редко их делают с нуля и пишут код только игры, чаще пишут игровые тулы, редактор и параллельно пишут саму игру. За всей этой многомиллиардной индустрией стоит код, много кода, очень много кода. Игровые движки и фреймворки – мощные инструменты, которые помогают разработчику творить его идеи и создавать увлекательные игровые миры. Это каркас, на котором строятся все игровые вселенные, они включают в себя сотни инструментов, библиотек и ресурсов, позволяя разработчикам превратить строчки кода в театр для одного зрителя.

Существует более сотни игровых движков, каждый из них содержит как минимум одну фичу которой нет ни в каком другом. Всех возможностей вместе нет ни в одном, и это прекрасно - иначе бы такой движок монополизировал рынок. Хм, Unreal5 ты ли это? Иногда полезно пробежать по release notes движка, чтобы оставаться в курсе последних новостей. Возможно вы разрабатываете свое решение и эта статья натолкнет вас на новые идеи. Готовы узнать что ваша любимая игры была сделана не на Unity, а на православном SDL?

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views11K

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

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

Читать далее

Устройство кучи для прожженных самоваров. Часть 1

Level of difficultyEasy
Reading time3 min
Views4.3K

В реалиях нашего мира, программисты пользуются ООП и препочитают динамическую память, а не статическую. В нашей жизни, вне CTF, все работает именно в куче, потому что это удобно и практично. Речь пойдет о динамической памяти - куча (heap). Если взглянуть на статистику cvedetails, то можно увидеть, что большинство критических уязвимостей связаны именно с динамической памятью.

В цикле статей будет рассказано об устройстве кучи, атаках на них и все в духе бинарной эксплуатации.

Читать далее

Обзор книги «С++ 20 в деталях»: доступно, но не для джунов

Reading time8 min
Views23K

Привет, Хабр! Меня зовут Дмитрий Луцив, я работаю в СПбГУ на кафедре системного программирования, веду ряд IT-дисциплин на математико-механическом факультете в лабаратории компании YADRO и помогаю вузам актуализировать образовательные программы под задачи индустрии.

Я давно не программировал на С++, но стараюсь не отставать от изменений, происходящих в языке. Книга «C++ 20 в деталях» заинтересовала меня личностью автора (на секунду, это Райнер Гримм) и возможностью познакомиться с новым источником знаний о «плюсах». Решил ее прочитать, чтобы понять, кому материал будет полезен и могу ли я его рекомендовать. Под катом расскажу, что в книге хорошего, а что можно было бы сделать лучше, а также дам список дополнительных источников для специалистов разного уровня.

Читать далее

Слово Божие — функциональное программирование как основа Вселенной

Level of difficultyMedium
Reading time15 min
Views43K

В одном из своих предыдущих постов под названием "Эйлер, Чёрч и Мандельброт — этюд о красоте и математике" я немного затронул тему рассмотрения функционального программирования в качестве основы реальности. Под тем постом было оставлено множество интересных комментариев, один из которых, написанный @nickolaym, вдохновил меня на развитие мысли в данном направлении. Так появился этот пост, в котором прямо как во времена пифагорейской школы и платоновской академии философия переплелась с математикой, а математика с философией.

Читать далее

Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений

Level of difficultyEasy
Reading time10 min
Views20K

Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать выражение вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)

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

Читать далее

Как и почему я писал для Флиппера на Си-с-классами

Level of difficultyMedium
Reading time8 min
Views12K
Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сборки, которая скачала мне нужный тулчейн и сгенерировала настройки для IDE.

А для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.

Читать дальше →

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

Level of difficultyHard
Reading time17 min
Views16K

Программа calculator.c родилась как школьный проект в рамках Student Innovation Scholarship. Сперва я решил написать простой инструмент для построения графиков функций с помощью символов ASCII, но после завершения первого прототипа понял, что задача намного сложнее, чем предполагалось. Вернувшись к проекту год спустя, я увидел, что в нём есть много неочевидных нюансов. Поэтому предлагаю разобрать весь процесс разработки моего графического калькулятора с нуля.


Читать дальше →

[sobjectizer] Релиз версии 5.8.1: реализация пожеланий пользователей и исправление недочетов

Level of difficultyMedium
Reading time7 min
Views930

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

Для тех же, кто ни разу не слышал про SObjectizer, очень кратко: это относительно небольшой C++17 фреймворк, который позволяет использовать в С++ программах такие подходы, как Actor Model, Publish-Subscribe и Communicating Sequential Processes (CSP). Основная идея, лежащая в основе SObjectizer, — это построение приложения из мелких сущностей-агентов, которые взаимодействуют между собой через обмен сообщениями. SObjectizer при этом берет на себя ответственность за:

доставку сообщений агентам-получателям внутри одного процесса;

управление рабочими нитями, на которых агенты обрабатывают адресованные им сообщения;

механизм таймеров (в виде отложенных и периодических сообщений);

возможности настройки параметров работы перечисленных выше механизмов.

Составить впечатление о этом инструменте можно ознакомившись вот с этой обзорной статьей.

Читать далее

Старые кодовые базы как классическая литература

Level of difficultyEasy
Reading time6 min
Views9.6K

Сохранившиеся фрагменты греческих папирусов, источник

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

Применим ли этот принцип в обучении программированию?
Читать дальше →

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

Level of difficultyMedium
Reading time8 min
Views9.7K

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

Читать далее

Глубина кроличьей норы: бинарная граница и ABI C++

Reading time26 min
Views8.6K

Вопрос ABI (Application Binary Interface), бинарной границы и бинарной совместимости в C++, раскрыт на просторах интернета не так хорошо как хотелось бы. Особенно сложно в его изучении приходится новичкам, потому что эта тема связана со множеством деталей нарочно скрытой от глаз программиста имплементации языка.

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

Подробнее о статье:

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

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

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

В рамках всей статьи будут рассмотрены темы: системный стек, системные регистры, динамическая память, детали механизма виртуальных функций, стандарт С++ и реальная имплементация, детали механизма исключений, copy elision при линковке библиотек, шаблоны, POD-типы и ODR violation.

Break -in- ABI

Information

Rating
7,302-nd
Registered
Activity