Социальные сети Рунета
Суббота, 15 декабря 2018
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-кода. В ...

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

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

[Перевод] Руководство по 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. Оригин...

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

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

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

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

[Из песочницы] 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...

Реанимируем игровой сервис Nintendo Switch после блокировок РКН День добрый читатели. Это моя первая статья за много лет чтения Хабра, поэтому прошу «понять и простить». В ней я хочу поделиться тем, как попытаться вернуть к жизни игровые сервисы, адреса которых заблокированы РКН в агонии попытках запретить Telegram. В моём случае, это...

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

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

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

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

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

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

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

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

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

[Перевод] Как статы и мониторинг WebRTC изменили мониторинг VoIP Сегодня мы публикуем перевод об очередном тренде WebRTC, спасибо за это консультанту Цахи. Какие изменения несет в мир VoIP технология WebRTC и что как меняется подход к статистике: об этом под катом. Кстати, возможно вы помните, что Цахи Левент-Леви приезжал на нашу конфе...

Текстовая версия доклада «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 всегда казался слегка анахроничным, и это и привлекает к нему массу людей, которые не ограничивают себя в количестве слов и предпочитают анонимность. Недавно сайт обзавёлся весьма приятной и даже ностальгической возможностью создавать свои чаты. Возможность нах...

Имплементация катсцен и последовательностей действий в играх В этом посте я расскажу о том, как можно имплементировать последовательности действий и катсцены в видеоиграх. Эта статья является переводом вот этой статьи и по этой же теме я делал доклад на 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'е проекта, если когда-либо интересовались фичами и пр...

Что нового в PostgreSQL 11: JSONB-трансформы В предыдущих постах вы могли прочитать про INCLUDE-индексы и встроенный веб-поиск. Эти фичи появятся в PostgreSQL 11, релиз которого, напомню, планируется в октябре. Сегодня мне хотелось бы продолжить обзор новых фичей грядущего релиза, рассказав про JSONB-трансформы для я...

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

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

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

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

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

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

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

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

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

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

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

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

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

[Перевод] AI, практический курс. Предисловие Блог Intel начинает публикацию русского перевода большой серии статей со специализированного ресурса Intel AI Academy. Цель этой публикации — представить разнообразные подходы к искусственному интеллекту и различные способы его применения. Первый пост серии будет в некотор...

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

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

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

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

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

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

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

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

Анимации в мире состояний Многие уже научились строить чистые интерфейсы и писать «undo-redo» в несколько строчек. Но как быть с анимациями? Часто их обходят стороной, и они не всегда вписываются в подход (state) ↦ DOM. Есть отличные решения вроде React Motion, но что если вам нужно делать сложные ан...

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

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

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

[Перевод] Распространенные ошибки, которые допускают разработчики в UX Я занимаю должность консультанта по UX для одного из партнеров компании Mendix, и мне часто приходится работать с небольшими самоорганизованными командами, которые создают отличные приложения для решения внутренних проблем. Моя задача — совершенствовать UX в этих приложениях...

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

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

Обзор докладов HolyJS 2018 Piter: от WebAssembly до Three.js Кто-то решает сходить на конференцию, как только её анонсируют: если уже был на ней в прошлом году и всё понравилось, то сомневаться не приходится. А кто-то принимает решение, когда готова программа конференции и можно точно понять, какие доклады хочется посетить. Сегодня...

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

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

[Перевод] Сделаем Windows медленнее! Часть первая: файловый доступ ОС Windows долгое время попрекали за медлительность её файловых операций и медленное создание процессов. А почему бы не попробовать сделать их ещё более медленными? Эта статья покажет способы замедления файловых операций в Windows примерно в 10 раз от их нормальной скорости ...

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

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

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

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

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

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

Kotlin Playground Привет, Хабр! Совсем недавно мы выпустили 1.4.0 версию Kotlin Playground, о которой писал в нашем блог посте PMM Kotlin Рома Белов. стоп… стоп... Что еще за Kotlin Playground? Kotlin Playground — полноценный редактор кода, написанного на Kotlin, который можно интегрировать ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Telegram бот для Mikrotik с Webhook и парсером JSON Как вы думаете, можно ли, используя только Mikrotik скрипт, написать интерактивный Telegram бот, который будет работать целиком в среде маршрутизатора с поддержкой Webhook, входящих событий от API Telegram? Читать дальше →

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

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

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

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

[Из песочницы] Реализация RESTful Table в Atlassian User Interface О чём это вообще? Для тех, кто вообще не в теме: у компании Atlassian, известной своими продуктами для обеспечения рабочих процессов (прежде всего JIRA и Confluence, но, наверное, любой айтишник без труда назовёт ещё несколько), есть также SDK для разработки плагинов к этим ...

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

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

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

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

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

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

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

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

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

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

Как провести хакатон: подготовка к мероприятию Хакатон – крупное мероприятие, но его можно провести легко, интересно и с пользой, если начать готовиться заранее. Для подготовки к хакатону вам хватит трех месяцев. В самом начале мы советуем написать концепцию о том, почему вы хотите провести хакатон, кого туда пригласите ...

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

Тестирование телефонов с помощью Arduino В 2016-м на Хабре привлёк много внимания пост Алексея Лавренюка «Измеряем потребление батарейки на мобильных устройствах. Эксперимент в Яндексе». Годом позже на нашей конференции Heisenbug Алексей вместе с коллегой Тимуром Торубаровым представил доклад «Тестирование телефоно...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Будущее Nintendo находится в руках «нетрадиционного коллективного руководства» На прошлой неделе мы рассказали о том, что нынешний президент Nintendo Тацуми Кимисима (Tatsumi Kimishima) уйдёт в отставку в июне этого года. Сегодня речь пойдёт о новой главе компании, Сюнтаро Фурукаве (Shuntaro Furukawa). Он и инвесторы обсуждали, как Nintendo вы...

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

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

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

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

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

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

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

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

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

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

Белый и черный OnePlus 6 на «живых» снимках Китайский бренд OnePlus скоро разродится свой очередной топовой моделью. Она получила ожидаемый порядковый номер «6» и будет работать на аппаратной платформе Snapdragon 845. Глобальный анонс состоится 16 мая и уже практически нет того, чтобы мы не знали о новинке...

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

Аутентификации на Angular и Spring без Spring Security (клиент на Angular) Часть 1. Клиент на Angular О чем эта статья В этой статье, я расскажу как написать простую аутентификацию без помощи готовых решений для данной задачи. Она может быть полезна для новичков, которые хотят написать своё AAA (Authentication, Authorization, and Accounting). Репоз...

Аутентификации на Angular и Spring без Spring Security (сервер на Spring) Часть 2. Сервер на Spring О чем эта статья В этой статье, я расскажу как написать простую аутентификацию без помощи готовых решений для данной задачи. Она может быть полезна для новичков, которые хотят написать своё AAA (Authentication, Authorization, and Accounting). Репози...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Snip Insights поможет извлечь полезную информацию из скриншотов Подразделение Microsoft Garage, занимающееся различными экспериментами, разработало ряд интересных приложений и инструментов. Одна из последних разработок — проект Snip Insights, который позволяет извлечь полезную информацию со скриншотов экрана. Snip Insights разрабатывалс...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Marzipan – проект Apple для кроссплатформенной разработки В декабре прошлого года известный журналист Марк Гурман из Bloomberg сообщил о существовании проекта Marzipan, который разрабатывается Apple. Цель проекта – предоставить разработчикам возможность создавать кроссплатформенные приложения для Mac и iOS. В январе Гурман со...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ускорение Angular-приложений Многие знают Минко Гечева (rhyme.com) по книге «Switching to Angular» и по тексту «Angular Performance-Checklist», помогающему Angular-разработчикам оптимизировать свои проекты. На нашей декабрьской конференции HolyJS 2017 Moscow он тоже развивал тему Angular-производительно...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Хранение данных на Виниле В 2016-м я выступил на Highload с докладом про Vinyl, движок для хранения данных на диске в Tarantool. С тех пор мы добавили много новых возможностей, но хранение данных на диске — такая объемная тема, что основы, о которых идет речь в этой статье, совсем не изменились. ...

Хранение данных на Виниле В 2016-м я выступил на Highload с докладом про Vinyl, движок для хранения данных на диске в Tarantool. С тех пор мы добавили много новых возможностей, но хранение данных на диске — такая объемная тема, что основы, о которых идет речь в этой статье, совсем не изменились. ...

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

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

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

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

