Home

Previous 20

Dec. 22nd, 2009

Pyramid Head

Совмещение Yogitype и "электронной бумаги"

Идея устройства клавиатуры Yogitype может быть использована для лучшей формы ноутбука, чем стандатный его вид (экран сверху, клавиатура снизу). Сама реализация Yogitype имеет лишний элемент при слепой десятипальцевой печати - на внутренней части видна та же раскладка, но с надписями.

В рамках проекта с рабочим названием Uniweb есть план использовать в качестве единственного экрана "электронную бумагу". Последняя обычно встречается, как известно, в легковесных мобильных устройствах для чтения книг. Очевидно, что лишь для чтения в дороге форма лэптопа не очень удобна по сравнению с моделью планшета, которую имеют большинство "электронных книг". В связи с этим, возникла мысль о совмещении в одном устройстве и книги с разворотом на две страницы, и обычного компьютера с клавиатурой, пригодной для слепой печати. То есть два EPD (E-Paper Display) - по одному на каждую сторону - и разделенная клавиатура на обратной стороне. Гипотетическое устройство предполагает закрытие, как книги, но стороной с клавиатурой, а не дисплеями. Таким образом, можно было бы использовать его и для чтения, и для работы с переносимой операционной системой (POSIX), например, с выводом на дисплей через PostScript.

При рассмотрении данной задачи всплывает проблема с клавишей-пробелом и клавишами-модификаторами. Во-первых, не совсем ясно, где следует располагать пробельную клавишу, так как она не может находиться в нижнем ряду по физиологическим причинам: предполагается, что пользователь охватывает обеими руками устройство, как книгу. Возможно, что ее место либо на одной стороне с экраном, либо на боковой стороне. Во-вторых, в отличие от обычной клавиатуры, лежащей на горизонтальной поверхности или коленях пользователя, данное устройство не предполагает отрыв рук от домашней позиции, поэтому модификаторные клавиши тоже лишаются стандартного расположения. По-видимому, они могли бы быть сделаны для нажатия большим пальцем, как в клавитуре, описанной [info]ibnteo.

Dec. 18th, 2009

Pyramid Head

Объединение множеств на языке Си

Выбранный ранее метод реализации объединения множеств свободных переменных в контексте системы лямбда-бета-эта с помощью представления их замкнутыми двусвязными списками был описан на языке программирования Си следующим образом:
struct fv *unitefv(struct fv *head, struct fv *tail)
{
	if (!head)
		return tail;

	if (tail) {
		struct fv *prev = head->prev;
		struct fv *next = tail->next;

		if (prev)
			prev->next = next;
		if (next)
			next->prev = prev;

		head->prev = tail;
		tail->next = head;
	}

	return head;
}

Dec. 17th, 2009

Pyramid Head

Объединение множеств свободных переменных

Множество свободных переменных в системе лямбда-бета-эта определяется следующим образом:

FV(x) = {x};
FV(λx.M) = FV(M) ∖ {x};
FV(M N) = FV(M) ∪ FV(N).

Для объединения множеств свободных переменных при реализации на языке программирования Си были выбраны замкнутые двусвязные списки, чтобы воспользоваться подходом, чем-то похожим на один из методов интегрирования по контуру, обеспечив таким образом выполнение операции за время O(1):

Dec. 16th, 2009

Pyramid Head

Обход приведения типов в MLC

При написании синтаксического разбора для MLC с планом реализации модели вычислительной системы, как было описано ранее, принято следующее решение в языке программирования Си с целью избежать использования приведения типов:
struct usage;
struct node;
union cell;

struct usage {
        union cell *parent, *term;
        struct usage *prev, *next;
};

struct node {
        union cell *parent, *func, *arg, *var;
};

union cell {
        struct usage usage;
        struct node node;
};

Dec. 7th, 2009

Pyramid Head

Замена фреймам в Живом Журнале

<lj-embed><object width="500" height="300" data="http://pygx.sourceforge.net/" type="text/html"></object></lj-embed>
Pyramid Head

Chromium OS and Web Console

Chromium OS is known to be an Open Source lightweight fast-booting operating system project which is based on the Linux kernel and the Chromium Web browser to provide user interface in general. The usual desktop applications are supposed to be Web-based ones, mainly provided by Google itself such as Google Documents, Gmail, Picasa, Google Maps, YouTube, etc.

However, there is a question about working with Unix programming environment, say, remotely, when using one of those netbooks aimed to be supported by the Chromium operating system. Since the only application a Chromium user is supposed to work with is the Web browser, one can consider an AJAX application to access remote machines, e.g. via SSH to eventually get access to Unix environment.

There are several AJAX implementations of terminal emulation: for instance, Anyterm, written in C++, AjaxTerm, written in Python, and Shell in a Box, written in C; as well as demos that run GNU nano text editor for each of the mentioned programs. Below is that of AjaxTerm (which is also available in Debian and Ubuntu as `ajaxterm' package):

Nov. 28th, 2009

Pyramid Head

Регистрация письмом на CAPTCHA-адрес

Возникла идея регистрации в Web-системах с помощью отправления письма на адрес, показываемый на изображении CAPTCHA.

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

Также можно использовать адреса типа 53db-c45e-94ca@register.example.com и ограничиваться изображением кода, а не полного адреса.

Nov. 25th, 2009

Pyramid Head

Словари лямбда-выражений

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

Это возможно потому, что коды, полученные в результате сериализации любых двух лямбда-выражений, равных с точностью до альфа-конверсии, совпадают. Таким образом можно получить словари нормальных форм столь скоро, как получен способ приводить любые два экстенсионально равных лямбда-терма к форме, совпадающей с точностью до альфа-конверсии. Система, имеющая такое свойство, обязательно полна как по Тьюрингу, так и по Гильберту-Посту. Такая система может быть реализована, например, как было запланировано ранее.

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

Подобные словари могут быть использованы для некоторых методов вычисления лямбда-выражений, их представления в "человекочитаемом" виде, хранения задач и их решений в базах данных и т.п.
Pyramid Head

Сериализация лямбда-выражений

Известно, что любое лямбда-выражение можно детерменированно, хотя и не в реальном времени, перевести в комбинаторную логику с одноточечным базисом. Выражения в последней эквивалентны скобочным структурам, так как являются, по сути, бинарными деревьями без нагрузки в узлах. Такие структуры можно представить префиксными бинарными кодами переменной длины, если заменить символ "(" битом 1, а ")" - битом 0, а также добавить завершающий бит 0. Полученные коды можно передавать по сети и сохранять в файлы, то есть использовать данный метод для сериализации лямбда-выражений, если считать выражения равными с точностью до альфа-бета-эта-конверсии. Последнее - существенное ограничение данного подхода, так как десериализация в общем случае не восстанавливает исходное лямбда-выражение текстуально, даже с точностью до альфа-конверсии.

Nov. 9th, 2009

Pyramid Head

Salary Increasing Shell Script

#!/bin/sh

cat >>main.c <<!
#if 0
Dear John Smith,

Please increase my salary this month.

Best regards,
Poor Developer
#endif
!

git commit -m "Just profit." main.c

Nov. 4th, 2009

Pyramid Head

Печати для припечатывания


<a href="http://www.opengroup.org/onlinepubs/9699919799/toc.htm"><img border="0" src="http://bestsmileys.ru/s/603841.gif" /></a>


<a href="http://ru.wikipedia.org/wiki/Полнота_по_Тьюрингу"><img border="0" src="http://bestsmileys.ru/s/123532.gif" /></a>


<a href="http://lib.mexmat.ru/books/8840"><img border="0" src="http://bestsmileys.ru/s/785082.gif" /></a>


<a href="http://lurkmore.ru/Haskell"><img border="0" src="http://bestsmileys.ru/s/672973.gif" /></a>

Nov. 3rd, 2009

Pyramid Head

POSIX (Sword Dancer, Hellsing)

Aug. 17th, 2009

Pyramid Head

Неубедительный отказ службы поддержки ЖЖ

Your message submitted to the moderated community lj_ru_support has been rejected by a moderator of that community.

Please note that replies to this email are not sent to the community's moderator(s). If you would like to discuss the reasons for your entry's rejection, you will need to contact a moderator directly.

Here are the reasons for the rejection as provided by the moderator:

Здравствуйте.
Спасибо за предложение.
К сожалению, в настоящий момент нет возможности введения CAPTCHA на все механизмы добавления в друзья, тогда как согласно имеющимся у нас данным, основная масса "френдоботов" используют именно те способы, которые нет возможности контролировать с помощью CAPTCHA.
С уважением,
Служба поддержки пользователей LiveJournal

This is the message you submitted:

Time: 2009-08-15 18:28
Subject: CAPTCHA при добавлении в список друзей
Text:
В связи с продолжающимся добавлением журналов в друзья ботами, возникла мысль о дополнительной опции в настройках учетной записи: CAPTCHA при добавлении в список друзей. Возможно, это могло бы приостановить данный процесс, многим неприятный.
Tags: ,

Aug. 7th, 2009

Pyramid Head

Тьюринг- и HP-полнота в реальном времени

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

Этих свойств планируется добиться с помощью совмещения следующих идей:

1) Distributive Lambda Calculus (или Micro Lambda Calculus, позволяющий при ленивых вычислениях выполнять каждый шаг редукции за время O(1)) и Innermost Spine Strategy (одношаговая рекурсивная стратегия, обладающая для данной системы нормализующим свойством);
2) "сборка мусора" в реальном времени без ALU (с двусвязными списками использований подвыражений для обеспечения удаления и выделения нод за время O(1) и использованием обычного односвязного списка свободных нод);
3) выполнение эта-редукции в реальном времени с помощью счетчиков использований или их эквивалентов (в данном случае - списков использования для соответствующих переменных), позволяющих определить эта-редекс за время O(1);
4) поиск следующего редекса за время O(1) благодаря хранению списка редексов и обновлению его на каждом шаге редукции.

Очевидно, что расход памяти сильно выше, чем в обычных реализациях редукции графов. В крайнем случае на одну ноду выражения может быть задействовано три ячейки памяти, по четыре адреса каждая, итого всего 24 байта на ноду для 16-битной версии системы (предполагается, что адреса указывают на ячейки в памяти, а не на байты, поэтому максимальный размер памяти при такой битности равен 512 килобайт). Тем не менее, данная задача рассматривает именно теоретическую возможность вычисления в реальном времени при полноте как по Тьюрингу, так и по Гильберту-Посту, без ALU, любой ценой.

Jul. 28th, 2009

Pyramid Head

Labyrinth Mind-mapping Software in Maemo

The Debian-based Maemo platform being used as operating system in Nokia devices such as N810 has the Labyrinth mind-mapping software's port currently available. It can be used for constructing and editing schemes like the following one representing some of current Uniweb project-related and other tasks, for instance:



The mind-mapping approach to brainstorming projects is going to be generalized to organizing and note-keeping tasks in Maemo. In order to operate graphs without any of keyboard-input, touchscreen clicks, or buttons on the device that control the system, this is going to be implemented using dontclick.it's interface concept to provide designing pages and text typing capabilities in addition to browsing with positioning-only input. In turn, the task of text typing within such a system has been already considered in Dasher Project by Inference Group. Unfortunately, current implementations of this idea are not comfortable and not easy to be ported for the Maemo platform, and have proof-of-concept nature. That's why a new implementation of it which would be based on OpenGL for output (available in the upcoming Fremantle distribution of Maemo as OpenGL ES, OpenGL for Embedded Systems) is being planned, firstly as a GLUT-based application for its prototype. Later, the Dasher OpenGL implementation is supposed to provide graphical user interface in general using the idea of dontclick.it mentioned above and be used as the desktop environment in a Maemo-like mobile device.

Such a project which can be annotated as "integration of OpenML objects and dontclick.it's idea into Web" can be regarded as the opposite of the Uniweb project from the viewpoint of input devices to be used.

May. 28th, 2009

Pyramid Head

Компьютерная алгебра в Uniweb и дальнейшие планы

Система компьютерной алгебры Maxima, успешно установленная в обновленной заготовке для программной модели Uniweb в виде пакета "maxima", предоставляет свободную реализацию символьных вычислений, основанную на LISP, как и ставший немного более популярным в результате упоминания в СМИ "поисковика" "Wolfram Alpha", частично предоставляющего его возможности через веб-интерфейс, проприетарный аналог Mathematica. Она позволяет производить почти любые вычисления в рамках стандартных инженерных институских курсов математического анализа, рисовать графики функций посредством Gnuplot, а также экспортировать результаты в TeX-нотации. Последнее удобно в связи с TeX Live - наиболее популярным дистрибутивом LaTeX, работа с которым изначально была одной из основных целей проекта Uniweb.

Таким образом, на данном этапе подбор программного обеспечения для Uniweb можно считать завершенным. Основными компонентами системы получились следующие: MIPS (32-битный BE-вариант, в рамках модели реализуемый с помощью "qemu-system-mips"), Linux (последний релиз, в рамках модели с включенной поддержкой PS/2, Cirrus Logic, NE2000 и IDE), Debian (последний релиз, частично обновленный до нестабильной ветки), Xfbdev (плюс "xdm"), Awesome (плюс "unclutter", скрывающий X-курсор ввиду не подразумевающегося по умолчанию в системе устройства позиционирования), SSH, TeX Live (плюс "xpdf"), Maxima, W3M, и IRSSI, а также пакеты в их зависимостях в рамках репозитария Sid плюс несколько программ, делающих текстовую среду в Debian ближе к полной реализации POSIX "Shell and Utilities", включая "heirloom-mailx", "vim", "build-essential", "cssc", "pax", "ncompress", "cxref", "fort77", "bison", "flex", "talk", "talkd", "cflow", "uucp" и "lprng".

Планируется подготовить ряд метапакетов, включающих в зависимости выбранные, а также воспользоваться предоставляемой в Launchpad возможностью создавать Debian-репозитарии. Далее, ожидается переход к рассмотрению USB как единственной шины в системе и видео-вывода лишь на черно-белую "электронную бумагу", как и было предварительно описано.
Tags: ,

May. 10th, 2009

Pyramid Head

"Сборка мусора" в реальном времени без ALU

Так как вариант реализации эта-редукции с помощью информации, сопровождающей "сборку мусора", имеет real-time-свойство столь скоро, как это свойство имеет сам "сборщик мусора", была рассмотрена задача подходящей реализации выделения и удаления без потерь нод графа выражения при произвольном разделении подвыражений без использования ALU, то есть без арифметических операций, в том числе инкремента и декремента каких-либо целочисленных счетчиков.

Вместо последних, рассмотрение данной задачи привело к схеме двусвязных списков мест использования подвыражений. Элементами таких списков достаточно сделать наборы из четырех указателей: предыдущий и следующий элементы, разделяемое подвыражение и место использования. При таком подходе, удаление произвольных подвыражений можно свести к удалению одного элемента из двусвязного списка и присоединение его к обычному списку свободных нод, без обхода подвыражения. В свою очередь, при выделении свободной ноды, в список свободной памяти переносятся элементы списка использования дочерних узлов графа, если есть: в случае аппликации или абстракции - их два, в случае элемента списка использования - один, в случае переменной - ни одного. Так как данный метод избегает как потерь, так и обходов неограниченного количества элементов, он может быть реализован в реальном времени.

May. 6th, 2009

Pyramid Head

Эта-редукция в стиле "сборки мусора"

Была замечена схожесть эта-редукции в бестиповом лямбда-исчислении с техниками "сборки мусора" во многих его реализациях. Одной из тактик "сборки мусора" является хранение счетчиков использований подвыражений при "ленивых" вычислениях в так называемой редукции графов по Уодсворту. В связи с этим, эта-редукцию можно реализовать следующим способом: если подвыражение имеет форму \x. M x и количество использований x равно одному, то это подвыражение следует заменить на M. Такой подход позволил бы сделать эта-редукцию в реальном времени, с точностью до real-time-свойства самого "сборщика мусора".

Планируется рассмотреть этот вопрос подробнее на предмет описания его в литературе и реализациях функциональных языков программирования.

Apr. 30th, 2009

Pyramid Head

Музыкальный стиль "ambient trip-hop"

Многие композиции Akira Yamaoka среди музыки к "Silent Hill" обычно относят к "окружающему" стилю эмбиент, включающего в себя элементы целого ряда различных стилей - джаза, нью-эйджа, электронной музыки, рока, рэгги, современной академической музыки, этномузыки и даже нойза, - в котором за счет использования электронной реверберации и других пространственно-звуковых технологий создаются изощренные эффекты, способствующие медиативному состоянию, либо создающие "отчуждающие" эффекты.

[Музыка] должна передавать дух масс, огромных промышленных комплексов, поездов, океанских лайнеров, военных флотов, автомобилей и аэропланов. Все это должно присоединять к великой центральной теме поэмы область машин и победную сферу электричества.
- Балилла Прателла, "Технический манифест футуристической музыки" (1911 год)

Подобные эффекты используются и во многих композициях к "Electrosphere", созданных "Namco Sound Team", а также в некоторых из композиций, входящих в альбом "Плацента" Линды, музыку которой часто относят к трип-хопу (для него обычно характерны довольно медленный темп, приглушенно звучащий брейкбит, отчетливые бас-партии, тяготение к звукам, взятым со старых пластинок, общая мрачная депрессивная окрашенность, некоторая отрешенность вокальных партий), который возник в начале девяностых годов в Великобритании (в те годы он продвигался, среди прочих, группой "Massive Attack") как смесь экспериментального хип-хопа, джаза, даба, рока, соула и некоторых других элементов и добился значительной популярности и коммерческого успеха.

В значительной степени, именно по близости к смешению данных двух стилей, которое иногда называют "ambient trip-hop", и была выбрана музыка (помимо рока, представленного, например, русским Земфиры и бритпопом "Placebo", впрочем, тоже местами к нему прибегающих), в частности, среди саундтреков к сериалам "Nikita", "Sex and the City" и "Queer as Folk". К счастью, поиск новых композиций легко автоматизируется с помощью системы Last.fm.

Apr. 17th, 2009

Pyramid Head

The Representable Continuum Set

Dedicated to [info]dmvo:
\documentclass{article}
\title{The Representable Continuum Set}
\author{Anton Salikhmetov}

\begin{document}
\maketitle

\begin{abstract}
This paper introduces a new mathematical structure representing
all rational numbers’ sequences that can be defined to provide a
countable replacement for the usual continuum set of real
numbers, the question whether it is appropriate, say, for physics
being still open.
\end{abstract}

The Representable Continuum Set consists of all combinators that
are computable for all Church numerals and for each Church
numeral return a lambda expression of the list form
${\lambda x. x b [m] [n]}$, where $m$ and $n$ are natural
numbers, and $b$ is a boolean value representing sign, which
corresponds to a rational number ${\pm m / n}$.
If $S_i$ is the corresponding rational number for ${(M [i])}$,
an element $M$ from this set is considered as
${\lim_{n \rightarrow \infty} \sum_{i = 0}^n S_i}$.
\end{document}

Previous 20