Как стать автором
Обновить
68
0
Иванова Екатерина @ayocommon

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

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

Балансировка HTTP(S) трафика

Время на прочтение12 мин
Количество просмотров29K
Добрый день, %username%. Меня зовут Антон Резников, я работаю над проектом Облако Mail.Ru Сегодня я хочу рассказать о технологиях балансировки трафика, проиллюстрировав историей о развитии социальной сети. Все персонажи выдуманы, а совпадения почти случайны. Статья обзорная, составлена по следам доклада на Highload Junior 2017. Некоторые вещи могут показаться элементарными, но опыт проведения собеседований показывает, что это не совсем так. Кое-что будет спорным, не без этого.

Если интересно, добро пожаловать под кат.
Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии18

Еще один гайд по переходу с Linux на Mac

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

Вот вот начнется продажа ноутбуков Apple с чипами M2. Для кого-то этот факт будет сигналом к обновлению рабочей машинки. Наверняка, найдутся и те, кто впервые пересядит за мак. И среди пересевших на мак обязательно будет какая-то небольшая доля линуксоидов. Решил написать небольшой обзор актуальных инструментов, поделиться опытом перехода. Знаю, по теме на Хабре есть десятки статей. Где-то повторюсь, где-то раскрою тему хуже коллег, но я уверен, каждый читатель найдет для себя что-то новое.

Читать далее
Всего голосов 62: ↑43 и ↓19+24
Комментарии68

Разработчик с мозгом груга

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

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

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

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

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

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Всего голосов 261: ↑235 и ↓26+209
Комментарии81

Элегантная обработка ошибок в JavaScript с помощью монады Either

Время на прочтение18 мин
Количество просмотров22K
Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобраться со всеми исключениями в разделе catch. Неплохой вариант. Это позволяет сосредоточиться на текущей задаче, не думая о каждой возможной ошибке. Определённо лучше, чем засорять код бесконечными if.

Без try...catch трудно проверять результаты каждого вызова функции для неожиданных значений. Это полезная конструкция. Но у неё есть определённые проблемы. И это не единственный способ обрабатывать ошибки. В статье мы рассмотрим использование монады Either в качестве альтернативы try...catch.

Прежде чем продолжить, отмечу пару моментов. Статья предполагает, что вы уже знаете о композиции функций и каррировании. И предупреждение. Если вы раньше не сталкивались с монадами, они могут показаться действительно… странными. Работа с такими инструментами требует изменить мышление. Поначалу это бывает тяжело.

Не волнуйтесь, если сразу запутались. У всех так. В конце статьи я перечислил несколько ссылок, которые могут помочь. Не сдавайтесь. Эти штуки опьяняют, как только проникают в мозг.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии12

Как логировать в NodeJS, чтобы пацаны во дворе уважали

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


Что вас бесит сильнее всего, когда вы пытаетесь организовать читаемые логи в вашем NodeJS приложении? Лично меня чрезвычайно напрягает отсутствие каких-либо вменяемых зрелых стандартов по созданию trace ID. В этой статье мы поговорим о том, какие есть варианты создания trace ID, разберемся на пальцах как работает continuation-local storage или CLS и призовем на помощь силу Proxy, чтобы завести все это с абсолютно любым логером.

Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии13

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Эскимо из зяблика → разбираем птицу

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


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

Узнав длину крыла и массу зяблика, а заодно раздув ему пух на животе для проверки количества жира (он просвечивает через кожу), можно установить запас его хода. У нашего почти 2 грамма. Это не очень много, но каждый килограмм жира даёт около 8 тысяч килокалорий, то есть у нашего героя массой 21,4 грамма есть топлива на примерно 450 километров. Это для птицы критично, потому что лететь далеко, и дальше это прямо повлияет на принятие зябликом решения о продолжении миграции.



Так. В общем, добро пожаловать на старейшую в мире орнитологическую станцию в Калининградской области. Пошли смотреть газоанализатор для внутреннего мира воробьиных и человека с уткой на голове. И вот эти огромные ловушки с фотографии выше.
Читать дальше →
Всего голосов 178: ↑176 и ↓2+174
Комментарии60

Как подсидеть тимлида

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


Пятница – самый подходящий день для того, чтобы наконец-то свергнуть власть своего тимлида. Он никогда не решит уволиться по своей воле, потому что это не работа, а сказка. Его нужно сломать и не оставить ему другого выхода. Давайте разберемся, как сделать так, чтобы он пришел к этой мысли самостоятельно!
Читать дальше →
Всего голосов 221: ↑202 и ↓19+183
Комментарии105

Четыре способа получить аудио вк или «это не баг, а фича»

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

Всем привет! Сегодня я расскажу вам о моем опыте с ВК, найденных багах, об отношении к пользователям и, собственно, как получить аудиозаписи вк, пользуясь "не багами а фичами", как меня заверяли сотрудники данной корпорации. Итак, приступим!

Читать далее
Всего голосов 70: ↑67 и ↓3+64
Комментарии58

Принцип цикады и почему он важен для веб-дизайнеров

Время на прочтение6 мин
Количество просмотров229K
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →
Всего голосов 696: ↑682 и ↓14+668
Комментарии119

Пора обновить ваш монитор

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

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →
Всего голосов 181: ↑148 и ↓33+115
Комментарии991

Zip-файлы: история, объяснение и реализация

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


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Всего голосов 176: ↑175 и ↓1+174
Комментарии45

Валютный рынок и финансовая инженерия в Средние века

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

«Алчность». Миниатюра из манускрипта. Генуя, ок. 1330 г., Британская библиотека

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

Нужно ли говорить, что средневековые банкиры проявляли недюжинную изворотливость, чтобы кредитовать клиентов в таком неблагоприятном инвестиционном климате? К XIV веку коллективная мысль придумала сразу несколько уловок, чтобы обойти религиозный запрет. 
Читать дальше →
Всего голосов 117: ↑114 и ↓3+111
Комментарии62

Интерпретаторы байт-кодов своими руками

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


Виртуальные машины языков программирования в последние десятилетия получили весьма широкое распространение. С презентации Java Virtual Machine во второй половине 90-х прошло уже достаточно много времени, и можно с уверенностью сказать, что интерпретаторы байт-кодов — не будущее, а настоящее.


Но данная техника, на мой взгляд, практически универсальна, и понимание основных принципов разработки интерпретаторов пригодится не только создателю очередного претендента на звание "Язык года" по версии TIOBE, но вообще любому программисту.


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

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

Тёмная сторона agile

Время на прочтение7 мин
Количество просмотров16K
Внимательный читатель листает ленту и задает вопрос: «Что, опять текст про agile?». Ага.

Эта статья — о процессах, технических аспектах и немного о том, как agile живет и внедряется в Яндекс.Деньгах. Если вы прошли хотя бы половину пути до настоящего agile, какие-то вещи могут показаться вам очевидными, и это нормально.

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

А еще внимательный читатель спросит: «Почему „Темная сторона"? Тут что, про Дарта Вейдера?» Увы, нет, речь пойдет о темной стороне Луны, которая была неизвестна человечеству, пока туда не прилетел аппарат, чтобы сфотографировать и показать ее всем.

Когда внедряете agile, вы составляете проект освоения Луны, не зная,
что на другой стороне


Все начинается с попытки внедрить новые процессы разработки.
Всего голосов 30: ↑26 и ↓4+22
Комментарии10

Как «согнуть» свет? Или краткий экскурс в мир волоконной оптики

Время на прочтение19 мин
Количество просмотров65K
Доброго дня, читатель! Наверняка каждый слышал о волоконной оптике, многие имели с ней дело в телекоммуникациях, у кого-то даже проведен оптоволоконный кабель в дом. В общем, этот термин на слуху; да и суть вопроса – передача света на расстояние по тонкому волокну – в общем виде понятна. Но я предлагаю немного углубиться в эту технологию, во многом изменившую мир. В этом посте я постараюсь простым и понятным языком объяснить суть волоконной оптики, как это работает – на уровне простого физического понимания, с упрощениями и примерами, без страшных формул. Иными словами, «на пальцах». Если интересно, то добро пожаловать под кат. Осторожно: много текста, наличествуют картинки.

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

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

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

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

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

Почему научиться программировать так чертовски тяжело?

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

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

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Но сложнее всего объяснить новичку, грубо говоря, во что он ввязывается. Благодаря очень простым, игровым образовательным проектам многие считают, что программирование это очень легко, а наши виртуальные машины, где нужно запускать тесты и компилировать код – это надуманная сложность. Давно хотелось найти такой материал, который бы подготовил новичка к длинному и сложному пути к карьере программиста. И недавно наши коллеги из Viking Code School такой материал написали! А мы его перевели для вас.




Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

Его швыряло туда-сюда как листочек в торнадо. Каждый совет, который он слышал, тащил его то в одну, то в другую сторону, до тех пор пока он не прошел “каждый онлайн-курс по программированию во вселенной”. В конце концов, не смотря на то, что он получил работу разработчика ПО, Квинси:

… был уверен, что на первый взгляд нормальные программисты, с которыми я общался, были на самом деле социопатами, которые получили, а потом подавили в себе, травму при изучении программирования.

Ох. Звучит знакомо?
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Комментарии44

Информация

В рейтинге
Не участвует
Зарегистрирована
Активность