Pull to refresh
12
-5
Иван Горбачев @mastersobg

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

Send message

Как проходить архитектурные секции

Reading time 6 min
Views 13K

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

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

Читать далее
Total votes 12: ↑10 and ↓2 +8
Comments 8

Хабр Эксперты: IT-менторство на Хабр Карьере

Reading time 4 min
Views 23K

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

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

Так появился сервис Хабр Эксперты — платформа для менти и менторов в IT, которая, мы надеемся, будет помогать учиться и учить всем, кто этого захочет. Рассказываем, что придумали в первой версии.

Читать далее
Total votes 45: ↑45 and ↓0 +45
Comments 15

[Анимация] Технобренды захватывают мир

Reading time 8 min
Views 3.5K

Создать мировой бренд, устойчивый и конкурентный — нетривиальная задача.

Деятельность IT-концернов приводит к переосмыслению самого понятия «конкурентное преимущество». Оперативно реагируя на запросы потребителей и используя мощь бренда, эти компании непрерывно создают масштабируемые решения возникающих вызовов.

На анимации ниже показаны наиболее ценные бренды в 2019 году по сравнению с 2001 годом, согласно ежегодному рейтингу «Лучшие мировые бренды». Это иллюстрирует как технологические компании сумели нарастить масштаб до мирового уровня за относительно короткий период, оттеснив традиционных мастодонтов бизнеса на второй план.
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Comments 10

Как сэкономить в AWS до полумиллиона долларов?

Reading time 19 min
Views 17K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to reduce your AWS costs? Save up to $500k with these guidelines!» автора George Batschinski.

image

В этой статье мы в подробностях расскажем, как Back4App уменьшила свои расходы в AWS с $55,492 в месяц до $20,074 в месяц и сэкономила $500.000 за год. Мы опишем практические шаги, основанные на собственном опыте снижения затрат в AWS и поделимся советами, которые были полезны и нам.
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Comments 11

Фильмы IT-тематики

Reading time 2 min
Views 15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

Читать дальше →
Total votes 227: ↑191 and ↓36 +155
Comments 210

Чеклист при подготовке презентации

Reading time 3 min
Views 7.1K
В последнее время я наблюдал несколько десятков презентаций, которые начинались вот так:

— Мы делаем систему управления электронным обучением…

— Мы провели исследование поведения посетителей на нашем сайте…

— Наша компания была основана более ста лет назад…

Это просто удивительно как люди любят так поступать. Они с первых секунд садятся на уши аудитории рассказом про себя:

— Мы предлагаем SAAS-решение…

— Наши технологии…

И мое любимое:

— Начну рассказ с того, кто мы такие…

Почему все так уверены, что именно это в первую очередь интересует слушателей? Единственное что выступающий гарантированно получит в таком выступлении — это претензии к себе лично и своей компании.

Я видел как один из директоров Microsoft схлопотал громкое улюлюканье, а представитель Ростелекома — едкий троллинг из зала только потому, что выступили по этому шаблону.

Почему каждый раз это происходит?

Читать дальше →
Total votes 75: ↑68 and ↓7 +61
Comments 36

Chromium 7 «убивает» козыри IE 9

Reading time 3 min
Views 3.2K
Многие веб-разработчики и пользователи Интернета с интересом наблюдают за развитием Internet Explorer 9 и с нетерпением ожидают 15 сентября, когда будет зарелизена бета-версия обозревателя от Microsoft, которая порвёт все остальные браузеры по производительности, крутости, количеству попугаев, наличию блэкдж, в-общем, по всем параметрам. Недавнее моё тестирование показало, что у Internet Explorer 9 есть хороший потенциал, а ряд тестов ( тут и тут ) вообще говорят о том, что наш любимый ослик выносит хромого по всем показателям. Посмотрим, почему же Chromium 7 становится убийцей IE 9 ещё до полного рождения творения редмондских инженеров.

Много букв, картинок, чуши и всего-такого...
Total votes 260: ↑216 and ↓44 +172
Comments 327

Как я пытался стать участником Сколково

Reading time 4 min
Views 28K
Как и большинство программистов, я пишу собственный проект. Для этого я зарегистрировал собственное Общество с Ограниченной Ответственностью в России и компанию за границей, получил пару патентов и, если смотреть на проект более реально, то он за пол года готов более чем на 70%. В команде я имею дизайнера и «пачку советчиков»… Инвестора на данном этапе я решил не искать, а приступить к этому на этапе 95-100%. Аналогов я ему не нашел, а искал долго, поэтому разработка проекта того стоит. Но суть не в этом.

Поскольку постоянно шло обсуждение сайта i-gorod, то я решил попробовать себя в роли участника данного распилапроекта…

Итак, что требуется, чтобы быть 'в теме'...
Total votes 214: ↑196 and ↓18 +178
Comments 257

Как не быть обманутым злыми буратинами

Reading time 8 min
Views 12K

Уж сколько раз твердили миру,
Что лесть гнусна, вредна; но только все не впрок,
И в сердце льстец всегда отыщет уголок.
«Ворона и Лисица» (1807) И. А. Крылов
1807 год, вдумайтесь! 1807, 200 лет назад!F

Небольшие инструкции по материальным взаимоотношениям.


Для всех обиженных опсосами, банками, сервис центрами и прочими злыми буратинами.
Читать дальше →
Total votes 210: ↑201 and ↓9 +192
Comments 210

Основные принципы настройки Garbage Collection с нуля

Reading time 7 min
Views 48K
В данной статье я бы не хотел заострять внимание на принципе работы сборщика мусора — об этом прекрасно и наглядно описано здесь: habrahabr.ru/post/112676. Хочется больше перейти к практическим основам и количественным характеристикам по настройке Garbage Collection в JVM — и попытаться понять насколько это может быть эффективным.

Количественные характеристики оценки эффективности GC


Рассмотрим следующие показатели:

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


Как правило, перечисленные характеристики являются компромиссными и улучшение одной из них ведёт к затратам по остальным. Для большинства приложений важны все три характеристики, но зачастую одна или две имеют большее значение для приложения — это и будет отправной точкой в настройке.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 11

Обзор конференций для основателей стартапов

Reading time 5 min
Views 11K


Если вы создали стартап или только подумываете об этом, если вы хотите вложить средства в молодые перспективные компании, то этот пост для вас. В продолжение наших предыдущих обзоров различных специализированных конференций мы предлагаем вашему вниманию подборку материалов, которые будут полезны для основателей стартапов, инвесторов и менторов.
Читать дальше →
Total votes 38: ↑28 and ↓10 +18
Comments 5

JSR 133 (Java Memory Model) FAQ (перевод)

Reading time 25 min
Views 146K
Добрый день.
В рамках набора на курс «Multicore programming in Java» я делаю серию переводов классических статей по многопоточности в Java. Всякое изучение многопоточности должно начинаться с введения в модель памяти Java (New JMM), основным источником от авторов модели является «The Java Memory Model» home page, где для старта предлагается ознакомится с JSR 133 (Java Memory Model) FAQ. Вот с перевода этой статьи я и решил начать серию.
Я позволил себе несколько вставок «от себя», которые, по моему мнению, проясняют ситуацию.
Я являюсь специалистом по Java и многопоточности, а не филологом или переводчиком, посему допускаю определенные вольности или переформулировки при переводе. В случае, если Вы предложите лучший вариант — с удовольствием сделаю правку.
Этот статья также подходит в качестве учебного материала к лекции «Лекция #5.2: JMM (volatile, final, synchronized)».

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Ну и да, приходите учиться ко мне!


JSR 133 (Java Memory Model) FAQ


Jeremy Manson и Brian Goetz, февраль 2004

Содержание:
Что такое модель памяти, в конце концов?
Другие языки, такие как C++, имеют модель памяти?
Что такое JSR 133?
Что подразумевается под «переупорядочением» (reordering)?
Что было не так со старой моделью памяти?
Что вы подразумеваете под «некорректно синхронизированы»?
Что делает синхронизация?
Как может случиться, что финальная поля меняют значения?
How do final fields work under the new JMM?
Что делает volatile?
Решила ли новая модель памяти «double-checked locking» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →
Total votes 56: ↑51 and ↓5 +46
Comments 32

Простым языком об HTTP

Reading time 9 min
Views 1.4M
Вашему вниманию предлагается описание основных аспектов протокола HTTP — сетевого протокола, с начала 90-х и по сей день позволяющего вашему браузеру загружать веб-страницы. Данная статья написана для тех, кто только начинает работать с компьютерными сетями и заниматься разработкой сетевых приложений, и кому пока что сложно самостоятельно читать официальные спецификации.

HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).

Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.

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

Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
Читать дальше →
Total votes 94: ↑82 and ↓12 +70
Comments 35

B-tree

Reading time 6 min
Views 200K

Введение


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

Основные операции в деревьях выполняются за время пропорциональное его высоте. Сбалансированные деревья минимизируют свою высоту (к примеру, высота бинарного сбалансированного дерева с n узлами равна log n). Большинство знакомо с такими сбалансированными деревьями, как «красно-черное дерево», «AVL-дерево», «Декартово дерево», поэтому не будем углубляться.

В чем же проблема этих стандартных деревьев поиска? Рассмотрим огромную базу данных, представленную в виде одного из упомянутых деревьев. Очевидно, что мы не можем хранить всё это дерево в оперативной памяти => в ней храним лишь часть информации, остальное же хранится на стороннем носителе (допустим, на жестком диске, скорость доступа к которому гораздо медленнее). Такие деревья как красно-черное или Декартово будут требовать от нас log n обращений к стороннему носителю. При больших n это очень много. Как раз эту проблему и призваны решить B-деревья!

B-деревья также представляют собой сбалансированные деревья, поэтому время выполнения стандартных операций в них пропорционально высоте. Но, в отличие от остальных деревьев, они созданы специально для эффективной работы с дисковой памятью (в предыдущем примере – сторонним носителем), а точнее — они минимизируют обращения типа ввода-вывода.
Читать дальше →
Total votes 82: ↑75 and ↓7 +68
Comments 32

Multum Lingua – двуязычное чтение на Андроид устройствах

Reading time 1 min
Views 8.5K
Как известно, есть только один способ изучить иностранный язык – начать им пользоваться. Но как это сделать, если общение на нужном языке недоступно? Один из возможных вариантов — читать, причем, чем больше, тем лучше. Понятно, что это еще не все, но, по крайней мере, хоть что-то. Однако чтение обычных источников только на иностранном языке имеет ряд трудностей. В первую очередь, это конечно всем известная тема, когда все слова понятны, а смысл фразы так и остается загадкой. Ну, тот же «How do you do?» или «Да нет, наверное», если переводить все дословно. В этом случае очень помогает наличие параллельного перевода на родной язык. Тема не нова и давно используется: метод Франка, или просто параллельные переводы (билингва). Есть множество литературы в данных форматах, бери и читай, но…
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 44

Масштабировать просто. Часть третья — стратегии

Reading time 6 min
Views 14K
В предыдущих частях (тут и тут) мы говорили об основных архитектурных принципах построения масштабируемых порталов. Сегодня продолжим разговор об оптимизации правильно построенного портала. Итак, стратегии масштабирования.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 3

Кулинарный путеводитель по архитектурам AI

Reading time 21 min
Views 53K
image

Мне постоянно приходится слышать от студентов и начинающих гейм-дизайнеров – да, честно говоря, и от бывалых программистов тоже – один и тот же вопрос, который звучит примерно так: “Какую архитектуру AI мне выбрать для своего проекта?”. Этим вопросом пестрят форумы, его можно услышать на конференции разработчиков игр GDC, и, конечно же, его не один раз вспоминают во время пре-продакшна создатели любой игры – от AAA-класса до инди. Я работаю консультантом по игровому AI, поэтому я постоянно слышу ее от своих клиентов.

Обычно, самый лучший ответ на этот вопрос – «Когда как». Вот только подобный ответ мало кого устраивает, поэтому после него мне приходится устраивать самый настоящий допрос.
Читать дальше →
Total votes 83: ↑76 and ↓7 +69
Comments 6

Создаем резюме на LaTeX — как и зачем?

Reading time 5 min
Views 89K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

Читать дальше →
Total votes 125: ↑99 and ↓26 +73
Comments 71

Практика в Microsoft USA (резюме и телефонное интервью)

Reading time 13 min
Views 65K

Мне очень бы хотелось назвать эту статью «Я хочу работать в Майкрософт», однако это название было бы не совсем честным, так как, в частности, я по ряду причин сейчас работаю не в Майкрософт. Тем не менее, разница в подходе к поиску практики (internship) и рабочего места скорее количественная, нежели качественная, то есть надо пройти все те же этапы, только показать (по возможности) более глубокие и широкие знания. Поэтому, я думаю, что написанное мной будет в равной степени интересно и тем, кто хотел бы сделать там практику, и тем, кого интересует работа разработчиком в Майкрософт.

Сначала я постарался совместить в одной статье и личные впечатления о процессе и практические советы для читателей Хабрахабра, что не привело ни к чему хорошему. Поэтому я постарался в самой статье описать только тот опыт, что я приобрел, а свои впечатления убрать под спойлеры.

Официальная версия
Total votes 49: ↑43 and ↓6 +37
Comments 31

Information

Rating
Does not participate
Location
Palo Alto, California, США
Date of birth
Registered
Activity