Как стать автором
Обновить
129
0
Григорий Демченко @gridem

Software Engineer

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

Скрытые сети или как старая философия Интернета стала отходом реальности

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 5.7K

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

Читать далее
Всего голосов 20: ↑15 и ↓5 +10
Комментарии 2

Эффект Рогатки: как взломать дофаминовую матрицу

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 48K

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

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

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

Фишка в том, что даже если бы такой мануал был, он бы нас не спас. Не понимая сути источника проблемы, ни один человек (а он все же смыслосодержащий механизм, а не робот) не будет ему долго и упорно следовать. Как рассказывал David Horsager на Тэде, устойчивая мотивация держится на полной ясности смысла деятельности для конкретного человека.

Вам, конечно, может показаться, что я зря смешиваю потерю интереса к деятельности и стресс — ведь они, кажется, на разных краях стола. Но я проблему вижу так: находясь в вечном стрессе, мы жадно хватаемся за то, что дарит нам положительные эмоции. Пребывая в привычном блэкауте с черными кругами под глазами, мы встречаем человечка, да каааак начинаем им интересоваться и увлекаться, да так упорно, хватаясь за него как за спасительную соломинку, что… через какое-то время перегораем. Как говорят американцы, balls deep. Работает не только с человечками — по такой же гнусной схеме мы обычно набрасываемся на все, что нам внезапно понравилось, особенно на фоне рутинной серости, субъективного однообразия, всемирного сумасшествия и всей этой хтони. Мы постоянно бегаем по этому убивающему нас циклу — набрасываясь на то, что нас вроде как драйвит, быстро выжирая это без остатка, теряя интерес и снова погружаясь в плаванье в этом супе из кортизола.

Читать далее
Всего голосов 91: ↑87 и ↓4 +83
Комментарии 95

Советы руководителю от руководителя

Время на прочтение 11 мин
Количество просмотров 112K
Привет, Хабр! Я управляю командами разработки уже 10 лет.

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

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

Поэтому выключаю тумблер «не будь выскочкой» и делюсь «секретами».



Тут не будет стандартных «делегируй», «налаживай процесс», «стой в правильной позе на стендапе» — об этом написано уже достаточно. Будет о другом.
Читать дальше →
Всего голосов 155: ↑152 и ↓3 +149
Комментарии 201

Топ-10 книг для разработчика

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

Совершенствоваться в сфере разработки — это не только писать хороший код, но и читать о том, как его писать.




Привет, хабр! Продолжаю делиться полезными подборками. Совсем недавно я опубликовал 2 поста с перечнем Github репозиториев: Часть1 и Часть2. На этот раз предлагаю вашему вниманию подборку полезных книг для разработчиков. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Комментарии 40

Как стать долларовым миллионером за 30 лет, лежа на диване

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


На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Поехали!
Всего голосов 308: ↑291 и ↓17 +274
Комментарии 557

Что такое быть тимлидом

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

Интро


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


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


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

Читать дальше →
Всего голосов 74: ↑71 и ↓3 +68
Комментарии 48

Как собеседовать работодателя?

Время на прочтение 4 мин
Количество просмотров 46K
У программистов обычно принято обсуждать собеседования с точки зрения (около)технических вопросов, которые им задает интервьювер.

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

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

Читать дальше →
Всего голосов 85: ↑77 и ↓8 +69
Комментарии 63

Андрей Терехов: «Можно сколько угодно говорить, что американское лучше, но наша машина никогда не ломается»

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


Завкафедрой системного программирования Матмеха СПбГУ, профессор, доктор физмат наук, президент компании «Ланит-Терком» Андрей Николаевич Терехов — о том, как делал первый в СССР транслятор языков Алгол 68 и Ада, о силе обкома КПСС и рождении «Самсона», который никогда не ломался.
Читать дальше →
Всего голосов 192: ↑178 и ↓14 +164
Комментарии 176

Не морочьте мне голову со своим функциональным программированием

Время на прочтение 19 мин
Количество просмотров 67K
Адепты функционального программирования любят завлекать новичков обещаниями идеальной выразительности кода, 100% корректностью, лёгкостью поддержки и простотой рефакторинга, а иногда даже пророчат высочайшую производительность. Однако, опытные разработчики знают, что такого не бывает. Программирование — это тяжёлый труд, а «волшебных таблеток» не существует. 

С другой стороны, элементы функционального стиля программирования уже проникли в промышленные языки программирования, такие как Swift и Kotlin. Разработчики этих языков прекрасно знакомы с функциональным программированием, поэтому смогли применить его «в малом», предусмотрев многие, хотя и не все, необходимые компоненты. Чем дальше — тем больше части ФП внедряются в промышленные ЯП, и тем качественнее и полнее реализуется поддержка.

Уметь программировать в функциональном стиле полезно, чтобы упрощать себе работу, и сейчас мы посмотрим, как этим воспользоваться!


Виталий Брагилевский — преподаватель ФП, теории алгоритмов и вычислений, автор книги «Haskell in Depth» и участник комитетов Haskell 2020 и наблюдательного комитета компилятора GHC.
Всего голосов 133: ↑109 и ↓24 +85
Комментарии 215

Какой спорт выбрать, или как войти в IT и остаться здоровым

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

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

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

Зачем вообще заниматься спортом? Не лучше ли потратить свое драгоценное время на что-нибудь другое? Например, поработать.

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

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

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

Под катом много картинок для наглядности и мотивации.
Погнали
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 344

История 13 места на Highload Cup 2017

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

Image


11 августа компания Mail.Ru Объявила об очередном конкурсе HighloadCup для системных программистов backend-разработчиков.


Вкратце задача стояла следующим образом: докер, 4 ядра, 4Гб памяти, 10Гб HDD, набор api, и нужно ответить на запросы за наименьшее количество времени. Язык и стек технологий неограничен. В качестве тестирующей системы выступал яндекс-танк с движком phantom.


О том, как в таких условиях добраться до 13 места в финале, и будет эта статья.

Читать дальше →
Всего голосов 82: ↑81 и ↓1 +80
Комментарии 30

Подводные камни Bash

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


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Всего голосов 143: ↑141 и ↓2 +139
Комментарии 63

Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

Время на прочтение 11 мин
Количество просмотров 159K
Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



В этой статье я немного расскажу о такого рода сетях и познакомлю с парой классных инструментов для домашних экспериментов, которые позволят строить нейронные сети любой сложности в несколько строк кода даже школьникам. Добро пожаловать под кат.
Читать дальше →
Всего голосов 82: ↑75 и ↓7 +68
Комментарии 48

Глобалы — мечи-кладенцы для хранения данных. Деревья. Часть 1

Время на прочтение 5 мин
Количество просмотров 36K
Настоящие мечи-кладенцы баз данных — глобалы — давно известны, но до сих пор немногие умеют эффективно ими пользоваться или вовсе не владеют этим супероружием.

Если использовать глобалы в решении тех задач, в которых они действительно хороши, то можно добиться выдающихся результатов. Либо в производительности, либо в упрощении решения задачи (1, 2).

Глобалы — это специальный способ хранения и обработки данных, совершенно другой, чем таблицы в SQL. Они появились в 1966 году в языке M(UMPS) (эволюционное развитие — Caché ObjectScript, далее COS) в медицинских БД и до сих пор там активно используются, а также проникли в некоторые другие области, где требуется надёжность и высокая производительность: финансы, трейдинг и т.д.

Глобалы в современных СУБД поддерживают транзакции, журналирование, репликацию, партиционирование. Т.е. на них можно строить современные, надёжные, распределённые и быстрые системы.

Глобалы не ограничивают вас пределами реляционной модели. Они дают свободу для разработки структур данных, оптимизированных под конкретные задачи. Для многих приложений разумное использование глобалов может быть поистине секретным оружием, обеспечивая производительность, о которой разработчики реляционных приложений могут только мечтать.

Глобалы как способ хранения данных можно использовать во многих современных языках программирования, как высокоуровневых, так и низкоуровневых. Поэтому в этой статье я сфокусируюсь именно на глобалах, а не на языке, из которого они когда-то вышли.
Читать дальше →
Всего голосов 39: ↑28 и ↓11 +17
Комментарии 336

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Время на прочтение 8 мин
Количество просмотров 85K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Всего голосов 113: ↑112 и ↓1 +111
Комментарии 77

93 видео-лекции по Scala

