Pull to refresh
0
0

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

Send message

Собеседования джунов — вся жесть вопроса

Reading time6 min
Views87K

После 2-х лет разработчиком на С# в небольшой английской компании в сфере строительства, я решил выяснить свою стоимость как специалиста на рынке труда Великобритании. Несмотря на то, что большинство вакансий представляют собой примерно одно и то же: «Требуется человек-оркестр с 10+ лет опыта для очень интересной работы», — я специально выбирал позиции исключительно младшего разработчика не содержащих цифр 5+, 10+ и 15+ в описании. Как это было — читайте дальше.

Читать далее
Total votes 77: ↑69 and ↓8+79
Comments237

Углубленное знакомство с пространствами имен Linux. Часть 1

Reading time19 min
Views34K

В процессе создания контейнеров ключевым компонентом является изоляция процессов. При этом одним из основных внутренних механизмов выступают пространства имен. В этой статье мы разберем, что они из себя представляют и как работают, чтобы научиться создавать собственный изолированный контейнер и лучше понять каждый его компонент.
Читать дальше →
Total votes 47: ↑46 and ↓1+70
Comments3

Дефицит есть, а денег не дают. Почему?

Reading time27 min
Views296K

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее
Total votes 512: ↑497 and ↓15+588
Comments1205

Что полезно знать Java-разработчику про вывод типов

Reading time9 min
Views21K

image


В Java 8 кардинально переработали процедуру вывода типов выражений. В спецификации появилась целая новая глава на эту тему. Это весьма сложная штука, изложенная скорее на языке алгебры, чем на языке нормальных людей. Не каждый программист готов в этом разобраться. Я, разработчик IDE, которому приходилось ковыряться в соответствующем коде, к своему стыду тоже довольно плохо разбираюсь в этой теме и понимаю процесс только по верхам. Причём сложно не только мне, но и авторам компилятора Java. После выхода Java 8 обнаружились десятки багов, когда поведение компилятора не соответствовало спецификации, либо текст спецификации был неоднозначен. В средах разработки для Java ситуация обстояла не лучше: там тоже были баги, причём другие, поэтому код мог отображаться ошибочным в вашей IDE, но успешно компилироваться. Или наоборот. С годами ситуация улучшилась, многие баги исправили, хотя всё ещё в спецификации остались тёмные углы.

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

Зачем интернету новая архитектура и как она устроена

Reading time3 min
Views16K

Всемирная сеть построена на технологиях полувековой давности. Некоторые из них оказались не готовы к работе с миллиардами вычислительных устройств, другие [такие, как IPv4] вообще задумывали как временное решение. Часть ИТ-сообщества придерживается мнения «работает — не трогай» и выступает лишь за точечные улучшения протоколов и стандартов. Другие считают, что пора переписать интернет-архитектуру с чистого листа. Крупный проект в этой области — SCION. Обсудим его под катом и поговорим об альтернативных подходах и мнениях.

Читать далее
Total votes 12: ↑8 and ↓4+8
Comments8

Креветка-щелкун стреляет плазмой

Reading time6 min
Views92K


На КДПВ креветка-щелкун. Распространённый рачок, реальные способности которого больше подходят для сверхъестественной твари:

  • 100 км/ч — скорость струи воды, которую выпускает из клешни креветка при охоте и строительстве.
  • 80 кПа — акустическое давление, которое создает креветка на расстоянии 4 см от когтя.
  • 4 427 °C — температура при схлопывании кавитационного пузыря во время «щелчка» (в 4 раза горячее, чем лава).
  • Регенерация. У креветки-щелкуна только одна клешня умеет «щелкать». Если рабочую клешню оторвать, вторая перестроится, чтобы начать «щелкать».
  • 200 дБ — с такой громкостью схлопывается кавитационный пузырь, поэтому креветка-щелкун — самый громкий обитатель морей (перепонки человека лопаются при 160 дБ).
  • ВМФ США обучали своих операторов гидролокаторов отличать звуки креветок-щелкунов от шума подлодок врага во время Второй мировой.

Читать дальше →
Total votes 99: ↑93 and ↓6+108
Comments43

Тёплый ламповый звук как норма жизни: лучшие советские радиолы

Reading time5 min
Views27K

Идея универсального аудиокомбайна, в котором есть всё необходимое для прослушивания пластинок и радиоэфира, далеко не нова: пик популярности подобных устройств пришёлся на 60-е и 70-е годы двадцатого века. Вспоминаем лучшие советские ламповые радиолы, которые стали важной частью истории качественного звуковоспроизведения.

Читать далее
Total votes 27: ↑26 and ↓1+36
Comments30

100% загрузка CPU: моя вина?

Reading time8 min
Views17K

История бага JDK и связанной с ним ошибки разработки, приведшей к нештатной 100%-загрузке CPU. Что пошло не так, что можно было сделать лучше, и кто, в конце концов, оказался виноват?
Читать дальше →
Total votes 35: ↑30 and ↓5+38
Comments8

Карта гулябельности Санкт-Петербурга

Reading time10 min
Views36K

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

Читать далее
Total votes 67: ↑64 and ↓3+84
Comments106

Наглядно о том, как работает NumPy

Reading time8 min
Views35K

Есть тексты, похожие на вино или динамит: с годами они не стареют, а напротив приобретают вес и значимость. Сегодня, к старту флагманского курса о Data Science, мы решили поделиться переводом визуального учебного руководства о NumPy 2019 года, прочитав которое даже не слишком близкий к математике человек поймёт, как работает эта библиотека Python. Если вы не хотите долго объяснять NumPy, но делать это всё равно приходится, положите статью в закладки и она сэкономит ваше время.

Читать далее
Total votes 19: ↑18 and ↓1+18
Comments8

Релиз Centrifugo v3 – и да пребудет с вами Центробежная Сила

Reading time12 min
Views5.5K

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

Напоминаем, что Centrifugo – это сервер сообщений в реальном времени (real-time). Сервер держит постоянные соединения от пользователей приложения и предоставляет API для моментальной рассылки какого-либо уведомления активным пользователям, подписанным на канал уведомления. Можно использовать для создания чатов, "живых" комментариев, multiplayer игр, стримить данные и метрики (например, быстро меняющиеся курсы валют).

Новая Центрифуга v3 нацелена упростить использование сервера в простых real-time приложениях. Улучшена производительность сервера, существующие фичи обросли новой функциональностью. Centrifugo v3 поддерживает однонаправленные (unidirectional) real-time транспорты, клиентский JSON протокол значительно ускорен. Появилась экспериментальная поддержка высокопроизводительного движка на основе Tarantool. Помимо HTTP теперь есть возможность проксировать клиентские события используя GRPC протокол. Добавлены новые методы и поля серверного API, а также анонсирована PRO версия сервера, нацеленная на бизнес-пользователей.

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

Создаем новое ключевое слово в C++

Reading time27 min
Views23K

C++ - один из языков, который можно назвать "легендарным". Его история насчитывает несколько десятилетий, принципы программирования на нем революционным образом менялись не раз, а черновик стандарта уже разросся до 1800+ страниц мелкого шрифта.

На C++ есть много хороших библиотек. Но нередко изменения в самом языке делали неактуальными большие куски кода, потому что они становились менее надёжными и быстрыми по сравнению с функционалом в самом языке. Правки в стандарт имеют несоизмеримо более сильное влияние, чем любая библиотека.

В этой статье мы в учебных целях напишем для C++ поддержку нового ключевого слова defer, которое будет работать во многом аналогично такому в языках Go и Swift. Это будет сделано через правку исходного кода Clang.

Создать!
Total votes 64: ↑62 and ↓2+87
Comments43

C++20: удивить линкер четырьмя строчками кода

Reading time4 min
Views13K

Представьте себе, что вы студент, изучающий современные фичи C++. И вам дали задачу по теме concepts/constraints. У преподавателя, конечно, есть референсное решение "как правильно", но для вас оно неочевидно, и вы навертели гору довольно запутанного кода, который всё равно не работает. (И вы дописываете и дописываете всё новые перегрузки и специализации шаблонов, покрывая всё новые и новые претензии компилятора).

А теперь представьте себе, что вы — преподаватель, который увидел эту гору, и захотел помочь студенту. Вы стали упрощать и упрощать его код, и даже тупо комментировать куски юнит-тестов, чтобы оно хоть как-то заработало... А оно всё равно не работает. Причём, в зависимости от порядка юнит-тестов, выдаёт разные результаты или вообще не собирается. Где-то спряталось неопределённое поведение. Но какое?

Сперва преподаватель (то есть, я) минимизировал код вот до такого: https://gcc.godbolt.org/z/TaMTWqc1T

Читать далее
Total votes 24: ↑23 and ↓1+34
Comments28

std::move vs. std::forward

Reading time8 min
Views44K

Несмотря на то, что материалов на тему move-семантики и идеальной передачи в Интернете предостаточно, вопросов типа «что я должен здесь использовать: move или forward?» не становится меньше или мне просто «везет» на них. Поэтому и решено было написать эту статью. Предполагается, что читатель хотя бы немного знаком с rvalue-ссылками, move-семантикой и идеальной передачей.

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

«Двойной плюс»: биография создателя С++ Бьярне Страуструпа

Reading time8 min
Views10K

Можно не любить язык C++, можно даже не знать о его существовании, но вот не пользоваться софтом на нём — это, наверное, получится только в пещере. C++ есть в операционных системах и браузерах, автомобилях и банкоматах, сервисах вроде YouTube и программах вроде Photoshop. Получается, всё человечество каждый день взаимодействует с тем, что когда-то создал один конкретный человек.

Ранее мы публиковали интервью, которое Бьярне Страуструп дал на нашей конференции C++ Russia. А теперь решили, что и описать биографию такого человека никогда не будет лишним.

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments3

Аналитика ФИО в ЦФТ

Reading time13 min
Views5.4K


Всем привет! Меня зовут Степан Деревянченко. Я специализируюсь на алгоритмах анализа текстовых данных (Natural Language Processing – NLP).

Данная статья посвящена тому, как в отделе машинного обучения ЦФТ занимаются аналитикой ФИО клиентов, зачем это нужно, и каких результатов удалось достичь за время исследований в данной области.

Моё выступление с докладом об аналитике ФИО на CFT ML Meetup можно посмотреть здесь.
Читать дальше →
Total votes 2: ↑1 and ↓10
Comments6

Apache Kafka в вопросах и ответах

Reading time29 min
Views25K

Что такое Kafka? Где стоит, а где не стоит применять этот инструмент? Чем Kafka отличается от RabbitMQ и других брокеров сообщений? Как её правильно эксплуатировать? Всё это обсудили на митапе «Apache Kafka в вопросах и ответах», который Слёрм провёл в ноябре 2020. В разговоре участвовали спикеры из Авито, Stripe, ITSumma и Confluent. Запись митапа доступна на YouTube, а текстовую версию разговора читайте ниже.


Читать дальше →
Total votes 19: ↑18 and ↓1+25
Comments7

О стримах и таблицах в Kafka и Stream Processing, часть 1

Reading time16 min
Views60K
* Michael G. Noll — активный контрибьютор в Open Source проекты, в том числе в Apache Kafka и Apache Storm.

Статья будет полезна в первую очередь тем, кто только знакомится с Apache Kafka и/или потоковой обработкой [Stream Processing].


В этой статье, возможно, в первой из мини-серии, я хочу объяснить концепции Стримов [Streams] и Таблиц [Tables] в потоковой обработке и, в частности, в Apache Kafka. Надеюсь, у вас появится лучшее теоретическое представление и идеи, которые помогут вам решать ваши текущие и будущие задачи лучше и/или быстрее.

Содержание:

* Мотивация
* Стримы и Таблицы простым языком
* Иллюстрированные примеры
* Стримы и Таблицы в Kafka простым языком
* Пристальный взгляд на Kafka Streams, KSQL и аналоги в Scala
* Таблицы стоят на плечах гигантов (на стримах)
* Turning the Database Inside-Out
* Заключение
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments4

Психотронная тюрьма риторики: история о том, что мешает нам мыслить здраво

Reading time13 min
Views71K

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

Познакомился я с ними, когда работал академконсультантом в США: помогал получать высшее образование так, чтобы иметь хорошие оценки и не тратить слишком много денег. В колледжах США риторику изучают все гуманитарии на первом курсе, иногда даже технари. И так как всю риторику сводили именно к способам убеждения, мои клиенты из Ближнего Востока и Китая часто этим возмущались. И спрашивали меня, какой скрытый смысл в том, чтобы изучать такие очевидные вещи.

Что же, ответ у меня есть. Я считаю, что этос — это бич мыслящего человека. Кайрос — кандалы, который выковал информационный век. А понимание того, как работает риторика — базовый инструмент критического мышления. Особенно для IT-специалиста.

Я так много рассказывал об этом на кухнях и в чатах, что решил написать статью. А получился лонгрид с научными исследованиями, разбором влияния алгоритмических новостных лент, и безумным комиксом из мемов, который я делал 4 часа в Фигме. Поехали!

UPD Большое спасибо всем тем людям, что помогли мне исправить ошибки и очепятки! Только на Хабре так стремятся помочь, и это неоценимо.
Читать дальше →
Total votes 148: ↑135 and ↓13+169
Comments353
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity