Search
Write a publication
Pull to refresh
51
0

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

Send message

work&dev fun(damentals) #1. Я был благодарен, за то что меня научили этому, когда я был джуном

Reading time6 min
Views6.6K
Это цикл статей. Предыдущую можно прочесть тут, а следующую тут

Мне офигенно повезло. Когда я устроился на работу trainee, я не знал совершенно ничего. Вокруг сидели люди, разговоры которых меня пугали. Любой, сейчас примитивный, термин оставлял пустоту в глазах, а люди, которые ходили на митинги — вызывали восхищение.


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

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

Архитектор программного обеспечения. Новый курс от OTUS

Reading time3 min
Views7.5K



Современный мир насчитывает более 40 тысяч профессий. Общество развивается и оцифровывается, некоторые профессии пропадают ввиду их устаревания, а некоторые, наоборот, появляются и становятся максимально востребованными на рынке труда.

Одна из таких профессий – архитектор программного обеспечения. Как только не называют ее на просторах интернета, мне встречались такие названия:

  • системный архитектор
  • архитектор ПО
  • IT-архитектор
  • архитектор IT-инфраструктуры

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

Мок — это не костыль, мок — это спецификация

Reading time2 min
Views4.7K
Среди множество псевдоидей, витающих вокруг ТДД, есть некоторое пренебрежение к test doubles, не в последнюю очередь связанное с их смешными названиями.

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

Однако можно поменять точку зрения. В конце концов, мок не только и не столько подпирает зависимый компонент, сколько специфицирует поведение зависимости. А «реальная» имплементация — это некое текущее, возможно ошибочное воплощение нашей гордой идеи.

В этом смысле каждый раз, когда мы пишем

when(mockDependency.method(inputValue)).thenReturn(returnValue),

мы документируем некоторое поведение компонента.

Отсюда — несколько следствий.
Читать дальше →

ФП vs ООП

Reading time6 min
Views69K

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


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

Книга «Квантовые вычисления для настоящих айтишников»

Reading time8 min
Views15K
image Привет, Хаброжители! Цель этой книги — познакомить с квантовыми вычислениями всех, кто знаком с курсом математики средней школы и готов немного потрудиться. В этой книге мы будем знакомиться с кубитами, запутанностью (квантовых состояний), квантовой телепортацией и квантовыми алгоритмами, а также с другими темами, имеющими отношение к квантовым компьютерам. Задача состоит не в том, чтобы дать смутное представление об этих понятиях, а в том, чтобы сделать их кристально ясными.

Квантовые вычисления часто упоминаются в новостях: Китай телепортировал кубит с Земли на спутник; алгоритм Шора поставил под угрозу ныне используемые методы шифрования; квантовое распределение ключей снова сделает шифрование надежным средством защиты; алгоритм Гровера увеличит скорость поиска данных. Но что все это означает в действительности? Как все это работает? Об этом Крис Бернхард и собирается рассказать.
Читать дальше →

Английский код

Reading time1 min
Views5.6K
Английский язык — пожалуй единственный подходящий для записи кода. Слова записанные на нем относительно коротки и почти не меняют форму в зависимости от контекста. Но главное — это та особенность, что в английском императивное наклонение высказываний мало отличается от изъявительного. Это важно потому, что в парадигме объектно-ориентированного программирования имя метода называет поведение сущности, а согласно устройству динамических языков, вызов метода это посылка сообщения целевой сущности, которая сама решает что с ним делать.
Читать дальше →

Книга «Head First. Kotlin»

Reading time9 min
Views15K
imageПривет, Хаброжители! У нас вышла книга для изучения Kotlin по методике Head First, выходящей за рамки синтаксиса и инструкций по решению конкретных задач. Эта книга даст вам все необходимое — от азов языка до продвинутых методов. А еще вы сможете попрактиковаться в объектно-ориентированном и функциональном программировании.

Под катом представлен отрывок «Классы данных»
Читать дальше →

Принцип открытости-закрытости

Reading time14 min
Views55K

Привет, Хабр! Перед вами перевод статьи Роберта Мартина Open-Closed Principle, которую он опубликовал в январе 1996 года. Статья, мягко говоря, не самая свежая. Но в рунете статьи дяди Боба про SOLID пересказывают только в урезанном виде, поэтому я подумал, что полный перевод лишним не будет.



Я решил начать с буквы O, так как принцип открытости-закрытости, по сути, является центральным. Среди прочего тут есть много важных тонкостей, на которые стоит обратить внимание:


  • Ни одну программу нельзя «закрыть» на 100%.
  • Объектно-ориентированное программирование (ООП) оперирует не физическими объектами реального мира, а понятиями — например, понятием «упорядочивание».
Читать дальше →

Google закручивает гайки

Reading time4 min
Views59K
Последние годы компания Google в отношении своей операционной системы Android – все больше “закручивает гайки”: запрещает ранее работающие функции, ограничивает изменение настроек системы из приложений. И старые приложения перестают работать на новых версиях Android.

Кроме этого, их магазин приложений Google Play Store (“Маркет”, короче говоря) уже так же перенасыщен приложениями, и старыми и новыми на любые темы. Найти что-то нужное все сложнее и сложнее, вновь созданное приложение если просто опубликовать там, и не заниматься рекламой и раскруткой – практически не найдет своих пользователей.

И Google также все активнее “чистит” свой Маркет.
Читать дальше →

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g

Reading time4 min
Views20K

Так случилось, что чуть меньше года назад, моя дочь заболела сахарным диабетом 1 типа (инсулинозависимый). После месяца использования «ручек», мы перешли на помпу Medtronic 640g с поддержкой НМГ. Под катом расскажу, как я делал мониторинг глюкозы, используя данные с помпы. Осторожно, траффик.
Читать дальше →

Всплывай! Транзишены в iOS

Reading time8 min
Views29K

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


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

TechTrain 2019: бесплатная онлайн-трансляция

Reading time2 min
Views2.9K


Конечно, на IT-фестивале лучше присутствовать лично, а не смотреть его доклады на видео. На площадке происходит столько всего, что по одним докладам даже впечатления о мероприятии толком не составишь.

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

Химия жареной курочки. Детальный разбор

Reading time2 min
Views46K
Для многих курица во фритюре одно из самых вкусных блюд, пусть и не самое полезное. Что же делает её такой вкусной?

image

Все дело в поведении масла при высоких температурах, а именно в протекающих химических процессах. В данном случае идет речь о полном погружении куриного мяса во фритюр, и температура масла при этом достигает 150 — 190 С.

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

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

История успеха игры Last Day on Earth от волгоградской студии Kefir

Reading time5 min
Views39K

Привет, Хабр! Сегодня мы разбираемся, как волгоградская гейм-студия Кефир сумела сломать стереотипы о мобильных играх, перейти порог в 100 миллионов скачиваний и завоевать международное признание пользователей Google Play. О том как создавалась студия, как устроена работа в ней и в чем секрет успеха Last Day on Earth читайте под катом.

Как собеседует Google: чему быть, чего не миновать

Reading time6 min
Views75K
В последние недели участилась волна статей на хабре о том, как проводятся собеседования.

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

Нет, я не стал рекрутером. Процесс собеседования предполагает сперва разговор с рекрутером. Это общая беседа “что-куда-зачем” (то есть описание процесса для вашего конкретного случая) и тот самый всеми любимый скрининг из опросника с несколькими вариантами ответов. Скрининг мне в своё время показался весьма базовым, подозреваю, что вы отвечали на такие вопросы уже сотню раз. Затем собеседования будут проводиться уже инженерами — вашими будущими коллегами (близкими или далёкими, это уже как получится, наша планета весьма небольшая).

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

Распознавание лиц на стройке

Reading time6 min
Views53K


В один яркий солнечный день, когда на стройке работа просто кипит, всё вокруг ярко и позитивно, и прямо хочется вечерком пожарить шашлык, на объект проник бывший сотрудник одного из подрядчиков. Он прошёл мимо проходной, помахал рукой охраннику, который знал его в лицо (но не знал, что он уволен), и зашёл внутрь. Там он пошёл к своим друзьям из Центральной Азии. Через полчаса они уже жарили шашлык и наслаждались жизнью.

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

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

Все остались живы и даже более-менее целы (ничего необратимого). Шашлык улетел, но на орбиту не вышел. Шампуры не проткнули никого внизу и сбоку. А вот к неудавшимся космонавтам приехала полиция, скорая и чуть ли не Спортлото.

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

За одного такого родственника на стройке накладывается штраф от 500 тысяч рублей и выше, и стройка может быть приостановлена от 14 до 90 дней. А это кончается очень, очень печально для генподрядчика и заказчика.

Именно после этого инцидента позвали нас решить задачу ИТ-средствами.
Читать дальше →

Как я ушел из IT в психологию

Reading time16 min
Views67K
[Опыт перехода в психологию]. На Хабре довольно много статей о том, как стать программистом, сисадмином, сетевиком и много ещё кем. Материалов о том, как уйти из IT, гораздо меньше, и сегодня я постараюсь восполнить этот пробел.


ППКС. Источник: t.me/smallpharm/559

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

И да, под катом опять очень много букв.
Читать дальше →

Аки Феникс

Reading time11 min
Views25K
Как я всё это ненавижу. Работу, начальника, программирование, среду разработки, задачи, систему, в которую они записаны, подчиненных с их соплями, цели, электронную почту, интернет, социальные сети, где все поразительно успешны, показушную любовь к компании, лозунги, собрания, коридоры, туалеты, лица, рожи, дресс-код, планирование. Я ненавижу всё, что происходит на работе.

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

Автоматическое определение эмоций в текстовых беседах с использованием нейронных сетей

Reading time10 min
Views16K

Одна из основных задач диалоговых систем состоит не только в предоставлении нужной пользователю информации, но и в генерации как можно более человеческих ответов. А распознание эмоций собеседника — уже не просто крутая фича, это жизненная необходимость. В этой статье мы рассмотрим архитектуру рекуррентной нейросети для определения эмоций в текстовых беседах, которая принимала участие в SemEval-2019 Task 3 “EmoContext”, ежегодном соревновании по компьютерной лингвистике. Задача состояла в классификации эмоций (“happy”, “sad”, “angry” и “others”) в беседе из трех реплик, в которой участвовали чат-бот и человек.

В первой части статьи мы рассмотрим поставленную в EmoContext задачу и предоставленные организаторами данные. Во второй и третьей частях разберём предварительную обработку текста и способы векторного представления слов. В четвёртой части мы опишем архитектуру LSTM, которую мы использовали в соревновании. Код написан на языке Python с использованием библиотеки Keras.
Читать дальше →

Почему не SQL?

Reading time67 min
Views73K


Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Среди бизнес-приложений процент систем, использующих SQL, вообще стремится к 100%.

При этом большинство существующих материалов о SQL на хабре и других ресурсах сводятся к простым вопросам, вроде: «какие типы соединений бывают», «чем левое соединение отличается от правого», «что такое триггеры» и так далее. Более того, в этих материалах практически ничего не говорится о проблемах SQL (и его реализациях), которых на самом деле очень и очень немало. Поэтому мы решили восполнить оба этих пробела: с одной стороны рассказать, как многие вещи в SQL работают изнутри, а с другой стороны — почему они работают не так как нужно / хотелось бы.

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

Information

Rating
Does not participate
Registered
Activity