LINUX.ORG.RU

Сообщения encyrtid

 

Автор C++ о диспетчеризации по типам и о #Haskell

Автор C++, Страуструп сотоварищи, пишет в соавторстве статью о новой библиотеке для диспетчеризации по типам с помощью внешней интроспекции. Написано на шаблонах C++11 и оформлено в виде библиотеки. Называется Mach7. Выглядит в итоге как-то так:

int eval (const Expr& e)
{
	Match(e)
		Case(const Value& x) return x.value;
		Case(const Plus& x) return eval (x. e1)+eval(x. e2);
		Case(const Minus& x) return eval(x. e1)−eval(x. e2);
		Case(const Times& x) return eval(x. e1)∗eval(x. e2);
		Case(const Divide& x) return eval(x. e1)/eval(x. e2);
	EndMatch
}
Ну ничё так.

Теперь о том, что заинтересовало меня. В статье есть периодические отсылки к функциональному программированию.

Нет, не так. Давайте с начала. В объектно-ориентированном языке без прямой поддержки алгебраических типов данных, тип, представляющий дерево выражения какого-то языка, обычно будет написан как абстрактный класс, с производными классами, реализующими более конкретные варианты.

struct Expr { virtual int eval () = 0; };
struct Value : Expr { ⋯ int eval (); int value ; };
struct Plus : Expr { ⋯ Expr& e1; Expr& e2; };
но более открытый (читай: расширяемый) дизайн заключается в другом: По-настоящему открытые подходы опираются на дорогой тест на принадлежность к классу, комбинирующийся с деревьями решений.

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

Насколько быстро теперь работает? Говорят, примерно как OCaml или Haskell: Библиотека реализована как стандартный C++11 код с шаблонным мета-программированием и несколькими макросами. Оно работает примерно также быстро, как эквиваленты на OCaml или Haskell, и даже иногда приближается по быстродействию или даже становится быстрее написанного руками C++ кода, который использует Visitor дизайн-паттерн.

Ну это хорошо, что так быстро, как OCaml или Haskell. Вопрос, зачем при таком раскладе использовать C++, замнём для ясности.

Но дальше вообще прелесть идёт: критика паттерна Visitor! Библиотека Mach7 и идеи в ней были мотивирована нашим неудовлетворительным опытом работы с различными C++-ными фронт-эндами и фреймворками для анализа программ. Проблема была не с самими фреймворками, но с фактом, что мы должны были использовать шаблон проектирования Visitor для того, чтобы смотреть, обходить и обогощать абстрактные синтаксические деревья целевых языков. Мы нашли Visitor-шаблоны неподходящими для прямого выражения логики приложения, удивительно сложными для обучения студентов, и часто более медленными, чем решения для обхода, написанные вручную. Вместо них, пользователи опирались на динамические приведения типов во многих местах, часто многоуровневые, таким образом предпочитая более короткий, более ясный, и более прямой код, нежели чем Visitor'ы. Соответствующий проигрыш в производительности был обычно незамечаем до более поздних стадий кодирования, когда уже было поздно что-то менять.

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

Кроме функциональщины, в посте есть отсылка к лиспу, к Duff's device, и вообще, хорошая статья, надо студентам давать. C++ — это очень большой, огромный джип, и эта статья — неплохая иллюстрация.

Источник

 , , , ,

encyrtid
()

Установка qemulator


host encyrtid # emerge -av qemulator

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    *] app-emulation/qemulator-0.5  752 kB

Total: 1 package (1 new), Size of downloads: 752 kB

The following keyword changes are necessary to proceed:
#required by qemulator (argument)
=app-emulation/qemulator-0.5 **

NOTE: The --autounmask-keep-masks option will prevent emerge
      from creating package.unmask or ** keyword changes.

Use --autounmask-write to write changes to config files (honoring CONFIG_PROTECT).

Что он хочет от меня?

 , ,

encyrtid
()

Tilda, сочетания клавиш

Возможно ли в tilda сменить дефолтные сочетания клавиш для управления табами? А то я что-то не нашел.

 ,

encyrtid
()

Рок над Волгой 2012

 ,

encyrtid
()

PyPy 1.9

Попробовал собрать pypy, сборка падает с сообщением:

localhost encyrtid # emerge -v --oneshot pypy

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-python/pypy-1.9  USE="bzip2 jit ssl xml -doc -examples -ncurses -sandbox -shadowstack -sqlite" 13,151 kB

Total: 1 package (1 new), Size of downloads: 13,151 kB

>>> Verifying ebuild manifests
>>> Running pre-merge checks for dev-python/pypy-1.9
 * Checking for at least 4 gibibytes RAM ...                                                                                                                              [ !! ]
 * There is NOT at least 4 gibibytes RAM
 * 
 * Space constrains set in the ebuild were not met!
 * The build will most probably fail, you should enhance the space
 * as per failed tests.
 * 
 * ERROR: dev-python/pypy-1.9 failed (pretend phase):
 *   Build requirements not met!
 * 
 * Call stack:
 *           ebuild.sh, line  85:  Called pkg_pretend
 *     pypy-1.9.ebuild, line  36:  Called check-reqs_pkg_pretend
 *   check-reqs.eclass, line 104:  Called check-reqs_pkg_setup
 *   check-reqs.eclass, line  95:  Called check-reqs_output
 *   check-reqs.eclass, line 236:  Called die
 * The specific snippet of code:
 *   		[[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \
 *   			die "Build requirements not met!"
 * 
 * If you need support, post the output of `emerge --info '=dev-python/pypy-1.9'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/pypy-1.9'`.
 * The complete build log is located at '/var/tmp/portage/dev-python/pypy-1.9/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-python/pypy-1.9/temp/die.env'.
 * Working directory: '/var/tmp/portage/dev-python/pypy-1.9'
 * S: '/var/tmp/portage/dev-python/pypy-1.9/work/pypy-1.9'

 * Messages for package dev-python/pypy-1.9:

 * There is NOT at least 4 gibibytes RAM
 * 
 * Space constrains set in the ebuild were not met!
 * The build will most probably fail, you should enhance the space
 * as per failed tests.
 * 
 * ERROR: dev-python/pypy-1.9 failed (pretend phase):
 *   Build requirements not met!
 * 
 * Call stack:
 *           ebuild.sh, line  85:  Called pkg_pretend
 *     pypy-1.9.ebuild, line  36:  Called check-reqs_pkg_pretend
 *   check-reqs.eclass, line 104:  Called check-reqs_pkg_setup
 *   check-reqs.eclass, line  95:  Called check-reqs_output
 *   check-reqs.eclass, line 236:  Called die
 * The specific snippet of code:
 *   		[[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \
 *   			die "Build requirements not met!"
 * 
 * If you need support, post the output of `emerge --info '=dev-python/pypy-1.9'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/pypy-1.9'`.
 * The complete build log is located at '/var/tmp/portage/dev-python/pypy-1.9/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-python/pypy-1.9/temp/die.env'.
 * Working directory: '/var/tmp/portage/dev-python/pypy-1.9'
 * S: '/var/tmp/portage/dev-python/pypy-1.9/work/pypy-1.9'
Зачем ему 4 гига рамы? Они там совсем упоролись?

 ,

encyrtid
()

ati-drivers, gentoo

Понадобилось поставить проприетарные драйвера на видеокарту, возник ряд проблем (до этого пользовался только свободными драйверами). Не работает opengl, glxgears выдает ошибку:

encyrtid@localhost ~ $ glxgears
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  137 (ATIFGLEXTENSION)
  Minor opcode of failed request:  66 ()
  Serial number of failed request:  13
  Current serial number in output stream:  13
Ядро:
encyrtid@localhost ~ $ uname -a
Linux localhost 3.3.6-pf #1 SMP Mon May 14 20:31:10 MSK 2012 x86_64 Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz GenuineIntel GNU/Linux
Драйвер: ati-drivers-12.4
Иксы: xorg-server-1.11.4
ОС: funtoo-experimental
Xorg.0.log
xorg.conf

 , ,

encyrtid
()

Funtoo, пустой файл /etc/portage/make.profile/parent

Сегодня, запустив emerge -uDNav world, получил следующий вывод:

!!! Unable to parse profile: '/etc/portage/make.profile'
!!! ParseError: Empty parent file: '/etc/portage/make.profile/parent'
>>> Starting git pull...
Already up-to-date.
>>> Git pull in /usr/portage successful
!!! Unable to parse profile: '/etc/portage/make.profile'
!!! ParseError: Empty parent file: '/etc/portage/make.profile/parent'
Что должно быть в этом файле и куда могло деться его содержимое?

 , ,

encyrtid
()

Funtoo, libffi

После обновления пакетов, portage выдает такое сообщение:

!!! existing preserved libs:
>>> package: dev-libs/libffi-3.0.11
 *  - /usr/lib64/libffi.so.5
 *  - /usr/lib64/libffi.so.5.0.10
 *      used by /usr/lib64/ghc-7.4.1/libHSrts-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_debug-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_thr-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_thr_debug-ghc7.4.1.so (dev-lang/ghc-7.4.1)
Use emerge @preserved-rebuild to rebuild packages using these libraries
 * After world updates, it is important to remove obsolete packages with
 * emerge --depclean. Refer to `man emerge` for more information.
После выполнения emerge @preserved-rebuild ничего не меняется:
localhost encyrtid # emerge -v @preserved-rebuild

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/ghc-7.4.1  USE="llvm -binary -doc -ghcbootstrap" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-lang/ghc-7.4.1
>>> Installing (1 of 1) dev-lang/ghc-7.4.1
>>> Jobs: 1 of 1 complete                           Load avg: 1.60, 1.43, 1.22
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

!!! existing preserved libs:
>>> package: dev-libs/libffi-3.0.11
 *  - /usr/lib64/libffi.so.5
 *  - /usr/lib64/libffi.so.5.0.10
 *      used by /usr/lib64/ghc-7.4.1/libHSrts-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_debug-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_thr-ghc7.4.1.so (dev-lang/ghc-7.4.1)
 *      used by /usr/lib64/ghc-7.4.1/libHSrts_thr_debug-ghc7.4.1.so (dev-lang/ghc-7.4.1)
Use emerge @preserved-rebuild to rebuild packages using these libraries
В какую сторону копать?

 , ,

encyrtid
()

Funtoo, ошибка при сборке easytag

Easytag при сборке падает со следующими ошибками:

mp4_header.c: В функции «Mp4_Header_Read_File_Info»:
mp4_header.c:207:5: ошибка: слишком много аргументов в вызове функции «MP4Read»
/usr/include/mp4v2/file.h:331:15: замечание: declared here
mp4_header.c:221:9: ошибка: слишком мало аргументов в вызове функции «MP4Close»
/usr/include/mp4v2/file.h:56:6: замечание: declared here
mp4_header.c:246:5: ошибка: слишком мало аргументов в вызове функции «MP4Close»
/usr/include/mp4v2/file.h:56:6: замечание: declared here
make[3]: *** [mp4_header.o] Ошибка 1
В чем может быть проблема?

Полный вывод сборки

emerge --info

ОС: Funtoo Experimental.

 , ,

encyrtid
()

Зарегистрирована вспышка сверхновой

Астрономы обнаружили в соседней галактике M95 сверхновую звезду.

Открытие было сделано 16 марта 2012 года, когда астрономы, как профессионалы, так и любители, отметили яркую точку на окраинах спиральной галактики с перемычкой М95 (NGC 3351), которая находится на расстоянии 38 миллионов световых лет в созвездии Льва.

Сверхновая, которая получила обозначение SN 2012aw, стала одной из ближайших звездных смертей, которые удавалось увидеть астрономам. Несмотря на то, что астрономы довольно часто открывают сверхновые, большинство из них находятся довольно далеко. Близость же галактики M95 позволило сфотографировать звезду, которая превратилась в SN 2012aw непосредственно перед вспышкой. Это позволит специалистам досконально изучить самые ранние стадии сверхновой и, наверное, даже поможет понять, что происходит со звездой в первые часы взрыва.

Источник

encyrtid
()

Миссию «Фобос-Грунт» собираются повторить

Со слов Виктора Хартова в 2018 году сложиться очень удобное астрономическое окно с точки зрения положения Марса по отношение к Земле. «Российская Академия наук считает, что надо делать повторный полет к Фобосу, а мы считаем, что технически повтор в эти сроки реален» - сказал он в интервью.

Планируется, что при создании новой миссии на Фобос будут учитываться ошибки предыдущего полета, и риски будут снижены. Также Хартов предложил переименовать новую миссию. По его мнению, аппарат нельзя называть «Фобос-Грунт-2», поэтому , скорее всего, пройдет конкурс на лучшее название проекта.

Напомним, что автоматическая межпланетная станция «Фобос-Грунт», первая за 15 лет российская автоматическая межпланетная станция, предназначенная для доставки образцов грунта со спутника Марса Фобос, была запущена с космодрома Байконур в ночь на 9 ноября 2011 года. Обе ступени ракеты-носителя «Зенит-2 SБ» отработали штатно, однако маршевая двигательная установка межпланетной станции не включилась и не смогла перевести аппарат на траекторию перелета к Марсу и 15 января 2012 года обломки аппарата упали в воды Тихого океана.

Источник

encyrtid
()

VirtualBox, вкладка «Ускорение» неактивна

Собственно, сабж. Дистрибутив - Funtoo Experimental.

emerge --info virtualbox

Конфиг ядра

Скрин

encyrtid
()

О скриптовых языках

Наткнулся на веселый скринкаст:

https://www.destroyallsoftware.com/talks/wat

encyrtid
()

В Антарктиде появилась группа пользователей Firefox

Группа пользователей свободного веб-браузера Firefox с самого юга Земли — континента Антарктида — довела шутку до реализации и запустила веб-сайт сообщества Mozilla Antarctica.

Предыстория такова, что в ноябре прошлого года в блоге греческого студента Пьерроса Пападеаса (Pierros Papadeas) появилась заметка, в которой он проанализировал статистику от StatCounter по популярности веб-браузеров в мире и увидел, что самая большая доля Firefox (более 80 процентов) — среди пользователей весьма необычного региона — Антарктиды. Open Source-энтузиастам понравилась эта новость и они решили в шутку сформировать местное (т.е. антарктическое) сообщество пользователей Firefox.

Однако уже в январе этого года шутка стала обретать реальные очертания. После встречи нескольких заинтересованных энтузиастов было решено создать настоящую группу пользователей Mozilla Antarctica. В подтверждение намерению Джастин Миллер (Justin Miller) опубликовал фотографию из Антарктиды, где он стоит с плакатом Firefox и Mozilla Antarctica возле указателя на местную станцию McMurdo Station. А теперь у нового сообщества появился и веб-сайт — http://mozilla-antarctica.org

Источник

encyrtid
()

День рождения Стивена Хокинга

Сегодня исполняется 70 лет Стивену Хокингу - одному из известнейших физиков-теоретиков нашего времени.

encyrtid
()

Универсальный способ DoS-атаки, затрагивающий PHP, Java, Ruby, Python и различные web-платформы

На проходящей в Берлине конференции Chaos Communication Congress (28c3) обнародован новый способ нарушения работоспособности web-сервисов, основанный на особенности реализации структур хэшей, используемых для организации хранения наборов данных в представлении ключ/значение, в широком спектре языков программирования. Манипулируя используемыми в качестве ключей данными, атакующий может затратив минимальные ресурсы инициировать возникновение предсказуемых коллизий в алгоритме хэширования, разрешение которых требует дополнительных значительных процессорных ресурсов.

Большинство web-фреймворков и web-приложений на этапе разбора HTTP POST-запроса автоматически размещают передаваемые пользователем параметры в хэше, что позволяет атакующему контролировать наполнение хэша. В зависимости от языка программирования для достижение 100% загрузки CPU достаточно сформировать поток запросов интенсивностью всего в несколько килобит в секунду. При этом степень создаваемой нагрузки пропорциональна размеру передаваемого в хэш числа ключей с коллизиями. Хэш-функция генерирует на основании строки 64- или 32-разрядное целое число, при возникновении коллизии две разные входные строки дают одинаковое итоговое число. При обнаружении коллизии в хэш-функциях используются различные методы для обеспечения хранения вызывающих коллизии значений, как правило требующие дополнительного перебора и сверки значений (совпадающие значения сохраняются в виде дерева или линейного списка). Трудоёмкость добавления «n» проблемных ключей составляет O(n**2), т.е. на разбор большого числа вызывающих коллизии ключей современному CPU могут потребоваться часы.

Например, при лимите на размер POST запроса в 1 Мб, Python фреймворк Plone тратит около 7 минут процессорного времени на запись в хэш 1 Мб данных (набор специально оформленных ключей), вызывающих коллизии (для успешной DoS-атаки на CPU Core Duo достаточно потока в 20 kbit/s). Для фреймворков на языке Ruby 1.8.7 при лимите на размер POST-запроса в 2 Мб на парсинг двухмегабайтного блока данных на CPU i7 будет потрачено около 6 часов (!), т.е. для поддержания постоянной 100% нагрузки достаточно потока в 850 бит в секунду. Для PHP разбор POST-запроса размером 300 Кб занимает примерно 30 секунд процессорного времени, 500 Кб - минуту, 8 Мб - около 5 часов.

Проблеме подвержены все языки программирования и фреймворки, в которых не используется дополнительная рандомизация значений в функциях хэширования, например, уязвимы Java (Tomcat, Geronimо, Jetty, Glassfish), JRuby, PHP, Python, Rubinius, Ruby 1.8.7, V8 JavaScript Engine и ASP.NET. Проблема не затрагивает язык Perl и ветку Ruby 1.9.x, так как в этих языках уже используется внесение случайных изменений при формировании хэшей. В Perl проблема была устранена ещё в 2003 году, после публикации отчёта о возможности совершения подобной атаки. В PHP уязвимость исправлена в версии 5.4.0RC4, также планируется выпустить корректирующий релиз PHP 5.3.9. Проблема также исправлена в CRuby 1.8.7-p357, JRuby 1.6.5.1, Apache Tomcat 5.5.34/6.0.34/7.0.22, Rack 1.4.0/1.3.6/1.2.5/1.1.3. Эксплуатация проблемы в Python и Ruby имеет дополнительные нюансы, отличающиеся для 64- и 32-разрядных сборок.

Предсказать вызывающие коллизии значения не представляет труда, так как в вышеупомянутых языках как правило используются две реализации хэш-функций DJBX33A и DJBX33X, разработанные Дэниэлом Бернштейном (Daniel Bernstein, автор qmail и djbdns). Хэш-функция DJBX33A используется в PHP5, Ruby 1.8 и Java. DJBX33X в PHP4, ASP.NET, Python и JavaScript (v8). Кроме языков программирования данные хэш-функции применяются в широком спектре проектов, от ядра Linux до социальной сети Facebook, а также в таких языках, как Lua, Erlang и Objective-C, что открывает возможные новые векторы для атак.

В качестве мер для минимизации влияния представленной атаки называется ограничение максимального процессорного времени, затрачиваемого на выполнение скрипта (RLimitCPU в Apache или max_input_time в настройках PHP), ограничение максимального размера POST-запроса (для PHP - post_max_size) и ограничение максимального числа разбираемых параметров (в php 5.4 или suhosin-сборке PHP - suhosin.post.max_vars и suhosin.request.max_vars).

opennet.ru

encyrtid
()

Первый экзамен по МСВСфере в МГТУ им. Н.Э. Баумана

МГТУ им. Н.Э. Баумана и Национальный Центр Поддержки и Разработки (НЦПР, группа компаний ВНИИНС) объявили о проведении первого совместного экзамена по системному администрированию на базе защищённой операционной системы МСВСфера.

Сотрудничество МГТУ им. Н.Э. Баумана и НЦПР началось в 2009 году с того, что в рамках программы Russian Open Source Education Program были переданы материалы официальных вендорских курсов Red Hat Academy, переработанные для преподавания в течение семестра. В результате студенты МГТУ имеют уникальную возможность в рамках учебного процесса прослушать курсы по администрированию Red Hat Enterprise Linux, который является стандартом де-факто в корпоративном секторе.

«Нынешний экзамен обозначает наш переход к новому уровню сотрудничества в области подготовки востребованных специалистов по современным технологиям», – сказал Аркадий Александрович Тагиев, генеральный директор НЦПР, – «Это особенно актуально сейчас, в связи с переходом государственных организаций на свободное ПО и развитием проекта Национальной Программной Платформы, в рамках которого операционная система МСВСфера рассматривается как одна из перспективных систем».

Особенностью разработанной и внедрённой программы обучения и сертификации является её строгая ориентированность на получение практических навыков работы. Большую часть времени курсов слушатели выполняют задания на реальном оборудовании. Экзамен также сдаётся полностью на реальной системе, что позволяет проверить не только понимание принципов работы, но и готовность решать практические задачи.

Комментируя прошедший экзамен, Андрей Викторович Пролетарский, декан факультета ИУ МГТУ им. Н.Э. Баумана отметил: «Практическая направленность программы обучения резко повышает конкурентоспособность наших выпускников на рынке труда и соответствует требованиям работодателей».

Источник

encyrtid
()

Найден самый медленный пульсар

Астрономы из Великобритании и Германии обнаружили неожиданно «заторможенный» пульсар - останки сверхновой, который «прячется» в оставшемся от взрыва облаке.

Объектом исследования ученых стал пульсар SXP 1062, который находится на расстоянии около 180 тысяч световых лет от Земли в созвездии Тукан. В своем исследовании ученые использовали данные полученные космической рентгеновской обсерваторией NASA «Чандра» и обсерваторией Европейского космического агентства XMM-Newton.

Пульсар SXP 1062 представляет собой нейтронную звезду, которая образовалась после взрыва сверхновой типа Ib (гравитационный коллапс массивного ядра звезды, растерявшей перед смертью внешние слои) около 40 тысяч лет назад. Как показывают данные, пульсар входит в двойную систему, второй компонентой которой является Be-звезда - горячая звезда спектрального класса B - она, вероятно, и лишила будущую нейтронную звезду внешних слоев.

По утверждению исследователей, это первый достоверный случай, когда пульсар удалось обнаружить внутри останков сверхновой, которые за прошедшее время не успели разлететься. Также они отмечают необычно низкую для столь молодого пульсара скорость вращения - один оборот за 1062 секунды (18 минут), когда в основном молодые пульсары вращаются со скоростью в несколько тысяч оборотов в секунду. «SXP 1062 является одним из самых медленных из известных науке пульсаров», - пишут исследователи.

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

Источник

encyrtid
()

Microsoft Roslyn CTP

Традиционно компиляторы работают по принципу «черного ящика» - на вход подается исходный код, на выходе получаем объектные файлы или сборки. Проект Roslyn изменяет эту модель, открывая API компиляторов VB и C#. API, предоставленное компиляторами позволяет инструментам и конечным пользователям получить доступ к информации о коде, имеющейся у компилятора.

Подробности

encyrtid
()

Бинарный дистрибутив с большим набором пакетов

Существует ли бинарный дистрибутив, с большим набором пакетов в репозитории и адекватной политикой в области лицензий? При пользовании Debian жутко бесило на каждую вторую программу подключать доп. репозиторий, даже для банального фаерфокса. Хочется как в генте, чтобы для установки, например, Skype не нужно было рыскать в поисках пакета, все должно быть в основном репозитории.

encyrtid
()

RSS подписка на новые темы