Pull to refresh
2
0
Рапацкий Владимир @Kvento

User

Send message

Как привести дела в порядок, если закончились силы

Reading time2 min
Views41K


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

Запас энергии ограничен, а в кризис или при профессиональном выгорании этот запас исчерпывается на дела и мысли. При этом, к кризису и выгоранию приводят не желаемые и вредные дела и мысли. Вот что я сделал:
Читать дальше →
Total votes 50: ↑42 and ↓8+34
Comments31

Скрамуниздили

Reading time6 min
Views14K
-Я хочу устроить панику, понятно?
-Ты там бойню устроишь, а не панику.

«Большой куш»

В течение уже достаточно долгого времени мне попадаются на глаза посты, статьи и даже целые книги, задача которых — донести до читателя советы о том, как правильно делать Скрам. Все они, в общем-то, однотипны и построены на предположении, что большинство людей некорректно понимают предлагаемые практики, их назначение и важность. В этих источниках активно доказывается, что Скрам все-таки работает, говорится о принятии ценностей, о перестроении мышления на уровне компании, о тонкостях организации митингов и прочих нюансах, которых по итогам каждый раз набирается вагон и маленькая тележка. Судя по всему, проблема действительно существует, ведь даже Кен Швабер и Джеф Сазерленд описывают Скрам как “легковесный, простой в понимании и сложный в овладении” [1]. Но только ли дело в практиках? Может быть, люди не понимают саму суть Скрама? Когда что-то начинает приносить серьезные деньги, то не секрет, что именно прибыль становится путеводной звездой этого корабля. Может быть все эти тренинги, сертификации и спешно переучивающиеся в скрам-мастеров менеджеры проектов затмили собой изначальный посыл? Вполне вероятно. Но так ли это? Данный опус — это попытка взглянуть на проблему под немного другим углом, с точки зрения больше технической, чем какой-либо еще.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments8

Никогда не принимайте контрпредложение

Reading time3 min
Views111K
Полагаю, все мы пережили смену работы, как минимум, один раз. Могут быть разные причины сменить работу: новые возможности, более высокая зарплата, проблемы с коллегами и т.д.
Я называю их «спусковым механизмом» перехода. Когда он срабатывает, то уже трудно остановиться, и тогда имеются два возможных сценария:

  • Вы начинаете искать новую работу
  • Новая работа начинает искать вас

Рано или поздно наступает момент, когда вы получаете предложение настолько привлекательное, что надо быть сумасшедшим (или глупым), чтобы отказаться от него. Приняв предложение, вы внезапно вспоминаете о такой штуке, которую называют «собеседование при увольнении». Вы вспоминаете ваши хорошие отношения с вашим нынешним работодателем и начинаете поздно вечером писать заявление об увольнении.
Читать дальше →
Total votes 100: ↑86 and ↓14+72
Comments218

Unity: сжимая сжатое

Reading time5 min
Views28K

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

Текстуры практически всегда являются наиболее значимым потребителем места как на диске, так и в оперативной памяти. Сжатие текстур в один из поддерживаемых форматов относительно помогает в решении этой проблемы, но что делать, если даже в этом случае текстур очень много, а хочется еще больше?
Что же делать?
Total votes 70: ↑69 and ↓1+68
Comments69

Как я вырос без Кодабры

Reading time10 min
Views18K

Двадцать лет назад я написал первую строчку кода: 10 CLS. Именно так, не здороваясь с миром и не представляя, что меня ждет, я ввел следом RUN и электронная машина также бесцеремонно бросила мне первый вызов, стерев все на экране телевизора с насмешкой "ОК". Я был удивлен, но не тому, что могу приказать машине что-то сделать, а тому, что она может мне отвечать. Мне было 7, и это история о непростых отношениях ребенка с компьютером, через призму лет глазами состоявшегося программиста.


Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments39

Лекции Техносферы. Подготовительный курс «Алгоритмы и структуры данных» (весна 2016)

Reading time3 min
Views39K


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

Курс ведет Сергей Бабичев, доцент кафедр информатики и вычислительной математики, а также теоретической и прикладной информатики в МФТИ. Под катом вас ждет восемь лекций:

  • Лекция 1. «Введение. Исполнители. Абстракции интерфейсов. Рекурсия»
  • Лекция 2. «Жадные алгоритмы»
  • Лекция 3. «Сортировки»
  • Лекция 4. «Поиск. Списки»
  • Лекция 5. «Деревья»
  • Лекция 6. «Хеш-таблицы»
  • Лекция 7. «Динамическое программирование»
  • Лекция 8. «Алгоритмы на графах»
Total votes 52: ↑52 and ↓0+52
Comments7

Головоломки TCP

Reading time15 min
Views50K

Говорят, что нельзя полностью понять систему, пока не поймёшь её сбои. Ещё будучи студентом я ради забавы написал реализацию TCP, а потом несколько лет проработал в IT, но до сих пор продолжаю глубже и глубже изучать работу TCP — и его ошибки. Самое удивительное, что некоторые из этих ошибок проявляются в базовых вещах. И они неочевидны. В этой статье я преподнесу их как головоломки, в стиле Car Talk или старых головоломок Java. Как и любые другие хорошие головоломки, их очень просто воспроизвести, но решения обычно удивляют. И вместо того, чтобы фокусировать наше внимание на загадочных подробностях, эти головоломки помогают изучить некоторые глубинные принципы работы TCP.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments14

Консоль разработчика Google Chrome: десять неочевидных полезностей

Reading time6 min
Views228K
Как с помощью консоли разработчика превратить Google Chrome в подобие текстового редактора? Какой смысл в ней приобретает знакомый многим по jQuery значок $? Как вывести в консоль набор значений, оформленный в виде вполне приличной таблицы? Если сходу ответы на эти вопросы в голову не приходят, значит вкладка Console из инструментов разработчика Chrome ещё не раскрылась перед вами во всей красе.

image

На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments62

Как же вы задолбали со своими оповещениями

Reading time4 min
Views68K
В одиночку против индустрии.

image

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

Я смотрю на свой телефон и вижу что-то вроде этого:

image
Facebook: Джон, вы знаете Бена Гленна?

Да, я знаю Бена. Отличный парень. Но если честно, мне не надо добавлять его в друзья. Мы разговаривали в офисе от силы три или четыре раза, я не считаю необходимым делиться с ним своей личной жизнью. Кроме того, сейчас 9:35 утра, я опаздываю на работу, и последнее, о чём я сейчас думаю, — это новые друзья на Facebook.

Очистить.
Читать дальше →
Total votes 97: ↑83 and ↓14+69
Comments163

Пара распространённых заблуждений про радиоканалы RFID и Wi-Fi (и RFID как точки Wi-Fi)

Reading time7 min
Views42K

RFID-метка для пациентов, чтобы их было видно на карте больницы

— А можете каждому строителю чип в голову вшить?
— Теоретически да, но, может быть, объясните, зачем вам это нужно?
— Они у нас стройматериалы воруют. Прямо во время работ. А так каждого будет видно, куда он там зашёл, куда не надо.

Проект решился вшиванием в форменную одежду RFID-метки, разделением стройки на зоны и дальше тем, что делается в сети при построении периметра. То есть построением профиля «белого» трафика — кто, куда и когда ходит. А потом — как на файрволле — запретили строителям всё остальное. Кражи сразу сократились. Прораб получил потустороннюю силу и видел почти каждый косяк.

А дальше каждый чёртов раз, когда я рассказываю про RFID-решение, люди начинают махать руками и путать эти метки с Wi-Fi, Bluetooth и пассивными резонирующими контурами. Одна из причин — некоторые RFID-метки действительно работают по Wi-Fi 802.11. Давайте расскажу, как это используется на практике в разных странах.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments73

Уязвимость в продуктах VMware позволяет осуществлять выполнение кода на хост-системе виртуальной машины

Reading time2 min
Views9.9K


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

Ошибка была проэксплуатирована в ходе хакерских соревнований PwnFest, которые состоялись в рамках проходившей в Южной Корее конференции Power of Community. Участники китайской группы исследователей Qihoo 360 также смогли взломать новый смартфон от Google под названием Pixel, а также Microsoft Edge и Adobe Flash, выиграв в общей сложности более полумиллиона долларов призового фонда — по данным СМИ, уязвимость VMware была оценена в $150 000.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments1

Offensive programming: параноидальное, наступательное, атакующее или беззащитное программирование

Reading time6 min
Views18K

Как сделать ваш код лаконичным и послушным одновременно?




Вам когда-нибудь встречалось приложение, которое вело себя очевидно странно? Ну, вы знаете, вы нажимаете на кнопку и ничего не происходит. Или экран вдруг чернеет. Или приложение впадает в «странное состояние» и вам приходится перезагружать его, чтобы все снова заработало.

Если у вас был подобный опыт, то вы вероятно стали жертвой определенной формы защитного программирования (defensive programming), которую я бы хотел назвать «параноидальное программирование». Защитник осторожный и рассудительный. Параноик испытывает страх и действует странно. В этой статье я предложу альтернативный подход: Offensive programming.
Total votes 29: ↑26 and ↓3+23
Comments34

Odin год спустя: Олег Мельников — о том, что произошло после покупки облачного подразделения Parallels

Reading time9 min
Views8.6K
В декабре 2015 года одно из подразделений Parallels, российской IT-компании по разработке программного обеспечения в области автоматизации и виртуализации услуг хостинга, было куплено международным дистрибьютером Ingram Micro. Сумма сделки превысила $100 миллионов. Это логическое продолжение сотрудничества, начало которому было положено еще в 2013 году, а в 2014-ом Ingram Micro стала миноритарным акционером российской компании.

В соответствии с условиями договора о покупке, платформа Odin Automation и связанные с ней технологии управления облачными сервисами, а также все права на торговую марку Odin и интеллектуальную собственность стали достоянием Ingram Micro.

С тех пор прошел почти год. Глава подразделения Odin и сооснователь компании Parallels Олег Мельников, перешедший работать в Ingram Micro после поглощения, рассказал нам о произошедших изменениях, о периоде адаптации к корпоративной культуре Ingram и планах развития подразделения на рынке облачных сервисов.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments7

Bug Inside: крохотный шанс сделать громадную ошибку на Pentium

Reading time23 min
Views26K
«Ошибка в Pentium настолько специфичная, что обычный пользователь столкнется с ней раз в 27000 лет»
— руководство Intel

«Вот вам правдоподобный сценарий, когда пользователь будет сталкиваться с ошибкой каждые 3 миллисекунды»
— Воэн Пратт (дизайнер логотипа SUN и соавтор алгоритма Кнута-Морриса-Пратта)

66 MHz Intel Pentium (sSpec=SX837) with the FDIV bug

Вопрос: Сколько нужно разработчиков Pentium чтобы вкрутить лампочку?
Ответ: 1.99904274017, такой ответ должен удовлетворить людей без технического образования.

А теперь главный вопрос: «Чем занимался Томас Найсли с начала июня до конца октября 1994 года?»
Читать дальше →
Total votes 82: ↑67 and ↓15+52
Comments30

Как устроен парсер Python, и как втрое уменьшить потребление им памяти

Reading time12 min
Views49K
Любой, кто изучал устройство языков программирования, примерно представляет, как они работают: парсер в соответствии с формальной грамматикой ЯП превращает входной текст в некоторое древовидное представление, с которой работают последующие этапы (семантический анализ, различные трансформации, и генерация кода).

КДПВ

В Python всё немного сложнее: парсеров два. Первый парсер руководствуется грамматикой, заданной в файле Grammar/Grammar в виде регулярных выражений (с не совсем обычным синтаксисом). По этой грамматике при помощи Parser/pgen во время компиляции python генерируется целый набор конечных автоматов, распознающих заданные регулярные выражения — по одному КА для каждого нетерминала. Формат получающегося набора КА описан в Include/grammar.h, а сами КА задаются в Python/graminit.c, в виде глобальной структуры _PyParser_Grammar. Терминальные символы определены в Include/token.h, и им соответствуют номера 0..56; номера нетерминалов начинаются с 256.

Проиллюстрировать работу первого парсера проще всего на примере. Пусть у нас есть программа if 42: print("Hello world").
Читать дальше →
Total votes 122: ↑116 and ↓6+110
Comments68

6 концепций функционального программирования. Польза и примеры использования

Reading time9 min
Views40K
Доброго времени суток! Меня зовут Иван Смолин, я разработчик мобильных приложений на платформе iOS. Сегодня предлагаю вам окунуться в мир функционального программирования. Статья носит по большей части теоретический характер, нежели практический. В ней я постараюсь дать определения основным понятиям функционального программирования и покажу примеры реализации на C, Objective-C, Swift, Haskell.

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

Существует 6 основных концепций:

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

Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments27

Security Week 44: zero-day в Windows, уязвимость в ботнете Mirai, серьезные дыры в MySQL

Reading time5 min
Views10K
У нас очередная неделя патчей с нюансами. Начнем с очередной новости про ботнет Mirai, использовавшийся для минимум двух масштабных DDoS-атак. Благодаря утечке исходников эта казалось бы одноразовая история превращается в масштабный сериал с сиквелами и приквелами. На этой неделе появился еще и спин-офф: исследователи из Invincea Labs откопали в атакующем коде Mirai три уязвимости (подробно в этой новости или в оригинальном исследовании).

Самая серьезная уязвимость приводит к переполнению буфера в коде Mirai. Проблема заключается в некорректной обработке заголовка HTTP Location, который может присутствовать в ответе атакуемого сервера. Код отвечает за удаление префикса http:// из полученной строки. Сделано это очень просто: берем длину строки и вычитаем из нее количество знаков префикса (семь штук). Если подсунуть в ответе очень короткий заголовок Location (из пяти символов), то у нас получится отрицательное число (5-7 = -2), что и приводит к переполнению буфера и сбою.

Важный момент: сбой происходит в процессе, выполняющем атаку. То есть можно таким образом прекратить атаку с зараженного устройства, но не выключить его из ботнета. В общем, получается какая-то очень знакомая, но перевернутая ситуация. Если бы речь шла о легитимной программе, мы бы говорили о «критической уязвимости, которая может быть легко эксплуатирована злоумышленником с помощью специально подготовленного ответа на http-запрос» или как-то так. Срочно патчить! А тут? По идее, наоборот, появляется возможность эффективно гасить атаки. Но возникает вопрос морально-этического плана: а не является ли эта процедура «взломом в ответ на взлом»?
Total votes 25: ↑25 and ↓0+25
Comments2

Дональд Кнут: про Ричарда Фейнмана, награды и алгоритм КМП

Reading time7 min
Views11K
Кнут — первый, кто получил премию имени Грейс Мюррей Хоппер. Еще среди его ачивок — медаль фон Неймана, Тьюринга, премия Киото и Национальная научная медаль США.



«Я думаю, что награды играют важную роль в жизни человека, как подтверждение того, что другие люди ценят вашу работу. Несмотря на то, что наша работа в большинстве случаев интересна, порою она тяжелая и приятно осознавать, что она ценится. Таким образом, вручение награды является хорошей традицией.»
Total votes 25: ↑22 and ↓3+19
Comments3

Разработка ядра Linux держится на электронной почте

Reading time9 min
Views39K

Как бы вы руководили разработкой крупнейшего проекта с открытыми исходниками, в котором порядка 15 тыс. разработчиков и 222 компании вносят более 12 тыс. изменений между релизами или 7 / 8 правок каждый час? Чем пользуются создатель кернела Линус Торвальдс, мейнтейнер стабильной ветки Грег Кроа-Хартман (GKH) и другие товарищи, чтобы успешно координировать работу проекта и обеспечивать своевременный выход каждой новой версии?



Этим чудо-инструментом является текстовый клиент электронной почты: Mutt у GKH и Alpine у Линуса Торвальдса. Третий по рангу разработчик ядра Эндрю Мортон, также вовсю использует электронку для управления mm веткой.

With the wide variety of more “modern” development tools such as github, gerrit, and other methods of software development, why is the Linux kernel team still stuck in the 1990’s with ancient requirements of plain text email in order to get patches accepted? This talk will discuss just how the kernel development process works, why we rely on these “ancient” tools, and how they still work so much better than anything else.[1]
Попробуем разобраться, как это могло случиться. Какова роль технологического фактора и личностного? Может быть текстовый емайл действительно идеальное средство координации сверх-сложных проектов?

mutt или github
Total votes 50: ↑49 and ↓1+48
Comments75

Сколько зарабатывает программист в Москве по мнению ФНС

Reading time3 min
Views84K

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


5 000 000 рублей в год или 417 000 рублей в месяц зарабатывает московский предприниматель, оказывающий услуги по разработке компьютерных программ и баз данных. Если же он ещё и компьютеры ремонтирует, то его доход удваивается и достигает заветной круглой цифры в 10 000 000 рублей. Такие суммы потенциально возможного годового дохода IT-специалиста приводятся в законе г. Москвы от 31.10.2012 № 53 «О патентной системе налогообложения».
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments175

Information

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