Skip to content

Instantly share code, notes, and snippets.

@disolovyov
disolovyov / learn_ruby.md
Created May 2, 2011 14:10
Выборочные ресурсы для знакомства с Ruby

A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes)

http://mislav.uniqpath.com/poignant-guide/book/chapter-3.html

Третья глава из книги why's (poignant) Guide to Ruby. Считается классикой литературы по Ruby; конкретно третья глава была включена в издание The Best Software Writing I Джоэла Спольски. Представляет из себя быстрый и неформальный пробег по идиоматике языка, поэтому хорошо подойдёт для знакомства по верхам.

try ruby! (in your browser)

http://tryruby.org/

Ruby-терминал в браузере, аналог консольной программы irb, которая устанавливается вместе с Ruby. В терминал встроено несколько интерактивных курсов по языку (нужно набрать команду help, чтобы их запустить).

# Re: https://gist.github.com/1005723
Spine.guid = ->
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace /[xy]/g, (c) ->
r = Math.random() * 16 | 0
v = if c is 'x' then r else r & 3 | 8
v.toString 16
.toUpperCase()
UPDATE: this has been promptly fixed
http://code.google.com/p/v8/issues/detail?id=1491
> arr = Object.create([])
[]
> arr.length = 'foobar'
RangeError: Invalid array length
at [object Context]:1:12
at Interface.<anonymous> (repl.js:171:22)
@disolovyov
disolovyov / fp_mp_panda.md
Created July 15, 2011 22:17
Летние встречи клуба: «ФП и МП изнутри»

Летние встречи клуба: «ФП и МП изнутри»

8-битная Панда проводит новую серию встреч с 30 июля до начала учебного года, по субботам, в 12:00.

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

@disolovyov
disolovyov / from_macro.n
Created August 22, 2011 16:36
20 августа: DSL и макросы
macro @from (start, end, body)
syntax ("from", start, "to", end, body) {
System.Console.WriteLine("Compiling from...");
<[
for (mutable i = $start; i <= $end; i++) $body
]>
}
@disolovyov
disolovyov / -README.md
Created September 6, 2011 20:04
Объектно-ориентированное программирование. Практика 1.

Где взять V8 JavaScript

Мы в курсе используем среду Node.js. Скачивается она с официального сайта. Или можно скачать напрямую версию 0.5.5: node.exe.

Как писать и запускать программы

Исходный код программ на JavaScript записывается в файлы с расширением .js. После чего запустить программу можно с помощью node.exe из консоли (Command Prompt).

Предположим, что у нас есть файлы C:\Node\node.exe и C:\Node\program.js. Тогда программу можно запустить, написав в консоли:

@disolovyov
disolovyov / gist:1204745
Created September 8, 2011 21:13
Функционально-логическое программирование. Практика 1.
hostname(X). % при каком X предикат hostname будет верным высказыванием
system(cls). % предикат будет верным, если команда выполнилась
% . — закончить ввод
% ; — ещё варианты вывода («мне не годится»)
notepad. % ввести код через текстовой редактор
% нельзя менять имя файла — пролог запутается
% последний перевод строки обязателен
@disolovyov
disolovyov / _readme.md
Created September 20, 2011 01:25
Объектно-ориентированное программирование. Лабораторная работа 1.

Рабочие файлы

  • data.js — исходные данные для программы;
  • main.js — собственно, программа, которую мы редактируем;
  • index.html — HTML-документ, в котором «живёт» наша программа. Его следует открыть в браузере, чтобы видеть результат выполнения программы.

Задания

  • На 6: Добавить каждому человеку страну рождения, включая визуальное
@disolovyov
disolovyov / panda2_2011_topics.md
Created September 28, 2011 14:56
Панда II — Меню на осень

Подробнее об осенних темах Панды II

Событийное веб-программирование

Это похоже на будущее веб-разработки. Такой подход к созданию веб-приложений позволяет с лёгкостью разворачивать в вебе системы, выдерживающие тысячи одновременных и непрерывных подключений. Что греет сердце и душу, создание таких систем возможно в привычной многим среде языка JavaScript. Используя такие ключевые технологии, как Node.js, Socket.IO и HTML5 Canvas, мы убедимся, что событийное веб-программирование в JavaScript может соревноваться в производительности с Erlang и делать Python с завязанными глазами.

Статическое метапрограммирование

Мы уже немного затронули эту тему летом, но не раскрыли её во всех цветах. В рамках обсуждения этой темы мы получим в своё распоряжение набор мощных иснтрументов,

@disolovyov
disolovyov / strong_ideas.md
Created October 2, 2011 17:46
DOSSEE 2012 Strong Ideas

Topics

The following topics have emerged from the discussions. Of them we are going to select one — the one that's most interesting, yet feasible. We need more specific proposals and more details to make the choice.

Tourist Companion

Explored by: Maxim, Alex R, Andrew, Anton Z

For example it could be: “A user of this system is a tourist that aims to visit as much points of interest (POI) in a given time span, as possible. He inputs his preferences and the software plans the fastest route to visit all of them within known constraints.”