Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Инь и ян программирования или alter ego многопоточности

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.1K

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

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

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

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

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

Читать далее

Как реализовать свою чат-платформу?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.5K

Рано или поздно вы решите написать чат. Да, свой чат. И, возможно, вспомните про эту статью.

Изложу свое понимание, видение на построение системы любого чата, будь то чат между 2 пользователями, групповой чат (открыто и закрытого типа), чат с контактом в другом мессенджере, канал.

Все изложенное субъективно. Искал разные источники, анализировал другие чат-платформы. Надеюсь, будет полезно.

И так.

Что такое чат? Мы каждый день общаемся в чатах, чаты в разных приложениях похожи и не похожи одновременно.

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

- Чат - это хронологическая лента сообщений.

- Сообщение - некая единица контента (текст, файл, картинка, аудио, видео, стикер, оповещение, ...)

- также у сообщения есть дата-время создания сообщения.

- У сообщения всегда есть отправитель.

- В чат сообщения могут добавлять разные отправители (пользователи, боты, система).

- В чате есть участники. По сути - это подписчики, которые подписаны на получение новых сообщений в чате.

Читать далее

Запускаем новый проект: пошаговое руководство для руководителя

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.5K

Большинство проектов гибнут не на финише, а на старте. Причина проста — неясная цель, туманное планирование и команда, собранная «по знакомству». Если вы готовите запуск нового проекта, это руководство поможет избежать типичных ошибок. Здесь — практичный системный подход, который проведёт вас от идеи до уверенного старта.

Читать далее

FreeBSD, Debian и Secure Boot

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели10K

В этом руководстве описывается процесс настройки FreeBSD 15 для работы в режиме Secure Boot.

Создадим Machine Owner Key, установим его в UEFI, подпишем загрузчик.

Secure Boot: [ ON ]

Мы тратим на ИИ в 2,4 раза больше, чем на ядерную программу в разгар Холодной войны. И что мы получили взамен?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

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

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

Читать далее

Озоновая дыра

Время на прочтение7 мин
Охват и читатели8.5K

Многие помнят как давно была на слуху такая проблема как озоновая дыра. Сколько было споров о реальности проблемы, о том как её решить, и что же вообще теперь делать. Как много было заявлений что это фейк, и проблема выдумана. А потом как-то всё затихло. Хотите с сегодняшнего дня посмотреть назад и разобраться, что же это такое было?

Тогда читаем!

Взаимодействие джунов и AI-помощников

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.4K

Всем привет! В настоящее время очень активно насаждается использование AI программистам, так было в зелёном банке, в котором я отработал последние три года. Использование AI-помощников в основном продвигалось у нас сверху, людьми, которые никак не связаны с IT и не имеют технического образования. В общем я хочу подсветить те проблемы, которые наблюдал за время работы, когда джуны взаимодействовали с AI для написания кода, такими как ChatGPT, GigaChat или YandexGPT.

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

Читать далее

Укрощаем зоопарк раскладок в Windows

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели13K

Долгое время моим основным рабочим окружением был Linux. Там, как известно, «из коробки» (или через легкий тюнинг конфигов) можно повесить смену раскладки на любую клавишу. Я привык использовать для этого CapsLock. Это эргономично: мизинец лежит рядом, не нужно выкручивать пальцы в аккорды типа Alt+Shift или тянуться к Win+Space.

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение35 мин
Охват и читатели15K

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

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

Читать далее

Как наш shell похорошел

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели14K

Так сложилось, что программируя микроконтроллеры, разработчик балансирует между двумя крайностями. Все ресурсы под твоим полным контролем — и это кайф (думаю, многие в embedded за этим и идут). Но платой становится сложность встраивания базовых инструментов, которые стали де-факто стандартом в других областях разработки. Сложность хотя бы в том, что они не идут из коробки.

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

На практике наша железка должна загрузиться, зарегистрироваться в LTE-сети, поднять TLS-соединение с MQTT-брокером, синхронизировать состояние и пройти ещё кучу слоёв бизнес-логики. С другой стороны — мобильное приложение и бэкенд для управления этой лампочкой (уже целая система собралась!). Там не меньше логики: от авторизации до “да кто блин так дизайн спроектировал?”. Пока дотапаешься до кнопки, пройдёт вечность.

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

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

И стало ясно: нам не хватает shell-интерфейса. Или CLI. Или терминала — называйте как угодно (разницу можно глянуть здесь). Но не просто не хватает — его придётся писать самим. Меня зовут Сергей Шилин, я руковожу разработкой электроники и встроенного ПО в Whoosh. Почему не взяли готовое и чем наш велосипед лучше — расскажу под катом!

user@habr > article start --full

Как ставить большие цели и достигать их

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели11K

Принес вам разбор подкаста Губермана с необычным гостем — Алексом Хоннольдом, скалолазом, покорившим одну из крупнейших горных вершин Северной Америки, Эль-Капитан. К тому же, без страховки. В разговоре с Губерманом он объясняет не как быть бесстрашным, а как строить масштабные цели на основе простых решений, чтобы получить грандиозный результат.

Читать далее

ИИ бот-модератор 1: Начало проекта

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели11K

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

