Search
Write a publication
Pull to refresh
2
0
Send message

Происхождение и эволюция аллокатора памяти в С

Reading time11 min
Views24K

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

Аллокатор памяти в С - именно тот случай, когда при попытке ознакомиться с его современным устройством возникает стойкое желание остановиться, мысленно поблагодарить авторов и далее обращаться как с черным ящиком. Если же в читателе сильна любознательность, и/или есть желание постигнуть тайное знание, которое даст ощущение понимания странного поведения программ в нетривиальных случаях, добро пожаловать под кат.

Читать далее

84 года Дональду Кнуту

Reading time4 min
Views8.8K


На его книгах обучилось не одно поколение программистов, в том числе, и в нашей стране. Созданная им в 70-х годах прошлого века система набора текста TeX до сих пор активно используется по всему миру для верстки высококачественных документов, таких как исследовательские работы, технические руководства и учебники. Его называют пионером в области компьютерных технологий, особенно в сфере языков программирования, а также «отцом анализа алгоритмов». Речь идет о почетном профессоре Стэнфордского университета Дональде Эрвине Кнуте, известном ученом, математике и авторе популярной технической литературы.
Читать дальше →

Эволюция распределённых атак в интернете: 1994 — настоящее время

Reading time19 min
Views7.6K

В каких юнитах можно померить DDOS атаку? Биты в секунду, запросы, пакеты, время даунтайма, количество машинок в ботнете — все эти ответы верные. Потому что DDoS-атаки бывают разных категорий и для каждой есть свои ключевые метрики. Их рост и является движущей силой для эволюции DDoS атак. Посмотрим, как это происходит.

Поможет нам в этом Георгий Тарасов, владелец продукта Bot Protection в Qrator Labs. Ранее он занимался разработкой, проектным менеджментом и pre-sales. Вместе с ним мы полетим в 1994 год и обратно, в настоящее время. Посмотрим, как развивались распределённые атаки на отказ в обслуживании за эти годы, к чему они пришли сейчас, и на что есть смысл обратить внимание.

Читать далее

BEC-атака века. Как корпорации поделились миллионами с киберпреступником

Reading time5 min
Views5K

Привет, Хабр! Мы с очередным рассказом из подкаста Darknet Diaries – историей про кибемошенника по имени Эвалдас Римасаускас, которому удалось украсть миллионы у Facebook* и Google. История того, как он заставил корпорации оплачивать фейковые счета Quanta Computer, широко известна. В статье – ее подробности, рассказ о том, как виртуозно он использовал методы социальной инженерии.

Читать далее

Как новичку разработать опенсорс-библиотеку: опыт фронтенд-разработчика

Reading time9 min
Views7.1K

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

Меня зовут Женя, я все еще фронтенд-разработчик в команде Quick Experiments inDrive. В этой статье буду делиться своим выводами, а также прикладывать дополнительные ссылки, чтобы познакомить вас с материалом более подробно.

Узнать главное о создании библиотеки

Что нужно знать про оперативную память: тактовая частота, пропускная способность, тайминги, классы (DDR) и многое другое

Reading time10 min
Views194K

Привет, Хабр! Сегодня мы поговорим про оперативную память, про то, какие ее типы можно свободно купить в магазине для сборки ПК или его модернизации. Под катом рассказ об отличиях разных типов ОЗУ друг от друга, о разгоне и охлаждении памяти, а также несколько мыслей о том, имеет ли значение, какую планку памяти стоит установить в конкретный компьютер, чтобы добиться оптимального сочетания быстродействия, энергоэффективности и стоимости. Этот пост будет интересен тем, кто не считает себя DDR-гуру и при выборе памяти не уверен на 100% какие именно нужны тайминги, типы и характеристики модулей.

Читать далее

Магия оптимизации SQL запросов

Reading time7 min
Views73K

Даже самый простой SQL запрос можно выполнить по-разному. Но из всех вариантов СУБД нужно выбрать оптимальный, как же это сделать? Неужели придётся перебрать все возможные варианты? Давайте разбираться.