Время на прочтение 4 мин
Количество просмотров 38K
В ходе подготовки спецкурса «Scala for Java Developers» под платформу онлайн-обучения UDEMY, я анализирую другие «лекционные» видео. В библиотеке накопилось какое-то количество ссылок на дельных учебные материалы по Scala (видео на английском).

Для большинства видео указано количество просмотров. Надо сделать несколько замечаний:
1. Количество просмотров не является главным критерием качества и полезности видео, но этот может служить каким-то указателем на ценность.
2. Здесь не все популярное видео, что я встречал, а лишь то, что ценно по моему личному мнению.
3. Если кто-то знает еще хорошее видео — пишите, добавлю в списки.


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

О мотивации, прокрастинации, тайм-менеджменте и других модных, но бесполезных вещах

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


Доброго времени суток, Хабр.

В последние годы, лично я, наблюдаю весьма сомнительную тенденцию проповедовать «успешный» образ жизни. Истории успеха, как и их опровержения, льются на нас как из рога изобилия: Интернет пестрит статьями и книгами по мотивации, рекламой тренингов «как стать успешным сферическим человеком в вакууме», «как правильно начать свой стартап и стать вторым Гейтсом\Джобсом\Цукенбергом» (нужное подчеркнуть), ТВ-каналы трубят об очередном появлении очередной компании, основанной в гараже или интернет-кафе, на IPO и о стремительном взлете акций в первый же день торгов.

Люди сознательно стремятся добиться каждый своих целей. Кто-то штудирует литературу, другие предпочитают использовать веб-сервисы, такие как SmartProgress и самостоятельно определять, как, что и когда делать, попутно наблюдая за другими людьми. Каждый хочет стать богатым, «успешным», знаменитым. Это называют счастьем.
Читать дальше →
Всего голосов 44: ↑28 и ↓16 +12
Комментарии 67

Перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures»

Время на прочтение 3 мин
Количество просмотров 64K
imageПривет, Хабр!

Мы (@ali_aliev и avenat) с удовольствием представляем вашему вниманию перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures» от Брэда Миллера (Brad Miller) и Дэвида Ранума (David Ranum) из Luther College, что в Айове, США.

О чём?

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

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

Одна из глав учебника посвящена рекурсии, в том числе её графическому представлению (фракталы). Разбирается несколько известных рекурсивных задач, а в конце наглядно демонстрируется, что эта методика, несмотря на её элегантность, отнюдь не «серебряная пуля».

Не обделены вниманием и классические алгоритмы для сортировки и поиска. И, естественно, для каждого из них анализируются производительность и «подводные камни», а так же даются рекомендации по применению. В последних главах, посвящённых деревьям и графам, даётся много материала об их разновидностях и связанных с ними алгоритмах. Изложение тут становится более сжатым, многие моменты просто описываются с тем, чтобы после прочтения главы читатель реализовал их самостоятельно.
Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Комментарии 19

Структура белка: введение для айтишников

Время на прочтение 17 мин
Количество просмотров 155K
Приятно видеть, что хабравчане регулярно интересуется другими предметными областями – например, биологией (более конкретно – структурой и функцией биологических макромолекул). Однако некоторые посты (например, этот), вызывают у специалиста просто физическую боль из-за обилия совершенно диких фактологических ошибок. В этом посте мне хочется рассказать о структуре и функции белка. О том, что мы знаем и о том, чего не знаем, а так же об имеющихся в этой области вычислительных задачах, требующих решения и интересных IT-специалистам. Постараюсь рассказывать сжато и тезисно, чтобы информации было больше, а воды – меньше. Всех, интересующихся структурой белков, прошу под кат, там очень много букв.
Читать дальше →
Всего голосов 146: ↑145 и ↓1 +144
Комментарии 72

Перспективные технологии и тренды до 2018 года (по материалам Forrester)

Время на прочтение 5 мин
Количество просмотров 7.7K
Новые цифровые технологии являются главной движущей силой эволюции бизнеса. В данном отчете выделены 15 технологий, которые наиболее явно воздействуют на формирование облика современного предприятия. Материал подготовлен на основе отчета Forrester: The Top Emerging Technologies To Watch: Now Through 2018 (February 07, 2013).

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

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

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность