Как стать автором
Обновить
-2
0
One Hell @onehell

Лень и чревоугодие

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

Ликбез по типизации в языках программирования

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

Эта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Всего голосов 239: ↑232 и ↓7+225
Комментарии180

Как анализировать Thread Dump

Время на прочтение21 мин
Количество просмотров55K
В программе курса Разработчик Java довольно много тем, посвященных внутренностям работы JVM. Мы разбираемся в механизмах работы коллекций, байт-кода, сборщика мусора и т.д. Сегодня предлагаем Вашему внимаю перевод довольно интересной статьи о thread dump-е. Что это такое, как его получить и как использовать.

Хотите узнать, как анализировать thread dump (дамп потоков)? Заходите под кат, чтобы узнать больше о том как в Java получить thread dump и что с ним потом делать.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии2

Теперь я тимлид, но почему мне так плохо? Практические советы

Время на прочтение4 мин
Количество просмотров42K
Почему-то считается, что тимлид — это более высокая ступень эволюции инженера, чем все квалификационные уровни, включая senior. При том что всем известно, навыки и умения там нужны совсем другие. Но факт продолжает оставаться фактом, в большинстве компаний тимлидами становятся лучшие инженеры. Иногда, потому что руководству кажется, что это даст сотруднику новую мотивацию и вообще — это же повышение. Иногда, в силу необходимости — наняли много новых сотрудников, и кто-то должен за них отвечать и помогать им пилить новые фичи. Неудивительно, что неподготовленный человек, брошенный в новые обязанности, как в воду, сваливается в состояние экзистенциального кризиса.



То, что доклад на эту тему был признан лучшим на конференции для тимлидов и о тимлидах, показывает, насколько действительно часто встречается такая ситуация. Но надо признать, конечно, что Евгений Кот (bunopus) заработал это «признание» еще и великолепным перформансом. С удовольствием делимся с вами его записью.
Всего голосов 52: ↑51 и ↓1+50
Комментарии9

DPI мобильных операторов: от бесплатного интернета до раскрытия номера и местоположения

Время на прочтение11 мин
Количество просмотров181K
Системы глубокого анализа трафика (Deep Packet Inspection, DPI) — программно-аппаратные комплексы для классификации проходящего интернет-трафика по типу данных (веб-страница, документ, аудио, видео), протоколу (HTTP, BitTorrent, VoIP/SIP) и конкретным программам (Skype, WhatsApp), зачастую обладающие дополнительной функциональностью. Системы DPI распространены и используются по всему миру продвайдерами проводного и беспроводного доступа.

Мобильные операторы используют системы глубокого анализа трафика, прежде всего, для приоритизации разного контента в интернете (QoS), чтобы можно было одновременно скачивать большой файл и смотреть видео на YouTube, и чтобы один пользователь сотовой сети, активно использующий интернет, не создавал проблем другим пользователям. Операторы используют DPI примерно с начала двухтысячных, с приходом UMTS (3G), чтобы более-менее честно разделять беспроводной канал ограниченной пропускной способности.

Мобильные операторы используют и другие возможности DPI, например, ускорение TCP и HTTP-трафика (TCP PEP, Performance-enhancing Proxy), для ускорения интернета в мобильных сетях и идентификации пользователей веб-сайтами. Если попытаться зайти в личный кабинет оператора с телефона, на многих операторах он откроется сразу, без необходимости ввода логина и пароля. Или, что можно было встретить лет 5 назад, простой заход на подозрительный веб-сайт или клик по рекламному баннеру из Android-игры оборачивался автоматической подпиской на платную услугу, о чем можно было узнать из СМС-сообщения.
Читать дальше →
Всего голосов 196: ↑194 и ↓2+192
Комментарии121

Изучаем процессы в Linux

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

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

Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии60

Поиск узлов дисперсии управления (как перестать делать тупую работу и передать её другому)

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


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

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

