Как стать автором
Обновить
223
Карма
0
Рейтинг

Web engineer

Текст, которого нет

Информационная безопасность *Ненормальное программирование *Brainfuck *

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


invisible symbols in diff

Но есть нюанс
Всего голосов 72: ↑70 и ↓2 +68
Просмотры 75K
Комментарии 42

64-битная арифметика в браузере и WebAssembly

Разработка веб-сайтов *JavaScript *Компиляторы *Браузеры WebAssembly *

WebAssembly активно разрабатывается и уже достиг состояния, когда собранный модуль можно попробовать в Chrome Canary и Firefox Nightly, включив флажок в настройках.


Сравним производительность арифметических вычислений с 64-битными числами в WebAssembly, asm.js, PNaCl и native-коде. Посмотрим на инструменты, которые есть для WebAssembly сейчас, и заглянем в недалёкое будущее.

Читать дальше →
Всего голосов 56: ↑56 и ↓0 +56
Просмотры 16K
Комментарии 11

Репликация без конфликтов: CRDT в теории и на практике

Программирование *Алгоритмы *Математика *Распределённые системы *
В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT).

Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 31K
Комментарии 12

Как я делал веб-версию KeePass

Информационная безопасность *Разработка веб-сайтов *JavaScript *Программирование *HTML *
Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам.



Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения
Читать дальше →
Всего голосов 134: ↑133 и ↓1 +132
Просмотры 77K
Комментарии 162

Worker-ы и shared worker-ы

Разработка веб-сайтов *JavaScript *
Во всех популярных языках есть потоки (threads). В браузерном javascript для параллельной обработки используются worker-ы.
Под катом рассказ о том, как ими пользоваться, какие ограничения есть в воркерах и об особенностях взаимодействия с ними в разных браузерах.

Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры 48K
Комментарии 5

Node-Webkit без вебкита

JavaScript *Node.JS *
Как-то мы обсуждали десктопные приложения nw.js. Всё хорошо, но необходимость распространять весь движок браузера (который с течением времени и добавлением новых фич меньше не становится и сейчас весит сжатый 30МБ) — удручает.
А что если сделать модуль для node.js, умеющий показывать UI в системном браузере?
Под катом расскажу о попытке — как оно, стоит ли усилий, можно ли использовать, и что в результате получилось.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 16K
Комментарии 16

Поле с паролем

Разработка веб-сайтов *JavaScript *
Поля для ввода паролей в браузере встречаются в разных случаях:
  • при регистрации;
  • на форме логина;
  • пароль для чего-то абстрактного.
Каждый раз всплывают одни и те же проблемы и возникает необходимость в одинаковых шаблонных фичах. Чтобы облегчить эту рутинную задачу, я сделал js-библиотеку, которую можно конфигурировать под разные случаи — о ней и будет этот пост.
Что из этого получилось
Всего голосов 135: ↑125 и ↓10 +115
Просмотры 119K
Комментарии 78

Jot Touch − стилус для iPad

Гаджеты IT-компании


— Who wants a stylus?
— I do!

Компания adonit не так давно обновила линейку стилусов для iPad новым Jot Touch — стилусом, чувствительным к нажатию.

Читать дальше →
Всего голосов 48: ↑38 и ↓10 +28
Просмотры 105K
Комментарии 43

Радио в виде Лондонского метро

Производство и разработка электроники *Компьютерное железо
Перевод
Японский дизайнер Yuri Suzuki сделал работоспособное радио в виде схемы Лондонского метрополитена:


Читать дальше →
Всего голосов 84: ↑83 и ↓1 +82
Просмотры 24K
Комментарии 43

Как работает Lytro, или ещё один обзор

Обработка изображений *

Lytro – пленоптическая камера, не требующая фокусировки, выпускаемая компанией Lytro (стартап Ren Ng – выпускника Стенфорда). Камера работает методом световых полей, о принципе работы которых я и постараюсь рассказать (под катом трафик!).
Читать дальше →
Всего голосов 136: ↑133 и ↓3 +130
Просмотры 60K
Комментарии 58

Глубина резкости в компьютерной графике

Работа с 3D-графикой *
Перевод
DoFВ отличии от человеческого глаза, компьютер рендерит всю сцену в фокусе. И камера, и глаз же имеют ограниченную глубину резкости вследствие конечного диаметра апертуры зрачка или объектива. Для достижения большего фотореализма рекомендуется использовать эффект глубины резкости в изображениях, получаемых на компьютере. Кроме того, управление глубиной резкости помогает раскрыть художественный замысел автора, выделив важный по смыслу объект.
До сих пор задача изображения реалистичной глубины резкости в компьютерной графике полностью не решена. Существует множество решений, обладающих плюсами и минусами, применимых в разных случаях. Мы рассмотрим самые популярные на сегодняшний момент.
Читать дальше →
Всего голосов 156: ↑152 и ↓4 +148
Просмотры 29K
Комментарии 38

Обрабатываем картинки средствами Photoshop и ExtendScript Toolkit

IT-компании
Часто нам бывает надо сделать что-то с пачкой картинок. Есть несколько способов добиться этого:
  • используя ImageMagick – очень удобная консольная утилита, много чего умеющая
  • на The GIMP – там есть Scheme (диалект lisp-а) и Python
  • штатными средствами: PHP+gd / Powershell+System.Drawing / Python + PIL
  • в photoshop-е на JScript, VBScript или AppleScript
Плюсы минусы последнего способа рассмотрим под катом. В качестве бонуса посмотрим на недокументированное API Photoshop-а.
Читать дальше →
Всего голосов 42: ↑34 и ↓8 +26
Просмотры 40K
Комментарии 36

Генерируем OfficeOpenXML-документы за 5 минут

.NET *
Часто надо бывает из приложения на ASP.NET сгенерировать отчёт на сервере в OpenXML-формате.

Есть несколько привычных способов сделать это:
  1. «Нашёл, слинковал, заюзал» – идём в Гугл, ищем библиотеку для генерации docx или xlsx, подключаем, разбираемся, генерируем. Это привычно, но долго.
  2. «Фу» – использовать COM. Это не рекомендуется, требует установленного Microsoft Office на сервере, не очень thread-safe, с x64 не дружит и вообще старомодно.
  3. «Ъ» – разобраться с форматом, собрать из XML и зазипать. Брутально.
  4. «Microsoft way» – об этом способе рассказывается под катом.

Читать дальше →
Всего голосов 71: ↑63 и ↓8 +55
Просмотры 71K
Комментарии 31

Правильное логгирование в Microsoft .NET Framework

.NET *

Зачем нужны логи


Очевидно, что логи делаются для разработчиков, чтобы облегчить им (нам) жизнь. Основные цели, ради которых существуют логи:
  • сказать, что же делает система прямо сейчас, не прибегая к помощи отладчика, т.к. это иногда не оправдано;
  • провести «расследование» обстоятельств, которые привели к определённому состоянию системы (например, падению или багу);
  • проанализировать, на что тратится больше времени/ресурсов, т.е. профилирование.

Примитивный подход


Казалось бы, всё просто:
public static void Log(string message) {
 File.AppendAllText("log.txt", message);
}

Зачем что-то ещё придумывать, подключать внешние библиотеки, настраивать конфиги?
На практике, оказывается, что всё не так: одного лог-файла становится уже недостаточно, возникают проблемы с многопоточностью, форматом логов, записью времени, производительностью итд.
Какие же фичи должен поддерживать хороший логгер?
Читать дальше →
Всего голосов 100: ↑77 и ↓23 +54
Просмотры 104K
Комментарии 40

Обзор обфускаторов для .NET

.NET *
Смею полагать, %username%, что ты знаешь, что такое обфускация, зачем она нужна в мире .NET и чём отличие control flow-обфускации от шифрования MSIL-кода.
Предполагается также, что ты видел .NET Reflector и знаком с каким-либо символьным отладчиком, я приведу примеры на WinDbg.

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

Общие выводы и рассуждения

  • Бесплатные обфускаторы весьма слабые и пригодны только для простого переименования. О control flow знают из них лишь немногие;
  • Существуют весьма неплохие решения (control flow, MSIL encryption) стоимостью до $500;
  • Взрослые решения стоят около 5000, но к сожалению, для многих из них есть распаковщики. Некоторые из них крякнуты.
    Крякнули обфускатор — значит поняли его систему защиты. На помойку такой обфускатор.
  • Есть решения «против быдлохакеров» — сборка шифруется полностью и расшифровывается на лету. Взломать символьным отладчиком такую сборку проще простого.


Под катом подробнее о каждом.
Читать дальше →
Всего голосов 83: ↑65 и ↓18 +47
Просмотры 93K
Комментарии 72

Информация

В рейтинге
Не участвует
Откуда
Amsterdam, Noord-Holland, Нидерланды
Зарегистрирован
Активность