Foreign Function Interface — это перспективная альтернатива для традиционных PHP-расширений.
Сегодня мы будем разбирать FFI-библиотеку для работы с liblua5 из PHP, которая позволит исполнять скрипты на Lua из нашего приложения.
Foreign Function Interface — это перспективная альтернатива для традиционных PHP-расширений.
Сегодня мы будем разбирать FFI-библиотеку для работы с liblua5 из PHP, которая позволит исполнять скрипты на Lua из нашего приложения.
Наиболее важные и полезные расширения VS Code для Python-разработчиков в нашем новом переводе.
Я пользуюсь PyCharm, и меня всё устраивает. Скорее всего, я не буду менять редактор в ближайшее время. Но вокруг VS Code столько шумихи, столько людей в Reddit и Twitter советовали мне перейти на VS Code, что я просто не мог его не попробовать.
Читать полностью »
Сегодня мы приняли решение отключить расширения SaveFrom.net, Frigate Light, Frigate CDN и некоторые другие, установленные у пользователей Яндекс.Браузера. Совокупная аудитория этих инструментов превышает 8 млн человек.
В этом посте мы расскажем о причинах и поделимся с сообществом результатами анализа деятельности расширений. Вы узнаете про тайное воспроизведение видео из онлайн-кинотеатров с целью накрутки просмотров. Увидите фрагмент кода, содержащий механизм для перехвата токенов социальных сетей. Мы покажем, как организована динамическая загрузка и выполнение произвольного кода без обновления расширений.
В конце октября, после волны статей от хайповых авторов, я написал небольшое расширение для Хрома которое позволяет прятать нежелательные статьи из ленты. Расширение было встречено очень тепло (+285, 53_000 просмотров и 70+ звезд на гитхаб) и я даже опубликовал его в Chrome Extension Store. Потом был опрос о наиболее желаемой следующей фиче и самой востребованной (129 голосов) оказалась поддержка Firefox. И вот, спустя месяц, расширение опубликовано в Firefox Addons.
Кому интересно по каким граблям пришлось потоптаться, прошу под кат!
Эта статья является продолжением статьи из далекого 2014 года. Напомню, о чем шла речь в прошлой статье.
Мы пишем ПО на языке С++, в среде Visual Studio 2015. У нас в проекте, естественно, есть пользовательские типы данных. В качестве примера таких типов могу привести класс MbSolid. Этот класс входит в состав математического ядра C3D и является абстракцией твердого тела. Тело описывается гранями, грани какими-то поверхностями и т.д. Т.е. структура класса довольно сложная, и в процессе отладки собственных алгоритмов хотелось бы визуально прикинуть, какое тело получилось на данный момент.
Читать полностью »
Расширения – это отличный инструмент для добавления новых возможностей в браузер. А еще с их помощью тайно встраивают рекламу, воруют данные, рассылают спам и даже майнят криптовалюты. Сегодня мы поделимся с вами нашим опытом борьбы с подобными расширениями, вы узнаете об основных каналах распространения сомнительных разработок и о способах маскировки вредоносной сущности от модераторов и сканеров.
Яндекс.Браузер изначально поддерживал установку расширений для Chromium, но в первое время индустрия заработка на дополнениях еще только зарождалась, поэтому особых проблем не было. Вредоносные образцы, конечно же, встречались: мы либо сами находили их вручную, либо узнавали о них из обращений в поддержку. Уникальные идентификаторы (ID) таких разработок вносились в черный список на сервере, к которому через API обращался Яндекс.Браузер и блокировал установку потенциально опасных расширений. Причем сами расширения очень редко маскировались: все их возможности почти всегда были явно описаны на HTML и JS без попыток что-либо скрыть. Но потом все изменилось.
Приветствую социум! Проработал 7 лет техническим директором. Понял, насколько это сильно бьет по нервам и решил начать жизнь с чистого листа. Пойти javascript-разработчиком.
Почему: потому что люблю писать на этом языке. Он веселый и может влет решать множество реальных задач. Да, да, веселый, ведь он настолько не типизирован, что объект может иметь свойство в виде самого себя ) Причем при обращении к этому свойству мы реально изменяем сам объект.
primer = {};
primer["svoistvo1"] = "reddis";
primer["svoistvo2"] = primer;
primer["svoistvo2"]["svoistvo2"]["svoistvo2"]["svoistvo2"]["svoistvo1"] = "dadada";
console.log(primer);
Конечно без серверной части тяжеловато. Но современные браузеры легко позволяют хранить данные на клиенте. Для решения узконаправленных задач это самое то.
В это статье я покажу, как можно создать chrome extension.
Читать полностью »
Привет! Существует много оборудования и ПО, которое может заниматься фильтрацией трафика. В моем случае это Mikrotik RB3011UiAS-RM. Задача была следующей: запретить загрузку определенных форматов файлов.
Вроде простая задача, и быстрое гугление привело к решению блокировать соединения через Layer7, ибо Web-Proxy работает только с HTTP. И примеры были, но работать так как надо — не работало.
Читать полностью »
Современные мобильные браузеры, как и их десктопные аналоги, должны позволять пользователям добавлять недостающие возможности с помощью дополнений. Несмотря на отказ команды Chromium от идеи поддержки расширений на Android, наша команда продолжает работать над этой возможностью, и сегодня мы приглашаем сообщество Хабра попробовать первую альфу Яндекс.Браузера, в которую вы уже сможете установить LastPass, Tampermonkey или даже Ghostery.
Первые дополнения появились в Internet Explorer еще в 1999 году и за следующее десятилетие практика открытия доступа к API стала обязательной для любого более-менее популярного браузера. Сейчас многие из нас не представляют себе работу за компьютером без возможности добавить в браузер необходимую функцию собственными руками. А вот с Android пока еще все не так. Несмотря на рост производительности современных мобильных устройств, браузерные расширения на Android – скорее исключение, чем правило.
Недавно мы рассказали про февральские новинки Opera Developer 29, но уже март, поэтому держите — ещё больше и интереснее, чем в прошлый раз (помимо более 150 исправлений и обновлённого Chromium 42):
Теперь вы можете устанавливать расширения не только в виде кнопки на панели после адресной строки, но и на новую боковую панель. То есть, скажем, читать Хабр и поглядывать на Hacker News или в какой-нибудь веб-чат. Новую панель можно открыть из меню или комбинацией клавиш:
Ctrl Shift S
)Cmd Shift S
)