Search
Write a publication
Pull to refresh
4
0
Денис Рябов @mobi

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

Send message

Используем REM для адаптива: комфортная резиновая вёрстка для всех устройств

Level of difficultyEasy
Reading time3 min
Views16K

Все верстальщики рано или поздно сталкивались с болью, которая заключается в адаптиве сайта под различные устройства. Существуют разные технологии, упрощающие подгонку размеров под определённые устройства, например, clamp(). Эта функция удобна, так как позволяет минимизировать использование брейкпоинтов, но у неё есть свои недостатки:

Читать далее

Оптимизация Go: как повысить скорость и эффективность кода

Level of difficultyMedium
Reading time9 min
Views9.5K

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

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

Мы начинаем!

Go ⏩

Как я написал для своей команды бот-напоминалку на Golang и втрое сократил время на ревью задач

Level of difficultyEasy
Reading time9 min
Views6.5K

Привет, Хабр! На связи Кирилл Веркин. Вообще, я занимаю в СберМаркете должность Senior QA, но ради большей производительности команды стал немного кодером.

Эта статья может быть интересна тем, кто замечает, что задачи в команде часто теряются, и хочет автоматизировать процесс напоминалок. Я делюсь кодом, поясняя ключевые моменты для таких же новичков в Go. Мой код написан для сочетания GitLab, Jira и Mattermost (корпоративный мессенджер, которым мы пользуемся в СберМаркете), но подобное решение можно реализовать и с другими сервисами.

Читать далее

День защиты (от) детей: подборка игр от семейки айтишников

Level of difficultyEasy
Reading time8 min
Views8.7K

Привет, Хабр! Меня зовут Андрей. Я работаю в ИТ-компании «Криптонит» и воспитываю шестилетнюю дочь. Совмещать это весьма непросто, поэтому хочу поделиться лайфхаками о том, как провести время с ребёнком и не сойти с ума и увлечь его разными занимательными задачками.

Каждое воскресение мои мечты отоспаться разбиваются о детскую непосредственность дочери Кати:

— Пап, ты можешь со мной поиграть?! — тормошит она чуть свет и, скорее, требует, чем просит.

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

Этот бой проигран ещё до начала. Морфей в ужасе бежал от Кати, и я его понимаю. Дочь уже не даст покоя. Она будет «папкать» и натурально прыгать по тебе, пока не получит своё.

Чтобы в следующие выходные было чуть легче, на неделе я придумываю разные активности. Одни помогают сделать ребёнка «самозанятым» хотя бы на 10-15 минут, а другие достаточно просты, чтобы играть в них даже не до конца проснувшимся. Вот некоторые из них в помощь молодым родителям.

Прямоугольники

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

Перед началом игры отмечаем на листке игровое поле произвольного размера, например 24 на 32 клетки. Затем два игрока по очереди рисуют прямоугольники. Их размер задаётся выпавшими цифрами на кубиках как длины сторон в клетках. 

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

Читать далее

Шпаргалка для создания идеального промпта LLM

Level of difficultyEasy
Reading time10 min
Views27K

Большие языковые модели могут производить любую последовательность символов на каком угодно языке в любом формате данных (включая языки программирования, аудио и видео). Соответственно и качество этой последовательности может быть самым разным. Иногда мы получаем многословные запутанные объяснения с галлюцинациями и устаревшими знаниями, а иногда ― элегантную функцию на Python решающую сложную задачу,  идеальное название для бренда, а скоро и первую серию будущего бестселлера. Более того, модель может надёжно и точно ответить на миллионы вопросов ваших клиентов, сопоставить запросы из сотен позиций с многотысячным каталогом, самостоятельно обработать заявки по страховым искам, обучить робота или перебрать новые патентные заявки в поисках конфликтов со старыми. Однако чтобы полностью реализовать потенциал LLM, необходимо научиться мастерски давать им подсказки. А как это делать, я расскажу в этой статье.

Читать далее

Что такое Универсальный решатель проблем — программа из 1955 года

Reading time8 min
Views21K
Когда Герберт Саймон и Алан Ньюэлл в 1955 году начали придумывать Logic Theorist, понятия «искусственный интеллект» ещё не существовало.

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

А потом они решили сделать ещё более крутую штуку — программу, которая сможет решить любую проблему, поставленную перед людьми. Они назвали её GPS — General Problem Solver. По идее, у них должен был получиться разумный электронный советчик, который точно знает, как лучше всего поступить в сложной ситуации из серии «аккумулятор на машине разрядился, а вам срочно нужно отвезти ребёнка в детский сад». Ну или дать ответ на главный вопрос жизни, Вселенной и всего такого.

Но вот получилось вообще не то.

image
«Ты только посмотри, что GPS предлагает нам сделать!»
Читать дальше →

Глубокое погружение в дочерние шаблоны Joomla

Level of difficultyMedium
Reading time6 min
Views1.3K

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

Читать далее

Как перевести деньги из России в страны СНГ в мае 2024 года

Level of difficultyEasy
Reading time5 min
Views14K

Сколько денег можно перевести за границу

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

Нерезиденты из дружественных и недружественных стран, работающие в России по трудовым или гражданско-правовым договорам, могут дополнительно сверх лимита:

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

Читать далее

Многообразие связных списков

Level of difficultyMedium
Reading time13 min
Views11K

Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что‑то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики выделений динамической памяти в вашем коде.

Связать себя со знаниями!

Коммивояжер на GPU

Level of difficultyMedium
Reading time8 min
Views4.2K

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

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

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

Читать далее

Создаём плагин авторизации в Joomla 5 по e-mail

Level of difficultyMedium
Reading time3 min
Views1.2K

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

Читать далее

Нужна ли айтишнику вышка? Инфоцыганство от государства

Level of difficultyEasy
Reading time7 min
Views74K

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

Читать далее

Как информативно оформить профиль на GitHub?

Level of difficultyEasy
Reading time6 min
Views24K

Тетрадь, дневник — ваше лицо. А круто оформленный профиль на гитхабе — статус вашей занятости. Чем больше участий в проектах, тем безработнее... Пока молодые специалисты оформляют свои страницы с "Lib-Meta-Neo ML-Scientist 10 years of expirience" на LinkedIN настоящий амбассадор HR и трудового найма бегут на GitHub. Именно там выискиваются самые закостенелые гики программирования, вносящие тридцать пять тысяч коммитов в безбюджетные опенсорс проекты; именно там рождаются гении, разрабатывающие AAA-проекты геймдева на ассемблере. 

Все это шутки. 

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

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

Читать далее

Невероятно, но факт: умножение матриц на GPU идёт быстрее на «предсказуемых» данных

Level of difficultyMedium
Reading time9 min
Views13K

Шёл 2022 год. Я обратил внимание на новый интересный проект CUTLASS, отличающийся очень высокой скоростью выполнения операций умножения матриц. Я взял большую задачу по умножению матриц — 8192 x 8192 x 8192, и померял производительность в PyTorch, где используется библиотека cuBLAS.

Читать далее

Странное поведение нетривиальных нулей Зета функции Римана

Level of difficultyMedium
Reading time2 min
Views9K

Я люблю проводить численные эксперименты. Процессор должен думать, а не простаивать. Напомню, что нетривиальные нули Зета функции Римана, расположенные симметрично относительно оси X, имеют вещественную часть равную -1/2 (что не доказано, может быть, у вас получится?), а мнимая часть у первых нулей равна (+/-, так как они расположены симметрично): 14.13, 21.02, 25.01, 30.42, 32.93...

Поиграем с этим.

Читать далее

Standard Time как его видит IBM

Level of difficultyEasy
Reading time3 min
Views3.2K

Более 6-ти лет занимаюсь разработкой под IBM i (бывшая AS/400). В основном, конечно, это работа с БД и разная бизнес-логика, но иногда приходится и что-то низкоуровневое писать.

Не так давно занимался разработкой удобного и простого в использовании API для работы с User Queue (есть на АС-ке такой системный объект - очередь *USRQ). И в заголовке извлекаемого из очереди сообщения есть такой параметр - message enqueue time (время размещения сообщения в очереди). Который описан как _MI_Time. Которое, в свою очередь, определено как

Читать далее

На практике пробуем KAN – принципиально новую архитектуру нейросетей

Level of difficultyMedium
Reading time5 min
Views41K

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

Однако теперь все может измениться. В KAN (Kolmogorov-Arnold Networks) исследователи реализовали перемещение функций активации с нейронов на ребра нейросети, и такой подход показал блестящие результаты.

Читать далее

Как мы в 4 раза ускорили мобильную версию ВКонтакте

Level of difficultyMedium
Reading time9 min
Views6.7K

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

Меня зовут Тарас Иванов, уже семь лет я развиваю фронтенд ВКонтакте, а сейчас руковожу командой, которая занимается производительностью и инфраструктурой. В статье я расскажу, как мы с командой ускорили загрузку m.vk.com в 4 раза, на какие метрики обращали внимание и какие сервисы использовали для оценки эффективности. Описанные способы и инструменты помогут повысить производительность в любом проекте: от многостраничных платформ с большим количеством legacy до свежих лаконичных лендингов. Актуально как для мобильной, так и десктопной версий.  

Читать далее

Разбираемся с this в JavaScript раз и навсегда (но это не точно)

Level of difficultyMedium
Reading time8 min
Views16K

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и то как фронтендеры пишут очередную статью про this.

Но все же такое количество статей существует не просто так, тема действительно для многих запутанная и зачастую даже сами авторы статей неправильно понимают this и соответственно закладывают неправильное понимание этого у читателей. Есть и хорошие статьи, где все описано верно, но в основном чисто с практической точки зрения, без погружения в то “как это работает на самом деле”.

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

Читать далее

Information

Rating
Does not participate
Location
Yerevan, Yerevan, Армения
Date of birth
Registered
Activity