UProLa

Неокріпші думки

Індекс

з коментарем

Written by danbst

Вересень 18, 2009 at 21:47

Опубліковано в Службові

Резонанс з музикою

Кількість коментарів - 3

“Непогана пісня, можна слухати”.
“Мені подобається ця музика”.
“Я обожнюю цю мелодію”.

Одні з можливих позитивних відгуків про пісню/музику/мелодію.

Мені подобається все класифікувати, тому раніше я поділяв музику на ту яку я не слухаю і ту яку я слухаю. Остання зажвди утворювала плейліст, який крутився зациклено на протязі кількох місяців. Потім його дещо модифікував в зв”язку з новою музикою і набридлою старою. Це все було раніше…

Перші спогади про резонанс з музикою відносяться до початку першого курсу (щоправда, тоді я про це не здогадувався). Я дивився тоді з однокімнатником мувік по Ворлд оф Варкрафт, якась там дуель. Через день я почув один з саундтреків мувіку за вікном – на сильних колонках, але далеко. Робота зупинилась, я вставився в якусь точку за вікном і слухав музику… Коли пісню переключили – я глянув на однокімнатика. Він подивися на мене, кілька секунд промовчав і вимовив “Бля….”. Тоді ми зрозуміли, що хочемо знайти цю пісню. І знайшли – це був трек Muse – Map of the Problematique. Ми запустили цю пісню на обох комп”ютерах, синхронізувавши колонки – така собі імпровізована квадро-система.

Ті 4 хвилини я відчував щастя. Не знаю, чи було воно справжнім, чи наркоманським, чи як щастя кохання, чи ще якесь – не важливо. Це було блаженство.

Від того часу я ще не раз зустрічався з такими піснями. І ось недавно мені прийшла в голову ідея записати всі ці пісні, які так би мовити, “змінили життя”.

Muse - Map of the Problematique
Muse - Bliss
Rammstein -Reise-Reise
Rammstein - Keine Lust (особливо фрагмент з словами Mir ist kalt!)
Rammstein - Du Hast
Rammstein - Stirb Nicht fon Mir
Rammstein - Sonne (а також російський варіант)
Rammstein - Hilf mir
Dark Tranquillity - альбом Fiction. Я сприймаю весь аьбом як одну пісню і
ніколи не слухаю їх по окремості. Всі вони прекрасні, щоправда більше ніякий дес метал мене не пре
Turgor OST - Main Theme
Я не люблю dnb але є там дві пісні, від яких я "тащився"
Pendulum - Tarantula - Pendulum & Fresh/Spyda/Tenor Fly
Gary Numan - Fade 2 Gray
Xandria - Fight Me
Godsmack - I stand alone
Petey Pablo - Need For Speed (а також більшість пісень з першого андерграунду)
NFS Underground 2 OST - Rise against - give it all (і ще кілька пісень другого андерграунду)
Yann Tiersen - Comptine D un autre el apres midi
Yann Tiersen - 11 - La Valse D'Amelie(orchestra) (особливо після перегляду фільму)
Pixies - Where Is My Mind
The Stranglers - Golden Brown (останні дві прирівнюються по силі резонансу до Muse)
Flipsyde - Someday
Кому Вниз - Ворони
Кому Вниз - Шива (після того, як був на їхньому концерті)
ДДТ - Родина
ДДТ - Метель августа
І нова хвиля музики
Rammstein - Donaukinder
Rammstein - Pussy
Epica - Imperial March (OST Star Wars)
Muse - Undisclosed Desires
Muse - 02- Resistance
Muse - Uprising (додаю вконтакт аудіо постійно нові резонанси)
Класика
Родрігес - Прелюдія (не знаю точну назву, але так вона називалась в
моїй книжці). Місячна соната бетховена мене не пре аж так сильно.

Я грав на фортепіано 3 роки (і прелюдію Родрігеса, і місячну сонату), зараз
граю на гітарі (наразі Blackmore's Night, оскільки там багато гітарних мелодій)

Мені здається, що резонансні пісні налаштовуються на якусь мелодію мозку (чи просто тіла), синтезовану емоціями і самою людиною. Тому по таким пісням можна відрізняти людей. Інколи мені навіть хочеться, щоб замість аватарок на форумах були фрагменти власної резонансної музики… Тобто, на мою думку, спиок зверху – це частина мого життя. Я викладаю її тому, що знаю – ще не відомі точні методи розшифровки людини по її резонансній музиці. Разом з тим, цей список заставить когось задуматись над своїми резонансами, що досить приємно =)

Written by danbst

Жовтень 26, 2009 at 02:03

Опубліковано в Пости

Мандруючи Всесвітом. Орієнтація

leave a comment »

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

Примітка. Якщо Ви не знаєте причину появи проекту Мандруючи Всесвітом, не читайте даний пост. Він потребує сильної уяви, просторової орієнтації і знання алгоритмів на деревовидних графах.

Відштовхуватись буду від системи координат, яку описав в першому пості. В чорному-чорному просторі є точка – початок координат. Три вектори – X, Y, Z направлені відповідно з початку координат вправо, вверх, до нас.

Логічна модель

  1. Існує два типи елементів – барицентр (центр мас) і об”єкт(планета, зірка, тп). І точка і об”єкт задаються координатами. Задавання координат може бути абсолютним (відносно початку координат) і відносним (відносно існуючого барицентру або об”єкту). Тобто, кожен елемент має параметр Координати, параметр ВідноснийЕлемент і параметр АбсолютніКоординати (інші варіанти реалізації допускаються, програміст може вирішити дану задачу по своєму).
  2. Існує деякий барицентр, який вважається початковим. Задається абсолютними координатами.
  3. Орбіта – еліпс, по якому рухається, в загальному випадку, елемент – барицентр або об”єкт.
  4. До кожного існуючого барицентру прикріпляються орбіти (0 і більше). Якщо орбіт навколо барицентру немає (0), то барицентр вважається пустим і не потребує обрахування. Якщо орбіт – 1, то це можливо тільки в одному випадку – це орбіта об”єкту навколо його центру мас. Тому для такої орбіти встановлюється обмеження на ексцентриситет та велику вісь. Якщо обмеження не буде виконуватись, ми будемо спостерігати обертання планети навколо нічого, що неможливо пояснити випадковими флуктуаціями. Якщо орбіт – 2, то вони повинні бути компланарні (в одній площині і їхні великі півосі повинні знаходитись на одній прямій) і елементи цих орбіт повинні знаходитись в протифазі. Інакше система буде гравітаційно нестабільна. Якщо орбіт більше двух – обмеження ще не придумані, оскільки задача багатьох тіл дуже складна.
  5. Бачимо структуру – деревовидний граф. Корінь – початковий барицентр, вузол – барицентр, листок – об”єкт (в більшості випадків. В загальному це елемент, оскільки листком може бути також пустий барицентр), орбіта – ребро.

Приклади та ілюстрації.

  1. Система Сонце-Земля
    Piccy.info - Free Image Hosting
    У нульового барицентру є дві орбіти. Одна з них дуже маленька і закінчується об”єктом Сонце. Інша велика і закінчується об”єктом Земля.
  2. Система Сонце-Земля-Місяць
    Piccy.info - Free Image Hosting
    У нульового барицентру є дві орбіти. Одна з них маленька і закінчується об”єктом Сонце. Інша велика і закінчується барицентром (Земним). У Земного барицентру дві орбіти. Одна маленька і закінчується об”єктом Земля, інша велика і закінчується об”єктом Місяць.
  3. Система HD 98800
    Piccy.info - Free Image Hosting
    У нульового барицентру є дві орбіти і обидві знаходятся в протифазі. Одна з них велика і закінчується барицентром Гідри12. Інша дещо більша і закінчується барицентром Гідри34. У барицентру Гідри12 дві орбіти. Обидві закінчуються об”єктами зірками і зірки знаходятся в протифазі. У барицентру Гідри34 ситуація аналогічна. Тобто, вся система має один нульовий барицентр, два простих барицентра, 4 об”єкта-листочки і 6 орбіт-ребер.

Фактично, цього достатньо для чорнового варіанту проекту. Для чистового треба придумати обмеження і перевірку на адекватність моделі.

Параметрична модель

  1. Орбіта має 6 власних параметрів (i, \Omega, \omega, a, \varepsilon, і t – початковий зсув часу орбіти, time offset), посилання на два елементи зв”язки і час в даний момент – динамічний параметр і одинаковий для всіх орбіт.
  2. Барицентр має масу, яка визначається як сума всіх мас навколо барицентру
  3. Об”єкт крім маси, має такі параметри – розмір (діаметр), період обороту навколо осі, кут повороту осі до площини орбіти, кут повороту осі відносно великої півосі орбіти (якщо дивтись на площину орбіти), напрямок закрученості. Важливо зрозуміти фізичні представлення даних величин, особливо кутів. Об”єктом може бути зірка, планета, супутник

Принцип відносності

Будь-який параметр елементу або параметр орбіти можна задати відносно будь-якого іншого відповідного параметру іншого елемента або орбіти. Дане правило необхідне, оскільки задавання абсолютних параметрів буде неблагородним завданням. ((

Додатково

Очевидно, що дана модель орієнтації в просторі і задання орбіт з об”єктами сильно спрощена і не відповідає реальності в повній мірі. Крім того, в деяких випадках вона може бути абсолютно неадекватною. Але не треба звертати на це увагу. Для нашої мети цього достатньо.

Реалізація

Зрозуміло, що основне призначення даної моделі – правильне позиціювання планети/супутника/зірки в просторі і часі. Тобто, вказавши час, ми можемо точно розрахувати координати всіх об”єктів, кути їхніх локальних поворотів і поворот навколо їхніх вісей. Тому необов”язково реалізовувати все так, як вказано вище. Достатньо щоб алгоритмічна модель була адекватна даній. Також, можна помітити що всі параметри узгоджуються з системою повороту матриці в OpenGL, що полегшить вивід всієї системи на екран.

Written by danbst

Жовтень 18, 2009 at 15:11

Мандруючи Всесвітом. Розрахунок орбіти планети

Кількість коментарів - 2

Пролог.

Коперник вважав, що орбіта планети – ідельне коло. Якби так і було насправді, то і проблем з позиціюванням планети в просторі навколо Сонця не було б(шкільна тригонометрія). Але з”явився Кеплер… Він сформулював три закони планетарних орбіт, ввів параметри орбіти і він просто крутий чел. Зараз спробую популярно пояснити розрахунок орбіти по Кеплеру і Ньютону.

Система координат

  1. Будь-яка планета рухається по орбіті навколо Зірки (центру мас кількох Зірок). Орбіта – еліпс, в одному з його фокусів знаходиться Зірка. В зв”язку з тим, що Зірка нерухома (в нашому випадку), можна вважати її центр (центр мас) як початок усіх координат. Уявіть собі точку в чорному просторі – це буде початок координат.
  2. Від початку координат відходять три ортогональні промені – вектори.
    Вектор, спрямований вверх – Y. Вправо – Х. До нас – Z.
    Екліптика (в нашому випадку) – площина XZ.
    Початковий вектор – вектор X. Уявіть собі ці вектори і площини, оскільки від них буде все відштовхуватись.
  3. Орієнтація орбіти в просторі задається трьома кутамиi, \Omega, \omega.
    i – нахил орбіти до площини екліптики. Напрямок – проти годинникової стрілки в нашій системі(ми дивимось на XY, вектор Z прямує до нас).
    \Omega – орієнтація орбіти відносно вектора X. Точніше, кут повороту лінії перетину площини орбіти та екліптики відносно вектора X в площині XZ, проти годинниковою стрілкою (ми дивимось на XZ, вектор Y прямує до нас). Цими кутами задається площина орбіти.
    \omega – кут повороту орбіти в площині орбіти. Відлік йде від лінії перетину екліптики та площини орбіти до великої півосі еліпса орбіти, яка проходить через центр мас (Зірку). Відлік – проти годинникової стрілки (якщо лінія перетину спрямована вліво від нас, а велика піввісь – вверх).
    Ці три параметри точно задають положення орбіти в просторі відносно центру мас (Зірки).

Слова тяжко дають зрозуміти картину, тому покажу картинку з вікіпедії.
Положення орбіти

Параметри орбіти.

Оскільки положення уже визначене, приступимо до конкретно розрахунку орбіти. Наше завдання – знайти функції x(t), y(t), де t – час, який пройшов від початку руху планети з найближчої до центру мас точки до теперішнього її положення. Маючи координати, задані параметрично, ми зможемо знайти всі потрібні нам величини.

  1. Параметри орбіти:
    a – довжина великої півосі еліпса
    \varepsilon – ексцентриситет еліпса
    Ms – маса Зірки (Зірок навколо центру мас)
    m – маса планети
  2. Константи
    G – гравітаційна константа
    \pi – відношення довжини кола до його діаметру

    Ці чотири змінні повністю детермінують орбіту тому є основними в розрахунках. Всі інші параметри та змінні будуть допоміжними.

  3. Знайдемо період обертання планети на орбіти з модифікованого Ньютоном Третього закону Кеплера:
    P=\sqrt\frac{4\pi^2a^3}{G(Ms+m)}
  4. Знайдемо середню аномалію (характеризує положення планети на орбіті):
    M=\frac{2\pi}{P}t
  5. Розв”яжемо трансцендентне рівняння відносно E:
    M=E-\varepsilon\sin E
  6. Обчислимо істинну аномалію \theta (фактично є кутом між великою піввіссю еліпса і прямою, яка з”єднує центр мас і планету, True Anomaly на малюнку):
    \theta=2arctg(\sqrt\frac{1+\varepsilon}{1-\varepsilon} tg\frac{E}{2})
  7. Обчислимо відстань з центру мас до планети \rho:
    \rho=\frac{a(1-\varepsilon^2)}{1+\varepsilon\cos\theta}
    Фактично, \theta і \rho – полярні координати планети відносно Зірки (центру мас)
  8. Обчислимо декартові координати:
    x = \rho\cos\theta
    y = \rho\sin\theta

Ось і все. Не такий вже й складний алгоритм.

Програма на Python

import math

#import math required
#MeanAnomaly = E - Ecc*sin(E)
def Solve_E(MeanAnomaly, Ecc):
    if Ecc == 0:
        return MeanAnomaly
    E = MeanAnomaly
    for i in range(0,10):
        E = E - (E - MeanAnomaly - Ecc*math.sin(E))/(1 - Ecc*math.cos(E))
    return E

#import math reqired
#MeanAnomality = 2*pi/P
def MeanAnomality(P, t):
    return 2*math.pi/P*t

#import math reqired
#Period of an object mass m travelling around object mass Mass
def Period(a, Mass, m):
    return 2*math.pi*a*math.sqrt(a/(6.67428*10**(-11)*(Mass+m)))

#import math reqired
#True anomality
def Theta(Ecc, E):
    return 2*math.atan(math.sqrt((1+Ecc)/(1-Ecc))*math.tan(E/2))

#import math reqired
#Distance to planet from Sun
def Ro(a, Ecc, theta):
    return a*(1-Ecc**2)/(1+Ecc*math.cos(theta))

def X(a, Ecc, Mass, m, t):
    theta = Theta(Ecc,Solve_E(MeanAnomality(Period(a,Mass,m),t),Ecc))
    return Ro(a,Ecc,theta)*math.cos(theta)

def Y(a, Ecc, Mass, m, t):
    theta = Theta(Ecc,Solve_E(MeanAnomality(Period(a,Mass,m),t),Ecc))
    return Ro(a,Ecc,theta)*math.sin(theta)

Додатково

Очевидно, що алгоритм дещо неоптимізований і для орбіт, наближених до кола (\varepsilon\approx0), нераціональний. Але оптимізація лежить на плечах програміста, а не на моїх =)
Ще один нюанс – період орбіти вираховується динамічно з маси Зірки, планети і довжини великої півосі. В деяких випадках справжній період може відрізнятись від даної динамічної величини, саме тому в астрономії використовується середня аномалія M, як один з основних параметрів орбіти, задаючий положення планети на орбіті. В такому випадку алгоритм треба почати з пункту 4.

Written by danbst

Жовтень 17, 2009 at 21:23

Protected: Мандруючи Всесвітом. Основи

з коментарем

Цей запис захищено паролем. Щоби подивитись його , введіть ваш пароль нижче:


Written by danbst

Жовтень 11, 2009 at 18:51

Опубліковано в Мандруючи Всесвітом

Мандруючи Всесітом. Планети

з коментарем

Чи хотіли Ви колись покерувати космічним кораблем, політати з планети на планету, подивитись незвичну флору-фауну, познайомитись з невідомими расами? Чи можливо Ви стали скептиком і відрізали ці свої мрії як нездійсненні? Перегляньте ще раз доступні нашому зору космічні тіла.

Великі планети Сонячної системи

Меркурій
Меркурій… Твердий та гарячий. Якщо ви колись побуваєте на ньому, то побачите Величезне Сонце, яке сходить і заходить в одній точці. Думаєте, там дуже жарко? Я б не сказав. Максимальна температура – десь 400 градусів цельсія (сталь не плавиться), мінімальна – -190 по Цельсію (на зворотній стороні від Сонця). Отже, на межі буде досить помірно, -10 тире 20 градусів. Перкочовуючи постійно можна буде надивитись цікаві ландшафти, глибокі кратери(не забувайте, можна високо стрибати, це ж вам не Земля=), дивитись на Сонце…
Венера
Те, що ми не бачимо поверхню Венери не означає, що ми її не знаємо. Так ось, Венера – це вулкани і сірчані хмари. Можна просто політати попід хмарами, подивитись на дивовижні виверження, зазирнути в ущелини, знайти місце по-прохолодніше, провести світло і поселитись. Багато термальної енергії і густа атмосфера дозволять вам зробити цікавий бізнес.
Земля
Ноу коментс. Стара як світ. Попса. Ніхто на неї спускатись не буде, нічого нового не знайде. Хоча, прісне озеро Восток під 4км льоду в Антарктиді – цікава знахідка, жаль не добурили люди з експедиції до нього…
Марс
Ця планета схожа на Меркурій. В два рази менша Землі, тому також можна високо стрибати. Перестрибувати його каньйони, взбиратись на Олімп, шукати воду в полярних шапках, шукати теплі місця і утворювати атмосферу. Правда, планета повністю червона, тому дуже незичними будуть такі пейзажі. І ще, можна пограти в гру – “Знайди всі марсоходи”!
Юпітер
Ось тут уже цікаво. Газовий гігант Юпітер. Планета, де зникають поняття газу та рідини. Великі тиски, малі температури, великі тиски, високі температури… Постійні вітри, подекуди урагани розміром з (!!!) Землю… Океани водню, метанова атмосфера. Якби було достатньо окислювача, можна було б взірвати планету =) Є вода, інколи в вигляді великих літаючих льодяних брил. Досить незвично, погодьтесь.
Сатурн
Ну як не згадати його кільця! Приблизно схожий на Юпітер, тільки тут стираються поняття твердий-рідкий-газоподібний. Урагани сильніші ніж на Юпітері – до 2400 км/год. Місцями холодно, місцями жарко. Цікаво було б здійснити вільне падіння до центру планети! Не сумніваюсь, незабутнє враження!
Уран
Про Уран мало що відомо – вам треба буде самому все взнати. Єдине, що пораджу – візьміть шубу потепліше, адже там морозно. А ще зарані приготуйтесь, що планета котиться, а не крутиться.
Нептун
Нептун ще морозніший, ніж Уран. І ще невідоміший… І найдальший в Системі. Тому сонця там не чекайте, а просто спостерігайте пояс Копейра – десь там літає Плутон з Хароном…

Супутники планет

Місяць
Це Місяць
Іо, супутник Юпітера
Іо, супутник Юпітера. Справжнє пекло. Виверження вулканів ніколи не зупиняються, деякі з них викидують породи на 100 км вверх! Там справді жарко, вся поверхня планети рухається, стискається, деформується, горить… Атмосфера їдка… Купа вогню, розрухи, небезпеки – якраз для екстремалів!
Ганімед, супутник Юпітера
Це Ганімед, супутник Юпітера. Дивний якийсь…
Європа, суптник Юпітера
Європа, супутник Юпітера. Один з найцікавших об”єктів разом з Іо. Цікавий тим, що це океан, покритий льодом! Тому основний тип туризму – підводні подорожі у глибини. А глибини там глибокі – до 100 км… Спеціально для туристів обладнано підводним світлом – без нього океан був темним як чорні шкарпетки. Якщо ви боїтесь невідомих рідин – просто політайте над поверхнею льду, адже вона є чудом природи!
Калісто, супутник Юпітера
Найстаріший, мабуть, великий супутник. Калісто, супутник Юпітера, весь побитий кратерами. Присутні там навіть доісторичні кратери від зіткнення з справді масивними тілами. Руїни таких кратерів є найбільшим аракціоном для відвідувачів.
Не забувайте, з кожного супутника відкривається неперевершений вигляд на Юпітер – набагато красивіший, ніж з Місяця на Землю.
Титан, супутник Сатурна
А ця планета, Титан від Сатурна, залишається вам в вигляді бонусу! Почитайте в туристичних довідниках про її цікавинки!

Written by danbst

Жовтень 9, 2009 at 18:41

Принципи програмування нового покоління Ч.1

з коментарем

Згадаймо початок ери програмування.

Люди рвались робити все, що можна було – ігри, мат. програми, штучний інтелект, ОС, компілятори, бізнес-програми. Перші наробки були дуже непов”язані між собою як кодом, так і принципами. Кожен намагався придумати щось своє, на його думку – краще. В кінці кінців з”явилось багато негативних наслідків – проблем з кодуваннями, різними платформами, версіями програм, версіями файлів-даних, багами несумісності, а також позитивних – багато різноманітних ідей, альтернативи, вільна конкуренція(прогрес), можливість вибору кращого.

Зараз ми знаходимось в такому проміжку часу, коли ще згадуємо старе покоління програм типу Windows 98, платформ з процесорами 1,7 ГГц, 256 МБ ОЗУ, мнизькоємнісними вінчестерами, але, разом з тим бачимо майбутнє – .NET, Open Source сервери, поєднання ГрІн(Графічний Інтерфейс) та командного рядка, простір 3Д, мультипроцесорність, нові пристрої. І в цей час необхідно визначитись з напрямком розробок програм – продовжувати натягувати стару школу(oldschool) на сучасний світ чи програмувати на принципах нової (newwave) з розрахунком на майбутнє.

В даному пості намагатимусь описати основні “фічі” та принципи програмування майбутнього (тут гра слів, ні про яке програмування часу мова не йдеться).

1. Пріоритети
Що таке програмування? Процес написання програм. Для чого призначені програми? Для вирішення проблем, які людина не бажає вирішувати сама. Для кого потрібні програми? Для авторів програм та/або для інших людей. В майбутньому, кожна програма буде мати пріоритети в виконанні обов”язків. Програма, яка призначена тільки для розробника буде сильно відрізнятись від програми, призначеної для користувачів. Також, програма призначена для, наприклад, запису дисків, буде сильно відрізнятись від тривимірного шутера. Кожна програма буде мати свої функції, які і будуть записані в пріоритетах. Самих пріоритетів/класів може бути багато, і тільки питання часу, скільки їх буде. Приклади в сучасному світі – програми для MacOS зачасту цілком детерміновані з своїм призначенням і мають певні поля у собі, які це описують.

2. Розділеність типу
Всі програми мають певні спільні риси, але набагато більше різних властивостей. Тому терміни, застосовані до одних можуть бути неправильними для інших. В майбутньому, розподіленість типів (як і пріоритетів) повинна бути високою, інакше термінологія може зайти в тупік. Приклади: програми для великих організацій, операційні системи, воєнні розробки сильно відрізняються від програм утиліт, невеликого “софту” і тим більше відрізняються від програм навчальних; приницпи їхнього програмування неможливо об”єднати одним законом.

3. Взаємодія
Хоч програми і повинні виконувати сугубо певні дії, часто необхідна взаємодія між ними. Багато розробників покладаються тільки на ресурси ОС по обміну інформацією, але розробники ОС фізично не можуть передбачити всі можливі бажання інших авторів додаткових програм. Тому програми повинні в майбутньому навчитись самотужки обмінюватись інформацією між своїми копіями, схожими по роботі програмами та зовсім різними по призначенню. Також це означає, що програма повинна вміти крім своєї основної функції виконувати багато другорядних, тобто бути альтернативою іншим програмам за їх відсутності. Всі дії повинні бути пов”язані між собою і слідувати певній логіці, тоді користувачу не доведеться довго заучувати можливості кожної з програм. Приклади: наразі я зустрічав в основному тільки зв”язок між програмами через ОС, але надіюсь, що в майбутньому все зміниться на краще.

4. Комп”ютер та периферія
Автори ОС пішли по правильному шляху – облишити програмерів проблем з так званим “залізом”. І правильно, чим цих проблем менше, тим краще майже усім – і розробникам фізичних частин (уніфікація), і розробникам програм для ОС (менше турбот не по програмі), і користувачам (інтуітивно і просто). Страждають тільки девелопери ОС, але це їх робота ))). В майбутньому і материнські плати, і процесори, і вінчестери і відеокарти і тд будуть розроблятись відповідно принципів HotPlug, Lesser Size, MorePower&Speed, UnifiedControl, etc. В кінці-кінців, домашній комп”ютер перетвориться в щось на зразок конструктора, який легко можна буде перетворити в потужний сервер. З програмної сторони, повинна бути прозора підтримка для даних пристроїв. Окремо повинен сказати, це відноситься не тільки до “життєважливих” частин комп”ютера. Контроллери, носії інформації, принтери/сканери, планшети, різні види курсорів, а також нові засоби вводу інформації повинні працювати на всіх програмах і не призводити їх до виліту. Приклади: флешки, SATA вінчестери, деякі види принтерів уже мають зачатки HotPlug. Дуже надіюсь що всі майбутні ОС зможуть правильно обробляти такі ситуації та повідомляти програми про нове обладнання.

5. Багатопоточність
Якщо розбити програму (процес) на кілька окремих частин (потоків), то потім можна легко ними маніпулювати – швидко переключати, щоб здавалась паралельна робота кількох програм. Але сьогодні ні для кого не є сюрпризом використання багатопроцесорних систем, тобто НАПРЯМУ робити паралельні обчислення. Тому майбутні програми повинні вміти розділювати себе на логічні частини, які згодом можуть бути виконані паралельно, а не поручати цю роботу тільки на операційну систему. До терміну “багатопоточність” я б також відніс і GRID-системи (не мережі) – розподілення себе між кількома компьютерами. Звісно, основну частину повинна робити ОС, але програма повинна хоча би знати про це. Приклад: більшість великих систем, які вийшли в 2009 році уже чудесно справляються з багатопроцерністю, існують також методи для реалізації розбиття на потоки програмно. Але все ж таки, це не популярна оптимізація, яка в майбутньому займе біьшу чашу.

6. Взаємодія з мережею
До мережі я відношу глобальну – Інтернет, локальну та будь-які інші – допоміжні. Програма не повинна бути в шоці, коли їй задають в аргумент файл на іншому комп”ютері або просять оновитись до нової версії. Наявність Інтернет в наші часи – не рідкість, тому необхідно використовувати усі можливості мережі. Перечислюванням можливостей я займусь в якійсь іншій статті, бо їх можна придумати дуже багато: від оновлень та новин, до GRID-мереж. Приклади: приклади існують, але основна суть в тому, що УСІ програми повинні навчитись взаємодіяти з інтеретом, а до цього ще далеко.

7. Командний рядок та ГрІн
В сучастності існують фанати обох напрямків “юзер інтерфейсу”. Кожен з напрямків має свої переваги та недоліки. Тому кожна програма майбутнього повинна сприймати обидва методи вводу. Звісно, тяжко представити собі Photoshop в командному рядку, але деякі речі (типу конвертування типів та розмірів файлів) він зможе зробити і без великого ГрІн. Так само ping здається виключно консольною командою, але разом з тим наявність великої кількості опцій-перемикачів можна зобразити графічно в вигляді кнопочок. Тому майбутнє за подвійним інтерфейсом.

8.а) ГрІн, дизайн
Одна з найнеприємніших частин розробки програми – графічний інтерфейс. В ідеалі він повинен бути компактним, інтуітивно зрозумілим, естетичним, не тормозити. Все це важко забезпечити, оскільки затрати часу і ресурсів (грошей на програмістів) будть рівноцінні затратам на основну частину програми. Тому цим часто нехтують (або взагалі переходять на командний рядок, де все уніфіковано). Хоча, варто було би попрацювати трохи. Програми майбутнього будуть проектуватись разом з прекрасним інтерфейсом, який підійде для більшості людей. Для тих, кому не підійде – повинен бути вбудований редактор “дизайну”, зовнішнього вигляду. Як він буде реалізований – залежить від програміста, але його наявність тільки покращить саму програму.

8.б) Віджети, скрипти
Оскільки у різних людей різні думки, погано було би нав”язувати свою усім. Наявність скриптової вбудованої мови а також можливість написання так званих, “віджетів”, “аддонів” та “додатків” покращить, можливо не саму програму, але ставлення до неї і її стан в світі. Навіть самому автору потім легше буде писати оновлення в вигляді додатків. Як правило, це відноситься до графічного інтерфейсу, хоча можна і зробити, для прикладу, додавання нових опцій в консольну команду.

9. Відкритий та закритий код, платформи
Як могла прийти в голову ідея писати для інших відриті програми – невідомо. Адже існує поняття – інтелектуальна власність, яку хочеться тримати на висоті і отримувати за неї гроші. Хоча тепер ці питання не актуальні – “Open Source” існує і з цим треба щось робити. Як правило, опенсорс зв”язаний з одними платформами, закритий код – з зовсім іншими. Тому пора зтерти ці межі і почати випускати закритий код для відкритих систем, і відкритий – для закритих. Ось така тавтологія. Якщо вам це здається уже лишнім, то просто згадайте – необхідно прямувати до розподілення, але з можливостями зв”язку, а не повного відособлення. Тобто на всіх платформах повинні бути спец. частини для роботи як з відкритим кодом, так і закритим. В сьогоденні це досить реалізовано, але ще можна покращити. dotNET, Java – передові частини в інтерпретації закритого коду.

На цьому закінчу першу частину своїх прогнозів щодо майбуття.

Written by danbst

Вересень 21, 2009 at 19:54

Опубліковано в Програмування