← All posts tagged MS

Kim
w3c pump.io socialwg diaspora* redmatrix Аккаунт разработчиков Diaspora* репостит новости об обновлении драфта Activity Streams 2.

RedMatrix заявляет что будет исправлять свою реализацию AS2 чтобы максимально соотвествовать драфтам W3C SocialWG.

А учитывая что ряд активных участников W3C SocialWG тесно связан с pump.io (который сейчас работает на Activity Stream первой версии), то эту штуку можно относить туда же.

Таким образом, судя по всему, по завершении работы W3C SocialWG мы сразу получим федерацию между всеми сетями, кроме GNU Social. Под которую, впрочем, я тоже видел заявление о намереньях поддержать протокол pump.io.
Kim
алгоритм патриотизм Алгоритм работы @akastargazer:

я привёл свежий текст, подтверждающий мою точку зрения. Вот он, текст появился, он прекрасно ложится на систему, которая сформирована у меня в голове, поэтому я его и использовал. Мне нет нужды верифицировать этот текст, потому что по моим ощущениям, всё так и происходит. Если в тексте я вижу неувязки, я его не трогаю и не выношу на обсуждение <juick.com>
Как у него получается быть последовательным патриотом и не видеть неувязок в программе российских новостей? (Неувязок он там правда не видит <juick.com>) Всё просто. Для достижения такого эффекта надо:

1. Выбрать правильное мнение.
2. Найти его подтверждение в интернете.
3. Отказаться от верификации подтверждения, ведь мнение изначально было правильным.
4. Проигнорировать все замеченные тексты опровергающие правильное мнение, либо распространяющие мнение неправильное, как тексты, в которых содержатся "неувязки" с правильным мнением.

P.S. В том треде было ещё пара интересных мест. Например заявления пациента про то, что у Украинских властей нет своих интересов juick.com , а наличие собственных интересов у властей Российских (непременно направленных на обустройство России juick.com ) позволяет им творить любую фигню juick.com
Kim
GNU FOSS rms floss Дедушка Столман просит <> всех анонимусов, использующих аббревиатуру FOSS, перейти к использованию сокращения FLOSS
Kim
GNU language Да я пропустил GNU'тые лингвистические игрища.

Из предыдущих лингвистических успехов проекта можно назвать введение в массовое употребление термина Digital Restrictions Management (DRM).

Теперь в речах rms появился новый термин: SaaSS — Service as a Software Substitute
Kim
games GNU rms Valve Свежая статья от Столмана gnu.org . В этот раз про обещанный приход проприетарных игр от Valve на GNU/Linux. Дядька говорит, что это, скорее всего, принесёт больше пользы чем вреда в смысле распространения идей свободы (Видимо по принципу "что, там есть игры? А что значит GNU в названии?"), но просит не говорить будто бы эти игры поддерживают дело сторонников идей проекта GNU, поскольку это может создать впечатление, что ради технологии можно меньше внимания обращать на свободу.

Ну то есть rms считает, что есть чему радоваться, но активно рекламировать лучше lpc.opengameart.org или libreplanet.org , а не Valve.
Kim
news GNU fsf rms Столман накатал новую статью <>. Статья говорит, что „то что я говорил не относится к социалочкам, а про социалочки я пока даже не знаю что сказать, кроме <au>“.
Kim
MS code C pack pragma
#include <stdio.h>
#pragma pack(push,1)
struct __attribute__ ((ms_struct)) p1 /* без атрибута в MSVC -- 13 */
{
  char c;
  int  i;
};
#pragma pack(pop)
struct __attribute__ ((packed, ms_struct)) p2
{
  char c;
  int  i;
};
struct __attribute__ ((packed, gcc_struct)) p3
{
  char c;
  int  i;
};
int main (void)
{
  printf ("p1: %d\np2: %d\np3: %d\n", sizeof (struct p1), sizeof (struct p2),
	  sizeof (struct p3));	/* Ответ: 5 8 5 */
}

Я правильно понимаю, что отсутствие упаковки в случае p2 это бага GCC (gcc version 4.6.2)? То есть по идее два определения:
> #pragma pack(push,1)
> struct __attribute__ ((ms_struct)) p1 { ... };
> #pragma pack(pop)
и
> struct __attribute__ ((ms_struct, packed)) p2 { ... };
должны быть эквивалентны.

Кому интересно, отличия в запаковке между MSVC и GCC можно увидеть на таком примере:

#include <stdio.h>
#pragma pack(push,1)
struct __attribute__ ((ms_struct)) ms /* Соответствует поведению MSVC */
{
  unsigned long bf_1 : 12;
  unsigned long bf_2 : 12;
};
struct __attribute__ ((gcc_struct)) gcc
{
  unsigned long bf_1 : 12;
  unsigned long bf_2 : 12;
};
#pragma pack(pop)
int
main (void)
{
  printf ("ms: %d\n" "gcc: %d\n", /* Ответ: 4 3 */
	  sizeof (struct ms), sizeof (struct gcc));
}
Kim
quote GNU BL rms First there was Moore's Law. Now there's Stallman's Law <>:

• While corporations dominate society and write the laws, each advance in technology is an opening for them to further restrict its users.
Kim
quote BL вброс When was the last time you spent a pleasant evening in a comfortable chair, reading a good program? I don't mean the slick subroutine you wrote last summer, nor even the big system you have to modify next week. I'm talking about cuddling up with a classic, and starting to read on page one. Sure, you may spend more time studying this elegant routine or worrying about that questionable decision, and everybody skims over a few parts they find boring. But let's get back to the question: When was the last time you read an excellent program? © Jon Bentley
Kim
GNU hurd "Вы помните времена когда мужчины были мужчинами и сами писали драйвера к своим устройствам?"

Tired of mainstream free software distros and operating systems? Then this is for you:
hydra.nixos.org
It's a fresh QEMU image of GNU (aka. GNU/Hurd), the extensible operating system designed to liberate users from the tyranny of sysadmins, professional kernel hackers, and other restrictions to Freedom #1.
The image is continuously cross-built from GNU/Linux, using the Nix package manager, off the VCS of GNU Mach, the Hurd, Coreutils, grep, and Guile 2.0.x. It also contains snapshots of other programs, such as Zile, GCC, and GNU Make.
The intent is (1) to allow integration testing of Mach, the Hurd, and the C library, and (2) to allow other GNU packages to be tested on GNU/Hurd in a virtual machine.

savannah.gnu.org
Kim
quote Sussman В 1999, Gerald Jay Sussman написал следующее:

Computer Science is in deep trouble. Structured design is a failure. Systems, as currently engineered, are brittle and fragile. They cannot be easily adapted to new situations. Small changes in requirements entail large changes in the structure and configuration. Small errors in the programs that prescribe the behavior of the system can lead to large errors in the desired behavior. Indeed, current computational systems are unreasonably dependent on the correctness of the implementation, and they cannot be easily modified to account for errors in the design, errors in the specifications, or the inevitable evolution of the requirements for which the design was commissioned. (Just imagine what happens if you cut a random wire in your computer!) This problem is structural. This is not a complexity problem. It will not be solved by some form of modularity. We need new ideas. We need a new set of engineering principles that can be applied to effectively build flexible, robust, evolvable, and efficient systems.

In the design of any significant system there are many implementation plans proposed for every component at every level of detail. However, in the system that is finally delivered this diversity of plans is lost and usually only one unified plan is adopted and implemented. As in an ecological system, the loss of diversity in the traditional engineering process has serious consequences for robustness.

This fragility and inflexibility must not be allowed to continue. The systems of the future must be both flexible and reliable. They must be tolerant of bugs and must be adaptable to new conditions. To advance beyond the existing problems we must change, in a fundamental way, the nature of the language we use to describe computational systems. We must develop languages that prescribe the computational system as cooperating combinations of redundant processes.
Kim
interface обзор Raskin Джеф Раскин в своей книге "The Humane Interface: New Directions for Designing Interactive Systems" описал как надо строить интерфейсы. В первых трёх главах были введены основные принципы на которых должен строиться интерфейс, в четвёртой главе рассказано о том, что эффективность интерфейса можно оценивать численными методами. В оставшейся части книги Раскин рассказал про то, как по его мнению должен выглядеть адекватный интерфейс.

В качестве основных принципов отмечены:
1. Отсутствие модальности. При использовании какого-либо жеста (хоткея, пункта в меню под номером N) пользователь должен всегда получать один результат.
2. Монотонность. Для каждого действия должен существовать только один жест.
4. Акцент на формирование привычек. Главное чтобы пользователь мог сформировать привычки и выполнять действия не глядя.
3. Видимость. Всё что программа может сделать должно быть так или иначе видимо.
5. Человек может уделять внимание только одной задаче. Всплывающие сообщения на краю экрана или даже запросы подтверждения скорее всего будут не замечены.
В этом наборе единственное сомнительное правило это видимость, поскольку, как только привычки сформировались, она становится не нужна. Все остальные требования подтверждены рядом ссылок на исследования и опытом большинства пользователей.

Несмотря на то, что это замечательные принципы автор не может им следовать до конца. Так с первых страниц описания своего интерфейса он предлагает разрешить выделение и запуск команд не только с клавиатуры, но и при помощи графического устройства ввода (ГУВ), что является явным нарушением требования монотонности. Также он предлагает вместо одного выделения использовать стек выделений и позволить командам использовать произвольное число последних выделений как аргументы, что нарушает принцип видимости, поскольку глядя на название команды сложно определить сколько она требует аргументов. Кроме того автор, видимо никогда не использовавший Windows-клавиатуры, предлагает решить проблему apple-клавиатур на которых для удаления символов существует только backspace, введением режимов для курсора ввода текста (если его перемещали, то backspace работает как delete. После набора одного символа снова работает как backspace) и нарушением первого правила, вместо простого добавление клавиши Delete на клавиатуру. Также автор явно забывается и пытается перенести элементы интерфейса из Canon Cat (http://ru.wikipedia.org/wiki/Canon_Cat по описанию Раскина очень интересная машина) в zoomable user interface. Так в Canon Cat отказались от использования иерархической файловой системы. Вместо этого все документы были соединены в один длинный текст, содержащий символы разрыв документа, обозначающие начало и конец отдельных документов. В ZUI такой подход выглядит более чем странно уже потому, что при нём теряются плюсы от способностей человека к пространственной навигации. Описание ZUI в этой книге — это первое место, где действительно необходимо ГУВ. Использование ГУВ в остальных описанных в книге случаях противоречило требованию монотонности и, при применении GOMS анализа, давало как минимум не лучшие результаты. Но так как автор не заметил этой проблемы (или решил не описывать подробно по той причине, что он не знает как добиться видимости без ГУВ) нет ни одного слово про mouse-less ZUI. Так что вопрос их эффективности придётся решать читателю. Чтоб не быть голословным вот common-lisp.net реализация такого клавиатурного интерфейса и видео common-lisp.net с примером его использования.

Таким образом в книге стоит читать только первые четыре главы. Весь остальной текст, зачастую, не соответствует собственным принципам автора. Но при этом я таки вынес оттуда пару полезных ссылок на другие труды. Из того, чем хочется поделиться, это Psychology of computer programming за авторством Weinberg G.M.