Как стать автором
Обновить
0
0
Виталий Солодилов @Mcdoker18

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

Отправить сообщение

C++17. Функция стандартной библиотеки std::launder и задача девиртуализации

Время на прочтение34 мин
Количество просмотров30K

В этой статье мы попробуем разобраться с одним из самых неоднозначных и непонятных нововведений стандарта C++17 — функцией стандартной библиотеки std::launder. Мы посмотрим на std::launder с другой стороны, посмотрим на источник. Разберем что лежит в основе функции на примере решения задачи девиртуализации и реализации виртуальных указателей в LLVM.


Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии72

Путевые заметки: мудрость местных. Часть 3

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

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

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии1

Город, которого нет: как и почему с карты России исчезали поселения

Время на прочтение10 мин
Количество просмотров22K

История знает немало примеров, когда целые города по тем или иным причинам исчезали с лица Земли. Какие‑то уничтожали землетрясения, Помпеи погубил Везувий, а в России многие города оказались под водой в период активной индустриализации.

У нас в стране есть своя Атлантида и другие города, которых сегодня не найти на карте. Предлагаем узнать их истории подробнее.

Читать далее
Всего голосов 58: ↑47 и ↓11+50
Комментарии187

Арифмометр Чебышёва: первая отечественная счетная машина с непрерывным движением

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.1K

Углубившись в историю вычислительных машин мы узнали, как работают арифмометры Лейбница и Однера. Сегодня предлагаем обратить взор на арифмометр, не получивший коммерческую успешность, поскольку сам его создатель не ставил такую цель. Речь пойдет про арифмометр знаменитого русского математика и механика Чебышёва.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии19

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

Время на прочтение9 мин
Количество просмотров12K

Первый в мире холодильник был запатентован в 1899 году, но как без него справлялись путешественники на протяжении многих тысячелетий? У них были свои хитрости и способы сохранения продуктов.

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

Читать далее
Всего голосов 39: ↑28 и ↓11+20
Комментарии44

Трактор, смузи и одна старая логическая игра: как мы ездили на Joker и Heisenbug

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров895

Привет, Хабр! Меня зовут Ира, я деврел в РСХБ‑Интех, технологическом подразделении Россельхозбанка. О том, что такое деврел, на Хабре периодически вспыхивают интересные споры. Полгода назад я нашла для себя формулировку, которую теперь всегда использую в нашем внутреннем дайджесте: «Мы делаем так, чтобы о наших разработчиках знало как можно больше людей за пределами компании».

В рамках этой миссии мы отправились этой осенью на 4 конференции от JUG.Ru Group — сентябрьские Flow и DevOops, о которых мы рассказывали чуть раньше, и октябрьские Joker и Heisenbug, о которых я расскажу сейчас.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии0

Отладка злого бага в рантайме Go

Время на прочтение18 мин
Количество просмотров21K

Я большой поклонник Prometheus и Grafana. Поработав SRE в Google, я научился ценить хороший мониторинг и за прошедший год предпочитал пользоваться комбинацией этих инструментов. Я использую их для мониторинга своих личных серверов (black-box и white-box мониторинг), внешних и внутренних событий Euskal Encounter, для мониторинга клиентских проектов и много другого. Prometheus позволяет очень просто писать кастомные модули экспорта для мониторинга моих собственных данных, к тому же вполне можно найти подходящий модуль прямо из коробки. Например, для создания симпатичной панели имеющихся метрик Encounter-событий мы используем sql_exporter.

Читать дальше →
Всего голосов 102: ↑96 и ↓6+90
Комментарии25

Как и зачем создавать NginX-модуль — теория, практика, профит

Время на прочтение18 мин
Количество просмотров16K


Василий Сошников (Mail.Ru)


Сегодня я вам расскажу о том, как создавать nginx-модули и, что самое главное, попытаюсь ответить, зачем это надо делать. Это надо далеко не всегда, но есть определенный круг задач, который можно решить на стороне nginx.
Всего голосов 25: ↑23 и ↓2+21
Комментарии2

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

Время на прочтение10 мин
Количество просмотров89K
Ксения Каланова, выпускница нашего курса по копирайтингу и маркетолог в MERA, написала колонку для блога Нетологии о том, как заставить текст звучать «по-английски», даже когда до уровня Advanced еще далеко.

Вся моя жизнь связана с английским языком: школьные олимпиады, подготовка к вступительным экзаменам в вуз, пять лет на переводческом факультете, лето в США и путешествия по миру. В студенческие годы я работала письменным переводчиком, а сразу после выпуска — устным.

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

Если бы не опыт работы переводчиком, меня такие просьбы поставили бы в ступор. Ведь мой текст увидят иностранцы — клиенты компании, руководители!



В этой статье я поделюсь секретами, как заставить текст звучать «по-английски», если вы не носитель языка. Для этого расскажу о 5 основных ошибках, которые мешают написать нормальный англоязычный текст.
Читать дальше →
Всего голосов 115: ↑107 и ↓8+99
Комментарии63

Лучшие бесплатные коллекции векторных иконок

Время на прочтение2 мин
Количество просмотров338K
Привет, Хабр! Сегодня я хочу представить вам огромную коллекцию из 51 набора бесплатных векторных иконок. Да, есть потрясающие ресурсы Flaticon или Iconfinder, но бывают случаи, когда необходима именно группа иконок в едином стилистическом оформлении. Определиться с выбором, вам поможет эта подборка. Я старался собрать не как можно больше, а действительно самое лучшее.

