Как стать автором
Обновить
1
0

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

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

Разработка должна ориентироваться на продакшен, всё остальное — чушь

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


За мою карьеру у меня выработались определённые мнения. Некоторые из них оставили особенно глубокий след, подкреплённый годами опыта. Я попытался сформулировать, что же у них есть общего. Общее заключается в мысли о том, что единственное, что важно — это код в продакшене. Обкатка не важна, код на твоём ноутбуке не важен, QA не важен, важен только продакшен. Всё остальное — это технический долг.

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

Эта мысль, а также все связанные с ней подразумеваемые действия, может показаться контринтуитивной или спорной, поэтому я хочу раскрыть её немного глубже. Ниже представлен перечень практик и принципов, которые я считаю правильными, исходя из моего мнения о том, что единственное, что важно — это код в продакшене.
Читать дальше →
Всего голосов 45: ↑31 и ↓14+31
Комментарии47

Вакцина «Спутник V»: инструкция, как испортить хорошее дело

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

Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамалеи».


Поговорим о том, как устроена современная наука в целом и доказательная медицина в частности, и при чем тут пиар.


image

Читать дальше →
Всего голосов 310: ↑268 и ↓42+308
Комментарии606

Пожалуйста, перестаньте рекомендовать Git Flow

Время на прочтение6 мин
Количество просмотров202K
Прим. перев.: Новая статья с критикой полюбившейся многим Git Flow получила столь заметное внимание, что даже оригинальный автор модели обновил публикацию 10-летней давности, актуализировав свой взгляд на её применение сегодня. Публикуем перевод как самой критики, так и официальной реакции.



Git-flow — это методология ветвления и слияния, сильно популяризированная заметкой 2010 года под названием «A Successful Git branching model» (была переведена на хабре как «Удачная модель ветвления для Git» — прим. перев.).

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

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

На этом можно заканчивать, так? Ну, не совсем. Наверняка некоторые из вас скептически отнеслись к моей цепочке рассуждений, поэтому давайте копнем поглубже и попытаемся понять, почему модель ветвления Git-flow должна поджариться на медленном огне.
Читать дальше →
Всего голосов 78: ↑69 и ↓9+80
Комментарии177

На шаг ближе к восстановлению тимуса

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


Учёные из Monash Biomedicine Institute добились прогресса в омоложении стареющей иммунной системы, выявив факторы, ответственные за уменьшение тимуса.
Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии0

20 игр, чтобы научить ребёнка программированию

Время на прочтение5 мин
Количество просмотров305K
Привет Хабр! Меня зовут Оксана Селендеева. Я считаю, что лучше начинать программировать с юного возраста — 4-5 лет, потому что кодинг активно развивает у детей когнитивные функции мозга, и это впоследствии помогает им отлично усваивать точные науки. А попробовать себя в программированию можно через обучающие игры. Мы с преподавателями школы программирования для детей CODDY составили такую подборку.

Для дошкольников


Box Island — мобильная 3D-игра, которая обучает основам кодирования через увлекательное приключение. Игроки путешествуют по острову Box и помогают персонажу собирать звезды, разбросанные по пустыне. Через игровой квест дети изучают основы алгоритмов, последовательностей, циклов и условных выражений, а ещё игра развивает алгоритмическое мышление и распознавание образов.
Всего голосов 59: ↑53 и ↓6+47
Комментарии91

IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

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

Поехать работать в Австралию или Таиланд, когда тебе 25 и нет семьи, не так и сложно. И таких историй большое количество. А вот переехать, когда тебе под 40, жена и трое детей (8 лет, 5 лет и 2 года) — задача другого уровня сложности. Поэтому хочу поделиться своим опытом переезда в Германию.



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


Итак, 2015 год, мы с семьей живем в Санкт-Петербурге на съемной квартире. Долго думали, как нам переезжать, что делать со школой, местами в садике и съемной квартирой. Нами было принято несколько важных решений:

Читать дальше →
Всего голосов 109: ↑106 и ↓3+103
Комментарии173

Курс о Deep Learning на пальцах

Время на прочтение2 мин
Количество просмотров174K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


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

Тихий кризис в разработке софта

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


Обо мне


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

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

Во Вселенной работает довольно жестокий вид кармы.

В моем нынешнем положении в качестве старшего директора по развитию программного обеспечения у меня есть 6 менеджеров по развитию, которые отчитываются передо мной. Только в моей организации около 50 разработчиков программного обеспечения. У нас завидно низкая текучесть кадров и очень высокий уровень удовлетворенности клиентов.

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

Всего голосов 107: ↑84 и ↓23+61
Комментарии56

Многоликий ГОСТ Р 34.11-94

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


Готовил я как-то тесты для системы, один из модулей которой помимо всего остального вычислял значение хеш-функции для загружаемого файла. В ТЗ был прописан и необходимый алгоритм — ГОСТ Р 34.11-94. За эталон я взял значение хеша, посчитанного сторонней утилитой Rhash.

f86c9ecfb6e63726b35ebc79528d013d52b781e06e29d7eb0c9d1cb256efb7c1

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

964ba8755ca782ec3c5e0f98c93347f9b96d9f39cf5c7fdef43a23273fe8868a

Кто не прав — разработчик модуля или утилиты?
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии10

Новые возможности Oracle Database 12.1.0.2

Время на прочтение9 мин
Количество просмотров31K
В процессе разработки новой версии Oracle Database компании Oracle было важно учесть две основные тенденции современной ИТ-индустрии. Во-первых, характерную для последних лет тенденцию изменения цены и доступных объемов оперативной памяти. Ведь стоимость оперативной памяти каждый год падает на 30 %, а типовой корпоративный сервер сегодня уже поставляется с объемом памяти 128 ГБ, причем многие серверы имеют 1 ТБ памяти. Это значит, что если научиться размещать базы данных непосредственно в оперативной памяти, то запросы к ним будут выполняться в десятки и сотни раз быстрее, что открывает возможность реализации бизнес-аналитики реального масштаба времени.

Читать дальше →
Всего голосов 19: ↑14 и ↓5+9
Комментарии23

Сделай сам: SQL JOIN на Java

Время на прочтение7 мин
Количество просмотров84K
Я часто собеседую разработчиков и часто задаю им простой, как кувалда, вопрос — как внутри работает JOIN в SQL? В ответ я обычно слышу бессвязное мычание про волшебные деревья и индексы, которые быстрее. Когда-то мне казалось, что каждый программист специалист должен знать то, с чем работает. Впоследствии жизнь объяснила мне, что это не так. Но мне все еще не понятно, как можно годами теребить базёнку, даже не догадываясь, а что там у нее «под капотом»?

Давайте проведем ликбез и вместе посмотрим, как же работают эти джойны, и даже сами реализуем парочку алгоритмов.

SQL JOIN
Читать дальше →
Всего голосов 82: ↑58 и ↓24+34
Комментарии128

Вложенные привязки в WPF

Время на прочтение5 мин
Количество просмотров23K
В WPF существует три вида привязок: Binding, PriorityBinding и MultiBinding. Все три привязки наследуются от одного базового класса BindingBase. PriorityBinding и MultiBinding позволяют к одному свойству привязать несколько других привязок, например:

<MultiBinding Converter="{StaticResource JoinStringConverter}" ConverterParameter=" ">
    <Binding Path="FirstName" />
    <Binding Path="MiddleName" />
    <Binding Path="LastName" />
</MultiBinding>

Исходный код класса JoinStringConverter
public class JoinStringConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var separator = parameter as string ?? " ";
        return string.Join(separator, values);
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        var separator = parameter as string ?? " ";
        return (value as string)?.Split(new[] { separator }, StringSplitOptions.None).Cast<object>().ToArray();
    }
}


Список привязок MultiBinding-а — это коллекция типа Collection<BindingBase>. Логично было бы предположить, что внутри MultiBinding-а можно использовать еще один MultiBinding.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии3

Митап SPB .NET Community #9

Время на прочтение2 мин
Количество просмотров4.5K
Хочу рассказать вам о первом в новом году митапе SPB .NET Community. Мы, отдохнув после праздников, снова взялись за подготовку интересных докладов по .NET темам и 9 февраля идем в гости к JetBrains, где парни будут рассказывать про архитектуру нового проекта Rider – кроссплатформенной C# IDE и трюки использования unmanaged памяти, реализованные в ReSharper 10.



Сразу приятная новость, если вы не из Санкт-Петербурга, но хотите послушать доклады, в этот раз мы организуем online-трансляцию. За подробностями и анонсами докладов прошу под кат.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Система управления микроклиматом теплицы

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

Начало пути


Одним солнечным деньком, придя в универ, я узнал, что в этом семестре у меня курсовой по схемотехнике. Преподаватель предлагал сделать только пояснительную записку «как реализовать проект» или же познать темную сторону инженерии и создать реальное устройство. А так, как я был уже на 4ом курсе, и вспомнив, что единственный раз когда я применял на практике свои навыки инженера был на первом курсе (прикрутил к стене книжную полку), я решил «поработать ручками». После недолгих размышлений, мною была выбрана тема «Система управления микроклиматом теплицы». Скорее всего на выбор повлияла моя любовь к автоматизации процессов, или же то, что я и сам занимался разведением огурцов в теплицах. Но не будем долго тянуть — начинаем.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии10

Восход разработчикономики

Время на прочтение10 мин
Количество просмотров62K
От переводчика
Почитывая несколько лет назад журнал "Форбс", я наткнулся на статью, которую нашёл крайне интересной. Ну, знаете как бывает — читаешь, читаешь, и на каждом абзаце воскликаешь: «О! Це ж про меня!». Не мог поверить, что я один такой, и никто не сподобится уж если не перевести, то хотя бы сослаться на неё в русскоязычной прессе. Однако за четыре года этого так и не произошло. Ну что ж, «хочешь сделать что-то правильно — сделай это сам», посему предоставляю вниманию почтенной публики первую половину статьи. (Стараюсь переводить художественно, поэтому работа двигается небыстро; размер оригинала — больше 30 килобайт, и, «земную жизнь пройдя до половины», я понял, что держаться нету больше сил.)

P.S. Так и не смог разобраться, как поставить в заголовке тег «перевод».

Восход разработчикономики


Статья Венкатеша Рао опубликована в декабре 2011 года в журнале «Форбс».

В эволюционной биологии существует теория, согласно которой взаимный альтруизм и сотрудничество возникли как решение проблемы хранения еды. Если вам, раннему гоминиду, посчастливилось завалить крупного мамонта, у вас не было ни малейшего шанса умять его целиком до того, как он протухнет. Тогда вы делились едой: лучшим вложением для избыточного капитала было вложение в желудок вашего приятеля. В этом случае вы могли потребовать возврата вклада в тот раз, когда мамонта завалит уже этот самый приятель.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии76

Вопросы по мониторам

Время на прочтение5 мин
Количество просмотров21K
Привет, GT! Сегодня уже выходил один из моих постов, который касался систем охлаждения, завершить же 2015-й год я бы хотел, ответив на несколько интересных вопросов, которые мне прислали на почту. Все они касаются мониторов и/или производительности видеосистем, так что если вас интересуют подобные темы — милости прошу под кат.


Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии17

Angular2 теперь «бета»

Время на прочтение3 мин
Количество просмотров23K
Предлагаю вашему вниманию перевод статьи из официального блога AngularJS.

Мы счастливы поделиться с вами новостью, что проект Angular 2 достиг бета-версии. О том множестве нововведений, что принесла вторая версия по сравнению с первой, вы можете узнать из предыдущего поста. Изучение Angular 2 можно начать на сайте angular.io.

Что означает «бета»?

«Бета» означает, что теперь мы уверены в том, что большая часть разработчиков имеет возможность успешно создавать крупные приложения с помощью Angular 2.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии7

Конференция C++ Russia 2016, Санкт-Петербург

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

Всем привет!

26-27 февраля 2016 в Санкт-Петербурге пройдет крупнейшая в России конференция, посвященная исключительно C++. Мы постарались собрать лучшие доклады и охватить самые разные темы: от хардкорных корутин до энтерпрайзного мокирования, от создания краш-репортов до реактивного программирования. Кроме того, поговорим о boost, обсудим что происходит со стандартизацией параллельного программирования в C++, рассмотрим некоторые ежедневные проблемы, например, работу с С-строками. В этот раз мы опять попробуем устроить блиц-доклады, но этот раз на них можно регистрироваться заранее (хоть сейчас). Будет в этом году и кое-что совсем новое.

Интересно? Подробности под катом!
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии9

Об эффективности «учений» Рутрекера

Время на прочтение5 мин
Количество просмотров40K
«У любой задачи существует по крайней мере одно очевидное и невероятно простое для понимания неправильное решение»

Как кто-то из вас уже знает, широко известный ресурс Рутрекер провел акцию «Учения по гражданской обороне». Суть её заключалась в «тренировочном» закрытии доступа на форум для всех пользователей из России на сутки. На следующий день популярные интернет-издания пестрели заголовками «Учебная блокировка Рутрекера не отразилась на его посещаемости». Для меня как регулярного пользователя этого сайта тема с его блокировкой особенно болезненна.

Увидев обнадеживающие заголовки, я порадовался за маленькую победу любимого ресурса. Однако после прочтения статей у меня возникло несколько вопросов. Поэтому я и решил разобраться: действительно ли Рутрекер успешно справился с задачей и научил всех своих пользователей легко и непринуждённо обходить блокировки?
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии55

Знакомство с внутренним устройством .NET Framework. Посмотрим, как CLR создаёт объекты

Время на прочтение27 мин
Количество просмотров58K
Вниманию читателей «Хабрахабра» представляется перевод статьи Хану Коммалапати и Тома Кристиана об внутреннем устройстве .NET. Существует альтернативный вариант перевода на сайте Microsoft.

В статье рассматривается:

  • Системный домен (SystemDomain), Домен общего доступа (SharedDomain) и домен по умолчанию (DefaultDomain)
  • Представление объекта и другие особенности организации памяти
  • Представление таблицы методов
  • Распределение методов

Используемые технологии: .NET Framework, C#

Содержание


  1. Домены создаваемые начальным загрузчиком
  2. Системный домен
  3. Домен общего доступа (разделяемый)
  4. Дефолтный домен
  5. Загрузчик куч
  6. Основы типов
  7. Экземпляр объекта
  8. Таблица методов
  9. Размер базового экземпляра
  10. Таблица слотов метода
  11. Описатель метода
  12. Карта таблиц виртуальных методов интерфейсов и карта интерфейса
  13. Виртуальное распределение
  14. Статические переменные
  15. EEClass
  16. Заключение

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность