Pull to refresh
0
0
Glum Psyche @GlumPsyche

Software Developer

Send message

Как симулировать плохую сеть под Linux, macOS и Windows

Reading time3 min
Views23K

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments6

Как Ктулху зохавал рунет, или немного запретной веб-археологии

Reading time4 min
Views23K

В 2006 году Ктулху в русскоязычном интернет-пространстве был решительно везде.
И началось это, вопреки распространённому мнению, не с электронного голосования по выбору вопросов к пресс-конференции Путина, на котором 17 000 голосов (по тем временам – очень много!) получил вариант «Как вы относитесь к пробуждению Ктулху?».
Уже тот факт, что вопрос про Ктулху набрал почти 17 000 голосов и попал в топ-3 вопросов, указывает на уже существовавшую популярность персонажа у интернет-аудитории. Тогда как и почему осьминогоголовое божество прославилось в рунете?
Читать дальше →
Total votes 57: ↑48 and ↓9+64
Comments28

Смущающая разработка софта. 4 байки с завода

Reading time5 min
Views18K

Моя первая настоящая работа была странной

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

1С-программистом с нулевым знанием 1С. С записью в трудовой «Системный администратор» с нулевыми знаниями системного администрирования. Ну то есть как — эникействовать же все могут, вот и могу. Наверное.

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

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

Дисклеймер. Всё пишу по расплывчатым воспоминаниям, поэтому если бывшие коллеги читают это — привет на сто лет.

Читать далее
Total votes 13: ↑11 and ↓2+14
Comments21

Почему твоя мама всё ещё не прогает?

Reading time11 min
Views123K

Случай с бомжом

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

Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».

Я решил предложить ему изучить программирование. В его положении он должен был быть чертовски мотивирован. Но получится ли у него?

Читать далее
Total votes 247: ↑219 and ↓28+248
Comments468

Как я писал тестовое задание на Angular и почему некоторым разработчикам не стоит давать тестовое задание

Reading time7 min
Views18K

Тестовое задание для junior или middle разработчиков обычно показывает их реальный опыт и понимание предметной области, однако для senior'а тестовое это немного другое. Расскажу свою историю написания маленького тестового задания на Angular с использованием лучших практик.

Читать далее
Total votes 18: ↑14 and ↓4+17
Comments72

Многопользовательская сетевая игра Ticket to Ride

Reading time7 min
Views5.1K

Привет, Хабр! Мы — Тимофей Василевский, Сергей Дымашевский и Максим Чайка — только что окончили первый курс бакалавриата «Прикладная математика и информатика» в Питерской Вышке. В качестве семестрового проекта по C++ мы написали симулятор всем известной настольной игры Ticket to ride. Что у нас получилось, а что нет, читайте под катом.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments11

О небольших, но бесяще важных различиях текстовых редакторов

Reading time5 min
Views12K

Привет! Я из команды «Р7-Офис», и я немного гик текстового редактирования. Например, в MS Word, равно как и в нашем редакторе Р7, есть двойное зачёркивание, а вот в других русских офисах такой фичи «из коробки» нет. На самом деле это очень русская фишка: у нас есть госкомпании, которые по своим стандартам должны использовать именно двойное зачёркивание в ряде ситуаций. И если эту функцию не поддерживать, то где-то далеко в Сибири заплачет ещё один инженер. 

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

Но я бы хотел рассказать немного о буднях того, что происходит в «исконно славянском труЪ офисе». Начнём с подхода к открытию и сохранению docx и плавно перейдём к тому, каких функций вам не хватает. 

Читать далее
Total votes 25: ↑24 and ↓1+31
Comments23

Взрывающие мозг истории из книги «Атомные привычки»

Reading time23 min
Views50K
Дочитала на днях книгу Джеймса Клира «Атомные привычки». Книгу третий год обсуждают англоязычные IT-шники, я решила разобраться, что в ней такого. По сути, «Atomic habbits» — это сборник публикаций Клира на тему привычек из его блога, но в красивой обложке и на русском.



Самым клевым в книге оказались истории из жизни. Фишки из этих историй уже безо всякой теории на 150 страниц можно брать и применять на себе / детях / сотрудниках.

Под катом 15 полезных историй из книги «Атомные привычки».
Читать дальше →
Total votes 30: ↑27 and ↓3+37
Comments28

«Двойной плюс»: биография создателя С++ Бьярне Страуструпа

Reading time8 min
Views10K

Можно не любить язык C++, можно даже не знать о его существовании, но вот не пользоваться софтом на нём — это, наверное, получится только в пещере. C++ есть в операционных системах и браузерах, автомобилях и банкоматах, сервисах вроде YouTube и программах вроде Photoshop. Получается, всё человечество каждый день взаимодействует с тем, что когда-то создал один конкретный человек.

Ранее мы публиковали интервью, которое Бьярне Страуструп дал на нашей конференции C++ Russia. А теперь решили, что и описать биографию такого человека никогда не будет лишним.

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments3

Неопределенное поведение, пронесенное сквозь года

Reading time8 min
Views5.9K

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

Можно выделить несколько стадий поиска бага:

• удивление (не знаю как вы, но я каждый раз как в первый раз удивляюсь когда что-то вдруг в моем коде работает не так, как ожидается);

• обвинение всех кругом в баге (коллег по проекту, github, сторонние либы, компилятор), но только не себя;

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

• если причина бага найдена быстро, то я хвалю себя за то, что нашел баг, при этом, я не напоминаю себе, что причиной бага стал тоже я, а не коллеги по проекту, не github, не сторонние либы и не компилятор;

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

Читать далее
Total votes 23: ↑21 and ↓2+29
Comments35

Экспериментальный вагон без плацкартов — только из капсул, без висящих ног

Reading time8 min
Views79K
В общем, выглядит это вот так — большая часть полки скрыта в глубине шахматной расстановки:



Расстановка вот такая:



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

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

В общем, заходите под кат смотреть новый вагон эконом-сегмента. Ну и можно посмотреть, что стало с вашей обратной связью и как опять поменялась эргономика после неё.
Читать дальше →
Total votes 144: ↑142 and ↓2+185
Comments518

Обзор всех АЭС России

Reading time19 min
Views91K

Всего 11 АЭС России по итогам 2020 года впервые выработали более 20% всей электроэнергии страны. Я решил сделать обзор всех этих атомных станций. Это будет популярный обзор станций глазами реакторщика (как минимум по образованию), так что я постараюсь показать в чем технические и исторические особенности каждой из них, какие реакторы на них работают или работали раньше, какие важные для отрасли технологии там осваивались. На многих из этих АЭС я был, поэтому иногда буду добавлять и личные впечатления.

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

Читать далее
Total votes 121: ↑121 and ↓0+121
Comments141

Как регистрировать и использовать программы без проблем с законом

Reading time15 min
Views21K

В статье разберемся, что нужно знать про ПО как объект авторского права и как не нарваться на проблемы — как разработчикам, так и пользователям программы.

Читать далее
Total votes 5: ↑4 and ↓1+7
Comments4

Как я чуть не лишился должности после весёлого переезда компании в новый офис и организовал микросотовую систему

Reading time13 min
Views17K

Привет, Хабр! Меня зовут Александр. На первый взгляд, я типичный инженер в малоизвестной аутсорсинговой организации по обслуживанию IT-инфраструктуры компаний. Управляю небольшим отделом техподдержки и веду переговоры с заказчиками. У нас самая обыкновенная фирма: три филиала в разных городах, два программиста, отдел техподдержки. Помимо обслуживания компьютерных систем, мы занимаемся внедрением IP-телефонии и её интеграцией с CRM-системами.

