В данной статье мы рассмотрим техническую сторону вопроса, а так же формализуем и представим в деталях материал из предыдущей статьи.
картинка из статьи Boolean Satisfiability: From Theoretical Hardness to Practical Success (Communications of ACM)
Пользователь
SAT уже тем хорош, что он ум в порядок приводит
Ломоносов (оригинал)
Are you suggesting coconuts migrate?
MPHG
В IT важно держать руку на пульсе, поэтому в прошлом году, поглядывая краем глаза очередные курсы, я начал присматриваться к целой онлайн-программе и, к своему невероятному удивлению, узнал, что от меня требуют сертификат английского. Тем временем, давным-давно уже все мои бумажки превратились в филькины грамоты, да разложились на плесень и липовый мёд.
«Непорядок», — подумал я. Так и родилась идея сдавать экзамен по английскому, но почему именно CPE? А не, скажем, CAE (Cambridge C1) или там TOEFL (американский общий тест на знание английского), IELTS (версия этого же экзамена, но от Cambridge).
О том, зачем это всё — и что вообще из всего этого вышло — здесь и пойдет речь. Заодно расскажу, как готовился, что помогло, а что — пустая трата денег и времени. Бонусом — пара рекомендаций фильмов, сериалов, художественной литературы и учебных материалов.
ОСТОРОЖНО — ТРАФИК, да‑да, под катом будет много картинок, личного мнения автора и его же несмешного юмора (придется потерпеть) — ответ на вопрос в КПДВ тоже там!
Есть оптимизации, польза от которых очевидна всегда или почти всегда. Например, не делать лишнюю проверку лучше, чем делать. Не считать два раза одно и то же обычно лучше, чем считать (если только мы не упёрлись в нехватку регистров или имеем другие подобные проблемы на нижнем уровне). Вычислять выражения вне цикла выгоднее, чем в цикле. И так далее.
Но есть оптимизации, применение которых имеет как плюсы, так и минусы. Выиграв в одном месте, мы можем получить отрицательные эффекты в другом. Например, сэкономив на количестве проверок, мы можем раздуть общий объём кода и поломать микрооптимизации. Каноничным примером такой оптимизации, решение вопроса об использовании которой больше похоже на искусство, чем на науку, является размотка циклов (Loop Unrolling), о которой мы сегодня поговорим. В статье я попробую осветить как можно больше (хотя, наверное, и не все) соображения о том, почему эту оптимизацию может быть нужно или не нужно применять.
Смысл размотки цикла заключается в том, чтобы за счёт дублирования тела цикла уменьшить количества его итераций. В зависимости от того, как много мы знаем об исполнении цикла, размотка может быть полной, частичной или динамической.
Праздничные деликатесы подходят к концу — самое время дать пищу мозгу и познакомиться с одной из древнейших и самой необычной и сложной системой письменности современности — китайским иероглифическим письмом.
Я постараюсь простым языком с примерами и иллюстрациями описать как это все в принципе работает и чем отличается от привычных нам языков с алфавитом, осветить слабые и сильные стороны, а для желающих копнуть глубже по тексту будут ссылки на дополнительные материалы.
Первые наши пользователи помнят Amnezia как приложение созданное одним человеком, в светлом дизайне и на английском языке. Сегодня AmneziaVPN - это проект, над которым работает целая команда людей из разных стран. Мы стали больше, приобрели много опыта и теперь имеем возможность делать более сложный функционал . Этот год был, пожалуй, самым продуктивным для нас. Расскажем здесь о самых существенных изменениях, которые произошли с Amnezia за это время.
Привет, поклонники музыки! Думали ли вы о том, что наступит день, когда нейронные сети начнут генерировать музыкальные композиции в различных жанрах, начиная от Heavy Metal и заканчивая 80-ми? Недавно я выпустил большой апдейт для своего проекта с открытым исходным кодом «Нейронное радио», где музыка и подкасты созданы нейронными сетями. Однако в первых релизах музыка была без слов, и, мягко говоря, слабая. Но сегодня все изменилось. Качество музыки улучшилось, и появилась музыка со словами и голосами под жанры.
Может ли интересную игру создать один человек? Когда-то Пажитнов сделал Тетрис, а одним из развлечений программистов было создание или портирование игр с одной платформы на другую.
Есть зарубежные игры, созданные в одиночку и заработавшие миллионы – о них на Хабре уже писали. Мы поговорим об интересных инди-проектах от российских разработчиков. Одни имеют коммерческий успех, другие только начинают свой путь, третьи – уже стали легендами.
Эти примеры могут вдохновить кого-то на создание собственной видеоигры, доказать, что с достаточной долей веры в себя и упорством всё становится возможным.
Привет, Хабр.
Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.
На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.
Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией.
Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор.
Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами.
Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа, и правильной интеграции их в процесс разработки.
Привет, Хабр! В этой статье я расскажу всё, что знаю про Entity-Component-System и попытаюсь развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках ECS, об особенностях этого подхода, о том как с ним подружиться, о потенциальных граблях, о полезных практиках, а также в отдельном разделе коротко посмотрим на ECS фреймворки для Unity/C#.
В 70-е годы в Чили задумали уникальный проект, который и сегодня кажется фантастическим — компьютер, который бы управлял экономикой всего государства. Систему удалось построить и успешно запустить — но ей было не суждено просуществовать долго из-за военного переворота. Однако проект, получивший название Cybersyn, остался важной вехой в истории технологий и до сих пор служит источником вдохновения.
14 ноября 2023 года команда Google Deepmind официально представила мировой общественности свою модель прогнозирования погоды – GraphCast. Её особенность заключается в том, что она способна рассчитывать погоду на 10 дней вперёд без понимания «физики» атмосферных процессов. Учёные обучали нейросеть на цифровых исторических архивах погоды за период с 1979 по 2017 годы. Сам же прогноз рассчитывается за минуту и не требует огромных суперкомпьютерных ресурсов. В тестах GraphCast смог обойти самую передовую гидродинамическую модель прогнозирования погоды от Европейского центра среднесрочных прогнозов. Рост качества был настолько существенным и резким, что в научной среде уже говорят о революции в сфере прогнозирования погоды. К чему это может привести и где смотреть самые точные прогнозы? Давайте разбираться.
Как загрузить список из 500 доменов на mikrotik, чтоб он их преобразовал в IP-адреса?
Как заставить Mikrotik резолвить домены по wildcard?
Как поднять Shadowsocks\VLESS на ROS?
Никак
Я задался этими вопросами, достал hAP ac lite из шкафа и посмотрел, на что способна ROS 7 в конце 2023 года. Потестил всем известные способы, а также попробовал запихать много доменов в address-lists.
Кликбейтный заголовок, риторический вопрос и обещание раскрыть тайну! Не самый лучший набор, но нормального названия для статьи мне в голову не пришло. Что же здесь все таки будет? Речь пойдет о реализации символьного программирования в Wolfram Language (WL). Я не буду рассказывать про отличия от других парадигм. А также здесь точно не будет общих определений. Вместо этого я попытаюсь ответить на несколько вопросов исходя из своего личного опыта и наблюдений.
Внимание! Я не математик и не знаю haskell и lisp! И буду рад если меня поправят настоящие математики, которые с ними знакомы.
В этом посте разбираемся, какие способы очистки цифровых носителей информации являются самыми подходящими для каждого типа. Отмечу, что пост не претендует на оригинальность, а лишь является сборником известной полезной информации для Вашего удобства.
Эта статья - сборник разных вопросов и ответов на них, которые звучали в комментариях к моим предыдущим статьям (Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все, Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто и других из той же серии) и в личных сообщениях.