На Хабре есть множество (раз, два, три, четыре) статей про идентификацию и слежку за пользователями при помощи снятия браузерных «отпечатков», но почти ничего про современные методы превозмогания этих коварных атак на нашу приватность в сети. Восполним этот пробел путём описания способа защиты, который реализован в единственном браузере на рынке.
Пользователь
.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла
Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.
Node.js: шаблон сервера для аутентификации и авторизации
Привет, друзья!
На досуге разработал шаблон Node.js-сервера
для аутентификации/авторизации, которым хочу с вами поделиться. Надеюсь, кому-нибудь пригодится.
Обратите внимание: шаблон — это всего лишь хорошая отправная точка, с которой можно начать разработку собственного сервиса. Он не предназначен для использования в продакшне как есть, поскольку настройки, определяющие гибкость его архитектуры и уровень его безопасности, зависят от потребностей конкретного приложения и должны быть реализованы вручную.
Также обратите внимание, что в коде имеется несколько console.log
для облегчения процесса разработки приложения. В продакшне они не нужны. В производственном режиме также не следует возвращать столь информативные message
.
Если возможностей, реализованных в шаблоне, окажется недостаточно, вот парочка более продвинутых инструментов:
oidc-client
— разработчик отказался от дальнейшей поддержки, новый мейнтейнер пока не нашелсяoidc-provider
— рекомендация моих более опытных коллег
Если вас интересует полноценная платформа для аутентификации/авторизации "из коробки", рассмотрите возможность использования Auth0
.
Сервер реализован с помощью Express.js
В качестве базы данных используется MongoDB Atlas
Веб-сервер на старом смартфоне Android
Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.
Попробуем найти этому смартфону полезное применение.
Делаем сервер из Android-телефона
Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.
На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.
Ну и в-четвёртых, мне просто было жаль их выбрасывать. Консьюмеризм в наше время предписывает каждый год-два покупать новые смартфоны, производители блокируют возможности железа, которые им невыгодны, прекращают поддержку старых моделей, оставляя людей беспомощными. Миллионы смартфонов отправляются на свалку истории каждый год, хотя каждый из них это мощный компьютер.
TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.
Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование
Представляю вам цикл статей по созданию собственного шлюза для отправки SMS-сообщений.
В первой части мы определим цели и некоторые аспекты использования своего шлюза, настроим программное обеспечение для отправки SMS с использованием USB-модемов, а также рассмотрим несколько интересных вариантов отправки
Свой веб-сервер на NodeJS, и ни единого фреймворка. Часть 1
Webtor.io и в чем его отличия от обычного сидбокса
Сегодня я вам расскажу вам о сервисе webtor.io для проигрывания торрентов онлайн. О том что он умеет, зачем нужен, а также с какими трудностями пришлось столкнуться в процессе разработки читаем далее...
Пример практического использования модулей
Доброго времени суток, друзья!
ES6-модули, использующие синтаксис «import/export», являются довольно мощным инструментом и достойным конкурентом компонентам популярных фреймворков.
Позвольте мне продемонстрировать это на примере рисования различных фигур на холсте.
Источник вдохновения — этот раздел руководства по JavaScript от MDN.
Вот какой функционал будет реализован в нашем небольшом приложении:
- автоматическое создание холста заданных размеров и его рендеринг на странице
- возможность рисовать на холсте квадраты, круги и треугольники заданного размера и цвета
- разделение кода на модули, содержащие логические части приложения
В процессе создания приложения мы уделим особое внимание дефолтному и именованному экспорту/импорту, а также статическому и динамическому импорту. Большая часть приложения будет написана с использованием синтаксиса классов.
Чему я научился, пока писал свой агрегатор цен на игры
Этот пост не реклама моего проекта, а пример того, что дает человеку pet-project.
Я попробую рассказать, как, будучи тридцатипятилетним java-разработчиком, имеющим обязательства перед женой, маленьким ребенком и работодателем, сумел выделить время на самообразование и интересное хобби. Попутно расскажу, что я приобрел: какие сервисы, языки, фреймворки для себя открыл.
Сам проект представляет собой агрегатор цен online-магазина игр PlayStation Store. На данный момент с его помощью можно посмотреть, как менялась цена на игры в течение последних трех месяцев, увидеть список игр, которые обновили свои ценовые рекорды. В процессе разработки фича подписки на обновления цен.
Если интересно, добро пожаловать под кат.
Хакерский фольклор
У некоторых компьютерных терминов необычное происхождение. Многие слова относятся к давно забытым технологиям. В этой статье мы сдуем пыль времён с некоторых терминов, которыми пользуемся каждый день.
Бо́льшая часть статьи взята из Википедии, но найти пояснения не так-то просто, если не знаешь, что искать.
20 платформ для заработка на тестировании
Много анонимности не бывает — скрываем User-Agent
Скрыть реальный IP — используем разные VPN сервера, отключить львиную долю отслеживающих скриптов — Adblock Plus и Ghostery, убрать Referer — не вопрос, что то ещё забыли… Ах да — User-Agent — своеобразный «отпечаток», по которому (в связке, скажем, с IP) легко идентифицировать пользователя. И с этим надо было что-то делать. Найденные решения лишь статично изменяли значение User-Agent, чего было явно недостаточно. Тогда и было решено написать плагин для скрытия реального User-Agent'a, а если быть точнее — подменять его на рандомный. Или почти рандомный.
Для нетерпеливых сразу: исходники на GitHub и расширение в Google Webstore.
Полная домашняя автоматизация в новостройке
Панель управления квартирой в феврале 2020 года (Home Assistant)
В этой статье расскажу о выборе технологий умного дома, используемых в квартире, а также приведу мои схемы разводки, фотографии всего что было сделано, получившиеся электрические щиты и конфигурации всех устройств, дам ссылку на гитхаб.
Строительство нашего дома в процессе — ноябрь 2016 года
Как конкуренты могут легко заблокировать ваш сайт
Проблема довольно серьезная, так как сейчас почти у каждого пользователя установлен антивирус или файрвол. И блокировка сайта крупным антивирусом, таким как Касперский, может сделать сайт недоступным для большого количества пользователей. Хотелось бы привлечь внимание сообщества к проблеме, так как она открывает огромный простор для грязных методов борьбы с конкурентами.
История видеопроцессоров, часть 4: появление General Purpose GPU
Часть 1: 1976-1995 годы
Часть 2: 3Dfx Voodoo
Часть 3: консолидация рынка, начало эпохи конкуренции Nvidia и ATI
До прихода DirectX 10 не было смысла добавлять в чипы необязательную сложность, расширяя площадь кристалла, что повышало функциональность вершинных шейдеров, а также точность обработки чисел с плавающей запятой для пиксельных шейдеров с 24 до 32 бит для соответствия требованиям операций с вершинами. После появления DX10 вершинные и пиксельные шейдеры сохраняли высокий уровень общей функциональности, поэтому переход к обобщённым шейдерам избавил от большой части ненужного дублирования блоков обработки. Первым GPU, в котором применялась такая архитектура, стал легендарный G80 компании Nvidia.
Благодаря четырём годам разработки и 475 миллионам долларов был изготовлен монстр с 681 миллионом транзисторов и площадью 484 мм², впервые выпущенный на флагманской карте 8800 GTX и на 8800 GTS 640MB 8 ноября 2006 года. Разогнанный GTX под названием 8800 Ultra был вершиной мощи G80; он был выпущен в промежутке времени между двумя менее важными продуктами: 320MB GTS в феврале и GTS 640MB/112 с ограниченным тиражом 19 ноября 2007 года.
GTX, оснащённый новым алгоритмом Coverage Sample anti-aliasing (CSAA), благодаря своей несравненной производительности победил всех конкурентов как с одним, так и с двумя чипами. Несмотря на этот успех, в четвёртом квартале компания потеряла три процента рынка дискретной графики, которые благодаря силе OEM-контрактов перешли к AMD.
Эпигенетические часы старения — а всё-таки, они тикают!…
Что такое эпигенетические часы я когда-то уже писал. Если вкратце, на сегодняшний день это лучший показатель биовозраста, который точнее паспорта отражает, сколько нам осталось жить. Почему эпичасы так важны? Потому что я считаю, что старение — это эпигенетическая программа. Кто-то называет это моё убеждение религиозным. Да без проблем, готов считать этот тезис своим «Символом веры». Ну или «Символом Юры» — верую, что старение есмь эпигенетическая программа и чаю её взлом.
Ведь верую я в это не просто так, а на основании всего уместившегося на сегодняшний день в моей голове массива данных. В котором особое место отведено тем самым эпигенетическим часам метилирования. Особое оно из-за того, что с возрастом у млекопитающих метилирование ДНК не просто стохастически «вымывается», как можно было бы предположить при случайной природе этого процесса, а часто наоборот усиливается, что обычно коррелирует со снижением экспрессии различных нужных генов (нужных, потому что если бы они не были нужными, они были бы выключены изначально, хотя бы после полового созревания, а не плавно выключались по мере старения).
Вообще наблюдения возрастного снижения экспрессии нужных генов всплывают в сфере изучения биологических механизмов старения постоянно. Чуть дальше я вернусь к этой теме и приведу несколько работ, показавших такое снижение у разных видов.
При этом наблюдается и обратный процесс: некоторые совсем ненужные нам гены, такие как вредоносные ретротранспозоны, в раннем возрасте не просто выключены, а находятся за семью печатями, но к определённому моменту печати почему-то распечатываются и эта «пятая колонна» начинает свою активность, подвергая бомбардировке наши гены своими копиями. Это приводит к гиперактивации врождённого иммунитета, то есть к пресловутому «инфламэйджингу» — стерильному возрастному воспалению, — которое поголовно наблюдается у пожилых людей и животных.
Создание пользовательских примитивов в САПР на MultiCAD .NET API
Технология MultiCAD .NET позволяет создавать пользовательские примитивы, не выходя за рамки управляемого кода. Помимо отсутствия промежуточных объектов на C++, в MultiCAD .NET максимально используются стандартные для .NET механизмы, как следствие нет необходимости во многих привычных для САПР программистов операциях: не нужно вручную описывать сериализацию, свойства в инспектор можно вывести без создания COM объекта и т.п.
В качестве демонстрации MultiCAD .NET мы рассмотрим пример приложения CustomObjects, содержащийся в комплекте поставки SDK. Этот пример создает пользовательский примитив, который представляет собой прямоугольную рамку с находящимся внутри текстом:
Чертежи, содержащие наш тестовый примитив, могут быть открыты в любой .dwg совместимой САПР. Для изменения примитива необходимо загрузить сборку, содержащую код примитива, причём во все поддерживаемые САПР платформы загружается одна и та же сборка без перекомпиляции. Технология является родной для nanoCAD, для загрузки модуля в AutoCAD требуется модуль расширения (Object Enabler). Как это работает смотрите под катом.
C# и AutoCAD. Некоторые приемы работы
Цель данной статьи.
Целью данной статьи является рассмотрение некоторых приемов работы в связке Autocad + C#.
В основном буду опираться на статью «Начало работы с Autocad с помощью C#». В рамках данной статьи будут рассмотрены некоторые замечания по особенностям работы с Autocad с помощью SDK — ObjectARX.
Visual Studio hotkeys
Привет, хаброразработчик!
Нет, это не очередной конкурс спали клавиатуру А и получи клавиатуру Г. Сегодня мы поговорим о горячих клавишах в Visual Studio 2008.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность