Pull to refresh
-4
0
Евгений @afanasiy_nikitin

User

Send message

Стражи ночи

Reading time9 min
Views81K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

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

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →
Total votes 157: ↑136 and ↓21+115
Comments50

7 удивительных фактов о профессиональной ориентации

Reading time9 min
Views56K
Когда мы с коллегой slavapankratov запустили свою годовую программу обучения, то с самого начала хотели делать план обучения индивидуальным для каждого студента. Для чего призвали на помощь вторую вышку slavapankratov по практической психологии, отобрали два подробнейших теста (один на 580 вопросов) и стали просить слушателей не только пройти тесты, но и написать эссе о своей истории, целях и планах.

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

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

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

Итак, что удалось заметить.
Читать дальше →
Total votes 56: ↑50 and ↓6+44
Comments18

Новый суперблиц по Java-хардкору

Reading time4 min
Views28K
Итак, вчера мы с вами поиграли в джавовский вариант «Интеллектуальное казино против знатоков», и при этом, при всем уважении к хабровчанам, телезрители выиграли! Победителем этого этапа стал Сергей SerCe Целовальников, решивший три задачи. Как и обещали — мы вручаем ему небольшой приз: VIP-билет на JPoint!

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

Под катом — ответы на вчерашний раунд и суперблиц! Против знатоков сегодня играет телезритель из Петербурга Андрей apangin Паньгин.



Поиграем?
Total votes 28: ↑25 and ↓3+22
Comments33

Вы неправильно пишете животных

Reading time5 min
Views365K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments352

Дизайн и архитектура в ФП. Введение и Часть 1

Reading time11 min
Views28K

Введение


В мире функционального программирования есть один большой пробел, а именно почти не освещена тема высокоуровневого дизайна больших приложений. Я решил для себя изучить этот вопрос. Есть ли существенные отличия дизайна приложений в ФП-мире от оного в мире императивном? Что такое «каноничный ФП-код»? Какие существуют идиомы разработки, есть ли смысл вообще говорить о паттернах проектирования в применении к ФП? Эти и другие важные вопросы часто вспыхивают то там, то здесь, но покамест мне не известно ни одной книги, аналогичной книге Банды Четырех. Вероятно, мои изыскания уже кто-то повторил, однако тем лучше: схожие результаты подтвердят правильность, иные — укажут на место в теории, которое необходимо доработать.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments41

16 месяцев функционального программирования

Reading time16 min
Views67K
Предлагаю читателям «Хабрахабра» перевод статьи «16 Months of Functional Programming». Все мои замечания будут выделены курсивом.

В этой статье я хочу поделиться с вами моим опытом в функциональном программировании. Я чувствую, что в целом за прошедшие 16 месяцев стал лучше разбираться в информатике и компьютерах, чем за предыдущие 10 лет и всё это благодаря моему погружению в Scala и мир функционального программирования. Причина по которой функциональное программирование побуждает вас к постоянному развитию заключается в том, что каждую задачу необходимо переосмысливать заново. Порой невозможно поверить в то, что большинство стандартных задач могут быть решены иным путём и — бум! — функциональный подход предлагает лучшее решение и это шокирует.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments97

Размышления о программировании

Reading time14 min
Views35K

От Аристотеля к Витгенштейну


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

Предисловие

Развитие информатики как науки представляется рекой, которая рождается в далеком прошлом (Евклид, III век до н.э.; Вавилон, XIX век до н.э.; а возможно и раньше) из едва заметных ручейков первых алгоритмических вычислений. Неспешно двигаясь по истории, ручейки объединяются в реку, которая, неся свои воды через века, вбирает в себя притоки из смежных дисциплин, накапливает величественность и мощь и, наконец, срывается ниагарским водопадом из второго в третье тысячелетие, превращаясь в стремительный бурлящий поток, который захватывает и несет с собой из прошлого в будущее миллионы людей.



Броуновской частице, которую то бросает на стремнину с турбулентным течением, то опрокидывает в застоявшееся болото, то на мелководье, то в омут; мир информационных технологий видится загадочным, изменчивым и непредсказуемым. Однако радость постоянного движения, героического преодоления трудностей, бешеного вращения калейдоскопа новых впечатлений со временем сменяется тоской, томлением духа и непреодолимой потребностью на мгновение приподняться над суетой, взглянуть со стороны на этот бешено бурлящий поток и попытаться разглядеть, если не общее направление бурной реки, то хотя бы ближайший поворот той протоки, в которой барахтаешься.
Читать дальше →
Total votes 85: ↑58 and ↓27+31
Comments82

Точное количество времени для ежедневного труда

Reading time3 min
Views13K
image

Недавние исследования научно обосновывают необходимость расчёта точного времени, которое следует тратить на отдых в течение рабочего дня. В этой статье вы найдете подборку советов, которые помогут грамотно организовать достаточное количество перерывов в течение рабочего дня.
Читать дальше →
Total votes 22: ↑15 and ↓7+8
Comments4

2 «простых» вопроса по джаве

Reading time3 min
Views64K

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

Когда-то давно на хабре была пара статей как не надо писать на java с интересными задачками по java.
Часть 1, Часть 2
Они очень интересные, но, к сожалению, автор не стал продолжать.

Представляю вашему вниманию еще 2 задачки (на большее не хватило сил. Оказывается, писать статьи не так-то просто.)

В конце статьи, разумеется, будут ответы с разъяснениями, а также дополнительные задания для самых сильных.
Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments52

Scala хуже, чем Java. Как минимум, для половины Java проектов

Reading time8 min
Views37K
Итак, в своем посте (прим.пер. Да, Вирджиния, Scala сложна!) я согласился с тем, что Scala слишком сложна для большей части Java разработчиков. Тот пост вызвал немало дискуссий, большая часть которых исказила его смысл. Теперь я пишу снова, надеясь пояснить, о чем я, собственно, говорил и зачем мне все это нужно.

Но сначала обо мне. Меня зовут Дэвид Поллак.
Читать дальше →
Total votes 76: ↑60 and ↓16+44
Comments80

Основы Scala. 5 часов поедания мозгов

Reading time3 min
Views63K
Добрый день, уважаемое хабрасообщество!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments29

Пишите компараторы правильно

Reading time5 min
Views149K
В Java для введения порядка среди определённых объектов можно написать компаратор — класс, содержащий функцию compare, которая сравнивает два объекта. Альтернативой компаратору является естественный порядок объектов: объект реализует интерфейс Comparable, который содержит метод compareTo, позволяющий сравнить этот объект с другим. Сравнивающая функция должна вернуть 0, если объекты равны, отрицательное число (обычно -1), если первый объект меньше второго, и положительное число (обычно 1), если первый больше. Обычно реализация такой функции не представляет сложностей, но имеется один случай, о котором многие забывают.

Сравнение используется различными алгоритмами от сортировки и двоичного поиска до поддержания порядка в сортированных коллекциях вроде TreeMap. Эти алгоритмы завязаны на три важных свойства сравнивающей функции: рефлексивность (сравнение элемента с самим собой всегда даёт 0), антисимметричность (сравнение A с B и B с A должны дать разный знак) и транзитивность (если сравнение A с B и B с C выдаёт одинаковый знак, то и сравнение A с C должно выдать такой же). Если сравнивающая функция не удовлетворяет этим свойствам, алгоритм может выдать совершенно непредсказуемый результат. Причём скорее всего вы не получите никакого исключения, просто результат будет неверный.

Как обнаружилось, несоблюдение этих свойств — не такая уж редкая ситуация. Проблема возникает при сравнении вещественных чисел — float или double.
Читать дальше →
Total votes 82: ↑76 and ↓6+70
Comments36

Откуда есть пошло комплексное число

Reading time3 min
Views150K
В современной математике комплексное число является одним из фундаментальнейших понятий, находящее применение и в «чистой науке», и в прикладных областях. Понятно, что так было далеко не всегда. В далекие времена, когда даже обычные отрицательные числа казались странным и сомнительным нововведением, необходимость расширения на них операции извлечения квадратного корня была вовсе неочевидной. Тем не менее, в середине XVI века математик Рафаэль Бомбелли вводит комплексные (в данном случае точнее сказать, мнимые) числа в оборот. Собственно, предлагаю посмотреть, в чем была суть затруднений, доведших в итоге солидного итальянца до подобных крайностей.
Читать дальше →
Total votes 144: ↑139 and ↓5+134
Comments59

Долгая жизнь королёвской «семёрки»: успешные испытания «Союз-2.1в»

Reading time6 min
Views106K

У ракеты «Р-7» оказалась удивительно долгая жизнь. Через пятьдесят шесть лет после первого пуска в мире эксплуатируются пять стартовых комплексов и строится шестой. И сегодня, в 16:30 МСК состоялся первый испытательный полёт новой модели семейства Р-7 — «Союз-2.1в». О длинной и славной истории «семёрки» и о её новой модификации я бы и хотел рассказать.
Читать дальше →
Total votes 141: ↑138 and ↓3+135
Comments29

10 вещей, которые никогда не преподаются программистам в вузах

Reading time2 min
Views9.7K
10 вещей, которые никогда не преподаются программистам в вузах.

1. Мы не правы


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

далее
Total votes 352: ↑269 and ↓83+186
Comments187

5 советов новоиспеченному начальнику отдела

Reading time5 min
Views159K
Хочу поделиться 5 важными, на мой взгляд, вещами, которые должен осознать специалист, внезапно ставший начальником своего отдела. Это скорее напутствие, психологическая накачка, чем конкретные методики, но как мне кажется, карьерные изменения — момент для изменений внутренних. Мне самому повезло стать начальником нового отдела, созданного из сотрудников, занятых определенным направлением, и вот что я успел для себя уяснить.
Читать дальше →
Total votes 88: ↑71 and ↓17+54
Comments41

Как передавать дела при увольнении

Reading time3 min
Views39K
Я руководитель отдела разработки 1С. В моём подчинении 4 разработчика и 3 специалиста поддержки. Звезды сложились так, что я решил уйти из компании. Подписал заявление, договорился о двух неделях отработки. HR напрягся, бросился искать замену, но скорей всего за 2 недели никого они найти не смогут и у меня встал вопрос, что нужно сделать, чтобы уйти «красиво», так, чтобы человек, который заменит меня смог как можно более безболезненно войти в курс дел. Размышления вылились вот в такой список.
Читать дальше →
Total votes 43: ↑35 and ↓8+27
Comments19

Мониторинг воровства кабеля

Reading time4 min
Views118K
Работаю в интернет-провайдере, в одном из районов города стали часто резать медный 25 парный кабель.
Злоумышленникам все просто — зашел в подъезд, поднялся на верхний этаж, обрезал кабель и вытащил из трубостоек, можно скручивать и продавать. Факт кражи будет заметен только тогда, когда на вызов от недовольных абонентов приедут монтажники. Руководство поставило задачу — придумать, как с этим бороться и естественно, без доп. затрат.
После походов по форумам общий принцип был такой – делаем петлю на последней паре и подключаем в первый порт коммутатора, если ворюги режут кабель – линк пропадает. В теории все просто, но долгие поиски «разжеванного» решения результата не дали.

Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments89

Знаменитый футуролог Реймонд Курцвейл будет руководить разработками Google. Каждому — тело из наноботов к 2020 году?

Reading time3 min
Views109K
image

Неделю назад (как упоминали на хабре), Google нанял на работу нового директора по инженерным разработкам, и им стал знаменитый футуролог Рэй Курцвейл (Ray Kurzweil).

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

В своей новостной рассылке Курцвейл сказал:

«В 1999 году я сказал, что через десять лет появятся такие технологии, как машины без водителя, и мобильные телефоны, которые смогут отвечать на ваши вопросы, но люди отвергали эти предсказания как нереалистичные. Через 10 лет Google продемонстрировал такие машины, а люди на самом деле задают вопросы своим телефонам на базе Android.

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

Я безумно рад объединить усилия с Google в работе над некоторыми из самых сложных проблем информатики (computer science), чтобы предсказания на следующее десятилетие стали реальностью.»
Читать дальше →
Total votes 127: ↑111 and ↓16+95
Comments408

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity