Как стать автором
Обновить

Точное время 0100 часов 010111 минут

Время на прочтение 3 мин
Количество просмотров 898
Разработка под Windows *

KT102B1_012.png - image uploaded to PicamaticДолго выбирал блог между «Я безумный», «Странные вещи» и «Я пиарюсь»...



Началось всё с того, что мне подарили двоичные часы. Оказалось, что двоичная система не такая уж неудобная.



Под катом вы узнаете, что случилось с моим мозгом («Я безумный»), что я сделал («Странные вещи»), и как такое же заполучить себе («Я пиарюсь»).


Читать дальше →
Всего голосов 97: ↑86 и ↓11 +75
Комментарии 147

zoclock 1.2.0

Время на прочтение 1 мин
Количество просмотров 371
Чулан
Обновился zoclock.
Новшества:
  • Пофиксены опечатки.
  • Всплывающая подсказка изначально имеет системные цвета и шрифт (зависит от вашей системы); потом её конечно можно перенастроить, как и раньше.
  • В подсказке можно включить отображение даты.
  • И, о да! Я собрал таки это дело под Windows :-) Сборка статическая и ооочень тяжёлая (3M в архиве).
Как и ранее есть сорци, и есть два deb-a, собранных под Ubuntu 9 и под Ubuntu 8. Желающие, могут взять исходники из SVN (там те же сорци, плюс файлы для сборки deb-ов).
Версия 1.2.0 представляется мегастабильной. Я зарегился на qt-apps и там народ плюсует ZOClock. В общем, нареканий никаких нет.
Ну больше добавить нечего, если кто-то пропустил момент, когда я обезумел, то может почитать о нём здесь :-)
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 5

Javascript: чтение двоичных данных из реестра

Время на прочтение 1 мин
Количество просмотров 975
Чулан
Сегодня возникла необходимость узнать смещение по вертикали панели задач Windows из HTA приложения используя JavaScript.
Необходимое значение находится в HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0, двоичный параметр Position.

В итоге получился следующий код:
var wsh = new ActiveXObject("WScript.Shell");
var key = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Desktop\\Components\\0\\Position";
var regdata=wsh.RegRead(key)
var retval=parseInt('0x'+regdata.getItem(17).toString(16)+regdata.getItem(16).toString(16));


Все это и много другое в HTA проекте HTAPrEx — HTA Remote Process Explorer
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 5

Деревянный бинарный сумматор

Время на прочтение 1 мин
Количество просмотров 1K
Чулан
image

В этом девайсе в качестве информации используются стеклянные шарики. Разрешение до 6 бит может быть установлено в верхней части сумматора и затем запущено в машину как одно число. С каждым новым запущеным числом машина складывает и сохраняет сумму, предельная сумма — 64

посмотреть как оно работает
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 9

Копирование объектов с помощью ByteArray

Время на прочтение 4 мин
Количество просмотров 4.8K
Adobe Flash
Перевод

Копирование простых объектов


Чаще всего ByteArray используют для копирования объектов. AMF сериализатор и десериализатор (не люблю эти слова, но не нашёл подходящего перевода) доступен через ByteArray API. Для дублирования объектов с помощью ByteArray мы будем использовать методы writeObject и readObject:

// Создаём пустой ByteArray
var stream:ByteArray = new ByteArray();
// Создаём объект
var parameters:Object = { age : 25, name : "Bob" };
// «Переводим» объект в формат AMF и сохраняем его в ByteArray
stream.writeObject( parameters );
// Сбрасываем позицию
stream.position = 0;
// Считываем объект
var objectCopy:Object = stream.readObject();

Читать дальше →
Всего голосов 44: ↑34 и ↓10 +24
Комментарии 10

CBOR — новый бинарный формат представления данных

Время на прочтение 9 мин
Количество просмотров 57K
Open source *IT-стандарты *
Из песочницы
Concise Binary Object Representation (сжатое бинарное представление объекта) — формат данных, который был спроектирован таким образом, чтобы обеспечить максимально простой код реализации, формирования компактных выходных данных и возможность расширения формата без необходимости обмена информацией о версии.

Стандарт формата CBOR был официально анонсирован комитетом IETF в октябре 2013 года в новом документе RFC 7049, авторами которого являются Carsten Bormann и Paul Hoffman. Взглянув на имя первого автора, можно предположить другую причину происхождения аббревиатуры для названия формата, но возможно это просто совпадение. Формат CBOR получил MIME-тип application/cbor.

На данный момент существует, вероятно, сотни всевозможных бинарных форматов для представления структурированных данных, ряд которых стандартизирован, популярен и широко применяется (например, BER и DER для ASN.1, MessagePack и BSON). Все существующие стандарты решают поставленные перед ними задачи, и CBOR здесь не исключение. К формату было предъявлено семь важных требований, и, поскольку ни один из существующих форматов в полной мере не мог им удовлетворить, был создан новый (да, тут напрашивается картинка ).

Читать дальше →
Всего голосов 100: ↑100 и ↓0 +100
Комментарии 39

Binary serialization in Unity3d

Время на прочтение 12 мин
Количество просмотров 22K
Разработка игр *C# *Unity *
Из песочницы
Столкнулся с довольно-таки тривиальной проблемой. Сериализовать и десерилизовать данные.

Задача

Есть приложение, клиент-сервер. Клиент — Unity3d сервер PhotonServer. Есть модель, которая и на клиенте и на сервере должна быть эквивалентной. Требуется синхронизировать состояние модели и, возможно, дополнительные классы.

Решение

Protobuf

Самое логичное решение — это использовать бинарный протокол. В этом явный фаворит — ptotobuf (использовал proto-net 668). Он не поддерживает веб-сборку, но это допустимая жертва. Разметил требуемые классы. Проверяю. Все работает, небольшой размер и быстрый в работе. Шикарно. Но!
Читать дальше →
Всего голосов 26: ↑17 и ↓9 +8
Комментарии 30

Читаем бинарные файлы iOS-приложений

Время на прочтение 7 мин
Количество просмотров 9.2K
Блог компании Ростелеком-Солар Разработка под iOS *Objective C *Реверс-инжиниринг *
Туториал

На хабре есть много статей о том, как работает рантайм Swift/Objective-C, но для еще более полного понимания того, что происходит под капотом, полезно залезть на самый низкий уровень и посмотреть, как код iOS приложений укладывается в бинарные файлы. Кроме того, безусловно, под капот приходится залезать при решении реверс-инжиниринговых задач. В этой статье мы обсудим самые простые конструкции Objective-C, а о Swift и более сложных примерах поговорим в последующих статьях.


В первых двух секциях я постарался максимально подробно осветить практические подробности, чтобы читателю, желающему пройти этот тьюториал, не нужно было каждые две минуты гуглить вещи в стиле "где найти бинарный файл приложения в Xcode". Дальше все максимально информативно.




Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 6

Читаем бинарные файлы iOS-приложений. Часть 2: Swift

Время на прочтение 6 мин
Количество просмотров 6K
Блог компании Ростелеком-Солар Разработка под iOS *Objective C *Реверс-инжиниринг *Swift *
Туториал

Продолжаем серию про чтение бинарных файлов iOS-приложений. Для понимания технических деталей рекомендуется почитать первую часть здесь. В этой статье посмотрим, как укладывается в бинарный файл код на Swift.



Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 2

Как я визуальную новеллу препарировал

Время на прочтение 4 мин
Количество просмотров 10K
Haskell *

Привет, Хабр!


На днях я захотел достать ресурсы одной визуальной новеллы, созданной с помощью Ren'Py (Да, да, того самого "Бесконечного Лета"). Опытным путем было установлено, что все они хранятся в файле archive.rpa. Я нашел готовые скрипты для распаковки на Github, но решил достать их сам, Haskell в помощь...

Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 8

Детская игрушка на логических элементах

Время на прочтение 8 мин
Количество просмотров 7.7K
DIY или Сделай сам
Из песочницы

В этой, с позволения сказать, статье я хочу рассказать о своем первом проекте в электротехнике. Должен заметить, что я по роду деятельности далек от схемотехники и радиоэлектроники, но интерес к этой теме не давал мне покоя с малых лет. Для людей с опытом информация ниже может показаться слишком очевидной, а многое сделанное мной — "изобретением велосипеда". Но возможно какой-нибудь нуб, как и я, сможет открыть для себя что-то новое и интересное. Кому интересно, прошу под кат.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 25

Сказ о курсовой

Время на прочтение 7 мин
Количество просмотров 8K
Open source *Программирование *
Из песочницы

Здравствуйте. Я хочу рассказать о своей курсовой или к чему приводит любопытство.


Давно от нечего делать пишу программки под симбиан. И время от времени сталкивался со странностями при сборке. Все указывало на утилиту elf2e32. Ее задача — преобразование входного бинарного файла формата elf в другой, специфичный для Symbian — e32 image. Меня долго донимало любопытство — как вообще работает эта утилита и почему порой глючит? Немного позже меня начал донимать другой вопрос — тема курсовой работы =) Решил совместить приятное с полезным и скачал ее исходный код. И понеслось...

Читать дальше →
Всего голосов 47: ↑7 и ↓40 -33
Комментарии 15

Треугольник Паскаля vs цепочек типа «000…/111…» в бинарных рядах и нейронных сетях

Время на прочтение 6 мин
Количество просмотров 4.8K
Data Mining *Алгоритмы *Big Data *Математика *Открытые данные *

Серия «Белый шум рисует черный квадрат»



История цикла этих публикаций начинается с того, что в книге Г.Секей «Парадоксы в теории вероятностей и математической статистике» (стр.43), было обнаружено следующее утверждение:


Рис. 1.

По анализу комментарий к первым публикациям (часть 1, часть 2) и последующими рассуждениями созрела идея представить эту теорему в более наглядном виде.

Большинству из участников сообщества знаком треугольник Паскаля, как следствие биноминального распределения вероятностей и многие сопутствующие законы. Для понимания механизма образования треугольника Паскаля развернем его детальнее, с развертыванием потоков его образования. В треугольнике Паскаля узлы формируются по соотношению 0 и 1, рисунок ниже.


Рис. 2.

Для понимания теоремы Эрдёша-Реньи составим аналогичную модель, но узлы будут формироваться из значений, в которых присутствуют наибольшие цепочки, состоящие последовательно из одинаковых значений. Кластеризации будет проводиться по следующему правилу: цепочки 01/10, к кластеру «1»; цепочки 00/11, к кластеру «2»; цепочки 000/111, к кластеру «3» и т.д. При этом разобьём пирамиду на две симметричные составляющие рисунок 3.


Рис. 3.

Первое что бросается в глаза это то, что все перемещения происходят из более низкого кластера в более высокий и наоборот быть не может. Это естественно, так как если цепочка размера j сложилась, то она уже не может исчезнуть.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 5

One does not simply calculate the absolute value

Время на прочтение 4 мин
Количество просмотров 32K
Программирование *Java *Математика *
Перевод

It seems that the problem of calculating the absolute value of a number is completely trivial. If the number is negative, change the sign. Otherwise, just leave it as it is. In Java, it may look something like this:


public static double abs(double value) {
  if (value < 0) {
    return -value;
  }
  return value;
}

It seems to be too easy even for a junior interview question. Are there any pitfalls here?

Read more →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 5

Бинарный протокол для JavaScript

Время на прочтение 6 мин
Количество просмотров 7.5K
Разработка веб-сайтов *JavaScript *Node.JS *
Перевод

Нативная поддержка JSON одно из преимуществ разработки full-stack JavaScript приложений. JSON является простым, не требующим схемы и человекочитаемым - качества особенно ценимые на ранней стадии разработки, когда ваша модель данных подвержена частым изменениям. Однако за все надо платить, а именно размером и скоростью обработки данных.

JSON будучи текстовым форматом кодирует все значения как UTF-8, что приводит к увеличению размера данных при работе с нетекстовыми данными. Отсутствие схемы означает, что мы должны кодировать нашу структуру данных (ключи объекта) вместе с самими данными. Мы также делаем дополнительную работу при обработке данных, поскольку нам необходимо преобразовать бинарные данные в их текстовое представление до превращения в JSON и соответственно наоборот в случае декодирования.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 8

JavaScript: заметка о побитовых операторах и числах с плавающей точкой

Время на прочтение 9 мин
Количество просмотров 7K
Блог компании Timeweb Cloud JavaScript *


Привет, друзья!


В этой небольшой заметке я хочу поговорить с вами о манипулировании битами в JavaScript, а также о двоичном представлении чисел с плавающей точкой (floating point numbers).


Обратите внимание: заметка носит, в основном, теоретический характер и направлена на углубленное изучение JavaScript, поэтому предполагается, что вы имеете некоторый опыт работы с данным языком программирования.


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


Начнем с определения функции для вывода в консоль инструментов разработчика в браузере переданного числа в бинарном формате (для типизации параметров и возвращаемого значения я прибегну к помощи TypeScript):


// https://stackoverflow.com/questions/9939760/how-do-i-convert-an-integer-to-binary-in-javascript
const log = (n: number): void => {
  console.log((n >>> 0).toString(2))
}
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 5

Minecraft protocol VarInt и VarLong. Как из единиц и нулей сделать число на примере Go?

Время на прочтение 7 мин
Количество просмотров 2.5K
Разработка игр *Go *

В этой статье я хочу детально разобрать, как из байтов преобразуются числа в нужные типы данных (VarInt, VarLong). Детально рассмотрим реализацию, примеры и напишем unit-тесты. Вспомним бинарные операции, двоичную и шеснадцатиричную систему счисления.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 0