У меня есть вроде как обычная хабраистория. Когда-то я работал руководителем IT-подразделения в автосалоне и невольно стал участником переезда компании в новый офис. На новом месте мне удалось внедрить такую схему, что сотрудник мог с одной DECT-трубкой перемещаться по всей территории предприятия (площадью более 3000 кв. м) и оставаться на связи. И я этой обыкновенной хабраисторией хотел бы поделиться.

Однако есть и во мне, и в моём проекте нечто такое, что на Хабре очень не любят. Один недостаток, который превращает всё в... Впрочем, мой каминаут будет под катом.

Читать далее
Total votes 49: ↑23 and ↓26+13
Comments27

Dependency Injection в мире Software Engineering

Reading time22 min
Views27K

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

Читать далее
Total votes 24: ↑23 and ↓1+27
Comments9

Правда о мозге Бендера

Reading time4 min
Views34K

14 ноября 1999 года эпизод "Футурамы", анимационного научно-фантастического сериала от создателя "Симпосонов" Мэтта Гроунинга, ошарашил гиков зрелищем технологического характера, абсолютно беспрецедентным в отрасли развлечений в прошлом. В этом эпизоде, "Фрай и фабрика Слёрма", профессор Фарнсворт направляет Ф-луч на голову безумного робота Бендера, и мы видим маленький прямоугольник, очевидно являющийся микросхемой, с надписью "6502".

Читать далее
Total votes 46: ↑42 and ↓4+53
Comments44

Протоколу BitTorrent 20 лет: как изменить ход развития Интернета с помощью «словаря» и сарафанного радио

Reading time6 min
Views19K
Двадцать лет назад относительно неизвестный в то время программист по имени Брэм Коэн в одиночку совершил революцию в сфере технологий обмена файлами. Тогда социальные сети ещё не были развиты, но BitTorrent особо и не нуждался в лайках. Со временем он был оценён по достоинству в ИТ-сообществе. В начале двухтысячных новый протокол обмена файлами изменил ход развития Интернета.

«Наконец-то заработало моё новое приложение BitTorrent, оно доступно по ссылке ниже», — написал Коэн на доске объявлений Yahoo!.. Это было 2-го июля 2001 года.


Вероятно, за всю историю ИТ это была одна из самых, мягко говоря, лаконичных PR-кампаний в поддержку запуска нового продукта. Не впечатлил и «дизайн» официального сайта с чёрным текстом на белом фоне: весь сайт — несколько строк HTML-кода. Тогда никто не мог представить, какую роль в развитии всего Интернета сыграет BitTorrent.

Полное отсутствие маркетинговой составляющей Брэм Коэн компенсировал за счёт технических характеристик продукта. Он ранее работал в стартапе, команда которого трудилась над одноранговой сетью MojoNation. Потом у этого проекта закончилось финансирование, и 25-летний разработчик сосредоточился на развитии собственного проекта — протокола для обмена файлами.
Читать дальше →
Total votes 35: ↑34 and ↓1+46
Comments21

Проект MouseMover — мышь, живущая своей жизнью

Reading time11 min
Views28K
Автор статьи, перевод которой мы сегодня публикуем, рассказывает о проекте MouseMover. Это — USB-устройство, которое имитирует присутствие пользователя за компьютером, периодически перемещая курсор мыши на небольшие расстояния, что позволяет избежать блокировки экрана компьютера или перехода компьютера в спящий режим.


MouseMover
Читать дальше →
Total votes 25: ↑24 and ↓1+36
Comments82

Почему современная наука основана на вере?

Reading time12 min
Views46K

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

Проблема неполной индукции

Знаменитый древнегреческий философ Аристотель в своем трактате «Аналитика» выделяет два вида возможных умозаключений - индуктивное и дедуктивное.

Дедуктивное умозаключение - это логический вывод о частных случаях исходя из общего правила. Индуктивное умозаключение - это логический вывод об общем правиле исходя из частных случаев.

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

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

Читать далее
Total votes 95: ↑72 and ↓23+76
Comments623

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Mobile Application Developer
Git
C++
Qt
Cmake
Linux
PostgreSQL
SQLite