diff --git a/uk/news/_posts/2001-01-18-stable-snapshot-is-available.md b/uk/news/_posts/2001-01-18-stable-snapshot-is-available.md new file mode 100644 index 0000000000..d3eec3b3f1 --- /dev/null +++ b/uk/news/_posts/2001-01-18-stable-snapshot-is-available.md @@ -0,0 +1,15 @@ +--- +layout: news_post +title: "Доступний стабільний знімок" +author: "Matz" +translator: "Andrii Furmanets" +lang: uk +--- + +[Стабільний знімок][1] доступний. Це tar'ний та gzip'ний файл +останнього стабільного CVS. Він повинен бути кращим за останній випуск. + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz diff --git a/uk/news/_posts/2001-04-19-ruby-pocket-reference.md b/uk/news/_posts/2001-04-19-ruby-pocket-reference.md new file mode 100644 index 0000000000..b9ec434fdf --- /dev/null +++ b/uk/news/_posts/2001-04-19-ruby-pocket-reference.md @@ -0,0 +1,15 @@ +--- +layout: news_post +title: "Ruby Pocket Reference" +author: "Matz" +translator: "Andrii Furmanets" +lang: uk +--- + +O'Reilly нарешті вирішив опублікувати переклад Ruby Pocket +Reference. Це буде [повнорозмірна книга під назвою "Ruby in a Nutshell"][1]. + + + + +[1]: http://www.ora.com/catalog/ruby diff --git a/uk/news/_posts/2001-06-20-ruby-garden.md b/uk/news/_posts/2001-06-20-ruby-garden.md new file mode 100644 index 0000000000..b52660e3ed --- /dev/null +++ b/uk/news/_posts/2001-06-20-ruby-garden.md @@ -0,0 +1,14 @@ +--- +layout: news_post +title: "Ruby Garden" +author: "Matz" +translator: "Andrii Furmanets" +lang: uk +--- + +[Ruby Garden][1] – Новини для Ruby. + + + + +[1]: http://www.rubygarden.org/ diff --git a/uk/news/_posts/2001-07-10-removed-language-comparison-page.md b/uk/news/_posts/2001-07-10-removed-language-comparison-page.md new file mode 100644 index 0000000000..2d272979bb --- /dev/null +++ b/uk/news/_posts/2001-07-10-removed-language-comparison-page.md @@ -0,0 +1,16 @@ +--- +layout: news_post +title: "Видалено сторінку порівняння мов" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Matz вирішив видалити сторінку. + + + + + "Я видалив посилання на сторінку порівняння мов, + тому що занадто багато людей сприймають це занадто серйозно. + Це мало бути смішним." diff --git a/uk/news/_posts/2001-07-13-ruby-introduction-presentation.md b/uk/news/_posts/2001-07-13-ruby-introduction-presentation.md new file mode 100644 index 0000000000..f82ed2f257 --- /dev/null +++ b/uk/news/_posts/2001-07-13-ruby-introduction-presentation.md @@ -0,0 +1,15 @@ +--- +layout: news_post +title: "Презентація введення в Ruby" +author: "Matz" +translator: "Andrii Furmanets" +lang: uk +--- + +[Презентація введення в Ruby на клубі CTO в Нью-Йорку][1] від Jim +Menard 10 липня 2001 року. + + + + +[1]: http://www.io.com/~jimm/downloads/rubytalk/ diff --git a/uk/news/_posts/2002-01-06-ruby-cvs-repository-guide.md b/uk/news/_posts/2002-01-06-ruby-cvs-repository-guide.md new file mode 100644 index 0000000000..0e0b73c874 --- /dev/null +++ b/uk/news/_posts/2002-01-06-ruby-cvs-repository-guide.md @@ -0,0 +1,40 @@ +--- +layout: news_post +title: "Посібник з репозиторію Ruby CVS" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Вихідний код Ruby зберігається в репозиторіях CVS. Ви можете переглянути їх +через CVSweb: + +* https://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ + +Анонімний CVS також доступний: + + $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login + (Logging in to anonymous@cvs.ruby-lang.org) + CVS password: + $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src co ruby + + $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/doc login + (Logging in to anonymous@cvs.ruby-lang.org) + CVS password: + $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/doc co doc + + $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/www login + (Logging in to anonymous@cvs.ruby-lang.org) + CVS password: + $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/www co www + +Пароль не потрібен. Просто натисніть Enter. + +Крім того, CVSup також доступний: + +* http://cvs.ruby-lang.org/cvsup/ + +Ви знайдете тут "supfiles". З ними ви можете отримати частину або весь +репозиторій за допомогою CVSup. + +Ось і все, друзі! Веселої роботи! diff --git a/uk/news/_posts/2002-02-01-report-security-issues.md b/uk/news/_posts/2002-02-01-report-security-issues.md new file mode 100644 index 0000000000..63364838c7 --- /dev/null +++ b/uk/news/_posts/2002-02-01-report-security-issues.md @@ -0,0 +1,11 @@ +--- +layout: news_post +title: "Повідомлення про проблеми безпеки" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Будь ласка, надішліть листа на +[security@ruby-lang.org](mailto:security@ruby-lang.org), щоб повідомити про +проблеми безпеки. Повідомлені проблеми будуть опубліковані після виправлень. diff --git a/uk/news/_posts/2002-03-01-167-is-released.md b/uk/news/_posts/2002-03-01-167-is-released.md new file mode 100644 index 0000000000..b2873aaaa0 --- /dev/null +++ b/uk/news/_posts/2002-03-01-167-is-released.md @@ -0,0 +1,14 @@ +--- +layout: news_post +title: "Вийшов 1.6.7" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Вийшла нова стабільна версія [1.6.7][1]. + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/1.6/ruby-1.6.7.tar.gz diff --git a/uk/news/_posts/2002-09-18-dutch-translation-of-wwwruby-langorg.md b/uk/news/_posts/2002-09-18-dutch-translation-of-wwwruby-langorg.md new file mode 100644 index 0000000000..11c9d4b031 --- /dev/null +++ b/uk/news/_posts/2002-09-18-dutch-translation-of-wwwruby-langorg.md @@ -0,0 +1,15 @@ +--- +layout: news_post +title: "Голландський переклад www.ruby-lang.org" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +[Голландський переклад www.ruby-lang.org][1] доступний. Дякуємо John +Jacobs. + + + + +[1]: http://www.xs4all.nl/~jjacobs/index.html diff --git a/uk/news/_posts/2002-10-24-raa-replaced.md b/uk/news/_posts/2002-10-24-raa-replaced.md new file mode 100644 index 0000000000..55b739e160 --- /dev/null +++ b/uk/news/_posts/2002-10-24-raa-replaced.md @@ -0,0 +1,46 @@ +--- +layout: news_post +title: "RAA замінено" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Ми www-admin@ruby-lang.org переписали поточний [RAA][1], який став трохи +старим та пошарпаним. + +Зміни: + +* легка головна сторінка +* iso8859-1 => UTF-8 +* додано простий пошук за ключовими словами +* показувати проекти за вказаним власником + +Інтерфейси SOAP та XML-RPC також будуть оновлені. Користувачі інтерфейсів RAA SOAP та +XML-RPC, будь ласка, повідомте мені, якщо виникла проблема. Я трохи змінив +формат передачі. Див. нижче; + +* елементи id та owner\_id додано до кожного запису. Ці два елементи + містять додатне ціле число. +* Тільки для користувачів інтерфейсу SOAP: елементи url, download та email + позначені як тип xsd:anyURI. Ці елементи будуть розпаковані як об'єкт + URI на стороні клієнта, а не як об'єкт String. + +Окрім SOAP та XML-RPC, ми пропонуємо простий XML або RDF файл інформації RAA. +Вони знаходяться на http://raa.ruby-lang.org/xml.xml та +http://raa.ruby-lang.org/rdf.xml. Ви також можете отримати останню інформацію в +форматі RDF з http://raa.ruby-lang.org/since.mrb + +Користувачі інтерфейсів XML/RDF feed від pragdave повинні використовувати вищезазначені деякий час. +Колишні інтерфейси pragdave зараз не оновлюються через +заміну бази даних RAA. Майте на увазі, що деякі зміни також зроблено до цих +інтерфейсів. Див. нижче; + +* Файли \*.xml оновлюються кожні 15 хвилин, а не на льоту. +* Схема кодування символів змінена з iso-8859-1 на UTF-8. +* Формат екземпляра XML змінено для зручності користувачів. + + + + +[1]: http://raa.ruby-lang.org/ diff --git a/uk/news/_posts/2002-11-01-my20021101-ruby-conference-2002.md b/uk/news/_posts/2002-11-01-my20021101-ruby-conference-2002.md new file mode 100644 index 0000000000..e3b0b47d81 --- /dev/null +++ b/uk/news/_posts/2002-11-01-my20021101-ruby-conference-2002.md @@ -0,0 +1,24 @@ +--- +layout: news_post +title: "Ruby Conference 2002" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +(Витяг з [http://www.rubygarden.org/ruby?RubyIn2002][1].) + +Друга щорічна Ruby Conference відбулася у листопаді 2002 року в Сіетлі, +Вашингтон, США. + +Було близько п'ятнадцяти презентацій, а також ключова промова від +Matz. + +Слайди доповідей доступні на +[http://www.zenspider.com/Languages/Ruby/RubyConf2002/][2]. + + + + +[1]: http://www.rubygarden.org/ruby?RubyIn2002 +[2]: http://www.zenspider.com/Languages/Ruby/RubyConf2002/ diff --git a/uk/news/_posts/2002-11-25-ruby-installer-for-windows-at-sourceforge.md b/uk/news/_posts/2002-11-25-ruby-installer-for-windows-at-sourceforge.md new file mode 100644 index 0000000000..43ed0bfa6f --- /dev/null +++ b/uk/news/_posts/2002-11-25-ruby-installer-for-windows-at-sourceforge.md @@ -0,0 +1,30 @@ +--- +layout: news_post +title: "Ruby Installer For Windows на sourceforge" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Тепер ви можете отримати Ruby Installer For Windows з +[http://rubyinstaller.sourceforge.net/][1]. + +Витяг з сайту. + + Це "однокліковий", самодостатній інсталятор, який + включає саму мову Ruby, десятки популярних + розширень та пакетів, редактор з підсвічуванням синтаксису + та середовище виконання, а також файл довідки Windows, який + містить повний текст книги "Programming Ruby: + The Pragmatic Programmer's Guide". + +Це обов'язковий елемент для користувачів Ruby на Win32. Також перевірте +[бінарні файли usa][2] та [бінарні файли win32 eban][3], щоб отримати +бінарні файли Win32 з десятками популярних розширень. + + + + +[1]: http://rubyinstaller.sourceforge.net/ +[2]: http://www.dm4lab.to/~usa/ruby/index_en.html#download +[3]: https://www.ruby-lang.org/~eban/ruby/binaries/ diff --git a/uk/news/_posts/2002-12-05-matzs-slides-at-4-conferences.md b/uk/news/_posts/2002-12-05-matzs-slides-at-4-conferences.md new file mode 100644 index 0000000000..6b0d0adfa5 --- /dev/null +++ b/uk/news/_posts/2002-12-05-matzs-slides-at-4-conferences.md @@ -0,0 +1,33 @@ +--- +layout: news_post +title: "Слайди Matz на 4 конференціях" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Слайди Matz на Ruby Conference 2002, OOPSLA2002, LL2 та +O+F Kansai (японська) доступні. + +[Ruby Conference 2002][1] +: Слайди: [http://www.rubyist.net/~matz/slides/rc2002/](http://www.rubyist.net/~matz/slides/rc2002/) + +[OOPSLA 2002][2] +: Слайди: [http://www.rubyist.net/~matz/slides/oopsla2002/](http://www.rubyist.net/~matz/slides/oopsla2002/) + +[LL2][3] +: Слайди: [http://www.rubyist.net/~matz/slides/ll2/](http://www.rubyist.net/~matz/slides/ll2/) + +[KANSAI OPENSOURCE+FREEWARE 2002][4] +: Слайди: [http://www.rubyist.net/~matz/slides/of-kansai2002/](http://www.rubyist.net/~matz/slides/of-kansai2002/) + +Останній пункт японською мовою. +Порівняйте його зі слайдами LL2 англійською, щоб вивчити японську. :) + + + + +[1]: http://www.rubyconf.org/index.php +[2]: http://oopsla.acm.org/ +[3]: http://ll2.ai.mit.edu/ +[4]: http://of.good-day.net/ diff --git a/uk/news/_posts/2002-12-07-raa-2-1-0.md b/uk/news/_posts/2002-12-07-raa-2-1-0.md new file mode 100644 index 0000000000..8f993f7c99 --- /dev/null +++ b/uk/news/_posts/2002-12-07-raa-2-1-0.md @@ -0,0 +1,53 @@ +--- +layout: news_post +title: "RAA.succ!.version #=> 2.1.0" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +RAA оновлено. + +Зміни: + +* URL змінено. RAA тепер на [http://raa.ruby-lang.org/][1]. Колишній + URL https://www.ruby-lang.org/en/raa.html перенаправляється на новий URL. +* Додано нову сторінку "All", яка перелічує всі записи RAA в алфавітному порядку. +* Показувати кількість проектів у кожній major\_category або minor category в + перегляді списку. Зараз у нас 753 проекти. Чи ваш шлунок повний? +* Додано опцію пошуку AND/OR. Пошук RAA - це пошук підрядка, а не пошук + слова. +* Поле "name" проекту обмежено відповідністю + /\\A\[a-z0-9\_-\]\{2,15}\\z/ . + * Користувачі RAA можуть посилатися на проект з простим ім'ям, як "druby". Вони + не повинні пам'ятати номер ID або довге ім'я, як "druby – + distributed ruby". + * Власник додатку повинен вказати канонічне ім'я(я) свого(їх) + проекту(ів). + + Це поле є замороженим (статичним, const) полем. Для кожного існуючого + запису я підготував канонічне ім'я, створене з колишнього імені, Project + UNIX Name в sourceforge або імені файлу його елемента завантаження. Див. + [\[ruby-talk:58018\]][2] для вашого запису. Оскільки я створив канонічні + імена автоматично за допомогою скрипта[1](#fn1), деякі власники + можуть подумати, що це не підходяще ім'я для їхнього проекту. Тому ДО + КІНЦЯ ЦЬОГО РОКУ власник може змінити + це поле "name" свого запису. +* Додано нове поле "short description". Власники можуть описати короткий (63 байти + або коротше) опис тут. Наразі це поле заповнено колишнім + полем "name". Не соромтеся змінювати це поле будь-коли. +* Щоб додати запис додатку, ви повинні ввести парольну фразу двічі. Не + забудьте свою парольну фразу. + +\[1\] інструмент генерації канонічного імені; +https://www.ruby-lang.org/cgi-bin/cvsweb.cgi/app/raa/tool/name\_conv.rb +{: #fn1} + +Команда розробки RAA:
+NAKAMURA, Hiroshi aka NaHi та U.Nakamura aka usa. + + + + +[1]: http://raa.ruby-lang.org/ +[2]: https://blade.ruby-lang.org/ruby-talk/58018 diff --git a/uk/news/_posts/2002-12-09-raa-xml-interfaces-are-updated.md b/uk/news/_posts/2002-12-09-raa-xml-interfaces-are-updated.md new file mode 100644 index 0000000000..8694ff3a89 --- /dev/null +++ b/uk/news/_posts/2002-12-09-raa-xml-interfaces-are-updated.md @@ -0,0 +1,35 @@ +--- +layout: news_post +title: "Інтерфейси RAA XML оновлено" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Після RAA/2.1, інтерфейси RAA XML оновлено. + +* Інтерфейс SOAP & XML-RPC Ви можете отримати "short\_description" з + об'єкта Project. +* URL простих XML змінено. + * [http://raa.ruby-lang.org/raa-xml.xml][1] + * [http://raa.ruby-lang.org/raa-xml10.xml][2] + + Останній включає лише 10 нещодавно оновлених елементів. +* URL RSS/0.91 змінено. + * [http://raa.ruby-lang.org/raa-rdf.xml][3] + * [http://raa.ruby-lang.org/raa-rdf10.xml][4] + + Чи є хтось, хто може допомогти нам надавати файл RSS/1.0? +* YAML (не XML!) + * [http://raa.ruby-lang.org/raa-yaml.yml][5] + * [http://raa.ruby-lang.org/raa-yaml10.yml][6] + + + + +[1]: http://raa.ruby-lang.org/raa-xml.xml +[2]: http://raa.ruby-lang.org/raa-xml10.xml +[3]: http://raa.ruby-lang.org/raa-rdf.xml +[4]: http://raa.ruby-lang.org/raa-rdf10.xml +[5]: http://raa.ruby-lang.org/raa-yaml.yml +[6]: http://raa.ruby-lang.org/raa-yaml10.yml diff --git a/uk/news/_posts/2002-12-11-ruby-hacking-guide.md b/uk/news/_posts/2002-12-11-ruby-hacking-guide.md new file mode 100644 index 0000000000..e920f36d17 --- /dev/null +++ b/uk/news/_posts/2002-12-11-ruby-hacking-guide.md @@ -0,0 +1,539 @@ +--- +layout: news_post +title: "\"Ruby Hacking Guide\" вийшов, хоча ..." +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +[![RHG](http://direct.ips.co.jp/directsys/Images/Goods/1/1721B.gif){: +.icon width="70" height="88"}][cover] Книга під назвою "Ruby source code Kanzen +Kaisetsu – Ruby Hacking Guide" від Aoki-san вийшла, хоча вона написана +японською мовою… + +Це обов'язковий елемент для Ruby хакера, який може читати японською. :( + +* Видавець: Impress +* Автор: AOKI, Minero під редакцією MATSUMOTO, Yukihiro +* ISBN: 4-8443-1721-0 + +[cover]: http://direct.ips.co.jp/book/Template/Goods/go_BookstempGR.cfm?GM_ID=1721&SPM_ID=1&CM_ID=004000G20&PM_No=&PM_Class=&HN_NO=00420 + +Я спробував перекласти зміст. +Майте на увазі, що це неофіційний переклад. + + Передмова + i Цільовий читач + ii Структура цієї книги + iii Середовище + ix Веб-сайт + x Подяки + 0 Передмова + 0.1 Характеристики Ruby + 0.2 Як хакнути вихідний код + 0.2.1 Принцип + 0.2.2 Аналітична техніка + 0.2.3 Динамічний аналіз + 0.2.4 Статичний аналіз + 0.2.5 Історія знає все + 0.2.6 Інструмент для статичного аналізу + 0.3 Збірка + 0.3.1 Версія + 0.3.2 Отримання вихідного коду + 0.3.3 Компіляція + 0.4 Деталі збірки + 0.4.1 configure + 0.4.2 autoconf + 0.4.3 make + 0.5 CVS + 0.5.1 Вивчіть CVS за 50 рядків + 0.6 Структура вихідного коду ruby + 0.6.1 Фізична структура + 0.6.2 Розділення вихідного коду + 0.6.3 Логічна структура + Розділ I: Об'єкт + 1. Мінімум мови Ruby + 1.1 Об'єкт + 1.1.1 String + 1.1.2 Різні літерали + 1.1.3 Виклик методу + 1.2 Програма + 1.2.1 Top-level + 1.2.2 Локальна змінна + 1.2.3 Константна змінна + 1.2.4 Структура керування + 1.3 Клас та метод + 1.3.1 Клас + 1.3.2 Визначення класу + 1.3.3 Визначення методу + 1.3.4 self + 1.3.5 Змінна екземпляра + 1.3.6 Initialize + 1.3.7 Наслідування + 1.3.8 Наслідування змінної ... ? + 1.3.9 Module + 1.4 Програма II + 1.4.1 Вкладена константа + 1.4.2 Все оцінюється + 1.4.3 Область видимості локальної змінної + 1.4.4 self як контекст + 1.4.5 Завантаження + 1.5 Про клас, більше + 1.5.1 Про константу продовжується + 1.5.2 Мета-клас + 1.5.3 Мета-об'єкт + 1.5.4 Singleton метод + 1.5.5 Змінна класу + 1.6 Глобальна змінна + 2. Об'єкт + 2.1 Структура об'єкта Ruby + 2.1.1 Керівні принципи + 2.1.2 VALUE та структура об'єкта + 2.1.3 Вбудовані об'єкти в VALUE + 2.2 Метод + 2.2.1 struct RClass + 2.2.2 Пошук методу + 2.3 Змінна екземпляра + 2.3.1 rb_ivar_set() + 2.3.2 generic_ivar_set() + 2.3.3 Проміжок у структурі + 2.3.4 rb_ivar_get() + 2.4 Структура об'єкта + 2.4.1 struct RString + 2.4.2 struct RArray + 2.4.3 struct RRegexp + 2.4.4 struct RHash + 2.4.5 struct RFile + 2.4.6 struct RData + 3. Ім'я та таблиця імен + 3.1 st_table + 3.1.1 Контур + 3.1.2 Структура даних + 3.1.3 Приклад st_hash_type + 3.1.4 st_lookup() + 3.1.5 st_add_direct() + 3.1.6 st_insert() + 3.2 ID та символ + 3.2.1 Від char* до ID + 3.2.2 Від ID до char* + 3.2.3 Перетворення між VALUE та ID + 4. Клас та модуль + 4.1 Визначення класу та методу + 4.1.1 Визначення класу + 4.1.2 Визначення вкладеного класу + 4.1.3 Визначення модуля + 4.1.4 Визначення методу + 4.1.5 Визначення singleton методу + 4.1.6 Точка входу + 4.2 Singleton клас + 4.2.1 rb_define_singleton_method() + 4.2.2 rb_singleton_class() + 4.2.3 Звичайний клас та singleton клас + 4.2.4 Стиснення rb_singleton_class() + 4.2.5 Стиснення rb_make_metaclass() + 4.2.6 Що таке singleton клас + 4.2.7 Singleton клас та екземпляр + 4.2.8 Підсумок + 4.3 Мета-клас + 4.3.1 Наслідування singleton методу + 4.3.2 Singleton клас класу + 4.3.3 Клас класу класу + 4.3.4 Singleton клас та мета-клас + 4.3.5 Bootstrap + 4.4 Ім'я класу + 4.4.1 Ім'я до класу + 4.4.2 Клас до імені + 4.4.3 Рівень вкладеності 2 або більше + 4.4.4 Анонімний клас + 4.5 Include + 4.5.1 rb_include_module (1) + 4.5.2 include_class_new() + 4.5.3 Симуляція + 4.5.4 rb_include_module (2) + 5. Збірка сміття + 5.1 Образ пам'яті під час виконання + 5.1.1 Сегмент + 5.1.2 alloca() + 5.2 Контур + 5.2.1 Що таке GC + 5.2.2 Що робиться в GC + 5.2.3 Mark & sweep + 5.2.4 Stop & copy + 5.2.5 Підрахунок посилань + 5.3 Управління об'єктами + 5.3.1 struct RVALUE + 5.3.2 Куча об'єктів + 5.3.3 freelist + 5.3.4 add_heap() + 5.3.5 rb_newobj() + 5.4 Mark + 5.4.1 rb_gc_mark() + 5.4.2 rb_gc_mark_children() + 5.4.3 rb_gc() + 5.4.4 Стек Ruby + 5.4.5 Регістр + 5.4.6 Машинний стек + 5.4.7 Інші кореневі об'єкти + 5.5 Sweep + 5.5.1 Спеціальне оброблення для NODE + 5.5.2 Фіналізатор + 5.5.3 rb_gc_force_recycle() + 5.6 Роздуми + 5.6.1 Звільнення простору пам'яті + 5.6.2 Покоління GC + 5.6.3 Компактність + 5.6.4 volatile, заходи проти GC + 5.7 Час початку + 5.7.1 Всередині gc.c + 5.7.2 В інтерпретаторі + 5.8 Виділення об'єкта + 5.8.1 Фреймворк виділення + 5.8.2 Виділення користувацького об'єкта + 5.8.3 Проблема фреймворку виділення + 6. Змінна та константа + 6.1 Контур цього розділу + 6.1.1 Змінна Ruby + 6.1.2 Ruby API для змінної + 6.1.3 Точка цього розділу + 6.2 Змінна класу + 6.2.1 Посилання + 6.3 Константа + 6.3.1 Присвоєння + 6.3.2 Посилання + 6.4 Глобальна змінна + 6.4.1 Загальні зауваження + 6.4.2 Структура даних + 6.4.3 Посилання + 7. Безпека + 7.1 Принцип + 7.2 Реалізація + Розділ II: Синтаксичний аналіз + 8. Мова Ruby детально + 8.1 Літерал + 8.1.1 String + 8.1.2 Символ + 8.1.3 Регулярний вираз + 8.1.4 Масив + 8.1.5 Hash + 8.1.6 Діапазон + 8.1.7 Symbol + 8.1.8 Числове значення + 8.2 Метод + 8.2.1 Визначення та виклик + 8.2.2 Значення методу + 8.2.3 Опустимий аргумент + 8.2.4 Опущення дужок для аргументу + 8.2.5 Аргумент та масив + 8.2.6 Різні форми виклику + 8.2.7 super + 8.3 Ітератор + 8.3.1 Порівняння з функцією вищого порядку + 8.3.2 Локальна змінна блоку + 8.3.3 Синтаксис ітератора + 8.3.4 yield + 8.3.5 Proc + 8.4 Вираз + 8.4.1 if + 8.4.2 unless + 8.4.3 and && or || + 8.4.4 Умовний арифметичний оператор + 8.4.5 while until + 8.4.6 case + 8.4.7 Виняток + 8.4.8 Змінна та константа + 8.4.9 Присвоєння + 8.4.10 Самоприсвоєння + 8.4.11 defined? + 8.5 Речення + 8.5.1 Термінал речення + 8.5.2 Модифікатор if/unless + 8.5.3 Модифікатор while/until + 8.5.4 Визначення класу + 8.5.5 Визначення методу + 8.5.6 Визначення singleton методу + 8.5.7 Визначення singleton класу + 8.5.8 Множинне присвоєння + 8.5.9 alias + 8.5.10 undef + 8.6 Інше + 8.6.1 Коментар + 8.6.2 Вбудований документ + 8.6.3 Мультибайтовий символ + 9. yacc за день + 9.1 Контур + 9.1.1 Парсер та сканер + 9.1.2 Послідовність символів + 9.1.3 Генератор парсерів + 9.2 Грамматика + 9.2.1 Файл граматики + 9.2.2 Що робить yacc + 9.2.3 BNF + 9.2.4 Термінальний та нетермінальний символ + 9.2.5 Метод тестування + 9.2.6 Порожнє правило + 9.2.7 Рекурсивне визначення + 9.3 Побудова значення + 9.3.1 Shift та reduce + 9.3.2 Дія + 9.3.3 Значення символу + 9.3.4 yacc та тип + 9.3.5 Підключення парсера та сканера + 9.3.6 Вбудована дія + 9.4 Реалістична тема + 9.4.1 Колізія + 9.4.2 Lookahead + 9.4.3 Порядок пріоритету оператора + 10. Парсер + 10.1 Керівні принципи + 10.1.1 Побудова парсера + 10.1.2 Розділення parse.y + 10.2 Загальні зауваження про правило граматики + 10.2.1 Правило кодування + 10.2.2 Важливий символ + 10.2.3 Загальна структура + 10.2.4 program + 10.2.5 stmt + 10.2.6 expr + 10.2.7 arg + 10.2.8 primary + 10.2.9 Колізія списку + 10.3 Сканер + 10.3.1 Ескіз парсера + 10.3.2 Буфер вводу + 10.3.3 Буфер токенів + 10.3.4 yylex() + 10.3.5 Тип рядка + 11. Сканер стану + 11.1 Контур + 11.1.1 Конкретний приклад + 11.1.2 lex_state + 11.1.3 Читання сканера стану + 11.1.4 Про кожен стан + 11.2 Керування переносом рядка + 11.2.1 Проблема + 11.2.2 Реалізація + 11.3 Ім'я методу, яке є зарезервованим словом + 11.3.1 Проблема + 11.3.2 Визначення методу + 11.3.3 Виклик методу + 11.3.4 Symbol + 11.4 Модифікатор + 11.4.1 Проблема + 11.4.2 Реалізація + 11.5 Колізія do + 11.5.1 Проблема + 11.5.2 Рішення на рівні правила + 11.5.3 Рішення на рівні символу + 11.5.4 COND_P() + 11.6 tLPAREN_ARG (1) + 11.6.1 Проблема + 11.6.2 Дослідження + 11.6.3 У випадку 1 аргументу + 11.6.4 Випадок 2 або більше аргументів + 11.7 tLPAREN_ARG (2) + 11.7.1 Проблема + 11.7.2 Рішення на рівні правила + 11.7.3 {} ітератор + 11.7.4 do end ітератор + 11.7.5 Факт та істина + 12. Побудова синтаксичного дерева + 12.1 Вузол + 12.1.1 NODE + 12.1.2 Тип вузла + 12.1.3 Ім'я файлу та номер рядка + 12.1.4 rb_node_newnode() + 12.2 Побудова синтаксичного дерева + 12.2.1 YYSTYPE + 12.2.2 Пейзаж з синтаксичним деревом + 12.2.3 Лист + 12.2.4 Гілка + 12.2.5 Ствол + 12.2.6 Два списки + 12.3 Семантичний аналіз + 12.3.1 Помилка в дії + 12.3.2 value_expr() + 12.3.3 Глобальний образ перевірки значення + 12.4 Локальна змінна + 12.4.1 Визначення локальної змінної + 12.4.2 Локальна змінна блоку + 12.4.3 Структура даних + 12.4.4 Область видимості локальної змінної + 12.4.5 push та pop + 12.4.6 Додавання змінної + 12.4.7 Підсумок локальної змінної + 12.4.8 Локальна змінна блоку + 12.4.9 ruby_dyna_vars в парсері + Розділ III: Оцінка + 13. Структура оцінювача + 13.1 Контур Розділу III + 13.1.1 Що таке оцінювач + 13.1.2 Характеристики оцінювача ruby + 13.1.3 eval.c + 13.2 Перехід від main через ruby_run до rb_eval + 13.2.1 Граф викликів + 13.2.2 main() + 13.2.3 ruby_init() + 13.2.4 ruby_options() + 13.2.5 ruby_run() + 13.3 rb_eval() + 13.3.1 Контур + 13.3.2 NODE_IF + 13.3.3 NODE_NEWLINE + 13.3.4 Псевдо локальна змінна + 13.3.5 Тег стрибка + 13.3.6 NODE_WHILE + 13.3.7 Оцінка значення while + 13.4 Виняток + 13.4.1 raise + 13.4.2 Глобальний образ + 13.4.3 ensure + 13.4.4 rescue + 14. Контекст + 14.1 Стек Ruby + 14.1.1 Контекст та стек + 14.1.2 ruby_frame + 14.1.3 ruby_scope + 14.1.4 ruby_block + 14.1.5 ruby_iter + 14.1.6 ruby_dyna_vars + 14.1.7 ruby_class + 14.1.8 ruby_cref + 14.1.9 Макроси PUSH/POP + 14.1.10 Інша умова + 14.2 Визначення модуля + 14.2.1 Дослідження + 14.2.2 NODE_MODULE + 14.2.3 module_setup() + 14.2.4 Побудова області видимості локальної змінної + 14.2.5 Виділення простору пам'яті локальної змінної + 14.2.6 TMP_ALLOC() + 14.2.7 Зміна цілі визначення методу + 14.2.8 Вкладений клас + 14.2.9 Заміна кадрів + 14.3 Визначення методу + 14.3.1 Дослідження + 14.3.2 NODE_DEFN + 14.3.3 copy_node_scope() + 14.3.4 rb_add_method() + 14.4 Присвоєння та посилання + 14.4.1 Локальна змінна + 14.4.2 Константа + 14.4.3 Змінна класу + 14.4.4 Множинне присвоєння + 15. Метод + 15.1 Пошук методу + 15.1.1 Термінологія + 15.1.2 Дослідження + 15.1.3 SETUP_ARGS() + 15.1.4 rb_call() + 15.1.5 Кеш методу + 15.2 Виклик + 15.2.1 rb_call0() + 15.2.2 PUSH_FRAME() + 15.2.3 rb_call0() -- NODE_CFUNC + 15.2.4 rb_call0() -- NODE_SCOPE + 15.2.5 Встановлення аргументу + 15.2.6 super + 16. Блок + 16.1 Ітератор + 16.1.1 Глобальний образ + 16.1.2 Push блок + 16.1.3 Виклик методу ітератора + 16.1.4 Виклик блоку + 16.1.5 Цільовий призначений стрибок + 16.1.6 Перевірка блоку + 16.2 Proc + 16.2.1 Виділення об'єкта Proc + 16.2.2 Копіювання кадрів + 16.2.3 Виклик Proc + 16.2.4 Блок та Proc + 17. Динамічна оцінка + 17.1 Контур + 17.1.1 eval + 17.1.2 module_eval та instance_eval + 17.2 eval + 17.2.1 eval() + 17.2.2 top_local + 17.2.3 Локальна змінна блоку + 17.3 instance_eval + 17.3.1 Глобальний образ + 17.3.2 Після вбудовування + 17.3.3 До вбудовування + Розділ IV: Краї оцінювача + 18. Завантаження + 18.1 Контур + 18.1.1 Інтерфейс + 18.1.2 Потік загального управління + 18.1.3 Ціль цього розділу + 18.2 Пошук бібліотеки + 18.2.1 rb_f_require() + 18.2.2 rb_find_file() + 18.2.3 Очікування завантаження + 18.3 Завантаження програми Ruby + 18.3.1 rb_load() + 18.3.2 rb_load_file() + 18.4 Завантаження бібліотеки розширень + 18.4.1 rb_f_require() -- load_dyna + 18.4.2 Огляд зв'язування + 18.4.3 Дійсно динамічне зв'язування + 18.4.4 API динамічного завантаження + 18.4.5 dln_load() + 18.4.6 dln_load() -- dlopen() + 18.4.7 dln_load()-- Win32 + 19. Потік + 19.1 Контур + 19.1.1 Інтерфейс Ruby + 19.1.2 ruby thread + 19.1.3 Чи це витісняючий? + 19.1.4 Система керування + 19.1.5 Що таке перемикання потоків? + 19.1.6 Метод перемикання контексту + 19.1.7 План пояснення + 19.2 Тригер + 19.2.1 Очікування I/O + 19.2.2 Очікування інших потоків + 19.2.3 Очікування часу + 19.2.4 Перемикання через закінчення часу + 19.3 Планування + 19.3.1 rb_thread_schedule() + 19.3.2 select + 19.3.3 Підготовка до select + 19.3.4 Виклик select + 19.3.5 Визначення наступного потоку + 19.3.6 Перемикання потоку + 19.4 Перемикання контексту + 19.4.1 Базова лінія + 19.4.2 rb_thread_save_context() + 19.4.3 rb_thread_restore_context() + 19.4.4 Проблема + Фінальний розділ: Майбутнє Ruby + 20.1 Проблеми, які потрібно вирішити + 20.1.1 Продуктивність GC + 20.1.2 Реалізація парсера + 20.1.3 Повторно використовуваний парсер + 20.1.4 Приховування коду + 20.1.5 Об'єкт інтерпретатора + 20.1.6 Структура оцінювача + 20.1.7 Швидкість оцінювача + 20.1.8 Реалізація потоку + 20.2 ruby2 + 20.2.1 Rite + 20.2.2 Мова опису + 20.2.3 GC + 20.2.4 Парсер + 20.2.5 Оцінювач + 20.2.6 Потік + 20.2.7 M17N + 20.2.8 IO + 20.3 Ruby Hacking Guide + 20.3.1 Покоління GC + 20.3.2 Oniguruma + 20.3.3 ripper + 20.3.4 Замінюючий парсер + 20.3.5 JRuby + 20.3.6 NETRuby + 20.3.7 Як брати участь у розробці Ruby + 20.3.8 В кінці + Додаток A: Довідник функцій та макросів + Додаток B: Посилання + Індекс diff --git a/uk/news/_posts/2002-12-16-toward-ruby-langorg-renewal-trial-website-offered.md b/uk/news/_posts/2002-12-16-toward-ruby-langorg-renewal-trial-website-offered.md new file mode 100644 index 0000000000..461632437d --- /dev/null +++ b/uk/news/_posts/2002-12-16-toward-ruby-langorg-renewal-trial-website-offered.md @@ -0,0 +1,38 @@ +--- +layout: news_post +title: "До оновлення ruby-lang.org; запропоновано пробний веб-сайт" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Ми, команда вебмайстрів ruby-lang.org, реформували дизайн нашого офіційного сайту, +щоб ми могли надавати природну навігацію контенту та +інформацію про Ruby вчасно. + +Тепер ми можемо запропонувати пробну версію майбутнього офіційного сайту. Ось він: + +> [http://dev.ruby-lang.org/en/][1] + +А ось японський сайт: + +> [http://dev.ruby-lang.org/ja/][2] + +Спробуйте та подивіться на нього. + +Наша схема - подвійний випуск з ruby 1.6.8; перемикання сайту +буде в кінці цього року, якщо не будуть знайдені критичні проблеми. +Якщо ви їх знайдете, не соромтеся повідомити нам через цей список або надіслати листа безпосередньо +на адресу нижче. + +Всього найкращого, + +—команда вебмайстрів ruby-lang.org
+[webmaster@ruby-lang.org](mailto:webmaster@ruby-lang.org) +{: style="text-align: right"} + + + + +[1]: http://dev.ruby-lang.org/en/ +[2]: http://dev.ruby-lang.org/ja/ diff --git a/uk/news/_posts/2002-12-18-color-scheme-of-wwwruby-langorg.md b/uk/news/_posts/2002-12-18-color-scheme-of-wwwruby-langorg.md new file mode 100644 index 0000000000..83ad76f64c --- /dev/null +++ b/uk/news/_posts/2002-12-18-color-scheme-of-wwwruby-langorg.md @@ -0,0 +1,21 @@ +--- +layout: news_post +title: "Кольорова схема www.ruby-lang.org" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Ми, вебмайстри, вирішили змінити червону кольорову схему цього сайту +згідно з рекомендацією в [\[ruby-talk:59202\]][1]. + +Ви можете побачити дещо дивну кольорову схему під час розробки нашого CSS. +Дякуємо за вашу добру співпрацю. + +І ми також дякуємо людям, які обговорюють кольорову схему на +ruby-talk. + + + + +[1]: https://blade.ruby-lang.org/ruby-talk/59202 diff --git a/uk/news/_posts/2002-12-24-ruby-1-6-8-and-1-8-0-preview-1.md b/uk/news/_posts/2002-12-24-ruby-1-6-8-and-1-8-0-preview-1.md new file mode 100644 index 0000000000..4cb64b9193 --- /dev/null +++ b/uk/news/_posts/2002-12-24-ruby-1-6-8-and-1-8-0-preview-1.md @@ -0,0 +1,26 @@ +--- +layout: news_post +title: "Ruby 1.6.8 та 1.8.0 preview 1" +author: "Matz" +translator: "Andrii Furmanets" +lang: uk +--- + +Я щойно розмістив пакет випуску 1.6.8 на ftp. 1.6.8 повинен бути +останнім випуском у серії 1.6.x. Перевірте + +* [https://cache.ruby-lang.org/pub/ruby/1.6/ruby-1.6.8.tar.gz][1] + +Я також розмістив перший preview 1.8.0 на + +* [https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0-preview1.tar.gz][2] +* [https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0-preview1-errata.diff][3] + +Веселого Різдва! + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/1.6/ruby-1.6.8.tar.gz +[2]: https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0-preview1.tar.gz +[3]: https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0-preview1-errata.diff diff --git a/uk/news/_posts/2003-01-07-ruby-in-2002-contents-wanted.md b/uk/news/_posts/2003-01-07-ruby-in-2002-contents-wanted.md new file mode 100644 index 0000000000..fb99e44d71 --- /dev/null +++ b/uk/news/_posts/2003-01-07-ruby-in-2002-contents-wanted.md @@ -0,0 +1,26 @@ +--- +layout: news_post +title: "Ruby In 2002: Потрібен контент" +author: "tamura" +translator: "Andrii Furmanets" +lang: uk +--- + +Тут на Ruby Garden Wiki з'явилася [сторінка][1] для компіляції року Ruby +2002 та планів на 2003. Термін - 9 січня. RubyIn2002 +[http://www.rubygarden.org/ruby?RubyIn2002][1] Ця сторінка підтримує +наступний план: "Рік у мовах сценаріїв +(Lua/Perl/Python/Ruby/Tcl)". Мета цього - заохотити +ці спільноти мов сценаріїв співпрацювати одна з одною; його +перший крок - знати сусідів, що дозволить нам ділитися +нашими зусиллями щодо сценаріїв. Голова - Mitchell N. Charity. див. +також: [\[ruby-talk:60604\]][2], [\[ruby-talk:60731\]][3] Фінальний результат +можна побачити на [http://www.vendian.org/language\_year/][4]. + + + + +[1]: http://www.rubygarden.org/ruby?RubyIn2002 +[2]: http://www.ruby-talk.com/60604 +[3]: http://www.ruby-talk.com/60731 +[4]: http://www.vendian.org/language_year/ diff --git a/uk/news/_posts/2003-01-31-raa-2-3-0.md b/uk/news/_posts/2003-01-31-raa-2-3-0.md new file mode 100644 index 0000000000..e82c004758 --- /dev/null +++ b/uk/news/_posts/2003-01-31-raa-2-3-0.md @@ -0,0 +1,23 @@ +--- +layout: news_post +title: "RAA.succ!.version #=> 2.3.0" +author: "usa" +translator: "Andrii Furmanets" +lang: uk +--- + +RAA [Ruby Application Archive][1] оновлено. (див. [\[ruby-talk:63170\]][2]) Зміни: + +* Змінити URL: www.ruby-lang.org/raa -> raa.ruby-lang.org. + Доступ до старих URL повинен перенаправлятися. +* Додати сторінку для показу проектів, відсортованих хронологічно. +* Впровадити таблицю "Що оновлено" на головній сторінці. +* Додати поле швидкого пошуку у верхньому правому куті кожної сторінки. +* Об'єднати деякі підкатегорії. [\[ruby-talk:62840\]][3] + + + + +[1]: http://raa.ruby-lang.org/ +[2]: https://blade.ruby-lang.org/ruby-talk/63170 +[3]: https://blade.ruby-lang.org/ruby-talk/62840 diff --git a/uk/news/_posts/2003-02-21-first-europeen-ruby-conference.md b/uk/news/_posts/2003-02-21-first-europeen-ruby-conference.md new file mode 100644 index 0000000000..f2eb7df213 --- /dev/null +++ b/uk/news/_posts/2003-02-21-first-europeen-ruby-conference.md @@ -0,0 +1,23 @@ +--- +layout: news_post +title: "Перша європейська Ruby конференція" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +(MNeumann оголосив про першу європейську Ruby конференцію в +[\[ruby-talk:65418\]][1]. Нижче наведено витяг з посту.) + +> Перша європейська Ruby конференція відбудеться з суботи 21 червня до +> неділі 22 червня в Університеті Карлсруе в Німеччині. +> +> Всі, хто цікавиться Ruby, вітаються! + +(Для більш детальної інформації про вхідну плату, заклик до доповідачів, +розсилки списків та інше, див. [\[ruby-talk:65418\]][1]) + + + + +[1]: https://blade.ruby-lang.org/ruby-talk/65418 diff --git a/uk/news/_posts/2003-02-24-happy-birthday-ruby.md b/uk/news/_posts/2003-02-24-happy-birthday-ruby.md new file mode 100644 index 0000000000..1ff330e56b --- /dev/null +++ b/uk/news/_posts/2003-02-24-happy-birthday-ruby.md @@ -0,0 +1,22 @@ +--- +layout: news_post +title: "З Днем Народження, Ruby" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +(dblack опублікував статтю 'З Днем Народження, Ruby, та оголошення….' +\[ruby-talk:65632\]. Нижче наведено витяг зі статті.) + +> Сьогодні, 24 лютого 2003 року, 10-й день народження Ruby. З Днем Народження, +> Ruby! І привітання Matz! + +dblack також оголошує про нову неприбуткову організацію [Ruby Central, +Inc][1] та RubyConf 2003!. Див. [\[ruby-talk:65632\]][2]. + + + + +[1]: http://rubycentral.org +[2]: https://blade.ruby-lang.org/ruby-talk/65632 diff --git a/uk/news/_posts/2003-08-04-ruby-180-released.md b/uk/news/_posts/2003-08-04-ruby-180-released.md new file mode 100644 index 0000000000..ce91bae9ea --- /dev/null +++ b/uk/news/_posts/2003-08-04-ruby-180-released.md @@ -0,0 +1,34 @@ +--- +layout: news_post +title: "вийшов ruby-1.8.0!" +author: "sughimsi" +translator: "Andrii Furmanets" +lang: uk +--- + +Давно не було оновлення мінорної версії… + +Ось початковий офіційний випуск стабільної версії **ruby 1.8**. + +_Сайт завантаження_ приведе вас до вихідного коду +ruby-1.8.0.tar.gz. Його MD5SUM: + + + +582a65e52598a4a1e9fce523e16e67d6 + +Бінарні файли будуть там. + +Деякі функції змінено з попередньої стабільної версії ruby 1.6.x; Див. +[https://cache.ruby-lang.org/pub/ruby/1.8/changes.1.8.0][2]. + +Дякуємо matz та всім комітерам за всі ваші зусилля! + + + + +[1]: {{ site.url }}/download-1.8.0.rbx +[2]: https://cache.ruby-lang.org/pub/ruby/1.8/changes.1.8.0 diff --git a/uk/news/_posts/2003-10-01-ruby-conference-2003.md b/uk/news/_posts/2003-10-01-ruby-conference-2003.md new file mode 100644 index 0000000000..ab78a79931 --- /dev/null +++ b/uk/news/_posts/2003-10-01-ruby-conference-2003.md @@ -0,0 +1,23 @@ +--- +layout: news_post +title: "Ruby Conference 2003" +author: "sughimsi" +translator: "Andrii Furmanets" +lang: uk +--- + +[Ruby Conference 2003][1] незабаром відбудеться 14-16 листопада 2003 року в +Остіні, Техас, США. + +[Реєстрація відкрита][2]. Зареєструйтеся! Повна реєстрація буде відкрита +до неділі, 26 жовтня. + +Див. також [\[ruby-talk:83169\]][3], та [\[ruby-talk:84427\]][4]. + + + + +[1]: http://rubycentral.org/03/ +[2]: http://rubycentral.org/03/index.rb?dest=start_reg +[3]: http://www.ruby-talk.org/83169 +[4]: http://www.ruby-talk.org/84427 diff --git a/uk/news/_posts/2003-10-30-ruby-181-preview2.md b/uk/news/_posts/2003-10-30-ruby-181-preview2.md new file mode 100644 index 0000000000..834d29528d --- /dev/null +++ b/uk/news/_posts/2003-10-30-ruby-181-preview2.md @@ -0,0 +1,19 @@ +--- +layout: news_post +title: "ruby 1.8.1 preview2" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Сьогодні Matz оголосив про доступність ruby 1.8.1 preview1 та, +відповідно, [ruby 1.8.1 preview2][1] \|\| [дзеркало rubyforge][2] Як +завжди, ми заохочуємо Rubyist'ів завантажити цей preview випуск та +протестувати його. Ваше тестування, звіти про помилки та патчі приведуть +до стабільного ruby 1.8.1. + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.1-preview2.tar.gz +[2]: http://rubyforge.org/project/showfiles.php?group_id=30&release_id=152 diff --git a/uk/news/_posts/2003-11-23-ruby-standard-library-documentation.md b/uk/news/_posts/2003-11-23-ruby-standard-library-documentation.md new file mode 100644 index 0000000000..d7bcc2c491 --- /dev/null +++ b/uk/news/_posts/2003-11-23-ruby-standard-library-documentation.md @@ -0,0 +1,11 @@ +--- +layout: news_post +title: "Документація стандартної бібліотеки Ruby" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +"Документація для стандартної бібліотеки Ruby 1.8": +http://www.ruby-doc.org/stdlib/ доступна. Це HTML з +коментарів RDoc, що є результатом проекту stdlib-doc від Gavin Sinclair. diff --git a/uk/news/_posts/2003-12-05-ruby-181-preview3.md b/uk/news/_posts/2003-12-05-ruby-181-preview3.md new file mode 100644 index 0000000000..86fcbae32c --- /dev/null +++ b/uk/news/_posts/2003-12-05-ruby-181-preview3.md @@ -0,0 +1,16 @@ +--- +layout: news_post +title: "ruby 1.8.1 preview3" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Ruby 1.8.1 preview3 вийшов. Отримайте [ruby 1.8.1 preview3][1] \|\| +[дзеркало rubyforge][2]. + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.1-preview3.tar.gz +[2]: http://rubyforge.org/project/showfiles.php?group_id=30 diff --git a/uk/news/_posts/2003-12-19-new-ruby-change-request-rcr-process.md b/uk/news/_posts/2003-12-19-new-ruby-change-request-rcr-process.md new file mode 100644 index 0000000000..e433f58572 --- /dev/null +++ b/uk/news/_posts/2003-12-19-new-ruby-change-request-rcr-process.md @@ -0,0 +1,26 @@ +--- +layout: news_post +title: "Новий процес Ruby Change Request (RCR)" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +В [\[ruby-talk:88503\]][1], David Alan Black оголосив про запуск +нового офіційного процесу для RCR. Новий процес є результатом +бажання matz додатково формалізувати процес, як висловлено в його +[RubyConf 2003][2] [презентації][3]. + +Новий сайт для Ruby Change Requests - [rcrchive.net][4]. + +Величезне дякую [Dave Thomas][5], який сприяв створенню процесу RCR +3 роки тому. + + + + +[1]: https://blade.ruby-lang.org/ruby-talk/88503 +[2]: http://www.rubyconf.org +[3]: http://www.rubyist.net/%7Ematz/slides/rc2003 +[4]: http://rcrchive.net +[5]: http://pragprog.com/pragdave diff --git a/uk/news/_posts/2003-12-20-oreilly-onlamp-ruby-article.md b/uk/news/_posts/2003-12-20-oreilly-onlamp-ruby-article.md new file mode 100644 index 0000000000..89fb40f4a0 --- /dev/null +++ b/uk/news/_posts/2003-12-20-oreilly-onlamp-ruby-article.md @@ -0,0 +1,22 @@ +--- +layout: news_post +title: "Стаття про Ruby на O'Reilly ONLamp" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Mike Stok написав чудовий [огляд][1] 3-ї Міжнародної +Ruby конференції, представлений на головній сторінці сайту O'Reilly [ONLamp][2], +під назвою "Сучасність та майбутнє Ruby". + +Для додаткової інформації після конференції, див. [сайт][3] Jim Weirich +або [Архів][4] презентацій RubyConf від Ryan Davis. + + + + +[1]: http://www.onlamp.com/pub/a/onlamp/2003/12/18/ruby_con.html +[2]: http://www.onlamp.com +[3]: http://onestepback.org/index.cgi/Tech/Conferences/RubyConf2003 +[4]: http://www.zenspider.com/Languages/Ruby/RubyConf2003.html diff --git a/uk/news/_posts/2003-12-25-ruby-181-is-out.md b/uk/news/_posts/2003-12-25-ruby-181-is-out.md new file mode 100644 index 0000000000..44b89304f7 --- /dev/null +++ b/uk/news/_posts/2003-12-25-ruby-181-is-out.md @@ -0,0 +1,26 @@ +--- +layout: news_post +title: "ruby 1.8.1 вийшов" +author: "sughimsi" +translator: "Andrii Furmanets" +lang: uk +--- + +Останній стабільний випуск _ruby 1.8.1_ нарешті оголошено: Це +в основному випуск з виправленнями помилок. + + + +Волонтери для дзеркалювання вітаються. Контрольна сума Md5 + +5d52c7d0e6a6eb6e3bc68d77e794898e ruby-1.8.1.tar.gz + +Дякуємо matz та всім комітерам. Веселих свят хакінгу. + + + + +[1]: {{ site.url }}/cgi-bin/download-1.8.1.mrb diff --git a/uk/news/_posts/2004-01-07-matz-on-craftsmanship.md b/uk/news/_posts/2004-01-07-matz-on-craftsmanship.md new file mode 100644 index 0000000000..7314d50f7b --- /dev/null +++ b/uk/news/_posts/2004-01-07-matz-on-craftsmanship.md @@ -0,0 +1,17 @@ +--- +layout: news_post +title: "Matz про майстерність" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Artima.com публікує ще один [сегмент][1], (частина четверта) інтерв'ю Bill Venners +з Matz. Matz розповідає про те, як стати кращим програмістом +через читання коду, вивчення мов, фокус на основах, +лінь та розгляд інтерфейсів. + + + + +[1]: http://www.artima.com/intv/craft.html diff --git a/uk/news/_posts/2004-01-29-how-to-write-an-rcr.md b/uk/news/_posts/2004-01-29-how-to-write-an-rcr.md new file mode 100644 index 0000000000..6d9399b294 --- /dev/null +++ b/uk/news/_posts/2004-01-29-how-to-write-an-rcr.md @@ -0,0 +1,17 @@ +--- +layout: news_post +title: "Як написати RCR" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Для тих, хто зацікавлений у поданні [Ruby Change Request][1], Jim +Weirich написав статтю про [Як написати RCR][2]. Майбутні автори RCR +повинні вважати це обов'язковим читанням. + + + + +[1]: http://rcrchive.net +[2]: http://onestepback.org/index.cgi/Tech/Ruby/WritingRcrs.rdoc diff --git a/uk/news/_posts/2004-02-15-ruby-talk-mailing-posting-policy-change.md b/uk/news/_posts/2004-02-15-ruby-talk-mailing-posting-policy-change.md new file mode 100644 index 0000000000..ddc62cbc6f --- /dev/null +++ b/uk/news/_posts/2004-02-15-ruby-talk-mailing-posting-policy-change.md @@ -0,0 +1,14 @@ +--- +layout: news_post +title: "Зміна політики публікації в розсилці Ruby-talk" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Розсилка ruby-talk змінила свою політику публікації. Список тепер +вимагає бути членом перед публікацією повідомлення. Це зміна +від попередньої політики "будь-хто може публікувати". Якщо ви надіслали деякі недавні +повідомлення списку, але не бачили їх у списку, перевірте, чи ви використовуєте +відповідну адресу "from", та шукайте будь-які автоматичні повідомлення адміністратора списку, +що повертаються. diff --git a/uk/news/_posts/2004-02-16-ruby-article-in-linux-journal.md b/uk/news/_posts/2004-02-16-ruby-article-in-linux-journal.md new file mode 100644 index 0000000000..b55eb46d33 --- /dev/null +++ b/uk/news/_posts/2004-02-16-ruby-article-in-linux-journal.md @@ -0,0 +1,18 @@ +--- +layout: news_post +title: "Стаття про Ruby в Linux Journal" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Березневий випуск [Linux Journal][1] містить статтю від James Britt про +маніпулювання документами OpenOffice.org за допомогою Ruby. Будь ласка, зверніть увагу, що +стаття має принаймні одну помилку: James, який, чесно кажучи, дійсно знає +краще, неправильно приписав REXML. Творцем/власником REXML є Sean +Russell. + + + + +[1]: http://www.linuxjournal.com/modules.php?op=modload&name=NS-lj-issues/issue119&file=index diff --git a/uk/news/_posts/2004-04-12-ruby-track-and-tutorials-at-oscon.md b/uk/news/_posts/2004-04-12-ruby-track-and-tutorials-at-oscon.md new file mode 100644 index 0000000000..0f15a94346 --- /dev/null +++ b/uk/news/_posts/2004-04-12-ruby-track-and-tutorials-at-oscon.md @@ -0,0 +1,18 @@ +--- +layout: news_post +title: "Ruby трек та підручники на OSCON" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +[O'Reilly Open Source Convention][1], яка відбудеться 26-30 липня в +Портленді, Орегон, включатиме як [Ruby трек][2], так і серію [Ruby +підручників][3]. Це перший рік, коли Конференція включає Ruby трек. + + + + +[1]: http://conferences.oreilly.com/os2004 "OSCON" +[2]: http://conferences.oreillynet.com/pub/w/29/track_ruby.html +[3]: http://conferences.oreillynet.com/pub/w/29/tutorial_ruby.html diff --git a/uk/news/_posts/2004-05-23-rubyconf-2004-pre-registration-is-open.md b/uk/news/_posts/2004-05-23-rubyconf-2004-pre-registration-is-open.md new file mode 100644 index 0000000000..2a0bf60fca --- /dev/null +++ b/uk/news/_posts/2004-05-23-rubyconf-2004-pre-registration-is-open.md @@ -0,0 +1,19 @@ +--- +layout: news_post +title: "Передреєстрація на RubyConf 2004 відкрита" +author: "Unknown Author" +translator: "Andrii Furmanets" +lang: uk +--- + +Передреєстрація відкрита для Четвертої щорічної міжнародної Ruby +Конференції, яка відбудеться в Рестоні, Вірджинія, США, 1-3 жовтня 2004 року. Ви можете +зареєструватися заздалегідь та отримати більше інформації про конференцію на [сайті +RubyConf][1] Навіть якщо ви новачок у Ruby, подивіться—конференція +розроблена, щоб бути якомога доступнішою, і є хорошим місцем для +вивчення більше про Ruby та зустрічі з іншими програмістами та ентузіастами Ruby. + + + + +[1]: http://www.rubycentral.org/conference diff --git a/uk/news/_posts/2004-05-29-heliumruby-langorg-was-cracked.md b/uk/news/_posts/2004-05-29-heliumruby-langorg-was-cracked.md new file mode 100644 index 0000000000..274bfec15d --- /dev/null +++ b/uk/news/_posts/2004-05-29-heliumruby-langorg-was-cracked.md @@ -0,0 +1,28 @@ +--- +layout: news_post +title: "helium.ruby-lang.org було зламано" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +У п'ятницю, 28 травня, ми виявили, що хтось зламав helium.ruby-lang.org +через CVS. + +На щастя, процес cvs працював у середовищі chroot, +тому вплив на інші сервіси/контент був не такий ймовірний, але +ми зараз це підтверджуємо. +Наразі не знайдено втручань поза середовищем +chroot. + +Найбільш тривожним контентом є репозиторії CVS, але ці +дистрибутиви не зачеплені принаймні. + + 5d52c7d0e6a6eb6e3bc68d77e794898e ruby-1.8.1.tar.gz + bf48d49dbd94b5c0eda5f75b3bfbac16 ruby-1.6.8.tar.gz + +Сервіси розсилки перезапущено, але CVS/WWW/FTP/RSYNC +ще зупинено, вибачте. + +Додаткова інформація буде надана на https://www.ruby-lang.org/. +Для більшої інформації, будь ласка, надішліть листа на admin@ruby-lang.org. diff --git a/uk/news/_posts/2004-06-01-notice-on-ruby-langorg-mailing-list-service-restart.md b/uk/news/_posts/2004-06-01-notice-on-ruby-langorg-mailing-list-service-restart.md new file mode 100644 index 0000000000..de55407c03 --- /dev/null +++ b/uk/news/_posts/2004-06-01-notice-on-ruby-langorg-mailing-list-service-restart.md @@ -0,0 +1,36 @@ +--- +layout: news_post +title: "Повідомлення про перезапуск сервісу розсилки ruby-lang.org" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Вибачте за нашу затримку з повідомленням про операцію перезапуску сервісу розсилки ruby-lang.org. +Ми повинні впорядковано пояснити поточне управління +списками. + +Як повідомлялося, ми виявили чийсь злом helium.ruby-lang.org та +негайно зупинили різні сервіси, надані на сайті, включаючи +сервіс розсилки. Потім ми дослідили поштову систему (fml та пов'язані +інструменти) та файли конфігурації для кожного списку, і знайшли їх +надійними: вони не мають жодних ознак підробки. + +Однак наше підтвердження не повністю охоплює вміст +повідомлень, опублікованих у списках раніше, або архівованих на +helium.ruby-lang.org, та списки членів списків. + +На основі цього факту, та враховуючи значення списку (як +засіб комунікації), ми спочатку врахували зручність користувачів. Якщо +ви читаєте цей лист і не є членом цього списку розсилки 'ruby-foo', +не соромтеся зв'язатися з його адміністратором +<ruby-foo-admin@ruby-lang.org>. + +Інші запити щодо списку також можуть бути прийняті через вищезазначену +адресу. Запити, не пов'язані зі списком розсилки, слід направляти на +іншу адресу: <admin@ruby-lang.org>. + +Серія оголошень, минулих та майбутніх, продовжиться на +http://www.ruby-lang.org. Вибачте за деякий час незручностей. + +група адміністраторів ruby-lang.org diff --git a/uk/news/_posts/2004-06-15-wwwftp-service-restart.md b/uk/news/_posts/2004-06-15-wwwftp-service-restart.md new file mode 100644 index 0000000000..930c50b6a5 --- /dev/null +++ b/uk/news/_posts/2004-06-15-wwwftp-service-restart.md @@ -0,0 +1,16 @@ +--- +layout: news_post +title: "Перезапуск сервісу WWW/FTP" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Ми завершили валідацію контенту WWW/FTP, тому ми +перезапустили сервіси WWW/FTP. + +Деталі валідації будуть повідомлені. + +На деякий час сервіси можуть бути призупинені для обслуговування. + +група адміністраторів ruby-lang.org diff --git a/uk/news/_posts/2004-06-22-anonymous-cvs-service-restart.md b/uk/news/_posts/2004-06-22-anonymous-cvs-service-restart.md new file mode 100644 index 0000000000..8581cc2814 --- /dev/null +++ b/uk/news/_posts/2004-06-22-anonymous-cvs-service-restart.md @@ -0,0 +1,27 @@ +--- +layout: news_post +title: "Перезапуск сервісу Anonymous CVS" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Сервіс Anonymous CVS перезапущено. + +Щоб отримати останній вихідний код ruby, введіть наступні команди: + + $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login + (Logging in to anonymous@cvs.ruby-lang.org) + CVS password: [Enter] + $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src co ruby + +Пароль не потрібен. + +CVSup також доступний. Ви можете отримати supfiles на +http://cvs.ruby-lang.org/cvsup/. + +Репозиторій CVS перевірено групою адміністраторів ruby-lang.org. +Деталі будуть повідомлені. Будь ласка, почекайте трохи. + +Shugo Maeda <shugo@ruby-lang.org>
+група адміністраторів ruby-lang.org diff --git a/uk/news/_posts/2004-06-24-cvsweb-service-restart.md b/uk/news/_posts/2004-06-24-cvsweb-service-restart.md new file mode 100644 index 0000000000..8d9be6f2bd --- /dev/null +++ b/uk/news/_posts/2004-06-24-cvsweb-service-restart.md @@ -0,0 +1,15 @@ +--- +layout: news_post +title: "Перезапуск сервісу CVSweb" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Сервіс CVSweb перезапущено. +[https://www.ruby-lang.org/cgi-bin/cvsweb.cgi/][1] + + + + +[1]: {{ site.url }}/cgi-bin/cvsweb.cgi/ diff --git a/uk/news/_posts/2004-06-29-modules-added-to-the-anonymous-cvs-repository.md b/uk/news/_posts/2004-06-29-modules-added-to-the-anonymous-cvs-repository.md new file mode 100644 index 0000000000..af51d30509 --- /dev/null +++ b/uk/news/_posts/2004-06-29-modules-added-to-the-anonymous-cvs-repository.md @@ -0,0 +1,19 @@ +--- +layout: news_post +title: "модулі додано до репозиторію Anonymous CVS" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Ці перевірені модулі додано до репозиторію Anonymous CVS. + +* app +* lib(except soap4r,csv) +* eruby +* oniguruma +* rough +* rubicon +* ruby-parser +* shim +* vms diff --git a/uk/news/_posts/2004-07-05-added-libsoap4rlibcsvmodruby-old-to-anonymous-cvs.md b/uk/news/_posts/2004-07-05-added-libsoap4rlibcsvmodruby-old-to-anonymous-cvs.md new file mode 100644 index 0000000000..1410e43e35 --- /dev/null +++ b/uk/news/_posts/2004-07-05-added-libsoap4rlibcsvmodruby-old-to-anonymous-cvs.md @@ -0,0 +1,11 @@ +--- +layout: news_post +title: "додано lib/soap4r,lib/csv,mod_ruby-old до Anonymous CVS" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +lib/soap4r, lib/csv, mod\_ruby-old додано до репозиторію Anonymous CVS. +Потім eruby перейменовано на eruby-old. mod\_ruby/eruby тепер +розробляються в репозиторії Subversion. diff --git a/uk/news/_posts/2004-07-06-suspended-libsoap4r-and-libcsv-again.md b/uk/news/_posts/2004-07-06-suspended-libsoap4r-and-libcsv-again.md new file mode 100644 index 0000000000..b63a39e7af --- /dev/null +++ b/uk/news/_posts/2004-07-06-suspended-libsoap4r-and-libcsv-again.md @@ -0,0 +1,19 @@ +--- +layout: news_post +title: "призупинено lib/soap4r та lib/csv знову" +author: "NaHi" +translator: "Andrii Furmanets" +lang: uk +--- + +Репозиторій Anonymous CVS для csv(lib/csv) та soap4r(lib/soap4r) був +одного разу випущений для публіки 2004-07-05 15:30:00 JST (2004-07-05 06:30:00 UTC). +Але я, підтримувач цих репозиторіїв, виявив, що мій процес перевірки +репозиторію CVS був недостатнім. Тому я призупинив +репозиторії знову. Користувачі, які виконали checkout цих репозиторіїв з +2004-07-05 15:30:00 JST +до 2004-07-06 16:30:00 JST +повинні перевірити ваш робочий простір CVS. Вибачте +за проблеми, які ця помилка спричинила вам. Я повідомлю знову після +підтвердження цих репозиторіїв. Бібліотеки csv та soap, які +включені до репозиторію ruby(/src/ruby), підтверджено, що вони безпечні. diff --git a/uk/news/_posts/2004-07-21-ruby-182-preview1-released.md b/uk/news/_posts/2004-07-21-ruby-182-preview1-released.md new file mode 100644 index 0000000000..d02159de3c --- /dev/null +++ b/uk/news/_posts/2004-07-21-ruby-182-preview1-released.md @@ -0,0 +1,20 @@ +--- +layout: news_post +title: "вийшов ruby 1.8.2 preview1" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +[ruby 1.8.2 preview1][1] випущено. + +md5sum: 6cc070a768996f784fc7480d1c61bc85. + +Ви можете завантажити його на: + +* [https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.2-preview1.tar.gz][1] + + + + +[1]: https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.2-preview1.tar.gz diff --git a/uk/news/_posts/2004-07-22-incident-analysis-of-the-intrusion-on-heliumruby-langorg.md b/uk/news/_posts/2004-07-22-incident-analysis-of-the-intrusion-on-heliumruby-langorg.md new file mode 100644 index 0000000000..783043af55 --- /dev/null +++ b/uk/news/_posts/2004-07-22-incident-analysis-of-the-intrusion-on-heliumruby-langorg.md @@ -0,0 +1,426 @@ +--- +layout: news_post +title: "Аналіз інциденту вторгнення на helium.ruby-lang.org" +author: "Shugo Maeda" +translator: "Andrii Furmanets" +lang: uk +--- + +Як вже повідомлялося, helium.ruby-lang.org, який є одним із серверів, +що надавали різні сервіси, пов'язані з розробкою Ruby, був зламаний +несанкціонованим користувачем. Ми, адміністратори ruby-lang.org, повідомляємо +про наш аналіз цього вторгнення та заходи, які ми вжили. + +## Хронологія інциденту + +Прогрес часу щодо вторгнення показано нижче. +Кожен час у UTC. + + 19 травня Оголошено публічне розкриття вразливості CVS + (CAN-2004-0396). Ми вважаємо, що ця + вразливість була використана в цьому вторгненні. + 20 травня 02:46 Пакет Debian CVS хоста helium.ruby-lang.org + (далі називається 'helium') оновлено. Однак, + пакет CVS середовища chroot, який надавав фактичний pserver, + пропущено. + 23 травня 11:15 Найстаріша (підтверджена) мітка часу сліду вторгнення + 27 травня 19:03 Відкриття бекдору, встановленого зловмисником + 28 травня 09:26 Адміністратор ruby-lang.org виявляє слід + вторгнення. + 28 травня 09:35 Адміністратор відключає 'helium' від мережі. + 28 травня 11:53 Адміністратор перезавантажує 'helium' та відновлює сервіси розсилки + списків. + 29 травня 07:28 Наше перше оголошення про це вторгнення. + +## Машини та сервіси того часу + +Сервіси, пов'язані з Ruby, надавалися наступними двома машинами на +час вторгнення. + +helium.ruby-lang.org +: Наступні сервіси надавалися 'helium'. + + * CVS (cvs.ruby-lang.org) + * HTTP (www.ruby-lang.org/raa.ruby-lang.org) + * FTP (ftp.ruby-lang.org) + * RSYNC (для дзеркальних сайтів) + * ML (<Назва ML>@ruby-lang.org) + +hydrogen.ruby-lang.org (далі називається 'hydrogen') +: Наступні сервіси надавалися 'hydrogen'. + + * HTTP (www.rubyist.net) + * NFS (для експорту /home до 'helium') + +## Деталі вторгнення + +На 'helium' сервіс pserver надавався під правами користувача anoncvs +в середовищі chroot. Цей сервіс CVS використовувався для +розробки Ruby, і кілька комітерів мали свої власні облікові записи. +Публічний доступ CVS лише для читання дозволявся через обліковий запис +користувача 'anonymous'. + +Як згадувалося вище, вразливість CVS була оголошена 19 травня. +Хоча пакет Debian CVS 'helium' був оновлений 20 травня, пакет +CVS середовища chroot не був оновлений. + +За цих обставин адміністратор 'helium' виявив +підозрілі процеси anoncvs 28 травня, 09:26 (UTC). Більше одного +підозрілих виконуваних файлів було виявлено встановленими +зловмисником(ами), включаючи програму, що створює бекдор, яка слухає TCP +порт #54320. Ця програма бекдору працювала на час +виявлення вторгнення. Час "Хронології", згаданий вище, був +визначений виводом команди 'ps' та міткою часу +виконуваного файлу вторгнення. Ми повинні зазначити тут, що всі зовнішні +з'єднання з бекдором були запобігнуті функцією фільтрації IP пакетів +ядра Linux. + +Ще одна примітка: зазвичай процес pserver створює тимчасову директорію +(/tmp/cvs-serv<ID процесу>) для кожної сесії та видаляє її в кінці +сесії. На час вторгнення більше однієї тимчасових +директорій залишилося в директорії /tmp середовища chroot. +Це припускає, що процеси pserver були завершені ненормально, можливо, +атакою зловмисника(ів). З міток часу цих тимчасових +директорій найстаріша - 23 травня, 11:15 (UTC). Час "Хронології", +згаданий вище, був визначений цією міткою часу. Порівнюючи мітки +часу цих директорій з журналом сесій pserver, здається, +що було кілька незалежних зловмисників, які атакували +вразливість. + +Це свідчення вказує, що зловмисник(и) експлуатували вразливість CVS +та отримали права користувача anoncvs на 'helium'. +Зловмисник(и) могли отримати, змінити та знищити всю інформацію в межах +середовища chroot. + +Свідчення, такі як захоплення інших облікових записів, локальне підвищення +привілеїв, або вторгнення поза середовищем chroot, на +сьогоднішній день не знайдено. + +## Можливість вторгнення поза середовищем chroot + +Для того, щоб зловмисники зламали захист chroot, потрібне підвищення до +привілейованого користувача. + +На час вторгнення ядро Linux, що працювало на 'helium', було +версії 2.4.24. Патч для вразливості (backported з ядра +версії 2.4.25) був застосований. Однак патч для вразливості setsockopt(2), +виправленої в ядрі 2.4.26, не був застосований. + +Код для атаки DoS, що експлуатує вразливий setsockopt(2), був +продемонстрований, але вважається важким успішно досягти +локального підвищення привілеїв з цього. Здається неможливим +досягти підвищення привілеїв, якщо зловмисник не може отримати образ +ядра цільового середовища. На 'helium' ядро не було з +бінарного пакета, а було зібране з вихідного коду з індивідуально застосованими +патчами. Тому можливість того, що зловмисник зміг +досягти підвищення привілеїв, вважається мінімальною. + +## Відновлення сервісів + +З першим розслідуванням ми припустили, що вторгнення було +ймовірно лише в межах середовища chroot. Спочатку ми вирішили +відновити сервіс розсилки списків на 'helium', тому що вплив +призупинення поштового сервісу, з точки зору користувачів, був +вважався найбільшим. Після перевірки, що не було змін +бінарного пакета, а також що не було підозрілих налаштувань у +файлах конфігурації, ми відновили сервіс розсилки списків. + +Потім ми почали роботу з підтвердження для відновлення інших сервісів на +'helium', але незабаром вирішили замість цього ретельно перебудувати машину +та відновити сервіси індивідуально після перевірки кожного. Це рішення +було прийняте через складність перевірки великої кількості +файлів. + +Для відновлення сервісу нам потрібна була машина, використана як заміна для +'helium'. Ми вирішили використати 'hydrogen', який хостив www.rubyist.net. +'Hydrogen' не надавав сервіс pserver і не знайдено слідів вторгнення на +машині, але 'hydrogen' надавав /home як файлову систему, змонтовану через NFS, для 'helium'. Щоб переконатися, що hydrogen не був скомпрометований, ми +перевстановили ОС 'hydrogen' та встановили ім'я хоста 'lithium'. +Потім ми перемістили сервіс розсилки списків з 'helium' на 'lithium', +разом зі сторінкою оголошення про вторгнення веб-сайту. + +Далі ми перевстановили ОС 'helium' та встановили ім'я хоста +'beryllium'. Ми плануємо мігрувати всі публічні сервіси на 'beryllium' у +майбутньому. + +## Машини та сервіси наразі + +Наразі сервіси, пов'язані з Ruby, надаються наступними двома +машинами. + +lithium.ruby-lang.org +: Наступні сервіси надаються lithium.ruby-lang.org. + + * CVS (для розробки комітерів, без публічного доступу) + * Розсилка списків (переміщення на 'beryllium' планується) + +beryllium.ruby-lang.org +: Наступні сервіси надаються beryllium.ruby-lang.org. + + * HTTP (www.ruby-lang.org/raa.ruby-lang.org/www.rubyist.net) + * FTP (ftp.ruby-lang.org) + * Anonymous CVS (cvs.ruby-lang.org) + +## Перевірка вмісту кожного сервісу + +Ми далі пояснимо результати наших зусиль оцінити, +чи була якась зміна або знищення сервісів +зловмисниками. + +### Передумова + +Найстаріше свідчення, яке ми маємо про вторгнення, з 23 травня, і +це було підтверджено; оскільки цей слід міг бути видалений +зловмисником(ами) з правами користувача anoncvs, ми не змогли +зробити висновок, що це був перший день вторгнення. Оскільки +свідчення вторгнення було з вразливості CVS, і оскільки немає +інших вразливостей, які могли б бути експлуатовані для вторгнення в +'helium', ми впевнені, що зловмисник(и) зловживали вразливістю CVS +і тим самим отримали доступ до 'helium'. + +Наша перевірка змін або знищення в сервісах базувалася +на припущенні, що перше вторгнення виявиться після 19 +травня, коли вразливість CVS CAN-2004-0396 була публічно оголошена. + +### CVS + +Оскільки зловмисники, ймовірно, отримали права користувача anoncvs, +ми були найбільш підозрілими та стурбованими щодо можливих пошкоджень +CVS серед усіх сервісів на 'helium'. + +На час вторгнення було наступні чотири репозиторії CVS. + +/src +: Вихідний код + +/www +: Дані WWW + +/doc +: Документ + +/admin +: Файл управління для CVS + +Серед них /www та /doc не потребували перевірки, оскільки їх вміст +вже не використовувався. Більше того, ми вирішили призупинити використання /admin та +просто видалити його. + +Те, що ми пояснюємо далі, - це результати перевірки +вихідного коду Ruby та кожного іншого модуля, включеного в /src. + +### Вихідний код Ruby + +Ми розділили можливі зміни репозиторію CVS на дві категорії: + +(1) Зміна історичних даних у файлах репозиторію CVS до + 19 травня + +(2) Зміна, яка замаскувала регулярні подання після 19 травня + +Для (1) ми перевірили файли в репозиторії CVS за журналом cvsup +після 19 травня, які зберігалися безпечно поза 'helium'. Ми підтвердили, +що не було ознак змін файлів у репозиторії +CVS. Для (2) ми перевірили весь вміст комітів +індивідуально та підтвердили відсутність будь-якого шкідливого коду після 19 +травня. Це означає, що не лише немає шкідливого коду, але й що +ми перевірили кожен коміт з комітером. + +Наша перевірка підтримувалася даними з наступного URL. + +* Журнал cvsup
+ https://www.ruby-lang.org/check-data/cvs/cvsup-log/ +* Вміст комітів з 19 травня до 28 травня
+ https://www.ruby-lang.org/check-data/cvs/cvs-diff/ + +Більше того, на додаток до вищезазначеного матеріалу, ми зробили +наступну додаткову роботу: + +* Ми підтвердили, що не було неузгодженості між файлами в репозиторії + CVS на 'helium' та файлами на зовнішньому, безпечному сервері 21 + травня. +* Ми підтвердили, що не було неузгодженості в знімках CVS + з 2003-11-02 до 2004-05-27 (день за днем) та знімках, створених з + репозиторію CVS на 'helium'. + +Ми зробили висновок, що не було змін або знищення вихідного +коду ruby в репозиторії CVS. + +#### Модулі, крім вихідного коду Ruby + +На додаток до вихідного коду Ruby, директорія /src репозиторію +CVS має наступні модулі: + + * app + * lib + * rough + * rubicon + * ruby-parser + * shim + * vms + * pocketruby + * oniguruma + * mod_ruby + * eruby + +Спочатку ми виявили, що лише наступні файли були змінені після 19 травня +шляхом порівняння ctime файлів репозиторію з часами +файлів, скопійованих на зовнішній сервер через CVSup: + + * lib/csv/lib/csv.rb,v + * lib/csv/tests/csv_ut.rb,v + * lib/soap4r/lib/wsdl/xmlSchema/parser.rb,v + * lib/soap4r/lib/wsdl/xmlSchema/complexContent.rb,v + * lib/soap4r/lib/wsdl/parser.rb,v + * mod_ruby/lib/apache/eruby-run.rb,v + * mod_ruby/lib/apache/erb-run.rb,v + * mod_ruby/ChangeLog,v + +По-друге, ми порівняли скопійований репозиторій CVS з репозиторієм CVS на +'helium', і ми підтвердили, що не було неузгодженості між ними, +крім бінарних файлів у 'pocketruby'. Оскільки ми вже об'єднали +'wince' в основну гілку ruby, ми не робили подальшої перевірки на pocketruby +та припинили надання його вихідного коду. + +Кожен з файлів, які були змінені після 19 травня, згадано нижче. + +lib/csv/lib/csv.rb,v +lib/csv/tests/csv_ut.rb,v +lib/soap4r/lib/wsdl/xmlSchema/parser.rb,v +lib/soap4r/lib/wsdl/xmlSchema/complexContent.rb,v +lib/soap4r/lib/wsdl/parser.rb,v +: Ми не впевнені щодо цих файлів. lib/csv та lib/soap4r вже + об'єднані з ruby, і ці модулі використовуються лише підтримувачами + кожного. lib/csv та lib/soap4r видалено з репозиторію + CVS, і вони будуть розроблятися в іншому місці. + +mod_ruby/lib/apache/eruby-run.rb,v +mod_ruby/lib/apache/erb-run.rb,v +: Всі ревізії, включаючи гілки, були перевірені, і проблем не + знайдено. Вони були кожен порівняні з випущеними вихідними + пакетами, і підтверджено, що немає + неузгодженостей. + +mod_ruby/ChangeLog,v +: Звичайні зміни файлу ChangeLog - це додавання вмісту(ів). + ChangeLog можна перевірити наступними методами: + + (1) Ми підтвердили, що немає проблеми в першій ревізії. + + (2) Ми підтвердили, що немає проблеми в найновішій ревізії. + + (3) Ми підтвердили всі ревізії, які включають зміни, не лише + додавання. + + Більше того, ми порівняли його з випущеними вихідними пакетами, і це + підтверджено, що немає неузгодженостей. + +На додаток, розробка mod_ruby та eruby переміщена на +Subversion, тому ці назви модулів CVS змінено на mod_ruby-old +та eruby-old. + +### HTTP (www.ruby-lang.org) + +https://www.ruby-lang.org/{ja, en}/ генерується tDiary. Ми виконали +наступне, щоб перевірити, що немає проблем з виконанням +програми tDiary CGI: + + * Підтвердження відсутності підозрілого коду в програмах CGI + * Перевірка коду в елементах `