Обновить
1070.51

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Видеозаписи: февральский TechLeads-митап в офисе Badoo

Время на прочтение2 мин
Просмотры10K

enter image description here


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

Расширения Intel Software Guard Extensions, учебное руководство. Часть 6, две ветви кода

Время на прочтение11 мин
Просмотры9.1K


В шестой части серии учебных материалов, посвященных расширениям Intel Software Guard Extensions (Intel SGX), мы временно откладываем анклав в сторону, чтобы заняться выполнением другого требования, которое мы изложили во второй части (проект приложения): мы посвятим эту серию поддержке двух ветвей кода. Нужно, чтобы наше приложение Tutorial Password Manager работало на ПК как с поддержкой Intel SGX, так и без нее. Большая часть содержимого этого материала взята из статьи Правильное обнаружение расширений Intel Software Guard Extensions в приложениях.

Вместе с этой частью серии предоставляется исходный код.
Читать дальше →

Предварительная программа DUMP готова. Выступят докладчики из Dropbox, JetBrains, Mozilla, Mail.Ru, Яндекса, Rambler&Co

Время на прочтение10 мин
Просмотры7.7K
Привет, Хабр!

14 апреля в Екатеринбурге в седьмой раз пройдёт конференция DUMP. Доклады будут идти в 8 секциях: FrontTalks, Serverside, Mobile, Design, DevOps, Тестирование, Management, Science.

Программа получается отличной: Григорий Бакунов (Яндекс), Леонид Васильев (Dropbox), Никита Прокопов (Cognician), Андрей Акиньшин (JetBrains), Александр Блинов (RedMadRobot), Юрий Ветров (Mail.Ru Group), Денис Кортунов (Acronis), Сергей Рассказов (Школа шрифтового дизайна), Александр Орлов (Стратоплан) — считаем, такое нельзя пропускать. Подробности программы — под катом.

image
Помните эти наклейки? В прошлом году мы придумали их специально для конференции. А еще есть такие же стикеры для телеграма
Читать дальше →

Как делать больше, уставая меньше. Emacs pomidor

Время на прочтение2 мин
Просмотры24K

Вступление


С возрастом моя работоспособность не становится выше. Теперь я не могу сидеть по 6 часов не вставая: спина, шея, глаза — все это начинает рано или поздно болеть.


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

Читать дальше →

Speech AI с Python & Google API

Время на прочтение3 мин
Просмотры68K

Speech AI с Python & Google API


image


Добрый день!


Совсем недавно пришла в голову идея сделать "говорилку" на русском языке. В голове была простенькая схема наподобие:


1) Распознать речь с микрофона
2) Придумать более — менее разумный ответ.
В этом пункте можно сделать много интересного.
Например реализовать управление чем — нибудь физическим и не очень.
3) Преобразовать этот самый ответ в речь и воспроизвести.


Самое интересное, что для всех этих пунктов нашлись библиотеки под Python, чем я и воспользовался.


В итоге получилась связка, практически не зависящая от выбранного в качестве разговорного языка.

Cкринкастинг на сайте по WebRTC из браузера Chrome

Время на прочтение11 мин
Просмотры17K

Cкринкастинг в Chrome


Cкринкастинг (демонстрация экрана, скриншаринг) уже работает в браузере Google Chrome и позволяет захватывать как окно самого браузера, так и окно любого другого приложения. Например можно захватить Firefox, запущенный в соседнем окне.

Все бы замечательно, но есть проблема с безопасностью. В браузере Chrome скринкастинг выключен.

Для его включения необходимо воспользоваться Chrome Desktop Capture API и мы покажем в этой статье как это сделать.

Расширение для скринкастинга


Чтобы скринкастинг заработал, юзер должен установить ваше расширение (Chrome Extension), которое создано специально для вашего сайта (домена).
Читать дальше →

GitHub Pages для сайта на 8 марта

Время на прочтение8 мин
Просмотры34K
Что такое HTML, CSS, JavaScript и Bootstrap фреймворк сложно объяснять человеку который далек от IT. А что если нужен сайт на бесплатном хостинге, без привязки к онлайн конструкту именно этого хостинга?!



Как думаете, реально научить девушку обновлять свой сайт на GitHub Pages к Международному женскому дню?! Расскажу как мне это удалось с помощью генератора сайта, который доступен на Github и написан на Java + FreeMarker, к тому же старался автоматизировать публикацию контента в git репозитарий.

Как вернуться в кодеры, когда за сорок

Время на прочтение3 мин
Просмотры44K

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

Читать дальше →

Запуск WebRTC медиасервера в облаке Amazon EC2 для Live видеотрансляций из браузеров и мобильных приложений

Время на прочтение7 мин
Просмотры11K

AWS Marketplace


Прежде всего хотелось бы сказать несколько слов о маркете Amazon AWS Marketplace. В отличии от Google Play и App Store, где выкладываются мобильные приложения, на AWS разработчики выкладывают серверные приложения. Здесь можно найти много интересного, начиная от бесплатного стека LAMP и заканчивая серверными Enterprise-решениями вроде SAP.

Прелесть работы с маркетом кроется в быстроте и удобстве развертывания. Требуемый сервер приложений, как правило, уже настроен, оптимально сконфигурирован и будет запущен во время запуска самого EC2 инстанса (виртуального сервера Amazon EC2). Запуск инстанса происходит из веб-интерфейса и не требует каких-то дополнительных админских знаний и умений.
Читать дальше →

Красиво «взламываем» ООП с помощью C++14

Время на прочтение6 мин
Просмотры21K

Вступление


Недавно при работе над проектом учебной практики возникла потребность из своего кода порождать произвольный процесс и одновременно читать его stdout и stderr. Так как приложение пишется исключительно для linux, я решил заодно разобраться с epoll. Для запуска процесса на просторах интернета была найдена маленькая библиотека, делающая как раз то, что нужно, да еще и оборачивающая ввод-вывод в привычные потоки из стандартной библиотеки (речь о <iostream>).


Вооружившись несколькими статьями про epoll, я уже было собирался писать код, если бы не одно «но» — для epoll нужен доступ к «сырым» файловым дескрипторам, а автор библиотеки не предоставляет public-доступа к ним. Методы класса, возвращающие дескрипторы, скрыты под грифом «protected».

Что делать?


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

Поэтому в голову пришла безумная третья мысль: почему бы не попытаться как-то красиво «взломать» ООП и «легально» получить доступ к protected-методу без вмешательства в исходный код библиотеки? О том, какие преграды возникли на этом пути и как помог C++14 в их преодолении, и пойдет рассказ в данной публикации.
Читать дальше →

Что общего между Uber, Volkswagen и Zenefits? Все они использовали скрытый код, чтобы обойти закон

Время на прочтение4 мин
Просмотры6.9K
«Ни один этически подготовленный разработчик программного обеспечения никогда не согласился бы написать процедуру DestroyBaghdad. Элементарная профессиональная этика вместо этого потребовала бы, чтобы он написал процедуру DestroyCity, к которой Baghdad был бы задан в качестве параметра» — Натаниэль Боренштейн.



Uber использовал программное обеспечение для незаконной работы в сотнях городов
Два часа назад «The New York Times» поведал миру грандиозную историю о скандале, связанном с Uber. С 2013 года Uber использовал изощренный инструмент для обмана местных правоохранительных органов.
Читать дальше →

Что нового в подходах к автоматизированному тестированию? Выясняем 15 марта в Питере

Время на прочтение2 мин
Просмотры4.3K


На следующей неделе 15 марта в питерском офисе Wrike состоится встреча по автоматизированному тестированию. Встреча будет посвящена обзору новых эффективных подходов и инструментов в сфере автоматизации тестирования. Мы оценим их применимость в тех или иных кейсах, постараемся дать конкретные советы и рекомендации, как они могут быть применимы для ваших конкретных задач. Эксперты с удовольствием ответят на ваши вопросы. Встреча будет интересна как специалистам по автоматическому тестированию, так и разработчикам, пишущим автотесты.
Читать дальше →

Зачем нужен Refresh Token, если есть Access Token?

Время на прочтение4 мин
Просмотры272K
Недавно мы в Voximplant улучшали авторизацию в SDK. Посмотрев на результаты, я несколько опечалился, что вместо простого и понятного токена их стало две штуки: access token и refresh token. Которые мало того что надо регулярно обновлять, так еще документировать и объяснять в обучающих материалах. Помня, что в OAuth два токена нужны в основном из-за разных сервисов, на которых они используются (даже вопрос на stackoverflow есть), а у нас такой сервис один, я несколько офигел и пошел на второй этаж вытрясать души из разработчиков. Ответ получился неожиданным. Его нет на stackoverflow. Зато он есть под катом.
Читать дальше →

Ближайшие события

Программирование SoC Zynq

Время на прочтение3 мин
Просмотры22K
В прошлой публикации я упомянул, что мой SBC для экспериментов пал смертью храбрых. Само собою, встала проблема нового подопытного.

Простой одноплатник мне как-то не хотелось приобретать, поэтому выбор мой пал на SoC'и. Выбирал я между Zynq и Cyclone V. По названию темы, думаю, догадались, что же я решил выбрать.



Данная публикация будет состоять из небольшого обзора платки с заглавной картинки и того, как «программировать» и «конфигурировать» подобное железо. Кому это интересно прошу под кат.
Читать дальше →

Разработка веб-скрапера для извлечения данных с портала открытых данных России data.gov.ru

Время на прочтение7 мин
Просмотры53K
Иногда возникает необходимость получить данные c веб-страниц и сохранить их в структурированном виде.

Инструменты веб-скрапинга (web scraping) разрабатываются для извлечения данных с веб-сайтов. Эти инструменты бывают полезны тем, кто пытается получить данные из Интернета. Веб-скрапинг — это технология, позволяющая получать данные без необходимости открывать множество страниц и заниматься копипастом. Эти инструменты позволяют вручную или автоматически извлекать новые или обновленные данные и сохранять их для последующего использования. Например, с помощью инструментов веб-скрапинга можно извлекать информацию о товарах и ценах из интернет-магазинов.
Читать дальше →

О чём молчат авторы «Hello, World!»-ов

Время на прочтение3 мин
Просмотры34K

image


Обычно адепты нового Того-самого-лучшего-языка пишут свои рекламные мини-программы для обучения и продвижения примерно так:

Читать дальше →

Использование выражений для фильтрации данных из БД

Время на прочтение6 мин
Просмотры27K
Статья основана на ответе в StackOverflow. Начну с описания проблемы, с которой я столкнулся. Есть несколько сущностей в базе данных, которые нужно отображать в виде таблиц на UI. Для доступа к базе данных используется Entity Framework. Для этих таблиц есть фильтры, по полям этих сущностей. Нужно написать код для фильтрации сущностей по параметрам.
Читать дальше →

«Лекарство от болезни»: автоматное программирование

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

Читать дальше →

Поэтический дискурс с привкусом реверс-инжиниринга

Время на прочтение8 мин
Просмотры14K

«Старик Ассемблер нас заметил,
И в гроб сходя, благословил»


image

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

Читать дальше →

Как с помощью maven работать с библиотеками, которых в maven нет

Время на прочтение10 мин
Просмотры92K

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


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


Эта статья для тех, кто только начинает осваивать java.


image


В моей предыдущей статье было сказано, что maven сам скачает все указанные в pom.xml зависимости. А вот что будет, если он какую-нибудь зависимость не найдёт? В таком случае maven скажет, что зависимость не обнаружена и прервёт процесс сборки с ошибкой. Что делать в этом случае?

Читать дальше →

Вклад авторов