Интервью → Evangelos Kranakis

Today we're talking with Evangelos Kranakis, PhD. Mathematician, computer scientist, received a B.Sc. (in Mathematics) from the University of Athens, Greece, in 1973 and a Ph.D. (in Mathematical Logic) from the University of Minnesota, USA, in 1980. Worked with mathematics Department of Purdue University, USA, mathematisches institut of the University of Heidelberg, Germany, Computer Science Department of Yale University, USA, Computer Science Department of the Universiteit van Amsterdam, Centrum voor Wiskunde en Informatica (CWI) in Amsterdam. Evangelos joined the faculty of the School of Computer Science of Carleton University in the Fall of 1991.
— Greece, Canada, USA, Germany, Netherlands
— Education system
— What is computer science?
— State of modern computer science and mathematics
— Why networking is important?
— Bioinformatics, genes. What do we know about DNA?
— Words of wisdom
— How to learn to understand mathematics?
— Is P=NP?
Криптография → Прозрачные и проверяемые выборы
Сегодня я хочу рассказать вам о том, как можно сделать процедуру голосования лучше и надежнее. Во-первых, советую посмотреть речь Дэвида Бисмарка на TED или здесь в моей озвучке (перевод Андрея Новика):
Как это работает? Читать дальше
Как это работает? Читать дальше
Распределенные вычисления → Затраты и сложность распределенных вычислений
Среда, которую мы описали, является достаточно абстрактной. Это общая модель для многих типов систем, производительность которых зависит от множества факторов.
Эффективность протокола должна отражать реальные затраты, которые требуются системе. То есть нам нужна абстрактная мера вычислительных и прочих затрат, которая будет иметь смысл в реальном мире.
Мы будем использовать две меры: затраты коммуникации и время, необходимое для завершения вычисления. Это позволит смотреть на систему с точки зрения самой системы (сколько трафика будет сгенерировано для решения задачи? насколько занята будет система?) и с точки зрения пользователя (сколько придется ждать окончания вычисления?).
Читать дальше
Эффективность протокола должна отражать реальные затраты, которые требуются системе. То есть нам нужна абстрактная мера вычислительных и прочих затрат, которая будет иметь смысл в реальном мире.
Мы будем использовать две меры: затраты коммуникации и время, необходимое для завершения вычисления. Это позволит смотреть на систему с точки зрения самой системы (сколько трафика будет сгенерировано для решения задачи? насколько занята будет система?) и с точки зрения пользователя (сколько придется ждать окончания вычисления?).
Читать дальше
Блог им. freetonik →
Визуальное описание sql-joins
Отличные иллюстрации примеров различных типов SQL-JOIN.
- 0
- freetonik
- 07 января 2011, 05:56
- www.codinghorror.com/blog/2007...
- 0
Распределенные вычисления → Введение в распределенные вычисления
Современные системы давно перестали быть похожими на фантазии ученых и писателей прошлых столетий. Многие из них были правы относительно общих принципов и возможностей, но мало кто мог представить возможности современных суперкомпьютеров и распределенных систем, и еще меньше кто мог представить массивы данных, с которыми такие системы работают.
На сегодняшний день самыми перспективными считаются две основные технологии, которые имеют много общего: параллельные и распределенные вычисления. Про параллельные вычисления на нашем сайте есть отдельный блог, из которого я возьму одну цитату:
Сегодня мы познакомимся с общими определениями и понятиями распределенных сетей.
Читать дальше
На сегодняшний день самыми перспективными считаются две основные технологии, которые имеют много общего: параллельные и распределенные вычисления. Про параллельные вычисления на нашем сайте есть отдельный блог, из которого я возьму одну цитату:
В параллельных вычислениях участвует оборудование, находящееся, как правило, в одном физическом месте, они тесно соединены между собой и все параметры их работы известны программисту. В распределенных вычислениях нет тесной постоянной связи между узлами, соответственно названию, они распределены по некоторой территории и параметры работы этой системы динамичны и не всегда известны.
Сегодня мы познакомимся с общими определениями и понятиями распределенных сетей.
Читать дальше
Книжная полка → Software Engineering Notes
Это набор моих конспектов по курсу Software Engineering, основанный на книге Software Engineering, 8th edition, Ian Sommerville, Pearson Education, 2006.

Скачать одним docx-файлом
Скачать одним PDF-файлом
Скачать архив doc-файлов по главам

Скачать одним docx-файлом
Скачать одним PDF-файлом
Скачать архив doc-файлов по главам
Математика → Sage
Sage (анг. ‘Мудрец’) — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было “создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB”. Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.
Одним из курсов в 2009 году у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (представление данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса.
Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.
Sage имеет удобный веб-интерфейс, который полностью повторяет функциональность основной программы. Доступ к нему осуществляется посредством сервера, так что если вашей школе/организации/университету нужно математическое программное обеспечение, Sage имеет неоспоримый плюс: его можно поставить на одной машине, запустить веб-сервер Sage Notebook и пользоваться программой смогут все, у кого есть браузер с поддержкой javascript. Туториал описывает работу Sage Notebook и покрывает такие темы, как простые арифметические операции, работа с полиномами, кольцами, интерактивной консолью, с различными интерфейсами (Sage включает в себя некоторые другие мат. пакеты: (GP/PARI, GAP, Singular, Maxima), программирование (Sage использует Python).
Все это находится на freetonik.com/sage.
Читать дальше
Одним из курсов в 2009 году у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (представление данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса.
Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.
Sage имеет удобный веб-интерфейс, который полностью повторяет функциональность основной программы. Доступ к нему осуществляется посредством сервера, так что если вашей школе/организации/университету нужно математическое программное обеспечение, Sage имеет неоспоримый плюс: его можно поставить на одной машине, запустить веб-сервер Sage Notebook и пользоваться программой смогут все, у кого есть браузер с поддержкой javascript. Туториал описывает работу Sage Notebook и покрывает такие темы, как простые арифметические операции, работа с полиномами, кольцами, интерактивной консолью, с различными интерфейсами (Sage включает в себя некоторые другие мат. пакеты: (GP/PARI, GAP, Singular, Maxima), программирование (Sage использует Python).
Все это находится на freetonik.com/sage.
Читать дальше
Блог им. freetonik → Задачки
Простые, но забавные задачки.
1) Есть полностью синхронизированная сеть, состоящая из двух узлов. Часы на обоих узлах тикают одновременно, и сообщения от одного узла до другого доходят за конечный и константный промежуток времени. Как передать информацию любого (конечного) размера от одного узла к другому с помощью двух битов?
2) Как уместить всю «Википедию» на зубочистке?
1) Есть полностью синхронизированная сеть, состоящая из двух узлов. Часы на обоих узлах тикают одновременно, и сообщения от одного узла до другого доходят за конечный и константный промежуток времени. Как передать информацию любого (конечного) размера от одного узла к другому с помощью двух битов?
2) Как уместить всю «Википедию» на зубочистке?
Параллельные вычисления → Ускорения параллельных вычислений
Главной целью создания и разроботки многочисленных типов параллельных машин, о которых мы говорили в прошлой статье, это скорость. Суперкомпьютеры и многопроцессорные системы могут и должны делать все быстрее! Давайте постараемся расчитать, насколько быстрее.
Логично подумать, что если один процессор выполняет работу на n секунд, то четыре процессора потратят n/4 секунд. Понятие “фактор ускорения” (“speedup factor”) это отношение времени, которое тратит на выполнение работы один процессор к времени, которое тратит на эту же работу многопроцессорная система.
S(p) = Ts / Tp
Для расчета важно использовать самый оптимальный Ts, то есть лучший из возможных не-параллельных алгоритмов.
Теперь плохие новости: у этого ускорения есть лимит. Называется он Amdahl’s Law (Закон Амдала) и вот его суть: так выглядит какая-либо задача на обычной однопроцессорной системе:

Читать дальше
Логично подумать, что если один процессор выполняет работу на n секунд, то четыре процессора потратят n/4 секунд. Понятие “фактор ускорения” (“speedup factor”) это отношение времени, которое тратит на выполнение работы один процессор к времени, которое тратит на эту же работу многопроцессорная система.
S(p) = Ts / Tp
Для расчета важно использовать самый оптимальный Ts, то есть лучший из возможных не-параллельных алгоритмов.
Теперь плохие новости: у этого ускорения есть лимит. Называется он Amdahl’s Law (Закон Амдала) и вот его суть: так выглядит какая-либо задача на обычной однопроцессорной системе:

Читать дальше
Блог им. freetonik →
Rijndael Cipher
Нашел замечательную флеш-анимацию, наглядно объясняющую принцип 128-битного шифрования.
- +8
- freetonik
- 14 октября 2010, 01:45
- www.cs.bc.edu/~straubin/cs381-...
- 3