Pull to refresh
6
-2
Send message

Обнаружение наличия функциональности в C++ на этапе компиляции

Reading time10 min
Views4.8K

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

Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной мере поддерживаются?

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

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments6

Использование алгоритма Прима для генерации соединённых друг с другом пещер

Reading time4 min
Views13K


Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями.

Генерация идеального лабиринта



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

Для понятности я привёл псевдокод, описывающий алгоритм Прима. Будет довольно просто приспособить его под любой язык программирования.
Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments5

Как устроено множество Мандельброта. Хвост

Reading time9 min
Views5.1K
image
Хвостом будем считать череду структур к западу от центральной кардиоиды вдоль по отрицательной части вещественной оси. В этой области таится целая бездна деталей. А в деталях, как известно, кроется дьявол … и его малютки.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments7

Скрутки, клеммники и WAGO

Reading time3 min
Views47K


В свете недавнего обсуждения возникла потребность провести измерения и получить численный ответ на вопрос: что лучше? WAGO, винтовые клеммы или скрутки меди с алюминием?
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments144

Как далеки мы от беспроводного электричества?

Reading time7 min
Views24K
Привет, Хабр! Я хочу рассказать тебе историю о давних временах. Был 1891 год. Малоизвестный тогда сербско-американский ученый по имени Никола Тесла разработал устройство, генерирующее и передающее электричество без проводов. Катушка Тесла была прототипом технологии его же авторства, эта катушка считалась Священным Граалем передачи энергии.

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

Приятного чтения
Total votes 40: ↑30 and ↓10+20
Comments51

Дизайнер продукта в Почте России: кровь, слёзы, радость

Reading time10 min
Views17K

С марта 2020 я работаю в «Почтовых технологиях» — IT-филиале «Почты России». Почтатех разрабатывает цифровые продукты для Почты: внешние — для клиентов, внутренние — для сотрудников и подрядчиков. Устраиваясь на эту работу, я слабо понимала, с чем буду иметь дело. Почтатех было бесполезно гуглить, там не работал никто из моих знакомых, плюс никто не отменял нелестные стереотипы про Почту. 

Эта статья — то, чего мне не хватало в марте. Это рассказ о том, стоит ли дизайнеру идти работать в большие окологосударственные компании, нацеленные на цифровизацию. Слова «Почта России» в статье используются для удобства: в основном речь идёт скорее о Почтатехе (филиале Почты), чем о головной компании. 

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

Читать далее
Total votes 44: ↑40 and ↓4+36
Comments80

Библиотека от AMD стала причиной плохой производительности процессоров AMD в Cyberpunk 2077

Reading time5 min
Views74K


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


Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments90

«Чертовски глупое решение»: история появления языка C

Reading time12 min
Views31K

Как ни сложно в это поверить, C не родился в виде истрёпанного руководства в бумажной обложке.

В том или ином виде, язык C повлиял на формирование практически каждого языка программирования, разработанного с 1980-х. Некоторые языки наподобие C++, C# и Objective C должны были стать прямыми наследниками C, а другие просто переняли и адаптировали его синтаксис. Программист, перешедший с Java, PHP, Ruby, Python или Perl, почти не испытает сложностей с пониманием простых программ на C, и в этом смысле C можно воспринимать как lingua franca программистов.

Однако C не возник из ниоткуда как единый монолит программирования. История C начинается в Англии, с коллеги Алана Тьюринга и программы, игравшей в шашки.
Total votes 74: ↑72 and ↓2+70
Comments33

Электронная амеба и задача коммивояжера

Reading time11 min
Views2.9K


Какой самый ценный ресурс на планете? Нефть, вода или может чистый воздух? Самый ценный ресурс, по мнению многих, это время. Его всегда не хватает, люди постоянно куда-то спешат, а любая деятельность так или иначе связана с временем: сколько баррелей нефти добывает одна нефтяная платформа в единицу времени, сколько клиентов обслуживает ресторан в единицу времени, сколько строк кода пишет программист в единицу времени и т.д. Правильное распределение задач по времени играет важную роль не только в промышленных или корпоративных масштабах, но и в быту. Мы всегда стараемся распределить свой день так, чтобы он прошел максимально эффективно и без лишних проблем. Можно сказать, что мы каждый день, сами того не подозревая, решаем свою собственную версию задачи коммивояжера. Ученые из университета Хоккайдо, вдохновившись одноклеточными амебами, решили создать аналоговый компьютер по их подобию, который может предложить самый эффективный метод решения знаменитой задачи комбинаторной оптимизации. Почему именно амебы стали вдохновителями этого труда, по какому принципу работала созданная система, и насколько эффективно она решала задачу коммивояжера? Об этом мы узнаем из доклада ученых. Поехали.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments3

Что такое microLED и почему это круто? Разбор

Reading time6 min
Views26K
Уже не первый год утечки кричат, что Apple инвестирует много миллионов долларов в компании по разработке дисплеев на основе microLED.

Многие аналитики, в том числе анонимный китайский инсайдер @L0vetodream, заявляли в Твиттере, что в Apple Watch Series 6 будет совершенно новый дисплей, но этого не произошло.

Возможно виноват COVID-19, который затормозил процессы в технологической сфере и уже по новым данным нам известно, что новый тип дисплеев, microLED, мир увидит в гаджетах от яблочной компании не раньше 2023 года и, возможно, в совершенно новом гаджете!


Прошу не путать с miniLED, хоть названия и похожи — разница колоссальная. Сегодня мы заглянем в настоящее будущее дисплеев и разберемся во всём, как вы любите.
Total votes 16: ↑14 and ↓2+12
Comments16

Энтузиаст добавил в ретроконсоль трассировку лучей

Reading time2 min
Views15K

Разработчик и энтузиаст Бен Картер добавил в Super NES аппаратный трассировщик лучей. Напомню что самой консоли уже 30 лет.

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments23

Мифический человеко-месяц 45 лет спустя

Reading time9 min
Views20K
Впервые о книге Фредерика Брукса я услышал лет десять назад, ещё учась в универе. Её настоятельно советовал почитать наш научный руководитель. Как часто бывает в таких случаях, когда кто-то вам советует что-то почитать, то вы вежливо говорите нечто вроде «да-да, в скором времени, непременно этим займусь», заносите очередной пункт в свой grow list (в лучшем случае) и благополучно об этом забываете.



Через пару лет я вернулся к этой книге и наконец с ней ознакомился. К тому моменту у меня уже было несколько лет работы в IT-индустрии. И когда я начал читать, то удивился, насколько книга, написанная в 1975, да ещё и в сфере разработки ПО, по-прежнему актуальна!

В этом году наконец вышло очередное переиздание, поэтому я решил приобрести её в бумажном варианте и перечитать ещё раз. И вместе с вами обсудить некоторые цитаты, которые актуальны до сих пор.
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments108

9 тяжёлых уроков, которые я усвоил за 18 лет разработки

Reading time8 min
Views61K
Я начал писать код в моей комнате родительского дома, когда мне было 14. Помню, как читал всё, что мог достать с помощью своего медленного соединения с Интернетом. Затем, когда мне было 20, я подписал первый контракт, став веб-разработчиком и изучая PHP и JavaScript. Мне потребовалось 18 лет, чтобы осознать, что кодинг — только часть профессии. Заметьте, я по-прежнему наслаждаюсь кодингом. Не думаю, что когда-нибудь перестану программировать, даже если это станет просто моим хобби, но есть нечто гораздо большее, чем код. Вот почему я хочу поделиться своим опытом. Я думаю, что иногда разработчики усваивают эти уроки слишком поздно.

Приятного чтения
Total votes 90: ↑81 and ↓9+72
Comments142

Каждому нужен кто-то: обнаружена зона головного мозга, отвечающая за чувство одиночества

Reading time3 min
Views13K
Источник

Социальная зависимость, как выяснили ученые из Канады, имеет свою цену. Они проанализировали 40 тыс. добровольцев и обнаружили, что за субъективное ощущение одиночества отвечает сеть пассивного режима работы мозга. Эта часть активизируется в периоды ничегонеделания.

Так что за цена, о которой говорилось выше? Чрезвычайная зависимость человека от социальных связей привела к тому, что людей называют «сверхсоциальными животными» (the ultra-social animal). Недостаток соцактивности приводит к определенным физическим и психологическим издержкам. Однако, если выяснить, как функционирует эта система, можно осознанно избежать одиночества, тем самым, качественно улучшив состояние и жизнь.
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments9

Эволюция системы обновления Android

Reading time11 min
Views9.9K

В этой статье мы рассмотрим все возможные варианты обновления прошивки на устройствах под управлением Fuchsia Android. Особое внимание уделим самому популярному способу — обновлению по воздуху или OTA (over-the-air) — и расскажем об этапах его развития.

Итак, как можно обновить Android на мобильных устройствах? Занимаясь разработкой ТВ-приставок под управлением этой ОС, мы определили для себя 4 способа, отбросив совсем уж экзотические варианты...

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments4

Устройство современного веб-браузера Chrome (часть 1/4)

Reading time8 min
Views33K

Оригинальное название публикации: "Inside look at modern web browser".


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


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments12

Об одной изящной конструкции

Level of difficultyMedium
Reading time7 min
Views76K

Введение


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

Распечатать в порядке возрастания все несократимые дроби, знаменатель которых не превосходит заданного числа $n, \, n \le 100$.

Когда я прочитал условие задачи до конца, она не показалась мне сложной (она таковой и не является). Первое, что пришло мне в голову — это просто перебрать все знаменатели от $2$ до $n$ и для каждого знаменателя перебрать числители от $1$ до знаменателя, при условии, что числитель и знаменатель взаимно просты. Ну, а затем остается отсортировать их по возрастанию.

Такое решение верное, и задача прошла все назначенные ей тесты. Однако мой преподаватель сказал, что задачу можно решить намного красивее. Так я и познакомился с замечательной конструкцией: деревом Штерна — Броко.
Читать дальше →
Total votes 178: ↑172 and ↓6+166
Comments36

Учёт статистической информации о пробках при поиске проезда на автомобиле

Reading time7 min
Views19K
Не так давно на хабре вышла статья про алгоритмы маршрутизации в продуктах 2ГИС. Я продолжу рассказ коллеги, объяснив по каким принципам в ПК-версии мы ищем оптимальный по времени маршрут для автомобиля. Тут хотелось бы напомнить, что ПК-версия 2ГИС работает без подключения к интернету.

Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments22

Модели памяти, лежащие в основе языков программирования

Reading time24 min
Views30K
Предлагаем вашему вниманию перевод статьи, посвящённой рассмотрению используемых в программировании моделей памяти.

Сегодня в программировании доминируют шесть основных моделей памяти (не путать с моделями памяти Intel 8086). Три из них проистекают из трех исторически наиболее важных языков программирования 1950-х годов — COBOL, LISP и FORTRAN, а остальные связаны с тремя исторически важными системами хранения данных: магнитная лента, иерархическая файловая система в Unix-стиле и реляционная база данных.

Эти модели на гораздо более глубоком уровне, чем синтаксис или даже система типов, определяют, что наши языки программирования могут или не могут делать. Давайте подробно рассмотрим эти модели, а затем обсудим некоторые возможные альтернативы и причины, почему они могут быть интересны.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments13

FSE кодирование

Reading time9 min
Views14K
Finite State Entropy (FSE) – алгоритм энтропийного кодирования, чем-то похожий и на алгоритм Хаффмана, и на арифметическое кодирование. При этом он взял лучшее от них обоих: работает так же быстро, как хаффмановский, и со степенью сжатия как у арифметического кодирования.

FSE принадлежит семейству кодеков ANS (Asymmetric Numeral Systems),  изобретённых Яреком Ду́дой. На основе его исследований Ян Колле разработал оптимизированный вариант алгоритма, впоследствии названный FSE.

В заметках Яна Колле непросто разобраться, поэтому я изложу объяснение в несколько ином порядке, более удобном для понимания, на мой взгляд.


Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity