Search
Write a publication
Pull to refresh
60
0

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

Send message

Почему важно, что системы линейных уравнений решаются быстрее, чем множатся матрицы

Reading time5 min
Views22K

В 1998, когда Google только появился, его киллер-фичей был патентованный алгоритм PageRank для сортировки результатов поиска по популярности. Описанный стэнфордскими аспирантами Брином и Пейджем в научной статье, он сводится к очень простой идее:

Читать далее

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

Reading time7 min
Views16K
image

Квантовые вычисления — это самая большая революция в вычислениях со времен… вычислений. Наш мир состоит из квантовой информации, но мы воспринимаем мир как классическую информацию. То есть очень много происходит в небольших масштабах, недоступных нашим нормальным чувствам. Как люди, мы эволюционировали, чтобы обрабатывать классическую информацию, а не квантовую информацию: наш мозг запрограммирован на то, чтобы думать о саблезубых кошках, а не о кошках Шредингера. Мы можем достаточно легко закодировать нашу классическую информацию с помощью нулей и единиц, но как насчет доступа к дополнительной доступной информации, из которой состоит наша Вселенная? Можем ли мы использовать квантовую природу реальности для обработки информации? Конечно, иначе нам пришлось бы закончить этот пост здесь, и это нас всех не удовлетворило бы. Давайте исследуем возможности квантовых вычислений, а затем приступим к написанию собственного квантового кода.

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

image

Мы вынуждены видеть либо одно, либо другое, а не то и другое одновременно.
Читать дальше →

Создание совершенной печатной машины из Sublime Text

Reading time5 min
Views13K
UPD: Прошло больше месяца с тех пор, как я написал первоначальный черновик этой статьи. С тех пор я опубликовал еще три записи в блоге и более двадцати на моем канале в Телеграм. Настройки зарекомендовали себя фантастически, мне он очень нравится, и у меня нет желания искать где-либо еще.

Я был давним поклонником iA Writer из-за того, что писал. Я купил оригинальную версию для iPad, оригинальную версию macOS (когда она еще называлась MacOS X), версию для Android и даже ту, которую они переиздали как «платное обновление по полной цене». На мой взгляд, в нем есть идеальный баланс между функциями и простотой, дизайном и направленностью.

Вот скриншот первоначальной версии iA Writer от 2011 года:

image

А вот как это выглядит сейчас, в 2021 году:

image

Дизайн настолько вне времени, что практически не изменился за 10 лет.
И я этим доволен, я не собираюсь жаловаться. Это здорово и для вдохновения, и для нововведений, и для фактического воплощения. Я искренне рекомендую его всем, кто пишет.
Читать дальше →

Подстава века или таинственная история взлома Ситибанка

Reading time8 min
Views26K


Было время, когда хакеры промышляли взломом ради удовлетворения собственного любопытства и исследовательского зуда, а вред, который могли причинить вредоносные программы, ограничивался переворачиванием изображения на экране вверх тормашками и доносящимися из динамика компьютера неприличными звуками. Потом времена изменились, и на первое место вышли корыстные мотивы. Киберпреступность взяла на вооружение самые современные методы взлома, и одной из основных целей хакерских атак стали банки. Как говорится, just a business, ничего личного.
Читать дальше →

Этичность Искусственного Интеллекта

Reading time13 min
Views4K

Кадр из игры Deus Ex Mankind Divided с демонстрацией импланта, анализирующего эмоции

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

Пока сложно судить о том, когда нас поработят роботы. Но может пора задуматься о моральной стороне и решить, насколько этично использовать нейросети в некоторых вопросах? Именно об этом пишет Кейт Кроуфорд в своей статье, опубликованной на сайте Nature, с переводом которой я предлагаю вам ознакомиться и обсудить то, насколько актуальна эта проблема.
Читать дальше →

Знакомьтесь, pass

Reading time7 min
Views36K


Я много лет искал подходящую мне хранилку паролей и недавно наткнулся на Pass на HackerNews. Идея хранить пароли в git-репозитории может выглядеть странно, но в целом это неплохая идея, потому что:

  • Я держу гит-репозиторий локально у себя на компе
  • Все пароли защищены GPG шифрованием, поэтому даже при получении SSH-доступа к моему компьютеру утечка не повлияет на безопасность

Я использую -c чтобы копировать/вставлять пароли. Есть расширение для браузера, но копипейст лично мне удобнее. Проблемы синхронизации с телефоном и всеми linux-дейвайсами тоже не стоит (потому что это всего лишь git).

Делюсь с вами переводом приветственной странички Pass.



Управление паролями должно быть простым и следовать философии Unix. Используя pass, каждый Ваш пароль находится внутри зашифрованного файла gpg, имя которого совпадает с именем ресурса или веб сайта к которому данный пароль привязан. Эти зашифрованные файлы могут быть организованы в удобные иерархии папок, скопированы с носителя на носитель и, в общем, обработаны с помощью любых утилит управления файлами командной строки.

С pass управлять отдельными файлами паролей становится крайне просто. Все пароли хранятся в ~ / .password-store, а pass предоставляет несколько удобных команд для добавления, редактирования, генерации и получения паролей. Это очень короткий и простой Shell скрипт. Он способен временно помещать пароли в буфер обмена и отслеживать изменения паролей с помощью git.
Читать дальше →

Идеальный бэкап за пять минут с ZFS

Reading time4 min
Views27K


Приветствуем в блоге компании «Маклауд»!
Сегодня мы поговорим о том, о чём должен помнить каждый — про бэкапы.

Программисты уже давно стараются использовать серьёзные production-ready решения для сохранения личных данных. Требования к инструментам растут, и если когда-то было принято держать домашние файлы на NAS и перекачивать снапшоты сервера через Rsync, то сейчас на передовой гораздо более сложные и функциональные проекты. Один из них — возможно, самый перспективный и мощный — файловая система ZFS. Оставив конкурента (btrfs) далеко позади и отстояв право на опен-сорс, она активно применяется как в хайлоаде, так и в личных системах хранения. Далее мы разберём её основные аспекты и за несколько минут поднимем рабочую систему бэкапа на удалённой VPSке. Поехали!
Читать дальше →

Wasp — DSL для разработки веб-приложений

Reading time4 min
Views4.6K


В интернете кто-нибудь постоянно делает инструменты для упрощения веб-разработки. Оставим дискуссию об изначально низкой сложности и вайтишниках, упрощение любого рабочего процесса это в принципе скорее хорошо, чем плохо. Вот только молодые разработчики и стартапы в основном пачками производят всякие генераторы бойлерплейта и low-code инструменты, которые тянут за собой лишний слой абстракции и потенциальный источник ломающегося билда. Из-за большого разнообразия они обычно не предлагают уникальных фишек и остаются без внимания, после чего горе-стартаперы бросают развитие и поддержку чтобы пересесть на другой источник хайпа. В общем, для желающих войти в эту нишу ситуация плачевная, но не безысходная — тому примером Wasp, молодой DSL-язык, который старается упростить разработку на всех этапах вплоть до деплоя.
Читать дальше →

Почему оболочка Garuda KDE превзошла Deepin Linux

Reading time4 min
Views31K

Изображение: Джек Уоллен (Jack Wallen)

Джек Уоллен, признанный эксперт, кумир многих линуксоидов, фанат FireFox и Open source в целом, неожиданно для себя выбрал своего нового фаворита среди оболочек рабочих столов для Linux. По его мнению, Garuda Linux в связке с KDE, заслуживает звания самого красивого рабочего стола. Посмотрим, какие аргументы он приводит в этой статье.
Читать дальше →

Какие накопители человечество будет использовать в будущем вместо магнитных и оптических?

Reading time6 min
Views13K

ДНК, алмазы или атомы с неспаренными электронами?



Фрагмент фейнмановской лекции «Там внизу много места». Блоки информации состоят из атомов хлора на медной пластинке. Принцип кодирования описан ниже. Изображение: TU Delft

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

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

Лучшие open source альтернативы MS Project с диаграммами Ганта

Reading time7 min
Views89K
Если вы управляете большими и сложными проектами, попробуйте сначала решения на базе open source. Если не понравится — вернётесь к Microsoft Project.



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

Один бинарник, любое окружение. Магия чистого C

Reading time5 min
Views35K


Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.

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

Reading time5 min
Views86K
В начале пандемии IT-сообщество активно прогнозировало рост выручки для гигантов индустрии, причем как в плане софта-сервиса, так и в плане вполне осязаемого железа. Уже к концу 2020 года, когда мы столкнулись с дефицитом видеокарт и игровых консолей нового поколения, зашла речь о нарушенных цепочках поставки и производства, мол, это все коронавирус и если бы не он, все было бы хорошо.



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

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

По-прежнему ли актуальны контейнеры?

Reading time5 min
Views12K


При обсуждении создания нового проекта или разработке «дорожной карты» уже существующего варианты способов запуска рабочих нагрузок никогда не были столь обширными. Мы живём в эпоху, избалованную выбором платформ — можно выбирать между open-source-инструментами, платными сервисами, enterprise-продуктами и кучей всего ещё. Из-за этого принять решение о выборе стало сложнее — шансы получить «паралич выбора» растут с увеличением вариантов. В таких условиях справедливо будет задаться вопросом: по-прежнему ли контейнеры являются разумным выбором на текущий момент и на будущее, или мы уже их переросли? Чтобы ответить на этот вопрос, нужно рассмотреть альтернативы и сравнить их с контейнерами.
Читать дальше →

Какие изменения ждут разработчиков после выхода новой Windows 10X

Reading time5 min
Views15K
Windows 10X, Project Reunion, Windows Core OS… Слышали о том, что Microsoft разрабатывала операционную систему нового поколения? Настало время узнать, что плохого и что хорошего это принесёт.


Изображение: Microsoft

Запуск Windows 10X — важный шаг для Microsoft, он знаменует собой рождение «нового поколения Windows». Об этом на конференции Ignite 2021 много говорил Пэнос Панай, директор по продуктам в Microsoft.

Не секрет, что в этом году Microsoft запускает новую операционную систему. Представители корпорации анонсировали Windows 10X ещё в 2019 году. Система построена на основе Windows Core OS. Это современная модульная программная платформа (именно она управляет гарнитурой дополненной реальности HoloLens 2). Изначально разработчики Windows 10X ориентировались на устройства с двумя экранами (например, складной планшет Surface Neo).
Читать дальше →

Почему стоит использовать exa вместо привычной консольной утилиты ls

Reading time3 min
Views24K

Изображение: Opensource.com

Цель автора статьи — показать, что exa может легко заменить стандартную утилиту ls. И более того, в сравнении с ls, exa — более гибкий и мощный инструмент.

Стараясь сэкономить время и силы, мы автоматизируем часто повторяющиеся и сложные операции. Например, для отслеживания изменений содержимого каталогов и информации о файлах в Linux-системах многие по-прежнему используют команду ls. Но вывод ls по умолчанию [по мнению автора] не совсем приятен для глаз, поэтому приходится выкручиваться. При работе с ls возникает ещё ряд неудобств, но в этой статье мы не будем про них говорить. И вообще, зачем тратить на это время, если есть exa?
Читать дальше →

Крутые трюки с переменными CSS

Reading time4 min
Views16K


Переменные в CSS (или custom properties, кому как удобнее) изначально задумывались для хранения повторяющихся свойств вроде цветовой палитры или шрифтов в одном месте. В препроцессорах работа с переменными куда более гибкая, но магия SASS/SCSS применима не всегда и не везде, и в реальном мире часто обходятся без них, что нередко ведёт к раздуванию и размазыванию кодовой базы по разным файлам и форматам. В этой статье мы рассмотрим несколько интересных хаков, которые позволяют построить на механизме custom properties вещи, кажущиеся невозможными без препроцессоров или вмешательства JS.

No comments

Reading time4 min
Views13K


«Комментарии должны составлять 5% от общего количества баллов», — заявил мой коллега-преподаватель.

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

«Я хочу, чтобы студенты изначально перенимали хорошие привычки. Вы ведь согласны, что добавление комментариев улучшает качество кода?», — спросил меня коллега, немного расстроенный моей негативной реакцией.

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

Бесплатные сервисы для разработчиков — огромный список

Reading time8 min
Views60K

Бесплатное хранилище артефактов PackageCloud

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

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →

Самые полезные новинки C++ 20

Reading time6 min
Views13K


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

Библиотека концепций C++


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

Information

Rating
Does not participate
Registered
Activity