Если в проекте нет структуры, он быстро превращается в кашу. Каждая доработка — это не отдельный продуманный модуль, а «приматывание новых кусков кода синей изолентой» с мыслью: «хоть бы не сломалось». Для новичка это особенно опасно: кажется, что всё нормально, пока проект маленький, но при росте даже простые изменения начинают занимать часы и ломать соседние части.

Вы наверняка задаётесь вопросом: «Почему рубрика называется “ИИ бот-модератор”, а автор тут рассказывает про качество кода?» На самом деле, всё связано.

Telegram-бот для группы — отличный пример проекта, который очень быстро обрастает фичами: команды, настройки, роли, интеграции, хранение данных, логирование, админка, модерация, ИИ и т.д. Если делать всё “в одном файле”, это почти гарантированно закончится болью. Поэтому в этой рубрике мы будем строить бота так, чтобы его можно было развивать: добавлять функциональность без постоянного страха «сломать всё».

Читать далее

Самокаты и их место в этом мире

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели18K

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

На связи Фарук, с некоторых пор я отвечаю за RnD в Whoosh, и сегодня я хотел бы рассказать вам о том, как мы справлялись с проблемами определения местоположения наших самокатов.

Читать далее

Ближайшие события

Когда бизнесу нужно заключать соглашения о поручении обработки персональных данных

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.9K

ПД — персональные данные.

Одни бизнесы пользуются услугами других бизнесов или частных исполнителей. Это база. 

Пример: обучающий центр хранит данные работников и учащихся в CRM.

Другой пример: флористическая студия пользуется услугами курьерской компании (или самозанятого курьера) для доставки букетов.

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

Разобраться, с кем заключать соглашения

Как Apple пропатчила «антеннагейт» в 20 байт

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели24K

Хотите увидеть нечто любопытное? Вот, как устранили проблему «антеннагейта» на iPhone в 2010 году. 20 байт.

iOS 4.0: 8d ff ff ff 91 ff ff ff 95 ff ff ff 99 ff ff ff 9d ff ff ff iOS 4.0.1: 86 ff ff ff 98 ff ff ff 9e ff ff ff a7 ff ff ff b0 ff ff ff

Контекст: в 2010 году, когда выпустили iPhone 4, пользователи заметили, что если взять телефон определённым образом, то количество полосок сигнала сети падает с 5 до примерно 2. Спустя насколько недель компания опубликовала письмо, в котором свалила вину за это на неправильную формулу.

Читать далее

Насколько много компании знают о нас? Как именно они собирают о нас данные

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели13K

Всем известно, что злые корпорации собирают о нас данные, но как именно они это делают?

Трекинг курсора, рейтинг номера который вы используете, Email трекеры, скорость печати и даже... определения дрожит ваша рука или нет.

А также как сайты легко вычисляют ВПН-щиков.

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

Читать далее

Не ждать у моря API. Предсказуемая миграция без интеграций под каждую платформу

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.4K

Привет, Хабр! Я Виктор, в Хайстекс руковожу отделом разработки. Сегодня расскажу про фичу, которая снимает ложную дилемму «API или универсальность», потому что оба сценария можно применять параллельно.

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

Под катом — как сделать целевую сторону миграции воспроизводимой без зависимости от API конкретного облака и без ожидания поддержки со стороны платформы.

API vs D2T

HTB Season Gacha | MonitorsFour — Полный путь от IDOR до Docker Desktop escape (WSL2) и root

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.2K

Продолжая серию разборов в рамках сезонного ивента Season of the Gacha на HackTheBox, хочу поделиться прохождением MonitorsFour. Машина оказалась не самой сложной, но с неочевидным подвохом: Windows-хост с Docker Desktop, что добавило головной боли на этапе повышения привилегий. Признаюсь, меня поначалу сбило с толку, почему Nmap показывает Windows, а shell получается Linux, но об этом чуть позже.

В машине реализованы IDOR, актуальные CVE и побег из Docker-контейнера, и на мой взгляд, отличный набор для отработки навыков. Давайте разбираться!

Читать далее

Нейросеть для тестов: Как решить тест по фото с помощью ИИ?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.8K

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

Читать далее

Локальный диск на 288 ПБ: монтируем S3-бакет Yandex Cloud без боли

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели14K

Решил я тут, что будет удобно иметь S3 бакет как диск в системе для всякого. Так как я плотно работаю с Yandex Cloud, то и использовать буду их бакет.

У них довольно щедрые тарифы и достаточно большие бесплатные лимиты.

Я сижу на Федоре. Для подключения бакета буду использовать GeeseFS - - высокопроизводительная файловая система S3 ( Яндекс , Amazon ), соответствующая стандарту POSIX и написанная на языке Go.

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

Будет работать кстати и на винде.

Естественно нужно иметь аккаунт в яндекс облаке. У меня он есть. Создать новый не представляет сложности. Там ещё и грант 4000 рублей дадут. Поэтому переходим к делу.

В облаке нужно будет создать бакет. А так же статические ключи доступа.

Скачиваю бинарник https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64. Кстати должна быть установлена ещё fuse, в федоре она предустановлена.

В профиль aws нужно добавить созданный ранее статический ключ доступа. Если вы не пользовались aws cli, то нужно создать файл ~/.aws/credentials, если пользовались то файл уже есть. В него нужно добавить профиль

Читать далее