неділю, 18 грудня 2011 р.

lua

Поміж скриптових мов, що плодяться останнім часом як кролики, крім всіх відомих монстрів типу Perl, Python, PHP, існує одна маленька, майже крихітна, при тому зручна та потужна мова -- Lua. Звичайно, вона не призначена замінити, скажімо, Python. Її призначення скромніше. Це може бути написання скриптів для задання поведінки об'єктів програми, наприклад юнітів у іграх. Або конфігурування програми. Можливість задавати конфігурацію не просто числовими параметрами та стрічками, але й за допомогою повноцінної мови програмування - дуже потужна. Поки повіримо на слово, приклади будуть далі :-)
Трішки історії та реклами:
  • Офіційний сайт: http://www.lua.org.
  • Неофіційний сайт із документацією: http://lua-users.org/wiki/.
  • Існування мови розпочалося в 1993, створена командою розробників з католицького університету Ріо-де-Жанейро, Роберто Єрусалимським (Roberto Ierusalimschy), Вольдемаром Целесом (Waldemar Celes) і Луісом Енріке (Luiz Henrique). 
  • "Стандартний" інтерпретатор реалізовано на C, хоча існують реалізації як іншими мовами, так і просто альтернативні, великий список тут: http://lua-users.org/wiki/LuaImplementations.  
  • Ліцензія, починаючи з версії 5.0 - MIT License. В загальних рисах, вона дозволяє робити з кодом майже все що завгодно, поки при його використанні вказується копірайт, а автори не несуть жодної відповідальності. Неофіційний переклад ліцензії українською тут.  
  • Актуальна зараз версія - 5.2, але так як вийшла вона всього кілька днів тому, все нижче стосується версії 5.1.
  • Назва Lua португальською мовою означає Місяць. 
Переваги мови перерахуємо, слідуючи за її авторами:
  • Луа активно використовується в багатьох програмах, починаючи від Adobe's Photoshop Lightroom, та ігор і закінчуючи вбудованими системами. На англомовній вікіпедії для таких ігор навіть створено окрему категорію: "Category:Lua-scripted video games".
  • Луа швидка, одна із найшвидших скриптових мов!
  • Луа портабельна, легко переноситься практично на будь-яку платформу. 
  • Луа "ембедабельна" (embeddable) і може легко бути включена в програму, написану на C, C++, та на багатьох інших мовах (Java, C#, Smalltalk, Fortran, Ada, Erlang, Perl, Ruby). 
  • Луа дуже потужна! Але при тому - крихітна, інтерпретатор із всіма стандартними бібліотеками займає всього кількасот кілобайт.
  • Включає доволі хороший очи́щувач па́м’яті  (garbage collector).
  • Про ліцензію вже згадувалося :-) -- дуже відкрита.
Давно хотів щось про неї написати, так як активно використовую в своїх обчислювальних програмах. А нещодавно і потреба виникла. Постів заплановано декілька - загальний огляд мови, деякі особливості використання, типові ідіоми та трюки, binding (прив'язку) до C/C++ та імпорт сутностей, оголошених в C/C++ програмі (функцій, змінних, класів) у Lua, як стандартним API, так і за допомогою сторонніх засобів (Diluculum, swig). Як воно вийде - побачимо :-)

Що ж це за мова така?

четвер, 15 грудня 2011 р.

Новини з Вести, кінець 2011

Я достатньо байдужий до невеликих, безатмосферних, фактично мертвих тіл, таких як астероїди. (Хоча, звичайно, і вони не повністю мертві, але характерні часові масштаби -- сотні мільйонів років якось не надихають). Тому особливо ретельно за дослідженням Вести не слідкую. Однак, коротко розповісти, що ж ми довідалися про неї за півроку активних досліджень варто.

Почнемо із загальних фізичних параметрів. Для порівняння заглядатимемо в список того, що було відомо до "Dawn": http://indrekis2.blogspot.com/2011/06/blog-post.html.
  • Супутників не виявлено. Тобто, навряд чи вона має супутники з діаметром, більшим за 10 метрів.
  • Маса 2.591 × 1020 кг, так як похибка не уточнюється, то вважатимемо -- з точністю до останнього знаку. Раніше найбільш точним припущенням було (2.67 ± 0.02)×1020. Близько, в інтервал не потрапляє, але відрізняється менше ніж на 3%. Так що оцінкам астрономів іноді можна вірити :-) Не зважаючи на всі труднощі по вимірюванню далеких небесних тіл, результати надзвичайно точні.
  • Середній розмір 524 км, проти оцінки 530 раніше. Різниця -- порядку процента!
  • 3.440 г/см³ проти 3.42 г/см³. Півпроцентна різниця.
  • Як для небесного тіла, яке мільярди років "старіє" під впливом космічного випромінювання, Веста на диво кольорова. Хоча оком, на жаль, цього помітити не вдалося б... Вся надія на синтетичні кольори :-) Велика різниця в кольорі між південними та екваторіальними областями. 
  • Мала термальна інерція, як у пилюки (на відміну від каміння).
 (Взято із записок Емілі з EPSC-DPS, від 3 жовтня 2011, де було представлено попередні результати).