Pull to refresh
62
0.7
Дмитрий Федорков @Fedorkov

Программист

Send message
Лучше никакой не пить) Вообще. Это проблема всех сладких жидкостей. Они быстро пролетают в желудок за несколько глотков, только чуть-чуть омывая по пути рецепторы сладкого. В итоге нет ощущения, что сожрал полстакана сахара.

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

На самом деле в Qt оно прекрасно работает и на X11. Во всякие гетека нормальную поддержку per-monitor DPI не завозят исключительно из-за лобби этого самого вейланда.


Собственно на текущий момент единственная проблема нормально реализовать per-monitor DPI в тулкитах связана с отсутствием общесистемного места, где мониторам можно было бы настроить из DPI.

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


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


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


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


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


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

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

Физический труд, наоборот является хорошей профилактикой депрессии. По физиологическим причинам и потому, что результат деятельности предсказуем. Это убеждает человека в том, что ответственность за результат на нём. Ситуации, когда ты делаешь все правильно, а получается не так как нужно — стрессогенны.

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

Более того, были исследования (не наду ссылок, т.к. лень) в которых роль ответственности была измерена и приводила к удлинению жизни. Кратко суть: в доме престарелых на одном этаже старики жили по готовому расписанию и уход за комнатными растениями осуществлял персонал, на другом этаже растения раздали и сказали, что с ними могут делать что угодно, а еще старикам предложили самим формировать расписание и распорядок. В итоге «самостоятельные» жили дольше.

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

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

Хочу в завершении привести слова Виктора Франкла, психолога, прошедшего концлагерь и потерю родных:
Стремление найти смысл жизни является главной мотивирующей силой в человеке… Я не побоюсь сказать, что в мире не существует более действенной помощи для выживания даже в самых ужасных условиях, чем знание, что твоя жизнь имеет смысл.
При branch prediction есть фаза вычисления фактического адреса для прыжка, поэтому рекомендуют использовать addressing modes для операндов вместо вычисления адреса с помощью арифметических операций (включая LEA), тогда затраты на эту фазу будут околонулевые (относительно трат тактов на микрооперации). А сами операции переходов, включая условные и безусловные переходы, CALL и RET, детектятся по маске при извлечении из L1-кэша инструкций (если не найдено в µops decoder cache).

Кстати, рекомендую поиграть в игры и туториалы, связанные с моделированием процессоров, такие, как MHRD, nand2teris, nandgame и подобные, чтобы понять, как работает декодер инструкций (по факту — самая менее затратная часть процессора по количеству элементов), и как группируются разнообразные инструкции в их битовом представлении.
Компьютерные системы, в том числе операционные, можно разделить на две крупные категории:
  • Инструктивные — системы, задачи в которых решаются путем выполнения последовательности действий. Одна задача — одна инструкция
  • Проектные — системы, в которых предоставленно множество инструментов, комбинация которых приводит к решению задач

Как не сложно догадаться к первой категории относятся системы типа Windows, ко второй множество дистрибутивов GNU/Linux.

Казалось бы инструктивные системы куда лучше проектных, так как там есть четкие инструкции по работе с ними. Если появляется задача, она решается с помощью конкретного алгоритма действий пользователя. Нужно напечатать документ, нажимаете Файл > Печать > Ок и получаете результат. Шикарно, не так ли? В определенной степени. Пользователи инструктивных систем чаще всего слабо подкованы к изменениям или ошибкам в инструкциях. Если точное повторение инструкции не приводит к результату, пользователь впадает в ступор.

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

Приведу пример. Я давно увлекаюсь мапермэйкингом под Warcraft III. Отличный редактор уровней заинтересовал меня довольно давно, но я всегда страдал от их редактора триггеров. Мне никогда не нравилось программировать мышкой. К сожалению в интернете я не нашел решения этой проблемы. Есть инструменты, но на деле это всего лишь парочка фишек, который добавляются в стандартный редактор, не более того. Спасибо Linux и Vim, они научили меня решать задачи с помощью доступных инструментов. Я нашел утилиту для распаковки MPQ архивов, написал плагин для Vim, прикрутил подсветку синтаксиса и вуаля, пишу скрипты для карт прямо из Vim со сниппетами и дроблением на файлы. Если бы я был пользователем инструктивных систем, ничего такого сделать бы не смог.

О чем это я?
Надо всегда разбираться и делать, как правильно, а не как быстрее.

Когда вы разобрались в задаче и сделали все правильно, вы сможете решать схожие задачи, а так же результат будет куда лучше. Если вам нужно быстро накатить ОСь и игрушку на нее для работы вашего сынишки/дочурки, то Windows прекрасно подойдет, но если вы хотите пользоваться операционной системой, а не предлагаемыми инструкциями, то проектные операционки несколько лучше.
Да, и улыбочки одноглазого ン.
Я люблю такую аналогию.

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

Linux — это мой гараж, в котором из стен торчат трубы и провода, но в котором всегда всё под рукой. При желании я могу сделать из гаража ремонтную мастерскую или репетиционную базу, или вообще всё сжечь к чёрту.
Сегодня ночью дочитал «Атланта». В этой книге ровно две интересные мысли:

1. Правильно построенный капитализм является меритократией.
2. Инженерное дело и менеджмент способны вдохновлять ничуть не меньше, чем творчество.

И всё. Эти две мысли размазаны по полутора тысячам страниц литературного бреда. Претензии к художественной части по порядку:

1. Почти все жители США умственно отсталые; это прямо подтверждается диалогами, а косвенно — тем, что уход каждого надсмотрщика вызывает моментальный коллапс соответствующей сферы деятельности. Политики абсолютно безразличны к тому, что случится через неделю, даже если их расстреляют. Убеждённые социалисты — все как один страдают маниакальным синдромом, на любой вопрос отвечают угрозами и самооправданиями.

2. Главные персонажи, хоть и обладают относительно здоровой психикой (не считая комплексов), описаны абсолютно неправдоподобно:
a) Сама Айн Рэнд — гуманитарий, который пытается угадать переживания великих инженеров, и попадает пальцем в небо. Настоящие технари формулируют для себя мотивы и приоритеты, и последовательно следуют им; мнительные личности вроде Реардэна к ним не относятся. Не может «сделавший себя сам» сталелитейный магнат столько лет тупить, не отрефлексировав свои моральные принципы, и позволяя своей семье издеваться над ним; а человек с неустойчивой психикой не может стать магнатом.
b) Айн Рэнд переборщила со своим идеалом «настоящего мужчины»: три принца на белых конях (д'Анкония, Реардэн, Галт) по очереди влюбляются в главную героиню, уестествляют её и скромно уступают следующему (Галт был последним, поэтому период скромного ожидания пришлось добавить отдельно). Это поведение омега-самца с комплексами, а не великого промышленника.
c) Главные персонажи — телепаты. Очень много фраз типа «его лицо было абсолютно непроницаемым, но она увидела в его глазах [2 абзаца описания мыслей и чувств героя]».

3. Толпа трудноотличимых между собой отрицательных персонажей против кучки абсолютно идентичных положительных. Атака клонов, блин. Рэнд не удосужилась даже придать героям мужские и женские черты, за исключением постельных предпочтений. Единственный «серый» персонаж во всей книге — доктор Стадлер.

4. И тропинка, и лесок, в поле — каждый колосок… И каждый долбаный колосок удостаивается своего художественного описания на абзац-другой. Автор тратит столько высокопарных слов на банальности, что вызывает девальвацию своих слов в глазах читателя (по-простому это называется пустобольством). Та же претензия и к идейной части: вдохновляющая идея, выраженная в пламенных словах — это круто; но когда одна и та же идея озвучивается уже в тридцатый раз, это наводит на мысль, что автор страдал обсессией.

Вывод: рекомендую к прочтению первую книгу; две другие лучше читать в кратком пересказе — ничего не потеряете.
Криво написанные программы перевоспитали нацию?..
Да чего уж там. В центре yota пользоваться без туннелей за пределы этого «провайдера» нереально.
На старицах не загружается половина картинок или вообще страница не загружается (виною балансировшик нагрузки).
Но как только все отправляешь в крипто туннель, то все начинает летать, доступна полная скорость, даже музыка из vk начинает работать, а не загружать 10 секундными отрывками, раз в 20 секунд.
«Пари» (Я. И. Перельман, «Живая математика»)
— То есть какова вероятность, что первые десять прохожих все подряд окажутся мужчинами? Вычислим, как велико произведение десяти половинок. Это 1/1024, менее одной тысячной доли. Значит, если вы бьётесь о заклад, что это случится, и ставите 1 рубль, то я могу ставить 1000 рублей за то, что этого не произойдёт.
— Выгодное пари! — заявил чей-то голос. — Я бы охотно поставил рубль, чтобы получить возможность выиграть целую тысячу.
— Но имеется тысяча шансов против вашего одного, учтите и это.
— Ничего не значит. Я бы рискнул рублём против тысячи даже и за то, что сотня прохожих окажутся все подряд мужчинами.
— А вы представляете себе, как мала вероятность такого события? — спросил математик.
— Одна миллионная или что-нибудь в этом роде?
— Неизмеримо меньше! Миллионная доля получится уже для 20 прохожих. Для сотни прохожих будем иметь… Дайте-ка, я прикину на бумажке. Биллионная… Триллионная… Квадрильонная… Ого! Единица с тридцатью нулями!
— Только всего?
— Вам мало 30 нулей? В океане нет и тысячной доли такого числа мельчайших капелек.
— Внушительное число, что и говорить! Сколько же вы поставите против моего рубля?
— Ха-ха!… Все! Все, что у меня есть.
— Все — это слишком много. Ставьте на кон ваш велосипед. Ведь не поставите?
— Почему же нет? Пожалуйста! Пусть велосипед, если желаете. Я нисколько не рискую.
— И я не рискую. Не велика сумма рубль. Зато могу выиграть велосипед, а вы почти ничего.
— Да поймите же, что вы наверняка проиграете! Велосипед никогда вам не достанется, а рубль ваш можно сказать уже в моём кармане.
— Что вы делаете! — удерживал математика приятель. — Из-за рубля рискуете велосипедом. Безумие!
— Напротив, — ответил математик, — безумие ставить хотя бы один рубль при таких условиях. Верный ведь проигрыш! Уже лучше прямо выбросить рубль.
— Но один-то шанс все же имеется?
— Одна капля в целом океане. В десяти океанах! Вот ваш шанс. А за меня десять океанов против одной капельки. Мой выигрыш так же верен, как дважды два — четыре.
— Увлекаетесь, молодой человек, — раздался спокойный голос старика, все время молча слушавшего спор. — Увлекаетесь…
— Как? И вы, профессор, рассуждаете по-обывательски?
— Подумали ли вы о том, что не все случаи здесь равновозможны? Расчёт вероятности правилен лишь для каких событий? Для равновозможных, не так ли? А в рассматриваемом примере… Впрочем, — сказал старик, прислушиваясь, — сама действительность, кажется, сейчас разъяснит вам вашу ошибку. Слышна военная музыка, не правда ли?
— Причём тут музыка?.. — начал было молодой математик и осекся. На лице его выразился испуг. Он сорвался с места, бросился к окну и высунул голову.
— Так и есть! — донёсся его унылый возглас. — Проиграно пари! Прощай мой велосипед…
Через минуту всем стало ясно, в чем дело. Мимо окон проходил батальон солдат.

По сабжу — я в детстве любил иногда сортировать колоду карт. И думаю, я был не единственным.
UFO landed and left these words here
Угу. Что печально. Мне кажется перспективным направление ГМ-бактериофагов. Я как-то работал с ними. Восторг просто. Массовая эпидемия среди бактерий и рана быстро очищается. Причём для человека абсолютно безвредны из-за сверхузкой направленности и проникают с кровью, мочой и всем прочим повсюду. Эволюция против эволюции.
UFO landed and left these words here
UFO landed and left these words here
А если посмотреть на стайлгаид гуглa — динозаврики, ни дать ни взять:

