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

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

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

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

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

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

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

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

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

Компиляция Python

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

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

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

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

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

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

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

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

Актуален ли еще Solid?

Программирование *Проектирование и рефакторинг *
Из песочницы
Перевод

Перевод статьи Роберта Мартина

Недавно я получил письмо:

В течение многих лет проверка понимания принципов SOLID было стандартной частью нашей процедуры приема на работу. Предполагалось, что кандидаты хорошо знакомы с этими принципами. Однако в последнее время один из наших менеджеров, который больше не занимается программированием, усомнился в том, что это разумно. Его аргументы заключались в том, что принцип открытости-закрытости (open–closed principle) больше не очень важен, потому что большая часть кода, который мы пишем, не содержится в больших монолитах, а внесение изменений в небольшие микросервисы безопасно и легко. Принцип подстановки Лисков (Liskov substitution principle) давно устарел, потому что мы не уделяем столько внимания наследованию, как 20 лет назад. Я думаю, нам следует рассмотреть позицию Дэна Норта по SOLID: «Просто напишите простой код».

В ответ я написал следующее письмо:

Принципы SOLID остаются актуальными и сегодня, как и в 90-е годы (и даже до этого). Это потому, что программное обеспечение не сильно изменилось за все эти годы. Оно не сильно изменилось даже с 1945 года, когда Тьюринг написал первые строчки кода для электронного компьютера. Программное обеспечение по-прежнему представляет собой операторы if, циклы while и операторы присваивания - последовательность, выбор и итерацию.

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

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

Нужно ли DevOps’ам уметь в кодинг?

Блог компании ISPsystem Программирование *DevOps *

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

Кто-то ушел в «компьютерную» профессию осознанно: сначала радиокружок, потом — технический факультет ВУЗа. Кто-то стал айтишником и вовсе по воле случая.

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

Мы поделимся с вами двумя историями двоих наших коллег из отдела DevOps. Оба они в какой-то момент интересовались языками программирования, однако пошли по другому пути. Это тенденция, заговор или несчастный случай? Как и почему это случилось? Ответы под катом!

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

Как грумить задачу: чек-лист с примерами

Блог компании Mindbox Программирование *Управление разработкой *
Наша разработка постоянно растет, поэтому приходится онбордить по несколько человек в месяц и каждому рассказывать, как правильно грумить задачи. Обучать груму «вручную» больно, потому что это отнимает много времени, какие-то знания теряются по дороге и выскакивают ошибки, которых можно было избежать. Чтобы облегчить жизнь лидам и новичкам, мы собрали чек-лист с описанием этапов грума и примерами. Он будет полезен разработчикам продуктовых компаний, которые онбордят или которых недавно приняли в штат. Чек-лист поможет разбивать задачи на этапы, чтобы ничего не терялось и результат соответствовал ожиданиям.

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

Ниже подробнее о том, как сделать качественный грум:

  • цель грума,
  • необходимый минимум,
  • уточнение требований и контекста,
  • типичные этапы,
  • особенности при доработке механик.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Просмотры 675
Комментарии 10

Профессия программист

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

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

А так как мне уже 50+ и я в теме со времен средней школы, возможно мой опыт будет полезен.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 5.2K
Комментарии 21

Почему принцип программирования на уровне интерфейсов ошибочен и приводит к плохой архитектуре

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *

(Disclaimer!) Данная точка зрения не претендует на роль абсолютной истины и является лишь результатом моего опыта, чтения, наблюдений и размышлений.

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

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

Читать далее
Всего голосов 47: ↑38 и ↓9 +29
Просмотры 5.9K
Комментарии 40

Быстрая разработка прототипа HTR системы на открытых данных

Программирование *Открытые данные *Машинное обучение *

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

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

Пятьдесят лет на стезе программирования. Часть II. Первые шаги. Учёба в Дзержинке и я еду в Вентспилс-8

Программирование *Учебный процесс в IT Карьера в IT-индустрии История IT Биографии гиков
imageПервая часть моего повествования заканчивалась поступлением в Военную орденов Ленина, Октябрьской Революции и Суворова академию им. Ф. Э. Дзержинского (сокращённое название ВА им. Ф. Э. Дзержинского, ВАД или просто Дзержинка). Логотип второй части напоминает мне мои первые шаги на пути программиста. Это, прежде всего, годы учёбы в Дзержинке, куда я поступил на второй факультет, на котором готовили специалистов по автоматизированным системам управления ракетными комплексами. На факультете для курсантов было две профилирующие кафедры. Кафедра №23 готовила военных инженеров по эксплуатации вычислительной техники, а кафедра №25 готовила военных инженеров-программистов. Именно с сентября 1971 года в академии начали готовить военных инженеров-программистов из курсантов. Наш курс состоял из пяти отделений, в трёх из которых готовились военные инженеры по эксплуатации вычислительной техники, а в двух отделениях готовились будущие военные инженеры- программисты. Я проходил обучение в отделениях программистов. Почему во множественном числе? Просто обучение я начинал в отделении А, а затем меня перевели в отделение В. Поэтому оба отделения для меня стали родными. Именно эмблема кафедры №25 и находится в центре логотипа статьи. С одной стороны, с эмблемой всё понятно, а с другой стороны, сегодня она требует некоторого пояснения. Символы «к. 25» — ясно, что это кафедра №25. Символы «МО» являются аббревиатурой от словосочетания «Математическое Обеспечение». В те далёкие времена было принято говорить не программное обеспечение ЭВМ, а именно математическое обеспечение ЭВМ. Ну и последнее, символы «МО» располагаются поверх одного из основных носителей (наряду с перфокартами) программ и вообще данных – перфоленты. Сегодня трудно представить, что и программы и исходные данные для них готовились не в файлах на каком-нибудь носителе (диски, флешки и т.д.), а готовились на бумажном носителе, будь то перфолента или перфокарта
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Просмотры 4K
Комментарии 13

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

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

Недавно я сел за работу по настройке производительности FlutterFolio, приложения, которое было создано в качестве демонстрации дизайна для Flutter Engage. С помощью одного изменения я сделал FlutterFolio значительно быстрее.

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

Автотесты на расширениях

Блог компании Sportmaster Lab Тестирование IT-систем *Программирование * *

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

Меня зовут Игорь Левин. Я разработчик 1С в Sportmaster Lab. Наша команда работает над проектом Shipdocs 2.0 — это продукт, который состоит из двух информационных систем. Он обеспечивает информационную поддержку бизнес-области закупок и цепей поставок. Часто мы автоматизируем кроссфункциональные бизнес-процессы на стыке с международной логистикой и финансовым управлением.

Вот ключевые функции Shipdocs 2.0:

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

Ещё одна автоматизация сталинки

Программирование *Умный дом DIY или Сделай сам
Из песочницы

Очередная статья c теорией и практикой на тему домашней автоматизации...

Являюсь давним читателем хабра, но только сейчас созрел написать статью. 

В ней будет отображено как текущее состояние дел, так и немного истории. Конкретного финиша нет: совершенствовать можно почти до бесконечности. 

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 11K
Комментарии 27

С++23 — feature freeze близко

Блог компании Яндекс Программирование *C++ *IT-стандарты *
Прошло четыре месяца с прошлой онлайн-встречи ISO-комитета, а значит, настало время собраться опять.



В этот раз в черновик нового стандарта C++23 добавили весьма полезные и вкусные новинки:

  • operator[](int, int, int)
  • монадические интерфейсы для std::optional
  • std::move_only_function
  • std::basic_string::resize_and_overwrite
  • больше гетерогенных перегрузок для ассоциативных контейнеров
  • std::views::zip и zip_transform, adjacent, adjacent_transform

Подробности об этих и других (даже более интересных!) вещах, а также о том, что за диаграмма стоит в шапке, ждут вас под катом.
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 5.6K
Комментарии 92

Упрощаем работу в Camunda Modeler с помощью плагинов

Блог компании ДомКлик Программирование *Java *Визуальное программирование *
Tutorial

Camunda Modeler позволяет довольно легко набросать BPMN-схему процесса, перетащив элементы в рабочую область и соединив их стрелками. Далее дела обстоят немного сложнее: нужно быть очень внимательным, чтобы с первого раза для каждого элемента заполнить необходимые поля в панели свойств и не допустить ни одной ошибки. С этой точки зрения создание исполняемых BPMN-схем напоминает программирование в Блокноте.

Например, очень легко в Script Task написать скрипт на Groovy и забыть указать Script Format. Тогда по умолчанию движок попробует выполнить переданную ему строку как JUEL-код, и вряд ли мы получим ожидаемый результат.

Было бы неплохо иметь что-то вроде подсказок, на какие поля нужно обратить внимание, какое значение вписать, какие флаги отметить, и так далее в соответствии с принятыми в команде практиками. К счастью, Camunda Modeler позволяет расширять функциональность, не форкая всё приложение, а применив плагины, что мы и решили сделать.

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

Выгорание в IT — результаты свежего исследования

Программирование *Исследования и прогнозы в IT Инфографика Здоровье IT-компании
Перевод

Привет, Хабр. Увидел неплохую англоязычную статью с результатами свежего исследования в секторе IT про выгорание в целом и в период пандемии в частности. Упустив в своем переводе такие подробности оригинала, как "Что такое выгорание", "Что вызывает выгорание" и "Как избежать выгорания" (я уверен, что вы уже видели статьи про это, а если не видели - легко найдете в том числе на хабре), перейду сразу к цифрам.

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

4 дня из жизни unix-инженера, хроника разработки скрипта

Блог компании МегаФон Настройка Linux *Системное администрирование *Программирование *Серверное администрирование *

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

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

Итак в путь >>
Всего голосов 4: ↑2 и ↓2 0
Просмотры 2.6K
Комментарии 10

Функциональный подход в Jetpack Compose: каррирование функций

Блог компании Surf Программирование *Разработка мобильных приложений *Разработка под Android *Функциональное программирование *

Современные языки программирования всё чаще становятся мультипарадигменными, и Kotlin не исключение. С появлением Jetpack Compose наблюдается уход от ООП  в функциональное программирование. Изучая новые средства разработки, такие как Jetpack Compose, давайте вспомним и те, которым уже около 60 лет. А главное — разберёмся, как их можно применить к современным подходам для получения большей эффективности.

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

Почему я написал плагин Ataman и как он может изменить вашу работу с IDE от JetBrains

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

Ataman – это мой плагин для IDE-шек на базе Intellij. Единственное его предназначение – сделать возможным использование leader key биндингов в моём основном рабочем инструменте – Android Studio.

В этом посте я расскажу, зачем я его сделал и вы удивитесь, как раньше-то без него жили!

А ну, удиви
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 10K
Комментарии 36

А вы знаете, где сейчас используется Лисп?

Блог компании Typeable Программирование *Lisp *Функциональное программирование *

Введение


Лисп — второй по старшинству из ныне живых высокоуровневых языков программирования (после Fortran) и первый функциональный язык. Он был разработан в 1958 году и сильно изменился с тех пор, породив множество диалектов и оказав значительное влияние на развитие других языков. На данный момент наиболее известные диалекты: Common Lisp, Scheme, Racket и Clojure.



Слева: Лисп-машина в музее MIT.
Справа: Лисп-машина Symbolics 3640, фото Michael L. Umbricht и Carl R. Friend (Retro-Computing Society of RI)


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


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


Мы в Typeable любим и применяем функциональное программирование, а влияние Лиспа на функциональные языки всё ещё сильно, поэтому нам стало интересно разобраться в этом вопросе.

Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Просмотры 19K
Комментарии 34

Как сделать 240 килобайт исходников на ПЛК для управления одними рольставнями

Программирование *Совершенный код *Промышленное программирование *SCADA *Умный дом

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

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

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