Социальные сети Рунета
Пятница, 22 февраля 2019
26 июня 2018   16:26

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

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

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

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

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

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

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

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

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

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

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

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

[Перевод] Как работает JS: классы и наследование, транспиляция в Babel и TypeScript [Советуем почитать] Предыдущие 14 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

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

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

[Перевод] Стандартный 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 меня так восхитили, что это требует срочного поста на Хабр, чтобы рассказать другим. Написанное в этом посте, вероятнее всего, будет тривиальным и скучным...

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

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

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

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

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

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

[Перевод] Как работает JS: технология Shadow DOM и веб-компоненты [Советуем почитать] Предыдущие 16 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

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

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

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

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

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

[Перевод] Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация [Советуем почитать] Предыдущие 13 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

[Перевод] Чек-лист по анализу логов событий безопасности Сегодня тема мониторинга IT – инфраструктуры и анализа логов набирает все большую и большую популярность. В первую очередь все задумываются о мониторинге событий безопасности, о чем и будет идти речь в данной статье. Несмотря на то, что на эту тему сказано и написано уже д...

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

Шаблоны третьего порядка, или как я портировал Jinja2 на C++ Под «шаблонами» в контексте C++ обычно понимаются вполне конкретные языковые конструкции. Есть простые шаблоны, которые просто упрощают работу с однотипным кодом. Если у шаблона какой-то из параметров сам по себе шаблон, то это уже, можно сказать, шаблоны второго порядка и г...

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

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

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

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

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

[Перевод] Оптимизация рендеринга сцены из диснеевского мультфильма «Моана». Часть 3 Сегодня мы рассмотрим ещё два места, в которых pbrt тратит много времени при парсинге сцены из диснеевского мультфильма «Моана». Посмотрим, удастся ли и здесь улучшить производительность. На этом мы закончим с тем, что разумно делать в pbrt-v3. Ещё в одном посте я буду разб...

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

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

[Перевод] Интеграция containerd с Kubernetes, заменяющая Docker, готова к production Прим. перев.: Мы уже не раз писали о containerd и других исполняемых средах для Kubernetes. Новая публикация — перевод недавнего анонса важной вехи в развитии containerd, опубликованного в официальном блоге проекта Kubernetes. Текст написан сотрудниками компаний Google и I...

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

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

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

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

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

[Перевод] Как выучить английский, занимаясь UX: история бразильского дизайнера От переводчика: этот текст написан UX-дизайнером из Бразилии. В процессе освоения новой для него профессии автору удалось выучить английский язык практически с нуля. Собственно, сам пост — отличный пример если не нового метода обучения, то способа совмещать работу и учебу....

[Перевод] Как работает CPU Manager в Kubernetes Прим. перев.: Эта статья опубликована в официальном блоге Kubernetes и написана двумя сотрудниками Intel, принимающими непосредственное участие в разработке CPU Manager — новой возможности в Kubernetes, о появлении которой мы писали в обзоре релиза 1.8. В настоящий момент (т...

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

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

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

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

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

История тестирования проекта «К»: Kotlin&Spek Привет, Хабр! В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К». Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «В...

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

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

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

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

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

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

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

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

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

Производительность в iOS — Core Animation, Offscreen Rendering и System Trace. Часть 2 Как избежать проблем с производительностью с помощью пресета Core Animation, что использовать для трассировки участков кода и с помощью каких функций сократить долю вычислительных операций в приложении с 26% до 0.6% — читай во второй части статьи по материалам доклада Люка...

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

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

[Из песочницы] Аналоги в Python и JavaScript. Часть первая Привет, Хабр! Представляю вашему вниманию перевод статьи "Equivalents in Python and JavaScript. Part 1". Несмотря на то что Python и Javascript довольно сильно отличаются, существует много схожего, о чем должен знать любой фулстек разработчик. В этой серии из 4-х ...

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

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

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

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

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

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

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

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

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

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

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

Знай свой JIT: ближе к машине До того, как написанный нами код будет исполнен, он проходит довольно долгий путь. Андрей Мелихов в своем докладе на РИТ++ 2018 разобрал каждый шаг на этом пути на примере движка V8. Заходите под кат, чтобы выяснить, что даёт нам глубокое понимание принципов работы компилято...

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

[Перевод] Создание эмулятора аркадного автомата. Часть 2 Первая часть здесь. Дизассемблер процессора 8080 Знакомство Нам понадобится информация об опкодах и соответствующих им командах. Когда вы будете искать информацию в Интернете, то заметите, что есть много перемешанных сведений о 8080 и Z80. Процессор Z80 был последователем ...

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

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

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

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

Поэтапная настройка Continues Integration (build, test, deploy) для .NET Core WebApp + GitHub Поэтапная настройка Continuous Integration (build, test, deploy) для .NET Core WebApp + GitHub Всем привет. Continues Integration (CI) давным-давно проник в мир разработки программного обеспечения и для многих является его неотъемлемой частью, которое позволяет создавать б...

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

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

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

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

7 полезных функций и приложений Google, о которых вы не знали Tic-Tac-Toe Вам скучно? Просто введите этот короткий запрос в поисковой строке Google, и получите доступ к забавной игрушке, которая развлечет вас и поможет убить лишнее время. Allo Allo — это приложение для Google-чата, которое не только позволит обмениваться с ...

Квест от Арбайтена: Основные тонкости в настройке сайта при продвижении Вы знаете я люблю этого героя из Банд Нью-йорка. Он всегда говорит правду и не юлит.     Сегодня мы тоже не будем юлить и будем говорить,только правду.     При продвижении сайта есть некоторые элементы которые очень важны. Вернее сказать они критично важ...

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

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

Мастер менеджмента и фрилансер. Повесть в трёх частях Для тех кто просто пролистывает дальше, краткое содержание: «google: freelance подписывайте контракт» спасибо за внимание. Чуть более полное описание: Как я открыл для себя новые вершины менеджмента благодаря одному заказчику, при работе над совместным фриланс проектом. Пе...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[Из песочницы] Облысение: Теория и практика лечения, ч.1 «Дэгидротестостерон мой, враг мой» Судя по одной из недавно опубликованных статей, тема облысения довольно таки интересна для местной публики, в связи с чем я решил написать пару постов о самом заболевании и методах его лечения (если быть точнее то не совсем лечения, т.к средства для перманентного решения про...

Однотипные методы? Хватит это писать Вы когда-нибудь писали адаптеры для Keychain или NSUserDefaults? Они полностью состоят из однотипных сеттеров и геттеров. Предлагаю написать логику один раз, предоставив остальное рантайму. За реализацией прошу под кат. Читать дальше →

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

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

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

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

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

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

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

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

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

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

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

[Перевод] Как работает JS: пользовательские элементы [Советуем почитать] Предыдущие 18 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

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

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

toString: Великий и Ужасный Функция toString в языке JavaScript наверно самая "неявно" обсуждаемая как среди самих js-разработчиков, так и среди внешних наблюдателей. Она — причина многочисленных шуток и мемов про многие подозрительные арифметические операции, преобразования, вводящие в ступор [object...

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

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

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

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

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

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

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

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

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

[Перевод] 11 способов (не) стать жертвой взлома в Kubernetes Прим. перев.: Оригинал этой статьи был опубликован в официальном блоге Kubernetes и написан Andrew Martin — одним из основателей молодой британской компании Control Plane, специализирующейся на безопасности для cloud native-приложений, запускаемых в K8s. Безопасность в Ku...

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

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

[Перевод] Мышление в стиле Ramda: Бесточечная нотация 1. Первые шаги 2. Сочетаем функции 3. Частичное применение (каррирование) 4. Декларативное программирование 5. Бесточечная нотация 6. Неизменяемость и объекты 7. Неизменяемость и массивы 8. Линзы 9. Заключение Данный пост — это пятая часть серии статей о функциональном прогр...

Как мы замахнулись на мобильный fast paced шутер: технологии и подходы Год назад у нас в компании был один проект — мобильный шутер War Robots с относительно медленными, но красочными и напряженными боями. Игра продолжает развиваться, у нее десятки миллионов установок и игроков по всему миру, постоянно выходят апдейты. В какой-то момент мы за...

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

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

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

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

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

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

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

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

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

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

Автоматическая визуализация python-кода. Часть третья: новые возможности графического представления кода Ссылки на предыдущие части: Часть первая — обсуждены блок-схемы, имеющиеся инструменты для работы с блок-схемами, а также все графические примитивы, необходимые для создания графического представления кода. Часть вторая — обсуждены реализация ( выполнена, в основном, на Пит...

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

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

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

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

[Перевод] Как работает JS: системы хранения данных [Советуем почитать] Предыдущие 15 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

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

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

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

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

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

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

[Перевод] Разработка собственного фреймворка и профессиональный рост JS-программиста Вы когда-нибудь задавались вопросом о том, как работают фреймворки? Автор материала, перевод которого мы сегодня публикуем, говорит, что когда он, много лет назад, после изучения jQuery, наткнулся на Angular.js, то, что он увидел, показалось ему очень сложным и непонятным. П...

Заметки дилетанта, или Сказ о том, как Scala-разработчик ПЛИС конфигурировал Долгое время я мечтал научиться работать с FPGA, присматривался. Потом купил отладочную плату, написал пару hello world-ов и положил плату в ящик, поскольку было непонятно, что с ней делать. Потом пришла идея: а давайте напишем генератор композитного видеосигнала для древне...

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

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

[Перевод] Запланированные новые возможности C# 8.0 Все ранее представленные в минорных версиях C# средства, разработаны так, чтобы не сильно изменять язык. Они представляют собой скорее синтаксические улучшения и небольшие дополнения к новым возможностям C# 7.0. Этот подход был преднамеренным, и он остается в силе. Более се...

[Перевод] Ричард Хэмминг: Глава 12. Коды с коррекцией ошибок «Цель этого курса — подготовить вас к вашему техническому будущему.» Привет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 394k прочтений)? Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, н...

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

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

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

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

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

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

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

YouTube в Google Chrome работает в пять раз быстрее, чем в Firefox и Edge Веб-версия видеохостинга YouTube работает в Google Chrome примерно в пять раз быстрее, чем в браузерах конкурирующих разработчиков. Об этом на своей странице в Twitter написал Крис Питерсон, технический директор студии Mozilla. По его словам, очевиднее всего замедление рабо...

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

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

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

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

10 лет App Store: эволюция дизайна первых приложений Одна из самых значительных дизайнерских возможностей в новейшей истории была анонсирована на сайте Apple простым постом в блоге. «Позвольте мне сказать: мы хотим, чтобы на iPhone были нативные сторонние приложения, и мы планируем в феврале передать SDK в руки разработчикам»,...

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

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

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

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

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

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

Платон Щукин о хороших и плохих текстах на коммерческих сайтах Не пугайтесь, ничего принципиально нового в работе Баден-Бадена не появилось — он, как и прежде, негативно относится к сайтам с SEO-текстами (теми, что написаны для поисковых роботов). Напомним, что SEO-тексты — это, как правило, тексты с перечисленными в них ключевыми слова...

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

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

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

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

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

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

[Перевод] Работа с буфером обмена в JavaScript с использованием асинхронного API Clipboard Существует новое API JavaScript, предназначенное для организации асинхронного доступа к буферу обмена с использованием спецификации, которая всё ещё находится на этапе разработки. До сих пор в веб-разработке стандартным способом копирования текста в буфер обмена является под...

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

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

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

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

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

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

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

Рейтинг статей по добавлению в избранное Этот пост написан по мотивам комментария vconst к статье «Прямая линия с ТМ»: "… Было бы любопытно посмотреть рейтинг статей, набравших много закладок, это было бы интереснее, чем просто сортировка по рейтингу. Но такую статистику здесь или не ведут, или не хотя делиться.". ...

В Microsoft Edge появилась блокировка автозапуска видео В браузере Microsoft Edge появилась блокировка автозапуска видео на уровне настроек. Правда, пока не в релизной, а в тестовой версии. Речь идёт о сборке Windows 10 Insider Preview 17704. Сообщается, что после фальстарта в начале июня компания готова-таки дать возможность про...

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

[Из песочницы] Как iOS 'ник Telegram бота писал, на Swift Речь пойдет о Telegrammer, Telegram Bot фреймворк для Linux/macOS, полностью написанный на Swift 4.1 Читать дальше →

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

Добавляем распределенность в SObjectizer-5 с помощью MQTT и libmosquitto Когда-то в SObjectizer-4 «из коробки» была доступна возможность построения распределенных приложений. Но не всегда это работало так хорошо, как хотелось бы. В итоге в SObjectizer-5 от поддержки распределенности в самом ядре SObjectizer-а мы отказались (подробнее этот вопрос ...

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

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

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

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

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

В коде Bitcoin Cash обнаружена критическая уязвимость Разработчик Bitcoin Core из MIT Media Labs Кори Филдс выявил в апреле критическую уязвимость в коде Bitcoin Cash (BCH). Об этом он написал пост на блог-платформе Medium. По словам разработчика, уязвимость могла бы привести к фатальным последствиям для четвертой по капитализа...

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

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

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

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

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

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

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

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

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

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

Без единого «упс»: топ-10 докладов DevOops 2017 Если вы не были на DevOops 2017, то, наверное, ваши мысли сейчас примерно такие: «При чём тут греческие тоги? Так выглядел лучший доклад девопс-конференции? Что это за доклад и почему он признан лучшим? А были ли там серьёзные выступления в обычной одежде?» Серьёзного был...

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

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

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

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

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

Приложение AppleInsider.ru заработало с iOS 12. Как его скачать Редкий читатель AppleInsider.ru, установивший бета-версию iOS 12, не жаловался на оптимизацию нашего приложения. Мы вняли вашим просьбам и выпустили специальную версию для тех, кто не желает идти на компромисс и выбирать между шансом раньше всех ознакомиться с обновленной ...

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

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

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

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

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

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

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

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

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

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

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

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

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

8000 сотрудников eXp работают на виртуальном острове из компьютерной игры Компания eXp Realty помогает своим клиентом покупать и продавать недвижимость. При этом, у самой компании есть только крошечный офис в Беллингеме. Он нужен лишь по той причине, что согласно требованиям компания должна быть где-то зарегистрирована. Настоящая работа проходит...

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

Тайны ввода ой-капчи Яндекса — 7 вопросов службе поддержки Те, кто подписан на меня в твиттере, знают, что я нет-нет, да что-нибудь опубликую о капче Яндекса - знаменитая в узких кругах страница "Ой". Любители пользоваться RDS-баром мне прекрасно поймут. Сначала капчи были безобидными и легко разгадывались, но спустя время игра стан...

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

Помощь зала Как обычно начну издалека. Из чудовищного, невообразимого далека. Как я уже ранее говорил, я литератор. Пишу рассказы, повести, романы. Собираюсь написать в соавторстве с Вами роман #ДАШАНАЛУНЕ. Но речь сейчас пойдет не о нем. #ДАШАНАЛУНЕ – роман более серьёзный, реалистич...

[Перевод] Создание эмулятора аркадного автомата. Часть 4 Части первая, вторая, третья. Остальная часть автомата Написанный нами код для эмуляции процессора 8080 достаточно общий и может быть с лёгкостью адаптирован для запуска на любой машине с компилятором C. Но чтобы поиграть в саму игру, нам нужно сделать большее. Придётся эм...

Моя история создания мотивационного приложения (iOS и Android) для дочери с дочерью на Unity и C# Это первая часть истории (вперемешку с рассказом о моих ошибках и их решениях) о том, как я (где-то два года в свободное время) разрабатывал мобильное приложение под iOS и Android, которое бы мотивировало мою дочь решать примеры по математике, чтобы она достигла автоматизма...

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

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

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

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

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

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

[Из песочницы] 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, из-за чего я решил написать свой редактор. Написание сво...

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

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

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

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

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

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

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

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

[Перевод] Kubernetes: жизнь пода Прим. перев.: эта небольшая (но ёмкая!) статья, написанная Michael Hausenblas из команды OpenShift в Red Hat, настолько пришлась нам «по душе», что практически сразу же после её обнаружения была добавлена в нашу внутреннюю базу знаний по Kubernetes. А поскольку представленна...

Советы для тех, кто решил стать iOS-разработчиком Очень давно меня просили написать эту статью, но то ли мне микрофон мешал, то ли просто звезды не сошлись. Коротко обо мне: мне 43, я Женщина и iOS-разработчик. Сейчас я один из самых востребованных специалистов на рынке, поиск работы составляет в среднем от 2 дней до 2 не...

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

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

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

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

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

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

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

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

Как же, черт побери, работает async/await в Python 3.5 От переводчика: Это перевод статьи https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/. Оригинальная статья показалась мне очень полезной и, как мне кажется, определенно заслуживает внимания, если вы до сих пор плохо представляете, как работает асинхронное пр...

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

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

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

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

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

[Перевод] Ричард Хэмминг: Глава 11. Теория кодирования — II «Цель этого курса — подготовить вас к вашему техническому будущему.» Привет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 393k прочтений)? Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, н...

Mattermost и Powershell — огромная сила, или малая автоматизация своими силами Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть не...

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

[Перевод] Извлекаем уровни из Super Mario Bros с помощью Python Введение Для нового проекта мне понадобилось извлечь данные уровней из классической видеоигры 1985 года Super Mario Bros (SMB). Если конкретнее, то я хотел извлечь фоновую графику каждого уровня игры без интерфейса, подвижных спрайтов и т.п. Разумеется, я просто мог склеит...

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

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

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

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

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

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

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

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

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

[Из песочницы] История первого места на ML Boot Camp VI Mail.ru уже не первый год проводит чемпионаты по машинному обучению, каждый раз задача по-своему интересна и по-своему сложна. Я участвую в соревнованиях четвертый раз, мне очень нравится платформа и организация, и именно с буткемпов начался мой путь в соревновательный machi...

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

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

[Перевод] Как не пропустить ни одного сообщения Обработка событий — одна из самых распространенных задач в области бессерверных технологий. Сегодня расскажем о том, как создать надежный обработчик сообщений, который сведет к нулю их потерю. Кстати, примеры написаны на C# с использованием библиотеки Polly, но показанные по...

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

Corona Native для Android — использование произвольного Java кода в игре написанной на Corona Игровой движок Corona позволяет создавать кроссплатформенные приложения и игры. Но иногда предоставляемого им API бывает недостаточно. Для таких случаев есть Corona Native, позволяющий расширять функциональность с использованием родного кода для каждой платформы. В статье по...

WebSockets в Angular: cоздаем Angular Service для работы с вебсокетами В этой статье я постараюсь детально охватить узкую сферу применения технологии в рамках фреймворка Angular и его уже неотъемлемого помощника — RxJs, при этом мы намеренно не будем касаться серверных реализаций, т.к. это полноценная тема для отдельной статьи. Данный текст б...

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

[Перевод] Становимся волшебниками в программировании. Часть 1 Если вы давно хотели стать программистом, но не знали с чего начать, то начните с этого комикса. В нем о том, как задавать правильные вопросы, чтобы получать полезные ответы и читать исходный код. Читать дальше →

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

[Перевод] Оптимизация рендеринга сцены из диснеевского мультфильма «Моана». Части 4 и 5 У меня есть ветка pbrt, которую я использую для проверки новых идей, реализации интересных мыслей из научных статей и в целом для исследования всего того, что в результате обычно оказывается в новой редакции книги Physically Based Rendering. В отличие от pbrt-v3, который мы...

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

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

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

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

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

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

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

Записки IoT-провайдера. Проприетарность Продолжение цикла статей. Начало: Первая часть → || → Вторая часть → || → Третья часть Свою четвертую статью я хотел бы посвятить одной важной мысли. На нее меня натолкнули многочисленные комментарии и сообщения в личку. Интернет Вещей еще очень молод. Он потихоньку забира...

Обзор популярных AR-фреймворков Привет! Недавно мы осознали, что доросли до корпоративного блога на Хабре, хотя на рынке разработки трудимся уже десять лет. За это время успели набить множество шишек и поднакопить жизненного опыта. В нашей команде сейчас есть энтузиасты, которые готовы делиться экспертиз...

Linux kernel 4.18: что готовит грядущий релиз Недавно в нашем блоге мы рассказывали о релизе Linux kernel 4.17 и его основных фичах. В этом посте речь пойдет о версии 4.18, которая выйдет в августе. О том, что будет сделано и что уже реализовано — рассказываем под катом. Читать дальше →

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

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

[Перевод] Как работает JS: WebRTC и механизмы P2P-коммуникаций [Советуем почитать] Предыдущие 17 частей циклаЧасть 1: Обзор движка, механизмов времени выполнения, стека вызовов Часть 2: О внутреннем устройстве V8 и оптимизации кода Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними Часть 4: Цикл событий, асинхронност...

[Из песочницы] Hibernate — о чем молчат туториалы Эта статья не будет затрагивать основы hibernate (как определить entity или написать criteria query). Тут я постараюсь рассказать о более интересных моментах, действительно полезных в работе. Информацию о которых я не встречал в одной месте. Читать дальше →

[Перевод] Создание карты пути пользователя для чайников Всем привет! Продолжаем наши эксперименты с не совсем программерскими курсами и теперь на очереди в запуск «Проектирование UX/UI» и вот интересный материал, которым мы бы хотели поделиться с вами. Поехали Что такое Карта Пути Пользователя? Карта пути пользователя (или ин...

Официально анонсирована разработка S.T.A.L.K.E.R. 2 Этот день настал! Глава украинской студии-разработчика видеоигр GSC Game World Сергей Григорович сообщил о том, что продолжению культовой постапокалиптической серии шутеров S.T.A.L.K.E.R. быть. «Я официально заявляю: GSC Game World разрабатывает S.T.A.L.K.E.R. 2», —...

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

Функции для документирования баз данных PostgreSQL. Часть вторая Это вторая часть статьи, которая описывает пользовательские функции для работы с системными каталогами: pg_class, pg_attribute, pg_constraints и т.д. Тексты функций и их описания приводятся в надежде, что они полезны еще кому-то кроме автора. В этой статье выкладываются ч...

Facebook позволил отслеживать события в приложениях без добавления кода Facebook добавил в свой SDK новый инструмент Codeless App Events Setup, который позволяет настраивать отслеживание событий в приложениях, не создавая код. Теперь маркетологи могут самостоятельно, без привлечения разработчиков, добавлять, изменять и удалять события. «Маркетол...

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

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

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

[Из песочницы] Использование Dependent items в Zabbix 4.0 на примере HPE MSA 2040/2050 Введение Все, кто пользуется системой мониторинга Zabbix и следит за её развитием, знают, что с выходом Zabbix 3.4 у нас появилась замечательная функциональная возможность — Dependent Items (зависимые элементы данных), о который уже был соответствующий пост в блоге Zabbix. О...

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

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

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

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

Как мы игру «Камень – ножницы – бумага» на блокчейне Ethereum делали. Ч.2 Техническая Учтя комментарии к моей предыдущей статье я решил написать вторую часть, где будут более подробна рассмотрена техническая составляющая игры. Читать дальше →

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

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

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

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

Apple написала 19 страниц о конфиденциальности. Прочитайте все самое важное на одной Мы продолжаем все больше заботиться о конфиденциальности наших данных. Именно по этой причине у нас возникает очень много вопросов к компаниям, которые этими данными владеют. Apple в их числе, и недавно Комитет Палаты представителей Конгресса США отправил в адрес Apple 16 ...

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

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

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

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

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

Instagram запустил отдельный сервис для вертикальных видео Ещё относительно недавно вертикальные видео считались дурным тоном. Теперь такой формат съёмки — это современный тренд, который популяризировали такие сервисы, как Snapchat, Facebook и Instagram. Последний, к слову, пошёл ещё дальше и запустил новое приложение IGTV исключите...

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

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

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

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

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

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

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

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

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

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

Гендиректор "ВКонтакте" выступил против преследований за посты в интернете и анонсировал реформу приватности страниц в соцсети "ВКонтакте" как крупнейшая коммуникационная платформа обязана выполнять российские законы и содействовать поиску настоящих преступников, но мы решительно выступаем против необоснованных преследований за публикации в Интернете", - написал на своей странице Андрей Рогозов.

Как работает новый способ ускорить смартфон — CPU Turbo О GPU Turbo пользователи уже знают немало. Но вместе с новым Honor Note 10 дебютировала другая впечатляющая технология — CPU Turbo, о которой пользователи уже слышали и хотели бы узнать некоторые подробности. Когда компания Huawei анонсировала GPU Turbo, было немало ...

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

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

Как проверить гипотезы и заработать на Swift с помощью сплит-тестов Всем привет! Меня зовут Саша Зимин, я работаю iOS-разработчиком в лондонском офисе Badoo. В Badoo очень тесное взаимодействие с продуктовыми менеджерами, и я перенял у них привычку проверять все гипотезы, которые возникают у меня относительно продукта. Так, я начал писать с...

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

10 причин [не] использовать k8s Сегодня мы поговорим про Kubernetes, про грабли, которые можно собрать при его практическом использовании, и про наработки, которые помогли автору и которые должны помочь и вам. Постараемся доказать, что без k8s в современном мире никуда. Противникам k8s также предоставим от...

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

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

Краудтестинг, или Где взять опыт для первой работы в тестировании Изображение: источник Привет, Хабр! Меня зовут Евгений Кузнецов. Я работаю в Badoo, в отделе QA. Почти пять лет назад я начал интересоваться тестированием: читал книги, искал информацию в интернете. На одном из форумов наткнулся на тему про подработку, где один из участн...

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

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

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

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

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

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

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

Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 4.3 Краткое содержание предыдущих частей Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03. Бы...

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

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

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

Как мы съездили на New York Developer Week Около месяца назад в США прошла конференция для разработчиков New York Developer Week (NYDW), где мы выступали с докладом «High reliable, high loaded architecture of front-office system in bank» (Построение отказоустойчивых, высоконагруженных фронтальных систем банка). В пос...

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

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

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

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

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

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

[Перевод] Основы прогрессивных веб-приложений Видели когда-нибудь кнопку «Добавить на главный экран», которая появлялась на экране вашего Android-смартфона, когда вы просматривали какой-нибудь сайт? Если щёлкнуть по этой кнопке, то на телефон, в фоновом режиме, будет установлено некое приложение, значок для запуска кото...

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

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

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

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

[Перевод] Что нового в DevTools в Chrome версии 68 В консоли разработчика последней версии Хрома появились такие классные фишки, что мне захотелось перевести пост на эту тему из официального блога разрабов. Консоль разработчика в Chrome давно поражает меня глубиной своей проработки. Когда-то давно я тащился от Firebug'а, а т...

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

Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH В процессе поиска загрузчика для микроконтроллера STM8S103F3 было обнаружено, что имеющиеся загрузчики в основном написаны на ”C”, «крадут» значительный объем у FLASH памяти, переносят таблицу векторов прерываний...

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

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

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

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

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

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

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

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

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

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

JS DevDay. Запись докладов 27 апреля мы провели JavaScript DevDay — разговаривали и про мобилку, и про веб, и про гибридные приложения. Делимся записями трёх докладов. Первый будет полезен, если вам понадобилась аргументация почему НЕ стоит использовать Аppcelerator Titanium. Второй повествует о т...

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

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

Седьмая печаль ДисклеймерЯ не уверен, что этот текст должен быть на Хабре. Тащу его сюда просто потому, что больше нигде не публикуюсь. Если вы полагаете, что сей опус здесь неуместен, вы знаете, что делать. Антоний Блок почесал острый подбородок и передвинул фигуру на доске. Партия подхо...

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

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

Как перестать бояться Proguard и начать жить Здравствуйте, я Android разработчик и я больше не боюсь ProGuard... Обычно, об этой утилите вспоминают, когда сталкиваются с dalvik dex-limit issue или с требованием улучшить безопасность приложения. К сожалению, правильно настроить Proguard удается далеко не с первого раза...

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

Команда Турбо-страниц представила скрипт для добавления RSS-канала в Яндекс.Вебмастер Команда Турбо-страниц написала скрипт на Python, который не только демонстрирует работу с API от и до, но и может быть использован как шаблон. С помощью этого скрипта можно добавлять RSS-канал в Яндекс.Вебмастер. Скрипт последовательно отправляет запросы к API Яндекс.Турбо-с...

«Божественный» код (GOD'S code) «Божественный» код — громкий термин, который может показаться желтым заголовком, но всё же именно о таком коде будет идти речь: из каких частей он состоит и как его писать. Это история о моих стараниях сделать так, чтобы задачи не возвращались с code review с пометкой: «Вс...

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

MIUI 10 представят вместе с Xiaomi Mi 8 На официальной странице MIUI в социальной сети Weibo появился тизерный пост с датой анонса десятой версии оболочки от Xiaomi — 31 мая 2018 года. В этот же день китайская компания представит смартфон Mi 8 на специальной конференции в городе Шэньчжэн. Вероятнее всего, MIUI 10 ...

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

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

[Перевод] Обязательный чек-лист разработки UX-дизайна мобильного приложения От переводчика: Эта статья изначально была опубликована сооснователем компании Django Stars Романом Гапоновым в его англоязычном блоге на Medium. Мы сделали перевод этого обзора главных UX-нюансов мобайла и представляем его вашему вниманию. Статья поможет разработчикам,...

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

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

[Перевод] Доклад Римского клуба 2018, Глава 3.5: «Некоторые истории успеха в сельском хозяйстве» Предлагаю самим разобраться с докладом «мирового правительства», а заодно и помочь перевести первоисточник. 3.5.1 Общие направления устойчивой сельскохозяйственной политики Чтобы рассказать о борьбе за плодородие и экологически устойчивое сельское хозяйство потребуется отд...

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

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

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

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

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

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

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

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

Microsoft Edge (Beta) на Android научился переводить страницы Компания Microsoft продолжает работать над мобильными приложениями для разных платформ, регулярно выпуская для них обновления и новые функции. В частности, сегодня на бета-тестирование выпустили новую версию браузера Microsoft Edge для Android, которая принесла с собой возм...

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

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

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

Как сделать поиск пользователей по Github используя Angular Эта статья является ответом на: Как сделать поиск пользователей по GitHub используя React + RxJS 6 + Recompose, Как сделать поиск пользователей по GitHub без React + RxJS 6 + Recompose, Как сделать поиск пользователей по Github используя VanillaJS. Целью статьи является...

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

Слушать и говорить: анонс HolyJS 2018 Moscow Что главное на конференциях — доклады или общение? Свои сторонники есть и у первого варианта («информация по делу важнее разговоров»), и у второго («учиться можно и дома, а вот поговорить с экспертами дорогого стоит»). 24-25 ноября мы проведём в Москве конференцию для Ja...

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

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

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

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

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

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

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

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

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

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

Работа с облаком на практике: 30 материалов и руководств о работе с ПД, информационной безопасности и внедрении IaaS Сегодня мы расскажем об особенностях внедрения облачных технологий: разберем правовые вопросы, обсудим реальные кейсы. Об этом мы пишем в нашем корпоративном блоге и на Хабре. Читать дальше →

Команда oc спешит на помощь Если вы спец в OpenShift, то этот пост вряд ли откроет вам много нового. Но если вы только начинаете его осваивать, то он сэкономит вам массу времени и нервов. Мы попросили Хорхе Тудела Гонсалеса де Рианчо, облачного консультанта в испанском офисе Red Hat, написать несколько...

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

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

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

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

Jimdo – Конструктор сайтов 2018.05.14-aca9100 Jimdo — создай собственный бесплатный сайт и управляй им с любого устройства. Уже более 12 миллионов сайтов было создано на конструкторе сайтов Jimdo. Теперь всем доступно и приложение Jimdo для Android. Воспользуйся приложением, чтобы ощутить всю простоту и легкость работы ...

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

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

Tornado vs Aiohttp: путешествие в дебри асинхронных фреймворков Привет! Я Дима, и я довольно давно и плотно сижу на Python. Сегодня хочу показать вам отличия двух асинхронных фреймворков — Tornado и Aiohttp. Расскажу историю выбора между фреймворками в нашем проекте, чем отличаются корутины в Tornado и в AsyncIO, покажу бенчмарки и дам н...

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

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

Масштабный мод Fallout: New California не закроют из-за официальной «настолки» от Bethesda Две недели назад разработчик Fallout: New California, масштабной модификации Fallout: New Vegas, выразил опасение о будущем проекта, так как Bethesda Softworks решила выпустить настольную игру с тем же самым названием. Однако беспокоится оказалось не о чем. Но ...

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

Могут ли PWA (Progressive Web Apps) образца 2018 года составить достойную конкуренцию нативным приложениям? Когда изменения происходят постепенно, шаг за шагом, порой бывает трудно заметить насколько они драматичны и всеобъемлющи. Казалось бы всего несколько лет назад web платформа проигрывала нативным приложением практически по всем фронтам, и пропасть между тем, что можно было ...

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

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

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

[Перевод] Практика работы с потоками в Node.js 10.5.0 Совсем недавно вышла версия 10.5.0 платформы Node.js. Одной из её главных возможностей стала впервые добавленная в Node.js поддержка работы с потоками, пока носящая статус экспериментальной. Этот факт особенно интересен в свете того, что данная возможность теперь есть у плат...

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

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

WebSockets в Angular. Часть 2. Продуктовые решения В предыдущей статье речь шла об общем решении для вебсокетов в Angular, где мы на основе WebSocketSubject построили шину с реконнектом и сервисом для использования в компонентах. Подобная реализация подходит для большинства простых случаев, например, приема и отправки сооб...

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

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

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

Эволюция Backend as a Service: второе пришествие Scorocode Здравствуй, Хабр. Мы прерываем длительное молчание и объявляем о выходе второй версии Scorocode. Это даже не эволюция, а рождение нового сервиса. Год работы, Docker, Kubernetes, Яндекс.Облако, и т.п. Предупреждая вопрос «А зачем тут хаб Go?», отвечаю — все сервисы Scoroc...

Errorx — библиотека для работы с ошибками в Go Что такое Errorx и чем он полезен Errorx — это библиотека для работы с ошибками в Go. Она предоставляет инструменты для решения проблем, связанных с механизмом ошибок в больших проектах, и единый синтаксис для работы с ними. Большинство серверных компонентов Joom пишутся на...

[Перевод] Создание эмулятора аркадного автомата. Часть 3 Части первая и вторая. Эмулятор процессора 8080 Оболочка эмулятора Теперь у вас должны быть все необходимые знания, чтобы приступить к созданию эмулятора процессора 8080. Я постараюсь, чтобы мой код был как можно более понятным, каждый опкод реализован отдельно. Когда вы ...

Низкоуровневый Brainfuck. Продолжение… Часть I Часть II Часть III Пишем brainfuck на TurboAssembler'e. Добавим вывод массива data_arr («ленту» машины Тьюринга) на экран. Напишем программу, выводящую на экран элементы произвольного массива посредством функции 09h прерывания 21h. .model tiny ; a...

[Из песочницы] Ввод текста в Linux (ibus) Если ваша клавиатура размечена под латиницу или кириллицу, а вам приходится набирать тексты на другом языке, особенно, используя сложные, неалфавитные письменности, то данная заметка о системах ввода в Linux (упрощенно "клавиатурных раскладках") может вас заинтерес...

[Перевод] Билеты на Марс будут стоить менее $500,000 Иллюстрация кораблей SpaceX Starship на поверхности Марса. Изображение предшествует новейшему дизайну Starship, который предусматривает изготовление кораблей из нержавеющей стали. Корабли SpaceX будут переправлять всех желающих на Красную планету и обратно, если всё пой...

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

Хурма. Инструкция по употреблению «Всё — яд, всё — лекарство; то и другое определяет доза» Парацельс Удивительно, но после публикации статьи Заметки фитохимика. Хурма мой facebook ЛС-ящик просто взорвался от десятков сообщений. Для меня это стало настоящим открытием, то что так велик и многонационален "клуб ...

Microsoft и WhatsApp, возможно, работают над новым UWP-приложением для Windows 10 WhatsApp — одно из немногих приложений для Windows 10 Mobile, которое по-прежнему продолжает получать обновления, приносящие с собой и некоторые новые функции, а не только исправления ошибок. Только вот само приложение было создано в далёком 2014 году и написано на Silverli...

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

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

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

[Из песочницы] Интеграция React Native и C++ для iOS и Android Недавно мне предложили поработать над одним интересным проектом. Требовалось разработать мобильное приложение для американского стартапа на платформах iOS и Android с помощью React Native. Ключевой технической особенностью и фактором, который однозначно решил мое участие в п...

[Перевод] Истерия вокруг GDPR, часть 2. Полезные советы Статья опубликована 21 мая 2018 года Первая часть статьи здесь. Если не читали её, пожалуйста, ознакомьтесь для контекста. Разобравшись с самыми распространёнными заблуждениями о GDPR, давайте посмотрим на реальное влияние GDPR. Затем рассмотрим наиболее важные полезные с...

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

[Перевод] Руководство по JavaScript, часть 3: переменные, типы данных, выражения, объекты Сегодня, в третьей части перевода руководства по JavaScript, мы поговорим о разных способах объявления переменных, о типах данных, о выражениях и об особенностях работы с объектами. → Часть 1: первая программа, особенности языка, стандарты → Часть 2: стиль кода и структура ...

Взлом вк, двухфакторная аутентификация не спасет Недавно я ужаснулся от того, как просто можно получить доступ к странице пользователя, зная только номер телефона, на который зарегистрирована страница жертвы. Стоимость взлома ~1000-1500 рублей, время взлома ~30 минут. Единственное условие — недобросовестный оператор мобиль...

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

[Перевод] Знакомство с тестированием в Python. Ч.1 Всем доброго! От нашего стола к вашему... То есть от нашего курса «Разработчик Python», несмотря на стремительно приближающий Новый год, мы подготовили вам интересный перевод о различных методах тестирования в Python. Это руководство для тех, кто уже написал классное прил...

Надежное хранилище с DRBD9 и Proxmox (Часть 2: iSCSI+LVM) В предыдущей статье я рассмотрел возможность создания отказоустойчивого NFS-сервера с помощью DRBD и Proxmox. Получилось довольно неплохо, но не будем останавливаться на достигнутом и теперь постараемся "выжать все соки" из нашей хранилки. В этой статье я расскажу как подоб...

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

Очередная модернизация FLASHFORGE dreamer Ну вот дорогие друзья я почти дорос до второго своего поста на этом сайте. Есть лишь пара моментов которые мне мешают его опубликовать. Я попытался обсудить это с админом сайта, но он молчит как рыба об лед, я стараюсь, но меня мало лайкают, или вообще не лайкают, просто кач...

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

Создаем несложный шахматный ИИ: 5 простых этапов Перевели для вас статью Лори Хартикка (Lauri Hartikka) о создании простейшего ИИ для шахмат. Она написана еще в 2017 году, но базовые принципы остались теми же. Все файлы, которые использовал Лори, тоже доступны. Простой искусственный интеллект, который умеет играть в ш...

Kotlin: статика, которой нет В этой статье пойдёт речь об использовании статики в Kotlin. Начнём. В Kotlin нет статики! Об этом говорится в официальной документации. И вроде бы на этом можно было бы и закончить статью. Но позвольте, как же так? Ведь если в Android Studio вставить код на Java в фа...

Переход на Kotlin в Android-проекте: Tips and Tricks Автор: Сергей Ешин, Strong Junior Android Developer, DataArt Уже более полутора лет прошло с тех пор, как Google объявил об официальной поддержке Kotlin в Android, а самые матерые разработчики начали экспериментировать с ним в своих боевых и не очень проектах больше трех л...

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

[Перевод] 90 новых фич (и API) в JDK 11 Привет, Хабр! Представляю вашему вниманию перевод статьи «90 New Features (and APIs) in JDK 11» от автора Simon Ritter. Новый шестимесячный релизный цикл JDK для многих означает, что некоторые ещё даже не выяснили, какие новые функции в JDK 10, а на пороге уже JDK 11. В одн...

Статистики научились отличать песни Маккартни и Леннона «Вероятность того, что «In Me Life» написал Маккартни, равна 0,18. Скорее всего, ее написал Леннон». Фанаты The Beatles и математики из Гарварда Марк Гликман и его бывший студент Дженсон Браун разработали методику статистического анализа, которая позволяет определить, кто из...

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

Дайджест новостей из мира PostgreSQL. Предновогодний (укороченный) выпуск №13 Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. В этом предновогоднем выпуске не будем утомлять вас длинным перечнем новостей. С Наступающим Новым Годом! Релизы pgAdmin4 3.6 В этой версии добавлены: из панели Properties можно дропать несколько...