Официально анонсирована разработка 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», —...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DevConf: перспективные базы данных для highload DevConf 2018 уже на следующей неделе! В прошлом году Юрий Насретдинов провел интересный обзор перспективных систем хранения данных для highload. Видео с докладом доступно на странице доклада. А для хабра-читателей предлагаю краткий пересказ. В начале расскажу как нужно под...

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

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

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

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

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

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

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

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

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

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

Как увеличить доход до 50% от рекомендуемого контента Google Adsense — 1 простая настройка Сегодня небольшая, но от этого не менее полезная статья. Помните, я рассказывал про то, как с помощью рекомендуемого контента Google Adsense у меня получилось увеличить доход от рекламы на 21-52%? Сейчас напишу как можно поднять и эти цифры. Но сначала анонс эксперимента, п...

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

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

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

[Из песочницы] Распространение программ на Go. Часть 1 Недавно прочел достаточно неплохую статью о инсталяции программ на Go. Где был показан простой пример того как можно реализовать установку бинарника под «любую» (unix friendly) операционную систему. Решил написать более подробный цикл статей на эту тему. Читать дальше →

Microsoft выпустила приложение FontMaker Компания Microsoft разрабатывает новое приложение под названием FontMaker, с помощью которого пользователи могут создать свой собственный шрифт. Приложение будет работать на Windows 10 Fall Creators Update или более новой версии, но для его работы требуется наличие устройст...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Несколько часов до начала конференции разработчиков Microsoft Build 2018 До начала ежегодной конференции разработчиков Microsoft Build 2018 остаётся чуть более 4 часов. В ходе мероприятия компания расскажет о своих планах на будущее, о дальнейшем развитии Windows 10 и UWP, о работе над новыми функциями и Fluent Design. Безусловно, речь пойдёт и ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Есть работа в RnD, или как уйти от монотонных и мелких задач Недавно мы решили выделить RnD-активности Nexign (ранее «Петер-Сервис») в отдельное подразделение, распределенное по трем городам России — Москве, Санкт-Петербургу и Новосибирску. С тех пор мы активно ищем для него новых профессионалов, которые будут определять облик наших о...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[Перевод] 8088 MPH: мы сломаем все ваши эмуляторы Одним из пунктов списка моих желаний после прочтения первого отчета с пати в 1991 году стало посещение европейской демопати и участие в соревнованиях compo. Я участвовал в NAID ’96 и даже занял там место, но моей мечтой всегда было соревноваться с лучшими из лучших. Я рад о...

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

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

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

Java и Project Reactor. Эпизод 2 Привет! Удивительно, но первая часть статьи даже кому-то понравилась. Отдельное спасибо за ваши отзывы и комментарии. У меня для вас плохая хорошая новость: нам ещё есть о чём поговорить! А если точнее, то о некоторых деталях работы Reactor. Читать дальше →

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

[Перевод] 8 этапов процесса разработки интерфейса мобильного приложения От переводчика: Роман Гапонов — сооснователь компании Django Stars, которая занимается разработкой веб- и мобильных приложений. Основываясь на личном опыте и опыте своей компании, Роман написал статью о процессе разработки пользовательского интерфейса. Изначально она была...

CloudFlare реализовала поддержку Encrypted SNI 24 сентября CloudFlare объявили о поддержке расширения TLS 1.3 Encrypted SNI. Преимущества ESNI Никто не видит на какой домен вы заходите. Все что знает провайдер это только IP адрес на который вы обращаетесь. Domain Fronting не нужен. Как ESNI работает В современном ...

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

Flynx — Read the web smartly 2.1.2 Flynx позволит вам открыть ссылки в фоне, сообщив на плавающей иконке процесс загрузки страницы, тем самым, вам не нужно будет закрывать приложение содержащее ссылку. Просто нажмите на ссылку в любом приложении и страница откроется в фоне, а плавающая иконка покажет прогресс...

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

Особые исключения в .NET и как их готовить У разных исключений в .NET есть свои особенности, и знать их бывает очень полезно. Как обмануть CLR? Как остаться в живых в рантайме, поймав StackOverflowException? Какие исключения перехватить вроде бы нельзя, но если очень хочется, то можно? Под катом расшифровка доклад...

PICASO 3D: заключительный аккорд На самом деле этой статьи уже не должно было быть. Но поскольку текст был написан раньше, то пусть тоже пойдёт к публикации. Сейчас поскольку принтер PICASO DESIGNER X PRO уже продан и деньги получены в общем-то глупо что-то писать про взаимоотношения с PICASO 3D (ООО “Пикас...

FontCode: новый способ стеганографии через форму букв Рис. 1. Незначительное изменение глифа (формы конкретной литеры) кодирует цифровую информацию за счёт двухмерной матрицы вариантов начертания. Каждая точка в двухмерной координатной сетке генерирует соответствующий уникальный глиф Специалисты по стеганографии придумали но...

C DevTools на Эльбрус: яркие доклады HolyJS 2018 Piter Отдышавшись после петербургской HolyJS, мы прочитали все зрительские отзывы — и узнали, какие доклады понравились зрителям сильнее всего. А благодаря тому, что во время конференции шла YouTube-трансляция первого зала, часть этих «фаворитов» уже доступна для всех. Поэтому ...

Умер российский писатель Владимир Войнович Прозаику было 85 лет. Причиной скоропостижного ухода из жизни Владимира Николаевича стал сердечный приступ. Российского писателя и поэта Владимира Николаевича Войновича не стало в ночь на 28 июля. Об этом сообщили близкие и друзья прозаика. На странице в соцсети Юлия Пессин...

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

PHP-Дайджест № 141 (1 – 15 октября 2018) Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0RC3, CodeIgniter 4.0.0 alpha1 и другие релизы, 62% сайтов работает на PHP 5, видеозаписи докладов с конференций и митапов, порция полезных инструментов, и многое другое. Приятного чтения! Читать дальше ...

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

Собираем Qt 5.6 (MSVC) с OpenSSL и поддержкой Windows XP В один прекрасный вечер, понадобилось мне написать небольшое приложение, требования к которому, на первый взгляд, выглядели не такими уж и сложными: работа с кое-какими железяками; наличие GUI; умение работать в Windows XP и выше (не спрашивайте, зачем); один исполняемый фа...

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

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

Круглый стол «Архитектор ИТ проекта», сентябрь 2018 5 сентября в Москве состоялся Круглый стол «Архитектор ИТ проекта» в ВШЭ. Организатор круглого стола, Максим Смирнов, ведет блог про архитектуру и канал на Facebook. Я очень рада, что такие события проводятся. Стать классным архитектором было и остается моей мечтой. Мне оч...

[Перевод] Проблема Небраски Кейси Муратори — один из программистов игры The Witness. В процессе разработки игры он публиковал в своём блоге посты о технических задачах, которые перед ним вставали. Ниже представлен перевод одного из таких постов. На протяжении всей моей карьеры программиста неизменным...

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

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

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

Есть ли жизнь без архитектуры? Основная часть кода большинства современных приложений наверняка была написана ещё во времена Android 4.0. Приложения пережили время ContentProvider, RoboSpice, различных библиотек и архитектурных подходов. Поэтому очень важно иметь архитектуру, которая будет оставаться гиб...

[Перевод] Bungie, Naughty Dog, Sony Santa Monica и Blizzard обсуждают проблему кранчей Должностные лица из четырёх крупнейших мировых компаний-разработчиков — Bungie, Naughty Dog, Sony Santa Monica и Blizzard — обсудили подход своих студий к проблеме кранчей. Если вы не знаете, то кранчами называются внеурочная работа студий, стремящихся успеть к серьёзному д...

Facebook взламают завтра в 13:00 Социальная сеть Facebook является самой популярной в мире. Еще в начале предыдущего года пользовательская база одного только приложения Facebook Lite (созданного специально для слабых/устаревших устройств) превысила 200 миллионов человек. В том же 2017 году Facebook опублико...

[Перевод] Пишем техническую документацию: руководство для непрофессионала Осенью 2016 года нам с коллегой поручили улучшить документацию и контент в моей бывшей компании. Мы потратили год на все виды документации: справочник по API, руководства, учебные пособия, сообщения в блогах. До этого я 5 лет писала доки, но официально не обучалась этому. ...

Песочница и шпаргалка по изучению Python Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично лег...

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

[Перевод] Реализация навигации в Android приложениях с помощью Navigation Architecture Component От переводчика Здравствуйте, хабрчане. Это перевод статьи-документации к новой технологии Navigation для Android-разработчиков. Технология сейчас находится в стадии разработки, но уже доступна для использования и очень даже работает в превью версии Android Studio 3.2 и выше...

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

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

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

[Из песочницы] Подключение КриптоПро в Mono В связи с переходом на Linux возникла необходимость переноса одной из наших серверных систем написанной на C# в Mono. Система работает с усиленными ЭЦП, поэтому одной из поставленных перед нами задач была проверка работоспособности ГОСТовых сертификатов от КриптоПро в mono. ...

[Перевод] Git: исправление ошибок и наведение порядка в коммитах Ошибка в коммите… Как её исправить? Беспорядок в истории коммитов… Как привести всё в пристойный вид? Автор статьи, перевод которой мы публикуем сегодня, говорит, что она написана специально для тех, кто задавался такими вопросами. По его словам, изучив методики работы с Git...

[Перевод] Символы, генераторы, async/await и асинхронные итераторы в JavaScript: их сущность, взаимосвязь и варианты использования Сущность и предназначение множества возможностей JavaScript вполне очевидны. А вот некоторые, вроде генераторов, могут, на первый взгляд, показаться странными. Такое же впечатление способны вызвать и, скажем, символы, которые похожи и на значения примитивных типов, и на объе...

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

[Перевод] Chrome тестирует Picture-in-Picture API для всплывающих видео вне браузера Производители браузеров работают над W3C API, которое утвердит Picture-in-Picture (PiP) режим и позволит сайтам показывать всплывающие видео вне окна браузера. В прошлом, PiP поддерживался только внутри канваса как всплывающее окно, которое появляется только в активной вкл...

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

[Перевод] Как SSH появился на 22 порту SSH по умолчанию работает на порту 22. Это не совпадение. Вот история, как ему достался этот порт. Когда я (Тату Илонен) впервые опубликовал эту историю в апреле 2017 года, она стала вирусной: её прочитали около 120 000 читателей за три дня. История получения порта 22 для ...

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

Lead Dev New York: обзор докладов и отзыв о конференции Привет, Хабр! Я Николай Крапивный, руководитель отдела server-side-разработки в Badoo. Недавно мы дружной командой ездили на конференцию Lead Dev в Нью-Йорк, посвящённую управлению разработкой. Среди спикеров были представители Google, IBM, Slack и других компаний. По с...

[Перевод] 4 года Data Science в Schibsted Media Group В 2014-м году я присоединился к небольшой команде в Schibsted Media Group в качестве 6-го специалиста по Data Science в этой компании. С тех пор я поработал над многими начинаниями в области Data Science в организации, в которой теперь таких уже 40 с лишним человек. В этом ...

В Microsoft SharePoint добавлена возможность совместной работы в смешанной реальности Виртуальные среды Microsoft SharePoint Spaces позволят просто и быстро создавать видео в формате 360° и пространства смешанной реальности на основе имеющихся шаблонов с возможностью интуитивно добавлять 3D-объекты, документы и другие необходимые элементы. Поддерживается ...

Робот начал писать тексты для интернет-магазинов Нейросеть, которую создали в подразделении цифрового маркетинга Alibaba Alimama, доступна продавцам на площадках Tmall, Taobao и др. Чтобы заново не придумывать описание для нового продукта, можно скопировать для ссылку на похожий товар (необходимо нажать на кнопку Produce S...

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

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

Android Jetpack: превращаем приложения в ракеты Война… Война никогда не меняется. Так, война за красивый и работающий код идет постоянно. И на каждую сложную задачу рождается свое оружие: кто-то делает его под себя, а кто-то пользуется готовыми инструментами. Разработка под Android не исключение. На нашей конференции Apps...

Рынок труда в Java-разработке — что мы знаем о нём, что он знает о нас Прошлые статьи с цифрами нашли положительный отклик среди читателей, поэтому — на этот раз нечто совершенно иное — ещё один статистический сборник: рынок труда в Java, цифры из вакансий, резюме и заработные платы. Сам наш hh.ru в большей части написан на ней — уже ~15 лет мы...

Анимации в Android на базе Kotlin и RxJava Привет, Хабр! В прошлом году на MBLT DEV выступал Ivan Škorić из PSPDFKit c докладом о создании анимаций в Android на базе Kotlin и библиотеки RxJava. Приёмы из доклада я сейчас использую в работе над своим проектом, они здорово помогают. Под катом — расшифровка доклада ...

[Из песочницы] Быстрый Sin и Cos на встроенном ASM для Delphi Всем привет! Возникла потребность написать быстрое вычисление Sin и Cos. За основу для вычислений взял разложение по ряду Тейлора. Использую в 3D-системах (OpenGL и графическая библиотека своей разработки). К сожалению свести ряд «идеально» для Double не получается, но это ...

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

Фонд госимущества открыл данные из Единой базы отчетов Отныне данные из базы открыты для всех желающих. Открытость Единой базы прописана в статье 172 Налогового Кодекса Украины, и эта норма важна для того, чтобы оценочное сообщество могло за счет публичности отчетов об оценке “самоочищаться”. Если кто-то будет пытать...

[Перевод] Директивы prefetch и preload в webpack В webpack 4.6.0. появилась поддержка директив prefetch и preload (они выглядят, соответственно, как «магические комментарии» webpackPrefetch и webpackPreload к командам import()). С их помощью браузеру можно давать подсказки о ресурсах, которые могут понадобиться пользовател...

Подключение OpenSSL в Mono В предыдущей статье был описан процесс интеграции ГОСТовых сертификатов КриптоПро с mono. В этой же подробно остановимся на подключении RSA сертификатов. Мы продолжали переносить одну из наших серверных систем написанных на C# в Linux, и очередь дошла до части связанной с RS...

Как декларативно описать коллапсирующий Toolbar Хочу представить решение того, как можно описать CollapsingToolbar, с акцентом на читаемости кода. В статье не будет объясняться, что такое и как написать свой CoordinatorLayout.Behavior. Если читателю интересно в этом разобраться, есть много статей, в том числе на хабре. ...

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

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

[Перевод] Создание эмулятора аркадного автомата. Часть 1 Написание эмулятора аркадного автомата — это замечательный учебный проект, и в этом туториале мы очень подробно рассмотрим весь процесс разработки. Хотите по-настоящему разобраться в работе процессора? Тогда создание эмулятора — наилучший способ его изучения. Вам потребует...

A1: 2017 – Injections (Часть 3 и последняя) В моей любимой компьютерной игре Quest for Glory 2: Trial by Fire, когда мир в очередной раз оказывается в опасности, главный герой попадает в Университет волшебников. После успешного прохождения вступительных испытаний бородатые мудрые волшебники предлагают поступить в этот...

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

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

[Перевод] Что нового в первой CTP редакции SQL Server 2019 24 сентября была представлена первая редакция CTP выпуска SQL Server 2019, и, позвольте сказать, что он переполнен всевозможными улучшениями и новыми возможностями (многие из которых можно найти в форме предварительного просмотра в базе данных SQL Azure). У меня была исключи...

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

Xiaomi Mi Max 3 появился на официальных рендерах от руководства Xiaomi Президент Xiaomi Лин Бин (Lin Bin) избавил нас от сомнительного удовольствия гадать, насколько точно предыдущие утечки передают дизайн пока не анонсированного китайцами планшетофона Xiaomi Mi Max 3, и собственноручно опубликовал официальные рендеры этого устройства. Подробне...

Разбор таска по верстке (sass, pug, gulp, bem) Для Junior’ов, для junior’ов… а то начнут тут… да мы, да это… Доделал проект(сайт) pug+sass+es6+gulp+BEM. Во время разработки столкнулся со многими трудностями. Эта статья рассчитана на новичков, на тех, кто не знает об отрицательных маржинах, слышали о методологии именован...

«Хочу уйти с завода в веб» — 10 вопросов программисту, 8 выпуск Помните, три года назад один парень написал сверхпопулярную статью, как он от скуки делал игры в армии. Это Анатолий (oWart), выпускник НИУ «МЭИ». Сейчас ему 27, он живет в Смоленске, работает инженером-конструктором, растит двухлетнюю дочку. В новом выпуске 10 вопросов пр...

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

[Перевод] Как восстанавливали видео для Full Throttle Remastered. Часть 2 В моём предыдущем посте я рассказал, как мы извлекали контент из исходных FMV-файлов и создали инструменты для анализа примерно 67 ГБ архивов в поисках промежуточных составляющих частей, использованных для создания FMV. Эти части являются базисом для создания remastered-кон...

GUI на Golang: GTK+ 3 Решил я написать одно кроссплатформенное десктопное приложение на Go. Сделал CLI-версию, всё работает отлично. Да ещё и кросскомпиляция в Go поддерживается. Всё в общем отлично. Но понадобилась также и GUI-версия. И тут началось... Читать дальше →

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