Как стать автором
Обновить
0
0

Пользователь

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

Как сделать ссылки на методы дружелюбными для отладки

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

В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.

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

«Почему Kotlin хуже, чем Java?»

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

Такой провокационный вопрос задал реддитор nenemen в сабреддите Java:

«Я думаю о том, чтобы свой следующий проект сделать на Kotlin + Spring Boot, но мощь всенародной любви к Kotlin и одновременно ненависти к Java заставляют всё это походить на какой-то культ. Поэтому хотел бы услышать аргументы «против».

Мы в FunCorp в своё время сделали именно такой выбор в пользу Kotlin. И сегодня соотношение Java/Kotlin у нас составляет примерно 20 на 80, продолжая уменьшаться при каждом удобном случае. Поэтому ответы на этот вопрос меня заинтересовали, и я стал листать секцию комментариев. Там наткнулся на реплику реддитора rzwitserloot, которая мне показалась настолько взвешенной, многосторонней и рациональной, что я захотел поделиться ей с нашей командой, а заодно и читателями Хабра.

Далее перевод его аргументов.

Читать далее
Всего голосов 128: ↑114 и ↓14+129
Комментарии681

ДИТ Москвы, коронобесие, большие данные: преступление и наказание

Время на прочтение8 мин
Количество просмотров52K
За неделю Роскомнадзор дважды составил административные протоколы на Департамент информационных технологий Москвы: за незаконную обработку ПД и наглое вранье надзорному органу.


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

Гипотеза состояла в том, что вся эта система – сплошная профанация и нужна лишь для распила бюджета и построения «цифрового профиля» москвичей, а любой гражданин, располагая толикой изворотливости и информацией из открытых источников, может ее легко обойти. Проверка носила бескорыстный характер, так что я был целиком в белом жабо white hat.
Читать дальше →
Всего голосов 254: ↑247 и ↓7+338
Комментарии121

Что делать, если украли смартфон

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


Евгений (MalDeckard) Черешнев поделился личным опытом и написал исчерпывающий гайд, который может помочь многим людям и предостеречь от последствий:

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

Справедливости ради, большинство воров уже в курсе того, что каждый смартфон — это, по сути, радиомаяк, по которому всегда можно укравшего отследить. Поэтому они редко оставляют его включенным — практически сразу достают и выбрасывают SIM-карту, сам телефон вырубают и сдают на запчасти за копейки. Что крайне обидно — ибо шансы того, что, например, мой iPhone 12 Pro Max 512 банально разберут на экран, аккумулятор и несколько особо востребованных микросхем — стремятся к 100%. То есть, вор украл крайне дорогой девайс, а получит за него или хрен или (если он идиот) — срок. Но это не всегда так. Иногда можно получить реально грузовичок и тележку проблем. Во-первых, в ряде типов краж (как в моем случае) телефон попадает в руки плохого парня в разлоченном состоянии и есть риск, что злоумышленник девайс специально не залочит — будет держать его активированным и извлекать из него максимальную пользу, на что у него будет в теории до 24ч (после чего сработает система защиты в заводских настройках и снова попросит ввести пин-код, даже, если телефон до сих пор разлочен).
Читать дальше →
Всего голосов 133: ↑123 и ↓10+147
Комментарии486

TypeScript для конфигурации WebPack (FE and BE)

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

Когда проект зародился, то нравился каждому. Белый лист бумаги и каждый смотрел на него с ожиданием и воображал какие перспективы откроются, какие проблемы решатся.

Вот на бумагу архитектор нанес первый блок. Сзади раздалась ругань. Это разработчики, спорили...

Читать далее
Всего голосов 5: ↑4 и ↓1+7
Комментарии6

Почему нельзя просто взять и быстро произвести миллиарды доз вакцины (или можно?)

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

Почему так мало фармкомпаний занято в производстве вакцин? Что скрывает злая бигфарма?

Читать далее
Всего голосов 70: ↑67 и ↓3+90
Комментарии324

Гигиена труда оператора ЭВМ (МКМ)

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

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

Читать далее
Всего голосов 30: ↑23 и ↓7+29
Комментарии21

Тим Бернерс-Ли предлагает хранить персональные данные в подах

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии47

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Время на прочтение12 мин
Количество просмотров65K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!
Всего голосов 46: ↑40 и ↓6+49
Комментарии71

Неужели нельзя обойтись без кафок и рэббитов, когда принимаешь 10 000 ивентов в секунду

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

Однажды я вел вебинар про то, как принимать 10 000 ивентов в секунду. Показал картинку, зрители увидели сиреневый слой, и началось: «Ребят, а зачем нам все эти кафки и рэббиты, неужели без них не обойтись»? Мы и ответили: «Зачем-зачем, чтобы пройти собес!»

Очень смешно, но давайте я все-таки объясню.

 

Читать далее
Всего голосов 37: ↑30 и ↓7+36
Комментарии44

Как я готовился к собеседованию в Google

Время на прочтение9 мин
Количество просмотров50K
Каждый инженер-программист стремится впечатлить людей своим техническим мастерством. Технологические гиганты этого мира — прекрасное место для работы технарей, которые могут предоставить услуги миллиардам пользователей. На моём недавнем собеседовании было несколько раундов, я получил предложения от Google и Amazon. В последние несколько лет онлайн-сообщество очень помогло мне в подготовке к собеседованиям. В этом посте я поделюсь всем о моём пути к собеседованию и верну вклад общества в моё обучение.


Приятного чтения!
Всего голосов 40: ↑35 и ↓5+45
Комментарии77

О театре или почему всем плевать

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


На волне хайпа про РЖД я заметил, что много людей, даже из тех, кто "в теме", имеют странное представление о ситуации.


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


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

Всего голосов 161: ↑144 и ↓17+171
Комментарии352

Олды в ИТ

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

Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

 Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

Читать далее
Всего голосов 144: ↑137 и ↓7+174
Комментарии435

Элегантный Builder на Java

Время на прочтение7 мин
Количество просмотров146K
Наверняка большинство сколько-нибудь опытных программистов знакомы с паттерном Builder. Он позволяет сделать инициализацию структур данных более наглядной, гибкой при этом сохраняя такое полезное их свойство как неизменяемость (immutability). Вот классический пример с первой страницы выдачи гугла на запрос «java builder pattern example». При всех своих преимуществах, самый главный недостаток данной реализации паттерна — в два раза больше кода, по сравнению с обычным плоским бином. Если генерация этого дополнительного кода не проблема для любой популярной IDE, то редактировать такой класс становится достаточно утомительно и читабельность страдает в любом случае.
Что же делать?
Всего голосов 31: ↑21 и ↓10+11
Комментарии86

Лямбда-потрошитель

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

Хотя недавно была выпущена Java 9 с новой модульной системой, многие еще продолжают пользоваться привычной восьмой версией, с лямбдами. В течение полугода я плотно работал с ней и всеми ее нововведениями. Если с новыми методами коллекций и Optional все понятно, то с лямбдами не все так очевидно. В частности, как они реализованы и как влияют на производительность. И главное — чем они отличаются от старых добрых анонимных классов.


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии10

Поиск родственников через тест ДНК. Часть 4 – Расшифровка результата

Время на прочтение15 мин
Количество просмотров34K
Итак, вы определились для чего нам нужен ДНК-тест, выбрали в какой лаборатории будете покупать его, заказали через интернет и дождались получения. Потом вы сделали тест себе или родственникам и отправили тест обратно, перейдя в режим ожидания.

И вот спустя несколько недель мы получаем извещение на e-mail, что наш тест готов, результаты загружены на сайт и теперь можно ознакомиться с его результатом!



Что мы увидим в результатах ДНК-теста на сайте лаборатории?


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

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

Далее будут много картинок, т.к. без этого обзор будет неполноценным.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии21

Дюк, вынеси мусор! — 3. CMS и G1

Время на прочтение10 мин
Количество просмотров155K
Часть 3 - CMS GC и G1 GC

Сегодня мы продолжаем цикл статей о сборщиках мусора, поставляемых с виртуальной машиной Oracle Java HotSpot VM. Мы уже изучили немного теории и рассмотрели, каким образом с кучей расправляются два базовых сборщика — Serial GC и Parallel GC. А в этой статье речь пойдет о сборщиках CMS GC и G1 GC, первостепенной задачей которых является минимизация пауз при наведении порядка в памяти приложений, оперирующих средними и большими объемами данных, то есть по большей части в памяти серверных приложений.

Два этих сборщика объединяют общим названием «mostly concurrent collectors», то есть «по большей части конкурентные сборщики». Это связано с тем, что часть своей работы они выполняют параллельно с основными потоками приложения, то есть в какие-то моменты конкурируют с ними за ресурсы процессора. Конечно, это не проходит бесследно, и в итоге они разменивают улучшение в части пауз на ухудшение в части пропускной способности. Хотя делают это по-разному. Давайте посмотрим, как.
Посмотреть, как
Всего голосов 33: ↑31 и ↓2+29
Комментарии42

Дюк, вынеси мусор! — 2. Serial GC и Parallel GC

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


В предыдущей статье мы познакомились с терминологией и основными идеями, лежащими в основе сборщиков мусора Java HotSpot VM и многих других виртуальных машин. Теперь мы, наконец, можем взять в руки лопату и приступить к разгребанию нашей кучи. Сегодня у нас на обзоре две лопаты два сборщика мусора, используемые огромным количеством Java-программ, зачастую даже не подозревающих об этом. Это Serial GC и Parallel GC. Их популярность объясняется просто — данные сборщики выбираются виртуальной машиной по умолчанию для большинства аппаратных конфигураций.

Используемые в этих сборщиках подходы к работе с кучей в том или ином виде применяются в более продвинутых реализациях, поэтому на данном этапе нам будет очень важно разобраться с заложенными в них идеями и возможностями.
Интересно, хочу разобраться
Всего голосов 36: ↑36 и ↓0+36
Комментарии22

Дюк, вынеси мусор! — 1. Введение

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


Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?

Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Узнать
Всего голосов 36: ↑36 и ↓0+36
Комментарии7

Рецепт квантовой памяти

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


Ты никогда не сможешь забыть то, что хочешь забыть больше всего.


Однажды в студенческие годы мне попалась на глаза новость о прошедшем в Лондоне чемпионате мира по памяти. На нем люди разных возрастов запоминали тысячезначные числа, десятки колод карт и сотни номеров телефонов. Меня, как человека иногда путающего пин-код от карты, это очень заинтересовало. Я сцепил пальцы в замок и подумал, — "Такая память всегда будет хорошим доводом". И углубился в тему, а вскоре смог запоминать и воспроизводить стозначные числа и порядок карт в колоде. Так каков же он, рецепт хорошей памяти? Сейчас расскажу.

Читать дальше →
Всего голосов 20: ↑19 и ↓1+19
Комментарии47

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность