Показ дописів із міткою jruby. Показати всі дописи
Показ дописів із міткою jruby. Показати всі дописи

вівторок, 29 жовтня 2013 р.

Magento XML-RPC API і Ruby

Після написання першої статті Magento REST API і OAuth в Ruby, захотілося продовжити вивчення можливостей Magento API.
Весь сир-бор через те, що можливості REST в Magento просто жалюгідні.
На сьогодні Magento підтримує всі найбільш поширені способи доступу до API сайтів: REST, XML-RPC, SOAP.

Magento SOAP/XML-RPC API дає вам можливість керувати своїми магазинами електронної комерції, забезпечуючи методи для роботи з ресурсами, такими як клієнти, категорій, продукти і замовлення.

Про SOAP можна говорити багато і довго.
Для мене основними мінусами стали складність протоколу і відсутність вбудованої підтримки в Ruby.
Натомість стандарт XML-RPC зачарував мене своєю надзвичайною простотою.
В базову поставку Ruby вже входить бібліотека для роботи з XML-RPC, відповідно вам не доведеться замислюватися про структуру запитів і обробку відповідей в XML.

Тому саме XML-RPC в основному і буде присвячена ця стаття.
Не буду зупинятися на питанні, що таке XML-RPC і навіщо він потрібен. У мережі багато статей на цю тему.

Просто постараюся коротко показати, яким простим способом можливе створення клієнта до XML-RPC веб-сервісу на Ruby.
require 'xmlrpc/client'

config = {
  api_user: 'user',
  api_key:  'secret',
  host:     'example.com',
  path:     '/api/xmlrpc',
  port:     80,
}
client = XMLRPC::Client.new(config[:host], config[:path], config[:port])

# If somestuff requires api authentification,
# we should get session token
session = client.call('login', config[:api_user], config[:api_key])

parent_id = 1
store_view = 1
client.call('call', session, 'catalog_category.tree', [parent_id , store_view])

# If you don't need the session anymore
client.call('endSession', session)

Все просто: ми підключаємося до сервера, отримуємо ключ сесії і виконуємо запити.

Документацію по всіх запитах Magento API можна знайти на офіційному сайті.
XML-RPC підтримується тільки першою версією Magento API.

вівторок, 23 жовтня 2012 р.

Реліз JRuby 1.7.0


Спільноті JRuby рада оголосити про випуск JRuby 1.7.0, починаючи з якої заявлена офіційна підтримка Ruby 1.9.x.

Після півтора років розробки вийшов мажорний реліз відкритої багатоплатформної реалізації інтерпретатора мови програмування Ruby, написаної цілком на Java.

В JRuby 1.7  проведений величезний обсяг робіт, десятки учасників, і покращення у кожній підсистемі. І тепер за замовчуванням JRuby працює у режимі сумісності Ruby 1.9.3. Втім, не означає, що реалізація не буде більше вдосконалюватися. Це означає лише, що в майбутньому будуть вирішуватися проблеми з якими зіткнуться користувачі. На даний момент, розробники планують випускати нові версії 1.7.x кожні 2-3 тижні.

1.7 є першим стабільним JRuby з підтримкою нової можливості JVM - invokedynamic. Ви можете включити використання invokedynamic для Java 7, але вона по замовчуванню відключена, через проблему в JVM. На Java 8 , вона включений за умовчанням: http://wiki.jruby.org/PerformanceTuning.

Що нового:
  • Режим сумісності з 1.9.3 тепер використовується по замовчуванню(1.8 необхідний для підтримки 1.8.7)
  • Стандартна бібліотека оновлена до 1.9.3p286
  • Багато виправлень сумісності з 1.9.x
  • Підтримка invokedynamic
  • Численні покращення продуктивності
  • Припинена підтримка Java 5(тепер обов'язкова Java 6+).
  • Вирішені всі відомі проблеми з кодуваннями у 1.9
  • Покращення і виправлення для Java інтеграції
  • Краща підтримка для Solaris, ARM Linux.
  • Оновлення до Rubygems 1.8.24
  • Оновлення до Rake 0.9.2.2

пʼятниця, 7 жовтня 2011 р.

Тестування швидкодії Time і Date в різних версіях Ruby

Вчора задався питанням швидкодії бібліотек для роботи з датою і часом, які входять до складу Ruby - Time і Date.

Для для тестування був написаний простий скрипт з використанням модуля Benchmark, який надає методи для вимірювання та звітності часу, що був затрачений на виконання коду Ruby:
require 'benchmark'
require 'date'

puts RUBY_DESCRIPTION
n = 10_000

puts
Benchmark.bm(10) do |x|
  x.report("Time:")     { n.times{Time.now} }
  x.report("DateTime:") { n.times{DateTime.now} }
end

puts
Benchmark.bm(10) do |x|
  x.report("Time:")     { n.times{Time.mktime(2012, 12, 23)} }
  x.report("DateTime:") { n.times{DateTime.new(2012, 12, 23)} }
end

У тестуванні будуть брати участь наступні версії Ruby: 1.8.7, 1.9.2 та 1.9.3-rc1, а також альтернативні реалізації інтерпретатора: Rubinius написаного на мові C++ та JRuby - на Java.

Тепер подивимося на результат виконання цього скрипта:

неділя, 3 квітня 2011 р.

Ruboto: Ruby на Android

Автор статті - Chris King, програміст, фрілансер.
Оригінал: http://www.ibm.com/developerworks/web/library/wa-ruby/

Вступ

Більшість цікавих робіт з розробки програмного забезпечення сьогодні відбуваються в одній із двох крайнощів: великі сервери хмарних обчислень і крихітні мобільні пристрої. Ці області вирішують значно несхожі проблеми, і, відповідно, мають різні засоби підтримки. Розробка для серверів часто використовує скриптові мови, щоб зв'язувати разом різні компоненти і виконувати складні автоматизовані завдання. В той час як розробка для мобільних пристроїв зосереджена на конкретних можливостях і потребах конкретного пристрою і користувача.

Однак, ці дві крайності об'єднує спільна мова: Java. Чи то мобільна платформа Android, чи фреймворк Spring, багатьма з найбільш популярних технологій сьогодні прийнято мову, яка здобула широке розповсюдження і підтримку в усьому світі. Ця спільна мова може призвести до деяких дивних взаємодії між областями, про які ви схильні думати як різні. Java відкриває двері для багатьох крос-платформових варіантів, таких як, легке портування коду сервера на пристрій Android або зв'язування у рідні здібності платформи з існуючих компонентів.

У цій статті розглядається Ruboto. Проект, який усуває розрив між скриптовими мовами і Android. Ви дізнаєтеся про Ruby і Android, як вони можуть разом прийти у віртуальну машину Dalvik, як створювати і розгортати власні скрипти, і чому ця технологія має потенціал для підвищення продуктивності праці програмістів і гнучкості застосування.

середа, 31 жовтня 2007 р.

Sun випустила NetBeans під GPL

Представники компанії Sun обіцяли це доволі давно, і відтепер - починаючи з версії 6.0 beta 2 їх середовище розробки стало цілком відкритим. відтепер NetBeans розповсюджується під подвійною ліцензією - GPL v2 і CDDL. Нагадаю що окрім підтримки Java, починаючи з 6 версії ця IDE підтримує також Ruby/Rails/jruby.
Докладніше про NetBeans 6 тут.