Pull to refresh
0
0
Send message

Lock-free структуры данных. 1 — Начало

Reading time12 min
Views145K

Я надеюсь, что эта статья станет началом цикла заметок о lock-free структурах данных. Я хочу поделиться с хабрасообществом своим опытом, наблюдениям и размышлениями о том, что такое lock-free структуры данных, как их реализовывать, подходят ли концепции контейнеров стандартной библиотеки STL к lock-free контейнерам, и когда стоит (и стоит ли вообще) применять lock-free структуры данных.

Читать дальше →
Total votes 165: ↑161 and ↓4+157
Comments39

CRTP. Static polymorphism. MixIn. Размышления на тему

Reading time9 min
Views38K
В этом посте я поразмышляю на тему статического полиморфизма в С++, архитектурных решениях, строящихся на его основе. Рассмотрю интересную идиому — CRTP. Приведу несколько примеров ее использования. В частности, рассмотрю концепцию MixIn классов. Пишу, чтобы систематизировать собственные знания, но может быть и вы сможете найти что-то интересное для себя.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments6

Анатомия GNU/Linux

Reading time13 min
Views110K

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

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

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Reading time39 min
Views363K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments15

Введение в детерминированные сборки на С/С++. Часть 1

Reading time8 min
Views5.8K
Перевод статьи подготовлен специально для студентов курса «Разработчик С++».




Что такое детерминированная сборка?


Детерминированная сборка — это процесс сборки одного и того же исходного кода с одной и той же средой и инструкциями сборки, при котором создаются одни и те же двоичные файлы в любом случае, даже если они сделаны на разных машинах, в разных каталогах и с разными именами. Такие сборки также иногда называют воспроизводимыми или герметичными сборками, если гарантируется, что они будут создавать одни и те же двоичные файлы даже при компиляции из разных папок.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments1

Open source: кодоюмор, кодотрюки, НЕ кодобред

Reading time9 min
Views11K

Старый GLib vs новый Clang


Ковыряясь в разнообразном СПО, я периодически нахожу всякие интересные штуки: иногда это просто смешной комментарий, иногда — нечто остроумное в более широком смысле. Подобные подборки периодически появляются и в «глобальном Интернете», и на Хабре — есть, скажем, широко известный вопрос на StackOverflow про комментарии в коде, а здесь недавно публиковалась подборка забавных названий юрлиц и топонимов. Попробую и я структурировать и выложить то, что постепенно у меня копилось. Под катом вас ждут цитаты из QEMU, ядра Linux, и не только.

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

Пример проектирования цифрового устройства «на пальцах»

Reading time3 min
Views25K
Привет, Хабр! Это начало небольшого цикла из двух статей с пошаговым проектированием цифрового устройства с уклоном на практику. Минимум «воды» и максимум практики!

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments16

Понимая, как используется дисковое пространство в Linux

Reading time11 min
Views49K
Прим перев.: Автор оригинальной статьи — испанский Open Source-энтузиаст nachoparker, развивающий проект NextCloudPlus (ранее известен как NextCloudPi), — делится своими знаниями об устройстве дисковой подсистемы в Linux, делая важные уточнения в ответах на простые, казалось бы, вопросы…

Сколько пространства занимает этот файл на жёстком диске? Сколько свободного места у меня есть? Сколько ещё файлов я смогу вместить в оставшееся пространство?



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

Однако в современных Linux-системах такая интуиция может вводить в заблуждение. Давайте разберёмся, почему.
Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments16

Сверточная сеть на python. Часть 1. Определение основных параметров модели

Reading time8 min
Views71K

Несмотря на то, что можно найти не одну статью, объясняющую принцип метода обратного распространения ошибки в сверточных сетях (раз, два, три и даже дающих “интуитивное” понимание — четыре), мне, тем не менее, никак не удавалось полностью понять эту тему. Кажется, что авторы недостаточно внимания уделяют обычным примерам либо же опускают какие-то хорошо понятные им, но не очевидные другим особенности, и весь материал по этой причине становится неподъемным. Мне хотелось разложить все по полочкам для самого себя и в итоге конспекты вылились в статью. Я постарался исключить все недостатки существующих объяснений и надеюсь, что эта статья ни у кого не вызовет вопросов или недопониманий. И, может, следующий новичок, который, также как и я, захочет во всем разобраться, потратит уже меньше времени.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments10

Выжимаем все соки из Chromium на Linux

