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

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

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

Лазерный DIY или как с помощью дешевого гравера делать качественные платы

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


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

В этой статье хочу поделиться своей историей, как спонтанная покупка на местном маркетплейсе упростила процесс изготовления прототипов печатных плат в домашних условиях, сэкономив время, при этом повысив качество. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 69: ↑68 и ↓1+91
Комментарии94

Люди не понимают ООП

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

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

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

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+140
Комментарии461

Почему PASETO лучше для аутентификации, чем JWT

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

В веб-разработке одним из наиболее популярных решений является аутентификация на основе токенов. Чаще всего для создания системы аутентификации используют JWT (порой даже там, где это не нужно). Но несмотря на популярность, JWT имеет ряд недостатков. Поэтому появляются новые решения для аутентификации на основе токенов. В этой статье мы рассмотрим PASETO — токен, который был разработан для замены JWT.

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии9

Ускоряем анализ данных в 170 000 раз с помощью Python

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

В статье «Ускоряем анализ данных в 180 000 раз с помощью Rust» показано, как неоптимизированный код на Python, после переписывания и оптимизации на Rust, ускоряется в 180 000 раз. Автор отмечает: «есть множество способов сделать код на Python быстрее, но смысл этого поста не в том, чтобы сравнить высокооптимизированный Python с высокооптимизированным Rust. Смысл в том, чтобы сравнить "стандартный-Jupyter-notebook" Python с высокооптимизированным Rust».

Возникает вопрос: какого ускорения мы могли бы достичь, если бы остановились на Python?

Под катом разработчик Сидни Рэдклифф* проходит путь профилирования и итеративного ускорения кода на Python, чтобы выяснить это.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 51: ↑50 и ↓1+56
Комментарии3

Зашифрованные: как атаковали российский бизнес

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

Для того, чтобы понять, как атаковали российский бизнес, и с головой погрузиться в изучение матрицы наиболее часто используемых атакующими тактик, техник и процедур (TTPs), давайте сначала ответим на вопрос: кто атаковал?

Если еще пять лет назад практически 70% всей хакерской активности, с которой сталкивались эксперты Лаборатории компьютерной криминалистики Group-IB во время реагирований (Incident Response), было связано с целевыми атаками на финансовый сектор, то в прошлом году самым популярным типом киберугроз оказались.... Да, верно программы-вымогатели. На них пришлось 68% всех инцидентов.

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

Попробуй спрячься: расширяем возможности обнаружения эксплуатации WinRM

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

Идея написать блог о том, как злоумышленники используют для перемещения в инфраструктуре жертвы возможности службы Windows Remote Management (WinRM) (Т1021.006), возникла у Антона Величко, руководителя Лаборатории компьютерной криминалистики компании F.A.C.C.T., еще в январе 2022 года. И виной тому стали не затянувшиеся новогодние праздники и наличие свободного времени, как может показаться, а как раз наоборот. В тот момент криминалисты F.A.C.C.T. столкнулись с очередным «праздничным» всплеском кибератак на российские компании, и в процессе реагирования на инцидент у одного из наших клиентов обнаружили интересный кейс, о котором Антон Величко и его соавтор — Кирилл Полищук захотели подробно рассказать.

Читать далее
Рейтинг0
Комментарии0

О люстре Чижевского и ионизации воздуха

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров21K
Картинка Harryarts, Freepik

Многим хорошо известна, а кто-то просто слышал, о таком интересном устройстве, как «Люстра Чижевского», или электроэффлювиальная люстра, автором которой принято считать Александра Леонидовича Чижевского.

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

Является несомненным тот факт, что его изобретение получило международное признание и вошло в широкий обиход, являясь известным и по сей день.
Читать дальше →
Всего голосов 74: ↑58 и ↓16+67
Комментарии125

Предсказать ошибку. Как методы оценки неопределенности помогают повышать качество seq2seq-моделей

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

Всем привет! Меня зовут Артём Важенцев, я аспирант в Сколтехе и младший научный сотрудник AIRI. Наша группа занимается исследованием и разработкой новых методов оценивания неопределенности для языковых моделей. Этим летом мы опубликовали две статьи на ACL 2023

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

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

Обучение с подкреплением. Q-обучение. Понятное объяснение

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

В данной статье я подробно опишу один из методов обучения с подкреплением - обучение на основе функции полезности (Q-обучение или Q-learning).

Читать далее
Всего голосов 9: ↑8 и ↓1+8
Комментарии17

Бесплатные сервисы для разработчиков — огромный список

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

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →
Всего голосов 65: ↑59 и ↓6+71
Комментарии15

Minecraft сервер: Windows vs Linux

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

Продолжая серию статей что-то против чего-то, мы наконец рассмотрим что-то полезное, а именно сервер Minecraft. Рассмотрим какая операционная система и какая ява все же лучше для того, чтобы хостить лучшую игру человечества. Для сравнения взяты Ubuntu 18.04 LTS и Server Core 2019. На Ubuntu был установлен OpenJDK, а на Windows — Oracle Java и AdoptOpenJDK.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+34
Комментарии47

Делаем модератора на базе ChatGPT

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

Простой туториал, в котором я расскажу как сделать автомодератора на базе GPT-3.5 от OpenAI, и как сделать это так, чтобы проверка одного сообщения стоила дешевле одной копейки...

Давайте представим следующее:

Вы владеете форумом с большим количеством участников. Вроде бы, всё было хорошо, но в один момент страна в которой Вы проживаете решает запретить использовать слово "Борщ", Вы просто не можете его произносить. Говорите "Борщ" – тюрьма.

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

Начинаем продолжать: обработка исходников с помощью ИИ в оффлайне

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

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

Читать далее
Всего голосов 16: ↑14 и ↓2+17
Комментарии13

Устроиться за 60 секунд

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

Я собираюсь поделиться с тобой альманахом, что собрал за последние 3 года, всё что я знаю про поиск работы, покупая платные консультации, сменив 3 работы и десятки резюме. Я добился 70% конверсии приглашений на hh.ru (10 откликов - 7 приглашений - 3 отказа). В 90% случаев я доходил до технического собеседования - последней преградой перед оффером. Это тот самый пошаговый гайд, который ты искал (первые пять человек, кто найдёт более подробный гайд - скину лично 500 рублей)

Каждая статья раскроет процессы:

Составление лаконичного резюме

Рассылка откликов

Зарплатные переговоры

Как пройти скрининг (общение с HR)

Как пройти техническое собеседование

⚠️Исследование рынка вакансий - на практике проверим все советы и лайфхаки

Читать далее
Всего голосов 20: ↑10 и ↓10+2
Комментарии19

Локальные GPT нейронный сети — устанавливаем на домашнем ПК, запускаем и проверяем на адекватность аналоги ChatGPT

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

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

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

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

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

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Всего голосов 88: ↑86 и ↓2+102
Комментарии87

Что делает ChatGPT… и почему это работает?

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

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

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

Рак, убивающий Хабр, ака «подпишитесь на мой телеграм-канал»

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

Это не статья - это крик души.

Я читаю Хабр не так давно - всего лишь лет десять и я хабраголик это третья моя инкарнация/аккаунт здесь.

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

Что сильнее всего портит вкус кактуса, кмк
Всего голосов 99: ↑85 и ↓14+101
Комментарии190

Ускорение загрузки сайта: туториал для джунов

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

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

В начале — пару слов о себе. Меня зовут Полина и я работаю «Rocket Business» уже несколько лет. Свой путь от джуна до тимлида прошла именно здесь. Поэтому своим мини-пособием решила делиться в корпоративном блоге: оставляю в помощь потомкам и аудитории Хабра. 

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

Все оценки сроков разработки ПО — ложь

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

▍ Разработка ПО — это исследование


Требуют ли фармацевтические компании от исследователей сообщить им сроки создания лекарства от рака? Исследователи могут сообщить сроки выполнения конкретного исследования (и достаточно точные сроки, потому что планы исследований обычно имеют графики), но результаты наподобие «получения лекарства от рака» зависят от того, что выяснится в процессе экспериментов. Для прогнозирования подобных результатов нам заранее нужно знать результаты экспериментов, но если бы мы их знали, то эксперименты были бы не нужны. На самом деле мы не можем смотреть дальше, чем результаты следующего эксперимента, потому что этот эксперимент определяет дальнейший шаг.

В разработке ПО мы не тратим время на задачи, решения которых знаем. Если решения уже существуют, мы добавляем в качестве зависимости пакет или библиотеку с этим решением, или копируем старый код, или делаем что-то ещё, на что требуются секунды, а затем можем переходить к следующей задаче. Почти всё время разработки тратится на новые задачи, ответов на которые мы не знаем. Часто они новы ужасно скучным образом, например, «как нам сохранять эту модель данных с этими конкретными полями в эту конкретную базу данных?» Но именно из-за них эта ситуация отличается от всех остальных (или, по крайней мере, от тех, которые мы смогли найти) и именно это занимает всё наше время.
Читать дальше →
Всего голосов 62: ↑57 и ↓5+70
Комментарии67
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность