Социальные сети Рунета
Пятница, 24 мая 2019
26 июня 2018   16:26

[Перевод] Руководство по фоновой работе в Android. Часть 5: Корутины в Котлине

Остров Котлин Предыдущие тексты этой серии: про AsyncTask, про Loaders, про Executors и EventBus, про RxJava. Итак, этот час настал. Это статья, ради которой была написана вся серия: объяснение, как новый подход работает «под капотом». Если вы пока не знаете и того, как и...

Подробности на сайте: habr.com

От Котлина до Гоблина: как прошёл TechTrain Устраивая IT-фестиваль TechTrain, мы сами не до конца понимали, каким он окажется. Конечно, мы знали, о чём будут доклады и какие будут стенды. Но когда собираешь на совершенно новое мероприятие 2000 айтишников с совсем разным бэкграундом, некоторые ответы можешь получить ...

[Из песочницы] Как я заменил RxJava на корутины в своем проекте и почему вам вероятно также стоит это сделать Привет, Хабр! Представляю вам перевод статьи автора Paulo Sato на тему использования Kotlin Coroutines вместо RxJava в своих Android проектах. RxJava как базука, большинство приложений не использует и половины её огневой мощи. В статье пойдет речь о том, как заменить её кор...

Kotlin, IT в Эстонии и (внезапно) туннель между Таллином и Хельсинки: интервью с Антоном Кексом Недавно у нас в блоге вышел весьма специфичный пост про Котлин: не очень серьезный, довольно поверхностный и неожиданно бодрый. Но мы прекрасно понимаем, что критиковать технологию, потратив на её изучение несколько дней, — это моветон. И поэтому в этот раз мы решили поговор...

[Перевод] Как работает Zig? От переводчика: этот пост был опубликован в блоге автора 15 марта 2018 года. Так как язык развивается, в настоящее время его синтаксис может отличаться. Всё описанное относится к Zig 0.2.0, текущая версия языка — Zig 0.3.0. Я связался с автором поста, и он любезно предостави...

Комментарии в телеграм-канале Знакомство с телеграм-ботами вышло сумбурно — на работе нужно было опередить команду коллег, и, неплохо зная внутренний API, был написан бот за несколько дней (впоследствии доработанный и получивший ru telegram verify badge) По итогам было написано два бота (основной и расс...

[Перевод] Работа с сетью в Android с использованием корутин и Retrofit Чем больше я читал и смотрел доклады про корутины в Kotlin, тем больше я восхищался этим средством языка. Недавно в Kotlin 1.3 вышел их стабильный релиз, а значит, настало время начать погружение и опробовать корутины в действии на примере моего существующего RxJava-кода. В ...

[Перевод] Руководство по Node.js, часть 9: работа с файловой системой Сегодня, в девятой части перевода руководства по Node.js, мы поговорим о работе с файлами. В частности, речь пойдёт о модулях fs и path — о файловых дескрипторах, о путях к файлам, о получении информации о файлах, об их чтении и записи, о работе с директориями. [Советуем ...

[Перевод] Загрузка ядра Linux. Часть 1 От загрузчика к ядру Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux. Мне очень ин...

[Перевод] Руководство по Node.js, часть 1: общие сведения и начало работы Мы начинаем публикацию серии материалов, которые представляют собой поэтапный перевод руководства по Node.js для начинающих. А именно, в данном случае «начинающий» — это тот, кто обладает некоторыми познаниями в области браузерного JavaScript. Он слышал о том, что существует...

[Перевод] Программирование с PyUSB 1.0 От переводчика: Это перевод руководства Programming with PyUSB 1.0 Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac. Позвольте мне представиться PyUSB 1.0 — это библиотека Python...

Главный секрет Google I/O 2019, о котором не узнать из интернета Титульная конференция крупнейшего гиганта рекламного бизнеса отгремела уже как неделю, а некоторые до сих пор пишут статьи. Так как всё, что можно было написать про программу и главные новинки, уже написано (привет phillennium), то что остаётся скромному посетителю? Только р...

[Из песочницы] Помощь и просьба о ней. Статья про информационную безопасность для рядовых пользователей Я предлагаю вам некоторые шаги по повышению безопасности и приватности в интернет сети (и не только) для рядовых пользователей. Обоснование почему это необходимо – в начале статьи. Для тех кто всё знает и недоумевает почему этот текст находится здесь — просьба прочитать пунк...

Исследование: СМИ идут за контентом в Телеграм-каналы В вебе только и разговоров, что о Телеграм-каналах. Однако, ещё никто не оценил численно: какое влияние оказывают Телеграм-каналы на СМИ? Сегодня мы попытаемся это исправить — и сделаем первый шаг в анализе связки медиа и Телеграма. Ключевой вопрос исследования: Какую роль ...

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

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

OS1: примитивное ядро на Rust для x86. Часть 2. VGA, GDT, IDT Первая часть Первая статья еще не успела остыть, а я решил не держать вас в интриге и написать продолжение. Итак, в предыдущей статье мы поговорили о линковке, загрузке файла ядра и первичной инициализации. Я дал несколько полезных ссылок, рассказал, как размещается загружен...

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

[Перевод] Стандартный Error Handler в RxJava2 или почему RxJava вызывает сбой приложения даже если реализован onError В переводе статьи пойдёт речь об UndeliverableException в RxJava2 версии 2.0.6 и новее. Если кто-то столкнулся и не может разобраться, или совсем не слышал об этой проблеме — прошу под кат. Побудили к переводу проблемы в production после перехода с RxJava1 на RxJava2. Оригин...

[Перевод] Руководство по Node.js, часть 5: npm и npx Сегодня, в пятой части перевода руководства по Node.js, мы завершим разбор возможностей npm, в частности, коснёмся таких вопросов, как выяснение установленных версий npm-пакетов, установка старых версий пакетов, обновление зависимостей, локальная и глобальная деинсталляция п...

FreeCAD — новый метод рисования Disclamer: Я никогда в своей жизни не работал с CAD/CAM приложениями раньше, и, вдруг, пришлось. Принципы работы FreeCAD меня так восхитили, что это требует срочного поста на Хабр, чтобы рассказать другим. Написанное в этом посте, вероятнее всего, будет тривиальным и скучным...

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

[Из песочницы] SNMP + Java – невозможное возможно: пишем парсер MIB-файлов SNMP – не самый юзер-френдли протокол: MIB-файлы слишком длинные и запутанные, а OID'ы просто невозможно запомнить. А что если возникла необходимость работать с SNMP на Java? Например, написать автотесты для проверки API SNMP-сервера. Путём проб и ошибок при наличии доволь...

Методика D.I.Y. проекта. Часть вторая В заключительной части статьи «Методика D.I.Y. проекта» будет рассмотрен комплекс организационных мероприятий на стадии исполнения и закрытия любительского проекта. Предыдущие части статьи опубликованы здесь и здесь. Читать дальше →

Экономика радости. Наставничество как частный случай. Закон трёх процентов Знаю, что написав этот пост, не стану Паисием Святогорцем. Однако, я надеюсь, найдётся хотя бы один читатель, который, возможно, поймет какой это кайф – быть педагогом (ментором) в IT. И наша страна станет чуточку лучше. И этот читатель (который поймет) станет чуточку счастл...

[Перевод] Паттерны и антипаттерны корутин в Kotlin Решил написать о некоторых вещах, которых, по моему мнению, стоит и не стоит избегать при использовании корутин Kotlin. Читать дальше →

[Перевод] Разворачиваем Kubernetes HA-кластер на Baremethal с помощью Kubeadm и Keepalived (простое руководство) Эта статья является свободной интерпретацей официального руководства Creating Highly Available Clusters with kubeadm для Stacked control plane nodes. Мне не нравятся сложный язык и примеры использованные в нем, поэтому я написал свое руководство. Если у вас появятся какие-ли...

Физические безумства Добрый день, уважаемый читатель! Я, начинающий Java-программист, долгое время не мог освоиться с библиотекой Box2D. Во-первых, из-за того, что она написана для C++, и по ней нет документации, а синтаксис Си я не знаю. Во-вторых, из-за того, что подробные уроки по этой библио...

E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами Введение Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось. Мо...

Ещё один dsl на Kotlin или как я печатал PDF из react Нельзя просто взять и распечатать страницу написанную на React: есть разделители страниц, поля для ввода. Кроме того, хочется один раз написать рендеринг, чтобы он генерил как ReactDom, так и обычный HTML, который можно сконвертить в PDF. Самое сложное, что у React свой d...

Как быстро написать веб-сайт или веб-приложение и не увязнуть в сборщиках Это маленькое руководство описывает создание реактивного веб-приложения используя отрисовку на стороне сервера (Server-Side Rendering, SSR). Клиентская часть являет собой полноценное Vue-приложение, в моём случае используя шаблон MVVM. Серверное приложение работает на микроф...

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

[Перевод] [в закладки] Bash для начинающих: 21 полезная команда Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной кома...

Frontend Mix — доклады про Node.js, масштабируемость и нативный веб У вас есть фронтенд. Вы написали сайт, но теперь его просят встроить в ваше нативное приложение. Вы смешиваете их и получаете бесшовный переход. Вы не понимаете, как это произошло, но вам объяснят. У вас есть фронтенд. Вам нужен BFF, и вы выбираете Node.js. Что-то настраивае...

Из юриспруденции в Big Data-разработку Путей много – как найти свой? Герой этой статьи, Роман Майер, получил гуманитарное образование и пришел в IT совсем из других областей. Он развивал собственный бизнес, работал менеджером по продажам, был юристом, а к 28 годам понял, что пока не нашел работу мечты и пора осв...

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

8 правил успешного фрилансера Мой последний пост — "Недостатки фриланса", нашел весомый отклик у аудитории хабра (37k просмотров, 380 комментариев). В конце него, я обещал написать новый пост на тему «Как стать успешным фрилансером», для сохранения баланса во Вселенной . Помимо того, в личные сообщения п...

[Перевод] Трудно быть мейнтейнером проекта Open Source Автор — Сальваторе Санфилиппо, разработчик и мейнтейнер свободной СУБД Redis Несколько месяцев назад мне написал мейнтейнер одного системного open source проекта с довольно большим и активным сообществом. Он написал, что много лет изо всех сил пытается поддерживать свой пр...

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

[Из песочницы] Cassandra Sink для Spark Structured Streaming Пару месяцев назад я начала изучать Spark, и в какой-то момент столкнулась с проблемой сохранения вычислений Structured Streaming в базе данных Cassandra. В данном посте я привожу простой пример создания и использования Cassandra Sink для Spark Structured Streaming. Я надею...

[Перевод] Введение в Kubernetes для пользователей VMware. Часть 1. Теория Это вторая часть из моей серии постов “Kubernetes in the Enterprise”. Как я упоминал в моем последнем посте, очень важно при переходе к “Design and Implementation Guides” всем быть на одном уровне понимания Kubernetes (K8s). Я не хочу здесь применять традиционный подход дл...

Занимательный пролог #3 Так вот, сообщество, прошу предоставить мне шанс удивить вас с третьего раза, в предыдущем решении я задействовал питон, думал вот тут привлеку внимание знатоков и мне сразу скажут, да зачем это делать, вообще есть же регулярные выражения — сделал и все там точно будет работ...

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

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

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

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

Текстовая версия доклада «Actors vs CSP vs Tasks...» с C++ CoreHard Autumn 2018 В начале ноября в Минске прошла очередная посвященная языку C++ конференция C++ CoreHard Autumn 2018. На ней был сделан капитанский доклад «Actors vs CSP vs Tasks...», где речь шла о том, как может выглядеть в C++ применение более высокоуровневых, чем «голая многопоточность»...

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

Урок Google+: проектам надо следить, чтобы границы между интересами юзеров в реале соблюдались и онлайн Google наконец последовал совету из каждой голливудской драмы, в которой герой теряет близкого человека, и let Google+ go. Хотя я написал о де-факто состоявшемся провале Google+ ещё четыре года назад, сегодняшний пост не только про «я же говорил», а про идею, лежавшую в ос...

«Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем: Golang и горутины; JavaScript и его применимость для ...

Миграция схемы базы данных без даунтайма для postgresql на примере django Введение Привет, Хабр! Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный ...

Пишем свой язык программирования, часть 3: Архитектура транслятора. Разбор языковых структур и математических выражений Введение Приветствую вас, заинтересованные читающие разработчики на не важно каких языках, на которых я ориентирую эти статьи и чьи поддержку и мнения я ценю. Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи: Часть 1: пишем языковую ВМ Часть 2:...

Имплементация катсцен и последовательностей действий в играх В этом посте я расскажу о том, как можно имплементировать последовательности действий и катсцены в видеоиграх. Эта статья является переводом вот этой статьи и по этой же теме я делал доклад на Lua in Moscow, так что если вам больше нравится смотреть видео, то можете посмотре...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

Краткий обзор программы HolyJS 2019 Piter и ссылки на онлайн-трансляции Уже завтра начнётся седьмая по счёту конференция HolyJS. С каждым годом работа над её программой всё сложнее не только из-за стремительного развития и взросления JS-экосистемы, но и из-за роста качества и количества заявок. В этот раз программному комитету пришлось разоб...

[Перевод] Знакомимся с альфа-версией снапшотов томов в Kubernetes Прим. перев.: оригинальная статья была недавно опубликована в блоге Kubernetes и написана сотрудниками компаний Google и Huawei (Jing Xu, Xing Yang, Saad Ali), активную деятельность которых вы непременно видели в GitHub'е проекта, если когда-либо интересовались фичами и пр...

[Из песочницы] Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки Существует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-S...

Чат на сайте и в выдаче Яндекс В этом тексте речь пойдёт о чатах для бизнеса от Яндекс. 3 апреля 2019 г. Яндекс объявил о том, что он запустил собственную чат-платформу. Надо сказать, что появление чатов на страницах поисковой выдачи Яндекса произошло несколько ранее, но теперь Яндекс берётся и обрабаты...

[Перевод] Руководство по Node.js, часть 3: хостинг, REPL, работа с консолью, модули Перед вами третья часть перевода руководства по Node.js. Сегодня мы поговорим о выборе хостинга для Node.js-проектов, о том, как работать с Node.js в режиме REPL и как запускать скрипты с аргументами, о взаимодействии с консолью и о модулях. [Советуем почитать] Другие час...

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

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

«Server-side Swift недооценён»: интервью с Полом Хадсоном Глядя на признанных IT-экспертов — с их подробными книгами, уверенными докладами и стройными блог-постами — можно ощутить их какими-то особенными существами, которые знают в своей области вообще всё, никогда не волнуются перед выходом на сцену и родились с клавиатурой в ру...

[Из песочницы] Типизированный DSL в TypeScript из JSX У TypeScript есть встроенная поддержка JSX синтаксиса и компилятор TypeScript'а предоставляет годные инструменты по настройке процесса компиляции JSX. По сути, это создает возможность писать типизированный DSL используя JSX. В этой статье речь пойдет именно про это — как на...

[Перевод] Вышел Rust 2018… но что это такое? Статья написана Лин Кларк в сотрудничестве с командой разработчиков Rust («мы» в тексте). Можете прочитать также сообщение в официальном блоге Rust. 6 декабря 2018 года вышла первая версия Rust 2018. В этом релизе мы сосредоточились на производительности, чтобы разработчики...

[Перевод] Учебный курс по React, часть 6: о некоторых особенностях курса, JSX и JavaScript Сегодня мы публикуем продолжение учебного курса по React. Здесь речь пойдёт о некоторых особенностях курса, касающихся, в частности, стиля кода. Тут же мы подробнее поговорим о взаимоотношениях между JSX и JavaScript. → Часть 1: обзор курса, причины популярности React, Re...

Предлагаемые изменения в Chromium нарушат работу uBlock Origin Разработчик uBlock Origin заявил, что его расширение для блокировки рекламы не сможет работать, если будут приняты изменения в Chromium. Речь идёт о внедрении declarativeNetRequest API, которые лишают возможности использовать webRequest API. Google считает, что изменения нео...

ControlValueAccessor и contenteditable в Angular Вы когда-нибудь задумывались, как работает связка форм Angular и HTML элементов, через которые пользователь заносит данные? С самого начала для этого использовали ControlValueAccessor — специальный интерфейс, состоящий всего из 4 методов: interface ControlValueAccessor { w...

[Перевод] Руководство по Node.js, часть 7: асинхронное программирование Сегодня, в переводе седьмой части руководства по Node.js, мы поговорим об асинхронном программировании, рассмотрим такие вопросы, как использование коллбэков, промисов и конструкции async/await, обсудим работу с событиями. [Советуем почитать] Другие части циклаЧасть 1: Об...

[Перевод] Как я пишу конспекты по математике на LaTeX в Vim Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу оп...

Импортозамещение на практике. Часть 1. Варианты Введение В связи с тем, что близится 2020 год и «час хэ», когда нужно будет отчитаться об исполнении приказа Минкомсвязи о переходе на отечественное ПО (в рамках импортозамещения), да не простое, а из реестра Минкомсвязи, мне прилетела задача о разработке плана, собственно...

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

[Перевод] Руководство по Node.js, часть 8: протоколы HTTP и WebSocket Node.js — это серверная платформа. Основная задача сервера — как можно быстрее и эффективнее обрабатывать запросы, поступающие от клиентов, в частности — от браузеров. Восьмая часть перевода руководства по Node.js, которую мы публикуем сегодня, посвящена протоколам HTTP и We...

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

[Из песочницы] node.js serverside — работа над ошибками. Часть 1 Добрый день. Эта статья ориентирована на разработчиков, имеющих представление о node.js. Недавно готовил материал по фактам, которые полезно знать разработчикам под node.js в нашей конторе. Проекты, над которыми мы работаем — это API сервисы, использующие модуль node.js ex...

[Перевод] Большая часть текстов в интернете написана безумцами Я обнаружил пост, написанный несколько лет назад, где перечислено, какой процент пользователей reddit оставляет записи на этом сайте: В Askreddit около 15 уникальных посетителей и 500 000 комментаторов. В /r/pics и /r/funny 10 млн посетителей и 200 К комментаторов. В /r/...

На пути к физическим принципам биологической эволюции. Окончание + полный текст перевода Сокращенный перевод статьи М. Кацнельсона, Ю. Вольфа и Е. Кунина Towards physical principles of biological evolution Mikhail I. Katsnelson, Yuri I. Wolf, Eugene V. Koonin Оригинал статьи (Две предыдущие части уже были опубликованы: начало и продолжение ) Возможна ли конвер...

[Из песочницы] Duality — легкий и быстрый движок для игростроя под Windows (Доп.) Приветствую, читатель. В данной публикации речь пойдет о перспективном и достаточно молодом игровом движке, который незаслуженно остался в тени таких гигантов, как Unity или Unreal Engine. Разработчиками является объединение энтузиастов под руководством Adam's Lair. Как...

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

Установка Archlinux c полным шифрованием системы и LVM на LUKS В данном посте вы прочитаете немного о моих странных изыскания во время вынужденного отпуска по болезни. Речь пойдёт сразу о нескольких вещах, которые не являются «best practice», но так же тоже можно! Итак, здесь будет туториал о том, как установить Archlinux(мой любимый ди...

[Из песочницы] Анализ Minor Violations Java кода на платформе Duerank.com (часть 1) Введение Что мы знаем об ошибках в коде приложений, написанных на Java? Ну, мы наверняка знаем, что они там встречаются. А насколько часто встречаются? Как много делает разнообразных ошибок в своём коде разработчик? Под ошибками мы понимаем не только баги, но и наличие раз...

Компьютеры пишут прозу, но все еще уступают людям. Почему? Два года назад в японском литературном конкурсе чуть не выиграла повесть, написанная искусственным интеллектом. Она называется «День, когда компьютер написал роман». Пусть это и звучит как дурацкое воплощение анекдота «лучший способ заработать миллион — написать книгу, как...

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

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

[Из песочницы] Ещё один telegram-бот или реализация бота для знакомств Меня зовут Влад, по роду деятельности я — военный, но подрабатываю в компании автоматизации бизнеса, где и занимаюсь программированием на .net. Краткая предыстория В момент очередного схождения-расхождения с моей бывшей(очередной) невестой, она обмолвилась, что от скуки и...

ЭЛАР создаст технологическую платформу для «Тотального диктанта» Передовые отечественные технологии на службе просвещения: корпорация ЭЛАР предоставит технологическую платформу для крупнейших городов проведения Тотального диктанта - Москвы и Новосибирска, где суммарно текст напишут 30 тысяч участников на пятистах площадках. Теперь участни...

Пример разбора C++ кода с помощью libclang на Python На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию,...

[Из песочницы] Ломаем простую «крякми» при помощи Ghidra — Часть 1 О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональност...

[Перевод] 22 совета Angular-разработчику. Часть 1 Автор статьи, первую часть перевода которой мы публикуем, говорит, что он уже около двух лет работает над крупномасштабным Angular-приложением в Trade Me. В течение последних нескольких лет команда разработчиков приложения постоянно занимается совершенствованием проекта — ка...

Из нового офиса до Котлина вплавь: разработчики JetBrains проверяют себя на прочность Зачем программистам плыть 25 км в Финском заливе? Впервые команда из IT-компании участвует в марафонском заплыве KotlinRace.

[Перевод] Руководство по Node.js, часть 10: стандартные модули, потоки, базы данных, NODE_ENV Этот материал завершает серию переводов руководства по Node.js. Сегодня мы поговорим о модулях os, events и http, обсудим работу с потоками и базами данных, затронем вопрос использования Node.js при разработке приложений и в продакшне. [Советуем почитать] Другие части цик...

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

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

Как запустить свой стартап? 10 маркетинговых приемов… Написание гостевых постов в популярных изданиях. Вы можете послать редактору интересующего вас блога письмо, содержащее текст статьи и короткое описание. Если вы не умеете красиво писать, то всегда можете попросить друга сделать это. ​ Бесплатные раздачи премиального контент...

[Из песочницы] Как я делал линейно-интерактивный ИБП (Часть 1) Однажды возникла задача разработать линейно-интерактивный ИБП. Это фактически самый простой тип ИБП выходом «модифицированный синус», но дополнительно имеющий возможность регулировать выходное напряжение при изменении входного. Что-то вроде простейшего стабилизатора напряжен...

Довольно вычурные «Начала» Евклида в TeX-е «какая-то странная антикварная х██ня, написанная ирландским кулибиным в 1847 ну, хорошо, что и такая бывает, конечно» Миша Вербицкий В 16-м году мне на глаза попались «Начала» Евклида в интерпретации Оливера Бирна. Фишка этой книги в том, что вместо буквенных обозначений ...

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила ...

Принимаем участие в недавнем Telegram Contest, пишем крутое OpenGL ES приложение и выигрываем ничего Забегая вперед, хотелось бы обратить внимание на сумбурную ситуацию с победителем первого этапа конкурса. Победитель забрал 50К американских президентов. НО, был как минимум, еще один разработчик, который написал идентичное приложение и не был никак вознагражден. Он даже по...

[Перевод] Что на самом деле делала программа Ады Лавлейс? Эпизод с основанием Microsoft – один из наиболее известных в компьютерной истории. В 1975 году Пол Аллен вылетел в Альбукерк, чтобы продемонстрировать интерпретатор BASIC, которые они с Биллом Гейтсом написали для микрокомпьютера Altair. Поскольку у них не было работающего...

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 2/2: Trusted Web Activity В первой части мы превратили наш сайт в Progressive Web App. Там же было сказано, что совсем недавно, 6 февраля 2019 года, Google предоставили простую возможность выкладывать PWA в Google Play при помощи Trusted Web Activity. Всё, что нужно сделать, это написать небольшую ...

Типичные ошибки при работе с PostgreSQL. Часть 2 Мы продолжаем публиковать видео и расшифровки лучших докладов с конференции PGConf.Russia 2019. В первой части доклада Ивана Фролкова речь шла о непоследовательном именовании, о constraints, о том, где лучше сосредоточить логику — в базе или в приложении. В этой части вас жд...

До Котлина вплавь: разработчики JetBrains проверяют себя на прочность Зачем программистам плыть 25 км в Финском заливе? Впервые команда из IT-компании участвует в марафонском заплыве KotlinRace.

DevOops 2018: бесплатная онлайн-трансляция, вечеринка и многое другое Всего несколько дней осталось до конференции DevOops 2018: она пройдет в конгресс-центре гостиницы «Park Inn by Radisson Пулковская» 14 октября. Вы уже знаете про 17 докладов и сотни участников, но мы подготовили кое-что ещё. По традиции, прямо на YouTube будет открыта бес...

Чек-лист IT-аутсорсинга: работаем без рисков От переводчика: оригинал статьи написан Александром Шапородом для блога его компании Django Stars. Они разрабатывают мобильные приложения, а своим опытом делятся с читателями. Аутсорсинг в ИТ имеет ряд достоинств: например, он позволяет экономить средства и при необходим...

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

Поиск в MapKit: Tips & Tricks MapKit — это программная библиотека, которая позволяет использовать картографические данные и технологии Яндекса в мобильных приложениях. У неё есть официальная документация, которая уже содержит подробное описание методов API, поэтому сегодня мы поговорим о другом. В этом...

Как вычисляют сумасшедших — 2: блеск и нищета патопсихологической диагностики Привет, Хабр! Меня зовут Кристина, я клинический психолог. Около двух лет назад я опубликовала на Geektimes пост о патопсихологической диагностике, в котором рассказала о том, как производится исследование психики пациентов в психиатрическом стационаре на предмет наличия и...

[Перевод] Отзывчивые изображения: CSS-приёмы, которые помогают экономить время Если вы занимаетесь веб-разработкой, то высока вероятность того, что вам знакомы два чудовища, о которых пойдёт речь в статье, перевод которой мы сегодня публикуем. Речь идёт об изображениях и о дедлайнах. Иногда, по каким-то причинам, картинки никак не хотят помещаться в те...

Когда шифрование не поможет: рассказываем про физический доступ к устройству В феврале мы опубликовали статью «Не VPN-ом единым. Шпаргалка о том, как обезопасить себя и свои данные». Один из комментариев побудил нас написать продолжение статьи. Эта часть — вполне автономный источник информации, но всё же рекомендуем ознакомиться с обоими постами. Н...

[Перевод] Руководство по JavaScript, часть 2: стиль кода и структура программ Сегодня мы публикуем перевод следующей части руководства по JavaScript. Здесь мы поговорим о стиле кода и о лексической структуре программ. → Предыдущая часть (первая программа, особенности языка, стандарты) Читать дальше →

[Перевод] Дональд Кнут: «3:16» — книга про Библию (72,73,74/97) «Я бы прочитал книгу теолога о программировании.» — Дональд Кнут «3:16» — это книга, которая отличается от любой другой книги, которая когда-либо была написана. Я полагаю, что наконец-то созрел, чтобы написать такую книгу. Во всяком случае, 3:16 — это изучение Библии в д...

Древности: Железо «Криптономикона» «Криптономикон», без всяких скидок, моя любимая книга. Я ее прочитал тыщу раз, и в оригинале, и в переводе. Ровно два года назад я даже написал сочинение, задавшись целью объяснить, почему это такая крутая книга. Несмотря на высокий уровень достоверности происходящих в книге...

Обновление базы данных и zero-downtime deployment Про обновление систем «на лету» без их остановки (zero-downtime deployment) написано немало статей и многие аспекты этого подхода является достаточно очевидными. На мой взгляд, наиболее сложная часть деплоймента в этом случае — обновление хранилищ данных, в случае если их ко...

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

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

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

Представляем shell-operator: создавать операторы для Kubernetes теперь совсем просто В нашем блоге уже были статьи, рассказывающие про возможности операторов в Kubernetes и о том, как написать простой оператор самому. На этот раз хотим представить вашему вниманию наше Open Source-решение, которое выводит создание операторов на суперлёгкий уровень, — познаком...

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

Под капотом Graveyard Keeper: Как реализованы графические эффекты Всем привет! Целых 4 года я не писал на Хабр. Последняя моя серия постов была о различных инструментах и приемах, которые мы применяли на нашей прошлой игре (разрабатывая ее на Unity). С тех пор игру ту мы благополучно выпустили, а также выпустили и новую. Так что теперь мож...

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

Kotlin: ищем Head of Marketing Привет! Снова пришло то время, когда нам пора поднимать маркетинг Котлина на новый уровень. Почему? Если коротко, мы очень выросли, и у нас очень большие амбиции. Сегодня в маркетинге Котлина работает 2 (прописью: два) человека. Всем очевидно, что это очень мало. Результат...

[Из песочницы] Радость Haxe. Роман с обделенным вниманием языком программирования Привет, Хабр! Представляю вашему вниманию перевод статьи The Joy of Haxe. FontStruct’s love affair with a neglected programming language. Довольно грубая попытка воспроизвести логотип Haxe в редакторе шрифтов FontStruct Недавно мы открыли исходный код наиболее важной част...

[спойлеры] Фильм Wandering Earth: Солнцу кранты. Всех спасут китайцы и один русский космонавт с флягой водки «Сначала неизбежно идут мысль, фантазия, сказка; за ними шествует научный расчет и, в конце концов, исполнение венчает мысль.» — К.Э. Циолковский Китайцы сняли научно-фантастический фильм по роману автора, который написал "Задачу трёх тел". И собираются рвать мировой прок...

Что я понял и с какими проблемами столкнулся, создав клон Hacker News От переводчика: эта статья — сокращенный перевод оригинального поста веб-разработчика Джесси Хорна. Его работа и одновременно хобби — веб-дизайн. Своими наработками и полученным опытом Джесси частенько делится с другими программистами, как опытными, так и начинающими. Н...

[Перевод] Imba: JavaScript-совместимый язык для быстрой работы с DOM Imba — это опенсорсный язык программирования, созданный компанией Scrimba специально для разработки веб-приложений. Он компилируется в JavaScript и способен работать внутри существующей JS-экосистемы. Речь идёт, например, о Node.js, об npm, о Webpack. Основная сильная сторо...

[Из песочницы] Введение в WSGI-серверы: Часть первая Данная статья является переводом статьи Кевина Голдберга «An Introduction to Python WSGI Servers: Part 1» blog.appdynamics.com/engineering/an-introduction-to-python-wsgi-servers-part-1 с небольшими дополнениями от переводчика Краткая история серверов WSGI Python WSGI-серв...

Я детей вообще-то боюсь, милостивый мой государь, – шумливы, жестоки и себялюбивы, а коли дети правят державой? Представьте себе, что руководитель пресс-службы NASA на своей странице в Facebook банит пользователей, задавших вопрос, на который он не хочет отвечать т.к не может написать правду. А затем же на этой странице публикует пост со статусом «feeling wonderful» о том, что забанил...

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

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

Метеостанция на Arduino от А до Я. Часть 5 Окончание. Предыдущая часть. Оглавление: Часть 1. Требования. Выбор железа. Общая схема Часть 2. Софт. Центральный блок, железо Часть 3. Центральный блок, софт Часть 4. Заоконный датчик Часть 5. MySQL, PHP, WWW, Android Заоконный датчик. Программное обеспечение Поговорим о...

Как я написал и издал книгу об МГУ: 10 критических ошибок Три года назад я решил сделать книгу о высотке МГУ на Ленинских горах — большую, иллюстрированную, с привлечением выпускников и т.п. История этой работы — настоящее кино (местами фарс, местами хоррор) с кучей драматических поворотов. Сверхудачный краудфандинг, широкая аудито...

[Перевод] Prettier, ESLint, Husky, Lint-Staged и EditorConfig: инструменты для написания аккуратного кода Вы стремитесь к тому, чтобы писать аккуратный код, но не знаете с чего начать… Вы вчитываетесь в руководства по стилю, вроде этого от Airbnb, стараетесь следовать практическим рекомендациям ведущих специалистов… Вам приходится удалять неиспользуемый код? Приходится искать не...

S for Security: безопасность в Интернете Вещей и доклады на InoThings++ 2019 — Шеф, у нас дыра в безопасности! — Ну хоть что-то у нас в безопасности... Привет, Хабр! В комментариях к предыдущему посту про InoThings++ высказали мнение, что в Интернете Вещей есть более важная для обсуждения область, нежели вмешательство государства — это область обес...

Бонусы Joker 2018: бесплатная онлайн-трансляция, бофы, вечеринка и настолки Считаные дни остались до конференции Joker 2018: она пройдет в эту пятницу и субботу, 19-20 октября в Экспофоруме. Вы уже знаете про 42 доклада и сотни участников, но мы подготовили кое-что ещё. По традиции, прямо на YouTube будет открыта бесплатная онлайн-трансляция. Но ...

Поговорили с Троем Майлзом — программистом «Нейроманта» Привет! Вы, возможно, знаете меня по серии «Реверсим Нейроманта», где я рассказываю о том, как мы реверс-инжинирим и портируем видеоигру по мотивам одноимённого романа Уильяма Гибсона. Из-за своего содержания, это, скорее, спин-офф, чем следующая номерная часть — самостоятел...

GUI-фреймворки — на поток Приветствую вас, коллеги! Пару-тройку месяцев назад я начал приглядываться к Golang с целью использовать его для десктопных приложений. Язык понравился, объем и тематика написанных для него пакетов произвели впечатление, но вот с GUI дело обстоит не так радужно. Не буду сей...

Оцените новый дизайн на Sosnovskij.ru — нужны отзывы В 2009 году блог начал с бесплатной темы, в 2011 обзавелся уникальным шаблоном, в 2014 добавился ночной дизайн. Сегодня 2018 год — пора примерять новое оформление. Зацените ->> (специально для тех, кто читает через почту и ридеры). Скажу честно, предыдущий дизайн силь...

OS1: примитивное ядро на Rust для x86. Часть 3. Карта памяти, Page fault exception, куча и аллокации Первая часть Вторая часть Тема сегодняшнего разговора — работа с памятью. Я расскажу про инициализацию директории страниц, маппинг физической памяти, управление виртуальной и мою организацию кучи для аллокатора. Как я уже говорил в первой статье, я решил использовать страниц...

[Перевод] Руководство по Node.js, часть 6: цикл событий, стек вызовов, таймеры Сегодня, в шестой части перевода руководства по Node.js, мы поговорим о цикле событий, о стеке вызовов, о функции process.nextTick(), о таймерах. Понимание этих и других механизмов Node.js является одной из основ успешной разработки приложений для этой платформы. [Советуе...

Параллелизм в PostgreSQL: не сферический, не конь, не в вакууме Масштабирование СУБД – это непрерывно наступающее будущее. СУБД совершенствуются и лучше масштабируются на аппаратных платформах, а сами аппаратные платформы наращивают производительность, число ядер, памяти — Ахиллес догоняет черепаху, но все еще не догнал. Проблема масшт...

Книга «Руководство разработчика по Azure» Эта электронная книга написана разработчиками для разработчиков. В ней описаны основы платформы Azure, ее возможности для разработчиков и организаций, а также способы их эффективного применения. Во второй половине руководства приведены сценарии, например тур по порталу Azu...

[Перевод] Java для Playstation 2 — возможно ли это? Введение Этим проектом я хотел ответить на один вопрос: возможно ли написать Java API для Playstation 2 и создать на нём графическое демо. Не хочу раскрывать спойлеры, но ответом будет «да». Несколько лет назад я начал проект Java Grinder, получающий скомпилированные файлы...

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

CPU Design. Эзотерический язык LMCode Часть I Часть II Часть III Часть IV Эта статья посвящена созданию интерпретатора некого эзотерического языка LMCode, в основе которого лежит архитектура Little Man Computer. О Little Man Computer можно прочитать в предыдущих статьях. Пусть команде INP соответствует , ...

Топ-10 докладов Mobius 2018 Piter Весной мы провели в Петербурге конференцию по мобильной разработке Mobius, и до сегодняшнего дня видеозаписи докладов были доступны только её зрителям. Но теперь настало время поделиться со всем миром: по ссылке плейлист, а в этом посте представляем лучшую десятку. Она со...

«Бэкап мне на ленту запили». Рассказ от первого лица В предыдущей статье мы поведали вам о новых фичах в вышедшем в январе обновлении Update 4 для Veeam Backup & Replication 9.5 (VBR), где осознанно не упомянули бэкапы на магнитную ленту. Рассказ об этой области заслуживает отдельной статьи, потому что новых фич было дейст...

Древности: AlphaSmart Dana, дзен и искусство ухода за пальмой Коллекционирование старых устройств часто вызвано ностальгией по ушедшим временам. Но этого устройства в начале двухтысячных у меня не было, и быть не могло. Альфасмарт Дана — это самый большой «карманный компьютер» на базе Палм ОС, почти идеальная пишущая машинка на батарей...

Итоги 2018 года и планы на 2019 Дорогие друзья, пришло время подвести итоги уходящего года. Этот год для меня получился очень интересным, продуктивным и насыщенным. У меня было 10 поездок. 7 из них с докладами на конференции, 3 в отпуск. Это был самый насыщенный поездками год в моей жизни, если не считать...

Интеграция web-приложений с помощью Spring Cloud Contract В статье речь пойдет об интеграции веб-приложений, написанных с помощью Spring и работающих по HTTP. Название Spring Cloud Contract, на мой взгляд, вводит в заблуждение, так как не имеет ничего общего с cloud. Речь пойдет об API контрактах. Читать дальше →

3 нововведения, которые стоит ждать в Android Q Совсем недавно руководитель Google Сундар Пичаи назвал дату проведения конференции I/O. Она пройдет весной этого года в период с 7 по 9 мая. Вне всяких сомнений, нас ожидает много интересного, но самое важное в этом то, что традиционно в рамках I/O Google анонсирует новую в...

Как запустить iOS-приложение через React Native Это перевод оригинальной статьи программистки, ведущей блог под псевдонимом Soujanya PS. Она профессионал своего дела и любит не только разрабатывать приложения и сервисы, но и писать об этом статьи. Вот ее обзор запуска iOS-приложения с использованием фреймворка React N...

Moscow Python Conf++ 2019 — первая конференция, где мы готовим часть спикеров с нуля сами «Если хочешь сделать что-то хорошо — сделай это сам». 5 апреля 2019 года мы проводим 4-ю Moscow Python Conf, и я решил провести странный эксперимент: посмотреть, что будет, если перевернуть подготовку докладов с ног на голову. Как обычно делается — открывается Call for P...

HL 2018. Конспект доклада «Make passwords great again! Как победить брутфорс и оставить хакеров ни с чем» Картинка: источник Привет, Хабр! Меня зовут Ахмадеев Ринат, я Sr. PHP developer. Представляю вашему вниманию конспект доклада Make passwords great again! Как победить брутфорс и оставить хакеров ни с чем от Алексея Ермишкина из Virgil Security с HighLoad++ 2018. Когда я шел...

Как на самом деле надо сравнивать цены Apple в США и РФ. Личный опыт Сначала хотел написать комментарий к неоднозначным сравнениям цены на продукцию Apple в статье, но текста получилось слишком уж много. Pochtoycom (на самом деле не только они) лукавят, сравнивая цены Apple в РФ и в США. Действительно, в США возможно купить iPhone дешевле,...

Запуск SAP GUI из браузера Эту статью я сначала написал в свой блог, чтобы потом опять не искать и не вспоминать, но поскольку блог никто не читает, то этой информацией захотелось поделиться со всеми, вдруг кому пригодиться. Во время работы над идеей сервиса по сбросу пароля в системах SAP R/3 возник...

Неуловимый Космический Пират: спрячься в холодильнике от копов, победи в войне дроидов и плюнь Саурону в глаз Статья написана под ярким впечатлением поста «Пиратство в Космосе – Коварная Delta-V и Водородные Стелс-Пароходы — Часть 1» и является альтернативным взглядом на представленную вселенную. Мы будем часто обращаться к тому, что в нем написано и писать так, чтобы не было нужды ...

Все, что нужно знать об iOS App Extensions App Extensions появились в iOS 8 и сделали систему более гибкой, мощной и доступной для пользователей. Приложения могут отображаться в виде виджета в Центре Уведомлений, предлагать свои фильтры для фотографий в Photos, отображать новую системную клавиатуру и многое другое....

Apache Kafka + Spring Boot: Hello, microservices Привет, Хабр! В этом посте мы напишем приложение на Spring Boot 2 с использованием Apache Kafka под Linux, от установки JRE до работающего микросервисного приложения. Коллеги из отдела фронтэнд-разработки, увидевшие статью, сетуют на то, что я не объясняю, что такое Apache ...

Yew — Rust&WebAssembly-фреймворк для фронтенда Yew — аналог React и Elm, написанный полностью на Rust и компилируемый в честный WebAssembly. В статье Денис Колодин, разработчик Yew, рассказывает о том, как можно создать фреймворк без сборщика мусора, эффективно обеспечить immutable, без необходимости копирования состояни...

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

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

Обсуждение бесплатной лицензии PVS-Studio для проектов, размещённых на GitHub  Предлагаю вниманию прототип статьи под названием «Бесплатный PVS-Studio для всех, кто развивает открытые проекты на GitHub». Прошу подойти к данной теме конструктивно и высказывать предложения и критику по делу. Интересно мнение, насколько предложенный вариант разумен и уд...

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

[Из песочницы] Headless CMS. Почему я пишу свою Всем привет! Написать эту публикацию меня побудила вот эта недавняя статья (вчера увидел). Пересказывать основные признаки Headless/content-first/api-first и т.п. CMS я не буду, материала полно и наверняка уже многие знакомы с этим трендом. А хочу я рассказать почему и ка...

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

Работа с командами APDU на примере EToken "… Путь не так уж сложен для понимания. Силы природы, естественные наклонности, схемы событий… Примитивное миропонимание замечает только четыре стихии и дальше этого не идёт. Словно вселенная сводится к четырём доступным созерцанию понятным явлениям." Стивен Эриксон. «Полноч...

Часть 4. Карьера программиста. Junior. Заход во фриланс Продолжение рассказа «Карьера программиста». Смеркалось. И прямо, и косвенно. Я с большим усердием искал работу программистом, но не было никаких вариантов. В моем городе было 2-3 объявления на 1С-разработчика плюс, редкий случай, когда требовались преподаватели курсов прог...

OceanLotus: обновление малвари для macOS В марте 2019 года в VirusTotal, популярный онлайн-сервис сканирования, был загружен новый образец вредоносного ПО для macOS кибергруппы OceanLotus. Исполняемый файл бэкдора обладает теми же возможностями, что и предыдущая изученная нами версия малвари для macOS, но его струк...

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

[Перевод] Тестирование Node.js-проектов. Часть 1. Анатомия тестов и типы тестов Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что он, как независимый консультант по Node.js, каждый год анализирует более 10 проектов. Его клиенты, что вполне оправданно, просят его обратить особое внимание на тестирование. Несколько месяцев...

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

Искусство парсинга или DOM своими руками Привет, Хабр! Недавно я задался идеей создать простой язык разметки наподобие markdown, который отлично подходил бы для моих задач, а именно — быстрого написания лекций с форматированием и возможностью вставки математических формул «на лету», с применением одной лишь клавиат...

[Перевод] Пишем собственную виртуальную машину В этом руководстве я расскажу, как написать собственную виртуальную машину (VM), способную запускать программы на ассемблере, такие как 2048 (моего друга) или Roguelike (моя). Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера и как рабо...

О чём писать в White Paper и как её использовать для продвижения ИТ-продукта? В начале 2019 года один ИТ-клиент поставил передо мной задачу — написать White Paper (она же «белая книга», официальная публикация, «вайт пейпер» и т. д.). А я никогда этого раньше не делал, хотя контент-копирайтингом занимаюсь давно. Решил поискать в Рунете — одна «SEO-вода...

[Из песочницы] Понижаем уровень связанности с помощью DI для улучшения тестируемости кода, пример реализации В началье статьи хочу сразу заметить, что я не претендую на новизну, а только хочу поделиться/напомнить о такой возможности как IoC DI. Также у меня почти нет опыта написания статей, это моя первая. Я старался как мог, если что не судите строго. О чем вообще речь Большая ча...

[Из песочницы] Как я свой первый ИИ писал Привет, Хабр. История моя берёт начало в январе 2019 года. Мы с моей тимой геймдевелоперов решили взяться за самый большой проект в нашей истории- 2Д платформер. Нет, мы не делали до этого какие-нибудь FlappyBird'ы или змейки, но объём работы в этом проекте просто сносил на...

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

Хабрарейтинг 2018: лучшие материалы за 2018 год Привет Хабр. Данный пост является логическим завершением публикаций про жизненный цикл статьи на Хабре (первая и вторая части), в результате чего был сделан достаточно интересный инструмент для статистического анализа. Методика оказалась весьма полезной, и позволяет находит...

Таймтрекер на Google Scripts, Docs и Spreadsheets В предыдущей статье речь шла о подходе к техническому заданию в Decart IT-production. Когда мы внедрили эти изменения, проекты велись в облачной Jira, но ее потенциал использовался на минимальном уровне. Для небольшой компании достаточно грамотной постановки задач, таймтре...

“Меня окружают идиоты или как работать в команде” Еще один рабочий день подошел к концу. И вот, сидя перед монитором с кружкой теплого чая и читая любимый Хабр, кто-то ищет развлекательные посты, кто-то хочет узнать что-то новое и полезное. Есть люди которым интересно как работают другие команды и какая у них организация. А...

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

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

Микросервисы: размер имеет значение, даже если у вас Kubernetes 19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании...

Бдительная «Лида»: автоматизация тестирования безопасности Добрый день, уважаемые читатели. Меня зовут Виктор Буров, я разработчик в ISPsystem. В прошлом посте я рассказывал об инструменте для создания автотестов, сегодня поделюсь опытом автоматизации тестирования безопасности. Сначала уязвимости в продуктах у нас искал отдельный...

EFORTH для МК-161: Структуры данных Эта статья — окончание цикла статей про eForth на программируемом калькуляторе. Начало здесь: habr.com/ru/post/452398 Команды входного языка «Электроники МК-161» занимают только половину файла eForth0.mkl. Вторую половину занимают таблицы, разработать которые был не меньший...

[Перевод] Улучшенные эффекты с режимом смешивания фоновых слоев в CSS Если одна картина заслуживает тысячи слов, то смешение двух картин заслуживает гораздо большего. Точно так же, возможности дизайна, которые открываются с появлением возможности смешивания слоев в CSS гораздо больше, чем вы думаете. Когда вы слышите обсуждение функций CSS Bl...

JS-битва: как я написал свой eval() Вы можете помнить Александра Коротаева по браузерной версии «Героев Меча и Магии»: расшифровка его доклада о ней собрала на Хабре громадное количество просмотров. А теперь он сделал игру, ориентированную на программистов: играть в неё надо JS-кодом. В этот раз на разработку...

[Перевод] Дизайн видеоигр: нужно понимать, что наследуешь В прошлом году я сделал короткий доклад на GDC о важности понимания того, на каком наследии прошлого основана ваша игра. Видео доклада опубликовано здесь (моя часть начинается с 28:50): Ссылка Три страйка — и ты выбываешь. Эта фраза настолько популярна, что практически ста...

Реактивное приложение без Redux/NgRx Сегодня мы разберем по косточкам реактивное angular-приложение (репозиторий на github), написанное целиком по стратегии OnPush. Также приложение использует reactive forms, что вполне типично для enterprise-приложения. При этом мы не будем использовать Flux, Redux, NgRx, I...

[Из песочницы] Беспроводная зарядка. Как она работает на практике У меня свой магазин разных беспроводных зарядных устройств. За год работы в этой области я успел разобраться в характеристиках работы устройств, различиях, проблемных областях зарядок и прочитать очень много статей, в которых пишут не разобравшись в тематике. В этой и сле...

[Перевод] Монорепозитории: пожалуйста не надо От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла от...

Транспилятор PAS2JS из Паскаля в JavaScript: несовместимости с Delphi и пути обхода В наше время в кармане обычного человека лежит мощный персональный компьютер, о котором 10-20 лет назад можно было только мечтать. И если у вас километры отлаженного Windows-кода и отлично работающие приложения и утилиты, написанные на Delphi, вы наверняка хотели бы задейств...

5 страхов разработчиков, которые мы преодолели Хэллоуин — время поговорить о страхах. Я работаю продакт-менеджером в IT-компании, поэтому речь пойдёт про кошмары разработчиков. Но не обычные, а те, что появляются во времена перемен. Когда компания развивается — меняет подход к разработке, создаёт новые продукты и расш...

Готовимся к С++20. Coroutines TS на реальном примере В C++20 вот-вот появится возможность работать с корутинами из коробки. Нам в Яндекс.Такси эта тема близка и интересна (под собственные нужды мы разрабатываем асинхронный фреймворк). Поэтому сегодня мы покажем читателям Хабра, как можно работать с C++ stackless корутинами на ...

[Из песочницы] Как начать программировать в Adobe Illustrator. Скрипт Expand Clipping Mask. Часть первая Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотел...

[Из песочницы] Сборка transport-пакета без установки MODX Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :). Эта заметка рассказывает о том, как можно написать и собрать пакет компонента для MODX без установки и настройки самог...

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

Дизайн цифровых продуктов. Цель, роль, метод Мне довелось создать с нуля подразделение дизайна в Альфа-Банке и поработать дизайн-директором. На это ушло пять лет. В результате у нас получилась дизайн-система (в коде) и подход к диайну цифровых продуктов. Собственно, про этот подход я и расскажу здесь. Точнее, это — тек...

[Перевод] Полное руководство по useEffect Вы написали несколько компонентов с использованием хуков. Возможно — даже создали небольшое приложение. В целом результат вас вполне устраивает. Вы привыкли к API и в процессе работы обнаружили несколько неочевидных полезных приёмов. Вы даже создали несколько собственных хук...

Открытая трансляция главного зала HighLoad++ 2018 Конференция для разработчиков высоконагруженных сервисов HighLoad++ в этом году получилась просто гигантской. 8 и 9 ноября в СКОЛКОВО приедут 3000 гостей, чтобы вникнуть в тонкости архитектуры, узнать о нововведениях в базах данных, поговорить про микросервисы, облака, больш...

(Не)переезд в Молдову фотограф Андрей Бенимецкий Думаю, никто не удивится тому, что на просторах интернета и на Хабре в частности есть очень много статей об успешном (или не очень) переезде из стран СНГ в страны ЕС, США, Азию и т.д. Некоторые статьи полезны, другие — не очень, но даже если авто...

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

[Из песочницы] Мой опыт подготовки к экзамену JIRA Administrator ACP-100 Приветствую! В апреле 2018 успешно сдал экзамен по JIRA ACP-100, в октябре 2018 сдал экзамен по confluence ACP-200. Решил написать пост о том, как я готовился к экзамену JIRA ACP-100, дать советы для тех кому эта тема может быть интересна. Я опишу процесс своей подготовки к...

Близкие контакты ADL-ной степени Как навсегда вписать своё имя в историю? Первыми слетать на Луну? Первым встретиться с инопланетным разумом? У нас есть способ проще — можно вписать себя в стандарт языка C++. Хороший пример показывает Эрик Ниблер — автор C++ Ranges. «Запомните это. 19 февраля 2019 года — д...

Nginx-переменные с njs: просто, безболезненно и через JavaScript njs — это JavaScript-интерпретатор в легковесном веб-сервере, с помощью которого можно создавать новые nginx-переменные и обработчики стадий запроса. Чем njs хорош? Чего не умеет? И зачем вообще его сделали? На эти и другие вопросы ответит Дмитрий Волынцев (xeioex), разработ...

[Перевод] Веб-компоненты: 9 проектов, о которых стоит знать в 2019 году Автор материала, перевод которого мы сегодня публикуем, полагает, что если вы собираетесь использовать при проектировании интерфейсов своих приложений веб-компоненты и подыскиваете подходящую библиотеку, независимую от UI-фреймворков, вам стоит взглянуть на те проекты, о кот...

Если ли у MAESTRO душа?.. или Совесть? Не прошло и пары дней, как я написал пост про свои впечатления от пермского принтера Маэстро, которым пользуюсь 4 месяца.Да, были проблемы.Да, они пока есть.И в этом посте я преподнес MZ3D выше по надежности чем Maestro... Но видимо, у техники есть уши и душа... или совесть....

Mattermost. Интеграция с внешними сервисами (часть 2) Продолжим разбираться с mattermost в части интеграции с внешними сервисами. Часть вторая. Интеграция с Zabbix Во второй части повествования о интеграции mattermost, речь пойдет про отправку сообщений об авариях из zabbix в mattermost. В результате поисков в сети был взят за ...

Полезные и не очень государственные услуги Как похорошел интернет при… или какие полезные (и не очень) госуслуги можно получить онлайн. Наркоман ли я? Бабушкин суд у подъезда думает, что да (на самом деле нет — я всегда с ними здоровался, а теперь и справка есть!). Был ли я зеком? Сведений не имеется, гласит другая с...

DevFest SPB 18 Всем привет! Наступает ноябрь, а значит, до DevFest-а, который пройдет в Санкт-Петербурге 27 числа, осталось совсем немного! Если вы все еще сомневаетесь, провести этот вторник за работой или послушать крутые доклады и пообщаться с единомышленниками — просим под кат. Читат...

[Перевод] 10 лучших VS Code-расширений 2018 года для фронтенд-разработчиков Visual Studio Code, вероятно, можно назвать лучшим современным редактором кода. Если вы пока с ним не работаете — то вам, по крайней мере, стоит на него взглянуть. Для VS Code написано великое множество расширений, которые размещают в каталоге Marketplace, удобный доступ к к...

Где зарабатывать копирайтерам большие деньги Вчера вечером на моём  блоге был опубликован вот такой комментарий: Да потому что копирайтерам, рерайтерам и прочим райтерам не платят нифига !!!! Средняя цена по рынку 40 р./1000 зн. Что можно ценного создать за 40 рублей??? А на биржах есть за 20 и 12. Вот дает владелец са...

Запчасти к УМК "Пионер" (часть 2) Автор статьи: Михеенко В.Я.Должность: методист ГК “Геоскан”Дата: 2-6 апреля 2019 годаКому будет полезна статья: ожидающим запчастей пользователямЦикл “Запасные части к УМК “Пионер”. Часть 2”Есть такая поговорка: “Сдал сопромат - можно жениться!”. В своё время я сдал этот пре...

Распознавание номеров. Практическое пособие. Часть 1 Все начиналось банально — моя компания уже год платила ежемесячно плату за сервис, который умел находить регион с номерными знаками на фото. Эта функция применяется для автоматической зарисовки номера у некоторых клиентов. И в один прекрасный день МВД Украины открыло дост...

Lenovo Yoga Chromebook C630 стоит 900 баксов Официально представлен новый ноутбук, который одновременно еще и гибрид. Главная особенность новинки в том, что Lenovo Yoga Chromebook C630 обладает 4К дисплеем. Высокое разрешение позволяет наслаждаться картинкой в гораздо большей мере, плюс у вас всегда будет возможность р...

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

Дополнительно к предыдущему моему посту Я как-то обещал написать по поводу сверлильного станочка в этом посте:Ещё один из множества вариантов "третьей руки"Но тема реально оказалась сырой и пока всё на стадии этой:Сразу оговорка - ПЕРВОИСТОЧНИК УКАЗАТЬ НЕ МОГУ ПО ПРИЧИНЕ ... НУ НЕ СОХРАНИЛ Я К СОЖАЛЕНИЮ АДРЕС. Так...

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

[Из песочницы] Карты лояльности. Google Pay API for Passes в ASP.NET Приложения-хранилища банковских карт стремительно вошли в нашу жизнь благодаря Apple Wallet и Google Pay. Обе платформы, помимо банковских, позволяют также работать и с другими типами карт — картами лояльности, подарочными картами, билетами на мероприятия, посадочными талона...

Heisenbug 2019 Piter: что будет в бесплатной трансляции, а что только на самом мероприятии Конференция Heisenbug 2019 Piter состоится уже в пятницу-субботу, а пока что у нас пост и для тех, кто там будет, и для тех, кого не будет. Если хотели бы там оказаться, но не можете лично присутствовать — ситуацию частично поможет исправить бесплатная онлайн-трансляция, и...

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

Метеостанция на Arduino от А до Я. Часть 3 Продолжение. Начало здесь. Центральный блок. Программное обеспечение Наконец мы подошли к самой трудной части для любого программиста — описать по-человечески что он там наваял. Исходный код для сервера составляет около 1300 строк, включая отступы, но это не должно вас пугат...

Bitmap-индексы в Go: поиск на дикой скорости Вступительное слово Я выступил с этим докладом на английском языке на конференции GopherCon Russia 2019 в Москве и на русском — на митапе в Нижнем Новгороде. Речь в нём идёт о bitmap-индексе — менее распространённом, чем B-tree, но не менее интересном. Делюсь записью высту...

Доступен Windows 10 SDK Build 17763 Сегодня стало известно, что компания Microsoft подписала RTM-сборку Windows 10 October 2018 Update под номером 17763, а значит именно её вскоре начнут получать все пользователи в качестве очередного функционального обновления. Теперь же компания выпустила Windows 10 SDK Bui...

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

[Из песочницы] Как я писал змейку на F# и модели акторов О чем это все? Я расскажу о том, как построить модель акторов с помощью MailboxProcessor из стандартной библиотеки, на какие моменты обратить внимание и о том, какие подводные камни вас могут ожидать. Я не претендую на истину в последней инстанции. Код, написанный здесь, не ...

Ультимативное руководство по DJI GO 4: главный экран и настройки камеры Что такое DJI GO 4 знает каждый владелец квадрокоптера DJI. С помощью этой программы вы можете не только управлять своим дроном, но и изменять настройки камеры, сенсоров, отслеживать статус всех систем устройства и многое другое. Но, к сожалению, пока приложение не получил...

Мой опыт внедрения 1С (часть 1. Вводная) Всем привет! Я автор этой статьи. И пришло время написать продолжение… спустя почти 4 года. На момент написания прошлой статьи я была студенткой колледжа, сейчас я студентка вуза. На момент написания статьи я работала официанткой, сейчас я руковожу внедрениями 1С в органи...

Сергей Собянин рассказал, чем порадует гостей и жителей Москвы фестиваль «Путешествие в Рождество» Очередной фестиваль из цикла «Московские сезоны» начнет свою работу 14 декабря в Москве. Он продлится до 13 января 2019 года и представит огромное количество мероприятий на любой вкус. По словам мэра Москвы Сергея Собянина, осенью Москву отметили престижной международной пр...

Совместим ли новый Smart Battery Case с iPhone X? Не все так просто Smart Battery Case для iPhone XS, чьи продажи Apple вчера начала по всему миру, может использоваться даже с iPhone X из-за совпадающих форм двух смартфонов, убедился iMore. Несмотря на это, на странице товара на официальном сайте компании в качестве совместимого устройства ...

Работа с внешними ресурсами в Unity 3d Введение Здравствуйте уважаемые читатели, сегодня речь пойдет о работе с внешними ресурсами в среде Unity 3d. По традиции, для начала определимся, что это и зачем нам это надо. Итак, что же такое эти внешние ресурсы. В рамках разработки игр, такими ресурсами может быть все...

SamsPcbGuide, часть 8: Как получить правильную осциллограмму Наверно, все умеют пользоваться осциллографом. Это очень легко – цепляешь «крокодил» к земле, остриё щупа – в необходимую точку измерения, регулируешь масштаб по вертикальной и горизонтальной осям и получаешь временную развёртку напряжения в этой точке. Да, так можно делать,...

Встроенный блокировщик рекламы браузера Chrome начнет работу 9 июля Сегодня в блоге Chromium была опубликована новость о начале работы встроенного в браузер Chrome блокировщика рекламы. Разработчики планируют активировать модуль 9 июля, с этого момента большая часть рекламных материалов будет блокироваться. По словам разработчиков, блоки...

Новые iPhone могут получить «невидимую» фронтальную камеру Знаменитая «выемка» в экране впервые появилась в iPhone в 2017 году, и стала отличительной чертой не только смартфонов Apple, но и многих других Android-устройств. Здесь же можно увидеть разницу подходов — в случае с Apple, данный «островок» обусловлен прежде всего не...

Шесть наиболее полезных докладов с Frontend Conf 2018 Друзья, с позиции главы программного комитета Frontend Conf поместил под катом краткий обзор шести самых полезных докладов с РИТ++ 2018 по фронтенду. В подборке нашлось место рассказу про то, как настраивать PWA-приложения и делать их более нативными. Отдельно затронуты во...

Ещё больше практики! Научим Spring Framework и профилированию без всяких конференций Вы читаете посты в нашем блоге и думаете: «Кому они нужны, я не хожу на конференции». А на конференции вы не ходите потому, что вам хочется научиться каким-то конкретным вещам, а не просто увеличить кругозор. Да, для кого-то это имеет смысл! Не только вы так думаете. Специал...

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

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

[Перевод] Понимаем RBAC в Kubernetes Прим. перев.: Статья написана Javier Salmeron — инженером из хорошо известной в Kubernetes-сообществе компании Bitnami — и была опубликована в блоге CNCF в начале августа. Автор рассказывает о самых основах механизма RBAC (управление доступом на основе ролей), появившегося в...

Как писать подкасты, что за железо нужно? Автор статей, текстов и постов сейчас вам всё расскажет На конференциях люди, насмотревшись на приглашенных спикеров (многие из которых ведут свои проекты в форме каналов на YouTube, подкастов или чего-то такого), частенько подходят ко мне с вопросами: «Как написать хабростатью?» «Что нужно, чтобы записать подкаст?» «Как ты пише...

[Из песочницы] OS1: примитивное ядро на Rust для x86 Я решил написать статью, а если получится — то и серию статей, чтобы поделиться своим опытом самостоятельного исследования как устройства Bare Bone x86, так и организации операционных систем. На данный момент мою поделку нельзя назвать даже операционной системой — это неболь...

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

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

[Перевод] Стрелочные функции в JavaScript: зачем они нужны, как с ними обращаться, когда ими стоит пользоваться, а когда — нет Одной из самых заметных новшеств современного JavaScript стало появление стрелочных функций (arrow function), которые иногда называют «толстыми» стрелочными функциями (fat arrow function). При объявлении таких функций используют особую комбинацию символов — =>. У стрелоч...

[Перевод] Как обеспечивается высокая доступность в Kubernetes Прим. перев.: Оригинальная статья была написана техническим писателем из Google, работающим над документацией для Kubernetes (Andrew Chen), и директором по software engineering из SAP (Dominik Tornow). Её цель — доступно и наглядно объяснить основы организации и реализации h...

[Перевод] Выпуск Rust 1.30 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust: 1.30.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода. Если у вас установлена предыдущая версия Rust с помощью rustup, то для обновления Ru...

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

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

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

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...

[Перевод] Шейдеры растворения и исследования мира Часть 1: шейдер растворения Шейдер растворения возвращает красивый эффект, к тому же его легко создать и понять; сегодня мы сделаем его в Unity Shader Graph, а также напишем на HLSL. Вот пример того, что мы будем создавать: Как это работает Чтобы создать шейдер растворен...

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

Разбор доклада Дмитрия Столярова о мониторинге Kubernetes Ох, больше года прошло с предыдущего разбора, но пришла пора возвращать традиции. Сегодня смотрим доклад Дмитрия distol Столярова «Мониторинг и Kubernetes», который был представлен в мае этого года на фестивале РИТ++, и пытаемся на его примере понять, почему людям обычно нра...

Написанный искусственным интеллектом портрет выставят на аукцион Кристис Британский аукционный дом Кристис является лидером мирового арт-рынка. Здесь уходили из-под молотка самые знаменитые работы Клода Моне, Пабло Пикассо, Леонардо да Винчи и многих других великих художников. К этому списку в скором времени присоединится еще один художник. Тол...

[Перевод] Улучшенный sandboxing для Groovy скриптов От переводчика: При разработке CUBA Platform мы заложили в этот фреймворк возможность исполнения пользовательских скриптов для более гибкой настройки бизнес-логики приложений. О том, хороша или плоха эта возможность (и мы говорим не только о CUBA), ведутся долгие споры, но ...

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

[Перевод] RoadRunner: PHP не создан, чтобы умирать, или Golang спешит на помощь Привет, Хабр! Мы в Badoo активно работаем над производительностью PHP, поскольку у нас достаточно большая система на этом языке и вопрос производительности — это вопрос экономии денег. Более десяти лет назад мы создали для этого PHP-FPM, который сначала представлял собой н...

Поваренная книга разработчика: DDD-рецепты (3-я часть, Архитектура приложения) Введение В рамках предыдущих статей мы выделили область применения подхода и рассмотрели основные методологические принципы Domain Driven Design. В данной статье я хотел бы обозначить основные современные подходы к построению архитектуры корпоративных систем: Supple, Screami...

[Перевод] Объясняем бэкдор в event-stream Если вы работаете с Javascript, то скорее всего вы заметили много шума об уязвимости в npm-пакете event-stream. (На Хабре тоже опубликовали пост об этом — пер.) К сожалению, детальный анализ ситуации похоронен под более чем 600 комментариями в issue на Github, большая часть ...

ZX Spectrum 128k своими руками. Часть 2 Первая часть здесь Все изображения кликабельны. Прошло больше года c того момента как я написал статью про сборку клона ZX Spectrum «Ленинград». И за это время его возможности существенно расширились. Не думал что я буду писать ее продолжение, но все таки статей по ретрок...

Тестирование на примере ReactJS: насколько глубока кроличья нора Всем привет, меня зовут Ярослав Астафьев, и сегодня я хотел бы провести обзорную экскурсию в тестирование ReactJS. Я не буду углубляться в сложности тестирования веб приложений с использованием определенных библиотек (руководствуясь подходом «сложно тестировать только плохой...

[Перевод] Python Testing с pytest. Начало работы с pytest, Глава 1 Вернуться Дальше Я обнаружил, что Python Testing с pytest является чрезвычайно полезным вводным руководством к среде тестирования pytest. Это уже приносит мне дивиденды в моей компании. Chris Shaver VP of Product, Uprising Technology Читать дальше →

[Перевод] Синхронность — это миф Привет всем! Сегодня вас ждет длинный текст без картинок (слегка сокращенный по сравнению с оригиналом), где подробно разобран тезис, вынесенный в заголовок. Ветеран компании Майкрософт Терри Кроули описывает суть асинхронного программирования и объясняет, почему именно это...

[Перевод] Мой компилятор для Lisp Очень рад объявить о завершении моего первого компилятора для языка программирования! Malcc — это инкрементальный AOT-компилятор Lisp, написанный на C. Вкратце расскажу о его многолетней разработке и что я узнал в процессе. Альтернативное название статьи: «Как написать комп...

«Lock-free, or not lock-free, that is the question» или «Здоровый сон хуже горькой редьки» На написание данной статьи меня подвигли комментарии к статье "Как правильно и неправильно спать". Речь в данной статье пойдёт о разработке многопоточных приложений, применимости lock-free к некоторым кейсам возникшим в процессе работы над LAppS, о функции nanosleep и насил...

Новое в браузерах: Firefox 66 по умолчанию блокирует видео и звук, Chromium ограничивает бюджет страниц В ближайших версиях Firefox и Chromium могут произойти важные изменения. Во-первых, в Firefox 66 для десктопов по умолчанию заблокируется автоматическое воспроизведение видео и звука на всех страницах. Блог Mozilla Hacks заранее предупреждает об этом разработчиков. Воспрои...

Удаленный мониторинг и управление устройств на базе Linux/OpenWrt/Lede через 80-ый порт, продолжение Это заключительная часть статьи, вот начало. В прошлый раз я написал о том, как реализовал мониторинг устройств, теперь речь пойдет о управлении. В дискуссиях с «технарями» со стороны Заказчика я часто встречаюсь с ограниченным восприятием возможностей таких маленьких устро...

[Из песочницы] JAMstack: Как создать свой блог используя Gatsby + Contentful + Netlify Вы уже слышали о новом подходе JAMstack? Возможность писать веб-приложения на любимом фреймворке, управлять контентом из админ панели, а на выходе получать полностью валидные HTML-страницы построенные согласно с самыми последними рекомендациями SEO, PWA и a11y. Интересно? То...

«Роскомос» считает некорректным сравнивать двигатели Raptor Илона Маска и РД-180 Испытания двигателя Raptor 11 февраля Илон Маск написал в своем Twitter, что его компания добилась давления в 268,9 бара в камере сгорания двигателя Raptor. По мнению предпринимателя, SpaceX побила предыдущий рекорд, принадлежащий российскому двигателю РД-180. Свой двигате...

[Перевод] Советы по CSS, которые вы вряд ли найдете в самоучителях Существуют определенные правила CSS, которые можно найти в любом учебнике. Но есть также правила CSS, которые вы не найдете в пособиях, но столкнетесь с ними, как только начнете писать код. Я уверен, вы уже разобрались в том, как выровнять элемент по вертикали или создать сл...

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

[Из песочницы] Полное руководство по CMake. Часть первая: Синтаксис Введение CMake — это открытый и кросс-платформенный набор утилит, предназначенных для автоматизации тестирования, компиляции и создания пакетов проектов на C/C++. Написав однажды небольшой и понятный всем скрипт, Вы тем самым обеспечите одинаковую сборку вашего проекта на л...

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

[Перевод] Почему я сворачиваю свою работу над Debian От переводчика: этот текст — перевод записи в личном блоге Михаэля Стапельберга (Michael Stapelberg) видного open source-разработчика (профиль GitHub), который внес значительный вклад в развитие Debian. Этот пост было сложно написать с эмоциональной точки зрения, но я и не...

Apple Wallet. Что это такое и как интегрировать в него свою карту Принято считать, что Wallet – не самый популярный сервис в СНГ. Но уже во втором проекте подряд заказчик ставит задачу «Сделать интеграцию с Wallet». Поэтому я решил написать эту статью, чтобы рассказать о сервисе в целом и показать, как интегрировать в него свой продукт. Чт...

RPC — повод попробовать новое в C++ 14 / 17 Несколько лет назад разработчики на C++ получили долгожданный стандарт C++ 11, принесший много нового. И у меня был интерес быстрее перейти к его использованию в повседневно решаемых задачах. Перейти к C++ 14 и 17 такого не было. Казалось, нет того набора фич, который бы заи...

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

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

Процесс разработки и тестирования с Docker и Gitlab CI Предлагаю ознакомиться с расшифровкой доклада Александра Сигачева из Inventos "Процесс разработки и тестирования с Docker + Gitlab CI" Те, кто только начинает внедрять процесс разработки и тестирования на базе Docker + Gitlab CI часто спрашивают базовые вопросы. С чего начат...

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

Мафия на Go, Vanila JS и WebSocket'aх Речь пойдет о web-реализации популярной карточной игры "Мафия". Она писалась для развлечения и получения опыта в разработке игр. Первая версия была написана за две недели свободного от работы времени и за такое же время переписана до второй версии. Плюс такой игры – отсутс...

Контролируй, изменяй, удаляй: топ-10 докладов DotNext 2018 Moscow Привет, Хабр! Сегодня для .NET-разработчиков у нас традиционный пост по следам DotNext 2018 Moscow: делимся десятью лучшими докладами конференции (по мнению её посетителей). Под катом — их видеозаписи, а также короткие описания и ссылки на презентации. Доклады идут по во...

[Из песочницы] FB2D — 2D framework for Linux Frame Buffer (Rust) Вот решил поведать о библиотеке, которую написал недавно. Возможно кому-то и пригодится. Это 2D framework на языке Rust для рендеринга непосредственно в Linux Frame Buffer /dev/fb0. Задача была — на Raspberry Pi выводить на экран / телевизор простые 2D сцены. Raspberry Pi ра...

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

Поддержка, сервис, головная боль и все-все-все Привет всем. Я решил написать этот опус для того, чтобы дать понимание, как нынче работает официальная поддержка Dell (в том числе и сервисная). Это не критика, не крик о помощи, а просто собственный опыт. Возможно, он кому-то пригодится или будет полезен. Итак… Читать ...

AMP-страницы получили ряд улучшений Разработчики проекта Google AMP опубликовали обзор новых возможностей, запущенных для страниц с ускоренной загрузкой в первом квартале 2019 года.Видео Минимизация видео. Теперь для AMP можно настроить минимизацию угла просмотра видео при прокрутке страницы. Это позволит п...

Бесплатный вебинар «Как написать продающий текст» На вебинаре с преподавателем-филологом соберем воедино все составляющие продающего текста или того, что под этим чаще всего подразумевают. Готовая формула подойдет для написания постов в соцсетях для коммерческих и личных проектов, e-mail-рассылок, частично текстов на сайты ...

Новая уязвимость iPhone способна вызывать сбои в работе смартфона Исследователь безопасности Сабри Хаддуш (Sabri Haddouche) нашел новый способ нанести вред владельцам iPhone. Эту информацию он опубликовал на своей официальной странице в Twitter.Новая уязвимость iPhone подрывает авторитет AppleКак заявляет сам Сабри, новая уязвимость написа...

Забудьте про грим: новое ПО позволяет изменять внешность в режиме реального времени Чем дальше развиваются технологии, тем страшнее становится. Если раньше, чтобы изменить внешность, нужно было нанести тонны грима на лицо, то теперь достаточно иметь камеру Z Cam и устройство под управлением iOS. Благодаря коллаборации двух устройств можно изменить лицо до н...

[Перевод] DDD, Hexagonal, Onion, Clean, CQRS… как я собрал всё это вместе Эта статья — часть «Хроники архитектуры программного обеспечения», серии статей об архитектуре ПО. В них я пишу о том, что узнал об архитектуре программного обеспечения, что я думаю об этом и как использую знания. Содержание этой статьи может иметь больше смысла, если вы п...

WhatsApp отказывается от поддержки смартфонов на Windows 10 Mobile WhatsApp готовится к отказу от поддержки смартфонов на Windows к концу этого года. В своём блоге компания написала об окончании поддержки старых ОС ещё в 2016 году, но теперь она заявляет что прекращает поддержку всех операционных систем Windows Phone, включая Windows 10 Mob...

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

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

Новые инструменты разработки с LEGO Education — от Microsoft, MIT и не только Из шести кубиков LEGO размером 2х4 можно собрать 915 миллионов различных комбинаций. Но в LEGO Education конструирование из кубиков — это лишь часть дела. Даже проекты для дошкольников здесь включают в себя программирование, пусть и в простейшей форме. Мы стремимся к тому...

ЧПУ в хоббийной мастерской (часть 3) Изначально, планировал ограничиться двумя постами (раз, два) про мои ЧПУшные эксперименты. Но, тема оказалась многим интересной, поэтому немного ее еще пораскрываю. В этом посте пойдет речь про написание самодельного софта для управления любительским ЧПУ. Читать дальше →

[Перевод] Особенности использования типа данных Symbol в JavaScript Символьные примитивы — это одно из новшеств стандарта ES6, которое принесло в JavaScript некоторые ценные возможности. Символы, представленные типом данных Symbol, особенно полезны при использовании их в качестве идентификаторов свойств объектов. В связи с таким сценарием их...

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

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

Google научила приложения для Android обновляться во время использования Google начала внедрение нового API для ОС Android, который позволит приложениям обновляться даже в момент использования, говорится в корпоративном блоге поискового гиганта. Благодаря нововведению пользователи смогут не прерывать работу с ПО при загрузке апдейта и его устано...

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

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

[Из песочницы] Скрывать не скрывая. Еще раз о LSB-стеганографии, хи-квадрате и… сингулярности? Сегодня снова поворошим старое гнездо и поговорим о том, как скрыть кучку бит в картинке с котиком, посмотрим на несколько доступных инструментов и разберем самые популярные атаки. И казалось бы, при чем тут сингулярность? Как говорится, если хочешь в чем-то разобраться, то...

[Перевод] Чтобы вести разработку быстрее, необходимо замедлиться Примечание переводчика: Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than E...

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

[Перевод] 5+1 случай, когда спецификация REST API играет огромную роль В этой статье речь пойдёт о написании и поддержке полезной и актуальной спецификации для REST API-проекта, которая позволит сэкономить много лишнего кода, а также серьёзно улучшить целостность, надежность и прозрачность прокта в целом. Что такое RESTful API? Это миф. Серьё...

Пишем XGBoost с нуля — часть 1: деревья решений Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что...

Подключение Micrometer для веб-приложения на Java Micrometer используется для сбора метрик приложения JVM и позволяет экспортировать данные в различные системы мониторинга. В этой статье я расскажу, как подключить Micrometer для spring web приложения и экспортировать данные в Prometheus (хороший пост о нем). Так как мое при...

[Перевод] Основные структуры данных. Матчасть. Азы Все чаще замечаю, что современным самоучкам очень не хватает матчасти. Все знают языки, но мало основы, такие как типы данных или алгоритмы. Немного про типы данных. Еще в далеком 1976 швейцарский ученый Никлаус Вирт написал книгу Алгоритмы + структуры данных = программы. ...

Fastware Андрей Александреску — настоящая живая легенда. Это человек, внесший значительный вклад в историю современных языков программирования и приёмов обобщенного и метапрограммирования. Сколько копий было сломано в обсуждениях «Современного проектирования на С++» и «Coding Standar...

Навигация для Android с использованием Navigation Architecture Component: пошаговое руководство Попробуем, пользуясь официальным руководством и примерами кода, построить работающую систему навигации для будущего многоэкранного приложения в соответствии со стандартами Navigation Architecture Component. Статья включает следующие разделы: Часть 1. Подготовительные работ...

[Из песочницы] Про Flutter, кратко: Основы После доклада Юры Лучанинова, я решил для себя попробовать Flutter. Чтобы мозг размять, и чтобы было о чем похоливарить с мужиками на кухне. Дело пошло. Я начал смотреть, потом читать, потом писать. И вроде все получается, приложения запускаются, и то что объясняют — понятно...

Как ускорить разжатие LZ4 в ClickHouse При выполнении запросов в ClickHouse можно обратить внимание, что в профайлере на одном из первых мест часто видна функция LZ_decompress_fast. Почему так происходит? Этот вопрос стал поводом для целого исследования по выбору лучшего алгоритма разжатия. Здесь я публикую иссле...

Практики продуктового маркетинга на Epic Growth Conference 24 октября в Москве более 600 топовых специалистов по продуктам соберутся, чтобы завести полезные знакомства и вдохновиться докладами и идеями от Booking.com, Aviasales, Skyeng, Readdle, Revolut и других продуктовых компаний. Докладчики EGC Autumn 2018: Денис Жаданов (...

Все известные изменения в системе Windows 10 19H1 Компания Microsoft ведёт работу над следующим крупным обновлением операционной системы Windows 10, известным сейчас под кодовым именем 19H1. Появление этого обновления ожидается в апреля 2019 года. Здесь будут новые функциональные возможности, такие как Наборы Windows, дальн...

[Из песочницы] Как разобраться в Tensorflow и не умереть, а даже научить чему-то машину Привет, Хабражители. Сегодняшний пост будет о том, как не затеряться в дебрях многообразия вариантов использования TensorFlow для машинного обучения и достигнуть своей цели. Статья рассчитана на то, что читатель знает основы принципов работы машинного обучения, но пока еще н...

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

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

[Перевод] Полное руководство по switch-выражениям в Java 12 Старый добрый switch был в Java с первого дня. Мы все используем его и привыкли к нему — особенно к его причудам. (Кого-нибудь еще раздражает break?) Но теперь все начинает меняться: в Java 12 switch вместо оператора стал выражением: boolean result = switch(ternaryBool) { ...

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

Чем на самом деле занимаются стажеры в ABBYY ABBYY уделяет большое внимание подготовке квалифицированных IT-специалистов и развитию их способностей. Мы считаем, что уже с первых курсов института очень важно привлекать ребят к решению реальных задач в областях OCR, машинного обучения, NLP и к участию в существующих прое...

Написанную искусственным интеллектом картину продали почти за полмиллиона долларов Знаменитый аукционный дом Кристис продал первое «произведение искусства», написанное искусственным интеллектом, сообщает портал The Verge. Картина под названием «Портрет Эдмонда Белами» ушла с молотка за 432 500 долларов. Продажа «шедевра» оказалась необычной не только пото...

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

Введение в Maven от Balaji Varnasi и Sudha Belida (перевод) От переводчика: Несколько лет назад я поставил себе целью быстро, но достаточно плотно познакомиться с таким повсеместно используемым фреймворком, как Apache Maven. Практически моментально мне удалось найти соответствующую литературу, но я был слегка удивлен тем фактом, что ...

Создание именных брелков в Solid Works 2013 Именной брелок - это простейший , но очень приятный подарок , который подходит всем. Создавать 3D модель брелка я буду в SW 2013 (Solid Works 2013) . Для создания брелка необходимо выбрать плоскость. Выберем плоскость "Front" далее зайдем в эскиз и нарисуем форму нашего брел...

[Из песочницы] Три относительно честных способа создания Flutter проекта Итак, с презентацией Google первой стабильной версии Flutter, которая случилась 4 декабря 2018 г. начался процесс изменения ландшафта на полях мобильного программирования. Появился новый игрок, способный изменить правила самой игры. Теперь из одной базы кода можно создават...

Запускаем инструментальные тесты в Firebase Test Lab. Часть 1: iOS проект Меня зовут Дмитрий, я работаю тестировщиком в компании MEL Science. Совсем недавно я закончил разбираться со сравнительно свежей фичей от Firebase Test Lab — а именно, с инструментальным тестированием iOS приложений с использованием нативного фреймворка тестирования XCUITe...

Splunk. Легкий Troubleshooting работы приложений Как часто вы используете уже созданные надстройки со Splukbase, вместо того, чтобы написать собственные? Всегда ли в них есть то, что вы хотели бы увидеть? Все ли в них работает нормально, даже если устанавливалось точно по инструкции? Сегодня мы поговорим об особенностях ...

[Перевод] Новости из мира OpenStreetMap №436 (20.11.2018-26.11.2018) 3D-модель Гейдельбергского замка, одни из самых известных руин в Германии | Landesamt für Denkmalpflege im Regierungspräsidium Stuttgart 2018 Карты Участник википедии Triglav написал о способе встраивания OSM на страницы википедии. Вы можете внести номер отношения OSM в ...

Работа с камерой во Flutter Возможность задействовать камеру существует во многих приложениях, и мы все регулярно пользуемся ею. Во Flutter мы можем реализовать работу с камерой с помощью двух официальных плагинов: camera image-picker Между ними – заметная разница, и использовать их стоит по ситуации...

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

Адаптация программ для ZX Spectrum к TR-DOS современными средствами. Часть 1 В отличие от современных компьютеров, на спектрумах понятия файловой системы не было как такового. Это значит, что загрузка с каждого типа носителя требовала отдельной реализации и в большинстве случаев программу нельзя было просто так скопировать с кассеты на дискету. В слу...

Kotlin performance on Android Поговорим сегодня о производительности Kotlin на Android в production. Посмотрим под капот, реализуем хитрые оптимизаци, сравним байт-код. Наконец, серьезно подойдем к сравнению и замерим бенчмарки. Эта статья основана на докладе Александра Смирнова на AppsConf 2017 и помож...

История переезда системного администратора в Германию. Часть вторая: переезд и первые шаги Всем привет. Я наконец-то изыскал время и написал вторую часть своей истории об IT-эмиграции. Первую часть можно прочитать тут — История переезда системного администратора в Германию. Часть первая: поиск работы и виза. В этой части я опишу подробно, как мы с сестрой обустра...

[Из песочницы] Кротовые норы в JavaScript Привет, Хабр! Представляю вашему вниманию перевод статьи "Wormholes in JavaScript" автора Mathius Buus. Компьютеры — интересные машины. В теории они представляются нам идеальными механическими математиками работающими с цифрами и хорошо выполняющими операции сложе...

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

Гайд по автоматическому аудиту смарт-контрактов. Часть 2: Slither Анализатор: Slither Описание: Open-source static analysis framework for Solidity githib: https://github.com/trailofbits/slither Это статический анализатор кода, написанный на python. Он умеет следить за переменными, вызовами, и детектирует вот такой список уязвимостей. У каж...

[Перевод] Энциклопедия освещения художника Naughty Dog Джои Ленц из Naughty Dog подробно рассказал нам об освещении в UE4: о значениях, источниках, световой температуре, освещении в PBR, ресурсах, по которым можно изучать освещение, а также обо многом другом. На официальном сайте Джои polyplant.co есть множество полезных советов...

[Перевод] Изучаем Python: модуль argparse Если вы занимаетесь обработкой и анализом данных с использованием Python, то вам, рано или поздно, придётся выйти за пределы Jupyter Notebook, преобразовав свой код в скрипты, которые можно запускать средствами командной строки. Здесь вам и пригодится модуль argparse. Для но...

Symfony Bundle для экспорта статистик в формате Prometheus Работая над разными микро (и не очень) сервисами, написанными с помощью Symfony, я каждый раз сталкивался с необходимостью экспорта метрик для Prometheus. Поначалу мы просто копировали один и тот же код между проектами, но когда их стало больше трёх, я посчитал, что дальше...

27 марта, Москва — JavaScript MeetUP Очередной JavaScript MeetUP мы собираем уже в следующую среду, 27 марта, в 19.00 на площадке Corporate Innovations Hub (ул. Большая Полянка, д.2/10, стр. 1). В программе будет 3 доклада от наших сотрудников. Вход бесплатный (но зарегистрироваться надо заранее), будет и онла...

ZENLIX 3.5 — спустя 2 год Начав разработку системы заявок, с 2013 года, история которой описана в предыдущих публикациях: Как мы написали helpdesk Как мы написали helpdesk (часть 2) Как мы написали helpdesk (часть 3) мы остановили выпуск новых версий в 2017 году. Это не значит, что мы переста...

AMP-страницы получили ряд улучшений Разработчики проекта Google AMP опубликовали обзор новых возможностей, запущенных для страниц с ускоренной загрузкой в первом квартале 2019 года. Видео Минимизация видео. Теперь для AMP можно настроить минимизацию угла просмотра видео при прокрутке страницы. Это позволит пол...

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

AdSense переносит аккаунты в новый интерфейс управления сайтами В ноябре Google AdSensе начал автоматический перенос аккаунтов в новый интерфейс управления сайтами. Этот процесс происходит поэтапно. Основные изменения: Обновленная страница «Сайты». Разработчики переименовали страницу «Мои сайты» в «Сайты» и переместили её в верхнюю часть...

[Перевод] Что такое Strict Aliasing и почему нас должно это волновать? Часть 2 (ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!) Друзья, до запуска нового потока по курсу «Разработчик С++», остается совсем немного времени. Пришло время опубликовать перевод второй части материала, в которой рассказывается о том, что такое ка...

Кастомные корутины в Unity с преферансом и куртизанками Вы уже настолько круты, что вертите корутинами вокруг всех осей одновременно, от одного вашего взгляда они выполняют yield break и прячутся за полотно IDE. Простые обертки — давно пройденный этап. Вы настолько хорошо умеете их готовить, что могли бы получить звезду Мишлена ...

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

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

[Из песочницы] Паттерны корутин asyncio: за пределами await Предисловие переводчика: В очередной раз наступив на грабли при работе с python asyncio я отправился на просторы интернета, чтобы найти что-то более приятное, чем сухая документация. Мне попалась статья Yeray Diaz "Asyncio Coroutine Patterns: Beyond await", в котор...

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

К чёрту разум. Иногда Я представляю команду Fibrum, российского разработчика software и hardware решений на рынке мобильной виртуальной реальности. Сегодня в блоге нашего партнера, группы ЛАНИТ, мы предлагаем вашему вниманию, вероятно, неожиданный пост для ресурса о технологиях. А именно о том, к...

Conditional Access как механизм контроля доступа В предыдущей статье я упомянул переход на Intune Standalone, который позволил нам в большей степени использовать возможности Azure Active Directory, а именно работать с Conditional Access. В этой расскажу подробнее о том, как это можно сделать. Читать дальше →

Приложение Huawei использует ИИ, чтобы помочь глухим детям читать Глухие дети сталкиваются с проблемами обучения чтению. Поскольку их родители и учителя часто не знают язык жестов, дети не могут всегда связывать слова читая текст со страниц и применять их в жизни. Huawei стремится исправить это с помощью своего бесплатного приложения St...

[Перевод] Заблуждения программистов об именах — с примерами В 2010 году Патрик Маккензи написал знаменитую статью «Заблуждения программистов об именах», перечислив 40 фактоидов, которые не всегда верны в отношении человеческих имён. Думаете, программисты сели, подумали и изменили обработку имён в компьютерных системах? К сожалению...

Если есть в кармане пачка сигарет… Но если есть в кармане пачка сигарет, Значит всё не так уж плохо на сегодняшний день. Это – знаменитая фраза из знаменитой песни Виктора Цоя. Песня, вроде, вообще не о курении, но не так давно я понял – так мог написать только курильщик. Не знаю и, наверное, никогда уже не ...

PHP-Дайджест № 150 (11 – 25 февраля 2019) Свежая подборка со ссылками на новости и материалы. В выпуске: изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, по...

[Перевод] Про версии Oracle JDK 11+ (лицензирование и распространение) Вчера на Хабре был опубликован перевод поста «Не попадитесь в ловушку используя Oracle JDK 11» с последующим обсуждением «платности Java», но не всё так страшно, как кажется на первый взгляд — ниже перевод публикации из блога Oracle с официальной позицией по лицензированию и...

Flutter: локализация приложений средствами Android Studio Про локализацию (интернационализацию) приложений Flutter написано уже достаточно много. Официальная документация довольно подробно останавливается на этом вопросе, кроме этого ряд энтузиастов описывает самые различные подходы. Эта статья не претендует на полноту охвата вопр...

Как запустить Istio, используя Kubernetes в production. Часть 1 Что такое Istio? Это так называемый Service mesh, технология, которая добавляет уровень абстракции над сетью. Мы перехватываем весь или часть трафика в кластере и производим определенный набор операций с ним. Какой именно? Например, делаем умный роутинг, или реализуем подход...

Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде Привет, Хабр! Меня зовут Виталий Котов, я работаю в компании Badoo и бо́льшую часть времени занимаюсь вопросами автоматизации тестирования. Решением одного такого вопроса я и хочу поделиться в этой статье. Речь пойдёт о том, как мы организовали процесс работы UI-тестов с A...

Пишем торговых роботов с помощью графического фреймворка StockSharp. Часть 1 В нашем блоге мы много пишем о технологиях и полезных инструментах, связанных с биржевой торговлей. Один из них – бесплатная платформа StockSharp, которую можно использовать для профессиональной разработки торговых терминалов и торговых роботов на языке C#. В данной статье...

Разработчики YouTube готовятся ввести новую полезную функцию Речь о расширении функционала мобильного приложения для использования видеохостинга. Новая графа «Исследование» поможет быстрее находить интересные каналы. Разработчики самого популярного видеохостинга YouTube готовятся ввести новую полезную функцию в официальное мобильное ...

[Из песочницы] Что спрашивают на собеседовании у джуна, или как я искала свою вторую работу в ИТ Я работаю в сфере IT чуть более 1 года как Test Automation Engineer. Мое базовое образование никак не способствовало этому, поскольку в моем дипломе написано “Логистик-Экономист”. Тернистный путь в IT я начала с бесплатных курсов при одной крупной компании в моем городе, по...

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

Написание ОС: Многозадачность Доброго времени суток, дорогой читатель, скорее всего, ты видел мою предыдущую статью о том, что самому можно написать работоспособную ОС за достаточно короткий срок. Что же, сегодня мы поговорим о реализации многозадачности в моей ОС. Читать дальше →

Самые интересные яды Привет, %username%! Снова вечер, снова мне нечего делать, и я решил потратить немного времени, чтобы написать третью часть своего цикла о ядах. Надеюсь, ты читал первую и вторую часть, и тебе понравилось. В третьей части мы немного отдохнём. Здесь не будет рассказа о тех...

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

Вредные советы: как правильно писать техническую документацию? Часть третья и последняя Советы по грамотному написанию технической документации для пользователей. Часть 3 (заключительная) Заключение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. На этот раз мы попод...

Webpack 4 и разделение конфигурационного файла на модули Привет, Хабр! Сегодня я расскажу вам о Webpack 4 с разделением кода на отдельные модули, а также о интересных решениях, которые помогут вам быстрее собрать сборку на webpack 4. В конце, я предоставлю свою базовую сборку на webpack c самыми необходимыми инструментами, которую...

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

Как настроить типы задач и не сойти с ума Вводная частьВ предыдущем посте я писал как организовать процесс “грумминга” задач в системе JIra так чтобы “Менеджеру продукта” было удобно осуществлять навигацию по всему Беклогу продукта. Продолжая продуктовую тему напишу о том как я долго шел к пониманию того — что такое...

Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7 Привет, Хабр! По поводу случившегося на днях послабления режима, возмущения в комментариях одного соседнего поста о том, что статьи про микроконтроллеры — сплошь мигание светодиодом, а также безвременной гибели моего стандалон-блога, восстанавливать который мне пока лень, п...

[recovery mode] Руководство: Thymeleaf + Spring. Часть 1 Оригинал документации В этом руководстве объясняется, как Thymeleaf может быть интегрирован с Spring Framework, особенно (но не только) Spring MVC. Обратите внимание, что Thymeleaf имеет интеграции для версий 3.x и 4.x Spring Framework и выше, предоставляемые двумя отдель...

[Перевод] Оптимизация работы с прототипами в JavaScript-движках Материал, перевод которого мы сегодня публикуем, подготовили Матиас Байненс и Бенедикт Мейрер. Они занимаются работой над JS-движком V8 в Google. Эта статья посвящена некоторым базовым механизмам, которые характерны не только для V8, но и для других движков. Знакомство с вну...

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

Лучшие бюджетные смартфоны сентября 2018 года (китайские интернет-магазины) По старой традиции я собирался написать здесь нытьё в стиле «что-то всё очень подорожало и, наверное, будет только хуже», но не на этот раз. Потому что по ёмкости аккумуляторов, скорости работы и качеству камер у нас подобрался крутейший список смартфонов с начала 2018 года!...

«Живые субтитры» появятся в Skype и PowerPoint Microsoft анонсировала появление функции «живых субтитров» в Skype, которая позволяет преобразовывать речь в текст в режиме реального времени. Она может быть полезна всем людям, но прежде всего она необходима для слабослышащих или говорящих на разных языках людей. «Живые су...

Security Week 32: Fortnite-Android-драма Тот ловкий момент, когда ты написал пророческий дайджест. В прошлом выпуске речь шла о рисках безопасности в Android, в частности об уязвимостях типа Man-in-the-disk, а также о неспортивном (все ради денег) поведении компании Epic Games, отказавшейся размещать игру Fortnite ...

Первый байндинг для Exonum: почему мы выбрали Java Ядро нашего фреймворка для разработки приватных блокчейнов Exonum написано на Rust, поскольку этот ЯП ориентирован на безопасность работы с памятью. Однако наряду со многими преимуществами, Rust имеет ряд особенностей, усложняющих «взаимодействие» с ним: его синтаксис неприв...

«Что там может быть живого?»: В сети обсудили покупку Toyota Land Cruiser Prado с пробегом в 300 000 км Один из пользователей задался вопросом, стоит ли ему приобретать внедорожник 2013 года выпуска с 300-тысячным пробегом – мнения разделились. Пользователь написал пост в одном из сообществ «Вконтакте», посвященных Toyota Land Cruiser Prado. По его словам, он присмотрел «Пра...

[Перевод] Назад к микросервисам вместе с Istio. Часть 2 Прим. перев.: Первая часть этого цикла была посвящена знакомству с возможностями Istio и их демонстрации в действии. Теперь же речь пойдёт про более сложные аспекты конфигурации и использования этого service mesh, а в частности — про тонко настраиваемую маршрутизацию и упр...

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

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

Стажировка Sberseasons: Python, UX/UI, Data и ещё много чего для студентов Привет, Хабр! Этот пост написан специально для студентов. Если вы уже состоявшийся профессионал, лучше посмотрите, как в gif’ках выглядит жизнь Open Source разработчика, а если вы студент, да еще с ИТ-шной специальностью, добро пожаловать под кат. Чем хороша наша программ...

[Перевод] Тот день, когда я полюбил фаззинг В 2007 году я написал пару инструментов для моддинга космического симулятора Freelancer. Ресурсы игры хранятся в формате “binary INI” или “BINI”. Вероятно, бинарный формат выбрали ради производительности: такие файлы быстрее загружать и читать, чем произвольный текст в форма...

[Из песочницы] Два процента «кота» или кто сфотографировал Мастера Йоду? В 2016 из-за давней мечты о видео-играх и «хайпа» вокруг AI я начал изучать Python. Computer Science is Fun потому только неделю назад я обучил первую recognition модель, но без использования Python (в computer science много соблазнов). Как и предсказывал Андрей Себрант (Ya...

[Перевод] 19 идей для Node.js-разработчиков, которые стремятся вырасти над собой в 2019 году Автор материала, перевод которого мы публикуем, собрал 19 идей, которые могут оказаться полезными для тех Node.js-разработчиков, которые хотят повысить свой профессиональный уровень в 2019 году. Мир JavaScript огромен, поэтому освоить всё то, о чём пойдёт здесь речь, попрост...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 1 Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. ...

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

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

Подводные грабли SmartTV разработки Привет, Хабр! Уже давно была идея написать статью о проблемах SmartTV разработки, но по ходу погружения в эту область, мы изобрели свой велосипед, который помогал нам эти проблемы решать. Поэтому, в данной статье, мы не только осветим некоторые проблемные моменты SmartT...

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

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

Apple позволит дарить приложения друзьям в App Store Apple готовит к запуску новую функцию, которая позволит пользователям App Store дарить покупки в приложении друзьям и родственникам. Руководство по обзору App Store было недавно обновлено, чтобы отразить новое изменение. В руководстве указано, что подарки могут быть возвраще...

[Перевод] Переговоры провалены: как Oracle убила Java EE Сегодня (3 мая) президент Eclipse Foundation Майк Милинкович (Mike Milinkovic) написал в своем блоге об окончательных результатах закрытых переговоров между Oracle и Eclipse Foundation о товарном знаке. Как мы помним, Oracle объявила, что она открывает исходный код Java EE ...

[Перевод] Блуждающий монстр: как избавиться от проблем на карте Уже в процессе создания The Witness стала одной из самых любимых моих игр. Я начал играть в неё с того момента, когда Джонатан Блоу начал её разработку, и не мог дождаться её релиза. В отличие от предыдущей игры Джона Braid, масштаб ресурсов и программирования The Witness ...

Nintendo запустила платный сервис Nintendo Switch Online То, чего многие опасались, всё же случилось: пусть и с годовым запозданием, но сервис Nintendo Switch Online всё-таки был запущен. Теперь играть в многопользовательские игры по сети на Nintendo Switch стало платно, хотя первая неделя позволит пользователям оценить возможност...

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

Как сделать расширение на PHP7 сложнее, чем «hello, world», и не стать красноглазиком. Часть 2 Краткое содержание первой части В первой части я сделал болванку расширения, заставил ее правильно работать в IDE Clion, написал функцию-аналог my_array_fill() и проверил ее работоспособность в php. Что теперь? Теперь я запилю код библиотеки libtrie в наше расширение. Немно...

Терраформируй это: обзор Terragenesis В App Store/Google Play можно найти самые разные игры, поэтому я не сильно удивился, когда в одном из профильных чатов меня спросили, знаю ли я игру о терраформировании небесных тел. Посмотрев ее, решил написать небольшой обзор, потому что игра, на мой взгляд, хоть и не без ...

Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1 Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат. Я хотел бы ...

3D игра на three.js, nw.js Я решил выпустить новую версию своей старой браузерной игры, которая на протяжении пары лет пользовалась успехом в качестве приложения в социальных сетях. На этот раз я задался целью оформить ее также и в виде приложения под Windows (7-8-10) и разместить в различных магазина...

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

[Перевод] Почему человек из мира Java стал горячим сторонником Node.js и JavaScript? Дэвид Хэррон, автор материала, перевод которого мы публикуем сегодня, задался следующим вопросом: «Должен ли человек, работавший более 10 лет в Sun Microsystems, в команде Java SE, до последнего вздоха думать лишь о байт-коде Java и создавать экземпляры абстрактных интерфейс...

RS-485 на отечественных микроконтроллерах от фирмы Миландр Несколько дней назад я имел неосторожность завуалированно пообещать запилить пост про Миландр… Ну что ж, попробуем. Как вы, вероятно, уже знаете, существует российская компания Миландр, которая, среди прочего, выпускает микроконтроллеры на ядре ARM Cortex-M. Волею судеб я ...

PostgreSQL: PipelineDB — агрегирующие запросы в режиме реального времени Вас когда-либо просили посчитать количество чего-то на основании данных в бд за последний месяц, сгруппировав результат по каким-то значениям и разбив всё это ещё по дням/часам? Если да — то вы уже представляете, что вам придётся написать что-то вроде такого, только хуже SE...

[Перевод] Реализуем UI в iOS: улучшаем, ускоряем, масштабируем Привет! Меня зовут Азат Зулькарняев, я занимаюсь разработкой iOS-приложений в компании Badoo. При создании мобильных приложений большая часть времени уходит на разработку UI, и оптимизация этого процесса всегда является актуальной темой в среде разработчиков. Мой коллега А...

ML на Scala с улыбкой, для тех, кто не боится экспериментов Всем привет! Сегодня будем говорить о реализации машинного обучения на Scala. Начну с объяснения, как мы докатились до такой жизни. Итак, наша команда долгое время использовала все возможности машинного обучения на Python. Это удобно, есть много полезных библиотек для подг...

Алгоритм резервуарной выборки Резервуарная выборка (eng. «reservoir sampling») — это простой и эффективный алгоритм случайной выборки некоторого количества элементов из имеющегося вектора большого и/или неизвестного заранее размера. Я не нашел об этом алгоритме ни одной статьи на Хабре и поэтому решил на...

[recovery mode] Еще один способ использования docker-compose По следам статьи Docker + Laravel = ? хочу рассказать о довольно необычном способе использования утилиты docker-compose. Для начала, для тех кто не знает, зачем нужен docker-compose. Это утилита, которая позволяет запускать на отдельном хосте набор связанных сервисов, запако...

[Из песочницы] Что такое быть Team Leader Всем привет! Меня зовут Артур Дементьев, я бы хотел поделиться личным опытом и написать несколько статей о том, что из себя представляет менеджмент в IT. А также рассказать о том, на какие грабли наступал и каких ошибок можно было избежать. Все статьи я буду писать, основыва...

[Перевод] Как написать сопроводительное письмо при поиске работы в США: 7 советов На протяжение многих лет в США была распроcтранена практика требовать претендентов на различные вакансии не только резюме, но еще и сопроводительное письмо (cover letter). В последние годы важность этого аспекта начала снижаться – уже в 2016 году сопроводительные письма тр...

[Из песочницы] Domain Driven Design: Value Objects и Entity Framework Core на практике На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыт...

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

Ещё одна статья о временах жизни в Rust Первые месяцы начинающего растомана как правило сводятся к ударам головой о концепцию времени жизни и владения. Некоторые на этом ломаются, но тем, кто смог пережить — это уже не кажется чем-то необычным или неправильным. Я опишу ключевые моменты, которые, как мне кажется, п...

[Из песочницы] FadeObjects — Скрываем объекты между камерой и персонажем Как-то раз, потребовалось написать модуль для скрытия объектов между камерой и персонажем, либо между несколькими персонажами для RTS игры. Хочу поделиться для тех, кто начал свой путь в Unreal Engine. Данный туториал, если его можно так назвать, будет с использованием С++...

Пишем на Rust + CUDA C Всем привет! В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA ...

Jinja2 в мире C++, часть вторая. Рендеринг Это вторая часть истории о портировании шаблонного движка Jinja2 на C++. Первую можно почитать здесь: Шаблоны третьего порядка, или как я портировал Jinja2 на C++. В ней речь пойдёт о процессе рендеринга шаблонов. Или, иначе говоря, о написании "с нуля" интерпретатора питон...

[Перевод] Интервью — 10 вопросов про Swift. Часть 2 До запуска курса «iOS-разработчик» остается все меньше времени, поэтому сегодня мы продолжаем публиковать материал из серии «10 вопросов про Swift». Первую часть которого можно прочитать тут. Объясните дженерики в Swift? Дженерики (универсальные шаблоны) позволяют вам пис...

Под капотом Screeps — виртуализация в MMO-песочнице для программистов В этой статье я расскажу про одну малоизвестную технологию, которая нашла ключевое применение в нашей онлайн-игре для программистов. Чтобы долго не тянуть резину, сразу спойлер: кажется, что такого шаманства в нативном коде Node.js, к которому мы пришли после нескольких лет ...

[Из песочницы] Кросспостинг постов из Instagram в паблик VK на Python Предисловие Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не...

[Из песочницы] От var b до собеседования Вы почти закончили универ или колледж? Вас пригласили на собеседования, но вы идете туда без подготовки? У вас нет образования (высшего), но хотите работать программистом или в сфере IT? Речь пойдёт по большей степени о поиске работы, я буду говорить лишь за свой город (Челя...

Termux шаг за шагом (Часть 2) В прошлой части мы с вами познакомились с базовыми командами Termux'а, настроили SSH соединение с ПК, научились создавать alias'ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами: узнаем про Termux:API установим Python и nano, а...

Удобный способ тестирования React-компонентов Я написал построитель дополнительных отчетов (custom reporter) для Jest и выложил на GitHub. Мой построитель называется Jest-snapshots-book, он создает HTML-книгу снимков компонентов React-приложения. В статье речь пойдет о том, что такое Jest, snapshot-тестирование, для ...

Равномерно распределяем точки по сфере в pytorch и tensorflow Этот текст написан для тех, кто интересуется глубоким обучением, кто хочет использовать разные методы библиотек pytorch и tensorflow для минимизации функции многих переменных, кому интересно научиться превращать последовательно выполняющуюся программу в выполняемые с помощью...

Как работает stack trace на ARM Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляц...

Xiaomi приступила к работе на MIUI 11 – обещана новая и уникальная ОС После вчерашнего аппаратного анонса Xiaomi сегодня очередь анонса программного: в Китае на мероприятии с говорящим названием Xiaomi MIUI Core Experience Annual Meeting начальник отдела планирования продуктов Лю Мин (Liu Ming) сообщила о том, что подразделение по разрабо...

[recovery mode] REST страсти по 200 Давно я хотел написать эту статью. Все думал — с какой стороны зайти правильнее? Но, вдруг, недавно, на Хабре появилась подобная статья, которая вызвала бурю в стакане. Больше всего меня удивил тот простой факт, что статью начали вбивать в минуса, хотя она даже не декларир...

Зачем айтишнику «знать, чем живут другие»? Среди разработчиков регулярно всплывает вопрос о непрофильных знаниях: стоит ли тратить время, разбираясь в том, что не используешь ежедневно? Порой в связи с высшим образованием: «действительно ли надо давать теоретические основы в таком объёме, или больше пригодилось бы ...

Переезд веб-портала: от монолита к микросервисной архитектуре Делимся опытом модернизации архитектуры веб-портала, позволившей сделать продукт удобным, стабильным и отказоустойчивым: посещаемость выросла с 350 тысяч до 7 миллионов пользователей! История будет полезна тем, кто планирует расширение своего продукта. Для начала разберемся,...

Коммуникации как performance-зона работы тимлида Участники Saint TeamLead Conf назвали доклад Александра Зизы одним из лучших вероятно потому, что от навыков коммуникации тимлида зависит многое, а развиты они, как правило, не очень хорошо. Ниже вы найдете видео и текстовую версию этого выступления, но просто так посмотрет...

Ticket to Ride.Европа — арифметика, часть вторая Всё ещё продолжаю изучать основы математики и механики в игре. Данная статья является второй в серии (Ссылка на первую часть), в ней продолжается анализ перегонов, попытка их сортировки по потребности, изучение различных способов строительства маршрутов. Если проводить анало...

Как поступить на PhD программу по машинному обучению 1. Введение Этот текст — небольшое обобщение моего опыта подачи заявок на Computer Science PhD с уклоном в machine learning в Северной Америке. Я постарался собрать в этом гайде свои просчеты (учиться лучше на чужих ошибках) и более-менее универсальные вещи, полезные всем. Н...

Kivy. Xamarin. React Native. Три фреймворка — один эксперимент (часть 2) Это вторая статья из цикла, где мы проводим сравнение Kivy, Xamarin.Forms и React Native. В ней я постараюсь написать такой же планировщик задач, но с использованием Xamarin.Forms. Посмотрю, как у меня это получится, и с чем мне придется столкнуться. Повторять ТЗ я не буд...

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

[Из песочницы] Небольшой бэкдор на Flask или как управлять компьютером в локальной сети Привет, Хабр! Недавно я посмотрел скачанную версию стрима по программированию «Как создать свое веб-приложение на Flask». И решил закрепить свои знания в каком-нибудь проекте. Долго не знал, что написать и мне пришла идея: «А почему бы не сделать мини-бэкдор на Flask?». В ...

Руководство по Power Bi: начало работы Microsoft Power BI — это коллекция программных служб, приложений и соединителей, которые взаимодействуют друг с другом, чтобы превратить разрозненные источники данных в согласованные, визуально иммерсивные и интерактивные аналитические сведения. Сегодня мы делимся с вами нач...

Про пожар в небоскребе Пожар в 900-метровой башне! На секунду мелькнула мысль про Burj Khalifa, но отлегло — речь всего лишь о художественном фильме, с бесхитростным названием «Небоскреб» и таким же простым, но пугающим сюжетом. Мы не могли это пропустить. Почему загорелось и как тушили? А если бы...

«С чего начинается путь геймдизайнера?» — Step By Step vol.1 Доброго времени суток читатели! Если вы твердо решили заниматься разработкой игр то вы наверняка знаете что делать если вы: концепт художник, видеомонтажер, художник по спецэффектам, звуковик, кодер, дизайнер интерфейсов, сетевой специалист и тд. Но как быть геймдизайне...

[Перевод] Руководство по JavaScript, часть 7: строгий режим, ключевое слово this, события, модули, математические вычисления Сегодня, в седьмой части перевода руководства по JavaScript, мы поговорим о выполнении кода в строгом режиме, об особенностях ключевого слова this, о событиях, о модулях, о математических вычислениях. Здесь же мы затронем темы работы с таймерами и асинхронного программирован...

Дело в шляпе: топ-10 докладов Heisenbug 2018 Moscow Как упростить рефакторинг? Как научить разработчика избегать типовых ошибок в UI? Как вызвать восторг зрителей конференции по тестированию, если сам ты не тестировщик? По традиции, открывая для всех видеозаписи докладов Heisenbug, мы публикуем на Хабре топ-10, составленны...

Итоги розыгрыша NABU mini Друзья, вот и наступил этот торжественный момент!Целый месяц с 20 марта по 20 апреля мы собирали участников для розыгрыша.По условиям конкурса нужно было оформить заказ на сайте bestfilament.ru на сумму от 6500 руб и написать в комментарии к заказу IWANTNABU.На кону стоял но...

[Перевод] 2D-тени на Signed Distance Fields Теперь, когда мы знаем основы комбинирования функций расстояний со знаком, можно использовать их для создания крутых вещей. В этом туториале мы применим их для рендеринга мягких двухмерных теней. Если вы пока не читали моих предыдущих туториалов о полях расстояний со знаком ...

Оптимизируем веб с Виталием Фридманом: скорость загрузки, память, CPU Это второй пост о всевозможных трюках во фронтенд-разработке. В нем затронут вопрос оптимизации сайта, скорости его загрузки на устройствах с недостаточным объемом оперативной памяти и медленным CPU. Отдельный разговор про инструменты, которые помогут ускорить и контролиров...

Резервное копирование MS SQL: пара полезных функций Commvault, про которые не все знают Сегодня расскажу про две возможности Commvault для резервного копирования MS SQL, которые незаслуженно обходят стороной: гранулярное восстановление и плагин Commvault для SQL Management Studio.  Базовые моменты настройки рассматривать не буду. Пост скорее для тех, кто уже у...

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

[Перевод] PostgreSQL 11: Эволюция секционирования от Postgres 9.6 до Postgres 11 Отличной всем пятницы! Все меньше времени остается до запуска курса «Реляционные СУБД», поэтому сегодня делимся переводом еще одного полезного материала по теме. В процессе разработки PostgreSQL 11 была проделана впечатляющая работа по улучшению секционирования таблиц. Секц...

К вопросу о TI «Сейчас я покажу вам портрет… Хм… Я предупреждаю вас, что это именно портрет… Во всяком случае, прошу отнестись к нему, как к портрету... В данном посте пойдет речь о разработке и отладке программ для МК СС1350 в рекомендованной производителем среде разработки CCS. Будут за...

.NET Core на Linux, DevOps на коне Мы развивали DevOps как могли. Нас было 8 человек, и Вася был самым крутым по Windows. Внезапно Вася ушел, а у меня появилась задача вывести новый проект, который поставляет Windows-разработка. Когда я высыпал на стол весь стек Windows-разработки, то понял, что ситуация — бо...

[Из песочницы] Краткое введение в Клеточную биологию Последние пару лет я занимаюсь исследованиями в области биологии растительной клетки, в частности, я занимаюсь вопросом сигналинга и регуляции клеточных процессов. В свободное время балуюсь биоинформатикой, классическими ML задачами, и спортивной биомеханикой. Этой весной ...

IBM System i (aka AS/400) — Как мы делали автотесты приложений зеленого экрана Привет! Меня зовут Антон Воробьев, я отвечаю в Альфа-Банке за разработку приложений для централизованной банковской системы. В этом посте я расскажу вам о том, что такое приложения зеленого экрана, зачем они нужны и как мы делали для них автотесты, написав для этого собстве...

Книга «Глубокое обучение на R» Глубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если ...

Зацените, на 70% готовый турбореактивный ховерборд Этот пост меня заставил написать Паша zhovner и рассказать, зачем я строю джетпак, как это выглядит изнутри и на каком этапе находится проект Jethackers. Зачем все это нужно В 2014 году я узнал про Ива Росси и написал статью на Хабр. Тогда мне казалось, что это под силу т...

HeisenBug глазами сотрудника СберТеха В этом посте я хочу поделиться обзором 15 докладов с конференции Heisenbug, рассказать, что интересного было на стендах у компаний, а также поделиться видеоматериалом из доклада Артема Ерошенко о создании actions плагинов для IntelliJ IDEA, которые помогут быстро изменять ко...

ASH Viewer: перезагрузка Что делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких п...

1500 публикаций, игра-капча для программистов и разбитый мозгошмыга: 10 лет нашему блогу Друзья, 9 августа нашему блогу стукнуло по темечку 10 лет. За это время блог пережил взлёты и падения, мы искали авторов среди сотрудников и нащупывали свой путь. Хотя в день рождения принято получать подарки, мы их раздаём. Например, в честь юбилея мы нарисовали стикерпак...

Проектирование процессора (CPU Design) RAM-машина Часть I Часть II Часть III Часть IV Часть V На Хабре уже была опубликована статья, посвящённая RAM-машине. Вообще, статья про RAM-машину есть на Википедии. RAM-машина, которая упоминается в книге «Построение и анализ вычислительных алгоритмов» -авторы: Ахо, Хопкрофт, Уль...

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

KivyMD — жизнь продолжается Приветствую! Сегодня мы поговорим о UI на Android в приложениях, написанных с использованием фреймворка для кроссплатформенной разработки Kivy. Возможно, вы не знали об этом, но для Kivy сущестсвует библиотека KivyMD, которая предоставляет для ваших программ виджеты в стиле...

[Перевод] Мемристоры, состоящие из частей толщиной в 2 нм 9-битный крестообразный массив работает прекрасно, но использует платину Разместив два блока один над другим, можно повернуть их так, чтобы у них возникало девять точек пересечения. Память с изменением фазового состояния (PCM) вроде бы способна предложить лучшее из обоих в...

ITIL и новые модные штуки В самом начале 2000-х мне, как и многим другим ребятам, было очень важно узнать: как организовать современный (на тот момент) ИТ-департамент коммерческой компании среднего размера. Скажем, на 50-200 «айтишников». То был не праздный интерес, а вполне реальная зад...

Каким будет «Диалог» лингвистов и специалистов по анализу данных С 29 мая по 1 июня в Российском государственном гуманитарном университете (РГГУ) пройдет 25-ая международная научная конференция по компьютерной лингвистике и интеллектуальным технологиям «Диалог». О том, что такое «Диалог» и почему ABBYY его основной организатор, мы уже гов...

Программный комитет FrontendConf: фреймворкы, горизонты, мировой опыт и миссия конференции Привет, Хабр! Я руковожу Программным комитетом конференции FrontendConf и хочу рассказать как все работает изнутри, объяснить, что мы вложили в программу, почему выбрали те или иные доклады. Почему, при всем обилии информации в интернете, конференции — не просто тематическа...

[Перевод] Десять вещей, которые можно делать с GraalVM От переводчика: GraalVM — новая, интересная технология, но на Хабре по ней не так много статей, которые бы могли показать примеры возможностей Graal. Статья ниже — это не просто перечисление того, что GraalVM умеет, но ещё и небольшой мастер-класс, аналогичный тому, который...

ProКонтент 2019: конференция для технических писателей и всех, кто работает с текстами Мы в каждый год устраиваем отдельную конференцию для всех, кто причастен к созданию технических текстов. В этом году она пройдет 4 апреля. На этот раз наша конференция — особенная. И тому есть две причины. Во-первых, мы впервые пригласили внешних спикеров. От «Лаборатории ...

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

Как обрабатывать ошибки на JVM быстрее Существуют различные способы обработки ошибок в языках программирования: стандартные для многих языков исключения (Java, Scala и прочий JVM, python и многие другие) коды статуса или флаги (Go, bash) различные алгебраические структуры данных, значениями которых могут быть ка...

Notion — лучшие кроссплатформенные заметки Сложно представить более удобное и приятное в использовании решение для заметок. И речь идет не только о смартфонах. Notion имеет веб-сайт, приложение для MacOS и Windows. Разработчики даже выпустили мобильные приложения. Мы протестировали работу версии для Android. Можно с...

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Байкал-Т1 за счет SIMD-блока В статье на примере описания реализации алгоритма шифрования по ГОСТ 28147–89, построенного на сети Фейстеля, показаны возможности двухъядерного процессора BE-T1000 (aka Байкал-Т1) и проведены сравнительные испытания реализации алгоритма с помощью векторных вычислений с сопр...

Параллельное обновление данных в ASP.NET Web API Хочу рассказать, как мы организовали фоновое обновление данных во время запроса к REST-сервису. Задача следующая: система хранит данные о пользователях. Cервис работает изолированно и не имеет прямого доступа к базам с этими данными. Для работы сервису необходимо иметь в св...

[Перевод] Изучаем Docker, часть 1: основы Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнер...

Элементарный Canvas Если вы изучаете веб совсем недавно, но уже успели увидеть различные красивые эффекты на сайте, по типу системы частиц или какие либо игры разработанные на canvas'e и вас это заинтриговало, но изучать что-то новое очень страшно, то я вам готов продемонстрировать, как за 50 с...

Instagram для Android радует полезным обновлением. Что изменилось? Разработчики Instagram постоянно работают над улучшениями социальной платформы. Например, во второй половине ноября команда показала новый дизайн, который улучшит взаимодействие с другими пользователями и заодно сделает личные профили более красивыми. Бизнес-страницы станут...

Просто о внутренних и внешних настройках для приложения в Unity3D Введение Здравствуйте уважаемые читатели, в сегодняшней статье хотелось бы поговорить о настройках и конфигурировании игровых приложений, создаваемых в среде Unity3d. По традиции начну с предыстории. За время работы в игровой индустрии я разрабатывал различные проекты, с р...

Атомэкспо 2019, часть 1: мероприятия и внезапный космический двигатель 15-16 апреля в Сочи прошел одиннадцатый международный форум “Атомэкспо-2019”. Я был там в составе приглашенных Росатомом блогеров. За два дня материалов и впечатлений накопилось немало, поэтому я разделил их на три части. Здесь будет рассказ о мероприятиях — открытии форума,...

Собственный VPN клиент на JavaScript. 1 часть — Вводная Приветствую, Хабр. Наконец пришло время написать еще одну статью, которую я задумал довольно давно, и необходимость в написании которой я особенно остро ощущаю с тех пор, как 26 октября этого года решил снова взяться за один незаслуженно забытый проект. Поскольку сам я...

Epson WorkForce Enterprise – полтора года спустя. Компиляция кейсов и интересные факты В прошлый раз, когда я впервые рассказал в блоге о «Принтере 80-го уровня» – Epson WorkForce Enterprise – что печатает цветные документы со скоростью до 100 страниц в минуту и идет с запасом чернил аж до 100 000 отпечатков, во время обсуждения устройства в комментариях и лич...

Принцип KISS в разработке Следующий доклад с Pixonic DevGAMM Talks, который мы расшифровали, немного философский — это выступление Константина Гладышева. Он Lead Game Programmer в 1C Game Studios и рассказывал о принципе управления сложностью разработки в контексте всего продукта, а не отдельных фиче...

Картина, написанная искусственным интеллектом, продана на аукционе за 432 000 долларов На аукционе Christie's впервые продана картина, созданная искусственным интеллектом. Ожидалось, что лот принесет от 7 000 до 10 000 долларов, но окончательная цена оказалась равна 432 000 долларов. Произведение под названием «Портрет Эдмонда Белами» вхо...

[Из песочницы] Скрещиваем ужа с ежом: OpenJDK-11 + GraalVM Привет, Хабр! В свете не самых давних новостей про политику Oracle относительно лицензирования джавы всё острее встаёт вопрос ухода от оракловых версий в сторону OpenJDK. Оданко в OracleLabs уже давно делают весьма крутую штуку под названием GraalVM, который представляет из ...

Каково делать Kotlin: интервью с Андреем Бреславом Дефицита технических материалов о Kotlin нет, узнать о корутинах или nullability можно много где. Но остаётся куда менее освещённой другая сторона: а как вообще выглядит процесс разработки языка? Как принимаются решения? Каковы задачи у «самого главного человека»? Остаётся...

[Из песочницы] Советы студентам-программистам Привет, Хабр! Представляю вашему вниманию перевод статьи "Advice for programming students". Есть много вещей, которые я хотел бы знать, когда я начал свое путешествие в качестве студента-программиста. С тех пор прошло почти 10 лет, и, к сожалению, я не могу поделиться своим...

[Из песочницы] BEM'a не должно существовать Здравствуйте. BEM'а не должно существовать. Есть огромное количество причин не использовать эту методологию, но из-за её простоты использования и непонимания работы CSS и HTML, методология широко распространилась среди фронтендеров всего мира, в большинстве случаев среди р...

DotNext — герои тут другие В прошлый раз я рассказывал про простых самобытных парней, которые где-то тихо упоролись и написали инструменты мирового уровня для Java. В мире .NET герои не такие. В мире .NET герой — это бунтарь в галстуке. Потому что нет зоопарковости платформы. MS выпускает инструмен...

[Перевод] Записки фрилансера: разработка первого React Native-приложения Автор материала, перевод которого мы публикуем, недавно выпустил своё первое мобильное приложение, написанное на React Native. Так случилось, что это приложение стало и его первым проектом, который он создал как программист-фрилансер. Здесь он расскажет о том, с чем ему приш...

Аудиогаджет специального назначения: “тихий” голос “Медузы”, “Шепот” щитов и 162 дБ от LRAD На этот раз речь пойдет об применении звука в качестве оружия. В этой теме много интересного, разработки велись с начала 40-х и потому рассказать обо всём в одной статье не удастся. Я постарался выбрать наиболее заметные и неординарные проекты, о которых можно будет подискут...

[Из песочницы] История одного отчета Одним прекрасным солнечным днем от руководства поступило задание: отремонтировать прибор (нежданно-негаданно он перестал работать, хотя конечно же ничто не предвещало беды), разобраться, как он работает, и подумать, может стоит подобные производить и продавать. Когда-то да...

Архитектура Intel Gen11 GPU и дискретная видеокарта от Intel Дискретная видеокарта начального уровня Intel Graphics Xe, официальный анонс состоялся 20 марта на игровой конференции GDC 2019 Компания Intel опубликовала документацию на графические процессоры Gen11 с описанием, чем они будут отличаться от предыдущего поколения. Ожидаетс...

Sony представила полный список игр на PlayStation Classic В середине сентября компания Sony официально анонсировала свою новую игровую приставку. Многие надеялись, что речь пойдёт о PS5, но вместо этого нам продемонстрировали уменьшенную версию оригинальной PS1. Новую консоль назвали PlayStation Classic, она стала на 45% компактнее...

Дизайн-процессы в ISPsystem. Как внедрить идеологию, построить отдел и остаться в живых История об одном редизайне, который изменил подход к разработке в ISPsystem. Я пришёл в ISPsystem в апреле 2016 г. На тот момент ситуация с продуктовым дизайном была следующая: решения по продуктам принимались руководством и программистами, никаких дизайнеров или проектир...

Модернизация IDA Pro. Учимся писать загрузчики на Python Привет всем, цикл статей по написанию разных полезных штук для IDA Pro продолжается. В прошлый раз мы исправляли процессорный модуль, а сегодня речь пойдёт о написании модуля-загрузчика (лоадера) для одной винтажной операционной системы, а именно — для AmigaOS. Писать будем...

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

Новый загрузчик Buhtrap Сегодня мы расскажем вам о новом подходе к рассылке ВПО группировкой Buhtrap. Модуль загрузчика 19 декабря нам стало известно о вредоносной рассылке, содержащей исполняемый файл (md5: faf833a1456e1bb85117d95c23892368). Файл принимал различные названия: «Сверка за декабрь....

[Перевод] Наиболее распространенные ошибки и заблуждения при настройке DFSR [Прим. переводчика. Материал статьи относится к Windows Server 2003/2003R2/2008/2008R2, но большинство из описанного справедливо и для более поздних версий ОС] Всем привет! Уоррен снова здесь, и этот пост в блоге представляет собой подборку наиболее распространенных проблем...

[Перевод] Конференция DEFCON 18. Вы потратили все эти деньги, но вас продолжают «иметь». Часть 2 Конференция DEFCON 18. Вы потратили все эти деньги, но вас продолжают «иметь». Часть 1 Я использую интересную вещь авторства Гэри О’Лири-Стил под названием Unicod-fun, которая довольно неплоха для утилиты, написанной на Ruby. Вы знаете, что мои инструменты должны писаться и...

Зеркала сайтов букмекерских контор 1XBet и Фонбет Спорт может быть полезным не только для вашего тела и здоровья, но и для вашего кошелька. Многие современные люди пользуются услугами букмекерских контор. Существует их достаточно много. Одни из них проверенные и надежные, другим не стоит доверять. Несмотря на критику со сто...

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

История успеха, или DEV+DEVOPS+OPS Команды разработки могут быть слабо связаны между собой и работать в разных направлениях, не зная и не желая использовать DevOps. В сегодняшней статье мы расскажем о том, насколько практики DevOps могут искажаться и трансформироваться, чтобы их можно было реализовать в компа...

[Перевод] RxDart: магические трансформации потоков Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter. Введение Основы Dart Streams RxDart: магические трансформации потоков (этот пост) Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользова...

Совершеннолетняя журналистика: от России до Кремля Анализ публикаций Lenta.ru за 18 лет (с сентября 1999 по декабрь 2017 гг.) средствами python, sklearn, scipy, XGBoost, pymorphy2, nltk, gensim, MongoDB, Keras и TensorFlow. В исследовании использованы данные из поста «Анализируй это — Lenta.ru» пользователя ildarchegg. Авто...

Технологию AMD FreeSync можно использовать с видеокартами NVIDIA GeForce Несмотря на то, что NVIDIA уже представила видеокарты GeForce RTX и совсем скоро начнёт их продажи, в их предшественницах поколения Pascal всё ещё обнаруживаются интересные особенности, которые ранее были неизвестны. Например, выяснилось, что видеокарты GeForce GTX 10-й сери...

Как защититься от копирования (парсинга) или воровства статей и фотографий с сайта? Короткая инструкция, как защититься если кто-то забирает авторский контент с вашего сайта на свои ресурсы. Написать письмо автору ресурса Первым делом имеет смысл связаться с автором сайта, где вы увидели свой контент (текст или фото). Обычно ищут страницу с контактами, с сс...