Reading time7 min
Views130K
В этой статье рассмотрим, как выжать все соки из Хромиума и максимально ускорить его или другой браузер на его движке (Chromium, Google Chrome, Opera, Vivaldi, Яндекс и др.). За счет включения многих экспериментальных возможностей по вынесу вычислений с процессора на видеокарту и включения использования находящихся в разработке программных алгоритмов. За счет этого наш любимый хромиум станет работать быстрее, может перестать тормозить или моргать экраном.

Поехали!
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments30

Learn OpenGL. Урок 3.3 — Класс 3D-модели

Reading time12 min
Views40K
OGL3

Класс 3D-модели


Ну что ж, пора закатать рукава и погрузиться в дебри работы с кодом загрузки и преобразования данных Assimp! Задача урока – создать еще один класс, представляющий собой целую модель, содержащую множество полигональных сеток, а также, возможно, состоящую из нескольких подобъектов. Здание с деревянным балконом, башней и, например, плавательным бассейном все равно будет загружено как единая модель. С помощью Assimp мы подгрузим данные и преобразуем их во множество объектов типа Mesh из прошлого урока.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Сравнение структур разделов GPT и MBR

Reading time11 min
Views662K
Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.

В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.

В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments38

История «мягких» (гибких) накопителей

Reading time9 min
Views40K
Сегодня для хранения информации мы используем HDD, SSD, SD-карты, USB-флэшки. Уже намного реже мы вставляем в ноутбуки лазерные диски. У меня лично дома ни одного устройства, поддерживающего этот носитель, нет.

Многие из нас давно не видели аудио и видеокассет, бобин с магнитными плёнками, дискет, и тем более перфокарт и перфолент. Эти носители, некоторые из которых известны ещё с XVIII века, почти исчезли.

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


Total votes 38: ↑38 and ↓0+38
Comments144

Как делать научные предсказания

Reading time5 min
Views18K


Предсказания, а не случайность

Как сделать предсказания любых событий так, чтобы тебе поверили серьезные учёные, ты стал знаменитым и получил нобелевку? Это очень просто: надо убедить учёных в том, что твои предсказания – это именно предсказания, а не случайность. Для этого вполне хватит школьного курса теории вероятностей. Итак, на надо выполнить лишь три пункта.
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments68

Это маленькое чудо — алгоритм Кнута-Морриса-Пратта (КМП)

Reading time9 min
Views172K
Алгоритм Кнута-Морриса-Пратта используется для поиска подстроки (образца) в строке. Кажется, что может быть проще: двигаемся по строке и сравниваем последовательно символы с образцом. Не совпало, перемещаем начало сравнения на один шаг и снова сравниваем. И так до тех пор, пока не найдем образец или не достигнем конца строки.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments57

Эффективное использование Github

Reading time13 min
Views123K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



Читать дальше →
Total votes 149: ↑148 and ↓1+147
Comments38

Так вы думаете, что знаете Const?

Reading time11 min
Views56K
От переводчика:
Предлагаю вам перевод поста из блога Мэтта Стэнклиффа (Matt Stancliff), автора нашумевшей на хабре статьи Советы о том, как писать на С в 2016 году.
Здесь Мэтт делится знаниями о квалификаторе типа const. Несмотря на вызывающий заголовок, возможно, многое из того что здесь описывается будет вам известно, но, надеюсь, и что-нибудь новое тоже найдется.
Приятного чтения.


Думаете, что вы знаете все правила использования const для С? Подумайте еще раз.
Читать дальше →
Total votes 57: ↑48 and ↓9+39
Comments57

Светодиодные лампы: пробуем разобраться с эквивалентом

Reading time3 min
Views84K
Большинство покупателей светодиодных ламп ориентируется по эквиваленту лампы накаливания. Они приблизительно представляют, как светит 40- 60- или 95-ваттная лампа и подбирают светодиодные лампы исходя из этого. И тут начинаются чудеса. Все производители указывают совершенно разные значения эквивалента. На lamptest.ru собраны данные уже более, чем по 500 светодиодным лампам и картина выглядит весьма забавно.



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

А если найду? Перелет еще дешевле чем вы уже нашли

Reading time3 min
Views122K
Если вы планируете поездку и уже нашли недорогой перелет, не спешите покупать билеты, потому что сейчас вы найдете билеты еще дешевле. И это не реклама очередного говноагрегатора.

Всем известно, что авиакомпании берут свои цены с потолка. Маркетологи придумывают хитроумные непрозрачные схемы отъёма денег у пассажиров пропорционально финансовым возможностям последних. Так, чтобы богатые платили за билеты побольше, а бедные — сколько смогут.

Читать дальше →
Total votes 123: ↑99 and ↓24+75
Comments299
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity