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

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

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

Домашний веб-сервер для чайников

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

Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover). 

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

Читать далее
Всего голосов 24: ↑22 и ↓2+23
Комментарии29

5 причин, по которым я люблю программировать в Linux

Время на прочтение6 мин
Количество просмотров65K
Linux — это отличная платформа для занятий программированием. На нашей стороне — логичность, высокая эффективность, лёгкость работы с исходным кодом.

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

Когда я начал пользоваться Linux, я работал в сфере кинопроизводства. Я выбрал Linux из-за того, что эта ОС замечательно поддерживала работу с мультимедийными данными. Мы выяснили, что обычные коммерческие приложения для редактирования видео не способны обрабатывать большинство тех записей, которые мы извлекали из практически любых устройств, оснащённых камерами. Тогда я не знал о том, что Linux имеет репутацию операционной системы, рассчитанной на серверы и на программистов. Чем больше задач я решал с помощью Linux, тем сильнее мне хотелось научиться управлять всеми свойствами этой ОС. В итоге я выяснил, что компьютер показывает всю свою мощь тогда, когда его пользователь способен «говорить» на его языке. Через несколько лет после перехода на Linux я уже писал скрипты для автоматического редактирования видео, для объединения аудиофайлов, для пакетного редактирования фотографий, и для решения любых задач, которые мне удавалось сформулировать, и для которых удавалось найти решение. Мне не потребовалось много времени на то, чтобы понять, почему программисты любят Linux. Но именно Linux научила меня любить программирование.



Оказалось, что Linux — это отличная платформа для программистов, и для начинающих, и для опытных. Нельзя сказать, что Linux необходима для того, чтобы писать программы. Успешные разработчики пользуются самыми разными платформами. Но у Linux есть много такого, что она может предложить разработчикам. Кое о чём из этого я и хочу рассказать.
Читать дальше →
Всего голосов 60: ↑45 и ↓15+47
Комментарии162

Как интерпретировать предсказания моделей в SHAP

Время на прочтение5 мин
Количество просмотров45K
Одной из важнейших задач в сфере data science является не только построение модели, способной делать качественные предсказания, но и умение интерпретировать такие предсказания.

Если мы не просто знаем, что клиент склонен купить товар, но так же понимаем, что влияет на его покупку, мы сможем в будущем выстраивать стратегию компанию, направленную на повышение эффективности продаж.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Использование теории игр для повышения прозрачности моделей машинного обучения

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

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

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

Раскладываем Git по полочкам: терминология

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

Первый раз столкнулись с Git и не понимаете, что это такое?

Устали бездумно выполнять серию комманд чтобы закинуть свой проект на GitHub?

Хотите понять, чем отличается merge, rebase, push и pull?

Надоело видеть ошибку о non fast-forward merge и не понимать, что с этим делать?

Сейчас попробуем разобраться в этом всем.

Поехали!
Всего голосов 16: ↑16 и ↓0+16
Комментарии10

ИИ в 3D: Где мы сейчас и какое будущее нас ждёт? (Часть 2)

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

В предыдущей статье мы уже затрагивали задачу реконструкции 3D-объектов по их 2D-изображениям. В этой же углубимся в реконструкцию с головой! Вообще говоря, как мне кажется, сейчас мы рассмотрим гораздо более концептуально интересные методы, а именно - HSP и Mesh R-CNN. Это база, которая просто должна осесть в головах всех любителей ИИ в 3D!

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

N-е число Фибоначчи за O(log N)

Время на прочтение4 мин
Количество просмотров77K
Читая статью об устройстве на работу в ABBYY, встретил в ней упоминание задачи:
быстро – за O( log N ) арифметических операций над числами – найти N-е число Фибоначчи
Я задумался над ней и понял, что сходу в голову приходят только решения, работающие за время O(N). Однако позже решение было найдено.
Читать дальше →
Всего голосов 93: ↑77 и ↓16+61
Комментарии149

Материалы для подготовки к собеседованию на позицию Data Scientist. Часть 1: Live Coding

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

Привет! Меня зовут Артем. Я работаю Data Scientist'ом в компании МегаФон (платформа для безопасной монетизации данных OneFactor).

В данной статье разберемся что такое live coding интервью и как к нему готовиться.

Материал в первую очередь будет полезен Data Scientist'ам и ML инженерам, при этом некоторые разделы, например, Алгоритмы и структуры данных подойдут всем IT специалистам, которым предстоит пройти секцию live coding.

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

Я решил 500 задач на LeetCode — и они действительно меня чему-то научили

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

Много кто знает, что такое Leetcode. Это своего рода решебник — задачи, которые дают на технических собеседованиях в крупных компаниях (в том числе и из FAANG) и их решения.

Такие задания, заточенные на знание структур данных и алгоритмов, все чаще встречаются и на собеседованиях в небольших компаниях. Многим кандидатам это не нравится — они утверждают, что навыки «литкодинга» ничего не говорят о том, как человек справится с реальной работой. Согласен. Если вы не можете слёту решать задачи c LeetCode, это не значит, что вы плохой разработчик. Возможно, вам в реальной работе вообще никогда не понадобится, скажем, инвертировать бинарное дерево. Однако глупо отрицать, что на LeetCode можно изучить массу подходов и инструментов, которые окажутся полезными. В этой статье я расскажу о том, что вынес для себя из работы с платформой.

Уроки Литкода
Всего голосов 24: ↑16 и ↓8+15
Комментарии47

Как составить эффективное резюме через нейросети

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

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

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

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

Приятного чтения!

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

Самообучение в Data science, с нуля до Senior за два года

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

Хочу поделиться методами освоения Data science с нуля человеком из другой ИТ специальности. Цель: дать понять, подходит ли Вам эта специальность в принципе, и рассказать про эффективные подходы к самообучению, которые мне помогли.

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

Читать далее
Всего голосов 30: ↑18 и ↓12+15
Комментарии32

Побеждаем рутину в Data Science: как перестать быть недопрограммистами и недоисследователями

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

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

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

Как я искал ПДн в 300 базах данных [и сохранил рассудок]

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

Пришли как-то ко мне парни из службы безопасности и говорят: «Надо обойти все БД и собрать с них персональные данные». Потому что в России изменилось законодательство и теперь их нужно хранить в особо защищённых хранилищах.

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

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

Скорее всего, вам скоро предстоит такое же, поэтому сейчас покажу артефакты, которые я нашёл в процессе.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+19
Комментарии35

Как языковая модель предсказывает следующий токен (часть 1)

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

Я обучил небольшой (порядка 10 миллионов параметров) трансформер по превосходному туториалу Let’s build GPT: from scratch, in code, spelled out Андрея Карпати. После того, как он заработал, я захотел максимально глубоко понять, как он устроен внутри и как создаёт свои результаты.

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

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

Если вы знакомы с трансформерами и хотите сразу узнать вывод, то он таков: каждый блок трансформера (содержащий слой многоголового внимания и сеть с прямой связью) изучает веса, связывающие конкретный промт с классом строк, найденных в обучающем корпусе. Распределение токенов, соответствующее этим строкам в обучающем корпусе, и есть приблизительно то, что блок выводит как прогноз для следующего токена. Каждый блок может ассоциировать один и тот же промт со своим классом строк обучающего корпуса, что приводит к другому распределению следующих токенов, а значит, и к другим прогнозам. Окончательный результат работы трансформера — это линейное сочетание прогнозов каждого блока.

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

Как шутят математики. Решение второго шифра Олама

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

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

Оба шифра оставались неразгаданными 75 лет. Скорее всего, виной тому оказался тот факт, что они находились в архивных хранилищах Калифорнийского технологического института, а не из-за их чрезвычайной сложности. Однако не стоит забывать, что в момент своего появления они не были вскрыты Ричардом Фейнманом, а после и его аспирантом Крисом Коулом. Разумеется, с тех пор криптоанализ существенно продвинулся и обзавёлся новыми возможностями автоматизации и вычислительными мощностями.

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

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

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

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

Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.

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

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

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

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

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

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

Как я устроился в Амазон и перестал переживать за свой английский

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

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

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 235: ↑232 и ↓3+275
Комментарии160

Полезные ресурсы для Python-разработчиков

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

Привет, Хабр! Меня зовут Катерина. Вот уже пять лет я профессионально занимаюсь переводами статей по Python. Для работы мне пришлось освоить основы этого языка и попутно ознакомиться со множеством ресурсов. Я решила собрать эти ресурсы в одной статье, чтобы поделиться ими. Надеюсь, кому-нибудь это пригодится!

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

Две истории как ANKI может вам помочь выучить иностранный язык и подготовиться к интервью

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

Я всегда считал, что ленивый программист это хороший программист. Почему? Потому что попроси трудолюбивого сделать что-то, он пойдет и сделает. А ленивый программист потратит в 2-3 раза больше времени, но напишет скрипт, который будет — это делать за него. Может быть, в первый раз на это будет потрачено неоправданно много времени, но при условии повторяющихся задач этот подход очень быстро окупается. Я считаю себя ленивым программистом. Это была преамбула, а теперь перейдем к делу.

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

Информация

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