Социальные сети Рунета
Среда, 24 апреля 2024

PostgreSQL: Серверное программирование на «человеческом» языке (PL/Perl, PL/Python, PL/v8) Postgres знаменит своей расширяемостью, что относится и к поддержке процедурных языков (PL). Никто не может похвастаться языком списком языков такой длины, а потенциально этот список и вовсе не ограничен: для того, чтобы подключить язык к серверу, не требуется сверхусилий. М...

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.Язык Dart, не смотря на свою возрастающую популярность, на данный момент до с...

Опыт конвертирования кода C# в код Rust Постановка задачи Код на языке C# нужно перевести в код на Rust. Точнее, требуется такая процедура перевода (разработка продолжается на C#), чтобы в любой момент можно было получить работающий код на Rust. Эту задачу я решал для языков Java, Python, JavaScript и PHP, написав...

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1 Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый....

А что, если без Python? Julia для машинного обучения и вообще Мы всегда хотим писать код быстро, но за это приходится платить. На обычных высокоуровневых гибких языках можно быстро разрабатывать программы, но после запуска они работают медленно. Например, чудовищно медленно cчитать что-то тяжелое на чистом Python. Си-подобные языки раб...

Какой язык программирования учить, чтобы за вами охотились HR крупных компаний Десять лет назад язык программирования PHP был в лидерах рейтингов, а сейчас проекты в веб все чаще написаны на JavaScript и Python. Обидно потратить на изучение языка год или два, а потом остаться без работы. Мы в Mail.ru Cloud Solutions изучили аналитику, исследования, ...

Как я устал от JavaScript и создал свой собственный язык программирования За свою карьеру я успел поработать со множеством языков программирования. Писал flash-игры на ActionScript 3 и Android-игры на Java, сервера на Java, Scala и NodeJS (JavaScript), скрипты на Python, веб и мобильные приложения на React (JavaScript). И на каком бы языке я не пи...

[Из песочницы] Пишем на языке С/C++ в Linux под KolibriOS Вступление KolibriOS – миниатюрная операционная система, ядро и большинство программ которой написано на ассемблере. Это, конечно же, не значит, что на других языках программирования писать для KolibriOS нельзя. Данная статья — инструкция по настройке toolchain'а для Linux. ...

IT-валентинка: 53 способа признаться в любви Однажды на Zoom-созвоне нашей команды нить дискуссии ушла за пределы планируемого. На удаленке такое часто случается, потому что всем не хватает обычного «кухонного» общения в офисе. Разговор начался с итальянской книги, где на всех языках мира написано «Я тебя люблю». Пото...

Какой язык программирования учить в 2020-м? Статей с подобными заголовками существует уже множество. Но в них постоянно какая-то дичь! Смотрите, Google ещё до основных результатов советует такое: HCL, Карл! Язык, который не просто очень далёк от «Самых Популярных», но ещё и создан для конфигурации, так что его вообще...

Wrike уходит от использования языка Dart. Часть 1 Данной статьёй мы хотим пролить свет на технический стек Wrike: каким он был раньше и каким мы видим его в будущем. Мы расскажем о том, почему пять лет назад мы выбрали язык Dart основным для frontend-разработки нашего продукта и почему сейчас мы решили посмотреть в сторону ...

16 советов по разработке для Android на языке Kotlin. Часть 1 Перед прочтением этих советов вам желательно ознакомиться с документацией Kotlin и самостоятельно изучить язык на сайте try.kotlinlang.org. Поскольку эти советы направлены именно на использование Kotlin в контексте разработки под Android, у вас также должен быть опыт работ...

[Перевод] Стоит ли переходить с Python на Nim ради производительности? Nim — это сочетание синтаксиса Python и производительности C Несколько недель назад я бродил по GitHub и наткнулся на любопытный репозиторий: проект был полностью написан на языке Nim. До этого я с ним не сталкивался, и в этот раз решил разобраться, что это за зверь. Сна...

[Перевод] Kotlin vs Java И снова здравствуйте. В преддверии старта нового курса «Backend-разработка на Kotlin», мы подготовили для вас перевод статьи, в которой рассказывается о том, чем же Kotlin отличается от Java. «Kotlin – новый язык программирования, который заставит вас отказаться от Java»...

5 самых известных проектов, написанных на Golang О языке программирования Golang, созданном корпорацией Google, на Хабре рассказывали много и подробно, так что мы не будем в очередной раз обсуждать достоинства этого инструмента. Лучше поговорим об известных проектах, которые написаны на Go — они являются доказательством...

[Из песочницы] Особенности применения языков программирования С и С++ при разработке ПО, связанного с функциональной безопасностью Крис Хоббс (Chris Hobbs) в своей фундаментальной работе «Embedded Software Development for Safety-Critical Systems» [1] приводит распространенное среди программистов мнение о том, что накладывать ограничения на языки программирования, это как заказывать Пикассо создание ка...

16 советов по разработке для андроид на языке Kotlin. Часть 2 Всем привет. В преддверии старта базового курса по Android-разработке, продолжаем делиться полезным материалом. Перед прочтением этих советов вам желательно ознакомиться с документацией Kotlin и самостоятельно изучить язык на сайте try.kotlinlang.org. Поскольку эти советы...

[Перевод] 10 хитростей Python, о которых полезно знать По данным StackOverflow Python — это самый быстрорастущий язык программирования. Например, в одном из отчётов Forbes речь идёт о том, что использование Python выросло на 456%. Python применяется в Netflix, в IBM, и ещё в тысячах компаний по всему миру. Давайте не забывать и ...

Книга «Экстремальный Cи. Параллелизм, ООП и продвинутые возможности» Привет, Хаброжители! Для того чтобы овладеть языком C, знания одного лишь синтаксиса недостаточно. Специалист в области разработки должен обладать четким, научным пониманием принципов и методик. Книга «Экстремальный Cи» научит вас пользоваться продвинутыми низкоуровневыми в...

[Перевод] 6 рекомендаций по разработке безопасных Go-приложений В последние годы Golang распространяется всё шире и шире. Успешные проекты, вроде Docker, Kubernetes и Terraform, сделали огромные ставки на этот язык программирования. Go стал стандартом де-факто в области создания инструментов командной строки. А если говорить о безопаснос...

Проект LLHD — универсальный язык описания аппаратуры Буквально на днях на arXiv-е была выложена очень занятная статья швейцарских исследователей, в которой представлены подробности проекта LLHD. Это проект создания многоуровневого промежуточного представления для языков описания аппаратуры, наследующий идеологию и принципы про...

[Из песочницы] Почему в 2020 году мы по-прежнему выбираем Ruby? Привет, Хабр! Представляю вашему вниманию перевод статьи «Why is Ruby still our choice in 2020?» автора Vira Vashkovska. Мы — опытная команда Ruby on Rails разработчиков. Некоторые из нас занимаются разработкой на Ruby уже многие годы и знают его как свои пять пальцев. Вот ...

Автоматизация задач администрирования API VMware vSphere с использованием Ansible В предыдущей статье мы рассмотрели взаимодействие с VMware с помощью Python. В этой же обсудим взаимодействие с VMware с помощью Ansible. Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки ...

И мышонок, и лягушка. Универсальный Компилятор В серии про надежное программирование [1], [2] остался незаслуженно забытым Swift. Я, честно говоря, просто не считал его кроссплатформенным, а работающим исключительно для macOS/iOS. Тут случайно выяснилось, что Swift также поддерживается такой средой разработки, как Re...

Рейтинг языков программирования от DOU.UA: JavaScript опередил Java, а Python — PHP Профильный украинский ресурс DOU.UA представил результаты ежегодного опроса о языках программирования, составленного по результатам опроса 10 тыс. отечественных IT-специалистов. В коммерческой разработке JavaScript наконец существенно опередил Java и стал самым популярным яз...

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

Umka: новый статически типизированный скриптовый язык Только что вышла первая версия разработанного мной статически типизированного встраиваемого скриптового языка Umka. Он призван сочетать гибкость привычных скриптовых языков с защитой от ошибок типов на этапе компиляции в байт-код. Основная идея языка — Explicit is better th...

VKWave — фреймворк для разработки ботов ВКонтакте Привет, Хабр! Сегодня я хочу рассказать о замечательной библиотеке для разработке ботов ВКонтакте с помощью языка программирования Python. VKWave VKWave — это фреймворк для разработки ботов ВКонтакте, написанный с помощью asyncio. Основные цели проекта — дать возможность ра...

Почему мы выбрали Kotlin целевым языком компании. Часть 1: Ретроспектива Компания ДомКлик существует с 2015 года, и за это время мы успели сменить целевой язык для разработки ключевых сервисов с Java на Kotlin. Меня зовут Александр Коцюруба, я IT Lead в компании ДомКлик. Отвечая на вопрос, почему мы перешли на Kotlin, я опубликую два материала:...

Haproxy — программирование и конфигурирование средствами Lua Сервер Haproxy имеет встроенные средства для выполнения скриптов Lua.Язык программирования Lua для расширения возможностей различных серверов используется очень широко. Например, на Lua можно программировать для серверов Redis, Nginx (nginx-extras, openresty), Envoy. Это впо...

Рейтинг языков программирования TIOBE: январь 2020 Актуальный рейтинг популярности языков программирования в мире по данным индекса TIOBE. Язык C стал языком программирования 2019.

Сложности работы с ANTLR: пишем грамматику Ruby В «Ростелеком-Солар» мы разрабатываем статический анализатор кода на уязвимости и НДВ, который работает в том числе на деревьях разбора. Для их построения мы пользуемся оптимизированной версией ANTLR4 – инструмента для разработки компиляторов, интерпретаторов и трансляторов...

Разработка под iOS и Android: рейтинг языков программирования 2020 Разработка приложений под iOS и Android уже давно стала мейнстримом, но обилие языков по прежнему смущает начинающих разработчиков. Вы хотите стать мобильным разработчиком, но не знаете какой язык программирования выбрать? Не знаете на чем писать свое мобильное приложение дл...

«Hello, Checkmarx!». Как написать запрос для Checkmarx SAST и найти крутые уязвимости Привет Хабр! В статье я хочу рассказать о нашем опыте создания своих запросов в Checkmarx SAST. При первом знакомстве с этим анализатором может сложиться впечатление, что кроме поиска слабых алгоритмов шифрования/хеширования и кучи false positive, он ничего больше не...

Правила локализации для разработчиков Сначала делаем, а думаем потом — или наоборот? Alconost рассказывает, какие особенности локализации стоит учесть на этапе разработки игры. Эту статью мы написали как ответ на повторяющиеся вопросы разработчиков: «Что с моей игрой не так? Почему перевода недостаточно? Как...

Разбираемся в рекурсии Привет, Хабр. Про рекурсию ходит много шуток, и она традиционно считается одной из сложных для понимания тем в computer science, поэтому давайте сегодня немного о ней поговорим. А именно, давайте обсудим, как выражать доказуемо завершимые вычисления. Зачем это надо? Рекурси...

История о том, как я разработал язык программирования Привет Хабр! Меня зовут Ильдар. Мне 29 лет. Программирую с 2003 года. За свою жизнь создал 4 фреймворка и язык программирования. В этом посте я поделюсь своим опытом, инсайтами, которые я получил при разработке языка программирования BAYRELL Language. Заранее прощу прощения ...

[Перевод] Как Django может обрабатывать 100 миллионов запросов в день Сегодня я буду писать о Django — фреймворке, который верно служит мне на протяжении последних пяти лет. Он помог мне преуспеть в разработке высоконагруженных решений, используемых сегодня миллионами пользователей. Действительно, Python не очень «быстрый» язык программировани...

[Перевод] 50 лет Паскаля В начале 1960-х в мире доминировали языки Фортран (Джон Бэкус из IBM) для научного и Кобол (Жан Саммет из IBM и Министерство обороны) для коммерческого применения. Программы писались на бумаге, затем перфорировались на картах, после чего результатов их выполнения ждали цел...

Парсинг сайта кинотеатра на Golang Всем привет, в этой статье мы рассмотрим небольшой пример кода, написанный для сбора данных с сайта на популярном сегодня языке программирования Go. Эта статья будет особенно интересна тем, кто много слышал о Go, но пока еще не попробовал его самостоятельно. Для одного из...

Google научился переводить с татарского. Google Translate впервые за четыре года расширил поддержку языков Компания Google объявила о расширении языковой поддержки для сервиса Google Translate (Google Переводчик).  Теперь Google Переводчик может работать с текстами на таких языках: руанда, ория или одия, татарский, туркменский и уйгурский. На этих языках ...

[Перевод] Что такое «this» и с чем его едят Автор фото — Sebastian Herrmann. Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Daniel James «What is 'this'? Why is that?». Что такое «this» и с чем его едят Когда я начинал изучать JavaScript, концепция this показалась мне крайне запутанной. ...

[Перевод] PHP 8 в восьми кусочках кода В PHP 8 появилось много новых функций, в этом списке мы рассмотрим самые выдающиеся. Disclaimer: ссылка на эту статью на английском языке уже была в посте последнего PHP дайджеста. Если владеете языком достаточно, возможно, стоит перейти к оригиналу, там очень много сносок ...

[Перевод] Три редко используемых возможности Python 3, о которых каждый должен знать Python 3 существует уже какое-то время и довольно много разработчиков, особенно те, кто только начинает свой путь в Python, уже используют эту версию языка. Несмотря на то, что множество новых возможностей широко используются, похоже, что некоторые остались за кадром. В это...

[Из песочницы] Игра для программистов FuncBall Многие, как и я, любят футбольные симуляторы и многие увлекаются программированием. Когда-то, в далёком 2004 году, наигравшись в ФИФУ я подумал, что было бы неплохо совместить два моих увлечения в одной игре, в которой игроки управлялись бы не вручную, а написанным для них с...

[Из песочницы] SwiftUI по полочкам Каждый раз, когда в языке программирования появляется новый Фреймворк, рано или поздно, появляются люди, которые изучают язык именно с него. Вероятно так было и в IOS разработке во времена появления Swift: поначалу он рассматривался как дополнение к Objective-C — но я этого ...

Язык программирования karasic Привет, друг. Как известно, каждый уважаемый кодер рано или поздно пишет свой логер, парсер json и язык программирования. Поскольку первое и второе мы уже написали, то нам ничего не остаётся, как представить наши наработки по новому инновационному языку программирования kara...

ExtendScript Работа с файлами Всем привет.В предыдущей статье я рассказал, как написать скрипт для Adobe After Effects. Напомню, что наш скрипт создает окно в интерфейсе программы. В этом окне можно вводить и выполнять код Extendscript - язык сценариев для программ Adobe. Теперь хочу предложит вам некото...

Численный FORTH Форт и сейчас известен, главным образом, среди разработки встроенных систем, как что-то вроде необычайного высокоуровневого ассемблера, например, для микроконтроллеров - AmForth и Mecrisp. Однако, когда-то давным давно был известен в другой ипостаси - как язык программирован...

PostgreSQL Antipatterns: «Должен остаться только один!» На SQL вы описываете «что» хотите получить, а не «как» это должно исполняться. Поэтому проблема разработки SQL-запросов в стиле «как слышится, так и пишется» занимает свое почетное место, наряду с особенностями вычисления условий в SQL. Сегодня на предельно простых примера...

[Перевод] Python-пакеты для Data Science Python — это один из самых распространённых языков программирования. Хотя стандартные возможности Python достаточно скромны, существует огромное количество пакетов, которые позволяют решать с помощью этого языка самые разные задачи. Пожалуй, именно поэтому Python и пользуетс...

Modern Reverse Engineering: TTD Обратная разработка сегодня это достаточно трудоемкий процесс в первую очередь потому, что в период с 2000х по 2020 годы вышло в свет много языков программирования, которые ставили перед собой задачу стать интуитивными и простыми для изучения, безопасными и в то же время эфф...

[Перевод] Life in the Fast Lane Серия статей о GC Don’t Fear the Reaper Life in the Fast Lane Go Your Own Way. Часть первая: Стек Go Your Own Way. Часть первая: Куча В первой из серии статей о GC я представил сборщик мусора в языке D и...

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

[Из песочницы] DevOps инструменты не только для DevOps. Процесс построения инфраструктуры автоматизации тестирования с нуля Часть 1: Web / Android Примечание: данная статья является переводом на русский язык оригинальной статьи «DevOps tools are not only for DevOps. Building test automation infrastructure from scratch». Однако все иллюстрации, ссылки, цитаты и термины сохранены на языке оригинал...

[Перевод] Пол Грэм: «Краткость = сила» На HackerNews сегодня подняли обсуждение статьи Пола Грэма 2002 года и мы решили воскресить её перевод из небытия. «The quantity of meaning compressed into a small space by algebraic signs, is another circumstance that facilitates the reasonings we are accustomed to carry...

Сканирующее окно по массивам NumPy CoLab блокнот с примерами Возможно сделать скользящее окно (rolling window, sliding window, moving window) по массивам NumPy на языке программирования Python без явных циклов. В данной статье рассматривается создание одно-, двух-, трех- и N-мерных скользящих окон по массивам...

[Из песочницы] Падение популярности PHP: не все так однозначно? Привет, Хабр! Представляю вашему вниманию перевод статьи "PHP in decline: The rise and fall of a programming language" автора Сара Шлотхауэр (Sarah Schlothauer). Когда-то PHP был одним из самых популярных языков программирования, однако на сегодняшний день он продо...

Nvidia CUDA можно использовать на GPU Intel. Для этого понадобится инструмент ZLUDA Платформа Nvidia CUDA существует на рынке уже почти 15 лет. Это программный комплекс, представляющий собой расширение языка программирования C, и предназначенный для неграфических вычислений на GPU.  При этом CUDA всегда была эксклюзивом карт Nvidia...

[Перевод] Заметки о Unix: надёжная работа с API C-библиотеки Unix возможна только из программ, написанных на C Для того чтобы полностью реализовать требования системы верификации источника системных вызовов, разработчики OpenBSD хотят, чтобы Go выполнял бы системные вызовы через C-библиотеку, а не напрямую, из собственной среды выполнения (а у Go есть некоторые причины поступать имен...

Атрибут cleanup Цитата из документации GCC [1]: Атрибут cleanup предназначен для запуска функции, когда переменная выходит из области видимости. Этот атрибут может быть применён только к auto-переменным, и не может быть использован с параметрами или с static-переменными. Функция должна прин...

Kotlin: язык программирования как продукт Язык программирования — это тоже продукт. Он помогает разработчикам выражать свои идеи так, чтобы их мог интерпретировать компьютер. Может показаться, что развивать язык — это брать последние достижения теории языков программирования, реализовывать их и из года в год выкатыв...

[Из песочницы] Nuxt + Django + GraphQL на примере Предисловие Nuxt — "фреймворк над фреймворком Vue" или популярная конфигурация Vue-based приложений с использованием лучших практик разработки на Vue. Среди них: организация каталогов приложения; включение и преконфигурация самых популярных инструментов в виде Nux...

Разработка приложений и Blue-Green deployment опираясь на методологию The Twelve-Factor App с примерами на php и docker Для начала немного теории. Что такое The Twelve-Factor App? Простыми словами, это документ призванный упростить разработку SaaS приложений, помогает тем что, осведомляет разработчиков и DevOps инженеров о проблемах \ практиках которые чаще всего встречались в разработке со...

Что такое Windows PowerShell и с чем его едят? Часть 3: передача параметров в скрипты и функции, создание командлетов Во второй части цикла рассматривались основы языка программирования PowerShell, а сейчас стоит разобраться с использованием написанного на нем кода для задач администрирования. Самый очевидный способ это сделать — запустить сценарий. Кроме него существует возможность созда...

С стал языком года по версии TIOBE  Почему язык программирования C, которому уже 50 лет, все еще востребован? TIOBE  объясняет это растущей популярностью Интернета вещей (IoT) и огромным количеством небольших интеллектуальных устройств, которые выпускаются в настоящее время.

5 языков любви сделают ваши отношения крепче Чтобы сохранить отношения, научитесь говорить на языке партнёра.

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

[Перевод] Не начинайте учиться кодингу с Python, начните с языка C Python удивителен своей способностью продвигать программирование. Он как будто является подтверждением популярной идеи «если вы знаете английский, то должны знать, как писать код». Благодаря синтаксису, напоминающему английский язык, парадигме отступов и огромному количест...

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

Let vs where в Ocaml/Haskell Языки Ocaml и Haskell ведут родословную из языка ISWIM, описанного в знаменитой статье Питера Лендина "The next 700 programming languages". В ней автор, отталкиваясь от языка LISP, создаёт новый язык программирования и, в частности, вводит ключевые слова let, and и where, ко...

Встречайте чувашский язык в Яндекс.Переводчике: как мы решаем главную проблему машинного перевода Регионы России — это не просто границы на карте. В каждом регионе есть свои культурные традиции, во многих — свои языки. Машинный перевод мог бы помочь сохранять и применять эти языки — в частности, публиковать статьи в Википедии. Но как быть, если данных для обучения машинн...

ChaiScript — скриптовый язык для C++ Когда возникает потребность внедрить скриптовый язык в проект на C++, первым делом большинство людей вспоминает Lua. В этой статье его не будет, я расскажу о другом, не менее удобном и легком в освоении языке под названием ChaiScript. Читать дальше →

[Из песочницы] Urban Bot или как писать чат-ботов для Telegram, Slack, Facebook… на React.js В этой статье я хочу познакомить с новой библиотекой Urban Bot, которая адаптирует React для написания чат-ботов. Ниже я расскажу, зачем эта библиотека появилась на свет, какие дает преимущества и как написать вашего первого чат-бота. Чат-бот — это чаще всего отдельный чат ...

[Из песочницы] Новый взгляд на code style Как знания нейропсихологии могут помочь программисту в стилизации кода? До того как заняться программированием, я очень долго и глубоко изучал нейропсихологию. Впоследствии, эти знания помогли мне добиться высоких результатов в разработке, за короткий промежуток времени. В...

Как мы автоматизировали портирование продуктов с C# на C++ Привет, Хабр. В этом посте я расскажу о том, как нам удалось организовать ежемесячный выпуск библиотек для языка C++, исходный код которых разрабатывается на C#. Речь идёт не об управляемом C++ и даже не о создании моста между неуправляемым C++ и средой CLR — речь об автомат...

Член программного комитета PyConRu 2020 отвечает на вопросы об языке Python: актуальный взгляд и немного парселтанга Антон Патрушев – очень опытный python-разработчик, постоянный член программного комитета PyCon Russia и старый друг конференции. Он работает с языком python уже много лет, начинал свое знакомство с ним в Naumen, теперь является СТО в Spherical, а еще это была именно ид...

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

[Перевод] Пошаговое руководство по созданию торгового бота на любом языке программирования У меня нет квалификации, позволяющей давать советы, касающиеся инвестиций, законов, или чего-то подобного. Я и не пытаюсь этого делать. Цель руководства заключается в том, чтобы, в учебных целях, рассказать о программировании торговых ботов. Вы должны понимать, что, создав б...

[Из песочницы] Разбираемся с управлением памятью в современных языках программирования Привет, Хабр! Представляю вашему вниманию перевод статьи «Demystifying memory management in modern programming languages» за авторством Deepu K Sasidharan. В данной серии статей мне бы хотелось развеять завесу мистики над управлением памятью в программном обеспечении (далее...

Можно ли писать скрипты на C++? Недавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гугл...

[Перевод] Новые возможности TypeScript, повышающие удобство разработки TypeScript, во многих отношениях, больше похож не на язык программирования, а на мощный инструмент для линтинга и документирования кода, который помогает писать более качественные JavaScript-программы. Одна из наиболее заметных сильных сторон TypeScript — это поддержка неко...

Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20 Предполагается, что читатель уже имеет начальные знания языка C, что-то знает о Zigbee, чипе cc2530, методах его прошивания и использования, а также знаком с такими проектами, как zigbee2mqtt. Если нет — подготовьтесь или сходите почитать на https://myzigbee.ru и https://w...

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

[recovery mode] PM2: подходим к вопросу процесс-менеджмента с умом Буквально пару часов назад у меня завязался спор на тему того, что Node.JS слишком медленная для крупных проектов и ей стоит предпочесть Golang, Rust, PHP, etc. Основным аргументом противоположной стороны в этом споре был факт однопоточности JavaScript. Якобы при разработке ...

Как учить немецкий язык онлайн: месяц 1 Ни для кого не секрет, что программист — востребованная профессия по всему миру. Многие программисты не против получить оффер из-за рубежа, но для того, чтобы это стало реальностью, желательно не только быть первоклассным специалистом в своей области, но и знать, помимо англ...

[Перевод] Смотрим на Chapel, D, Julia на задаче вычисления ядра матрицы Введение Кажется, стоит вам отвернуться, и появляется новый язык программирования, нацеленный на решение некоторого специфического набора задач. Увеличение количества языков программирования и данных глубоко взаимосвязано, и растущий спрос на вычисления в области «Data Scien...

[Перевод] Python. Язык, на котором просто мыслить Привет, Хабр! У нас возможен предзаказ долгожданного второго издания книги "Простой Python". Перевод первого издания вышел в 2016 году и по сей день остается в числе бестселлеров. Поскольку мы убеждены, что Python — лучший язык программирования для начинающих, ...

Частичное применение и каррирование функций в Лиспе Одно из известных преимуществ Лиспа над другими языками программирования состоит в том, что в Лиспе проще, чем где бы то ни было, реализуются различные новые механизмы, появляющиеся в современных языках программирования. Причин тому несколько: это и гомоиконность Лиспа (един...

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

Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.1 Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech» Я давно занимаюсь не только нативной разработкой (как iOS, так и Android), но и кросс-платформенной. В свое время я очень плотно писала на Xamarin (iOS, Android, так и Forms...

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

Google Переводчик получил поддержку 5 новых языков Команда Google Translate объявила о добавлении в приложение поддержки 5 новых языков. Это первое обновление такого рода за последние четыре года. Среди новых языков значатся киньяруанда, одия, татарский, туркменский и уйгурский. В мире на них разговаривают около 75 млн челов...

[Перевод] Релиз Dart 2.10: на шаг ближе к null-safety Команда языка Dart постепенно приближается к одному из самых мажорных релизов — null-safety. Эта фича есть у многих лидеров рынка, включая Kotlin и TypeScript. По понятным причинам этот релиз нельзя сделать в виде рубильника: одним днём и простым апдейтом. Набравшее скорост...

Security Week 18: текстовая бомба для iOS Если из разных видов уязвимостей собрать воображаемый сборник лучших хитов, то различного рода ошибки обработки ввода займут там лучшие места. Одним из древнейших способов вывода программы или всей системы из строя является zip-бомба — архив небольшого размера, который разво...

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

[Перевод] Пишем интерпретатор BASIC в стиле 80-х В течение нескольких лет я работала над личным проектом создания (а на самом деле исследования) «фальшивого эмулятора», то есть написанного на JavaScript эмулятора никогда не существовавшего компьютера. Эта машина должна была стать данью памяти восьми- и шестнадцатибитным ...

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

[Перевод] Баги, которые разрушили ваш замок Уолтер Брайт — «великодушный пожизненный диктатор» языка программирования D и основатель Digital Mars. За его плечами не один десяток лет опыта в разработке компиляторов и интерпретаторов для нескольких языков, в числе которых Zortech C++ — первый нативный компилятор C++. Он...

[Из песочницы] Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2 Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эт...

[Перевод] Почему Discord переходит с Go на Rust Rust становится первоклассным языком в самых разных областях. Мы в Discord успешно используем его и на серверной, и на клиентской стороне. Например, на стороне клиента в конвейере кодирования видео для Go Live, а на стороне сервера для функций Elixir NIF (Native Implemente...

Java-дайджест за 10 марта Есть такая штука, Milkman — это альтернатива Postman, расширяемый воркбенч для работы с запросами и ответами с интерфейсом на JavaFx и с идеей «всё есть плагин». Несмотря на плагинную архитектуру, эта штука почти не использует reflection, и поэтому стало возможно пересобр...

9 четких инструментов для изучения и прокачки английской лексики В Оксфордском словаре английского языка почти 450 000 слов! Но если вы учите язык как иностранный, их совсем не нужно запоминать все и сразу. Чтобы полноценно общаться на английском языке, вполне достаточно всего лишь 2000–3000 слов. При должном усердии и небольшом количе...

28 лет спустя. Microsoft хоронит Visual Basic Компания Microsoft раскрыла свои планы по поводу языка программирования Visual Basic. Многие разработчики начинали Visual Basic но, судя по всему, дни этого языка сочтены.  В официальном блоге команды .NET сообщается, что Microsoft не планирует больше развивать да...

Какую цену мы платим за использование async/await в языках JS / C# / Rust Привет, Хабр ! Работая с Javascript / Typescript, я давно заметил, что асинхронное API работает медленней чем аналогичное синхронное, и даже знал что так должно быть. Но на последнем проекте асинхронная работа с файловой системой стала узким местом, и я озаботился замерами. ...

[Перевод] Почему стоит начать использовать FastAPI прямо сейчас Привет, Хабровчане! В преддверии старта занятий в группах базового и продвинутого курсов «Разработчик Python», мы подготовили для вас еще один полезный перевод. Python всегда был популярен для разработки легковесных веб-приложений благодаря потрясающим фреймворкам, таким к...

Umka. Жизнь статической типизации в скриптовом языке В своё время посты на Хабре и Reddit о статически типизированном скриптовом языке Umka вызвали весьма активную дискуссию. Прошедшие полтора месяца позволили мне избавиться от некоторых заблуждений, развить язык и дать чуть более вразумительные ответы на вопросы публики. ...

«Google Переводчик» поможет вам лучше понимать иностранную речь Google Translate научится переводить диалоги Удобство приложений и сервисов Google действительно сложно переоценить. YouTube, Google Maps, Google Assistant, Google Search – каждый из этих и многих других продуктов поискового гиганта считается лучшим в своём роде. Но успех пр...

[Из песочницы] Golang + Phaser3 = MMORPG — Делаем базу для бесконечной генерации мира На русскоязычных ресурсах трудно найти подходящую информацию, возможно этот материал позволит вам понять некоторые основы для создания многопользовательских игр и не только. Я планирую сделать серию статей по созданию 2.5D MMORPG, то бишь в изометрии, наш мир будет разделе...

[Перевод] Исследование системы типов для проверки корректности музыки Сегодня много говорят о представлении музыки с помощью языков программирования, поскольку это, с одной стороны, интересная задача для инженеров, а с другой — является частью задачи универсального описания музыки. Как это выглядит? Для многих языков созданы среды программи...

У некоторых пользователей Edge Chromium устанавливается на неправильном языке Сегодня состоялся официальный релиз нового браузера Microsoft Edge на базе Chromium, который вы уже можете скачать с официального сайта. Однако запуск прошёл не совсем гладко. Некоторые пользователи сообщают о том, что браузер устанавливается на другом языке. Компания Micro...

Миграция с MySQL на PostgreSQL Публикация основана на докладе тренера и инженера технической поддержки Zabbix Александра Петрова-Гаврилова. Многих волнует вопрос о том как мигрировать с MySQL на PostgreSQL и воспользоваться преимуществами TimescaleDB. Зачем мигрировать Первый вопрос, который обычно воз...

LabVIEW NXG 5.0 — Основы и Блок-Диаграмма Это первая статья из небольшого цикла о графическом языке программирования G, который используется в LabVIEW. Язык этот пока не очень популярен — по индексу TIOBE на май 2020 года LabVIEW находится на сороковом месте аккурат между Julia и Haskell. Выпуск LabVIEW Community Ed...

[Из песочницы] Большое тестирование процессоров различных архитектур Предисловие Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm. Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с испо...

[Из песочницы] Компилятор Befunge на Python В процессе подготовки к курсу «Основы компиляторов» для студентов 4-го курса я изучал различные эзотерические языки программирования. Вот хорошая статья на эту тему. В статье самым интересным мне показался язык Befunge (Крис Пресс, 1993 год), особо отмечу три его особенности...

Книга «Head First. Изучаем Go» Привет. Хаброжители! Go упрощает построение простых, надежных и эффективных программ. А эта книга сделает его доступным для обычных программистов. Основная задача Go — эффективная работа с сетевыми коммуникациями и многопроцессорной обработкой, но код на этом языке пишется ...

[Перевод] Вещи, которые я бы хотел знать до начала разработки собственной игры Последние два года я в свободное от основной работы время разрабатывал личный проект — игру, которую выпустил в Steam пару месяцев назад. На протяжении всего процесса я делал много ошибок, и вел записи для своего «прошлого я». Этот список может не относиться ни к вашей игр...

Спор о первом языке программирования: окончательное решение Некоторые относятся к спору о выборе первого языка программирования примерно так: Говорят, на выбор влияет миллион фаторов и спорить по этому поводу не имеет никакого смысла. Тем не менее, холивары продолжаются. Виталий Брагилевский решил поставить точку и на Saint AppsC...

Numl – Альтернативный язык разметки и стилизации для веб Всем привет! Меня зовут Андрей, я профессионально разрабатываю веб-интерфейсы уже больше 11 лет и последний год развиваю проект Numl, который можно назвать языком разметки и стилизации для веб. В этой статье я расскажу, как в попытке перебороть ряд особенностей CSS и упрости...

Podlodka #150: Эволюция языков программирования В программировании, как и в лингвистике, языки не высечены в камне. В зависимости от решаемых задач и популярных в конкретный период времени парадигм, языки меняются и эволюционируют.

[Из песочницы] О проблемах транслятора Python и переосмысление языка — Сколько нужно архитекторов, чтобы реализовать язык программирования? — Сто. Один будет писать реализацию, а 99 — говорить, что могут сделать лучше. В этой статье я хочу затронуть не столько сам язык, сколько детали реализации CPython и его стандартной библиотеки, которые г...

[Перевод] Взгляд на технологии последнего десятилетия Прим. перев.: Эта статья, ставшая хитом на Medium, — обзор ключевых (за 2010-2019 годы) изменений в мире языков программирования и связанной с ними экосистемы технологий (особое внимание уделяется Docker и Kubernetes). Её оригинальным автором является Cindy Sridharan, котора...

Portmanteau или слово-чемодан: как шутка в английском языке превратилась в новый способ создавать необычные слова Каждый год в словарь английского языка добавляется примерно 1000 новых слов. А это значит, что каждый день создается примерно 3 новых. И как минимум одно из этих трех — это «портмонто». Что это за смесь бульдога с носорогом? Всего лишь слово, которое было создано из комбина...

Опыт использования gRPC в Почте Mail.ru Привет, Хабр! Я работаю в команде Антиспама Почты Mail.ru. В этой статье я бы хотел рассказать про наш опыт запуска сервиса с пропускной способностью около 3 миллионов запросов в минуту на базе технологии gRPC. Это современная технология передачи данных по сети, которая реа...

Транскомпилируемые языки: проекты конвертации код-в-код Источник: Ward Cunningham Транспиляция — это конвертация кода одного языка в другой. С помощью специального транспилера (транскомпилятора) один язык программирования общего назначения можно перенести на любой другой язык программирования общего назначения. Если необходимо...

[Перевод] Terraform, моно-репозитории и compliance as code Всем привет. OTUS открыл набор в новую группу по курсу «Инфраструктурная платформа на основе Kubernetes», в связи с этим мы подготовили перевод интересного материала по теме. Возможно, вы один из тех, кто использует terraform для Infrastructure as a Code, и вам интересно...

Алгебраические типы данных и Python Возможно, кто-то из читателей, увидев заголовок этой статьи, подумает что-нибудь вроде:"Что?! Алгебраические типы данных?! Это же что-то из мира функциональных языков программирования. Python?! Ну нет... Где Python со своей динамической утиной типизацией, а где типы дан...

Google BERT в поиске на всех языках охватывает около 10% запросов Сотрудник Google Дэнни Салливан прояснил в Twitter, что глобальный запуск BERT не повлиял на долю охватываемых им запросов. Как и на английском языке в США, в других языковых версиях поисковой системы BERT влияет на примерно 10% запросов. «Это зависит от языка, но в целом со...

Решил 50 задач и ответил на вопрос — Python или JavaScript? Привет, друзья! Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но... со мной работает много людей, которые пишут код на Python вокруг много разговоров про Python повсюду преподают Python ...

[Перевод] Руководство по FFmpeg libav Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg в качестве библиотеки (в дальнейшем в тексте — libav, т.е. library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая,...

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

Как Python используется в разработке мобильных приложений До определенного времени о разработке приложений под Android на языке Python не могло быть и речи. Однако энтузиасты все же смогли приспособить один из лучших языков программирования, который в основном используется для веб-разработки, к индустрии мобильных приложений. И хо...

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

Подборка 143 переводов эссе Пола Грэма (из 184) Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ. Своими помыслами и разумом Пол Грэм врывается в широкий спек...

Ask me anything! Задай вопрос Android-команде Badoo Предлагаем продолжить добрую традицию Ask me anything на Хабре и поговорить про разработку Android-приложений. Сегодня и завтра Android-команда Badoo будет на связи и ответит на любые вопросы о разработке и тестировании приложений с многомиллионной аудиторией, даст советы на...

Функция-конвертер для отправки сообщений на русском языке в Телеграмм из Микротик РоутерОС Мессенджер Телеграмм крайне удобен для уведомления о работе IT-оборудования, чем активно пользуются СисАдмины. Популярные WhatsApp и Viber поддерживают API но в них нет встроенной технологии создания своих ботов. РоутерОС известной компании Микротик не позволяет штатными с...

[Перевод] Поиск лучшего фронтенд-инструмента 2021 года Любой, кто начинает карьеру в сфере разработки программного обеспечения, скорее всего столкнётся с задачей выбора первого языка, фреймворка или набора инструментов. Уверен, каждому из вас это знакомо. Ответ на вопрос о том, что нужно изучать самым первым, найти не так уж и п...

[Из песочницы] Реализация алгоритма определения ширины объекта с помощью ультразвукового дальномера и энкодеров на языке RobotC Доброго дня! Сегодня я бы хотел поделиться реализацией алгоритма определения ширины объекта с помощью ультразвукового дальномера и энкодеров на языке программирования RobotC (с использованием платформы VEX EDR). Предистория Недавно, мне предложили провести мастер-класс на ...

Микросервисы на С++. Выдумка или реальность? В этой статье я расскажу о том, как создал шаблон (cookiecutter) и настроил окружение для написания REST API сервиса на С++ с использованием docker/docker-compose и пакетного менеджера conan. Во время очередного хакатона, в котором я участвовал в качестве бекенд-разработч...

Immutable. Постигаем хитрости неизменяемых структур данных в функциональных языках Для подписчиковРяд языков программирования заявляют неизменяемость переменных (immutability) как одну из своих главных фич. Среди них семейство ML (OCaml, F#, Standard ML) и Haskell, а также молодые Clojure и Rust. Если ты незнаком с ними, то наверняка удивлялся: а чем это о...

Как вывести сайт под запад в ТОП10, не зная ничего о SEO В этой статье описан личный опыт двух человек: меня и моей коллеги Марии. Опыт людей, у которых совершенно не было знаний в SEO. Во второй половине 2019 года на нас легла ноша в виде продвижения 2-х сайтов проекта Ratatype. Сайтов молодых (рождены в 2019) и на иностранный ры...

[Из песочницы] Получение видео из Tik Tok без водяного знака Добрый день, всем любителям habr. В этой статье я хочу поделиться с Вами как можно получить видео с Tik Tok без водяного знака, с помощью такого языка как PHP. В настоящее время Tik Tok набирает популярность и было бы не прилично не написать про него маленькую статейку, и ...

Эмилия Кларк рассказала о дотракийском языке Хотя ее персонаж весь сериал говорил на вымышленном дотракийском языке, последний монолог отнял все силы актрисы. «Я знала, что эти слова очень важны, и я много времени потратила на то, чтобы их запомнить, — рассказала Кларк порталу NME, — впервые за весь период съемок в «Иг...

Учимся понимать чертовски быструю английскую речь на примере выступлений Эдди Мерфи и Эминема Студенты, которые учат английский язык как второй, часто не готовы к реальной скорости речи носителей языка. Это на учебных пособиях и аудировании все предельно понятно, а когда нейтив начинает тараторить, ты такой «Чё?». Мы расскажем вам, как научиться понимать быструю ре...

Книга «Android. Программирование для профессионалов. 4-е издание» Привет, Хаброжители! Познакомьтесь с возможностями программирования Android на языке Kotlin! Множество примеров приложений с четкими объяснениями ключевых концепций и API позволят легко разобраться в самых трудных задачах. Эта книга посвящена прикладным методам разработки ...

Использование механизмов криптографических токенов PKCS#11 на платформе Android Подошло время задействовать криптографические механизмы PKCS#11 и на платформе Android. Кто-то может сказать, что нет аппаратных токенов для Android. Но, если это и так, то это только временное явление. Но уже сегодня можно поставить программный токен или использовать облач...

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

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

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 2 Представляю вашему вниманию руководство по Sequelize. Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RD...

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

Интеграция проекта VueJS+TS с SonarQube В своей работе мы активно используем платформу SonarQube для поддержания качества кода на высоком уровне. При интеграции одного из проектов, написанном на VueJs+Typescript, возникли проблемы. Поэтому хотел бы рассказать подробней о том, как удалось их решить. В данной стать...

[Из песочницы] Очереди сообщений в PostgreSQL с использованием PgQ Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в ни...

Do you speak English? Лучшие приложения для изучения английского Чтобы с гордостью отвечать «Yes, I do!», стоит обратить внимание на мобильные приложения, которые помогут вам освоить иностранный язык. Мы проанализировали лучшие из них. ...

Книга «C++ для профи» Привет, Хаброжители! С++ — популярный язык для создания ПО. В руках увлеченного программиста С++ становится прекрасным инструментом для создания лаконичного, эффективного и читаемого кода, которым можно гордиться. «C++ для профи» адресован программистам среднего и продвину...

Дефицит программистов на языке COBOL угрожает государственной системе США Ряд штатов США начал спешный поиск всех, кто имеет навыки работы с языком программирования COBOL. Причина – балансирование на грани паралича государственных сервисов, работа которых базируется на древних мейнфреймах, некоторым из которых уже по 40 лет. До наступления пандеми...

Как устроен Sporth — ЯП для музыкальных live-сессий Один из предыдущих материалов мы посвятили OpenMusic — инструменту для написания музыки на ООП. Мы также говорили о языках программирования, заточенных под создание аудиокомпозиций. Сегодня мы решили продолжить тему и рассказать о языке Sporth. Его разработали специально, ч...

[Перевод] Повествование через окружение или почему кат-сцены не панацея Dead Space в свое время высоко оценили не только за атмосферу и геймплей, но и за дизайн окружения, через который игроку подавалось повествование. Один из таких находится в самом начале игры, когда игрок прибывает на космический корабль «Ишимура». Игрок попадает в слабо ос...

Хюгге для разработчиков, или как я съездила на KotlinConf Хабр, привет! Меня зовут Мария, и я программист. Пишу под Android и несколько лет делала это на Java — на фоне универских плюсо́в она мне казалась очень удобной. Но прогресс не стоит на месте, и, придя полтора года назад в Яндекс.Деньги, я познакомилась с молодым языком Ko...

Неочевидный Kotlin. Советы, трюки, подводные камни программирования для Android Для подписчиковKotlin — один из самых грамотно спроектированных, понятных и логичных языков последних лет. На Kotlin можно начать создавать приложения для Android, не изучая язык, но достигнуть мастерства одной лишь практикой вряд ли получится. Эта статья — сборник советов, ...

Проверь себя в Swift: паззлер для любителей головоломок Мы, команда мобильной разработки в SimbirSoft, при создании iOS-приложений широко используем язык Swift – достаточно безопасный, быстрый и выразительный. Для тех, кто знаком со Swift, мы приготовили несколько головоломок–паззлеров. Попробуйте определить результат выполнения ...

[Перевод] Способы использования Math.random() в JavaScript Math.random() — это один из API JavaScript. Это — функция, которая возвращает случайные числа. Диапазон возвращаемых чисел представлен значениями от 0 (включая 0, то есть, она может вернуть 0) до 1 (не включая 1, то есть — единицу она вернуть не может). Math.random(); // во...

Разработка плагинов для Zabbix Agent 2 На последнем Zabbix Summit 2019 вместе с выходом Zabbix 4.4 был анонсирован новый Zabbix Agent 2, ключевая фишка которого — возможность написания плагинов к нему на языке Go. И многие сразу стали спрашивать: а как же, собственно, эти плагины писать, как они устроены? Где взя...

Очереди на очереди: Magento 2 + RabbitMQ Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. Когда-то давно, когда я только начинал знакомство с Magento 2 (для краткости буду называть ее M2), мне понадобилось автоматизировать обработку однотипных событий при разработке одного решения. Тогда я удивился, наско...

Алексей Найдёнов. ITooLabs. Кейс разработки на Go (Golang) телефонной платформы. Часть 1 Алексей Найдёнов, CEO ITooLabs, рассказывает про разработку телекоммуникационной платформы для операторов связи на языке программирования Go (Golang). Алексей также делится опытом развертывания и эксплуатации платформы в одном из крупнейших азиатских операторов связи, которы...

[Из песочницы] Web Scraping. Часть 1 Введение Всем привет. Недавно у меня возникла идея о том, чтобы поделиться с интересующимся кругом лиц о том как пишутся скраперы. Так как большинству аудитории знаком Python все дальнейшие примеры будут написаны на нём. Данная часть рассчитана для того, чтобы познакомить те...

LG раскрыла особенности нового дизайнерского языка для своего следующего смартфона Флагманские телефоны LG за последние пару лет выглядели очень похожими друг на друга. Отличия в дизайне устройств G7, V40, G8, V50, G8X и V60 были незначительными. Но в дальнейшем ситуация изменится. Компания готовится к выходу нового смартфона, который будет использовать со...

Как коронавирус влияет на языки программирования: рейтинг TIOBE Результаты мирового рейтинга популярности языков программирования на начало мая 2020.

[Перевод] Вы правда знаете о том, что такое массивы? Там, где я тружусь, от веб-разработчиков ожидают знания PHP и JavaScript. Я, проводя собеседования, обнаружил, что достаточно задать всего один простой вопрос для того чтобы узнать о том, насколько глубоко разработчик понимает инструменты, которыми пользуется каждый день. Во...

[Из песочницы] Конфуций и Маргарита Вступление Соревнований по машинному обучению как и платформ, на которых они проводятся, существует немало и на любой вкус. Но не так часто темой контеста является человеческий язык и его обработка, еще реже такое соревнование связано с русским языком. Недавно я принимал у...

16 советов по разработке для андроид на языке Kotlin. Часть 3 И еще раз здравствуйте! В преддверии старта базового курса по Android-разработке, делимся заключительной частью статьи «16 советов по разработке для андроид на языке Kotlin». Читать первую часть Читать вторую часть LATEINIT Одной из ведущих особенностей Kotlin является е...

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

[Из песочницы] 9 ключевых алгоритмов машинного обучения простым языком Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum. Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix...

[Из песочницы] Typescript Compiler API: возьми управление компилятором в свои руки В разработке приложений на Typescript всегда есть этап сборки проекта. Обычно для этого используются системы сборки и автоматизации workflow, такие как webpack или gulp, обвешанные достаточным количеством плагинов, либо процесс сборки размазывается в командах package.json ...

Как перевести текст в Word на Mac Microsoft Word имеет встроенный переводчик, что удобно, если ваши познания в иностранных языках не очень обширны Владение английским языком – очень важный навык, который сильно пригодится вам в жизни. Несмотря на то что кое-кто уверенно настаивает на том, что пройдёт несколь...

[Перевод] Как написать собственную файловую систему на языке Rust Исходные данные и результаты работы программ должны где-то храниться для дальнейшего использования. Их хранение нужно организовать так, чтобы мы могли быстро получить нужную информацию. За эту задачу отвечает Файловая система (FS): она предоставляет абстракцию для устройств,...

[Перевод] Руководство по версиям и возможностям Java Здесь есть все, что вам нужно знать о различных версиях и функциях Java. Java 8, Java 11, Java 13 — какая разница? Вы можете использовать это руководство, чтобы найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, Oracl...

Вопросы развития открытого образования на русском языке обсудят участники Всероссийского семинара 12 и 13 марта 2020 года состоится Всероссийский семинар, на котором будут рассмотрены итоги проектов и программ по развитию русского языка, реализованных в 2019 году в рамках ведомственной целевой программы «Научно-методическое, методическое и кадровое обеспечение обучения р...

Трепещущий Kivy. Обзор возможностей фреймворка Kivy и библиотеки KivyMD Kivy и Flutter — два фреймворка с открытым исходным кодом для кроссплатформенной разработки. Flutter: создан компанией Google и выпущенный в 2017 году; в качестве языка программирования использует Dart; не использует нативные компоненты, рисуя весь интерфейс внутри со...

Бесполезный REPL. Доклад Яндекса REPL (read-eval-print loop) бесполезен в Python, даже если это волшебный IPython. Сегодня я предложу одно из возможных решений этой проблемы. В первую очередь доклад и мое расширение TheREPL будет полезны тем, кого интересует более быстрая и эффективная разработка, а также т...

NoVerify: PHP-линтер, который работает быстро Для PHP есть хорошие утилиты статического анализа: PHPStan, Psalm, Phan, Exakat. Линтеры хорошо выполняют свою работу, но очень медленно, потому что почти все написаны на PHP (или Java). Для личного использования или небольшого проекта это нормально, но для сайта с миллионам...

C# vs Kotlin Когда речь заходит о сахаре и модных фичах в языках программирования, среди первых вариантов в уме всплывают C# и Kotlin. Поскольку эти два языка занимают схожие ниши, то есть, строго типизированы, обладают сборкой мусора, кроссплатформенны, применяются как на бекенде, так и...

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

[Перевод] Фантомные типы в Swift Не каждый язык со статической системой типов обладает такой строгой типобезопасностью, как Swift. Это стало возможным благодаря таким особенностям Swift, как фантомные типы (phantom types), расширения универсальных типов и перечисления со связанными типами. На этой неде...

[Перевод] Sysbench и распределение случайных величин Перевод статьи подготовлен специально для студентов курса «Базы данных». То, что вы, возможно, не знали о генерации случайных чисел в sysbench Sysbench — это популярный инструмент для тестирования производительности. Первоначально он был написан Петром Зайцевым в начале ...

В Google Translate появились новые языки С 2016 года компания Google не добавляла в переводчик не одного языка. Теперь разработчики компаний Google обновили сервис переводчики тем самым добавив новые языки. Теперь Google переводчик обзавелся следующими языками: татарский, одия, киньяруанда, туркменский и уйгурский...

[recovery mode] Хочешь заработать миллион? Всем известна фраза Рона Хаббарда «…хочешь заработать миллион — создай свою религию», которую он выдал в 1950 году. Тогда он создал ещё одну деструктивную секту, можно это было в 60-х в США — которая до сих пор пытается утвердиться в мире, как религия. Хотя, сорри, друзья. ...

Топ-12 самых интересных ИТишных динамических инфографик Динамические (развернутые во времени) гистограммы очень прикольные. Есть в них особая драма, борьба, накал страстей. Плюс к этому анимация дает особое понимание происходящего. все течет, все изменяется, неизменны только перемены… Инфографика/видеографика/динамическая статис...

Книга «Golang для профи: работа с сетью, многопоточность, структуры данных и машинное обучение с Go» Привет, Хаброжители! Вам уже знакомы основы языка Go? В таком случае эта книга для вас. Михалис Цукалос продемонстрирует возможности языка, даст понятные и простые объяснения, приведет примеры и предложит эффективные паттерны программирования. Изучая нюансы Go, вы освоите...

[Из песочницы] Запускаем браузерные тесты с Cucumber и Selenoid в Gitlab CI c Allure отчетом Cucumber – это инфраструктура тестирования, позволяющая преодолеть разрыв между разработчиками ПО и бизнес-менеджерами. Тесты пишутся на простом языке управляемой поведением разработки (BDD) в стиле Given, When, Then (условия, операция, результат), которой понятен любому пол...

Фейки — это ерунда или серьезно? Без долгих прелюдий: я считаю, что фейки — зло, они приносят огромный ущерб и с ними надо бороться, особенно в условиях кризисов или жесткой неопределенности (например, во время истерики вокруг COVID-19). Также я считаю, что бороться надо не так, как привыкло наше государст...

Книги Develop in Swift Fundamentals и Develop in Swift Explorations от Apple У Apple обновились две книги — Develop in Swift Fundamentals и Develop in Swift Explorations. Обе теперь ориентированы на Xcode 11, обе посвящены разработке на языке Swift, обе бесплатны. Первая больше погружена в разработку приложений, вторая больше просто о влиянии п...

IT-словарик для не-айтишников Приходилось ли вам объяснять IT-понятия людям из других сфер? Это хитрая задача: при объяснении одного IT-термина нельзя пользоваться другими, потому что они тоже будут непонятными. Представим, что ваш знакомый захотел «войти в айти», впервые открыл Хабр и офигел — как объяс...

Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке Работая в компании IT-аутсорса в качестве руководителя 3 линии поддержки, задумался, как автоматизировать подключение сотрудников по RDP, через VPN к серверам десятков клиентов.Таблички с адресами, паролями и прочими настройками серверов, конечно, хорошо, но поиск клиента и ...

Легкости перевода. Cisco Webex получит поддержку русского языка Уже в начале 2021 года платформа для корпоративных коммуникаций Cisco Webex научится вести синхронный перевод видеоконференций с иностранного на русский язык и составлять протокол встречи для русскоязычной аудитории. Это – только одна из более чем 50 инноваций, которые компа...

Microsoft полностью перепишет часть Windows на своем новом языке программирования Как пишет CNews со ссылкой на Zdnet, новый язык базируется на набирающем популярность Rust, развитием которого занимается компания Mozilla, разработчик известного браузера Firefox. Проект получил название Verona и, по данным издания, ключевое его отличие от Rust заключается ...

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

Обучение модели естественного языка с BERT и Tensorflow Рис. 1. Фразы и предложения в векторном представлении модели естественного языка Обработка естественного языка (Natural Language Processing, NLP) – это область вычислительной лингвистики, ориентированная на разработку машин, способных понимать человеческие языки. Разработк...

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

Мой опыт разработки на языке Nim Привет, Хабр! Уже довольно давно я пишу свой игровой фреймворк — такой pet project для души. А так как для души нужно выбирать что-то, что нравится (а в данном случае — на чём нравится писать), то выбор мой пал на nim. В этой статье я хочу поговорить именно про nim, про его...

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

Как писать книгу в LaTeXe по физике. Cтатья 1 Это моя первая статья на Хабре. Глава 1. Введение 1.1 Позвольте представиться и почему я это пишу    Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по...

Презентации WWDC и Platforms State of the Union доступны с субтитрами на русском языке Русский язык впервые включён в список языков, на которые переводятся основные события конференции WWDC. Перевод содержит точные термины, названия элементов пользовательского интерфейса и многое другое.

Podlodka #146: Изучение английского языка Так сложилось, что английский язык – это де-факто язык международного общения. А еще, так сложилось, что английский – основной язык в IT.

Как переводить сообщения в ватсапе и телеграм на Android Думаю, очень многим, если вообще не всем, так или иначе приходилось общаться с иностранцами. Это мог быть продавец на AliExpress, коллега из иностранного филиала или тот немец, с которыми вы познакомились в таверне в литовском Каунасе. В таких случаях всегда в качестве язык...

HowToCode — Адаптация системного подхода к разработке для React и TypeScript Наверное, каждый программист рано или поздно начинает задумываться о качестве своего кода. И, скорее всего, я не ошибусь, если скажу, что добрая половина разработчиков им вечно недовольна. Мне мой код тоже нравился редко: функции, казалось, можно было бы делать и покороче, л...

Пишем свой capped expirationd модуль для tarantool Какое-то время назад перед нами встала проблема чистки кортежей в спейсах tarantool. Чистку нужно было запускать не тогда, когда у tarantool уже заканчивалась память, а заранее и с определенной периодичностью. Для этой задачи в tarantool есть модуль, написанный на Lua, под ...

[Перевод] Разработка чрезвычайно быстрых программ на Python Ненавистники Python всегда говорят, что одной из причин того, что они не хотят использовать этот язык, является то, что Python — это медленно. Но то, что некая программа, независимо от используемого языка программирования, может считаться быстрой или медленной, очень сильно ...

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

[Перевод] Расширяемые расширения в JavaScript Привет, Хабр! Обращаем ваше внимание на долгожданную допечатку книги "Выразительный JavaScript", которая только-только пришла из типографии. Тем, кто еще не знаком с творчеством автора книги (при всей энциклопедичности она понравится и начинающим разработчикам) ...

[Перевод] Измерение производительности JavaScript-функций Измерение времени, которое уходит на выполнение функции — это хороший способ доказательства того, что одна реализация некоего механизма является более производительной, чем другая. Это позволяет удостовериться в том, что производительность функции не пострадала после неких и...

Первый в мире язык программирования на классическом китайском Выпускник Университета Карнеги-Меллона (США) и уроженец Шанхая Линдун Хуан разработал новый язык программирования, основанный на старинном классическом китайском языке. То, что задумывалось как личный проект, хобби, привлекло к себе широкое внимание пользователей. Хуан не ус...

[Из песочницы] Нужно ли нам озеро данных? А что делать с хранилищем данных? Это статья перевод моей статьи на medium — Getting Started with Data Lake, которая оказалась довольно популярной, наверное из-за своей простоты. Поэтому я решил написать ее на русском языке и немного дополнить, чтобы простому человеку, который не является специалистом по раб...

[Перевод] Как переписать код на Rust В предыдущей статье мы говорили о том, как избежать переписывания библиотеки на Rust, когда вам это не нужно. Но как насчёт тех случаев, когда это действительно необходимо? В большинстве языков вам придётся переписывать всю библиотеку с нуля, а первые результаты появятся бл...

Обучение универсальной модели NLU c BERT и Multitask Learning В современной компьютерной лингвистике понимание смысла написанного или сказанного достигается с помощью моделей естественного языка (NLU). С постепенным ростом аудитории виртуальных ассистентов Салют встает вопрос об оптимизации наших сервисов, работающих с естественным яз...

Локализация React приложении Всем привет! До нового года остаются считанные дни. Наткнулся на свой список дел, которые собирался сделать в 2019-м, среди них оказалось и написать статью на Хабр. Самое время заскочить в уходящий вагон). Сразу оговорюсь, пиарю свой велосипед, если такое Вам не по душе, то ...

[Перевод - recovery mode ] Конец хайпа: Что ждёт язык Scala дальше Вокруг языка Scala всегда было много хайпа и неоднозначных суждений. Сейчас споры поутихли, но в твитере появились сообщения об уходе некоторых значимых участников из компаний активно развивающих экосистему языка Scala. В связи с чем в очередной раз пошли разговоры о том, ч...

Hernia, Preservative, Сrest, Absent и другие 60 английских слов, которые часто переводят неверно Наш язык имеет немало заимствованных слов. Иностранные слова в оригинале на самом деле могут иметь совсем другие значения, чем слышимые и употребляемые нами. И таких примеров довольно много. А иногда настоящий перевод в нашем языке эволюционировал и стал означать нечто связа...

Алгоритм Google BERT научился обрабатывать запросы на русском языке Ранее он работал только с английским

[Перевод] Крупные компании, использующие Node.js Node.js — это серверная среда выполнения JavaScript, исполняющая код вне браузера. Эта технология идеально подходит для многих веб-сайтов, специализирующихся на стриминге, играх, тайм-трекерах, приложениях соцсетей и т.п. Она обеспечивает масштабируемое и быстрое решение д...

1С: Ассемблер — пишем чистый байт-код для стековой машины 1С: Предприятие Стековые машины используются в большом множестве современных языков программирования. Они просты для понимания и при этом достаточно эффективны. Хотите попробовать одну такую в действии? Все вы, наверное, слышали, что 1С-ники жалуются на свою систему, считая язык 1С недост...

[Из песочницы] Простейший тренажер английских слов с использованием Питона и Балаболки Существует большое количество различных методик изучения иностранных языков вообще и английского в частности. Но какая бы методика ни была, учить слова все равно надо. Для этих целей есть очень много различных тренажеров с выбором слов для изучения. Тем не менее, их возмож...

[Из песочницы] Бакалавриат в США: Нетрадиционный путь в топ-вузики Прочитала я пару статей на хабре после того как прошла по ссылке со стороннего ресурса и мне как-то грустно стало так как я сама учусь в топ-университете в США и знаю нескольких из России. habr.com/ru/post/469275 habr.com/ru/post/230789 Однако, моя история не совсем станд...

[Из песочницы] ConfigureAwait: часто задаваемые вопросы Привет, Хабр! Представляю вашему вниманию перевод статьи «ConfigureAwait FAQ» автора Стивен Тауб. Async/await добавили в .NET более семи лет назад. Это решение оказало существенное влияние не только на экосистему .NET — оно также находит отражение во многих других языках...

Можно ли программировать на iPad Pro? При желании iPad Pro можно приспособить к программированию Вы заметили, что на большинстве фото и во многих офисах программисты в основном используют MacBook? Причин этого выбора множество, но одна из главных — ноутбуки Apple имеют консоль Bash и схожи с Linux, при этом пред...

Ошибки в JavaScript: исправляем, обрабатываем, чиним Всем привет! Вдохновленные успехом предыдущей статьи, которая была написана в преддверии запуска курса "Fullstack разработчик JavaScript", мы решили продолжить серию статей для новичков и всех тех, кто только начинает заниматься программированием на языке JavaScript. Cегодн...

7 полезных расширений для изучения английского в Google Chrome Мы всегда говорим, что учить английский язык нужно комплексно. Даже когда работаешь с документацией или смотришь мемасики. Если вы много работаете за компьютером, то браузерные дополнения могут сильно помочь вам в изучении английского языка. Не будем долго рассусоливать. В...

[Перевод] Эндрю Ын «Страсть к машинному обучению». Перевод глав 36-46 Три года прошло с момента публикации первых глав книги Эндрю Ына (Andrew Ng) «Machine Learning Yearning». Если вы подписаны на хаб «Машинное обучение», то нет никакой нужды представлять вам её автора и скорее всего саму книгу вы уже давно прочитали на языке первоисточника. П...

[Перевод] BERT, ELMO и Ко в картинках (как в NLP пришло трансферное обучение) 2018 год стал переломной точкой для развития моделей машинного обучения, направленных на решение задач обработки текста (или, что более корректно, обработки естественного языка (Natural Language Processing, NLP)). Быстро растет концептуальное понимание того, как представлять...

Эксперимент VTrade. Часть 1: Биржи и современные технологии Цикл статей освещает попытку создания реактивной системы силами одного человека с минимальным бюджетом и в кратчайшие сроки. Цели эксперимента: Более глубокое понимание предметной области и улучшение технической экспертизы Выявление сильных и слабых сторон использования фу...

Язык R для пользователей Excel (бесплатный видео курс) В связи с карантином многие сейчас львиную долю времени проводят дома, и это время можно, и даже нужно провести с пользой. В начале карантина я решил довести до ума некоторые проекты начатые несколько месяцев назад. Одним из таких проектов был видео курс "Язык R для пол...

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

[Из песочницы] Расчет временных ограничений для ПЛИС простым языком Здравствуйте. Эта статья написана для самых-самых новичков в мире ПЛИС. В ней я попытаюсь максимально просто и понятно рассказать что такое временны́е ограничения (timing constraints), накладываемые на проекты под ПЛИС. Статья создана на основе собственного опыта попыт...

Вирусный кризис увеличил потребность в программистах, знающих COBOL На днях губернатор Нью-Джерси заявил, что штату экстренно нужны программисты, знающие язык COBOL. Им предстоит обновить программное обеспечение 50-летней давности, которое используется 40-летними мэйнфреймами, работающими в системе занятости. Это может показаться сюрреа...

[Перевод] Трансформеры как графовые нейронные сети TL;DR: перевод поста Chaitanya Joshi "Transformers are Graph Neural Networks": схемы, формулы, идеи, важные ссылки. Публикуется с любезного разрешения автора.Друзья-датасаентисты часто задают один и тот же вопрос: графовые нейронные сети (Graph Neural Networks) — п...

Стали известны цены на подписку на Spotify в России Буквально вчера в сети появилась информация о стоимости подписки на сервис потокового аудио Spotify в России. Информация о ценах была найдена в официальном приложении Spotify на Android. Так, например, индивидуальная подписка обойдется Вам в 169 рублей/месяц, студенческая в...

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

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

Node.js в 2020: Выйди и зайди нормально За последние 5 лет Node.js очень изменился, но знания о платформе у сообщества остались на уровне 2013-2015 годов, все те же подходы, все те же проблемы. Сообщество плохо следит за новыми возможности, а если и узнает про них, то это не влияет на написание ежедневного кода. ...

[Перевод] Используйте парсинг вместо контроля типов В 2019 году была написана потрясающая статья Parse, don’t validate. Я крайне рекомендую изучить её всем программистам (а также недавнее дополнение к ней Names are not type safety). Её основная идея заключается в том, что существует два способа проверки валидности входящих ...

[Из песочницы] 3D картинка на питоне с (почти) нормальной производительностью Можно считать эту статью ответом на вот эту, где речь идет о написании подобной вещи на C++, с прицелом на новичков, то есть с упором на простой читаемый код вместо высокой производительности. После прочтения статьи у меня возникла идея повторить написанную автором программ...

ArangoDB в реальном проекте ArangoDB гибридная (документная и графовая) база данных. К ее положительным сторонам относятся: мощный и удобный язык запросов AQL JOIN (даже более мощный чем в реляционных базах данных) репликация и шардинг ACID (в кластере работает только в платной версии) Из менее сущес...

SLAE — Security Linux Assembly Expert Exam Security Linux Assembly Expert — онлайн-курс и экзамен по основам 32-битного языка ассемблера процессоров семейства Intel в Linux-системах в контексте информационной безопасности. Курс будет полезен пентестерам, инженерам по информационной безопасности и всем, кто желает ра...

Язык запросов для TSDB. Улучшаем PromQL (Александр Валялкин, VictoriaMetrics) Добрый день! Сегодня я вам расскажу немного про PromQL. Это язык запросов для time-series баз данных. Затем расскажу, как мы его усовершенствовали в разрабатываемой нами time-series базе данных VictoriaMetrics. Читать дальше →

Библиотеки для декодирования видео. Сравнение на Python и Rust Многие задаются вопросом — насколько медленный Python в операциях декодирования? Правда ли, что компилируемые языки дают прирост скорости во всем, чего касаются? Что быстрее: OpenCV или ничего? Ответы на эти и другие бесполезные вопросы под катом вы прочитать не сможете. Там...

Шикарное нововведение Google Assistant. Теперь можно найти песню, насвистывая или напевая мотив Часто бывает так, что в голове вертится мотив какой-то песни, но вы не помните ни названия, ни слов, поэтому найти её в Сети становится очень сложно. Google обновила Google Assistant, который теперь поможет вам, даже если вы не знаете слова, исполнителя и не облада...

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

[Перевод] Выбираем лучший бэкенд-фреймворк 2021 года Недавно мы опубликовали статью, автор которой размышлял о том, какой язык программирования, JavaScript, Python или Go, лучше всего подойдёт для бэкенд-разработки в 2021 году. Сегодня мы представляем вашему вниманию перевод ещё одного материала того же автора. Здесь он пытает...

[Из песочницы] Как развивались комментарии к коду с 1940-х до 2020 года А никак они не развивались. С самых первых языков программирования и по сей день комментарии коду — это всего лишь статичный текст (за некоторыми исключениями, о которых я расскажу). Ну а что там еще можно улучшить или придумать — спросите вы. Давайте поразмышляем на эту...

[Из песочницы] Web2Text: глубокое структурированное извлечение содержимого web-страницы Привет, Хабр! Представляю вашему вниманию перевод статьи "Web2Text: Deep Structured Boilerplate Removal" коллектива авторов Thijs Vogels, Octavian-Eugen Ganea и Carsten Eickhof. Веб-страницы являются ценным источником информации для многих задач обработки естествен...

CreateRemoteThread для Linux В WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить ...

Создаём с нуля высоконагруженное приложение на Tarantool В 2013 я пришел в Mail.ru Group, и я решал задачу, в которой мне нужна была очередь. Есть много разных инструментов для построения очередей, но я решил для начала узнать, что уже имеется в компании. Услышал, что есть такой продукт — Tarantool. Узнал, как он устроен, и мне п...

Mockito. Из чего он приготовлен и как его подавать? Думаю, многим довелось выпить какой-нибудь напиток, который глубоко впился в наши вкусовые рецепторы, что нам хочется пить его каждый день. Так вот для меня таким «напитком» стал Mockito. Один раз написав простенький тест, можно вернуть себе веру в магию. Я всё ещё помню, к...

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

Новая эра веб-разработки или «всё уже есть» Ты никогда не решишь проблему, если будешь думать так же, как те, кто ее создал. Альберт Эйнштейн В далеком 1989 году британский ученый Тим Бернерс-Ли создал системы обмена документами Enquire, которая и стала прототипом глобальной сети интернет. Где были им представлены ря...

Asciidoc для подготовки сложной документации В заголовке использовано слово сложной, под которым можно понимать все, что угодно. Утверждение о том, что 2 * 2 = 4, если вдуматься, тоже очень не просто. Но в данном случае всё банальнее. Речь идёт о ЕСКД, ГОСТ, ОСТ и тому подобных скучных терминах, отягчаемых бюрократиче...

Сервис на языке Dart: введение, инфраструктура бэкэнд Оглавление 1. Введение 2. Backend 2.1. Инфраструктура. 2.2. Доменное имя. SSL. 2.3. Серверное приложение на Dart. … 3. Web 3.1. Заглушка «Under construction» … 4. Mobile … Введение Меня, Flutter-разработч...

SoC Snapdragon 865 показала всю свою мощь в первом тесте Ну что же, мы пока не знаем параметров SoC Snapdragon 865, но уже можем оценить производительность. Пока лишь в Geekbench, то есть речь о производительности процессора. Как видим, она впечатляет. 4300 баллов в однопоточном режиме и 13 300 баллов — в многопот...

[Перевод] Мой ответ тем, кто полагает, что значение TDD преувеличено Однажды я разговорился с разработчиком из компании-клиента о программном обеспечении. Мне стоило бы понять то, что разговор пошёл куда-то не туда, когда собеседник сказал о том, как нам, разработчикам ПО, повезло: «Мы обманом заставляем организации платить нам за, как кажетс...

Пишем telegram бота на языке R (часть 1): Создаём бота, и отправляем с его помощью сообщения в telegram Аудитория telegram ежедневно растёт с геометрической прогрессией, этому способствует удобство мессенджера, наличие каналов, чатов, и конечно возможность создавать ботов. Боты могут использоваться в совершенно разных целях, от автоматизации коммуникации с вашими клиентами до...

Простой веб сервер для SPA/PWA за «5 минут» Как создать Простой веб-сервер, используя только стандартные инструкции nodejs Часто для разработки MPA/SPA/PWA приложений требуется простой веб-сервер. Однажды, на одном большом митинге в ответ на вопрос: «Что ты делал?», я сказал, что поднимал веб-сервер для хостинга PWA п...

Чек-лист для тестирования числового поля При тестировании встречаются как интересные задачки с замудреной логикой, так и простые, вроде проверки простой строки или числового поля. Для простых полей можно один раз написать чек-лист проверок, а потом переиспользовать, лишь немного меняя под «своё» поле. Сегодня мы р...

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

Мобильные процессоры AMD Ryzen 4000 практически не уступают по производительности настольным Ryzen 3000 Источник опубликовал интересную порцию данных, позволяющих сравнить производительность мобильных APU Ryzen 4000 и настольных процессоров Ryzen 3000. Как оказалось, разница между ними есть, но не настолько большая, как можно было думать. Сначала сравнение 8-ядерных моде...

5 альтернатив Node.js — и есть ли в этом смысл Node.js — не безупречный продукт, у него есть недостатки (использование JS?), некоторые из них тянулись еще с раннего этапа разработки из-за ошибочных решений, принятых Райаном Далем, о которых немного вспомнили в статье Как создатель node.js сам разочаровался в нем. Как э...

Парсер данных по произвольной грамматике в 400 строк Есть много существующих инструментов для парсинга файлов по заданной грамматике. Например, ANTLR или Yacc. Они используют конечные автоматы и генерируют большие файлы с исходным кодом для парсинга. Действительно ли это так сложно? Попробуем сделать сами. В этой статье я пока...

Вариант работы с вебсокетами в iOS на языке Swift / Написал менеджер для работы с websocket Всем привет. 4 года назад я уже разбирался с вебсокетами в iOS, тогда я решил задачу с помощью одной из библиотек cocoapods, статья есть на Хабре. А сегодня хочу продемонстрировать еще одно решение, нативное без cocoapods. Я написал свой менеджер для работы с вебсокетами ...

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

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

[Из песочницы] Расширенный HTML В этой статье хотел бы рассказать немного про библиотеку, первую версию которой я создал еще в конце прошлого года. Суть очень простая — расширить возможности языка HTML, чтобы можно было без JavaScript'а писать простые и рутинные вещи: отправка формы в json формате, загрузк...

[Из песочницы] Преобразование инфиксной нотации в постфиксную Что такое инфиксная нотация и постфиксная можно узнать если внимательно почитать в Википедии. Так же есть статья на Хабре. В это статье я покажу простой и понятный алгоритм преобразования инфиксной записи в постфиксную. Данный алгоритм я реализую на языке Kotlin, хотя алго...

SMARTlife: Преимущества курсов английского языка - от новой работы до новых знакомств Курсы английского языка позволяют многим людям быстро повысить свои навыки и свой доход. Иностранный язык не панацея, но он точно является одним из ключевых факторов для компании-работодателя с иностранным капиталом.

Сверточная нейронная сеть и ее интеграция в iOS (часть 1) Средства реализации. Различные алгоритмы машинного обучения интегрированы в множество высокоуровневых языков программирования. Наиболее популярным и быстро развивающимся из них является Python. TensorFlow — открытая программная библиотека для машинного обучения, разработа...

Оригинальные ISO-образы Windows 10 October 2020 Update доступны для загрузки [MSDN] Состоялся релиз обновления Windows 10 October 2020 Update, а также стали доступны для скачивания официальные ISO-образы Windows 10 версии 20H2. Помимо потребительских версий доступна также и новая серверная версия. Версия программы: 20H2 (Build 19042.508) Язык интерфейса: Ру...

История разработки SDK для приема платежей в мобильном приложении на Flutter Привет, Хабр!На связи разработчики из Mad Brains. Мы специализируемся на разработке сервисов для мобильных устройств. Имеем опыт в реализации интеграционных решений, собственные продукты в сфере мобильной электронной коммерции, а также входим в 20-ку лучших мобильных раз...

14 Python-пакетов, про которые вы скорее всего не знали Язык Python предоставляет всем пользователям возможность создавать свои пакеты и делиться ими со всем сообществом. Так появлялись очень популярные библиотеки для работы с данными (Pandas, Numpy, Matplotlib), для машинного обучения (TensorFlow, PyTorch), для веб разработки. ...

[Из песочницы] Как я 12 лет создавал свой ЯП и компилятор к нему События истории рассказываются в хронологическом порядке, если вам кажется, что какое либо событие не относится к делу, то скорее всего — это не так, просто момент в котором будет понятно почему я упомянул это событие, будет позднее. Создаваемый мной язык, со временем меня...

Алгоритм Google BERT затрагивает 10% запросов на всех языках Сообщил Дэнни Салливан

[Перевод] Простая хэш-таблица для GPU Я выложил на Github новый проект A Simple GPU Hash Table. Это простая хэш-таблица для GPU, способная обрабатывать в секунду сотни миллионов вставок. На моём ноутбуке с NVIDIA GTX 1060 код вставляет 64 миллиона случайно сгенерированных пар ключ-значение примерно за 210 мс и...

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

Как вести технический блог? Я работаю в коммерческой разработке с 2011 года. С конца 2012 занимаюсь разработкой под iOS. Свою первую техническую статью я написал на Хабре в начале 2017 года про подход к локализации мобильных приложений. Потом выпустил ещё несколько статей по iOS-разработке на Хабре и...

Статический генератор сайтов Hugo. Фронтенд реалии В 2020 практически весь мир фронтенда заполонили Javascript фреймворки. Только и слышно о React, Angular, Vue и иногда в далеких просторах можно услышать тихий шепот «Svelte». Разработчики умело используют эти инструменты для создания крутых продуктов, но есть и «динозавры» ...

[Перевод] Руководство по возможностям Java версий 8-14 Здесь есть все, что вам нужно знать о различных версиях и функциях Java. Java 8, Java 11, Java 13, Java 14 — какая разница? Вы можете использовать это руководство, чтобы получить практическую информацию о том, как найти и установить последнюю версию Java, понять различия ме...

Про фразовые глаголы Фразовые глаголы английского языка гораздо проще, чем кажутся. Они работают точно так же, как в русском языке приставки. Выдающийся советский актёр Зиновий Гердт, узнав однажды о недостойном поступке, совершённом знакомым ему писателем, сказал: «Разрешите с вами раззнакомить...

Краткий гайд по использованию GDB В этом коротком туториале мы рассмотрим базовые приёмы работы с GDB, а также посмотрим как можно (и нужно) подготавливать файлы к отладке для GDB. GDB — переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет производить отладку многих яз...

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

[Перевод] Главные причины медленной работы Angular-приложений Angular — это быстрый фреймворк. Он даёт разработчикам обширные возможности по улучшению производительности за счёт тонких настроек. Правда, программистам практически никогда не требуется делать что-то особенное для того, чтобы создавать чрезвычайно производительный код, раб...

Введение в IDAPython На русском языке (и на Хабре, в частности) не так много статей по работе с IDAPython, попытаемся восполнить этот пробел. Для кого. Для тех, кто уже умеет работать в IDA Pro, но ни разу не писал скрипты на IDAPython. Если вы уже имеете опыт написания скриптов под IDAPython, ...

7 французских слов, которые бесят тех, кто изучает английский Французский язык крайне сильно повлиял на английский в ходе исторического развития. Даже сейчас в языке Шекспира есть примерно 10 000 лексем, которые прямо заимствованы с французского, без изменений в орфографии. А в целом примерно 40% корней английских слов восходят к ...

[Перевод] Несколько полезных советов как практиковаться в Python Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python. Введение Изучение Python не сильно отличается от изучения других языков программирования. Один путь для становления профессионалом в Python (или в д...

Debouncing с помощью React Hooks: хук для функций Здравствуйте! Меня зовут Игорь Шамаев, я главный инженер по разработке в команде SmartData. Занимаюсь fullstack-разработкой внутренней аналитической BI-системы. В нашей компании React принят в качестве основного стандарта для построения пользовательских интерфейсов. Как и бо...

.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров .NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С ее помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, ...

PHP-Дайджест № 174 (10 января – 24 февраля 2020) Свежая подборка со ссылками на новости и материалы. В выпуске: 5 новых RFC из PHP Internals, а также предложение по развитию языка и пара прототипов новых фич в виде пул-реквестов, порция полезных инструментов, видео, подкасты и многое другое. Приятного чтения! Читать даль...

Платформа Meditopia для сна и медитации привлекла $15 млн. Meditopia, базирующаяся в Стамбуле и Берлине, сотрудничает с профессиональными терапевтами, психологами и специалистами по медитации в 75 регионах для разработки индивидуальных майндфул-программ с учетом культуры, языка и страны.

[Перевод] Протокольно-ориентированное программирование в Swift 5.1 Протоколы — фундаментальное свойство Swift. Они играют важную роль в стандартных библиотеках Swift и являются обычным способом абстракции кода. Во многом они похожи на интерфейсы в других языках программирования. В этом руководстве мы представим вам подход к разработке прил...

Работа с IPv6 в PHP Недавно мы получили статус LIR и /29 блок IPv6. А следом возникла необходимость вести учёт назначенных подсетей. И коль скоро наш биллинг написан на PHP, пришлось немного проникнуться вопросом и осознать, что этот язык — не самый дружелюбный в плане работы с IPv6. Под катом ...

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

[Перевод] Что такое *args и **kwargs в Python? Функции — это жизнь. Правда? Если вы только начали осваивать Python, неважно — первый ли это ваш язык программирования, или вы пришли в Python из другого языка, то вы уже знаете о том, что количество параметров в объявлении функции соответствует количеству аргументов, которы...

Комитет ISO утвердил стандарт «C++20» На днях комитет ISO по стандартизации языка С++ (да, есть и такой) утвердил международный стандарт «С++20». Возможности, которые представлены в спецификации, поддерживаются в компиляторах GCC, Clang и Microsoft Visual C++. Кроме того, стандартные библиотеки с поддержкой «...

Автоматизация сбора купонов для бесплатной литературы Предыстория На ЛитРес есть система бонусов и купонов, которые появляются с завидной регулярностью. Чтобы сделать приятное жене, да и в целом может найти себе интересную книжку, начал мониторить сайт в котором появляются свежие купоны и скидывал их в телеграм. Но буквально сп...

Blackrota, самый обфусцированный backdoor, написанный на Go Самый обфусцированный ELF вредонос на Go, который мы встречали на сегодняшний день.ПредисловиеНедавно, вредоносный бэкдор, написанный на Go, который эксплуатировал уязвимость несанкционированного доступа в Docker Remote API, был пойман на Honeypot Anglerfish.Мы назвали его B...

Книга «Мифический человеко-месяц, или Как создаются программные системы » Привет, Хаброжители! Немногие книги по управлению проектами можно назвать столь же значимыми как «Мифический человеко-месяц». Смешение примеров из реальной разработки ПО, мнений и размышлений создает яркую картину управления сложными проектами. Эти эссе основаны на пятидесят...

[Из песочницы] Что такое Flutter и почему вы должны изучать его в 2020 году Привет, Хабр! Представляю вашему вниманию перевод статьи: "What is Flutter and Why You Should Learn It in 2020" автора Gaël Thomas. Что такое Flutter? Flutter — бесплатный и открытый набор средств разработки мобильного пользовательского интерфейса, созданный компанией Google...

[Перевод] Руководство по Node.js для начинающих. Часть 1 Доброго времени суток, друзья! Представляю Вашему вниманию перевод этого руководства по Node.js. Введение в Node.js Node.js — это открытая и кроссплатформенная среда выполнения JavaScript. Это отличное решение почти для любого проекта. Node.js запускает «движок» Java...

Vivaldi для Android: одна бета — хорошо, а вторая — лучше Всем привет! Разработка современного ПО напоминает снежный ком: добавил одну функцию — получил два запроса на её улучшение, реализовал эти запросы — получил уже четыре предложения по расширению возможностей браузера. Красота! Некогда чаю попить. Но сегодня давайте, всё-та...

Аниме-RPG CounterSide от Nexon выйдет 4 февраля в Южной Корее Предрегистрация на CounterSide стартовала в конце декабря прошлого года, а теперь издатель объявил, что игра станет доступна 4 февраля 2020 года. Пока что Nexon планирует релиз только у себя на родине, в Южной Корее. Информации о запуске в других странах или хотя бы об англ...

Современный Web-UI для SVN в 2020 году cSvn — это web-интерфейс к Subversion репозиториям. Основу cSvn представляет CGI-скрипт написанный на языке С. В мае 2020 года был опубликован релиз очередной версии Apache Subversion 1.14.0. В свете этого события, был создан новый, современный web-интерфейс для просмотра S...

Java-дайджест за 13 мая Иллюстрация получена вот из этого видео. Джеймс Гослинг, создатель языка Java, заявил об участии в летней конференции JPoint и уже появился в списке спикеров на сайте. Говорят, кризис — время возможностей. Иногда это действительно так! Пару лет назад трудно было представит...

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

[Перевод] Создание Minecraft за одну неделю на C++ и Vulkan Я поставил перед собой задачу воссоздания с нуля Minecraft за одну неделю с помощью собственного движке на C++ и Vulkan. Меня вдохновил на это Hopson, который сделал то же самое при помощи C++ и OpenGL. В свою очередь, его вдохновил Шейн Бек, которого вдохновила Minecraft, и...

Elixir как цель развития для python async В книге «Python. К вершинам мастерства» Лучано Рамальо описывает одну историю. В 2000 году Лучано проходил курсы, и однажды в аудиторию заглянул Гвидо ван Россум. Раз подвернулся такой случай, все стали задавать ему вопросы. На вопрос о том, какие функции Python заимствовал ...

Код Войнича: мнимый триумф искусственного интеллекта Сфера интересов сотрудников и преподавателей онлайн-школы английского языка EnglishDom намного шире, чем просто английский. Загадки лингвистики нам тоже интересны. Недавно в нашем офисе завязался спор про код Войнича, и мы решили сделать статью на эту тему. Манускрипт Вой...

Google представила новый режим для «Google Переводчика» Google представила обновление Google Переводчика, которое изменит восприятие сервиса «Google Переводчик» — явно не тот сервис, которому нужны постоянные обновления. Нет, конечно, повышение точности интерпретации языков или понимания контекста, от которого может напряму...

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

Книга «Эффективный Java. Тюнинг кода на Java 8, 11 и дальше. 2-е межд. издание » Привет, Хаброжители! Программирование и тестирование обычно принято относить к разным профессиональным сферам. Скотт Оукс — признанный эксперт по языку Java — уверен, что если вы хотите работать с этим языком, то обязаны понимать, как выполняется код в виртуальной машине Ja...

Делимся самым большим в РФ пластом данных по онлайн-обучению с проектами по лингвистике, персонализации, педдизайну, ML Перед Новым годом команда Михаила Sverdlove Свердлова объявила, что готова делиться обезличенными данными уроков Skyeng с внешними исследователями и стартапами. Вскоре после праздников мы поговорили с Мишей, о каких именно данных идет речь, что уже с ними делают и почему пол...

Как научиться программированию на Python? За последние несколько недель популярность онлайн-курсов и сектора онлайн-обучения в целом выросла почти в 4 раза. Почему? Во-первых, сейчас многие находятся на самоизоляции, и чтобы окончательно не потерять голову от безделья, пытаются занять себя чем-то полезным (и правил...

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

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

Google Ассистент научится открывать приложения и управлять ими Голосовой помощник от Google становится еще лучше Трудно спорить с тем фактом, что Google Ассистент является одним из самых продвинутых голосовых помощников на сегодняшний день. Но это не значит, что он идеален во всех отношениях и его нельзя сделать лучше. Скажем, не так да...

[Перевод] Пол Грэм про Java и «хакерские» языки программирования (2001) Это эссе явилось развитием бесед с несколькими разработчиками на тему предвзятого отношения к Java. Это не критика Java, а скорее, наглядный пример «хакерского радара». Со временем, хакеры развивают нюх на хорошие — или же плохие — технологии. Полагаю, может оказаться инт...

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

Создаем graphql бекенд на Golang Сегодня мы будем разрабатывать приложение на Golang + GraphQL. Мы часто используем GraphQL на своих проектах и знаем о нем немало, использовали его вместе с различными языками программирования: Javascript, Ruby и теперь руки дошли и до того чтобы попробовать связку Golang G...

[Перевод] Мой второй год в качестве независимого разработчика Иллюстрация Лорейн Йоу. Суслик-талисман языка Go адаптирован из работ Рене Френч Два года назад автор этой статьи Майкл Линч (Michael Lynch) уволился с должности инженера-программиста в Google, чтобы начать собственный бизнес (см. статью «Почему я ушёл из Google и начал ра...

Пишем расширение для Burp Suite с помощью Python Привет, Хабр!Думаю многие знают о таком инструменте, как Burp Suite от PortSwigger. Burp Suite – популярная платформа для проведения аудита безопасности веб-приложений. Помимо того, что Burp и так содержит тонну полезных функций, он еще и дает возможность пользователям созда...

Laravel. Локализованный роутинг Привет, Хабр! Хочу рассказать вам о том, как в одном проекте возникла проблема с роутингом и как мы её решали. Сначала наш проект был самым обычным сайтом. Сайт развивался, аудитория расширялась и возникла необходимость поддержки мультиязычности. Проект был на базе фреймвор...

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

Переводчик для браузера: 5 лучших Chrome-расширений для быстрого перевода Очень часто интенет-пользователи сталкиваются с ситуациями, когда необходимо перевести неизвестное слово или отрывок текста. Предлагаем вашему вниманию пять полезных расширений Google Chrome, предназначенных именно для этих целей. ♥ ПО ТЕМЕ: Как переводить переписку в Viber ...

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

Google Assistant теперь может читать веб-страницы и переводить их на 42 языка Компания Google начинает внедрение функции чтения статей для своего виртуального помощника Google Assistant. С её помощью ассистент сможет читать вслух веб-страницы. Эта возможность была анонсирована на выставке CES в январе. Чтобы использовать эту функцию, пользователи могу...

Siri Remote против Salt Remote Необычный пульт для Apple TV. С 30 октября 2015 года, когда одновременно с четвертым поколение Apple TV на свет появился пульт дистанционного управления с тач-падом и поддержкой голосового ассистента Siri, и вплоть до сегодняшнего дня, мир делится на три неравные части: на т...

[Перевод] Новости из мира OpenStreetMap № 500 (11.02.2020-17.02.2020) Wochennotiz / weeklyOSM – Issue # 500 | Thank you О нас Вышел 500-й выпуск нашего еженедельного новостного проекта. Всё началось 23 июля 2010 года с небольшой заметки, в которой содержалось всего 14 новостей. Редакция проекта благодарит всех читателей, которые поддержива...

Почему мы выбрали Kotlin одним из целевых языков компании. Часть 2: Kotlin Multiplatform Продолжаем цикл статей о внедрении языка Котлин в наш процесс разработки. Первую часть ищите здесь. В 2017 году увидел свет амбициозный проект от компании Jetbrains, предлагающий новый взгляд на кросс-платформенную разработку. Компиляция кода на kotlin в нативный код различ...

Открываются Android Dev Virtual Meetup Начиная с понедельника 23 марта, известные вам всем представители Android-разработки говорящие на русском языке (в том числе ведущие и гости Android Dev Подкаста) запускают новый открытый для любого желающего проект Android Dev Virtual Meetup.

Is Delphi Dying — False В далеком 2009-м на Хабре уже возникал холиварный шуточный пост с вопросом "Умирает ли Delphi?", а неким энтузиастом (Jamie Ingilby) в поддержку были созданы 2 сайта, которые утвердительно отвечали «Нет, язык Delphi жив». Однако, как всем известно, дыма без огня не бывает, ...

[Из песочницы] Возвращение GOTO Сейчас все понимают, что использовать оператор GOTO это не просто плохая, а ужасная практика. Дебаты по поводу его использования закончились в 80-х годах XX века и его исключили из большинства современных языков программирования. Но, как и положено настоящему злу, он сумел з...

Введение в язык запросов Cypher Язык запросов Cypher изначально разработан специально для графовой СУБД Neo4j. Целью Cypher является предоставить человеко-читаемый язык запросов к графовым базам данных похожий на SQL. На сегодня Cypher поддерживается несколькими графовыми СУБД. Для стандартизации Cypher бы...

Panasonic представил комплексное решение TOUGHBOOK Omnia для ускоренной разработки бизнес-приложений Компания Panasonic представила комплексное решение TOUGHBOOK Omnia на базе языка программирования MCL для ускоренной разработки программного обеспечения. Решение позволяет пользователям Panasonic TOUGHBOOK эффективно управлять проектами цифровой трансформации и сократить вре...

Создание многопользовательской карточной игры на Unity и Mirror Поначалу работа с холстом в Unity 2D может показаться сложной, особенно если вы одновременно пытаетесь изучить редактор и сам язык C#. Также может быть непросто превратить однопользовательскую игру в многопользовательскую — для нескольких игроков появляется много новых...

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

Rust глазами Python-разработчика Привет! Мы – часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). На протяжении трех лет мы поддерживаем и развиваем несколько больших python-приложений. Чуть больше года назад перед нами встала задача написать еще одно большое приложение – API к основному хранилищу...

[Перевод] Как я самостоятельно выучил новый язык за 12 месяцев: тотальный гайд От А0 до B2 за год Чуть больше года назад я был полностью монолингвом, говорящем только на английском, с нулевыми познаниями во французском языке. А спустя двенадцать месяцев, я с лёгкостью сдал международный экзамен DELF B2. Если вы не знаете, что значит «В2», посмотрите ш...

Книга «Профессиональный TypeScript. Разработка масштабируемых JavaScript-приложений» Любой программист, работающий с языком с динамической типизацией, подтвердит, что задача масштабирования кода невероятно сложна и требует большой команды инженеров. Вот почему Facebook, Google и Microsoft придумали статическую типизацию для динамически типизированного кода....

Какой язык выбрать для работы с данными R или Python? Оба! Мигрируем с pandas на tidyverse и data.table и обратно По запросу R или Python в интернете вы найдёте миллионы статей и километровых обсуждений по теме какой из них лучше, быстрее и удобнее для работы с данными. Но к сожалению особой пользы все эти статьи и споры не несут. Цель этой статьи — сравнить основные приёмы обработки д...

ТЕСТ: Определите значение старинных слов! В языке наших предков было много терминов, которые сейчас уже не употребляются. Понять, что они означают, сложно, но всё-таки можно. Стоит ли обижаться, услышав в свой адрес обращение «валандай», на какую часть тела уместно надевать глазенцы и чем вообще занимается чеботарь ...

[Перевод] О нет! Моя Data Science ржавеет Привет, Хабр! Предлагаем вашему вниманию перевод интереснейшего исследования от компании Crowdstrike. Материал посвящен использованию языка Rust в области Data Science (применительно к malware analysis) и демонстрирует, в чем Rust на таком поле может посоперничать даже с Nu...

Как мы обошли bytenode и декомпилировали байткод Node.js (V8) в Ghidra «Да я роботов по приколу изобретаю!» Рик СанчесМногим известно, что в 2019 году АНБ решило предоставить открытый доступ к своей утилите для дизассемблирования (реверс-инжиниринга) под названием Ghidra. Эта утилита стала популярной в среде исследователей благодаря высокой «вс...

Топ 10 ошибок в проектах Java за 2019 год 2019 год подходит к концу, и команда PVS-Studio подводит итоги уходящего года. В начале 2019 года мы расширили возможности анализатора, поддержав язык Java. Поэтому список наших публикаций про проверку открытых проектов пополнился обзорами Java проектов. За год было найдено...

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

Вечное сияние чистого .NET Когда 10 лет назад я начинал работу с .NET Framework 3,5 (язык версии 3.0), для меня его функциональность была крайне ограничена, так как начинал я с SharePoint 2010. Постепенно изучив более широкий круг технологий и следя за развитием .NET, я могу отметить его огромный рост...

Русские субтитры появятся в Yakuza: Like a Dragon уже сегодня Издательство Sega по запросу портала GameMAG подтвердило дату выхода обновления для своего криминального ролевого боевика Yakuza: Like a Dragon, которое добавит в игру русские субтитры. О том, что Yakuza: Like a Dragon (впервые в серии) обзаведётся текстовой локализацией, ещ...

Microsoft не смогла запустить новый браузер Windows 10 без проблем Компания Microsoft выпустила на днях новый браузер Microsoft Edge на движке Chromium. Такое событие не смогло пройти без проблем.  Microsoft особенно упирала на то, что браузер доступен для установки более чем на 90 языках. Эта «многоязычность» и пород...

[Из песочницы] Пишем автотест с использованием Selenium Webdriver, Java 8 и паттерна Page Object В этой статье рассматривается создание достаточного простого автотеста. Статья будет полезна начинающим автоматизаторам. Материал изложен максимально доступно, однако, будет значительно проще понять о чем здесь идет речь, если Вы будете иметь хотя бы минимальные представлени...

Facebook Messenger получил поддержку функции демонстрации экрана во время разговора Facebook Messenger получил поддержку функции Screen Sharing, которая позволит демонстрировать картинку со своего смартфона другим участникам беседы. Функция может использоваться при звонке одному пользователю, в групповом чате или же в процессе более масштабного совещания в ...

[Перевод] Django: краткое руководство по интернационализации Перевод приложения на разные языки и его локализация — это нечто такое, чем приходится заниматься всем разработчикам. В материале, перевод которого мы сегодня публикуем, представлено краткое руководство по интернационализации Django-приложений. Часть того, о чём тут пойдёт ...

Как реализовать интеграцию с ЕСИА на Java без лишних проблем Долгое время основным способом идентификации граждан был обычный паспорт. Ситуация изменилась, когда в 2011 году по заказу Минкомсвязи была внедрена Единая система идентификации и аутентификации (ЕСИА), ― она позволила распознавать личность человека и получать о ней данные в...

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

Работа с асинхронностью в Dart Всем привет! Меня зовут Дмитрий Репин, я Flutter-разработчик в Surf.В этой статье я расскажу о том, как работать с асинхронностью в Dart: всё о самых важных классах библиотеки dart:async с примерами под катом. Поговорим о том, как в однопоточном языке сходить в сеть или базу...

Мне 14 и я работаю в ИТ-компании От редакции блога: когда в распределённой компании пара сотен инженеров, а часть ты знаешь лишь как профили в Slack, случается забавное. Например, на вопрос “Ребят, кто может провести вебинар по ботам” откликается Жора. И только после вебинара на комментарий “Слушай, а какой...

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

Как забраться на дерево Точнее, как с него спуститься. Но обо всем по порядку. Эта статья немного выбьется из привычного формата статей от PVS-Studio. Мы часто пишем о проверке других проектов, но почти никогда не приоткрываем дверь нашей внутренней кухни. Пришло время это исправить и рассказать о...

[Из песочницы] Чтение книг на английском с помощью сервиса JReader В этом обзоре хочу рассказать о сервисе JReader, над которым работаю. Он предназначен для людей, которые хотят эффективно и удобно читать англоязычные тексты. Предыстория или как родился этот проект Некоторое время назад меня пригласили на работу в международную компанию...

Рецензия на детективный сериал The Pale Horse / «Вилла «Белый Конь»» Произведения Агаты Кристи переведены более чем на 100 языков мира и изданы суммарным тиражом свыше 4 млрд. (!) экземпляров. Киноадаптации романов самой знаменитой детективщицы тоже выходят с завидной регулярностью. Само собой, особенно в этом поднаторели британцы. The Pale H...

AI на минималках 2: Генератор стихов на Prolog AI на минималках 2: Генератор стихов на Prolog На картинке — четверостишье, сгенерированное моей программой. Оказывается "стихи" писать легко, нужно только знать несколько необходимых ингредиентов: размер, ритм, рифма. "Стихи" в кавычках, потому что в на...

Natural Language Processing. Итоги 2019 и тренды на 2020 Всем привет. С некоторым запозданием я решил опубликовать эту статью. Каждый год я стараюсь подвести итоги произошедшего в области обработки естественного языка (natural language processing). Не стал исключением и этот год. BERTs, BERTs are everywhere Начнем по порядку. Ес...

Язык REXX, к 40 летию появления REXX — довольно древний, передовой для своего времени язык. Он появился, согласно википедии, в 1979 году, то есть ему недавно исполнилось 40 лет. Не самый конечно старинный язык, но возраст достойный. Rexx это аббревиатура, означает она Restructured Extended Executor, что в...

Ученые научили роботов понимать разговорный язык людей Как стало известно, исследователям из Массачусетского технологического института (MIT) удалось научить роботов понимать разговорный язык людей — прежде они могли понимать лишь определенные команды. Таким образом, ученые стали еще на шаг ближе к тому, чтобы сделать из них пол...

[Перевод] Чистый код для TypeScript — Часть 3 Заключительная часть статей, посвященных тому, как можно использовать принципы чистого кода в TypeScript(ps. Все эти принципы относятся не только к языку TypeScript). Читать дальше →

Пишем расширение-читалку для Habr Каждому разработчику однажды приходит в голову мысль написать что-то, чтобы упростить себе жизнь. Например, сократить время, проведённое за выполнением рутинных задач, или же позволить себе выполнять несколько действий одновременно.В данной статье я хочу показать, как можно ...

Создаем структуру простого мультиплатформенного бота Регистрация пользователей на мероприятия, автоматический поиск ответов в базе, общение с техподдержкой, обмен контактами — все это часть функций нашего бота Leader-ID. Он «живет» на трёх платформах: VK, Facebook Messenger и Telegram, при этом логика его работы пишется один р...

Поиск Mail.ru будет отвечать на запросы в форме диалога Поисковая система Mail.ru приступила к тестированию нового механизма распознавания естественного языка пользователей – диалоговой речи.

[Из песочницы] Способы реализации API-сервера на Golang с автогенерацией кода и документации Я бы хотел в этой статье рассказать вам о том как можно быстро и просто сделать веб сервер на языке Golang с документацией к нему. И о том какие есть подходы и инструменты для их реализации Сегодня мы разберем эти готовые инструменты: swagger-api/swagger-codegen go-swagger/...

Введение в архитектурный фреймворк для анализа данных Lena Привет, Хабр! Я расскажу об архитектурном фреймворке, который я разрабатываю. Архитектура определяет наиболее общее устройство программы и взаимодействие её компонентов. Lena как фреймворк реализует конкретную архитектуру для анализа данных (подробнее о ней ниже) и предостав...

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

PyCharm исполнилось 10 лет У PyCharm юбилей. На протяжении десяти лет наша IDE развивалась вместе с Python, отражая изменения в языке и отвечая на запросы Python-разработчиков. Все это время мы стремились сделать PyCharm максимально удобной и эффективной IDE. PyCharm — не просто коммерческий продукт...

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

Windows 10 May 2020 Update выйдет с 26 по 28 мая Обновление Windows 10 May 2020 Update добавит значительные изменения в Cortana, поиск Windows, улучшит производительность, обновит подсистему Windows для Linux, а также улучшит поддержку конфигураций с несколькими мониторами. Microsoft уже завершила разработку обновления Win...

Машинное обучение на R: экспертные техники для прогностического анализа Привет, Хаброжители! Язык R предлагает мощный набор методов машинного обучения, позволяющих быстро проводить нетривиальный анализ ваших данных. Книга является руководством, которое поможет применять методы машинного обучения в решении ежедневных задач. Бретт Ланц научит всем...

[Перевод] Новые фичи Python 3.8 и самое время перейти с Python 2 Наступил 2020 год, а значит, Python 2 перестал поддерживаться. Если быть совсем точным, то основные разработчики уже перестали заниматься веткой, а выход релиза 2.7.18, приуроченный к PyCon US в апреле 2020 года, ознаменует полное прекращение любой активности, связанной с Py...

Опыт создания web-приложения с Pony ORM Привет, Хабр! Недавно передо мной встала задача написать на Python web-приложение для разделения счёта в ресторане между участниками трапезы. Так как нужна DB для хранения данных о заказах и пользователях, встал вопрос выбора ORM для работы с базой. Разработка велась на Flas...

Программируем на iPad Pro Можно ли заменить программисту MacBook на iPad Pro? Программисты для работы часто предпочитают использовать MacBook. Ноутбуки Apple имеют консоль Bash и схожи с Linux, при этом предлагают плавный и приятный интерфейс, чего до сих пор не может дать нам Linux (даже Ubuntu 19.1...

Сервис проверки HTTP-заголовков сервера Для любого сайта важно правильно настроить HTTP-заголовки. На тему заголовков было написано много статей. Здесь мы обобщили накопленный опыт, документацию RFC. Какие-то из заголовков обязательные, какие-то устаревшие, какие-то могут вносить путаницу и противоречия. Мы сделал...

Варим байткод на кухне JVM Меня зовут Александр Коцюруба, я руковожу разработкой внутренних сервисов в компании ДомКлик. Многим разработчикам, пишущим на Java, с опытом приходит понимание внутреннего устройства JVM. Чтобы облегчить этот путь Java-самурая, я решил простым языком изложить основы виртуал...

Использование примесей (mixins) в Dart Несколько раз от коллег звучал вопрос о том, что не понятно, зачем вообще нужны mixin'ы (примеси) в языке Dart. Я решил посмотреть, что есть на просторах Интернета по этому вопросу. К великому огорчению в статьях, которые удалось найти в основном говорится о том, как использ...

[Перевод] Как создавать предметы генеративного искусства с помощью L-систем на языке Python Мы уже писали о поле течений, при помощи которого можно генеративно рисовать невероятно красивые, завораживающие линии. Сегодня, к старту курса о Fullstack-разработке на Python, мы решили продолжить тему. Представляем перевод статьи, автор которой рассказывает, как генериров...

[Перевод] Основы работы с Shader Graph в Unity Шейдер — это небольшая программа, содержащая инструкции для GPU. Она описывает способ вычисления экранного цвета для определённого материала. Хотя у Unity есть Standard Shader, иногда требуется реализовать эффект, на который не способен стандартный шейдер. Раньше для этог...

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

Swift 5.3: Что нового? Привет Хабр! Язык программирования Swift обладает большой популярностью ввиду его использования в написании приложений под iOS, поэтому его развитие представляет интерес для всех занятых в этой области. Давайте посмотрим что нового приготовил разработчикам Swift версии 5.3....

QIDI X-Maker. Новая тихая материнская плата. Второй месяц у меня живет принтер QIDI X-Maker. Тут я писал о первых впечатлениях, и до сих пор особенно добавить к ним нечего. Работает хорошо, единственное, что немного раздражало - шум. Он намного шумнее моего первого принтера FLSUN-QQ, и, в отличии от него, не может неза...

[Из песочницы] Использование Quartus и ModelSim Меня всегда интересовала цифровая схемотехника, а в частности языки описания аппаратуры -HDL. У меня давно лежала в списке будущего чтения книга Дэвида М. Хэррис и Сары Л. Хэррис «Цифровая схемотехника и архитектура компьютера», воспользовавшись свободным временем на самоизо...

[Из песочницы] Быстрая разработка Web приложения на Vaadin и Spring Boot Целью данной статьи является систематизация процесса разработки веб приложения на Vaadin 14 с использованием Spring Boot. Перед прочтением данной статьи, рекомендую прочитать следующий материал: Введение в Spring Boot Spring Data JPA Lombok возвращает величие Java Vaadin F...

Радости и горести побед над C: делаем конфетку из прототипа wc на хаскеле Привет, Хабр. Итак, в прошлый раз мы эмпирически доказали, что на хаскеле можно довольно легко написать этакий игрушечный wc, который при этом существенно быстрее реализации wc из GNU Coreutils. Понятное дело, что это не совсем честное сравнение: наша программа не умеет ниче...

Взлом с помощью Юникода (на примере GitHub) Юникод исключительно сложен. Мало кто знает все хитрости: от невидимых символов и контрольных знаков до суррогатных пар и комбинированных эмодзи (когда при сложении двух знаков получается третий). Стандарт включает 216 кодовых позиций в 17-ти плоскостях. По сути, изучение Юн...

[Перевод] Пионер программирования компьютеров Тони Брукер скончался в возрасте 94 лет Познакомившись с Аланом Тьюрингом, Брукер отправился работать в Манчестерский университет и написал язык программирования для первого коммерческого компьютера Тони Брукер, справа, с коллегами из Университета Эссекса в 1972 году Тони Брукер, математик и специалист по информ...

[Перевод] Удобные компактные JavaScript-конструкции, которыми вы, возможно, не пользуетесь С выходом новых версий JavaScript в языке появляется всё больше и больше «синтаксического сахара». Материал, перевод которого мы сегодня публикуем, посвящён обзору удобных конструкций JavaScript, которые компактны и приятны глазу. В частности, речь пойдёт о тернарном операто...

Помоги компилятору помочь тебе Предисловие Современные компиляторы обладают огромным количеством диагностик. И удивительно, что очень малая их часть включена по умолчанию. Огромное количество претензий, которые предъявляют к языку C++ в этих ваших интернетах, — про сложность, небезопасность, стрельбу по н...

Apple устранила многомесячную проблему в новых iPhone Компания Apple выпустила обновление программного обеспечения для iPhone и iPad — iOS 13.3.1 и iPadOS 13.3.1.  В iOS 13.3.1 устраняется обширный список ошибок, багов и недочётов. Кроме того, появилась настройка для отключения использования сервисами геолокаци...

Euro Truck Simulator 2 – Road to the Black Sea: берег турецкий Road to the Black Sea – шестое расширение карты для Euro Truck Simulator 2, и это, пожалуй, лучшее, что появилось в ETS2 за прошедшие семь лет. Euro Truck Simulator 2 – Road to the Black Sea Жанр симулятор Платформы Windows, Mac OS, Linux Разработчики SCS Software Издатель S...

Эксперимент: как научиться создавать популярные тексты на английском (и почему англоязычный Хабр так мало читают) Я много лет занимаюсь маркетингом, написанием текстов, при этом увлекаюсь английским и использую его в работе. В русскоязычном интернете в целом не так и много статей о контент-маркетинге и продвижении бизнеса в США. А те что есть часто просто рассказывают как надо делать ...

Материальный дизайн. Создание анимаций в Kivy Приветствую всех любителей и знатоков языка программирования Python! В этой статье я покажу, как работать с анимациями в кроссплатформенном фреймворке Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. Мы рассмотрим структуру Kivy проекта, использован...

Вместо 100 запусков приложения ― один автотест, или как сэкономить QA-инженеру 20 лет жизни Всем привет, меня зовут Евгений Демиденко. Последние несколько лет я занимаюсь разработкой автоматизированной системы тестирования игр в Pixonic. Сегодня я хотел поделиться нашим опытом разработки, поддержки и использования такой системы на проекте War Robots. Для начала ра...

Нейросети Яндекса научились переводить видео на английском языке Функция будет доступна для пользователей Яндекс.Браузера.

SKYE – влюбленные в небо SKYE – милое небольшое приключение, бесплатная игра, которая подарит вам час приятного времяпровождения. Это работа студентов 3-го курса технологического университета города Бреда (Нидерланды), которую они выложили в Steam. SKYE Жанр action/adventure Платформы Windows Языки ...

В поиске вопросов, или как создать новый отладчик Мы уделяем много внимания инструментам разработки: участвуем в горячих спорах о редакторах (Vim или Emacs?), долго настраиваем IDE под свой вкус, и тщательно выбираем языки программирования и библиотеки, которые с каждым днем становятся все лучше и удобнее. Однако, здесь мож...

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

Проверка коллекции header-only C++ библиотек (awesome-hpp) Волею судьбы мы проверили большинство библиотек, входящих в коллекцию под названием "Awesome hpp". Это небольшие проекты на языке C++, состоящие только из заголовочных файлов. Надеемся, найденные ошибки помогут сделать эти библиотеки немного лучше. Также мы будем ...

[Перевод] Почему интернационализация и локализация имеют значение Хабр, отличного всем времени суток! Скоро в OTUS стартует курс «Python Web-Developer»: мы приглашаем на бесплатный Demo-урок «Паттерны Page Controller и Front Controller: реализация в Django» и публикуем перевод статьи Nicolle Cysneiros — Full Stack Developer (Labcodes). Сог...

Пишем Grafana reverse proxy на Go Очень хотелось назвать статью «Proxy-сервис на Go в 3 строчки», но я выше этого. В действительности так и есть, основную логику можно уместить в трёх строках. Для нетерпеливых и тех, кто хочет увидеть самую суть: proxy := httputil.NewSingleHostReverseProxy(url) r.Header.Se...

Управление Яндекс.Станцией и другими колонками с Алисой из Home Assistant Мы привыкли называть умными устройства, которыми можем управлять, не вставая с дивана. Включить лампочку, вентилятор, кофеварку или стиральную машину. Колонки с Яндекс Алисой хоть и называются умными, но вы не можете изменить громкость не находясь рядом с колонкой (орать че...

На мобильных вышел карточный рогалик Journey Of Abyss Карточные рогалики существовали задолго до появления Slay the Spire, но именно этот проект сделал жанр особенно популярным. Сам он в этом месяце наконец-то добрался до iOS, но на мобильных постоянно выходят и другие подобные проекты. Journey of Abyss – это тоже карточный ро...

Google научила Google Assistant читать текст на экране вслух Несмотря на то что мне откровенно не нравится роботизированный голос Google Assistant, и Алиса, на мой вкус, звучит гораздо приятнее, отказать ему в беспрецедентных возможностях я не могу. За годы своего существования голосовой помощник Google превратился в супер-удобного к...

Cross-Origin Read Blocking (CORB) в расширениях для Chrome Если вы когда-то разработали расширение для Chrome, то может оказаться, что оно перестало работать. Причина в том, что начиная аж с прошлого года, в браузере Chrome блокируются Cross-Origin запросы из content-скриптов. Это означает, что если ваше расширение обращается к не...

Apple выпустит Xcode для iPad вместе с iOS 14 iPad уже давно превратился из прикроватного гаджета для потребления контента в более или менее самостоятельный рабочий инструмент. Ну, или, по крайней мере, так считала Apple, которая долгое время была уверена, что достаточно дополнить планшет клавиатурой и стилусом, как он...

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

(S)SDLC, или Как сделать разработку безопаснее. Часть 3 Этой статьей мы завершим небольшой цикл о построении процесса безопасной разработки на основе SAST — статического анализа кода на безопасность. В первой части мы разобрали основные вопросы, возникающие при внедрении SAST в процесс разработки. Во второй части остановились на ...

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

[Перевод] Машинное обучение столкнулось с нерешенной математической проблемой Салют, хабровчане! В преддверии запуска новых потоков по продвинутому и базовому курсам «Математика для Data Science» хотим поделиться с вами достаточно интересным переводом. В этой статье не будет практики, но материал интересен для общего развития и обсуждения. Группа ис...

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

[Перевод] Что нового в Node.js 15? Делимся переводом статьи, в которой собраны подробности о новых функциях 15-й версии Node.js. Версия Node.js 15 была выпущена 20 октября 2020 года. Среди основных изменений: режим throw при необработанных отклонениях особенности языка V8 8.6 NPM 7 экспериментальная поддер...

Duolingo привлек $30 млн. при оценке $1.5 млрд. Сервис для изучения иностранных языков Duolingo привлек $30 млн в раунде F от венчурного фонда Alphabet CapitalG.

Aсинхронный PHP Десять лет назад у нас был классический LAMP-стек: Linux, Apache, MySQL, и PHP, который работал в медленном режиме mod_php. Мир менялся, а с ним и важность скорости. Появился PHP-FPM, который позволил значительно увеличить производительность решений на PHP, а не срочно переп...

Расширения в Kotlin. Опасный атавизм или полезный инструмент? Kotlin — еще молодой язык, но уже стремительно ворвался в нашу жизнь. Из-за этого не всегда понятно, каким образом правильно реализовать тот или иной функционал и какие best practice применять. Особенно тяжело обстоит дело с возможностями языка, которых нет в Java. Одним ...

Через всю географию: навигационные и геодезические задачи на разных языках Приветствую вас, глубокоуважаемые! «… истинное место судна хотя и неизвестно, но оно не случайно, оно есть, но неизвестно в какой точке» Алексишин В. Г. и др. Практическое судовождение, 2006. стр. 71 «С двух краев галактики вышли пешеходы...» (С) Сергей Попов (Астрофизик) В ...

[Перевод] Перевод стандарта IDEF0 на русском языке Предисловие Должно стремиться к знанию не ради споров, не для презрения других, не ради выгоды, славы, власти или других низменных целей, а ради того, чтобы быть полезным в жизни. Ф. Бэкон Те, кто будет читать перевод и сравнивать с компиляциями русскоязычной документации ...

Действительно ли Snapdragon 865 самый быстрый мобильный процессор на сегодня? Насколько быстр Snapdragon 865? Каждый год Qualcomm выпускает свой новейший процессорый сокет, который (что логично) мощнее предыдущего. Но в этом году у нас есть приятное исключение. Как мы недавно уже сообщали, по всей видимости, Snapdragon 865 — это самый быстрый мо...

[Перевод] Примеры GraphQL на Java для начинающих [со Spring Boot] В этой статье мы рассмотрим пример GraphQL на Java и создадим простой сервер GraphQL со Spring Boot. Таким цыпочкам тоже нравятся примеры GraphQL на Java со Spring Boot! GraphQL — это язык запросов для API, который позволяет клиентам запрашивать ограниченное множество данны...

Ещё 14 лет назад русский язык стал самым популярным в интернете после английского, и он остался таким по сей день 25 декабря 2005 года англоязычные пользователи интернета впервые оказались в меньшинстве в сравнении с носителями другого языка.

[Перевод] Service Mesh: что нужно знать каждому Software Engineer о самой хайповой технологии Прим. перев.: Service mesh — явление, которое ещё не имеет устойчивого перевода на русский язык (более 2 лет назад мы предлагали вариант «сетка для сервисов», а чуть позже некоторые коллеги стали активно продвигать сочетание «сервисное сито»). Постоянные разговоры об этой те...

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

Для экшена Grimvalor вышло обновление с переводом на русский язык и режимом «Новая игра+» В начале этого месяца студия Direlight выпустила свой экшен Grimvalor на Nintendo Switch, но мобильные версии забрасывать не собирается. Так, в App Store и Google Play появились обновление, которое добавляют в игру режим «Новая игра+». Он позволит игрокам заново отправиться ...

Google внедряет BERT в поиск на русском языке Google объявил, что самое крупное обновление алгоритмов работы поиска за последние 5 лет – BERT Update – в этом месяце будет внедрено в поиск на русском языке. BERT – это технология предварительного обучения обработке текста на естественном языке. Она анализирует не отдельны...

Бесфайловый вымогатель FTCODE теперь крадет учетные записи В 2013 году компания Sophos сообщила о случаях заражения вирусом- шифровальщиком, написанном на PowerShell. Атака была нацелена на пользователей из России. После шифрования файлов к ним добавлялось расширение .FTCODE, что и дало название вымогателю. Вредоносный код распростр...

О том как написать и опубликовать смарт-контракт в Telegram Open Network (TON) О том как написать и опубликовать смарт-контракт в TON О чем эта статья? В статье я расскажу о том, как поучаствовал в первом (из двух) конкурсе Telegram по блокчейну, не занял призовое место и решил зафиксировать опыт в статье, чтобы он не канул в Лету и, возможно, помог ко...

Говорящий плеер на raspberry Приветствую всех. У меня проблемы со зрением, увлечение мое — программирование. Как то в недалеком прошлом я узнал об одноплатном компьютере raspberry, описание меня впечатливо и я приобрел его. Так, как официальный дистрибутив — raspbian, основан на debian, думал включу с...

Погружение в ассемблер. Зачем учить ассемблер в 2020 году Для подписчиковТы решил освоить ассемблер, но перед этим хочешь понять, что тебе это даст как программисту? Стоит ли входить в мир программирования через ассемблер, или лучше начать с какого-нибудь языка высокого уровня? И вообще, нужно ли знать ассемблер, чтобы стать полноц...

[Перевод] HTTP-заголовок Feature-Policy и контроль поведения веб-страниц в браузерах Существует одна совершенно бесподобная методика, позволяющая держать производительность веб-проекта под контролем. Она заключается во внедрении в процесс разработки механизмов, результаты работы которых хорошо заметны. Эти механизмы нацелены на то, чтобы всегда напоминать пр...

Как мы рекомендуем новинки каталога в онлайн-кинотеатре ivi (+ код на Python) В блоге онлайн-кинотеатра ivi накопилось достаточно статей про архитектуру рекомендательной системы Hydra. Однако рекомендации — это не только внешний API, но и алгоритмы, которые живут «под капотом» и реализуют достаточно сложную бизнес-логику. В этой статье я расскажу о п...

[Перевод] Миллион спрайтов при 120 с лишним fps Если вы побродите по форуму DOTS, то можете встретить там подобные посты о том, как автор написал библиотеку, способную рендерить миллион анимированных спрайтов, и всё равно получает только 60fps. Я создал собственный рендерер спрайтов DOTS, который достаточно хорош для наш...

Redux Toolkit как средство эффективной Redux-разработки В настоящее время разработка львиной доли веб-приложений, основанных на фреймворке React, ведется с использованием библиотеки Redux. Данная библиотека является самой популярной реализацией FLUX-архитектуры и, несмотря на ряд очевидных преимуществ, имеет весьма существенные ...

В России создали робота-продавца SIM-карт Российская компания Promobot создала первого в России робота-продавца SIM-карт. Он знает десять языков и будет удобен для туристов.

Эксперименты с микроконтроллерами в Jupyter Notebook Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике. Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического пре...

Сервис для изучения языков ​Duolingo привлёк $30 млн от венчурного фонда Alphabet при оценке в $1,5 млрд Сервис основан в 2011 году — сейчас у него 30 млн активных пользователей.

[Перевод] Собеседования по алгоритмам: теория vs. практика tl;dr За последние десятилетия мода на собеседования программистов менялась несколько раз, и каждая из них выглядит нелепо в ретроспективе. Либо мы наконец-то нашли настоящий секрет эффективных собеседований, либо увлеклись очередным модным течением, которое через десять-два...

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

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

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

Обзор Parla X. Учим английский Сегодня мы поговорим о достаточно привлекательном и удобном приложении, которое позволит вам наслаждаться изучением иностранного языка в полной мере. Программа бесплатная, внутри много уроков и лексики, плюс интересный персонаж. Как пройти мимо такого подарка? Главное знать ...

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

[Из песочницы] Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ — опыт адаптации компилятора языка высокого уровня к стековому процессорному ядру. Распространенной проблемой для софт-процессоров является отсутствие средств разработки для них, особен...

Принцип SRP на примере Laravel Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel. Часто, описывая модель разработки MVC (MVP, MVVM или другие M**),...

[Перевод] Второй год Q# Прошло уже больше 2 лет с момента первого публичного выпуска языка квантового программирования Q#. К случаю годовщины ребята из команды Q# подготовили рассказ про второй год этого развития. Читайте о нем под катом! Читать дальше →

Типизированные запросы OData в TypeScript Традиционно запросы OData к данным выражаются в виде простых строк без проверки типов при компиляции или без поддержки IntelliSense, кроме того, разработчику приходится изучать синтаксис языка запросов. Данная статья описывает библиотеку TsToOdata, которая превращает запрос...

Реклама на YouTube: достучаться до программистов Известный американский маркетолог Стюарт Бритт говорил: «Вести бизнес без рекламы – всё равно, что подмигивать девушке в темноте: вы-то знаете, что вы делаете, а остальные – нет». Сложно не согласиться, ведь недостаточно просто создать продукт — чтобы им пользовались, нужно...

[Перевод] Создание CI/CD-цепочки и автоматизация работы с Docker Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести...

[Перевод] Моя шпаргалка по pandas Один преподаватель как-то сказал мне, что если поискать аналог программиста в мире книг, то окажется, что программисты похожи не на учебники, а на оглавления учебников: они не помнят всего, но знают, как быстро найти то, что им нужно. Возможность быстро находить описания фу...

В Google Переводчике для Android появился новый режим с поддержкой русского языка Приложение «Google Переводчик» для Android получило свежее обновление с поддержкой новой функции на русском языке, объявила компания Google. Впрочем, это, скорее, даже не функция, а целый режим, поскольку при его активации приложение переключается с текстового фор...

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

Переводчик Microsoft получил поддержку ещё 9 языков и теперь их 83 Microsoft продолжает улучшать возможности перевода

Вейвлет деревья Succinct data structures свежее веяние в алгоритмистике. В русскоязычной школе материала мало, нет даже устоявшегося перевода. Будем восполнять этот пробел. На правах первопроходцев терминологию будем вводить налету. Пусть, скажем, компактные структуры данных. На Хабре уже п...

[Из песочницы] Основные недостатки языка Python Язык программирования Python славится своей простотой и лаконичностью. Немногословный и понятный синтаксис, похожий на псевдокод, а также сильная динамическая типизация способствуют быстрому и безболезненному обучению новичков. Интерпретатор языка берёт на себя всю низкоуров...

Инструментарий фронтенд-специалиста: полезные утилиты и фичи для ускорения разработки Прошли те времена, когда фронтендеру достаточно было открыть «Блокнот», написать несколько строк кода, проверить его в браузере и загрузить на сервер через FTP. Современная разработка пользовательского интерфейса сильно усложнилась. Экосистема JavaScript растет и изменяетс...

[Из песочницы] Как не платить за Java хостинг или быстрый старт с Google App Engine Все мы хоть когда-нибудь писали приложения, облегчающие жизнь. Не на заказ, а просто для себя. Записные книжки, программки учета финансов, набор карточек для изучения иностранного языка — да мало ли в жизни хороших идей? И вот было бы здорово, иметь доступ к этой программке ...

5 мифов о языке тела, которые давно развенчали учёные Если человек не смотрит вам в глаза, это ещё не значит, что он врёт.

Изучаем потенциал видеокарты GeForce GT 1030 в 2020 году – лучшая видеокарта для Пасьянса и Солитёра по мнению экспертов Gecid Есть ли смысл в покупке видеокарты GeForce GT 1030 в 2020 году? Отвечаем на сложные вопросы простым русским языком

Немного SQL алхимии О популярной библиотеке SQLAlchemy для работы с разными СУБД из Python было написано довольно много статей. Предлагаю вашему вниманию обзор и сравнение запросов с использованием ORM и SQL подходов. Данное руководство будет интересно прежде всего начинающим разработчикам, пос...

[Перевод] Прогнозирование временных рядов с помощью рекуррентных нейронных сетей Удалённый режим работы на фоне всеобщей самоизоляции может привести к весьма дурным последствиям. И эмоциональное выгорание – это ещё куда ни шло: там ведь и до крыши недалеко. В этой связи, как и многие, попробовал «успокоить» себя выделением времени на другие занятия – и н...

Наглядное сравнение возможностей камер Samsung Galaxy S20 и Galaxy S10 Главный редактор известного ресурса XDA Developers Макс Вайнбах (Max Weinbach) на своей страничке опубликовал первые фотографии, сделанные на камеру смартфона Samsung Galaxy S20. S10 S20 Они особенно интересны тем, что подаются в сравнении с фотографиями, сделанные на...

Подготовка к PMP по шагам Всем привет!Это вторая статья по подготовке к сдаче экзамена на сертификат Project Management Professional (PMP). Первая статья была посвящена тому, зачем сдавать РМР. Сегодня я хочу поговорить о том, как можно подготовиться к сдаче.  Итак, вы решили сдавать PMP. Н...

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

Какой язык программирования быстрее работает, проще изучается, легче пишется и вообще всех прекрасней на свете? В преддверии дня разработчика мы решили поднять извечный вопрос: «Какой язык программирования самый лучший?» Читать дальше →

Ozon go school: Как не нужно проводить отбор Go School Как вы знаете, в середине мая Ozon объявил о запуске школы программирования на языке Go. Обещали следующее: бесплатное обучение возможность получить знания по реальной разработке на Go от Ozon возможность получить работу в Ozon Чтобы попасть в школу, нужно было:...

Глубина кроличьей норы или собеседование по C++ в компании PVS-Studio Авторы: Андрей Карпов, khandeliants Филипп Хандельянц. Хочется поделиться интересной ситуацией, когда вопрос, используемый нами на собеседовании, оказался сложнее, чем задумывал его автор. С языком C++ и компиляторами надо всегда быть начеку. Не заскучаешь. Читать дальше &r...

(S)SDLC, или Как сделать разработку безопаснее. Часть 2 – Наташ, а Наташ? Мы там, это… SAST внедрили. – Мы там всё уронили, Наташ. Вообще, всё!!! – Пайплайны стоят, очередь забита… – Ни одной сборки не прошло! Вставай, Натаааш! Вот так примерно можно проснуться на следующее утро после внедрения в разработку статического анализ...

[Из песочницы] Как я учу детей Питону Моя основная работа связана с данными и программированием на R, но в этой статье я хочу рассказать про своё увлечение, которое даже приносит некий доход. Мне всегда было интересно рассказывать и объяснять что-то друзьям, одноклассникам и однокурсникам. Ещё мне всегда прост...

Антикризисный раздел Хабра А вы знали, что если нажать на Хабре хоткей «/» и ввести запрос в квадратных скобках, то сработает поиск только по ключевым словам? Например, с тегом [covid-19] уже написано более 170 постов — только по одному этому числу можно сделать вывод, что тема вируса волнует наших чи...

Правильное TDD Привет, Хабр! На написание этого поста меня вдохновил другой пост TDD есть опиум для народа, где обсуждаются спорные моменты в подходе TDD и в принципе делается вывод о его несостоятельности (хотя и признается необходимость тестов в любом случае). С автором я был полностью с...

Автоматизация тестирования: Java или Python? Всем привет! В марте OTUS запускает сразу два курса по автоматизации тестирования: «Python QA Engineer» и «Java QA Engineer». У нас часто спрашивают, какой из этих курсов выбрать, ответить на данный вопрос мы решили переводом статьи от компании SafeBear. Один из самых попу...

Почему канадский английский считают «грязным» и при чем тут Киану Ривз Сегодня мы расскажем о диалекте английского языка, на котором говорит свыше 17 миллионов людей. Историческое становление английского языка в Канаде, соседство с США и французский в качестве второго государственного создали диалект со своими особенностями и интересными фишка...

Формату MP3 исполнилось 25 лет 25 лет назад, в июле 1995 года, представители немецкого Института интегральных микросхем Фраунгофера (Fraunhofer-Institut für Integrierte Schaltungen, сокращенно Fraunhofer IIS, FIIS) приняли важное решение: использовать расширение .mp3 для обозначения нового стандарта ко...

Разработка кроссплатформенного приложения на Avalonia для Raspberry Pi с использованием Github Action ВступлениеВ связи с желанием апгрейдить свое рабочее место, появилась потребность в мониторе, на котором будут отображаться информативные виджеты, например: погода, календарь, показатели датчиков в доме -, и, так как готовые решения меня не устраивают, я решил, что сделаю св...

Онлайн-школа английского языка Novakid с российскими основателями привлекла $4,25 млн от TMT Investments и других По собственным данным Novakid, за год клиентская база и выручка выросли на 500%.

Российская онлайн-школа английского языка Novakid привлекла $1,5 млн от фондов Leta Capital и BonAngels Novakid использует технологии виртуальной реальности и геймификации для обучения детей.

Как работать с Tarantool на Golang вместо Lua Ядро Tarantool-а написано на C, а вся бизнес-логика создаётся на Lua. Это не самый сложный язык, но и не самый популярный. Поэтому сегодня я расскажу, как начать работать с Tarantool, написав всего три строчки кода на Lua. А всё остальное приложение написано на Golang. Чтоб...

[Перевод] Разбираем идеальный кейс фишинга при аренде квартиры Недавно я стал жертвой (к счастью, неудачной) фишинговой атаки. Несколько недель назад я бродил по сайтам Craigslist и Zillow: я хотел арендовать жилье в районе залива Сан-Франциско. Мое внимание привлекли симпатичные фото одного местечка, и мне захотелось связаться с аренд...

Отправляем письма с помощью asyncio и aiohttp из Django приложения Всем привет! Я занимаюсь разработкой и поддержкой сервиса уведомлений в Ostrovok.ru. Сервис написан на Python3 и Django. Помимо транзакционных писем, пушей и сообщений, сервис также берёт на себя задачи по массовым рассылкам коммерческих предложений (не спам! trust me, отп...

Huawei создаст собственный язык программирования Стало известно, что Huawei пытается войти в еще одну сферу - программирование. В частности, китайский производитель намерен создать собственный язык программирования.

[Перевод] Преобразование графов для процедурной генерации уровней Я много занимался деконструкцией инди-игры 2017 года Unexplored Джориса Дорманса. Она идеально воплощает идею процедурно генерируемых подземелий в стиле Zelda, и я обязан был выяснить, как происходит эта магия. К счастью, основная часть логики генерации написана на специали...

Книга «Программирование на Rust» Привет, Хаброжители! Официальный гайд по языку программирования Rust поможет вам создавать более быстрое и надежное программное обеспечение. Высокоуровневая эргономика и низкоуровневое управление часто противоречат друг другу, но Rust бросает вызов этому конфликту. Авторы ...

Что такое Windows PowerShell и с чем его едят? Часть 2: введение в язык программирования Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась. Читать дальше →

LEGO Education WeDo 2.0 и Scratch — новая связка для обучения детей робототехнике Привет, Хабр! Несколько лет обучающий набор LEGO Education WeDo 2.0 и детский язык Scratch развивались параллельно, но в начале этого года у Scratch появилась поддержка физических объектов, в том числе и модулей LEGO Education. О том, как можно использовать эту связку для об...

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 3 В этой части мы перестаём говорить о простом и приятном и начинаем говорить о трудном. Переменные в Ansible: scope, precedence, рекурсивная интерполяция. Для тех, кто дочитает до конца, маленький бонус: упрощённая таблица приоритетов, с которой можно жить. Предыдущие части: ...

Переводчик Google для Android поумнел Одной из самых часто используемых функций современных смартфонов является перевод иностранных языков. Зачастую смартфон помогает понять то, что без него было бы сделать практически невозможно. Для этих целей часто используется приложение Google Translate. Компания Googl...

Все, что вы хотели узнать про области видимости в Python, но стеснялись спросить В преддверии старта нового потока по курсу «Разработчик Python», решили поговорить про области видимости в Python. Что из этого вышло? — Читайте в материале ниже. Сегодня мы будем говорить о важных теоретических основах, которые необходимо понимать и помнить, чтобы писат...

Универсальный роутинг для React приложений Если попытаться в двух словах описать, в чем заключается функция роутинга на фронтэнде веб-приложений, то можно придти к выводу, что каждый популярный фреймоворк совершенно по-разному представляет это себе. Даже, сравнивая версии одного и того же фреймоворка, можно придти к ...

«Отдых — это непросто»: Андрей Бреслав о жизни после Kotlin Для многих в IT-сообществе имя Андрея Бреслава было почти синонимичным с названием языка программирования: «мы говорим Бреслав, подразумеваем — Kotlin». Неудивительно, поскольку Андрей возглавлял этот проект десять лет подряд, с самого его создания. Но теперь ситуация измени...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

Унифицируй это: как Lamoda делает единообразными свои Go сервисы Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и...

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

Как переводить переписку в Viber на iPhone на любой язык не покидая приложения В конце 2018 года официальное приложение Viber для iPhone получило функцию перевода сообщений в чатах на множество языков, включая русский, английский, французский, немецкий, китайский, польский и т.д. Функция призвана значительно упростить общение пользователей из разных ст...

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

Не баян: ищем дубликаты изображений на основе Milvus с индексом FAISS внутри В user-generated проектах часто приходится бороться с дубликатами, а для нас это особенно актуально, так как основной контент мобильного приложения iFunny — это изображения, которые постятся десятками тысяч ежедневно. Для поиска повторов мы написали отдельную систему, чтоб...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)