Как стать автором
Обновить
13
0
Иван Горбачев @mastersobg

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

На анимации ниже показаны наиболее ценные бренды в 2019 году по сравнению с 2001 годом, согласно ежегодному рейтингу «Лучшие мировые бренды». Это иллюстрирует как технологические компании сумели нарастить масштаб до мирового уровня за относительно короткий период, оттеснив традиционных мастодонтов бизнеса на второй план.
Читать дальше →

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

Время на прочтение19 мин
Количество просмотров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 и поделимся советами, которые были полезны и нам.
Читать дальше →

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

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

Читать дальше →

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать дальше →

Spring IoC Annotation-based configuration на примере JSF

Время на прочтение7 мин
Количество просмотров25K
По просьбам трудящихся пишу статью про Spring IoC. Я не настолько гуру в этом вопросе, впрочем могу кое-что поведать.
Читать дальше про Spring IoC Annotation-based configuration

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

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

Много букв, картинок, чуши и всего-такого...

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

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

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

Итак, что требуется, чтобы быть 'в теме'...

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

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

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


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

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


Как правило, перечисленные характеристики являются компромиссными и улучшение одной из них ведёт к затратам по остальным. Для большинства приложений важны все три характеристики, но зачастую одна или две имеют большее значение для приложения — это и будет отправной точкой в настройке.
Читать дальше →

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

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


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

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

Время на прочтение25 мин
Количество просмотров152K
Добрый день.
В рамках набора на курс «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» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →

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

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

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

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

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

Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
Читать дальше →

B-tree

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

Введение


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

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

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

B-деревья также представляют собой сбалансированные деревья, поэтому время выполнения стандартных операций в них пропорционально высоте. Но, в отличие от остальных деревьев, они созданы специально для эффективной работы с дисковой памятью (в предыдущем примере – сторонним носителем), а точнее — они минимизируют обращения типа ввода-вывода.
Читать дальше →

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

Время на прочтение1 мин
Количество просмотров8.7K
Как известно, есть только один способ изучить иностранный язык – начать им пользоваться. Но как это сделать, если общение на нужном языке недоступно? Один из возможных вариантов — читать, причем, чем больше, тем лучше. Понятно, что это еще не все, но, по крайней мере, хоть что-то. Однако чтение обычных источников только на иностранном языке имеет ряд трудностей. В первую очередь, это конечно всем известная тема, когда все слова понятны, а смысл фразы так и остается загадкой. Ну, тот же «How do you do?» или «Да нет, наверное», если переводить все дословно. В этом случае очень помогает наличие параллельного перевода на родной язык. Тема не нова и давно используется: метод Франка, или просто параллельные переводы (билингва). Есть множество литературы в данных форматах, бери и читай, но…
Читать дальше →

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

Время на прочтение6 мин
Количество просмотров14K
В предыдущих частях (тут и тут) мы говорили об основных архитектурных принципах построения масштабируемых порталов. Сегодня продолжим разговор об оптимизации правильно построенного портала. Итак, стратегии масштабирования.
Читать дальше →

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

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

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

Обычно, самый лучший ответ на этот вопрос – «Когда как». Вот только подобный ответ мало кого устраивает, поэтому после него мне приходится устраивать самый настоящий допрос.
Читать дальше →

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

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

Читать дальше →

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

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

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

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

Официальная версия

Советы Google по кодированию на языке Python. Часть первая: советы по программированию

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

Хай, Хабр!
Сегодня я хочу представить, дорогому хабрасообществу свой первый хабраперевод. Программировать на языке Python — подобно песне. Но еще лучше, когда Ваш код читаем и понятен, а значит чуть более поэтичен, чем обычно бывает производстве. У каждого свои правила и свои стереотипы относительно написания и оформления исходного кода, на каком бы языке он ни был написан. Множество копий сломано о щиты на форумах, но, как ни крути, нельзя не считаться с мнением авторитетных товарищей. Так что сейчас будет представлен перевод первой части стайл-гайда для языка Python от Google. Коснется он именно постулатов написания кода (вторая часть тоже скоро появится, а посвящена она будет форматированию исходного кода). Сразу предупреждаю: тут много (если не большая часть) прописных истин, которые все знают уже давно. Но я искренне надеюсь, что Вы сможете найти тут что-то новое или хотя бы вспомнить старое. Приступим под катом. И pdf тут как тут.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Palo Alto, California, США
Дата рождения
Зарегистрирован
Активность