Чаще случается, что не хватает каких-то кусков власти или ответственности. И мы тут на десятом году развития компании внезапно нашли работающую модель для того, чтобы понимать сразу, чего не хватает. То есть так же лажать, но чуть реже.
Читать дальше →
Всего голосов 108: ↑104 и ↓4+100
Комментарии72

Hibernate — о чем молчат туториалы

Время на прочтение12 мин
Количество просмотров127K
Эта статья не будет затрагивать основы hibernate (как определить entity или написать criteria query). Тут я постараюсь рассказать о более интересных моментах, действительно полезных в работе. Информацию о которых я не встречал в одной месте.
image
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии7

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

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

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Всего голосов 87: ↑82 и ↓5+77
Комментарии42

Практические приёмы работы в Wireshark

Время на прочтение6 мин
Количество просмотров81K
Джулия Эванс, автор материала, перевод которого мы сегодня публикуем, решила рассказать об одном из своих любимых сетевых инструментов, который называется Wireshark. Это — мощная и сложная программа, оснащённая графическим интерфейсом, предназначенная для анализа трафика в компьютерных сетях. Джулия говорит, что на практике пользуется лишь немногими возможностями Wireshark, но они обычно оказываются очень кстати. Здесь она хочет поделиться со всеми желающими рассказом о самых полезных приёмах работы с программой и надеется, что они пригодятся не только ей, но и всем, кому приходится решать сетевые проблемы.


Читать дальше →
Всего голосов 54: ↑42 и ↓12+30
Комментарии12

select / poll / epoll: практическая разница

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

В этой статье мы рассмотрим:

  • select()
  • poll()
  • epoll()
  • libevent
Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии66

Вольный опус про найм, собеседования и трэш на рынке IT-кадров

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

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

Клац
Всего голосов 179: ↑168 и ↓11+157
Комментарии304

Карьера менеджера в ИТ: от командной строки к командной работе

Время на прочтение11 мин
Количество просмотров28K
Мир IT сегодня не похож ни на одну из других отраслей — над кодом приложений, игр, корпоративных решений, сервисов работают увлечённые, грамотные ребята. Программисты и инженеры, дизайнеры и тестировщики, системные администраторы и новомодные DevOps превращают идеи в программное обеспечение, которым пользуются миллионы людей. Они вдохновенно пишут код, разрабатывают алгоритмы, готовят макеты и соединяют это в работоспособные полезные механизмы. Мы, пользователи Хабра, часто говорим о разработке, администрировании, новых технологиях и языках программирования, зарубаемся в жарких спорах о преимуществах одного стека над другим, но забываем о важном звене в любой IT-компании — менеджерах проектов и продуктов. А между тем не факт, что завтра именно вам не предложат отойти от дел программерских и стать менеджером. Мотивация? Стоит ли? Потолок? Карьерный тупик? Новый горизонт? Давайте разбираться.


Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии37

Полифазный сон: отзывы, «теория», личный опыт

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


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

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

Вовремя – это значит резервируя на сон не менее 8-ми часов, как всех нас учили. Но в итоге по факту большинство из нас спит часов 6, а потом «отрывается» в выходные. Но хотя этих 6-ти часов мало для сна, их все еще чересчур много в сутках: желание (и тенденции!) «урезать» сон еще больше – не исчезают. В поисках волшебной таблетки «как мало спать и отлично высыпаться» я, как, наверно, и многие, в свое время натолкнулся на учение о полифазном сне.

Что это?
Читать дальше →
Всего голосов 78: ↑68 и ↓10+58
Комментарии96

Бум бессмысленной занятости

Время на прочтение11 мин
Количество просмотров74K
Оригинал статьи опубликован 7 июня 2018 года в журнале The New Yorker

У всё большего количества людей работа становится бессмысленной. Есть ли какая-то польза от однообразной рутины?


В своей новой книге антрополог Дэвид Грэбер ищет диагноз и эпидемиологию того, что он называет «бесполезными работами, о которых никто не хочет говорить». Иллюстрация: Martina Paukova

Бредовая работа как бумажные отходы накапливается в офисах с неизбежностью февральского снега. Отчёты об обоснованиях… Что это? Никто не знает. И всё же они накапливаются вокруг, согретые ксероксом, чтобы их никто не читал. Документы о передовом опыте? Никто понятия не имеет, даже авторы. Кто-то думал, что электронный документооборот избавит нас от этой чуши. Он ошибся. Теперь весь день вы получаете электронные письма о «близости к потребителю» (о, боже); «нашей команде» (чьей команде?); а ещё новое ПО отчётности о расходах требует, чтобы все квитанции сохранялись на бумаге, сканировались и загружались на сервер, который их отклоняет, потому что вы не смогли предзагрузить постфактум важную форму. Если повезёт, подобная чушь отнимет лишь несколько часов обычной рабочей недели. Но если вы среди миллионов менее удачливых американцев, то это суть всей вашей трудовой деятельности.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии127

Как устроены базы данных

Время на прочтение24 мин
Количество просмотров149K
Нельзя сказать, что в этой статье вас ждут отборные потроха баз данных, но скорее рассказ про базы данных от самого начала, плюс небольшое углубление в некоторые подробности, которые Илье Космодемьянскому (@hydrobiont) кажутся важными. И есть все основания полагать, что так оно и есть.

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

Тем не менее, теоретические знания иногда полезно освежить. Этим мы, в том числе, и займемся.



О спикере: Илья Космодемьянский CEO и консультант в компании Data Egret, специалист по базам данных PostgreSQL, Oracle, DB2. А кроме того, отвечает за продвижение Postgres-технологий, выступает на конференциях и рассказывает людям, как с ними работать.

Ниже материал по докладу Ильи на РИТ++ 2017, который не был связан с какой-то конкретной базой данных, но охватывал многие основные аспекты.
Всего голосов 56: ↑54 и ↓2+52
Комментарии10

Java и Linux — особенности эксплуатации

Время на прочтение23 мин
Количество просмотров61K
Java — очень распространённая платформа, на ней пишут очень разные вещи, начиная от Big Data, заканчивая микросервисами, монолитами, enterprise и прочим. И, как правило, всё это развёртывают на Linux серверах. При этом, соответственно, те люди, которые пишут на Java, зачастую делают это совсем на других операционных системах. Там они:

  • пишут код;
  • отлаживают, тестируют;
  • после этого упаковывают в jar;
  • отправляют на Linux, и оно работает.

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



С другой стороны, есть те, кто занимается администрированием серверов, на их сервера устанавливают JVM, отправляют jar и war-файлы, а с точки зрения мира Linux все это:

  • чужеродное;
  • проприетарное;
  • собирается не из исходников;
  • поставляется какими-то jar-архивами;
  • «отъедает» всю память на сервере;
  • вообще, ведёт себя не по-человечески.

Цель доклада Алексея Рагозина на Highload++, расшифровка которого идет далее, была в том, чтобы рассказать особенности Java для «линуксоидов» и, соответственно, Linux — Java-разработчикам.
Всего голосов 55: ↑53 и ↓2+51
Комментарии18

Архитектура платежной системы. Банальности, проверенные опытом

Время на прочтение26 мин
Количество просмотров50K
Главное в платежной системе — взять денежки, перевести записи из одной таблички в ту же самую табличку со знаком «минус». Звучит не очень сложно, пока не пришли юристы. Платежные системы во всем мире облагаются огромным количеством всевозможных отягощений и указаний. Поэтому в рамках разработки платежной системы приходится все время балансировать на грани между тяжелым enterprise и вполне нормальным масштабируемым web-приложением.

Под катом рассказ Филиппа Дельгядо (dph) на Highload++ про опыт, накопившийся за несколько лет работы над платежной системой для российского легального букмекерского бизнеса, про ошибки, но и про некоторые достижения, и про то, как грамотно смешать, но не взбалтывать, web с enterprise.


Всего голосов 51: ↑51 и ↓0+51
Комментарии27

Улучшая performance review

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

Про то, как в Avito работает performance review, я очень много раз рассказывал внутри компании, а этой весной ещё и на двух конференциях — TeamLeadConf и CodeFest. Мы активно вкладываемся в доработку процесса, проводим много экспериментов и собираем кучу полезных данных, поэтому каждое новое выступление стабильно включает в себя какой-то новый контент. Цель этой статьи — не выдать вам готовое коробочное решение, а поделиться всеми практиками и инсайтами, которые мы обнаружили на своем пути.


Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии28

TON: Telegram Open Network. Часть 1: Вступление, сетевой уровень, ADNL, DHT, оверлейные сети

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

TON: Telegram Open Network


Уже две недели Рунет шумит про Telegram и ситуацию с его бессмысленной и беспощадной блокировкой Роскомнадзором. Рикошетом задело многих, но всё это — темы для постов на Geektimes. Меня же удивило другое — я до сих пор не видел на Хабре ни одного разбора запланированной к выходу на базе Telegram сети TON — Telegram Open Network. Мне захотелось восполнить этот недостаток, ибо поизучать там есть что — даже несмотря на отсутствие официальных заявлений о нём.


Напомню — ходят слухи о том, что Telegram запустил очень масштабное закрытое ICO, уже собрав в нём невероятные суммы. Предполагается, что уже в этом году будет запущена собственная криптовалюта Gram — и у каждого пользователя Телеграма автоматически появится кошелёк, что само по себе создает немалое преимущество перед остальными криптовалютами.


К сожалению, так как официальных заявлений нет, дальше я могу отталкиваться только от документа неизвестного происхождения, о чём я сразу вас предупреждаю. Конечно, он может оказаться очень искусной подделкой, но не исключено и то, что это — реальный whitepaper будущей системы, написанный Николаем Дуровым (и слитый, вероятно, кем-то из инвесторов). Но даже если это фейк, никто нам не запретит его поизучать и обсудить, верно?


Что же говорится в этом документе? Я попробую пересказать его своими словами, близко к тексту, но по-русски и чуть более человечно (да простит меня Николай со своей склонностью уходить в формальную математику). Имейте в виду, что даже в случае его подлинности, это черновое описание системы и оно, весьма вероятно, изменится к моменту публичного запуска.

Итак, приступим
Всего голосов 84: ↑83 и ↓1+82
Комментарии129

Ansible не так прост

Время на прочтение8 мин
Количество просмотров55K
У меня есть три сервера, но я не профессиональный сисадмин. Это означает, что несмотря на четыре базы данных и стопяцот приложений, бэкапы нигде не ведутся, к любой проблеме на сервере я подхожу, шумно вздохнув и бросив тарелку в стену, а операционные системы там достигли EOL два года назад. Я бы рад обновить, но на это нужно выделить, наверное, неделю, чтобы всё забэкапить и переставить. Проще забыть про yum update и apt-get upgrade.

Конечно, это неправильно. Я давно присматривался к chef и Puppet, которые, как я думал, решат все мои проблемы. Но я смотрел на конфиги знакомых проектов и откладывал. Это же нужно изучать, разбираться с ruby, бороться с многочисленными, по отзывам, косяками и ограничениями. Две недели назад статья Георгия amarao стала животворящим пинком. Даже не сама статья, а перечисление систем управления конфигурацией. После чтения комментариев и лёгкого гугления решил: возьму Ansible. Потому что питон, и на проблемы никто не жалуется.



Что ж, тогда я первым буду.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии52

Информация

В рейтинге
Не участвует
Откуда
Буркина Фасо
Дата рождения
Зарегистрирован
Активность