Skip to content

Instantly share code, notes, and snippets.

@disolovyov
disolovyov / line_code.rb
Created September 8, 2010 16:30
Good for making your networks homework, if you're a TTI student. ;)
require 'rmagick'
module LineCode
class Turtle
# Creates a signal turtle with binary +data+ on a given +level+.
# Byte labels are aligned to +byte_width+ peaks.
def initialize(data, level, byte_width = 1)
@data = data.dup
@disolovyov
disolovyov / typewriter.rb
Created September 17, 2010 19:10
Don't ask.
class Fixnum;def*v;+(self+v);end;def/v;+(self-v);end;def+@;print self.chr;self;end;end
@disolovyov
disolovyov / Base File.sublime-settings
Created September 24, 2010 14:08
User File Settings для Sublime Text 2
{
"color_scheme": "Packages/Color Scheme - Default/Twilight.tmTheme",
"font_face": "Consolas",
"font_size": 12,
"translate_tabs_to_spaces": true,
"word_wrap": true,
"wrap_width": 79,
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"fallback_encoding": "Cyrillic (Windows 1251)",
@disolovyov
disolovyov / sync_encoding.rb
Created September 25, 2010 10:07
Sync terminal IO encoding with script encoding
# encoding: utf-8
verbose = $VERBOSE
$VERBOSE = nil
Encoding.default_external = Encoding.find(Encoding.locale_charmap)
Encoding.default_internal = __ENCODING__
$VERBOSE = verbose
[STDIN, STDOUT, STDERR].each do |io|
io.set_encoding(Encoding.default_external, Encoding.default_internal)
end
@disolovyov
disolovyov / simple_autoloader.rb
Created September 27, 2010 14:26 — forked from rkh/simple_autoloader.rb
Autoloading with namespaces
# Extremely simple autoloading implementation
class Module
alias const_missing_without_autoloading const_missing
def const_missing(const)
path = "#{name.gsub('::', '/')}/#{const}"
path.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
require path.downcase
const_defined?(const) ? const_get(const) : super
rescue LoadError => error
warn(error.message)
@disolovyov
disolovyov / copy_and_append.rb
Created October 28, 2010 07:07
Copy and append vs append
# Copy and append
s1 = 'hey'
s2 = s1
s1 += 'hi' # Two new string objects are created: 'hi' and the result of s1 + 'hi'
puts s1 # heyhi
puts s2 # hey
# Append
s3 = 'hey'
s4 = s3
@disolovyov
disolovyov / gist:660154
Created November 2, 2010 19:34
Пётр и шляпа
Пётр и шляпа
Прорубил окно в Европу
Чтоб показывать всем шляпу,
Чтоб заморский знал народ,
Что Россия тоже ест.
Иностранцы смотрят, — хопа!
На границы все начхав,
Сквозь окно к ним лезет шляпа —
@disolovyov
disolovyov / dossee_tsi_lv_release.md
Created November 8, 2010 22:28
Заметка о DOSSEE для tsi.lv

Две недели Open Source в Австрии

Уже третий год TSI предоставляет своим студентам возможность принять участие в международном академическом проекте по развитию свободного программного обеспечения в Европе: DOSSEE — Developing Open Source System Expertise in Europe.

Проект большей частью финансируется из средств Евросоюза и осуществляется в увлекательной форме, максимально приближенной к реальному сценарию разработки проектов, основанных на OSS (Open Source Software).

Настоящее участие в этом проекте позволит:

  • получить опыт работы в международной команде;
  • заработать 5 ECTS (Европейских кредитных пунктов), что ≈ 3 КП TSI;
@disolovyov
disolovyov / dossee_17_notes.md
Created November 17, 2010 23:26
Notes for the DOSSEE TSI meeting, November 17

Strong Ideas

Social Geodrawing

The point is to collaboratively draw a picture by using GPS-enabled devices with special software to communicate coordinates to a web server. GPS signal is used to store and draw a route with specific color for each participant. Different route patterns can be interpreted as gestures for drawing macros (e.g. pen toggling, flood fills). The drawing process can be streamed through a mobile client and a web interface, and saved as KML. Otherwise, this is basically a human scale collaborative Paint.

Web-enabled Interactive Whiteboard

Drawing on the interactive whiteboard is done with a specific marker, which can be virtually any object. The marker movement is detected by a camera and transferred to the virtual whiteboard, which is displayed via a projector on a blank surface. Input and output streams are routed through a web server, making them available to a wide audience. Mark

@disolovyov
disolovyov / gist:886727
Created March 25, 2011 11:38
Чертовски здорово проснуться на рассвете
Чертовски здорово проснуться на рассвете,
Часам не открывая глупым счёт.
И в приходяще-уходящем лете
Уверовать, что будет день ещё;
Как радостно дарить другим надежду,
Опорой быть и знать, что можешь сам
В убежище прощающую нежность
Найти всегда и верить в чудеса.
Я не открою истин, человеки,
Банально их рифмуя в две строки: