Category: еда

Category was added automatically. Read all entries about "еда".

Кофе для технофетишиста: последствия

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

Итак, для рожковой кофеварки с кофемолкой нужно место на кухне рядом с раковиной и розетками. Моя жена в своё время сделала пространство для мясорубки-тостера и оно подошло просто идеально. Если места нет, то лучше остановиться сразу. В рожковой кофеварке, которая пытается быть похожей на профессиональное оборудование, есть бойлер, много разных деталей вокруг него, корпус, аксессуары в комплекте и бренд. Всё вместе это стоит никак не меньше 40 тысяч рублей. Рекомендованная производителем кофемолка будет стоить половину от кофеварки, может чуть меньше. При этом в кафе всё равно будет стоять техника гораздо круче. И дело не только в количестве наворотов: профессиональные аппараты рассчитаны на поток клиентов и дома в этом нет никакого смысла, а вот габариты у них обычно сильно больше разумного.

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

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

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

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

Кофе для технофетишиста

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

Дегустатор из меня никакой, поэтому прошу любителей кофе высказать своё мнение по поводу альтернативных технологий. Есть кофе в чалдах, для которого есть небольшие машинки Wingkin 400 от Illy. Очень похоже на Nespresso, но непонятно, какой получается результат.

Следующая стадия — покупка автоматической кофемашины. К сожалению, их стоимость для моих объёмов стремится за грани разумного и мне явно нужно что-то с максимально обрезанными функциями: минимальным объемом бака, долгим временем нагрева и желательно в принципе без капучинатора. Возможные модели: Jura D4, Melitta Purista. Прямо скажем, цена немного выбивается за разумные рамки, стоит ли оно того? Или может есть что-то более подходяще?

Ещё есть вариант купить отдельно кофеварку и кофемолку. 2 устройства поменьше проще разместить на кухне, чем одно большое, не так страшно, если что-то поломается и будет поддержка приготовления капучино для жены и старшей дочки. Кофемолку выбрать достаточно легко, а вот выбор кофеварки ничуть не проще, чем выбор кофемашины: Lelit PL41ЕМZ, Solis Barista Perfetta и так далее. Прямо скажем, это не очень привлекательные по цене варианты, но есть ещё очень много разных моделей, описание которых на Яндекс.Маркете никак не помогает в выборе. Как вариант, можно сначала использовать чалды, а покупку кофемолки отложить на потом.

Что посоветуете?

Как делать стейки?

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

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

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

Уроки Swing

Swing используют два важных для меня проекта: IntelliJ IDEA и клиент Thinkorswim, который изменил торговлю опционами и в разработке которого мне повезло участвовать, к сожалению, очень не долго. Отметим, что в обоих случаях Swing был разобран очень крутыми ребятами на мелкие кусочки и это помогло им сделать из него конфетку, при этом многое пришлось переписать.


После работы над Thinkorswim я много лет хотел разрабатывать desktop-приложения, потому что считал, что только полноценный клиент может обеспечить удобную работу пользователей. У меня была потом пара проектов на Swing, но они сами по себе были мало интересны и особого удовольствия от них я не получил. В 2006 году я организовал встречу Swing Monsters, но никаких существенных результатов она не дала: мы поговорили о разных проблемах, но честно править разнообразную кривизну было уже поздно, потому что наверняка нашёлся бы клиент, который эту кривизну использует.

В это время веб-приложения потихоньку наращивали свои возможности, а интерфейсы становились всё более простыми и понятными. Маленькую революцию в UI совершил iPhone, но на этом рынке Java просто нет физически. Ещё немного у Swing отъел Eclipse.

И теперь, когда я уже практически перестал переживать по поводу Swing, мне снова довелось с ним столкнутся! Это два огромных приложения для одной из самых крупных в мире компаний. К сожалению, тут всё оказалось, мягко говоря, не гладко. Священная корова backward compatibility совершенно не спасла нас от отката на предыдущую версию. Если есть две реализации одного и того же метода, то в подавляющем большинстве случаев не составит труда написать код, который будет эту разницу выявлять, с чем мы и столкнулись. Богатство возможностей породило очень запутанный интерфейс, в котором с трудом разбираются и пользователи, и разработчики. Используемые сторонние компоненты внезапно оказались настолько древних версий, что уже практически не упоминаются на сайтах производителей.

Итого, можно сказать, что хорошие приложения на Swing получились только у нескольких очень хороших команд, которые вполне могли бы написать всё и на C++. А простые смертные запутались и ничего толком не сделали.

А какой у вас опыт со Swing?

Как размножаются кактусы

Мышки много лет выращивали траву, но она всё время получалась у них какая-то невкусная. В конце концов они решили обратиться за помощью к ёжикам. Ёжики сильно обрадовались: да мы вам обалденную траву вырастим: и вкусную, и красивую, и урожайную! Начали готовить контракт и видят ёжики, что мышки траву на песке выращивают. Тут энтузиазма сразу поубавилось, стали ёжики с мышками разговаривать: а не поискать ли нам другую землю, а какие качества травы вам наиболее важны? Ничего, сказали мышки, мы же раньше как-то выращивали, а другая земля не предусмотрена нашими корпоративными стандартами. Ладно, сказали ёжики, деньги в принципе хорошие, как-нибудь прорвёмся — давайте заключать контракт, но нужно будет сделать систему орошения. «А это для нас делают зайчики, они наши старые партнёры, не беспокойтесь!» — ответили мышки.

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

Выросли только кактусы.

Сообщества в маркетинге

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

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

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

Collapse )

Рефакторинг: тестирование

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

А как же знаменитые юнит-тесты? А они, извините, не работают. Я много раз видел в проекте папку с тестами, в которой содержались исходные коды разной степени компилируемости, которые даже иногда показывали какие-то результаты. Но скажите, что означают успешно отрабатывающие тесты, если код воняет в каждой строчке и невооружённым глазом видны ошибки с многопоточностью и с кодировками, а исключения методично игнорируются? Рассмотрим пример: есть тесты на парсинг XML, но: париснг сделан через SAX, что в данном случае не имеет смысла и его надо переписать на DOM, после чего он станет на порядок проще, XML из тестов не такой, как сейчас в системе, в результате парсинга хочется получать полноценный объект, а не макароны различных свойств с неправильными именами, которые есть сейчас. Получается, что существующий код должен практически полностью исчезнуть и тянуть за собой в процессе рефакторинга ещё и изменения тестов, которые уже наполовину поломаны, крайне затратно.

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

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

Потолок зарплаты

Я как-то слышал оценку, что в мире сейчас 6 миллионов Java-программистов. Думаю, как минимум миллион из них не знает, кто такой James Gosling и уж точно не больше миллиона знают, кто такой Neal Gafter. А если рассмотреть какой-то содержательный вопросы, то правильный ответ сможет дать один из ста или около того.

Спросим теперь, может ли программист в перспективе зарабатывать больше, чем он зарабатывает сейчас? Если программист среднестатистический, то ответ очевиден: чёрта с два! Хорошие условия труда, возможность как-то свести концы с концами — это будет, но деньги платить — с какого перепугу? В большинстве вакансий даже не предполагается, что программист достигнет каких-то существенных результатов, хорошо если весь проект в целом под нож не пустят. Но точно так же понятно, что люди, которые умеют запускать большие успешные проекты будут зарабатывать как «звёзды», а не в среднем по больнице.

Легко провести аналогию с другими профессиями: Аршавин зарабатывает миллионы, а сколько получают футболисты во второй лиге? Быть журналистом в Коммерсанте или в Ведомостях — это престижная и ответственная работа, но перепечатывают в районной газете тексты из чужих ЖЖ тоже журналисты, только другого сорта.

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

Getting Things Done

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

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

Но самое страшное — это когда долго капаешь на мозги коллегам о какой-то проблеме, рассказываешь про «стратегически правильно…» и «могут возникнуть сложности…», а оно вдруг так жахнет, что лучше бы ты ошибался, чем так попал пальцем в небо.