Итак, это свершилось. Кроме iPhone 8, который устарел ровно через полчаса после анонса iPhone 10, Apple обновила свой десктопный и мобильный браузер Safari. Среди прочих улучшений — реализация WebRTC (ходят слухи, что частично позаимствованная у Chromium. «Plan B» на это тоже намекает). Что это значит для разработчиков? Можно звонить через браузер как на десктопе, так и на айфонах. Голосом и видео. Я уже писал про обновленные инструменты разработчика в браузере, а сейчас хочу поделиться, как это все работает в релизе. Мы уже обновили SDK Voximplant, проверили, как Safari звонит в Microsoft Edge, и вот что я хочу рассказать…
Читать полностью »
Рубрика «Программирование» - 477
Safari 11 и WebRTC: подводные камни видеозвонков
2017-09-20 в 9:11, admin, рубрики: javascript, safari, voximplant, WebRTC, Блог компании Voximplant, Программирование, Разработка веб-сайтовGo быстрее Rust, Mail.Ru Group сделала замеры
2017-09-19 в 20:11, admin, рубрики: benchmark, Go, Rust, rust is faster than go, высокая производительность, Программирование, Тестирование веб-сервисовС такой фразой мне кинули ссылку на статью компании Mail.Ru Group от 2015 «Как выбрать язык программирования?». Если кратко, они сравнили производительность Go, Rust, Scala и Node.js. За первое место боролись Go и Rust, но Go победил.
Как написал автор статьи gobwas (здесь и далее орфография сохранена):
Эти тесты показывают, как ведут себя голые серверы, без «прочих нюансов» которые зависят от рук программистов.
К моему большому сожалению, тесты не были эквивалентными, ошибка всего лишь в 1 строчке кода поставила под сомнение объективность и вывод статьи.
Читать полностью »
DevOps с Kubernetes и VSTS. Часть 2: Облачная история
2017-09-19 в 14:58, admin, рубрики: acs, devops, k8s, kubectl, kubernetes, microsoft, Microsoft Azure, Visual Studio, VSTS, Блог компании Microsoft, ПрограммированиеПродолжение истории про Kubernetes, контейнеры и организацию CI/CD пайплайна. Наконец-то появляется облако Azure и Visual Studio Team Services. Интересно, что CI/CD пайплайн VSTS использует для работы с k8s кластером kubectl, поэтому развёртывать приложение можно не только в Azure Container Services, но и в любой другой инстраляции Kubernetes.
Читайте перевод второй части статьи DevOps с Kubernetes и VSTS.
Читать полностью »
Создаём GTK-видеоплеер с использованием Haskell
2017-09-19 в 12:04, admin, рубрики: GTK+, haskell, video player, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, Программирование
Когда мы в последний раз остановились на Movie Monad, мы создали десктопный видео-плеер, использующий все веб-технологии (HTML, CSS, JavaScript и Electron). Фокус был в том, что весь исходный код проекта был написан на Haskell.
Одним из ограничений нашего веб-подхода было то, что размер видео-файла не мог быть слишком большим, в противном случае приложение падало. Чтобы этого избежать, мы внедрили проверку размера файла и предупреждали пользователя о превышении ограничения.
Мы могли бы продолжить развивать наш подход с вебом, настроив бэкенд на стриминг видеофайла в HTML5-сервер, запустив параллельно сервер и Electron-приложение. Вместо этого мы откажемся от веб-технологий и обратимся к GTK+, Gstreamer и системе управления окнами X11.
Nuklear+ — миниатюрный кроссплатформенный GUI
2017-09-18 в 9:47, admin, рубрики: C, glfw, GUI, linux, Nuklear, open source, OpenGL, opengl es 2.0, pure C, sdl, WinAPI, windows, Программирование, Разработка под Linux, разработка под windowsNuklear+ (читается как "Nuklear cross", значит "кроссплатформенный Nuklear") — это надстройка над GUI библиотекой Nuklear, которая позволяет абстрагироваться от драйвера вывода и взаимодействия с операционной системой. Нужно написать один простой код, а он потом уже сможет скомпилироваться под все поддерживаемые платформы.
Я уже писал на хабре статью "Nuklear — идеальный GUI для микро-проектов?". Тогда задача была простой — сделать маленькую кроссплатформенную утилиту с GUI, которая будет примерно одинаково выглядеть в Windows и Linux. Но с тех самых пор меня не отпускал вопрос, а можно ли на Nuklear сделать что-то более-менее сложное? Можно ли целиком на нём сделать какой-нибудь реальный проект, которым будут пользоваться?
OO VS FP
2017-09-18 в 8:02, admin, рубрики: .net, design, patterns, Анализ и проектирование систем, Программирование, функциональное программированиеМой перевод, как и оригинальный доклад вызвали неоднозначную реакцию в комментариях. Поэтому я решил перевести статью-ответ дяди Боба на оригинальный материал.
Множество программистов на протяжении последних лет утверждают, что ООП и ФП — являются взаимоисключающими. С высоты башни из слоновой кости в облаках, ФП-небожители иногда поглядывают вниз на бедных наивных ООП-программистов и снисходят до надменных комментариев. Приверженцы ООП в свою очередь косо смотрят на «функционыльщиков», не понимая, зачем чесать левое ухо правой пяткой.
Эти точки зрения игнорируют саму суть ООП и ФП парадигм. Вставлю свои пять копеек.
Читать полностью »
Тянем ролик с YouTube и раздаем по WebRTC в реалтайме
2017-09-18 в 3:54, admin, рубрики: AAC, broadcasting, ffmpeg, flashphoner, H.264, live, pipe, python, Realtime, rtmp, video player, WebRTC, YouTube, youtube-dl, Блог компании Flashphoner, браузеры, Программирование, Разработка веб-сайтов, Разработка систем связиЗадача следующая. Провести совместный просмотр ролика с YouTube в реальном времени несколькими пользователями. Зрители должны получать видео одновременно, с минимальной задержкой.Читать полностью »
Выращивание искусственного интеллекта на примере простой игры
2017-09-16 в 19:08, admin, рубрики: генетические алгоритмы, искусственный интеллект, логические игры, Программирование, эволюционный алгоритм
В этой статье я поделюсь опытом выращивания простейшего искусственного интеллекта (ИИ) с использованием генетического алгоритма, а также расскажу про минимальный набор команд, необходимый для формирования любого поведения.
Результатом работы стало то, что ИИ, не зная правил, самостоятельно освоил игру крестики-нолики и нашел слабости ботов, которые играли против него. Но начал я с еще более простой задачи.
Читать полностью »
Краткое руководство для новичков, желающих стать комплексными (full stack) веб-разработчиками
2017-09-15 в 14:47, admin, рубрики: Parallels, web, Блог компании Parallels, Программирование, Разработка веб-сайтов
Знание веб-разработки может быть огромным преимуществом. Даже простое понимание основ может оказаться крайне полезным для представителей многих IT-профессий, в том числе основателей стартапов. В этой статье вкратце рассмотрены инструменты и технологии, которыми должен овладеть начинающий комплексный веб-разработчик. Также приведены полезные ресурсы, которые помогут вам быстро начать своё обучение. А если вы просто хотите получить базовое представление о веб-разработке, то достаточно дочитать до главы «Бэкенд-фреймворки».Читать полностью »
Подход к разделению схем (пользователей) при проектировании OLTP баз данных
2017-09-15 в 10:20, admin, рубрики: oracle, PL/SQL, Анализ и проектирование систем, Программирование, проектирование баз данных, СУБДПроблематика и назначение:
Разделение схем в основе своей реализуется для масштабируемости и безопасности:
- Масштабируемость с точки зрения баз данных должна быть такой, чтобы схему можно было вынести в другую базу без ущерба функционалу.
- Безопасность с точки зрения баз данных должна быть такой, чтобы внешние пользователи оперировали только бизнес логикой, к которой раздаются гранты, и не имели доступа к первичным данным.