[01:25:03] <valexey> .
[01:52:29] <vlad2> /me сегодня на работе в футболке с trollface ;)
[01:52:49] <vlad2> пока все спокойно :)
[01:54:07] <valexey> Это фигня. Я на работу хожу в толстовке с надписью на спине "TEAM SKYPE" и соответствующими логотипами :-)
[01:54:19] <valexey> При том, что скайп наш конкурент :-D
[01:55:16] <vlad2> Хе-хе :)
[01:59:32] <valexey> А троллфейс у меня и так частенько на лице бывает :-) Непроизвольно, ога.
[01:59:55] <valexey> Особенно когда в этой толстовке прихожу :-)
[02:07:24] <vlad2> Просто не мог пройти мимо (в обычном тряпочном магазине увидел, не специализированном).
[02:09:00] <valexey> прикольно. троллфейс пошел в народ!
[02:09:33] <vlad2> Угу.
[02:13:01] <valexey> Надо с одной стороны троллфейс, а с другой фейспалм!
[02:27:19] <vlad2> Фэйспалм на автарке же ш :)
[04:55:10] <vlad2> valexey: как там статья про оберон? Пилится?
[14:07:26] <valexey> vlad2: на счет статьи - пока не могу придумать тему которая была бы людям интересна
[14:07:53] <valexey> зато вот: http://habrahabr.ru/post/177537/#comment_6166977
[14:07:58] <valexey> коммент :-D
[14:56:06] <Kemet> !
[15:06:32] <valexey> !
[15:40:20] <Kemet> ghtgjufysq bytn - ybabuf yt gfitn
[15:40:37] <Kemet> препоганый инет нифига не пашет
[15:40:43] <Kemet> We have amended Active
Oberon with a Matlab-like syntax for mathematical program-
ming ([16], [17]). It can be used to describe mathematical
algorithms in a high-level notation and make immediate use
of vector capabilities of underlying hardware, a concept that
obviously fits very well to the scope of this work.
[15:42:53] <Kemet> у них еще есть технология Active Cell видимо под FPGA
[15:46:55] <Kemet> вот эта хрень компилится Активным Обероном:
[15:46:58] <Kemet> type Filter = cell { Vector, Data(2048), DDR2 }
(data : port in (64); res : port out);
var t : real ; k1, ..., x : array [3] of real ;(∗ vectors ∗)
begin
...
while t <= tmax do
(∗ vector operations ∗)
k1 := f( t , x); k2 := f( t + dt /2, x + dt/2 ∗ k1); ...
x1 := x + dt/3∗(1/2∗k1 + k2 + k3 + 1/2∗k4); ...
end
end Filter ;
L
[15:50:12] <valexey> :-)
[16:19:42] <Kemet> valexey: наверняка самое эффективное решение твоей задачи на размытие будет на Active Math Oberon !
[16:20:18] <Kemet> ...
[17:35:14] <alexey.veselovsky> Kemet: наверняка самое эффективное решение будет на OpenCL или CUDA :-)
[20:13:54] <alexey.veselovsky> vlad2: http://oberspace.dyndns.org/index.php/topic,480.msg15780.html#msg15780
[20:13:57] <alexey.veselovsky> :-D
[20:26:51] <vlad2> Трололо!
[20:27:10] <alexey.veselovsky> Няняня :-)
[20:27:22] <vlad2> А слабо выиграть миллион долларов сышыа? ;)
[20:27:38] <alexey.veselovsky> Там призовой фонд миллион, а призы то меньше
[20:27:46] <alexey.veselovsky> В первой фазе максимум можно было выиграть 20 килобаксов
[20:28:00] <alexey.veselovsky> Во второй, подозреваю, можно будет порядка 100 килобаксов
[20:28:18] <alexey.veselovsky> Но во второй фазе должна быть уже не поделка, а продукт готовый к выпуску на рынок прямо сейчас.
[20:28:35] <alexey.veselovsky> (прямо сейчас == сентябрь-октабрь 2013)
[20:29:29] <alexey.veselovsky> И мы да, думаю будем там участвовать.
[20:30:43] <vlad2> А как же новый форум? :)
[20:31:07] <alexey.veselovsky> Предлагаю для него краудсорсинг :-)
[20:32:10] <alexey.veselovsky> я могу быстро изобразить прототип с какой-нибудь десктопной гуйнёй. а дальше в жабаскрипте и html путь кто-то другой ковыряется :-)
[20:32:22] <alexey.veselovsky> ибо веб меня БЕСИТ!
[20:34:15] <vlad2> Не... так дело не пойдет :) Всех тошнит от веба, так что ж теперь :)
[20:34:44] <alexey.veselovsky> Знаешь, судя по составу проектов на хакатоне - большенству программистов веб очень люб
[20:35:00] <jordan36957> Предлагаю обсудить перспективы компьютеров на процессоре эльбрус. Реально ли дождаться их на массовом рынке, по приемлимой цене. К примеру в ближайшие 5 лет. Сейчас цена моноблока 70 т. руб
[20:35:08] <jordan36957> http://www.mcst.ru/news_121229.shtml
[20:35:10] <vlad2> Они просто другого не умеют ;)
[20:35:46] <alexey.veselovsky> jordan: это УЖЕ вменяемая цена для той ниши в которую он целит, ибо там спрос не эластичен по цене.
[20:35:49] <vlad2> Эльбрусу место в танках и ракетах.
[20:36:12] <vlad2> На ширпотребном рынке - не пробъется.
[20:36:26] <alexey.veselovsky> а вот что нужно сделать (кроме закручивания гаек) чтобы он стал на хомяках конкурентоспособен - я хз
[20:37:11] <jordan36957> Понятно.
[20:38:02] <alexey.veselovsky> 10 из 15ти проектов доехавших до финиша были веб-проектами.
[20:38:22] <alexey.veselovsky> на старте веба было еще больше (всего было 27 проектов заявлено суммарно (веб и не веб))
[20:41:41] <alexey.veselovsky> jordan: оно by design требует память с контролем четности. такая память очень дорогая. поэтому резкого снижения цены не будет.
[20:43:39] <jordan36957> А, что за память. Дай ссылку.
[20:44:27] <alexey.veselovsky> http://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82_%D1%87%D1%91%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8
[20:44:44] <alexey.veselovsky> Parity RAM
[20:45:20] <alexey.veselovsky> http://en.wikipedia.org/wiki/Parity_RAM
[20:45:32] <alexey.veselovsky> http://en.wikipedia.org/wiki/Parity_RAM#ECC_type_RAM
[20:47:09] <alexey.veselovsky> соответственно и контроллер памяти дороже. и вообще всё
[20:47:47] <alexey.veselovsky> ну и, опять же, по производительности этот эльбрус на типичных задачах думаю сливает не только десктопным x86/amd64, но и армам в смартфонах/планшетах.
[20:48:26] <jordan36957> Он был создан для военных. Надёжность во всём отсюда и цена.
[20:49:28] <alexey.veselovsky> Понимаешь, надежность мы просто измерить не можем. Кроме того, коль он такой надежный, почему его до сих пор в МКС и вообще аэрокосмосе нет?
[20:49:55] <jordan36957> Я не знаю. А какой там процессор используется?
[20:49:56] <alexey.veselovsky> В авионику бы тоже пробился, если бы у него было все хорошо с надежностью и производительностью. Вытеснил бы всякие там PPC.
[20:50:25] <alexey.veselovsky> Там разные. Надежность достигается техпроцессом (например сапфировая подложка вместо кремниевой).
[20:50:42] <jordan36957> PPC = PowerPC?
[20:51:11] <alexey.veselovsky> да. но это в авионике. это не космос. там техпроцесс обычный в общем то.
[20:52:33] <jordan36957> Основой всех модульных компьютеров МКС и по сей день является процессор Intel 386. Вот ссылка
[20:52:37] <jordan36957> http://www.xakep.ru/post/53107/?print=true
[20:52:41] <jordan36957> Это правда?
[20:53:18] <alexey.veselovsky> вполне вероятная правда. архитектура - думаю та, но процессор (в плане производства, распиновки и так далее) скорее всего другой и производится иначе.
[20:53:51] <jordan36957> В 2000 году было принято решение полностью проапгрейдить мобильный парк линейки ThinkPad на более современные аналоги. Новинки были установлены на МКС, которая к тому времени уже получила систему жизнеобеспечения, и в ней могли оставаться астронавты. Навороченные по тем временам ThinkPad, с процессором Pentium Mobile III, 128 мегабайтами оперативной памяти, HDD на 20 Гбайт и видеокартой ATI Rage, отправились на покорение космоса, где они используются и по сей день. В 2004 году однообразие старого модельного ряда разбавили ноутбуки ThinkPad на платформе Centrino первого поколения, с процессорами Pentium M, 512 Мбайт оперативной памяти и специальной сборкой Windows XP.
[20:54:08] <jordan36957> Windows Xp в космосе. Вот это да.
[20:55:00] <alexey.veselovsky> ну а чо? для терминалов, не отвечающих за жизнеобеспечение, почему бы и нет?
[20:59:33] <jordan36957> Интересно всё это. Я думал там применяются супер пупер компьютеры, которые не доступны обычным смертным.
[21:00:04] <alexey.veselovsky> :-)
[21:00:05] <jordan36957> x86 ругают за костыли, а он космос бороздит.
[21:00:53] <alexey.veselovsky> до сих пор 8051 бороздит все что можно и нельзя :-) (хотя, опять же, instruction set конечно тот же самый, но в плане производства и производительности это уже другой проц)
[21:03:52] <alexey.veselovsky> jordan: более того, Си и С++ вполне тоже бороздят космос :-)
[21:04:01] <alexey.veselovsky> сколько бы их господа оберонщики ни ругали
[21:04:16] <jordan36957> С шаблонами, и непроверяемыми индексами?
[21:04:24] <alexey.veselovsky> угу
[21:04:57] <alexey.veselovsky> шаблоны штука классная - оверхеда в рантайме не дают. зато дают удобство и безопасность.
[21:07:52] <jordan36957> Процессор Intel 8058 33мгц, но всего лишь 256 байт памяти. Скорость с озу не равномерна. Или для тех задач, для которых он создан, этих характеристик хватает.
[21:08:26] <alexey.veselovsky> 8056 - не видел
[21:08:30] <alexey.veselovsky> 8051 - видел
[21:08:45] <jordan36957> В вики прочитал http://ru.wikipedia.org/wiki/Intel_8058
[21:08:58] <alexey.veselovsky> да, шаблоны оверхеда и в плане размера бинаря не дают. ведь есть LTO, который уберет дублирующийся код.
[21:10:54] <jordan36957> Размер бинаря сейчас вообще не актуален. А как в оберуне без шаблонов, то есть есть другой механизм?
[21:11:49] <alexey.veselovsky> хреново там без шаблонов. без шаблонов приходится либо руками делать то, что должен делать компилятор (то есть копипастить код и менять тип у чего-то одного), либо перетаскивать проверки типов в рантайм.
[21:12:07] <alexey.veselovsky> со всеми растекающимися проблемами - ошибка будет не на этапе компиляции а во время полета самолета.
[21:15:17] <jordan36957> Интересно почему Вирт их не встроил в язык. Вещь полезня и необходимая.
[21:18:53] <jordan36957> В модуле 3 есть шаблоны.
[21:19:30] <alexey.veselovsky> ну, это все же дженерик-модули и они немного иначе работают (там требуется ручное инстанцирование, еще более ручное чем в Аде даже)
[21:19:43] <alexey.veselovsky> Думаю Вирт решил не усложнять язык и компилятор
[21:20:12] <alexey.veselovsky> Кроме того, тогда дженерики были чем-то новым. Не изученным нормально. Ну и Вирту для его Оберон-ОС оно было не нужно.
[21:20:37] <alexey.veselovsky> А вот для прикладного программирования оно очень-очень нужно.
[21:22:30] <jordan36957> Создать шаблон в С++ и перегрузить оператор так, что бы можно было писать m[i] = 5; можно?
[21:22:50] <alexey.veselovsky> да, без проблем
[21:23:57] <alexey.veselovsky> Влад тебе это даже показывал как делается, чтобы получить потомка от вектора который будет проверять индексы при доступе к элементу через []
[21:24:37] <jordan36957> Я тогда к этому скептически относился.
[21:24:55] <alexey.veselovsky> :-)
[21:25:19] <alexey.veselovsky> это далается в пяток строк кода :-) Потом используешь этот SafeVector везде где хочешь и все
[21:26:29] <jordan36957> Может это бред, но возможно ли не используя препроцессор и сторонних программ, писать на С++ if then else end, хитро перегрузить операторы и т.д
[21:27:00] <alexey.veselovsky> ну есть же препроцессор - он часть языка, это не внешняя программа.
[21:27:08] <alexey.veselovsky> но в любом случае так делать не стоит.
[21:27:16] <jordan36957> Костыль?
[21:27:28] <alexey.veselovsky> угу. причем абсолютно не нужный
[21:29:28] <alexey.veselovsky> в плане гибкости плюсов.. см например мой вот этот пост: http://valexey.blogspot.com/2009/09/blog-post.html
[21:29:46] <alexey.veselovsky> там программа приведена полностью
[21:31:25] <jordan36957> А есть ли в компиляторах С++ опция, компилить вылавливая все неадекватности языка, скопившиеся за всё время развития. Типа if (a = 7) и т.д
[21:38:47] <jordan36957> Настолько нубский впрос?
[21:41:38] <alexey.veselovsky> Ненене. Я говорил по скайпу с США :-)
[21:42:09] <alexey.veselovsky> Да, это есть. -Wall -- выведет все варнинги. В том числе и такое присваивание пометит варнингом.
[22:00:39] <jordan36957> #include <iostream>
#include <conio.h>
#include <string>
int main ()
{
std::string s1 = "Hello ";
std::string s2 = "World!";
std::string s3 = s1 + s2;
std::cout << s3[99];
}
[22:00:58] <jordan36957> Ворнингов нет. Теперь нужно свой string писать.
[22:01:18] <alexey.veselovsky> ?
[22:01:25] <jordan36957> std::cout << s3[99];
[22:01:44] <jordan36957> выход за границы массива. Я уж думал в строках хоть из коробки.
[22:02:26] <alexey.veselovsky> а какой нафиг тут может быть ворнинг? на этапе компиляции это не лечится
[22:02:43] <alexey.veselovsky> std::cout << s3[random()];
[22:02:46] <alexey.veselovsky> и привет
[22:03:05] <jordan36957> При запуске программы ворнингов нет, просто пустая консоль.
[22:03:29] <alexey.veselovsky> ворининов при ЗАПУСКЕ программы и не бывает никогда. бывают только падения :-)
[22:03:40] <alexey.veselovsky> даже в обероне даже со включенными проверками
[22:03:51] <jordan36957> Нужно же известить, о причине падения.
[22:04:13] <alexey.veselovsky> кого?
[22:04:23] <jordan36957> Пользователя.
[22:04:37] <jordan36957> Самого разработчика.
[22:04:40] <alexey.veselovsky> вот у тебя это дело работает в микрочипе. у него нет ни экрана, ни сети. вот у тебя выход за границу. и чо?
[22:04:56] <alexey.veselovsky> сам разработчик запустит под отладчиком дебажную версию и все увидит
[22:05:28] <alexey.veselovsky> или, что еще лучше, прогонит под Valgrind'ом
[22:05:36] <alexey.veselovsky> и увидит даже больше чем всё
[22:05:41] <jordan36957> Вот сейчас у меня компьютер и у миллиона других пользователей тоже компьютер с монитором, и чё?
[22:06:22] <alexey.veselovsky> вокруг тебя намного больше компьютеров без монитора, чем компьютеров с монитором
[22:07:05] <jordan36957> Дискриманция пользователей с монитором, получается. :-)
[22:09:09] <jordan36957> Сам факт, что можно сделать с проверками. Посмотрю как сделан string и на основе сделаю с рун тайм проверками.
[22:09:29] <alexey.veselovsky> сделай. только это довольно бесполезно
[22:09:53] <alexey.veselovsky> в дебажной версии в той же msvs один фиг проверки будут. а в не дебажной, в релизе, они нафиг не нужны.
[22:10:45] <alexey.veselovsky> да, кстати, а зачем тебе обращение по индексу в строке? никто ж этим не пользуется :-D
[22:11:48] <jordan36957> Простота.
[22:12:24] <alexey.veselovsky> не вижу простоты. вижу сложноту. если мне нужно что-то в строке найти - так я и буду искать через find, а не в цикле бегать.
[22:13:12] <jordan36957> В первом же примере нагуглил for ( int ix = 0; ix < size; ++ix )
if ( str[ ix ] == '.' )
str[ ix ] = '_';
[22:13:39] <alexey.veselovsky> убивать
[22:13:53] <jordan36957> А в самом finde через индексы.
[22:14:43] <alexey.veselovsky> А это уже не важно. find - это стандартная библиотека. вероятность ошибки там меньше чем вероятность ошибки в одной строке прикладного кода.
[22:19:15] <alexey.veselovsky> гы. народ чмырит делфятников:
[22:19:22] <alexey.veselovsky> "Осознать, что за границей кладбища трава зеленее, можно в любое время. :) Опыт дельфи при переходе не испарится, в том же WinForms всё ну очень похоже, только названия немного отличаются."
[22:20:08] <jordan36957> В delphi шаблоны есть, со всеми вытекающими.
[22:20:35] <alexey.veselovsky> как и во фрипаскале. причем во фрипаскале они появились раньше
[22:20:55] <jordan36957> В фри паскале только для классов.
[22:22:18] <jordan36957> С ним тоже интересно, создали несовместимое раширение, но так и не исправили операторы как в оберуне.
[22:23:55] <jordan36957> В исходниках фри паскаля видел бмблиотеку stl
[22:24:11] <alexey.veselovsky> Ж-)
[22:25:21] <jordan36957> Из документации FreePascal generic container library
[22:25:38] <alexey.veselovsky> вообще, если выбирать язык из внуков паскаля-алгола, то это наверно или модула-3 или ада
[22:29:03] <alexey.veselovsky> ну, то есть если хочется что-то реального размера писать. если на поиграться - то и оберон сойдет.
[22:30:00] <jordan36957> ос на оберуне, не игрушка. Но я её не видел.
[22:31:07] <alexey.veselovsky> игрушка. для больших мальчиков. отличная штука чтобы изучать софтварный инжениринг.
[22:32:23] <alexey.veselovsky> но в продакшине оно не нужно. то есть я не вижу ниши в современном мире.
[22:32:41] <jordan36957> Чем же так плоха ос.
[22:33:11] <alexey.veselovsky> отсутствием даже коопиративной многозадачности
[22:33:54] <jordan36957> Однозадачная как dos?
[22:33:55] <alexey.veselovsky> странный сборщик мусора который собирает мусор только тогда, когда ему вернули управление (то есть если у тебя кто-то зашел в цикл и мусорит - оно имеет шанс исчерпать всю память -- сборщик мусора не запустится)
[22:34:02] <alexey.veselovsky> почти
[22:34:31] <alexey.veselovsky> отсутствие какой-либо защиты системы от вредоносного ПО, да и вообще от каких-либо ошибок в сторонних модулях.
[22:34:35] <jordan36957> Оберунщики об этом знают?
[22:34:51] <alexey.veselovsky> должны знать
[22:35:50] <alexey.veselovsky> соответственно писать асинхронщину там довольно болезненно. поскольку даже кооперативной многозадачности нет, то приходится весь контекст ручками сохранять и восстанавливать. в общем тяжко, да.
[22:36:38] <alexey.veselovsky> в книжке в общем то так и написано - тяжелые вычисления (длительные вычисления) нужно выносить на отдельные сервера, где не Оберон.
[22:41:23] <jordan36957> Но ведь ни что не мешает написать на обероне ос типа linux. Или переписать ядро minix 3 (6000 строк) на оберон.
[22:41:52] <jordan36957> Проблема не в языке, а в том, что на нём написана не универсальная ос.
[22:42:25] <alexey.veselovsky> ну, язык предполагает все же сборщик мусора
[22:42:51] <alexey.veselovsky> также в языке многого не хватает. то есть для написания на нем ОС его нужно вначале конкретизировать. Еще 20тью страничками хотя бы :-)
[22:43:13] <jordan36957> Оберон++?
[22:44:40] <alexey.veselovsky> Скорее конкретизированный Оберон. Слишком много дыр в описании языка у вирта оставлено
[22:44:49] <alexey.veselovsky> А можно не париться и просто взять модулу :-)
[22:45:08] <alexey.veselovsky> Вон, на модуле-2 существенно более вменяемые операционки лепились
[22:47:11] <alexey.veselovsky> эксельсиор тот же например
[22:47:29] <jordan36957> Без шаблонов?
[22:47:39] <alexey.veselovsky> угу.
[22:47:47] <alexey.veselovsky> для написания ядра ОС шаблоны не нужны
[22:48:09] <alexey.veselovsky> ну, или почти не нужны :-)
[22:48:20] <alexey.veselovsky> А еще была ОС на модуле-3
[22:48:53] <jordan36957> ос на одном языке, всё остальное на интерпритируемом. Видел новость что в какойто редакции bsd драйвера можно писать на lua/
[22:49:43] <alexey.veselovsky> я не вижу смысла в интерпретируемости. впрочем, языки вообще не делятся на интерпретируемые и компилируемые
[22:49:50] <alexey.veselovsky> делятся их реализации, не более того
[22:50:39] <jordan36957> Что мешает, код луа компилировать при запуске. В озу весит программа, при закрытии программа удаляется.
[22:50:51] <jordan36957> И так каждый раз.
[22:51:02] <alexey.veselovsky> ничто не мешает код луа компилировать при компиляции :-) а запускать уже бинарь
[22:51:05] <jordan36957> И скорость, кросплатформенность.
[22:51:26] <alexey.veselovsky> алсо ничто не мешает также поступить с программой на Си :-)
[22:51:59] <jordan36957> В tiny C такое реализовано. Компилит с космической скоростью.
[22:52:16] <alexey.veselovsky> тут же ничего нового - банальное распространение приложения в виде исходников.
[22:52:40] <alexey.veselovsky> на целевой машине оно компилируется. один раз. при каждом запуске компилировать смысла не имеет, если исходник не менялся
[22:52:43] <jordan36957> Пример
[22:53:21] <alexey.veselovsky> ?
[22:53:54] <jordan36957> Есть линукс, при загрузке ос она быстро компилится хоть 32 хоть 64, так же и другие программы. В самом дистрибьютиве только исходники.
[22:54:33] <jordan36957> Это теория, я не знаю есть ли такой дистр.
[22:54:52] <alexey.veselovsky> ну какой-то бинарь все же нужен - кто-то ведь должен это дело компилить :-)
[22:55:07] <alexey.veselovsky> ну и компилироваться оно будет скорее при установке а не при загрузке.
[22:55:28] <alexey.veselovsky> компилить при каждой загрузке довольно бессмысленно.
[22:55:33] <jordan36957> gentoo
[22:55:43] <alexey.veselovsky> ?
[22:56:38] <jordan36957> Гентушники помешаны на компиляции.
[22:56:53] <jordan36957> Философия у них такая.
[22:56:54] <alexey.veselovsky> ну, бывает, чо.
[22:57:26] <jordan36957> Оптимизация системы под конкретное аппаратное обеспечение и нужды пользователя. Это достигается посредством сборки программ из исходных текстов с использованием так называемых USE-флагов оптимизации и подключением/отключением необходимых модулей.
[22:58:11] <alexey.veselovsky> ога, и дает иногда ускорение процентов в 15 :-)
[22:58:21] <alexey.veselovsky> в общем, оно того не стоит.
[22:58:58] <jordan36957> Так как игр нет, а 8 ядерный fx занять надо, можно и компилить.
[22:59:18] <alexey.veselovsky> игр как раз полно :-)
[22:59:22] <alexey.veselovsky> тем более что есть steam
[22:59:50] <jordan36957> Значит моя теория провалилась. :-)
[23:00:11] <alexey.veselovsky> просто в компиляции есть некая магия
[23:02:10] <jordan36957> Не прощаюсь, но до новых встреч. Я спать.