google-styleguide.googlecode.com/svn/trunk/cppguide.xml

То же и с Qt, mozilla, многими другими проектами.
Пример довольно успешного пректа, мощно использующего фичи С++ — llvm.org
Рекомендую к прочтению кода. Лучше многих книг.
Не, я понимаю, что меня троллят, и всё же отвечу ;-)

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

Золотистая корочка — это понятие при жарке мяса. Что такое мясо? Это фрагмент живой ткани, наполовину состоящей из воды. Внутри мясо содержит много капилляров, по которым эта вода во время жарки будет вытекать и испаряться. Если вся вода испарится, мясо получится сухим и жёстким. Чтобы она не вытекала и осталась внутри на всё время готовки, надо эти капилляры на поверхности мяса закупорить. Для этого включают большой огонь и как можно быстрее сообщают поверхности много тепла. Большой огонь нужен, чтобы тепло не успевало проникнуть в середину блюда и изменило только его поверхность. Уже потом включают малый огонь и на нём уже готовят до конца. Это делается, чтобы доставка тепла к середине и поверхности блюда была равномерной, чтобы мясо приготовилось на всей его толщине.

Так вот. Состояние поверхности мяса, когда сосуды закупорены, визуально выглядит как корочка. Если подольше обжаривать, корочка станет коричневеть. До этого доводить не надо, т.к. при дальнейшей готовке, когда прожарится середина мяса, корочка станет чёрной и (внезапно!) невкусной. Состояние, до которого надо обжаривать, называют золотистой корочкой. Это не значит, что надо стоять со спектрометром или снимать RGB.

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

Давать точные количества ингредиентов и точное время приготовления бесполезно по трём причинам. Во-первых, плюс-минус 30% ингредиентов в большинстве случаев незначительно повлияют на результат. Во-вторых, от того, какие конкретно продукты у вас есть, будет зависеть и их приготовление. Например, каменная соль намного солёнее, чем йодированная. А последняя ещё и распадается при термической обработке. И, в-третьих, время приготовления зависит от характеристик вашей плиты и посуды — у всех разные теплопроводность, теплоёмкость и теплопотери. Какая-то очень инертная и долго нагревается, зато потом не остудишь. Какая-то мгновенно нагревается, зато требует посуду с толстым дном. Можно в рецептах писать: «Сообщите мясу 600 кДж тепловой энергии с таким распределением, чтобы плотность тепла на объём продукта на поверхности была в 4 раза выше, чем в середине». Хрен измерите. Гораздо проще написать про золотистую корочку.

Надо просто понимать физику процесса, которым вы занимаетесь, и иметь немного практики, чтобы визуально/по запаху/на вкус определять, что сейчас происходит у вас на плите. Уверяю, что проблемы, с которыми сталкивается программист во время работы, гораздо сложнее.
В общем ничего сложного в заказе в Финляндию:
заказываю все из Америки, с любых магазинов (карта Visa Classic либо пейпал) на адрес shipito.com. После этого консолидирую все в одну большую посылку и доставляю до востребования (poste restante англ.) на центральное почтовое отделение Лапеенранты, что близ границы.

Вот адрес, который нужно указывать:

Poste Restante
53100 Lappeenranta
Finland


Если посылка до 150 баксов — забираю на почте, если больше — забираю в Tulli Customs (почтовая таможня), находится как раз по дороге к Лаппеенранте. На границе просто смотрят что все ок, и я не везу наркотики, змей, оружие, алкоголь и прочее запрещенное, и пропускают. Из расходов — только 1000 рублей туда-обратно на дорогу, при этом сама доставка посылки дешевле чем в Россию.

Только не забывайте что для посылок больше 150 баксов — нужно иметь с собой немного налички (30% от стоимости), чтобы оплатить залог за посылку. Этот залог вам вернут на границе у кабинки Tax Free.

Вот здесь расписано подробно:
ru.shipito.com/lappeenranta/

PS: Советую заранее заполнить на сайте финской почты декларацию — сэкономите примерно час времени в финляндии :)
1

Information

Rating
1,499-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity