Pull to refresh

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

Development for Windows *

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



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



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


Читать дальше →
Total votes 97: ↑86 and ↓11 +75
Views 472
Comments 147

zoclock 1.2.0

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

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

Lumber room
Сегодня возникла необходимость узнать смещение по вертикали панели задач 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
Total votes 7: ↑5 and ↓2 +3
Views 525
Comments 5

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

Lumber room
image

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

посмотреть как оно работает
Total votes 41: ↑38 and ↓3 +35
Views 533
Comments 9

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

Adobe Flash
Translation

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


Чаще всего 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();

Читать дальше →
Total votes 44: ↑34 and ↓10 +24
Views 4.8K
Comments 10

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

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

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

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

Читать дальше →
Total votes 100: ↑100 and ↓0 +100
Views 54K
Comments 39

Binary serialization in Unity3d

Game development *C# *Unity3D *
Sandbox
Столкнулся с довольно-таки тривиальной проблемой. Сериализовать и десерилизовать данные.

Задача

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

Решение

Protobuf

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

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

Ростелеком-Солар corporate blog Development for iOS *Objective C *Reverse engineering *
Tutorial

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


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




Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Views 8.6K
Comments 6

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

Ростелеком-Солар corporate blog Development for iOS *Objective C *Reverse engineering *Swift *
Tutorial

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



Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views 5.7K
Comments 2

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

Haskell *

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


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

Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 8.4K
Comments 8

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

DIY
Sandbox

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

Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views 7.4K
Comments 25

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

Open source *Programming *
Sandbox

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


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

Читать дальше →
Total votes 47: ↑7 and ↓40 -33
Views 7.8K
Comments 15

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

Data Mining *Algorithms *Big Data *Mathematics *Open data *

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



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


Рис. 1.

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

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


Рис. 2.

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


Рис. 3.

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

One does not simply calculate the absolute value

Programming *Java *Mathematics *
Translation

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 →
Total votes 11: ↑10 and ↓1 +9
Views 31K
Comments 4

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

Website development *JavaScript *Node.JS *
Translation

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

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

Читать далее
Total votes 10: ↑9 and ↓1 +8
Views 6.4K
Comments 7

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

Timeweb Cloud corporate blog 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))
}
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Views 3.9K
Comments 5