Search
Write a publication
Pull to refresh
5
0.6

Разработчик ПО

Send message

Хабр, который стал родным

Reading time8 min
Views5.6K

Я люблю читать. Даже YouTube не смог победить во мне любовь к текстам. Даже подкасты не смогли переманить на свою сторону, хоть у них и бывают печеньки. Ни один медиаконтент мира не сможет заменить чтение. Когда в моей жизни появился интернет, я читал всё, до чего дотягивался: от башорга до Ленты, от Коммерсанта и РБК до ЖЖ. Чуть позже появились большие и качественные ресурсы, среди которых оказался Хабр. Когда я впервые его увидел, ему было около трёх лет и он уже был похож на тот, который мы видим сегодня. Я тогда ещё только подходил к IT и Хабр не был тем интернет-изданием, с которого я начинал своё утро. Проекты умирали, глохли, привычные сайты замирали, загибался ЖЖ… а Хабр жил. Менялся и рос так, как будто команда полна идей и видит рынок на сто лет вперёд. Постепенно Хабр стал тем сайтом, который я открываю первым, как только открою глаза и дотянусь до телефона. Погода, новости, сводки ковида — всё только после него. Хабр стал родным — и для меня он всегда тот.

Так, а к чему это я всё? Ах да. Хабр, тебе ж сегодня исполняется 15 лет.

Так Хабр тот или нет тот?

Спросите Итана: по какой фундаментальной причине E = mc²?

Reading time8 min
Views39K


Альберт Эйнштейн в 1920 году. Хотя он и совершил множество прорывов в физике, от специальной и общей теорий относительности до фотоэлектрического эффекта и статистической механики, многие задачи он решить не сумел. Самым его знаменитым уравнением остаётся E = mc².

Спросите любого человека, даже не разбирающегося в науке, о достижениях Эйнштейна, и вам приведут в пример самое его знаменитое уравнение: E = mc². Проще говоря, оно означает, что энергия равняется массе, перемноженной с квадратом скорости света. И это очень многое говорит о нашей Вселенной. Единственное уравнение говорит о том, сколько энергии содержится в массивной частице в состоянии покоя, и сколько энергии требуется для создания частиц и античастиц. Оно говорит нам о том, сколько энергии высвобождается в ядерных реакциях, и сколько энергии порождает аннигиляция материи с антиматерией.

Но почему? Почему энергия равняется массе, перемноженной с квадратом скорости света? Почему не как-то иначе? Об этом спрашивает наш читатель:
Читать дальше →

Линус Торвальдс остался недоволен рядом моментов в использовании Rust для Linux

Reading time3 min
Views30K

В прошлом году разработчики ядра Linux предложили использовать Rust для нового встроенного кода. В марте 2021 года эта идея была частично реализована — в состав ветки linux-next, на которой будет базироваться Linux 5.13, включили начальный набор компонентов для разработки драйверов устройств на Rust.

Тогда же была опубликована документация по использованию Rust в ядре Linux с практическими примерами. Изначально Торвальдс не выступал резко против нововведений (не делает этого он и сейчас). Заявил лишь, что нужно проверить, как все эти новинки работают на практике. Сейчас Линус Торвальдс провел рецензирование патчей с реализацией возможности создания драйверов на Rust для Linux и высказал ряд критических замечаний.
Читать дальше →

«Уже сегодня это на нас влияет, а завтра повлияет очень сильно». Разговор о квантовых технологиях с Алексеем Фёдоровым

Reading time25 min
Views12K

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


И всё же прогресс в квантовых технологиях заметен хотя бы по тому, какое внимание им уделяют крупнейшие корпорации. IBM ещё в 2018 году рапортовали о сотне тысяч пользователей платформы Quantum Experience, Microsoft создаёт quantum development kit, и даже J.P. Morgan пытается развить в компании quantum culture. Любопытно, что сейчас всё больше говорят о связи квантовых вычислений и искусственного интеллекта.


В конце ноября 2020 года я встретился с Алексеем Фёдоровым, одним из ведущих российских специалистов в области квантовых технологий, автором десятков научных публикаций, руководителем научной группы Российского квантового центра, профессором МФТИ и обладателем бесчисленного множества других регалий. Он многое рассказал о состоянии современной квантовой науки, о грядущих технологических внедрениях и об интересных задачах, которые можно решать прямо сейчас. Видеозапись интервью смотрите на YouTube, там же доступна и запись последующего доклада на конференции YaTalks.


image

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

Архитектор современных алгоритмов

Reading time9 min
Views5.9K

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

Читать далее

Теория строения скрытых систем

Reading time48 min
Views6.7K

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

Таков «театр безопасности» преследует в первую очередь экономическую цель, базовым интересом которой безусловно служит искусство продать рекламу, сделать так, чтобы «релевантность» запросов постоянно преследовала конечных покупателей, достигала их и покоряла «альтруизмом» маркетологов. Прибыль как цель - такова основная суть современной централизации, где комфорт, удобство и простота делают её всего-навсего более достигаемой и осуществимой [2]. Все вытекающие политические интересы (в основе которых лежат запреты и цензура) служат только продолжением экономических, где давление и поглощение какой бы то ни было конкуренции, оппозиции и сопротивления является способом сдерживания уже устоявшихся основоположений. Таким образом, обобщая, можно заметить связь, где экономическая составляющая играет роль распространения информации, а политическая основа сдерживает её распространение для иных (децентрализованных систем, как неконтролируемых средств распространения информации) и схожих участников ролевой модели (централизованных конкурентов, как соперников маркетинга и прибыли). Любое возрождение децентрализации, в идее которой лежит безопасность пользователей, является априори враждебной и приводящей к дальнейшему и скорейшему её подавлению, вплоть до уничтожения [3], т.к. в отличие от централизованных конкурентов, никак не разрушающих устоявшуюся систему, децентрализованная система представляет значительную угрозу, потому как приводит к разложению концентрированных соединений и к зарождению ризоморфных положений.

Читать далее

Неявный вывод в Scala

Reading time3 min
Views2.2K

Многие начинающие и не очень Scala разработчики принимают implicits как умеренно полезную возможность. Использование обычно ограничивается передачей ExecutionContext  во Future. Другие же избегают неявного и считают возможность вредной.

Но я считаю этот механизм важным преимуществом языка, давайте разберемся почему.

Читать далее

Эти безумные KPI

Reading time12 min
Views20K

Любите ли вы KPI? Полагаю, скорее всего, нет. Трудно найти человека, который не пострадал от KPI в том или ином виде: кто-то не дотягивал до целевых показателей, кто-то столкнулся с субъективной оценкой, а кто-то поработал, уволился, но так и не смог узнать, из чего состояли те самые KPI, которые в компании даже упомянуть боялись. И вроде бы хорошее дело: в показателе тебе транслируют цель компании, ты делаешь всё для её достижения, в конце месяца получаешь премию или другой бонус. Прозрачная игра, честные ставки. Но нет, KPI превратились в страшного и неудобного монстра, который то и дело норовит подстегнуть нерадивых, но при этом ничего не даёт исполнительным сотрудникам. Что-то с этими показателями не так! 

Спешу сообщить: если вы не любите KPI, в вашей компании их просто не умеют готовить. Ну или вы разработчик. 

Поехали

Теория программирования: пакетные принципы и метрики

Reading time9 min
Views17K


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

Угон домена Perl.com

Reading time9 min
Views18K

Прим. перев.: в конце января стало известно о том, что один из основных доменов языка программирования Perl — Perl.com — был угнан. Это вызвало смешанную реакцию в сообществе как любителей языка, так и его противников. Теперь, когда всё уже позади и справедливость восстановлена, один из самых известных сторонников Perl — brian d foy — рассказал о том, что же произошло и как сообщество добилось положительного исхода событий. Представляем вниманию перевод его заметки.

Читать далее

Самая крутая библиотека для Data Science, которую я нашёл в 2021 году

Reading time3 min
Views11K

Больше никогда не тратьте время на настройку гиперпараметров




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

Если вам также нравится автоматизировать скучные вещи, вам понравится библиотека, которую я собираюсь рассмотреть в этой статье.
Приятного чтения!

Что такое научное мышление?

Reading time3 min
Views21K

«Когда люди думали, что Земля плоская, они ошибались. Когда люди думали, что Земля была сферической, они ошибались. Но если вы считаете, что первые и вторые одинаково ошибались, то Вы ошибаетесь больше, чем они все вместе взятые» - Айзек Азимов.

Разобраться

Глубокие нейронные деревья принятия решений

Reading time17 min
Views11K

Глубокие нейронные сети доказали свою эффективность при обработке данных  таких, как изображения и аудио. Однако для табличных данных более популярны древовидные модели. Хорошим свойством древовидных моделей является их естественная интерпретируемость. В этой работе мы представляем Deep Neural Decision Trees (DNDT) –древовидные модели, реализованные нейронными сетями. DNDT внутренне интерпретируем. Тем не менее, поскольку это также нейронная сеть (NN), ее можно легко реализовать с помощью инструментария NN и обучить по алгоритму градиентного спуска, а не по «жадному» алгоритму. Мы проводим оценку DNDT на нескольких табличных наборах данных, проверяем его эффективность и исследуем сходства и различия между DNDT и обычными деревьями решений. Интересно, что DNDT самообучается как на разделенном, так и на функциональном уровне.

Читать далее

Открытые материалы: курс по вычислительной нейронауке

Reading time2 min
Views3.7K

В осеннем семестре 2020 года команда лаборатории Нейробиологии и физиологии развития прочитала курс «Вычислительные Нейронауки» для студентов партнерских магистратур ВШЭ и ИТМО, а также для заинтересованных вольнослушателей. Курс проводится в рамках образовательных программ JetBrains c 2019 года. В этом году, в отличие от прошлого, формат обучения был, естественно, дистанционный –– лекции и семинары проводились в виде видеоконференций. В ходе курса студентам был предложен базовый материал для изучения и обсуждения в аудитории, материалы для самостоятельного, более глубокого погружения, интересные практические задания по моделированию нейронов и биологических нейронных сетей. 

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

Читать далее

Какое пламя горячей? ФАКЕЛЬНИК

Reading time14 min
Views18K
Хомяки приветствуют вас, друзья!

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



Эта история начинается с одного человека, который написал мне в инстаграме что-то типа:
Привет, я знаю как настраивать «Факельник»
Как раз в это время я пил пивас на кухне и думаю…
Да, а чего это я не знаю как настраивать «Факельник», и начал разбираться

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

Схема состоит всего из шести отдельных элементов и хомяк с любопытством спешит их изучить. Слева направо. Резонатор, дроссель по питанию, контурная индуктивность на керамике и контурный серый конденсатор, MOSFET транзистор на радиаторе и коричневый слюдяной конденсатор КСО. Эти кадры «как вы понимаете» снимались в самом конце, когда всё было настроено и резонансы были подогнаны друг к другу.
Читать дальше →

Как увидеть ℼ? Нужно швырнуть ℼ в стену

Reading time2 min
Views49K
Лучший способ объяснить школьникам и самому себе, что такое фазовое (конфигурационное) пространство.

image


Дано: Два блока массой 1 кг и 100 (10 000, 1 000 000,… 100x) кг. Трение в системе отсутствует, удары абсолютно упругие (потерь энергии нет). Более массивный блок ударяет менее массивный и тот отскакивает от него, а потом от стенки слева. Справа стены нет, тела могут двигаться в бесконечность.

Вопрос: Сколько столкновений совершит маленький блок, пока система не придет в состояние, когда столкновения невозможны (скорость маленького тела меньше скорости большого, двигающегося в бесконечность)?

Ответ невероятен:

image


В очередной раз поражаюсь изящности объяснений от 3Blue1Brown. Предлагаю читабельный конспект с небольшими сокращениями и дополнениями.

Автоматизированная сборка Delphi-приложения

Reading time14 min
Views25K

Я довольно часто сталкивался с тем, что разработчики на Delphi (можно сказать традиционно) компилируют свои приложения "ручками", что далеко не production-решение, а со стороны выглядит кустарщиной и "делаем на-коленке", хотя продукты бывают весьма серьёзными и продаваемыми. Вероятно, это пошло ещё с тех пор, когда для автоматизации нужно было придумывать свои батнички, которые запускали компилятор командной строки dcc32 с нужными параметрами. Некоторые даже сделали свой "Публикатор" — Delphi-expert, который делает работу сервера сборок: компилирует (правда, открытый в IDE) проект, выставляя ему взятый из какой-то БД инкрементированный номер версии, записывает некий changelog и копирует это куда-то в сетевой каталог.


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


Файл проекта современной версии Delphi — это .dproj-файл (здесь и далее я буду ориентироваться на Delphi 10 Rio, но с небольшими отличиями это верно для всех более ранних версий Delphi, начиная с 2007). В нём хранятся все настройки проекта, которые обычно изменяют в IDE (меню Project - Options (Ctrl+Shift+F11)). В рамках данной статьи я сконцентрируюсь на "основных", которые понадобятся для демонстрации общих принципов: это Config — конфигурация, Platform — платформа, OutputDirectory — путь выходного файла и ConditionalDefines (директивы условной компиляции). Остальные настройки, если таковые нужно менять при сборке, я предлагаю выявить самостоятельно. Этот же .dproj-файл, если в него заглянуть обычным текстовым редактором, является ничем иным как скриптом сборки MSBuild (давайте создадим простое консольное приложение и назовём его DelphiAutomatedBuild):

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

О шахматах. И не только

Reading time7 min
Views13K
Сегодня не будет тяжких раздумий о настоящем и будущем компьютерной индустрии. Сегодня я хочу рассказать об одном из своих хобби. Я играю в массу разных игр: футбол, хоккей, теннис (большой и маленький), покер, преферанс, биржа и т.п. Но мой “профильный” вид спорта — шахматы. Дальше кандидата в мастера моя карьера на этом поприще не продвинулась, но любовь к древней игре я сохраняю уже 4 десятка лет. Интересно, что она вполне “ужилась” с другим увлечением – программированием, породив интерес к искусственному интеллекту и теории игр. И разумеется, последние прорывы в этой области связанные с феноменальными успехами проекта AlphaZero не могли пройти мимо меня.

image

Тогда я просто сидел и восхищался партиями AlphaZero против Stockfish. А сейчас вернулся к теме в связи с задачей оптимизации нейронных сетей, которой иногда приходится заниматься по работе (увы, меньше чем хотелось бы). Как мне кажется, задачи эти могут оказаться тесно связанными, поэтому захотелось как то систематизировать свои идеи.
Читать дальше →

Векторные языки — параллельный мир

Reading time18 min
Views15K

Векторные языки мало известны широкому кругу программистов и занимают узкую нишу обработки данных в финансах, статистике и прикладной математике. Хотя сам векторный подход (или, точнее, программирование с помощью массивов) распространен гораздо шире, чем может показаться. Он реализован в известных библиотеках (NumPy), популярном языке статистиков R, математических пакетах (MATLAB), даже в современных языках программирования (Julia). Однако, возможность умножить матрицу на вектор простым выражением (A*v) – это всего лишь вершина айсберга возможностей, которыми обладают полноценные векторные языки. При том, что эти языки не так сильно отличаются от обычных, как может показаться на первый взгляд, они заставляют программиста мыслить совершенно в других категориях и реализовывать алгоритмы способами, которые никогда не придут в голову человеку, привыкшему к Java или даже Haskell. Их характерной чертой, например, является выворачивание наизнанку циклов – вместо того, чтобы спускаться по вложенным циклам вниз к простым значениям и там использовать их в функциях, вы оперируете сложными объектами целиком, давая указания языку, какие именно части этих объектов и как именно вы хотите использовать и так много раз в одном выражении. В этой статье я хочу познакомить вас с этим оригинальным подходом к реализации алгоритмов.

Читать далее

Есть ли параллелизм в произвольном алгоритме и как его использовать лучшим образом

Reading time15 min
Views7.2K

Параллелизации обработки данных в настоящее время применяется в основном для сокращения времени вычислений путем одновременной  обработки данных по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов. Параллельное выполнение позволяет “обойти” сформулированный лордом Рэлеем в 1871 г. фундаментальный закон, согласно которому (в применимости к тепловыделению процессоров) мощность их тепловыделения пропорциональна четвертой степени тактовой частоты процессора (увеличение частоты вдвое повышает тепловыделение в 16 раз) и фактически заменить его линейным от числа параллельных вычислителей – при сохранении тактовой  частоты). Ничто не дается даром – задача выявления (обычно скрытого для непосвящённого наблюдателя, [1]) потенциала параллелизма в алгоритмах не является "лежащей на поверхности", а уж эффективность его (параллелизма) использования – тем более.

Далее читать

Information

Rating
3,338-th
Registered
Activity