Читать далее

Алгоритм построения набора нетранзитивных игральных костей

Reading time5 min
Views3.7K

Нетранзитивными игральными костями я заинтересовался, когда увидел задачу Нетранзитивные кубики на Элементах. Приведенное на сайте решение меня абсолютно не удовлетворило (собственно это и решением назвать нельзя - автор просто выдал готовый ответ). Послесловие оказалось не лучше, что только подстегнуло интерес к задаче.

Остались вопросы. Можно ли построить набор кубиков "с нуля"? Как построить набор костей с другим количеством граней? Будут ли там решения с равными вероятностями выигрыша? Я попытался найти общий алгоритм со следующими условиями:
1. Алгоритм должен работать для любого количества костей с любым количеством граней (равным для всех костей в наборе).
2. Все кости выигрывают у своего соседа в наборе с равной вероятностью.
3. Алгоритм должен создавать набор для любой заданной вероятности выигрыша.

Читать далее

Сам себе сотовый оператор

Reading time14 min
Views101K
… Кроме типовых для журнала статей, там была статья за авторством некоего «DI HALT» про то, как из двух телефонов и микроконтроллера извлечь кучу лулзов. «Прикольный ник» — подумал мальчик Андрей и перелистнул страницу, ибо ниасилил. А за ней была статья того же автора про то, как скрестить флешку с мышкой. «А вот это нам под силу» — подумал мальчик и убил уже знакомую вам флешку банальной переполюсовкой. Но зато он понял, что электроника — это весело и почти безопасно. — с просторов



Приветствую всех!

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

Создаем свой загрузочный диск Linux

Reading time13 min
Views55K

В статье описывается способ, как создать собственный загрузочный диск Linux (оптический диск или флешку), добавить в него только нужные программы и убрать все лишнее. Полученный образ в экспериментах занял менее 25 Мб. Он позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.

Читать далее

Осциллограф, огромные колонки, HDD на 3 ТБ и XBox One: постпраздничная испанская барахолка

Reading time3 min
Views11K


Привет, Хабр! Прошли праздники, а значит, на круги своя возвращается обычная жизнь. В Испании, где я живу, две недели продолжались праздники, а значит, муниципальные и прочие организации тоже не работали. К чему это я? Дело в том, что барахолки в Испании управляются муниципалитетами городов, в которых они размещаются. Государственный выходной? Значит, не работает и барахолка.

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

Преодоление встроенных ограничений системы: пример из биологии

Reading time8 min
Views4.2K

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

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

Читать далее

Консоль SSH на WebAssembly внутри браузера: как это сделано

Reading time5 min
Views16K
Веб-консоль SSH запускается по нажатию кнопки на сайте

Почти у каждого VPS- и облачного провайдера есть веб-клиент SSH, который запускается через браузер. Такое приложение помогает вам подключиться по SSH к своим виртуальным машинкам на удалённом сервере, не выходя из браузера.

В наше трудное время безопасность не бывает лишней, а область использования SSH и RDP сильно расширяется. Есть смысл шифровать каналы связи при подключении к любым устройствам, в том числе в своей домашней сети. Например, из любой точки мира вы можете подключиться к домашнему компьютеру в РФ и работать внутри страны — заходить на местные сайты типа госуслуг, сбера, оплачивать пошлины, оформлять документы и т. д.

К счастью, существуют удобные инструменты для выполнения всех этих задач.
Читать дальше →

Полное руководство по модулю asyncio в Python. Часть 5

Reading time19 min
Views39K

Привет, Хабр! Публикуем пятую часть (перваявтораятретьячетвёртая) перевода руководства по модулю asyncio в Python. Здесь представлены разделы оригинала с №10 по №13.

Читать далее

Вы НЕ сошли с ума (о режиме сна в Windows)

Reading time8 min
Views157K

Вы сталкивались с тем, что ноутбук случайно включается, хотя вы уверены, что отправляли его в сон?

Бывало, что батарея оказывалась пустой, хотя вы точно-точно помните, как убирали в сумку заряженный на 100% ноутбук?

Тогда вам сюда:

Мне сюда

Экстремально уменьшаем размер NPM пакета

Reading time21 min
Views8K

Однажды я захотел создать небольшую NPM библиотеку по всем “best practices” - с покрытием тестами, написанием документации, ведением нормального версионирования и changelog'а и т.п. Даже написал пару статей, которые в деталях описали, какие вопросы решает библиотека и как её использовать. И одной из интересных для меня меня задач при создании библиотеки была задача по максимальному уменьшению размера выходного NPM пакета - того, что в конечном итоге в теории будет использовать другой программист. И в этой статье я бы хотел описать, к каким методам я прибегал для того, чтобы достигнуть желанной цели.

Читать далее

3D-моделирование в Blender для подростков: чему можно научиться

Reading time5 min
Views29K

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

Читать далее

Советы по архитектуре кода для начинающих

Reading time8 min
Views36K

Для кого статья

Вы уже написали свои первые 1000 строк кода и сейчас хотите сделать их понятнее, потому что внесение изменений занимает столько-же времени, сколько написать заново, но советы из ООП, SOLID, clean architecture и т.д. непонятны вам.

О чем статья

Эта статья - не объяснение принципов ООП, SOLID своими словами, а попытка создать промежуточный уровень между никакой и чистой архитектурами. 100% советы будут накладываться друг на друга и перефразировать SOLID, но так даже лучше.

От кого статья

Я Middle разработчик. Конечно, не гуру разработки, но кому, как не мне, помнить о проблемах, с которыми сталкивался когда только начинал свой путь.

Отказ от ответственности

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

Формат статьи - наводящие советы / вопросы.

Читать далее

Мемы 2019 года: девушки с котом, волчьи цитаты и взаимный троллинг поколений

Reading time14 min
Views35K

Первая, вторая и третья части обзора повествовали об интернет-культуре и мемах с начала нулевых по середину десятых годов. Четвёртая завершилась на 2018 году. Пора добраться и до мемов рубежа десятых и двадцатых годов вплоть по конец ушедшего 2022 года.

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

Этапы и принципы развития навыка говорения

Reading time7 min
Views37K

«Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка». Эту фразу из несуществующих слов предложил в начале XX века академик Л.В. Щерба. Из неё ясно, что «будлану́ла» — действие, которое ку́здра (ж.р.) совершила в отношении бо́кра (м.р.); бокрёнок, скорее всего, детёныш бокра. Для русского это очевидно сразу. Иностранцу придётся сначала выучить русский. Фраза показывает, что язык — это НЕ СЛОВА. Слова легко переходят из одного языка в другой. Язык  это принципы, по которым слова связываются друг с другом.

В том, чтобы научиться говорить, ничего сложного нет — проблема это придуманная. А все неудачи от того, что люди, как говорится, put the cart before the horse, ставят телегу впереди лошади. Пытаются говорить, не понимая, как связываются слова в языке. Это как пытаться бегать, не научившись ходить.

Не будем обсуждать руссо туристо, когда говорят наполовину инфинитивами, наполовину знаками. Выделим три уровня «говорения»:

1-й уровень: говорим по-простому, но +/- грамматически правильно. Например, не зная выражения «прикрой форточку», говорим проще: «закрой маленькое окно, но не до конца».

2-й уровень: говорим на конкретные темы именно теми фразами, которые используют носители языка («прикрой форточку»).

Есть реальная история про русского математика, который читал лекцию на английском в Оксфорде. Упоминал степени, корни, дроби и прочие математические штуки, которые не каждый переводчик сумеет описать без подготовки. А после лекции к нему подошла студентка и попыталась заговорить. Математик улыбнулся: «Sorry, I don’t speak English». Лекцию он прочитал настоящими фразами носителей, но за пределами описания математических формул и действий едва говорил на 1-м уровне.

Читать далее

Information

Rating
6,776-th
Registered
Activity