Как стать автором
Обновить
1095.71
Рейтинг

Программирование *

Искусство создания компьютерных программ

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Анализ статей Хабрахабр

Программирование *Алгоритмы *Визуализация данных

Решила повторить исследование, сделанное в 2017 году и посмотреть, что изменилось за 5 лет. Ссылка на предыдущую статью Анализ статей Хабрахабр и Geektimes. Дизайн сайта изменился, поэтому делала все в jupyter python, а не wolfram mathematica. Далеко не все графики удалось воспроизвести заново. Получился анализ более чем 260000 статей.

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

Новости

Как я прошел путь от игрушек на Objective-C к реальным проектам на Swift в большой компании

Блог компании МТС Программирование *Разработка под iOS *Учебный процесс в IT Карьера в IT-индустрии

Привет, Хабр! Когда я был ещё совсем мал и только тянулся к разработке, я тоже почитывал Хабр и не раз видел статьи, где описывался путь с нуля до оффера. Иногда это были и вовсе удивительные истории о переходе в новую профессию, читая которые словно проживаешь жизнь другого человека.

Но теперь и мне есть о чём рассказать. Сразу скажу, что этот пост вряд ли чем-то удивит людей с опытом 3+ лет, но надеюсь, мой путь поможет другим людям, которые, как и я когда-то, только смотрят в сторону программирования. Ведь все мы, когда-то были начинающими. И так, меня зовут Александр Рубцов, я iOS-разработчик и это история моего пути в разработку…

Читать дальше
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 842
Комментарии 1

Тестируем сервисы для подготовки к собеседованию

Блог компании SkillFactory Программирование *Учебный процесс в IT Управление персоналом *Карьера в IT-индустрии

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

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

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

К старту флагманского курса по Data Science разбираемся, действительно ли тестовые собеседования подходят для подготовки к реальным.

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

SAST unboxing

Блог компании ДОМ.РФ Информационная безопасность *Программирование *DevOps *

Мы создаем множество сложных программных продуктов и требования безопасности кода становятся все актуальнее. Автоматизация везде, в том числе и в сфере безопасности: алгоритмы говорят нам, как писать код. Очень хотелось бы иметь волшебный инструмент, который бы говорил, безопасен наш код или нет. Попробуем проверить, есть ли волшебная кнопка в мире DevSecOps. Для этого мы взяли несколько статический анализаторов кода, залили в них уязвимый код и посмотрели, что получилось на выходе.

Как пелось в песне группы Технология, “Нажми на кнопку – получишь результат, и твоя мечта осуществится”. О результатах эксперимента мы и поговорим далее.

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

Тюнинг PHP-FPM. Введение

Блог компании OTUS PHP *Программирование *
Перевод

БОНУС: в нашем подкасте мы обсудили эту тему с экспертом, членом сообщества PHP программистов: https://share.transistor.fm/s/6a8637ba

PHP-FPM (или FastCGI Process Manager) имеет по сравнению с mod_php несколько преимуществ, из которых самые очевидные — он более гибок в настройке, и в настоящее время сообщество отдает предпочтение именно этому режиму работы PHP. Однако, если вы используете дефолтную конфигурацию от вашего диспетчера пакетов, то, скорее всего, вы не получите максимум выгоды от его использования.

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

Читать далее
Рейтинг 0
Просмотры 166
Комментарии 1

Как мы обновляли мобильное приложение для официантов: трудности перевода стека KMM + UI на Flutter из теста в продакшн

Блог компании r_keeper Программирование *Разработка мобильных приложений *Kotlin *Flutter *

Привет! На связи снова Сергей Арсёнов, руководитель мобильной разработки в компании r_keeper. Я уже рассказывал, как и почему мы выбрали стек Kotlin Multiplatform Mobile + UI на Flutter для обновления нашего мобильного приложения для официантов. А теперь посмотрим, что из этого вышло на стадии продакшн (спойлер: все получилось, но проблем хватило).

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 999
Комментарии 7

Представляем MPS 2021.2

Блог компании JetBrains Программирование *
Перевод

Мы выпустили версию 2021.2 — второй крупный релиз MPS в этом году. Как и в прошлый раз, мы подготовили для вас демо, в котором показываем новые возможности:



Ниже читайте краткий обзор новой функциональности.

СКАЧАТЬ MPS 2021.2


Читать дальше →
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 914
Комментарии 0

Как помочь участникам видеокурсов проходить их до конца: опыт Слёрма

Блог компании Southbridge Программирование *Учебный процесс в IT Карьера в IT-индустрии DevOps *

Раньше у Слёрма было два варианта обучения: интенсивы и видеокурсы. Но участники не проходили курсы до конца и мы стали думать, как помочь. Ввели формат прохождения в группах с куратором и сразу увидели результаты.

Как куратор помогает не отложить очередной видеокурс на полку, рассказали три наших эксперта.

Узнать про пользу кураторов
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 717
Комментарии 3

React: простое и эффективное решение для управления состоянием приложений

Блог компании Timeweb Разработка веб-сайтов *JavaScript *Программирование *ReactJS *


Привет, друзья!


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


Немного забегая вперед, скажу, что решение получилось чуть менее производительным, чем "классическое" сочетание хука useReducer() и инструментов, предоставляемых Context API (которые, собственно, и составляют ядро решения).


Решение представляет собой результат нескольких экспериментов, направленных на максимальное упрощение работы с контекстом React, и во многом вдохновлено Vuex — официальным инструментом для управления состоянием Vue-приложений.


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


Пока мне не представилось возможности испытать решение в "полевых условиях" (я намерен сделать это при первом удобном случае), но кажется, что оно подойдет для разработки приложений любой сложности при соблюдении двух важных условий:

Читать дальше →
Всего голосов 12: ↑6 и ↓6 0
Просмотры 3.1K
Комментарии 3

Способы упрощения текстов: плюсы, минусы, альтернативы

Программирование *Машинное обучение *Natural Language Processing *

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

Зачем вообще упрощать текст? Есть, как минимум, три кейса, почему есть вероятность столкнуться с этой задачей:

- если перед вами текст на иностранном языке, то замена «сложного» слова на синоним поможет сориентироваться в сути предложения

- если вы работаете с доменной тематикой, то также подбор синонимов может сделать текст проще для восприятия (так, например, «ирригация» можно заменить на «орошение» и наоборот, в таком случае шанс понять текст у читающего увеличивается)

- для расширения датастета: аугментация текстовых данных – это всегда вызов, важно учитывать контекст для того, чтобы подобрать синоним. Тут, конечно, важно учитывать размер корпуса, частота встречаемости слов в рамках контекста будет точнее, если корпус состоит из миллионов предложений, а не из тысяч.

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

Если кому-то интересно ознакомиться только с кодом, то welcome на github, там можно найти пошаговую реализацию.

Задача выделения сложных слов

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 576
Комментарии 0

Персистентная очередь на фронте

Разработка веб-сайтов *Программирование *Алгоритмы *

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

Персистентная очередь во фронтенде (или в мобильном приложении) может быть использована только... пока фронтенд работает. Так ли уж она полезна?

Давайте разбираться.
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 1.9K
Комментарии 21

Как написать генератор изображений, который вас понимает

Блог компании SkillFactory Разработка веб-сайтов *Python *Программирование *Машинное обучение *
Перевод
Tutorial

Автор статьи рассказывает, как за неделю создал Text2Art.com — генератор изображений на основе VQGAN+CLIP, способный рисовать пиксель-арт и живопись, а также изображать то, что вы напишите в текстовом поле.

Для интерфейса используется Gradio, модель работает на сервере FastAPI, а системой очереди сообщений служит Firebase. Подробностями делимся к старту курса по ML и DL.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 2.9K
Комментарии 21

Нижняя панель навигации Flutter с вложенной маршрутизацией (автомаршрутизация)

Блог компании OTUS Программирование *Flutter *
Перевод

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.7K
Комментарии 0

Адаптация Qt-приложений под мониторы высокой чёткости

Программирование *C++ *Qt *ООП *Разработка под Windows *
Tutorial

В связи с техническим прогрессом рынок мониторов постоянно обновляется моделями с повышенным разрешением, плотностью пикселей и/или размером экрана. Году в 2010 стандартным монитором можно было считать экземпляр 19’’ c разрешением WXGA++ (1600*900) и фактической плотностью пикселей 97 DPI (dots per inch). Сейчас (2021 год) стандартным монитором, думаю, можно признать экземпляр 24’’ c разрешением Full HD (1920*1080) и плотностью пикселей 92 DPI. Под «стандартным» я понимаю тот монитор, который стоит на рабочем месте у большинства работающего люда: инженеры, бухгалтеры, переводчики и т.д. (при этом, конечно, «стандартность» — это субъективная и приблизительная оценка). Относительно новые и отчасти нишевые модели (для фотографов, видеографов, геймеров) имеют характеристики: 4K UHD (3840*2160) и 28’’ (157 DPI) или UWQHD (3440x1440) и 34" (109 DPI) или QHD (2560x1440) и 27" (109 DPI) или UWHD (2560x1080) и 29" (96 DPI). Таким образом, наблюдается рост в связанных группах признаков: разрешение+размер экрана, или разрешение+плотность пикселей, или даже разрешение+плотность пикселей+размер экрана. На рынке ноутбуков в плане экранов похожая ситуация – растет разрешение+плотность пикселей.

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

Что касается высокой чёткости (большой плотности пикселей), то в ОС Windows давно есть такие настройки, как масштабирование шрифта и изображений (масштаб экрана), которые применяются для увеличения слишком малых элементов GUI на мониторах с высокой чёткостью (High DPI). Также есть поддержка в платформе Qt (с нюансами, об этом далее). Однако способно ли Ваше, конкретное ПО их адекватно учитывать, применять?

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 3.8K
Комментарии 3

Загрузка треков со Spotify с помощью питона

Python *Программирование *
Из песочницы

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

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

Разрабатываем расширения для VS Code на Kotlin/JS

JavaScript *Программирование *Kotlin *
Из песочницы

Kotlin/JS – это технология, позволяющая транслировать код, написанный на Kotlin, в JavaScript. Мне не удалось найти информации о том, как написать своё расширение для Visual Studio Code, популярного редактора кода, используя Kotlin, поэтому я задался вопросом, а возможно ли это? Какие проблемы нас ждут?

Читать далее
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 1.9K
Комментарии 0

Frontend Security: о чем вы хотели бы забыть, но не сможете

Блог компании Конференции Олега Бунина (Онтико) Информационная безопасность *Разработка веб-сайтов *Программирование *Конференции

Какие атаки на клиентскую часть веб-ресурсов вы знаете? XSS, CSRF, HTTP Response Splitting, Clickjacking, CSHM, атаки на CORS, следствия других ошибок программистов? В среднем разработчик вспоминает не половину, и даже не треть. Разнообразие атак зависит только от фантазии и любопытства злоумышленников, и все они созданы, чтобы навредить вашим клиентам, а значит — и вам.

Татьяна Новикова — ex-пентестер с опытом в безопасности около четырех лет, а ныне Application Security Engineer. В команде ЦАРКА (Центр анализа и расследования кибератак) она занималась пентестом — полной проверкой веб-ресурсов  на безопасность. В том числе команда работала с white-box, то есть с исходными кодами, и разбирала безопасность не только бэкенда, но и фронтенда. Сейчас Татьяна перешла в Beeline Казахстан и занимается обеспечением процессов безопасной разработки.

На основе своего опыта она выступила на конференции Frontend Conf Live 2020. В одной статье, конечно, невозможно покрыть все уязвимости и потенциальные опасности, поэтому сегодня будет самое актуальное и страшное из доклада — то, что может нанести максимальный ущерб.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 4.7K
Комментарии 0

Самостоятельная разметка данных для распознавания русского рукописного текста

Python *Программирование *Машинное обучение *

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 684
Комментарии 3

Многозадачная модель T5 для русского языка

Python *Семантика *Программирование *Машинное обучение *Natural Language Processing *

Модель T5 – это нейросеть, которая уже обучена хорошо понимать и генерировать текст, и которую можно дообучить на собственную задачу, будь то перевод, суммаризация текстов, или генерация ответа чат-бота.

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

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

Компиляция Python

Блог компании Цифровое проектирование Высокая производительность *Python *Программирование *Компиляторы *

Предположим, вы разработали приложение или библиотеку на Python и уже готовитесь передать его / её  заказчику. И в этот момент появляются разные вопросы.

Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».

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

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

И вот тут настало время скомпилировать Python-код.

Меня зовут Руслан, я старший разработчик компании «Цифровое проектирование». Сегодня я расскажу, как выбрать тот самый компилятор из множества доступных.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 9.1K
Комментарии 14

Вклад авторов