Pull to refresh
6
0
Александр Щетинин @Alxdhere

User

Send message

Нельзя просто так взять и выбрать Any() или Count для проверки коллекции

Level of difficultyMedium
Reading time8 min
Views9.3K

Сравнивая различный code-style в проектах, я упоминал про методы проверки коллекций на наличие элементов. Самые очевидные способы – это использование LINQ-метода Any() или сравнение свойства Count с нулем. И если вы выбрали первый вариант, то у вас могут быть проблемы. Поэтому предлагаю подробнее рассмотреть этот вопрос. Кстати, если вы выбрали второй вариант, то у вас тоже могут быть проблемы.

Читать далее

Кликджекинг по двойному щелчку. Новый приём обманного UI

Reading time4 min
Views2.6K


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

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

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

Эти CSS-техники устарели

Level of difficultyMedium
Reading time6 min
Views19K


Привет, Хабр!


Общаясь с коллегами, я заметил, что они незнакомы с последними возможностями CSS. Как обычно, у всех свои причины. У кого-то много повседневной рутины. Кому-то в принципе неинтересно, что нового происходит в CSS. А кто-то по привычке использует подходы десятилетней давности и ему норм.


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


Давайте посмотрим, что я вам подготовил.

Читать дальше →

Обманчивая простота капитализма

Reading time7 min
Views16K

Привет, друзья! Суть капитализма описывается простой формулой: произведи товара, потратив 100 рублей, продай полученный товар за 110 рублей. Разницу в 10 рублей положи в карман.

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

Сегодня мы поговорим о важности рынков сбыта при капиталистическом укладе.

Читать далее

Почему гражданам запретили покупать USDT за рубли и доллары

Reading time4 min
Views90K


C 26 мая 2025 года вступают в силу расширенные требования ЦБ к иностранным цифровым правам (ИЦП), в результате чего физлицам запрещено покупать USDT и другие стейблкоины.

USDT — популярный и надёжный стейблкоин. В нём удобно производить расчёты, переводить деньги друзьям, рассчитываться за услуги, покупать товары.

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

Excel, будь ты проклят: “1/2”+1=45660

Reading time5 min
Views46K

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

Одно из самых интересных дел, которыми мне приходится заниматься на работе — это обратная разработка Excel. Я выискиваю причуды в его поведении и решаю, как поступать с ними в нашем фирменном табличном редакторе. Благодаря моему повседневному труду, наши пользователи, возможно, и не подозревают, сколько недокументированных грехов совершила Microsoft ради совместимости. Приглашаю вас одним глазком взглянуть на те ужасы, с которыми мне приходится тягаться — и тогда вы тоже станете бояться Microsoft Excel — не потому, что чего-то не знаете, а наоборот, так как знаете слишком много.

Читать далее

Почему окружность и гипербола — это почти одно и то же? Кривые второго порядка и немного космоса

Reading time6 min
Views14K

Привет, меня зовут Диана, я математик, а еще пишу для хабраблога МТС. В прошлый раз публиковала задачу про адвент-календарь — спасибо всем, кто решал и комментировал! А сегодня хочу немного рассказать про милый моему сердцу кусочек математики — часть аналитической геометрии, которая повествует о кривых второго порядка.

Кривые второго порядка — это не просто красивые абстракции. Они прочно вплетены в вашу повседневность: параболы помогают сфокусировать сигнал вашего Wi-Fi, гиперболы — определить ваше местоположение, а эллипсы — это орбиты спутников.

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

Читать далее

Червь, которого не может взломать ни один компьютер

Level of difficultyMedium
Reading time9 min
Views7.6K

Когда я запустила первую симуляцию червя, ветра Санта-Аны дули уже сильно. Я не хакер, но это было просто: открываешь оболочку терминала, вставляешь команды из GitHub и наблюдаешь за бегущим по экрану каскадом символов. Совсем как в фильмах. Пока я искала в пролетающем перед глазами коде узнаваемые слова — neuron, synapse — ко мне подошёл друг, чтобы пойти со мной на ужин. «Секунду. Я тут прогоняю на компьютере червя», — крикнула я ему из офиса.

В корейском ресторане царил хаос: ветер клонил пальмы и гонял магазинные тележки по парковке. Атмосфера казалась сюрреалистичной, похожей на подкаст, проигрываемый с удвоенной скоростью. «Чем ты там занимаешься? Киберпреступлениями?», — спросил друг. Я попробовала ему объяснить: «Нет, не червя типа Stuxnet. Настоящего живого червя».

Когда я добралась домой, было уже темно, а в Альтадене уже загорались первые искорки пожаров. На моём ноутбуке меня ждал червь в объёмной пиксельной коробке. Заострённый с обоих концов, он висел в тумане из частиц, странно прямой и неподвижный. Разумеется, он никогда не был живым. Но мне он казался мертвее мёртвого. «Браво», — сказал мне Стивен Ларсон, когда я написала ему тем же вечером, — «вы добились состояния «hello world» в симуляции».
Читать дальше →

Телефонист. Фантастический рассказ

Level of difficultyEasy
Reading time17 min
Views4.7K

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

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

Основная проблематика: настолько китайская комната является китайской. Можно ли качественное копирование поведения без стоящего за ним интеллекта считать личностью или нет.

Текст рассказа

Переключение между контекстами убивает эффективность разработчиков на корню

Reading time10 min
Views30K

Я программист. Меня всё время отвлекают, и я хочу об этом поговорить.

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

Каждое короткое сообщение, которое вы отправляете коллеге в Slack, отнимает у него 23 минуты продуктивной работы. И это далеко не всё.

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

Читать далее

DEC. История в лицах. Часть 2

Level of difficultyEasy
Reading time12 min
Views2.5K

«Волновалась ли супруга, когда мы начинали бизнес? Нет, она никогда не волновалась. Понимаете, мы, наверное, пришли из немного иного мира: в Депрессию у тебя ничего и не было, и ты не волновался о том, чтобы иметь что-то еще. Жена же пережила две войны в Финляндии и большую часть ее жизни еда в ее доме не всегда была в достаточном количестве. То есть у нас особо ничего не было, так что мы ни о чем и не волновались. Да и зарплата была той же, что в Lincoln Labs, так что о рисках мы тоже не думали»
K. Олсен

Радостно, что эта статья успела выйти в 99-й день рождения Кеннета Олсена. Ну, а мы продолжаем.

Читать далее

Приезжайте к нам в Германию, у нас айтишники живут в коммуналках и пляшут с бубном, чтобы выжить

Level of difficultyEasy
Reading time13 min
Views61K

За 6 лет я успела поработать IT-шником в Siemens, SAP и Delivery Hero. Я несколько раз меняла жилье и переехала из Мюнхена в Берлин. Мне есть с чем поделиться. В статье я расскажу, как в Германии искать работу и жилье, сколько стоит здесь жить, как получить визу и медицинскую страховку. Расскажу про немецкую бюрократию, налоги и почему даже айтишники с высокими зарплатами часто живут в коммуналках.

Читать далее

Dependency Injection под микроскопом: углубленный разбор DI-контейнера Angular с примерами

Level of difficultyMedium
Reading time7 min
Views3.5K

Angular предоставляет мощный механизм Dependency Injection (DI), который делает приложения модульными и тестируемыми. В этой статье мы рассмотрим базовые механизмы работы DI-контейнера Angular, разберем иерархию инжекторов, ключевые роли @Injectable и @Optional, а также рассмотрим создание кастомных провайдеров и их применение в сложных проектах.

Читать далее

Калькулятор? Да его напишет кто угодно

Level of difficultyEasy
Reading time7 min
Views50K

[Прим. пер.: на Хабре уже был перевод этой статьи, но незавершённый примерно на четверть.]

Неправда.

Калькулятор должен показывать результат введённого математического выражения. А это намно-о-ого сложнее, чем кажется.

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

На изображении выше показан калькулятор из iOS.

Заметили что-нибудь?

Он посчитал неправильно.

(10100) + 1 − (10100) равно 1, а не 0.

Android считает правильно. А причина, по которой он это делает, абсолютно безумна.

Читать далее

RxJS за пределами базового использования: как писать свои операторы

Level of difficultyEasy
Reading time6 min
Views1.3K

RxJS (Reactive Extensions for JavaScript) — мощный инструмент для работы с асинхронными потоками данных, который используется во многих современных веб-приложениях. Хотя RxJS предоставляет богатую коллекцию операторов, иногда для решения специфических задач бывает необходимо писать свои собственные. Это позволяет избежать дублирования кода и повысить читаемость программы.

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

Читать далее

Фрактальный декоратор в C#

Reading time6 min
Views4.9K

Привет, Хабр!

Сегодня разберём паттерн «Фрактальный декоратор» — способ рекурсивного декорирования объектов, позволяющий динамически добавлять уровни логики без изменения базового кода.

Читать далее

DEC. История в лицах. Часть 1

Level of difficultyEasy
Reading time13 min
Views6.8K

Когда товарищ и коллега @ereinion предложил написать серию статей о digital, я понимал, что предстоит огромная работа. Но самое сложное будет – уместить выжимку из чудовищных объёмов информации в несколько статей.

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

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

В конце концов, процесс написания статей о DEC невозможно закончить, его можно только остановить.

Читать далее...

Эволюция рабочего места одного программиста

Level of difficultyEasy
Reading time8 min
Views57K

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

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

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

Читать далее

В Испании все программисты сеньоры

Level of difficultyEasy
Reading time14 min
Views54K

Моя текущая позиция и аутсорсы последних пяти лет на 90% были в западных gamedev студиях, соответственно и общение было преимущественно с не‑ру коллегами. А когда надолго отрываешься от славянских коллективов разработки, то отличия начинают проявляться очень четко, начиная от модели управления командой и заканчивая культурой разработки. Хотя вот культурой я бы это не назвал, скорее плясками варваров‑полуиндусов на останках штатовской империи софтостроения. Индийцы тут ни при чем, а вот практики и сам процесс написания кода очень попахивает этими жителями полумифической страны Индустана. Есть немало книг по истории развития игровой индустрии и истории успехов и провалов разных студий, в основном западных, оставлю в статье список самых интересных и захватывающих, если решите углубиться в историю (кому интересно, будет под спойлером).

Одна из последних — «Not All Fairy Tales Have Happy Endings» (Ken Williams), мемуары одного из основателей Sierra On‑Line, прочитана была около года назад и понравилась больше других, наверное потому, что читая книгу — я, наконец, понимал большинство решений и причин которые привели к тому или иному результату. Этого понимания точно не было десять лет назад, это сложно объяснить, если не работал непосредственно сам долгое время с людьми с иным образом мыслей, культурным кодом, как сейчас принято говорить. Нынешняя команда на 95% франко‑испано‑английская — австралийцы, немного европейцев и американцы. В студии по‑русски говорят трое, включая меня. До этого в карьере были по большей части все же ру‑студии с привычным менталитетом, пускай и под управлением все тех же американцев, но менеджмент скрадывал все огрехи и брал «разговоры как надо» на себя, а нам доставались только технические задачи, грамоты и иногда премии. Десять лет назад, придя в индустрию создания игр, я не задавался вопросом — чем отличаются мои таски, мой код, мои идеи от тасок, кода и идей Джона из Кемпбеловки под Сан‑Хосе, потому что вокруг были все «свои». Сейчас уже тоже все «свои», но те «свои», от этих «своих» отличаются примерно — всем.

Читать далее

Как УК «Кузбассразрезуголь» за пять дней разработала в nanoCAD GeoniCS проект участка тепловой сети

Reading time3 min
Views1.5K

Как с помощью nanoCAD GeoniCS УК «Кузбассразрезуголь» выполнили весь проект по инженерным сетям за пять дней.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity