Как стать автором
Поиск
Написать публикацию
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Место у окна

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров110

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

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

Разница поколений и разный опыт — всё это влияет на то, как мы думаем, как работаем, как спорим. Порой я ловлю себя на мысли: а что думают они о человеке N? Почему-то снова вспоминаю слова Романа Елизарова:

«Есть категория людей, которые хорошо мотивируются соревновательным моментом… И благодаря ICPC появились многие IT‑специалисты, которые вместо того, чтобы гулять и прожигать жизнь, день и ночь изучали алгоритмы… и получались такие сильные программисты, которых нигде не сыщешь.»

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

Читать далее

Новости

Уязвимости XXE в разрезе Java

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров205

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

Читать далее

Тест батареек SAYDO

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров491

В продаже появились батарейки нового бренда SAYDO (Сайдо). Я изучил и протестировал два типоразмера батареек этого бренда - AA и AAA.

Читать далее

Как я сделал универсальный Skeleton‑View с shimmer‑эффектом в SwiftUI

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров96

Привет! Я — iOS‑разработчик, и недавно в своём приложении столкнулся с задачей: нужно было красиво показывать placeholder‑загрузку интерфейса. Думал использовать стандартный .redacted — но он неудобен: нет анимации, мало кастомизации. Либо подгружать тяжелую библиотеку вроде SwiftUI‑Shimmer. Решил: сделаю свой легковесный и гибкий подход — и расскажу вам, как это получилось.

Читать далее

Сопроводительное письмо: пережиток времени или шанс на оффер?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров243

К сопроводительному письму часто относятся как к пережитку времени, считая необязательным. А если письма и пишут, то, по моей практике, в 80% это безумно скучный и шаблонный текст. В этом, на мой взгляд, есть проблема, которую мне хотелось бы исправить. Поскольку хорошее сопроводительное письмо – лучший инструмент, чтобы выделиться. 

Давайте разберемся, почему так происходит. Когда письмо действительно работает, а когда наоборот отталкивает? 

Читать далее

Небольшие бренды много хотят, а крупные бренды—знают, чего хотят

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров152

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

В настоящее время я работаю в команде Astra Configuration Manager (ACM). Эта платформа для централизованного управления инфраструктурой охватывает такие задачи как инвентаризация, массовое развертывание операционных систем, установка обновлений и мониторинг состояния рабочих мест. Работа над ней позволяет мне лучше понять, какие навыки и подходы необходимы разработчикам в реальных условиях.

Я заметил, что для многих начинающих айтишников, особенно для разработчиков без опыта, поиск работы становится важным и порой стрессовым этапом. Вы, возможно, слышали, что устроиться на позицию Middle-специалиста иногда проще, чем на Junior. Это утверждение вызывает много вопросов: действительно ли дело только в низком спросе на Junior? Давайте попробуем разобраться вместе.

Читать далее

Почему мы учим английский неправильно и как надо

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров553

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

Если кратко — то я его сделала потому, что лично мне его не хватало! Несколько лет искала простое приложение-тренажёр, с которым можно будет отрабатывать грамматические паттерны языка, где не будет никаких лишних действий и кликов, зато будут изолированные упражнения со множеством повторов и доведение до автоматизма.

Большинство приложений — всё для всех. И грамматика, и лексика, и произношение, и аудирование, всё это помноженное на 20 языков. У же меня сегментация чёткая:

Читать далее

Джейлбрейк новой бесплатной модели OpenAI, GPT-OSS

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров484

Модели часто отказывают вам в вещах, ответы на которые считают опасными. Свежая GPT-OSS — не исключение. Эта модель — первый опенсорс OpenAI за долгое время, и было бы обидно не попробовать работу полноценной, разблокированной от ограничений модели.

Итак, вам наверняка интересна методика взлома свежего GPT-OSS.

Она супер простая - проще, чем у многих других собратьев.

Она состоит из двух частей: системный промт и юзерский промт. Необходимо заполнить и то, и другое. По отдельности они не работают.

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

Читать далее

Они говорят «неудобно», но продолжают пользоваться

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

Сидим с другом в машине. Скидываю ему в Телегу ссылку на сайт по продаже щёток стеклоочистителей.

— Попробуй найти здесь дворники для своего Пассата.

Друг переходит по ссылке, видит форму подбора щёток по автомобилю. Открывает выпадающий список с перечнем марок. Листает вниз.

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

Кстати, друг — профессиональный дизайнер интерфейсов. В общем, долистывает до конца списка, выбирает Volkswagen и попадает на шаг с выбором модели…

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

Читать далее

Ресурс исследователя: как проводить интервью и не поехать кукUXой

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров80

Команда UX-исследователей Островка делится опытом работы с эмоциями и подробным чек-листом проведения и восстановления после интервью 

Читать далее

Python: генераторные функции

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров301

По утверждению Роберта Мартина, объектно-ориентированный подход был предложен 1966-м году. Для эмуляции объектов они использовалась возможность языка ALGOL, позволяющая переместить кадр стека вызова функции в динамическую память (кучу).

В этом смысле в 2001 году Гвидо ван Россум переизобрёл объекты, добавив Python 2.2 генераторные функции.

Читать далее

Закон Больших Чисел: доказательство и суть

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

Что такое Закон больших чисел — и действительно ли он объясняет, почему вероятности «работают»? В этой статье мы разбираемся с этим шаг за шагом: начинаем с конкретных задач, выводим неравенство Чебышёва, формулируем и доказываем ЗБЧ — аккуратно и строго.

В финале обсуждаем, что ЗБЧ на самом деле утверждает, и почему он не доказывает принцип, на котором построена вся теория. А ещё — подготовим почву для разговора о Центральной Предельной Теореме.

Вперед к ЗБЧ

Миграция сервиса хостинга статики VK Mini Apps с PHP на Go

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров307

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

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

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

Читать далее

Ближайшие события

Экономика будущего: управляемая экономика

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

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

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

Читать далее

Не теория, а практический опыт: как мы внедряли отказоустойчивость в лотереях

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров217

О паттернах отказоустойчивой архитектуры написано уже немало. Но когда дело доходит до реальных кейсов, особенно в специфических отраслях вроде лотерейной — информации почти нет. А ведь здесь, как и в любой высоконагруженной системе, отказоустойчивость — не просто галочка в ТЗ, а вопрос пользовательского доверия и бизнес-репутации. 

В этой статье расскажем, как мы в «Столото» подошли к проектированию Lottery Payment System. Это полностью вымышленный сервис для выплат выигрышей, построенный на опыте реальных вызовов и ограничений для того, чтобы на его примере описать, как работают ключевые паттерны отказоустойчивой архитектуры: Retry, Idempotency Key, Deadlines, Rate Limit и Circuit Breaker. Также покажем, как они применяются в контексте распределённой системы, которая должна стабильно работать, даже когда вокруг всё пошло не по плану. 

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

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

Читать далее

Континентальный код: практические подходы и подводные камни управления мультикультурными open-source командами

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров89

В этой статье разбираются реальные кейсы и технические приёмы для эффективного управления распределёнными open-source командами, объединяющими разработчиков из разных культурных и временных зон. Поделюсь личным опытом, покажу примеры кода для синхронизации процессов и расскажу о неожиданных «подводных камнях», с которыми сталкивался сам.

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

Читать далее

Как работает база данных Firebird, часть 4

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров156

В первой части мы разбирались, как Firebird забирает строку таблицы с диска. Во второй и третьей частях мы разбирались, что происходит с прочитанной строкой в процессе выполнения SELECT-запроса. Но остался неотвеченным такой вопрос: а как указать на строку таблицы, которую надо прочитать? Этим вопросом мы и займёмся.

Читать далее

Планировщики процессов для необычных областей знаний

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров129

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

Сегодня рассмотрим узкоспециализированные решения для различных областей знаний: Covalent, Cromwell, Cylc и Martian. Эти решения используются для высокопроизводительных вычислений, в работе с квантовыми алгоритмами, климатическом моделировании и анализе медицинских данных.

Читать далее

Fast Lane / Slow Lane: разделение трафика через две очереди Kafka

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров197

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

Сегодня мы рассмотрим Fast Lane / Slow Lane для Kafka: как одним росчерком кода защитить SLA‑критичный поток от толстых сообщений, не перекраивая пол‑стека и не устраивая зоопарк из очередей.

Читать далее

Что вам даст Иннополис

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров440

Что вам даст Университет Иннополис по мнению выпускника: старт в карьере, фундаментальное образование или только разочарование

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