• ↓
  • ↑
  • ⇑
 
Записи пользователя: O (список заголовков)
03:38 

ICFP Contest 2011

O
Пау-чок
В начале июня прошло международное соревнование программеров ICFP Contest 2011, в котором я пытался принять участие. Хочется поделиться впечатлениями =)

Не буду говорить о том, что такое ICFP Contest - об этом можно почитать, например, тут. Скажу только, что задания в нём обычно очень увлекательны и обставлены так, что их приятно и интересно выполнять =) Этот год не был исключением =)

Задание и всё остальное

Кросс-пост из моего дайрика (O). Если кому-то интересно, чтобы продолжение было опубликовано в этом сообществе - прошу оставить об этом коммент.

@темы: Точка зрения, Computer Science

14:05 

ICFP Contest

Пау-чок
Сегодня в четрые по Москве (12 GMT, кому так удобнее отсчитывать =)) стартует сабж.

Что такое? Ежегодное международное программерское соревнование, приуроченное к ежегодной же конференции ICFP (International Conference on Functional Programming).

Как проходит? Сегодня в четыре по Москве на сайте www.icfpcontest.org/2010/ будет открыта регистрация и вывешено задание. Во время его выполнения, участники, сидя у себя дома и попивая кефир/чай/кофе/пиво/вино, пишут свои программы, и по мере получения каких-то результатов - постят их на сайт ICFP Contest. Участники могут объединяться в команды. Ограничений на используемый язык, IDE, количество народа в команде и попиваемый в процессе написания напиток нету никаких. Главное - получить результаты как можно раньше и больше =)

Ну и что? А то, что задания обычно необычны, и нередко требуют нестандартных подходов - вплоть до хаканья своих же программ =) С заданиями предыдущих лет можно ознакомиться на сайте www.icfpcontest.org. Ну, и поискать в рунете - было немало рассказов про то, как решались те или иные задачки =)

В общем и целом, советую не пропускать! =) Обещает быть весело =)

@темы: Новости

02:00 

Oracle. Хранение row-объектов

Пау-чок
Дамы и господа, может ли кто-нибудь пролить свет на такую загадку?.. Стало интересно, каким образом в объектных таблицах Оракла хранятся объекты.
Немного конкретизирую, что же именно вызывает замешательство. А то, что следующий код:
===
CREATE OR REPLACE TYPE "SomeType" AS OBJECT("f1" int) NOT FINAL;
/
CREATE OR REPLACE TYPE "SomeChld1" UNDER "SomeType"("f2" int);
/
CREATE OR REPLACE TYPE "SomeChld2" UNDER "SomeType"("f2" varchar2(128));
/

CREATE TABLE "SomeTable" OF "SomeType";

INSERT INTO "SomeTable" VALUES(new "SomeType"(0));
INSERT INTO "SomeTable" VALUES(new "SomeChld1"(1,1));
INSERT INTO "SomeTable" VALUES(new "SomeChld2"(2,'Ы'));

DECLARE
var1 "SomeType";
var2 "SomeChld1";
var3 "SomeChld2";
BEGIN
SELECT VALUE(e) INTO var1 FROM "SomeTable" e WHERE e."f1" = 1;
var2 := TREAT(var1 AS "SomeChld1");
DBMS_OUTPUT.PUT_LINE(var2."f2");
SELECT VALUE(e) INTO var1 FROM "SomeTable" e WHERE e."f1" = 2;
var3 := TREAT(var1 AS "SomeChld2");
DBMS_OUTPUT.PUT_LINE(var3."f2");
END;
/

===

Выдаёт вполне себе "1" и "Ы". А

===
SELECT * FROM "SomeTable";

===

выдаёт только:

===
	f1
----------
0
1
2

===

Т.е. получается, что в таблице хранятся только поля родительского класса, поля же дочерних классов хранятся чёрт знает где...

00:33 

Пау-чок
Господа, не посоветуете ли литературу /желательно на Великом Могучем, ещё желательнее - в цифре, но буду рад любому виду/ по component object model(COM) для освоения с нуля?

15:35 

Мысли под пиво

Пау-чок
Что DBMS, что BDSM... Второе может даже и поприятнее будет...

Актуальная фраза в посленнее время. Для меня по карйней мере.

И вот мне стало что интересно, при проектировнии БД/ПО пользуется ли кто IDEF'ом, UML'ем? Или может сейчас что удобнее/юзабильнее существует?
И какие, акромя ERWin'а, пакеты можете посоветовать для формализации представления структуры БД?

21:43 

О десятичной коррекции сложения в i8080.

Пау-чок
Вопрос для знатоков КР580ВМ80/i8080.
Предыстория:
Для отладки программы под КР580ВМ80 решил использовать эмулятор i8080 (сей). Но обнаружил, что им не интерпретируется команда DAA. Естественное решение - приписать обработчик команды самому, благо код эмулятора доступен.
И вот тут столкнулся с затруднением такого плана... Как написано здесь (.doс):
Команда десятичной коррекции аккумулятора DAA осуществляет перевод 8-разрядного двоичного числа в аккумуляторе в две цифры двоично-десятичного кода с правильной установкой признака переноса CY. При этом производятся следующие действия:
1. Если младшая тетрада содержит число, больше 910, или установлен признак вспомогательного переноса АС=1, то содержимое аккумулятора увеличивается на 6.
2. Если после этого старшая тетрада аккумулятора содержит число, большее 9, или установлен признак вспомогательного переноса CY=1, то в старшую тетраду прибавляется 6.

Так вот. Реализовалось вышенаписанное таким образом:
 if (( (A & 0x0F) > 0x09 ) || ( F & FLAG_AC ))
   ADD(0x06); //[1]
 if (( (A & 0xF0) > 0x90) || ( F & FLAG_C ))
   ADD(0x60); //[2]

Здесь ADD() - макросс, реализующий ADD и ADI со всеми вытекающими для регистра флагов последствиями.
И всё бы хорошо, если бы после выполнения первого ADD'а не терялся бит CY. А он стопроцентно теряется. И таким образом, скажем, сложение 0x95h+0x79h (BCD-представления) будет производиться как:
0x95h+0x79=0x10E(CY=1;A=0x0E)->ADD[1]->(CY=0;AC=1;A=0x14),
что мягко говоря не верно. И соотетственно, ADD[2] не выполнится, т.к. первая тетрада A меньше девяти и CY=0.
Естественно, реализовать функцию DAA, чтобы она работала так как мне надо - проще простого.

Но тут встаёт (внимание!) вопрос - DAA работает в КР580ВМ80 так как надо мне, или так как у меня реализуется, т.е. с потерей CY при первом цикле сожения?

11:46 

Фортран

Пау-чок
А может мне кто-нь-ть рассказать про сабж? Достоинства/недостатки, различия стандартов 77/90/95 и т.п.

15:56 

XOpenDisplay()

Пау-чок
Приветствую всех.
Возник не так давно вопрос, на который надеюсь здесь найти ответ, а именно - в какой Linux'овой библиотеке лежит образ функции XOpenDisplay() /Программирование для XWindows/? Т.е. всё отлично компилится, а на стадии линковки, собственно, и возникает нужда в оной библиотеке.
Описание функции записано, вроде, в <X11/Xlib.h>.
Заранее благодарю.

ru_programming

главная