ruby -run

Це копіпаст з невеликими правками з мого блогу, який я використовую для збереження інформації, потенційно корисної для мене, але яку зазвичай забуваю. Порахував, що інфа може здатися комусь цікавою.
Intro
Відносно недавно шукав спосіб в одну сходинку запустити веб-сервер в поточній директорії.
На теренах Stack Overflow знайшов приблизно таку команду:
ruby -run -e httpd -- -p 9090 [DIR]

Що ж це за загадкова опція
run
і чому її немає в мануалі?

Читати далі →

Використання патерну «Protocol» в Ruby

В Elixir'е є концепція
behaviours
, або «поведінкових шаблонів», якщо завгодно. Звернемося до офіційній документації:
Протоколи — механізм, що дозволяє реалізувати поліморфізм у Elixir. Використання протоколу доступно для будь-якого типу даних, що реалізує цей протокол.
Про що це взагалі? Ну, сутності Elixir, або, як їх іноді називають, «терми», можна буде змінити. В Ruby ми звикли визначати методи на об'єктах, і ці методи просто змінюють об'єкти, як потрібно. У Elixir'е це неможливо. Напевно, кожен, хто вивчав ООП, розбирав стандартний приклад, що демонструє поліморфізм: клас
Animal
, з підкласами, по різному визначають метод
sound
:
Читати далі →

Ваша мова програмування — відстій

1 Чому JavaScript відстій
• 1.1 Погана конструкція
• 1.2 Система типів
• 1.3 Погані функції
• 1.4 Відсутні функції
• 1.5 DOM
2 Чому Lua відстій
3 Чому PHP відстій
• 3.1 Виправлено в підтримуваних в даний час версіях
4 Чому Perl 5 відстій
5 Чому Python відстій
• 5.1 Виправлено в Python 3
6 Чому Ruby відстій
7 Чому Flex/ActionScript відстій
8 Чому скриптові мови відстій
9 Чому C відстій
10 Чому C++ відстій
11 Чому .NET відстій
12 Чому C# відстій
13 Чому VB.NET відстій
15 Чому Objective-C відстій
16 Чому Java відстій
• 16.1 Синтаксис
• 16.2 Виправлено в Java 7 (2011)
• 16.3 Бібліотека
• 16.4 Обговорення
17 Чому Backbase відстій
18 Чому XML відстій
19 Чому відстій XSLT/XPath
20 Чому CSS відстій
• 20.1 Виправлено в CSS3
21 Чому Scala відстій
22 Чому Haskell відстій
23 Чому Closure відстій
24 Чому Go відстій
• 24.1 Базові засоби програмування (базовий мова)
• 24.2 Взаємосумісність
• 24.3 Стандартна бібліотека
• 24.4 Набір інструментальних засобів
• 24.5 Співтовариство
25 Чому Rust відстій
• 25.1 Безпека
• 25.2 Синтаксис
• 25.3 Конструкція API і система типів
• 25.4 Співтовариство
• 25.5 Набір інструментальних засобів

Чому JavaScript відстій

Врахуйте, що деякі положення відносяться не до самого JavaScript, а до програмних інтерфейсів веб-додатків (https://developer.mozilla.org/en/docs/Web/API).

Погана конструкція
• Кожен скрипт виконується в єдиному глобальному простір імен, доступ до якого можливий в браузерах з віконним об'єктом.
• Camel-регістр нікуди не годиться:

XMLHttpRequest
 
HTMLHRElement


Читати далі →

Екосистема Ruby (on Rails) з гірким присмаком, або «Як ми любимо пошпынять PHP»

Це переклад статті Ruby (on Rails) ecosystem bittersweet or "we like to hate PHP", написаної 30 травня 2016, тобто зовсім недавно. Я повністю згоден з її автором, і сам давно горів бажанням написати щось подібне останнім часом, але у мене не так багато досвіду з Ruby, тому моя писанина не була б настільки об'єктивна, як писанина людини, який цей досвід має, і має його в хорошому кількості. А тут на тобі: все в одному місці вже зібрано, і думки прямо один в один як у мене. Гріх не перевести на російську. Також, стаття взагалі дуже хороша як невеликий набір об'єктивного і неупередженого аналізу двох мов сучасної веб-розробки. Загалом, далі — переклад слів автора.
многобукв; нечитал;
У цій статті я розповідаю про деякі факти та персональний досвід для того, щоб довести, що PHP в даний момент жвавіше, конкурентоздатніша, а також має менш пов'язану екосистему, ніж Ruby. Я кажу про Продуктивності, Синтаксисі і Аспектах кодинга, Спільноті та Інструментарій розробника.

Читати далі →

Порівнюємо реалізацію мов Python і Ruby за щільності помилок

Яку мову програмування почати вчити: Python або Ruby? Що з них краще? Django або Ruby on Rails? Такі питання можна часто зустріти на IT форумах всього світу. Я ж пропоную порівняти не самі мови, а їх еталонні реалізації: CPython і MRI. Про те, які помилки в їх інтерпретаторів зміг знайти PVS-Studio, і піде мова в цій статті.




Читати далі →

ActiveResource, prefix і вкладені ресурси

Передісторія
Я програміст з дуже невеликим стажем (нещодавно накопичилося близько року у трудовій).
Близько півроку тому я почав працювати з Ruby (поза Rails) і відразу ж познайомився з Active Resource і Redmine.

Це був дуже цікавий досвід, зараз мені здається, що Ruby — практично ідеальний мова (саме мова, я не задаюся питанням споживання пам'яті і швидкості роботи).

Однак у ньому дуже багато магії, яку важко буває зрозуміти, коли читаєш вихідний код скільки-небудь великих проектів (ActiveResource я відношу до них, хоча порівняно з rails, частиною якого він є, цей гем здається краплею в морі).

Проблема
Проект полягав у створенні консольної утиліти (Thor-based), що працює з Redmine REST API надає всякі ніштяки (до речі, натхненний проектом, я в даний момент працюю над подібною утилітою, частково дублюючої функціонал: https://github.com/Nondv/redmine_cli).

Якщо подивитися на документацію по Versions або Issue Relations (http://www.redmine.org/projects/redmine/wiki/Rest_IssueRelations), то можна звернути увагу, що для отримання списку відносин використовується адресу виду
issues/<id>/relations.xml
, а для конкретного об'єкта —
relations/<id>.xml
.

Читати далі →

4-5 червня в Києві відбудеться RubyC-2016!

RubyC – це найбільша українська конференція, присвячена Ruby, Ruby on Rails і супутнім технологіям. Організатор, компанія Svitla Systems, щорічно збирає в Києві понад 250 учасників з усієї України та країн СНД. У 2016 році конференція пройде 4 та 5 червня у Конгрес Холі готелю «Русь».

На відміну від попередніх років, цього року RubyC стає повністю англомовною конференцією, відтак всі запрошені спікери будуть презентувати свої теми виключно англійською мовою.

Традиційно в рамках конференції виступає 14 експертів, як правило, половина з них – представники європейських країн і США. Наразі, перші 7 спікерів вже заявлені, серед них учасники минулого року легко впізнають Бена Лоувела (Ben Lovell), дотепного бородатого британця, чиї виступи незмінно піднімають настрій, а також Божидара Батсова (Bozhidar Batsov), болгарського розробника, минулорічний виступ якого викликав величезну кількість позитивних відгуків, а відеозапис зібрав понад 2500 тисяч переглядів.

Вперше RubyC представить Енді Пайка (Andy Pike), британського програміста, який останні кілька років успішно виступає на різних IT-конференціях, а також Роберта Панковецького (Robert Pankowecki), активного учасника польської Ruby спільноти. Серед українських рубістів раді оголосити участь Михайла Бортника, Олександра Симонова і Дмитра Зіміна, чиї доповіді буде корисно і цікаво послухати. Повну інформацію про спікерів і теми, з якими, щоправда, ще не всі визначилися, можна знайти на сайті rubyc.eu/.

Окрім цього RubyC продовжує приймати заявки на виступи, тому якщо у вас є ідеї, якими ви хочете поділитися – просимо реєструватися через цю форму. Фінальний список спікерів буде представлений в кінці березня.

І звичайно, RubyC-2016 висловлює величезну подяку цьогорічним Ruby Спонсорам, компаніям DataArt та Global Logic, без яких конференція навряд чи відбулася б; а також Медіа партнерам: Ruby No Name, Ruby Garage, Lohika, Daxx, Українська IT Асоціація, Innocode, Ruby Flow and Ruby Jobs, IT Education Academy та Belarus Ruby User Group, завдяки яким конференція продовжує рости і розвиватися.

І окреме спасибі нашому прекрасному майданчику – готелю «Русь».

А поки організатори займаються різними організаторськими штуками, попередній продаж квитків категорії Early Birds успішно стартував і триватиме до кінця березня.

Чекаємо вас на RubyC-2016!

Стежити за нашими новинами можна на twitter.com/rubyc_eu або www.facebook.com/RubyC.eu/.

Highload Dev Conf'2015 пройшла 17 жовтня в Мінську

17 жовтня пройшла щорічна брутальна конференціяHighload Dev Conf.
Учасниками стали понад 300 суворих розробників, яким цікаві високонавантажених проекти і BigData.

image

Читати далі →

Пишемо Telegram бота на Ruby в 10 рядків


Після випуску Telegram Bot Platform багато замислювалися про написання свого бота. Цей пост описує мінімальні кроки, необхідні для написання власного бота на Ruby. Для цього потрібно лише акаунт у Telegram і машина з встановленим Ruby на ній.

Читати далі →