середа, 4 січня 2012 р.

Висовуємо ніс за межі атмосфери -- перший супутник.


Вперше на орбіті

Копія супутника,
U.S. National Air and Space Museum
(c) NSSDC, NASA
4 жовтня 1957 року розпочалася космічна ера. Розпочалася запуском першого штучного супутника Землі. В продовження "Висовуємо ніс за межі атмосфери - передмова" та з приводу 54-річчя його сходу з орбіти 4 січня 1958 року -- ця нотатка.

Цікавинка. В. Губарев:
  
В 1955 г. президент Академии наук СССР послал советским ученым следующее обращение: «Прокомментируйте, пожалуйста, использование искусственных спутников Земли. Как вы думаете, когда они будут выведены в космическое пространство?». Ответы были разными. Одни вносили различные предложения, а другие писали: «Фантастикой не увлекаюсь». «Предполагаю, что выход в космос произойдет не ранее 2000 г.». «Не представляю, какое практическое значение могут иметь искусственные спутники Земли»(журнал «Новое время» № 40, 1977; «Правда» , 7 грудня 1977 р.)

Висовуємо ніс за межі атмосфери - передмова

Описуючи нещодавно, як відкривався нам вигляд чергового невідомого світу, Вести, задумався. Зараз все відносно гладко -- ракети надійні, камери хороші, зв'язок швидкий, технології відпрацьовано. Звичайно, конфузи трапляються, от, нещасний Фобос-Грунт скоро назад звалиться, але зазвичай політ успішний, зображення якісні, їх багато та вони доступні, обробляти їх має можливість мало не кожен другий (магічне слово Photoshop) і т.д. На загал -- халява. Однак так було не завжди ;-) Тому вирішив спробувати показати, як все починалося. Як вперше виповзли за межі атмосфери, вперше побачили поверхню іншого світу, вперше виміряли його магнітне поле (точніше його відсутність, як виявилося), тощо. Це лише нариси, есе, на повноту та точність не претендує, але явних дурниць стараюся не писати.

Почнемо з підготовки -- що було було ДО.

Отож, 1957-й рік.

неділя, 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, де було представлено попередні результати).

середа, 5 жовтня 2011 р.

Не динозаврами єдиними...

На жаль, для більшості людей уявлення про еволюцію живого виглядає якось так: "Жили динозаври, потім їх всіх повбивало метеоритом, на їх місці завелися мавпи, а потім інопланетяни привезли людей, але влада приховує". Формулювання придумано не мною, не можу знайти оригінальної цитати, хоча авторство, ймовірно, Кирила Еськова. І це не говорячи про тих, що взагалі "не вірить в еволюцію", чи то буквально трактуючи ті чи інші релігійні тексти, чи то вдаряючись в "креаціонізм". Багатьом, підозрюю, просто бракує інформації, а в вульгарному переказі (див. вище) звучить справді дико. 

Проте, не будемо про сумне. Посилання на матеріали з приводу, що таке палеонтологія, теорія еволюції, що в їх рамках відомо, як обґрунтовується і т. д. -- внизу. Тут же хотів би поговорити про інше. Динозаври, хоча й величні, грізні, розрекламовані, (на загал - пафосні :), але період їх володарювання -- лише одна епоха в історії Землі. Безперечно цікава, але, як на мене, далеко не найцікавіша. Так само як і їх вимирання -- не найбільше і не найсерйозніше.

Перед ними було багато інших цікавих епох та важливих етапів розвитку живого:

субота, 27 серпня 2011 р.

Уроки захищеного режиму x86. Весь цикл разом

Закінчивши викладати уроки, вирішив зібрати для зручності всіх їх в один пост.

Історію моєї роботи з ними можна почитати тут, дублювати немає сенсу.

Базою для них послужили уроки захищеного режиму Алексея Фрунзе. Офіційна сторінка тих уроків, http://welcome.to/pmode, на жаль більше не доступна, але див. також сюди: http://members.tripod.com/protected_mode/alexfru/pmtuts.html.

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

Можуть бути помилки :-) (Впевнений що вони є)

Крім того це все ж уроки (максимум - лабораторні роботи), тому систематичного викладу роботи захищеного режиму немає. Правда, є багато довідкової інформації. 

Отож, поїхали.

пʼятниця, 26 серпня 2011 р.

Уроки захищеного режиму x86. Урок 17 з 17

Сімнадцятий і останній урок захищеного режиму. 

Попередні : 
  1. "Уроки захищеного режиму x86. Урок 0 та 1". 
  2. "Уроки захищеного режиму x86. Урок 2". 
  3. "Уроки захищеного режиму x86. Урок 3". 
  4. "Уроки захищеного режиму x86. Урок 4".
  5. "Уроки захищеного режиму x86. Урок 5".
  6. "Уроки захищеного режиму x86. Урок 6". 
  7. "Уроки захищеного режиму x86. Урок 7".  
  8. "Уроки захищеного режиму x86. Урок 8".
  9. "Уроки захищеного режиму x86. Урок 9".
  10. "Уроки захищеного режиму x86. Урок 10".
  11. "Уроки захищеного режиму x86. Урок 11".
  12. "Уроки захищеного режиму x86. Уроки 13-16".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 17
Базується на уроці 7, використовує апаратну багатозадачність. Показано як користуватися шлюзами виклику. Задача на рівні привілей 3 викликає процедуру з рівня 0. Саме так, за допомогою шлюзів виклику, операційна надає доступ задачам користувацького рівня до своїх сервісів.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

Архів з файлами уроку: pm_17.zip.

Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.
Із захищеним режимом (поки? :) все. Закінчилася часточка цієї епопеї тривалістю в 15 років. 


Цікавих тем багато, один тільки 64-бітний режим чого вартий, але ні часу ні особливої зацікавленості поки немає...



Дякую за увагу

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.