Pull to refresh
0
0
Ilya Kuznetsov @worklez

User

Send message

Опубликован весь архив Computer Science клуб при ПОМИ РАН

Reading time2 min
Views6K
Добрый день!

Как представитель проекта Лекториум рад сообщить — мы опубликовали весь архив Computer Science клуба.
Кроме того, почти год назад мы организовали запись всех лекций на хорошие камеры и микрофоны.
А в этом году планируем подключить вебинары.


Большинство лекций читается на русском языке. Все записи снабжены презентациями и описаниями.

UPD. Кратко. Старые лекции в плохом качестве, а новые с 2010 года с хорошим звуком и в 720p.
UPD 2 Расширили канал, видео грузится теперь без проблем.

Под катом перечень курсов и несколько вопросов касательно вебинаров.
Читать дальше →
Total votes 231: ↑227 and ↓4+223
Comments78

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Reading time3 min
Views12K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

Читать дальше →
Total votes 109: ↑100 and ↓9+91
Comments22

Самый главный алгоритм

Reading time1 min
Views4.6K
От всей души рекомендую видео лекцию А. Степанова (человека создавшего STL): «о истории алгоритма нахождения наибольшего общего делителя», это популярная лекция оказалась бесконечно интересной, в ней рассказывается, на примере этого алгоритма о развитие алгоритмического знания всего человечества с эпистемологической точки зрения в разрезе истории с античных времен с Пифагора до наших дней до Кнута.

image
Посмотреть можно здесь:
часть1
video.yandex.ru/users/ya-events/view/129
часть2
video.yandex.ru/users/ya-events/view/128
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments62

pv — маленькая, но очень полезная утилита

Reading time2 min
Views80K
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →
Total votes 290: ↑280 and ↓10+270
Comments94

Жаргон программистов

Reading time4 min
Views64K
Наткнулся на Stackoverflow.com на интересный топик с вопросом о новом в программистском жаргоне. Предлагаю здесь подборку наиболее интересных выражений.

Египетские операторные скобки

if (a == b) {<br>  printf("hello");<br>}<br><br>
Читать дальше →
Total votes 314: ↑284 and ↓30+254
Comments282

Книга Gray Hat Python. Глава 2. Отладчики и устройство отладчика

Reading time1 min
Views2.4K
image

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

Сказать по-правде, на Python в этой главе написано ровно 4 строчки. Но она все равно будет очень полезна как новичкам в программировании, так и Python-программистам, ибо рассказывает об устройстве отладчиков.

Перевод пока местами просто ужасен, и в этом исключительно моя вина за пока что отсутствующим опытом внятного перевода некоторых технических аспектов. Хотя на первый взгляд, все вроде должно быть понятно. Если знающие «матчасть» программисты мне помогут, буду очень рад. Особенно в плане терминов.

И так, предлагаю ознакомится тут.

Так же предлагаю ознакомится с
Введением
Глава 1. Настройка вашего рабочего окружения.
Как всегда, жду отзывов и критики.
Total votes 37: ↑28 and ↓9+19
Comments20

Использование мощных светодиодов (на примере велофары)

Reading time5 min
Views42K
Все мы давно слышим о полупроводниковых источниках света, то есть светодиодах. Они и экономичнее, и долговечнее и вообще все сплошь и рядом положительные. Но чем это может помочь нам? Светодиодные лампы (обычные потребительские с цоколем Е27 и Е14) пока стоят совсем бешеных денег, причём совершенно неоправданно. Немного лучше в области автосвета, там уже можно заказать не очень дорогие заменители ламп накаливания в своё авто. Только пока особо плюсов от них нет, кроме потребляемой мощности и иногда надёжности (потому что многие из них плохо собраны и не используют стабилизаторы тока). И наверно самая продвинутая область применения мощных светодиодов это фонарики и велосвет. Поэтому я и расскажу о сборке своего велосвета на основе мощных светодиодов. Данный опыт можно применить во многих областях, в том числе, чтобы устроить LED освещение дома, при минимальных навыках работы с паяльником.
Читать дальше →
Total votes 179: ↑172 and ↓7+165
Comments62

«Мое дело» — подготовка документов для регистрации ИП

Reading time1 min
Views2.2K
Регистрация ИП - бесплатно
Привет!

Представляем хабрасообществу новый сервис от онлайн-бухгалтерии "Мое дело".

Теперь все документы, необходимые для регистрации ИП, можно подготовить за 10 минут на условиях DonationWare. То есть абсолютно бесплатно, но если если все очень понравилось, то можно сказать спасибо.

Подробности и скриншоты под катом.
Читать дальше →
Total votes 205: ↑200 and ↓5+195
Comments109

Материалы продвинутого уровня по Питону

Reading time5 min
Views43K
PythonВ мире все примерно распределяется в соответствии с принципом Паретто. Меньшая часть — богатые, большая часть — бедные (читающий, ты входишь в золотой миллиард). Тоже касается и материалов о программировании. Порой очень сложно найти хоть что-нибудь не начального уровня.

После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.

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

Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.

Подробнее
Total votes 136: ↑133 and ↓3+130
Comments23

О монадических технологиях

Reading time6 min
Views3.4K
Кирпичёв правильно пишет про небрежность интуитивного понимания императивных языков: http://antilamer.livejournal.com/300607.html.

Однако, мне кажется, что важно было бы озвучить, что всё то, что сейчас скрывается под именем «монада» — само по себе достаточно спутанно в плане педагогики и евангелизма.  Классическая шутка SPJ/Вадлера звучит как «нам следовало назвать ЭТО warm fuzzy things, чтобы не пугать людей теоркатом».  Шутка поразительно недальновидная.   Проблема лежит в той же плоскости, что и называние стоящих перед тобой задач словом «stuff» (это то, с чем борется Аллен в своём GTD).  
Монады в настоящий момент являются миру как сложный ком из исторически обусловленных причин, проблем, решений, технических возможностей и теоретических основ (как алгебраических, так и аспектов теории вычислений). 
Все эти наслоения можно (и нужно) расщепить в первом приближении так (порядок приблизительно случайный):
  • стремление к экспликации эффектов (чистое внедрение императивно-подобных моментов в вычисление), (см. труды Вадлера);  здесь мы включаем ввод-вывод, STM, параллельные вычисления и проч.)
  • удобный механизм для материализации базовых микро-стратегий вычисления — вызов функции (call-by-name/call-by-value), многозначность, смена состояния (присваивания!), обработка исключений, останов при неудаче, continuations, бэктрекинг;
  • typeclasses как механизм внесения монад в язык, и как следствие — удобный механизм для мета-перехвата вычисления (невероятно удобно для domain-specific embedded languages);
  • строгая проверка типов, проистекающая из использования typeclasses, и позволяющая механически проверять корректность использования объектов;
  • существование монадических законов, в которые укладываются монады, что позволяет материализовывать абстрактные комбинаторы; это позволяет находить порой неожиданные изоморфизмы между различными предметными областями, а также помогает при оптимизации и верификации программ;
  • проработанная теоретическая основа (теория категорий), на которой базируются монады; это облегчает жизнь создателям базовых библиотек, на которых потом базируется всё реальное программирование;
  • монады — лишь один из классов в длинной цепочке интересных алгебраически обусловленных классов, некоторые из которых слабее монад, а некоторые — сильнее: Functor, Applicative, Monoid, Traversable, Foldable, Monad со товарищи, Arrow со товарищи;
  • стремление к материализации некоторых видов вычислений в алгебраическую структуру (моноидальные вычисления); это открывает широкий простор для оптимизаций, верификации программ, создания абстрактных комбинаторов, а также устранение unbounded recursion — по мощности результатов это похоже на то, как когда-то ввод-вывод был надежно изолирован в IO Monad;

Потратим по паре абзацев на каждый пункт.
Читать дальше →
Total votes 49: ↑33 and ↓16+17
Comments103

Zipper — производная от типа

Reading time5 min
Views3K
Zipper — способ представления типа данных, позволяющий проходить по структуре и изменять отдельные элементы, несмотря на функциональную чистоту. Например, если по списку мы можем только пробежаться вперёд, делая что-либо с элементами, то с зиппером мы сможем «находиться» в определённом элементе, перемещаться вперёд-назад и менять текущий элемент.
Интересно то, что зиппер для некоторого типа можно получить буквально взяв его производную.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments11

Как попробовать Smalltalk на вкус

Reading time7 min
Views17K
Smalltalk LogoС выходом на большую арену Ruby и с появлением фреймворка Seaside, все чаще упоминается Smalltalk. Однако, среди молодого поколения (разработчики до 30 лет) бытует мнение, что это мертвый язык, разработанный на заре появления ПК и тогда же похороненный. Упоминание о Smalltalk на лекциях по ЯП, недалеко от COBOL, делает его еще более архаичным.

Однако, это неправда! Все это время Smalltalk жил, иногда даже рядом с нами, развивался, использовался для решения серьезных задач, а иногда — для несерьезных. вот тут просто фраза как-то странно построена. Но вот притока свежей крови в сообщество разработчиков практически не было. Причины сейчас перечислять бессмысленно.

Но что происходит когда программисту хочется попробовать что-то новенькое? Он пытается это сделать. И от того, насколько это легко или сложно, с какими проблемами он столкнется, зависит его отношение к инструменту в дальнейшем.
попробовать Smalltalk
Total votes 88: ↑84 and ↓4+80
Comments57

Seaside 2.9: Частичные продолжения

Reading time10 min
Views1.5K
Некоторое время назад на хабре проскакивал топик про «континуации» от ХабраЮзера qmax. Он был весьма впечатлен идеей, а вот подробно рассказать не вышло. И вот недавно один из разработчиков Seaside, Джулиан Фитзелл написал потрясающую по своей доходчивости статью. С его разрешения я сделал ее перевод и хотел бы поделиться с хабрасообществом.

Сразу хотелось бы сказать о терминологии. В качестве перевода слова continuation я использую наиболее близкое по смыслу «продолжение». Общая же терминология статьи для неискушенного в Smalltalk разработчика может показаться непривычной. Так, вместо стека вызовов используется «цепь контекстов», а вместо потока — «процесс». Если у вас останутся вопросы после прочтения — смело задавайте их в комментариях. Спасибо.
читать полный текст статьи
Total votes 36: ↑31 and ↓5+26
Comments22

Памятка начинающему postmaster'у

Reading time1 min
Views12K
Хочется дать несколько общих советов администраторам электронной почты. Новичкам надеюсь будет полезно, а опытным будет напоминание проверить состояние своих систем для нормального, беспрепятственного хождения электронной почты, а также для более качественной фильтрации спама с минимумом ложных срабатываний.

  1. Обязательно прописывайте обратную зону для своего почтового сервера (ptr record). Это не так сложно сделать. В большинстве случаев достаточно написать вашему интернет провайдеру. Далее либо он сам пропишет в своих dns, либо делегирует вам вашу зону (in-addr.arpa).
  2. Старайтесь держать в актуальности соответствие PTR записи с A, на которую указывает MX запись.
  3. Используйте fqdn в приветствии HELO/EHLO
  4. Проверьте, что не используете openrbl.org в списках RBL. Этот сервис давно закрылся и блокирует всех адресатов.
  5. Включите позможность работы по защищенному tls соединению. Пусть даже с самоподписанным сертификатом, но у которого стоит корректное common name, совпадающее с вашей PTR записью. Используйте как SMTP over SSL так и submission сервисы.
  6. Не запрещайте в своих почтовиках DSN (delivery status notification), они значительно позволяют упростить решение возникающих проблем.

Это совсем кратенькие советы, но исходя из своего опыта работы, выдерживают их не более 30% почтовых серверов на просторах СНГ.

P.S. Если потребуется, напишу как реализовать это применительно к postfix.
Total votes 9: ↑6 and ↓3+3
Comments5

Популярные ошибки администраторов jabber-серверов

Reading time2 min
Views30K
В связи с тем, что после недавних событий стали как грибы после дождя плодиться топики о том, как настроить свой jabber-сервер, я решил перечислить некоторые основные ошибки и заблуждения тех, кто настраивает jabber-сервер в первый раз. Речь пойдет про:
  • SRV-записи
  • SSL-сертификаты
  • Заблуждения о транспортах
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments60

Консольный скринкаст

Reading time2 min
Views1.5K
Оказывается, записывать сессии работы в терминале — совсем просто. Программа script, входящая в пакет util-linux-ng может записать все ваши действия в файл. В выходном файле ( по умолчанию он называется «typescript» ) сохраняется полный лог вашей работы за терминалом, включая вывод консоли. Можно использовать его в разных целях, начиная с записи студенческих лабораторных работ и заканчивая слежением за тем, кто и что делал за вашим терминалом.

Но самое интересное — возможность последующего проигрывание этого лога в реальном времени с помощью perl-скрипта под названием scriptreplay
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments11

К вопросу об интроспективных программах

Reading time1 min
Views1.5K
Интроспективной называется программа, которая на вывод подает свой же исходный текст. Но я наткнулся на более интересный вариант: программа на Haskell, которая выводит программу на Python, которая выводит программу на Ruby, которая выводит исходную программу на Haskell.
Посмотреть исходный код
Total votes 33: ↑30 and ↓3+27
Comments30

Чем изучение Haskell/Python вредит программисту

Reading time5 min
Views28K
От переводчика:

На этот перевод меня толкнула очередная ситуация «мозгового ступора» при написании банального кода на C++/C#: я часами смотрел на уродливый код, но не мог сделать его по-настоящему лучше; мне пришлось просто принять то, что уродливым его видел только я один, и это была моя проблема, а не проблема в коде или языке. Я вспомнил те времена, когда такого со мной не было — а заодно вспомнил и эту старую статью, автор которой пострадал так же, как и я, при этом хорошо написав об этом.


Я обнаружил, что изучение Python и Haskell не улучшило меня как программиста на других языках (что противоречит тому, что иногда пишут об этом). В частности, Haskell — являясь настолько непохожим на императивные языки — по идее, должен был дать мне просветление в программировании, которое помогало бы мне даже без использования какого-либо языка вообще. Мой текущий опыт не совсем соответствует этому, и вот, почему:
Читать дальше →
Total votes 94: ↑85 and ↓9+76
Comments222
2

Information

Rating
Does not participate
Location
Новосибирская обл., Россия
Date of birth
Registered
Activity