Среди веб-разработчиков существует много споров о том, что лучше: иконочный шрифт или SVG спрайты? Четкого ответа на этот вопрос нет. Каждый выбирает свое. Данные наборы иконок вас неограничиывают в выборе, поскольку представлены в различных форматах: @font-face, SVG, EPS, AI, PSD, Sketch.

В целом данная подборка содержит более 10 000 иконок, охватывающих множество категорий: интерфейсы, технологии, наука, спорт, маркетинг, среда, транспорт и тд. Полые, заполненные, цветные, во Flat, Material, Elegant, Cartoon, Hand drawing стилях.

Responsive Icons (100 иконок, PSD, AI, EPS, SVG)


Responsive Icons

Читать дальше →
Всего голосов 91: ↑82 и ↓9+73
Комментарии23

Java и время: часть вторая

Время на прочтение21 мин
Количество просмотров235K
Эта статья написана в продолжение к первой части и посвящена новому Date Time API, который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть.

В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии4

Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce

Время на прочтение6 мин
Количество просмотров516K

Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.



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



Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.


Читать дальше →
Всего голосов 58: ↑51 и ↓7+44
Комментарии35

Назад к истокам

Время на прочтение4 мин
Количество просмотров7.9K
Каскады в CSS – это проклятье и благословение в одно и то же время. Обычно они работают довольно неплохо, но встречаются проблемы, которые доводят людей до точки, так, что они начинают задаваться вопросом, нужен ли им на самом деле этот CSS. Я тоже в каком-то плане отношусь к таким людям, но я считаю, что виноваты не столько каскады, сколько борьба со спецификой. Не столкнуться с проблемами со спецификой сложно.

В этой статье я попытаюсь показаться несколько способов, как можно подружиться с каскадами и, возможно, сократить необходимость в дублировании, тем самым сведя борьбу со спецификой к минимуму.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии0

Что такое красивый код, и как его писать?

Время на прочтение22 мин
Количество просмотров207K

1. Вступление


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

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

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

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

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

Да, все это необходимо знать. Но при этом, понимание того, как должен выглядеть достойный код, обычно появляется уже при наличии практического (чаще в той или иной степени негативного) опыта за плечами. И при условии, что жизнь “потыкала” тебя не только в сочные образцы плохого кода, но и в примеры всерьез достойные подражания.

В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него.

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →
Всего голосов 97: ↑79 и ↓18+61
Комментарии146

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Время на прочтение39 мин
Количество просмотров169K
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии49

Технокнига, часть 2: литература по СУБД, разработке фронтенда, проектированию интерфейсов и углубленному программированию на Java

Время на прочтение11 мин
Количество просмотров46K


Недавно мы начали публиковать обзорный список литературы, рекомендуемой к прочтению студентам наших образовательных проектов: Технопарка, Техносферы и Технотрека. Но это не значит, что остальным эти книги будут не интересны. Так что если вы жаждете знаний по вынесенным в заголовок темам, то наверняка найдете что-нибудь интересное во второй части обзора.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии12

Как работает реляционная БД

Время на прочтение51 мин
Количество просмотров544K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Всего голосов 232: ↑229 и ↓3+226
Комментарии134

Визуализация статических и динамических сетей на R, часть 1

Время на прочтение4 мин
Количество просмотров19K
Очень многие системы и явления представимы в виде сетей, т.е. набора объектов и связей между ними. Сеть — не только абстракция, но и наглядный инструмент визуализации данных. Можно отобразить важность того или иного объекта, вес каждой связи, указать ключевые группы элементов, выделить их и подчеркнуть связи между ними. Главная задача визуализации — подать ключевую информацию о свойствах системы или явления максимально легким для восприятия способом. В идеальном случае анализ системы и визуализацию его результатов можно сделать в рамках одного инструмента. R с его обширным набором пакетов позволяет это.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Как легко понять логистическую регрессию

Время на прочтение5 мин
Количество просмотров212K
Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.

image
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии2

Как работают замыкания (под капотом) в JavaScript

Время на прочтение11 мин
Количество просмотров76K
Привет, Хабр!

Мы в Хекслете используем JavaScript не только для очевидных задач во фронтэнде, но и, например, для реализации браузерной среды разработки (наш опен-сорсный hexlet-ide) на React'е. У нас есть практический курс по JavaScript, и один из уроков там посвящен замыканиям. Это важная тема не столько в рамках JS, сколько в программировании вообще. Мы освещаем ее и в других курсах.

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


Я использую замыкания уже достаточно давно. Я научился их использовать, но не до конца понимал как они на самом деле работают, что происходит «под капотом». Что это вообще такое? Википедия не очень помогает. Когда замыкание создается и уничтожается? Как выглядит реализация?

"use strict";
 
var myClosure = (function outerFunction() {
 
  var hidden = 1;
 
  return {
    inc: function innerFunction() {
      return hidden++;
    }
  };
 
}());
 
myClosure.inc();  // возвращает 1
myClosure.inc();  // возвращает 2
myClosure.inc();  // возвращает 3
 
// Ага, круто. А как это реализовано?
// И что происходит под капотом?
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии11

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность