Як я читав лекцію по jQuery

29.04.2012

В понеділок мій викладач з веб-технологій запросив прочитати в п’ятницю третьому курсу лекцію по jQuery. Лекція вступна, тому має розкривати основні моменти роботи з бібліотекою. Ідея мені сподобалась – давно хотів спробувати себе у ролі викладача. Тепер вийшло. Враження опишу нижче.

Для того, щоб підготуватися до лекції, потрібно дуже багато часу. З jQuery я знайомий і все, що мені потрібно було робити, я робив без проблем – з гуглом, логікою і терпінням. Але ж коли читаєш лекцію, потрібно знати трохи більше, ніж те, що ти розповідаєш, правильно? Треба мати якийсь запас для вільного плавання у темі. На підготовку я витратив день, але перечитав документацію кожного метода, про який розповідав, перевірив його роботу і навіть скопіпастив собі у конспект, аби підглянути, якщо щось забуду (і заодно зрозумів, для чого потрібен айпад). Дізнався кілька нових речей, заодно ознайомився зі змінами. Втомився.

Лекція пройшла добре. Конспект мені не був потрібен – все розповідав своїми словами. Спочатку було дуже страшно – хоч я не хвилювався, але руки трусились, а ноги підкошувались. Виступ не репетирував, про що шкодую. Хотів провести аналогію “так це робиться просто на js”, а ось “як це можна зробити на jQuery” , але під час підготовки було лінь. В результаті лекція звелась до звичайного опису задач і методів, якими вони вирішуються. Повністю відчув, що таке бути лектором, і як це, коли тебе слухають не всі. Прикро, коли ти стараєшся і розповідаєш, а тебе не слухають. Прикро через те, що вони не розділяють твою захопленість тими можливостями, які відкриваються. Це як після сеансу кіно ніхто не поділяє твою думку про фільм, позитивну думку, а може і негативну теж. Я, звісно, небагато зробив, аби зацікавити студентів, але старався. Це не їх вина. Весна і спека – які пари, який jQuery?

Зробив висновок, що не готовий до такої роботи. Багато праці, а все заради одного-двох людей, які дійсно слухали. Так завжди, але я не готовий до такої віддачі. Звичайно, лекція не буде сильно змінюватись час від часу, і кожного року я читатиму майже одне й те саме, проте все одно.

Викладачу, до речі, сподобалась моя лекція. Сказав, що гарно розкрив тему і можу бути лектором :) Мені теж сподобалось, вдячний йому за такий досвід.

Коментарі (2)Інтернет, Студентство

Кіноранок

11.04.2012

Приймав участь у кінофестивалі Ранок. Відіслав кліп. Відразу з’явилось чудове відчуття – адреналін, боязливе очікування невідомого.

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

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

Переглянувши роботи конкурентів, я подумав – хто як не я достойний головного призу? Принаймні, перемоги у своїй категорії. Точно перше місце. У трійці переможців – найгірший варіант.

Але я зовсім програв. Мені лише пришлють диплом учасника. Те саме я отримав за Заброшенну Лабораторію на Кінофронті рік тому.

Це дало мені зрозуміти, куди потрібно прямувати, аби розвиватися. Або не розвиватися.

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

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

Врешті-решт, це щось. Цей конкурс мене підштовхнув. Все буде добре.

КоментаріІнтернет, Кіно, Креатив

Як починалась “Заброшенная Лаборатория”

16.03.2012

Це відео з нашого першого візиту. 26 березня буде три роки :) Після цього я почав думати над створенням фільму.

КоментаріІндастріал, Відео, Креатив

Збулося

20.01.2012

Piccy.info - Free Image Hosting

Коментарі (2)Фото

Новий кліп для Interpressive

07.01.2012

Для тієї самої групи. Цього разу вже хоч з якимось сюжетом. Знімали чотири дні… протягом трьох тижнів :) Зате класно – за 2 години встигаю все відзняти і можна їхати додому, бо втомлююсь так, що більше нікуди не хочеться. Монтаж, звісно, зайняв більше часу. І дороблював вже на святах :)

КоментаріВідео, Креатив, Музика

SWI-Prolog + Qt

17.12.2011

Цього року в мене є курсова з дисципліни “Штучний інтелект”. Нічого особливо складного, окрім того, що навчитися користуватися бібіотекою SWI-Prolog, в моєму випадку вона не представляла, тому розробка ПЗ загалом зайняла два дні.

Оскільки серце програми написано на Prolog, а від нас вимагають прикрутити його до якогось нормального інтерфейсу (щоб не викликати команди з консолі), потрібно було розібратись з використанням бібліотеки SWI-Prolog у Qt, котрий я обрав для створення інтерфейсу. А обрав я його, бо був з ним знайомий і він написаний на С++, а на С++ якраз і є написаний інтерфейс для бібліотеки. Далі опишу процес, бо знайти потрібну інформацію в інтернеті було непросто, тому нехай десь буде ще одна копія.

На всяк випадок — я користувався реалізацією прологу SWI-Prolog, писав усе під віндовс і папка, куди встановлено пролог називається pl.

1. Найперше, що ми маємо знайти це заголовочні файли, dll-ка пролога (swipl.dll) та ще одна dll-ка, яку використовує пролог – pthreadVC.dll. Заголовочні файли знаходяться тут: pl/include, dll-ки тут – pl/bin.

2. Як підключати dll в Qt всім, мабуть, відомо. Просто прописуєте у pro-файлі проекту таку штуку:

LIBS += "G:\Documents\workspace\ai\ai-diff-build-desktop\debug\swipl.dll"

Дивіться, щоб dll були у папці з debug-версією вашої програми, бо коли ви запустите її, вона почне шукати їх там само, де лежить її ехе. А за замовчуванням він буде лежати у папці <назва проекту>-build-desktop/debug.

Детальніше про підключення сторонніх бібліотек до Qt тут.

3. Заголовочні файли мабуть можна і не копіювати в папку проекту — в принципі нічого не зміниться, якщо ви вкажете, де їх шукати, в pro-файлі такою строкою

INCLUDEPATH += "pl-include"

Я їх скопіював, тому вказав відносний шлях.

В нашій програмі ми підключимо лише два: SWI-Prolog.h та SWI-cpp.h. В першому знаходиться С-інтерфейс, в другому С++-інтерфейс. З першого використовуються ф-її ініціалізації. З другого все інше, бо з об’єктами працювати простіше.

4. Ініціалізація прологу виконується таким кодом:

#define PROLOG_PROGRAM "G:/Documents/My Dropbox/Personal/Univ/ai/diff.pl"

static char * av[] = {PROLOG_PROGRAM};
if(!PL_initialise(1,av))
{
    PL_halt(1);
    return;
}

В PROLOG_PROGRAM зберігається шлях до програми на пролозі, що буде завантажена відразу після ініціалізації. Власне, в ній знаходиться вся логіка. Ще може виникнути така помилка: “FATAL ERROR: Could not find system resources”. Вирішується просто – http://www.swi-prolog.org/FAQ/FindResources.html

5. Виклик наших предикатів робиться таким чином:

PlTermv terms(3);
terms[0] = PlCompound(function.toStdString().c_str());
terms[1] = PlCompound(variable.toStdString().c_str());
PlQuery q("d", terms);

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

Моя курсова вміє рахувати похідні складних функцій, тому параметри мого предиката (d) такі:

1. функція, похідну якої треба знайти
2. аргумент, по якому шукається
3. відповідь

Відповідь знаходитиметься в terms[2] і виводиться через приведення до char*.

ui->derivEdit->setText(QString(terms[2]));

Ну а перед тим, як звертатись за відповіддю варто перевірити, чи знайшлись взагалі якісь рішення. Це робиться через метод next_solution(). Через нього ж можна перевірити всі рішення.

if(q.next_solution())
    ui->derivEdit->setText(QString(terms[2]));
else
    ui->derivEdit->setText("no solution");

5. Обробка помилок у пролозі нескладна. Якщо щось трапилось, вам кинеться PlException. Після приведення його до char* зможете побачити текст помилки. Так це зроблено у мене:

try
{
    PlTermv terms(3);
    terms[0] = PlCompound(function.toStdString().c_str());
    terms[1] = PlCompound(variable.toStdString().c_str());
    PlQuery q("d", terms);

    if(q.next_solution())
        ui->derivEdit->setText(QString(terms[2]));
    else
        ui->derivEdit->setText("no solution");
}
catch(PlException &ex)
{
    QMessageBox::warning(this,
                          "Prolog Exception",
                          QString("Prolog has thrown an exception: ")+QString((char*) ex));
}

6. На останок кілька посилань, з яких я черпав інформацію.

http://www.swi-prolog.org/pldoc/doc_for?object=section(1,’9′,swi(‘/doc/Manual/foreign.html’)) - документація по використанню пролога в інших мовах програмування.

http://www.swi-prolog.org/FAQ/ - faq по прологу, мені знадобився.

http://www.swi-prolog.org/pldoc/package/pl2cpp.html - документація по С++ інтерфейсу, описання класів та іншого.

http://electricbacon.wordpress.com/2010/09/08/calc-example-using-swi-prolog-and-c/ - звідси я взяв ініціалізацію пролога, гарний приклад програми на С++.

http://stackoverflow.com/questions/2690296/class-problem-c-and-prolog - ще один приклад роботи з прологом на С++

Це все. Сподіваюсь, комусь допоможе.

Коментарі (3)Програмування, Студентство

Мій кривавий Валентин 3D (2009)

01.12.2011

За мотивами “Вредного кино

Классно, когда снимают римейки старых фильмов. Когда-то я задавался вопросом — как же эволюционировало кино за 20, 30 или 40 лет? Что изменилось, и почему? Правда, изменения касаются только технической части фильма. Зрителя теперь можно попытаться ярче впечатлить, сильнее удивить и оставить впечатления намного лучше, чем Н лет назад. А вот сама суть кино, драматургия, совсем не изменилась. Правда, ее хороших примеров в кино стало меньше, или я просто о них больше слышал. Мой кровавый валентин 3D — римейк почти одноименной картины 1981 года. Сюжет нашего современника практически  повторяет своего предка. Не буду парится и выложу описание с Кинопоиска:

Том возвращается в родной городок, спустя 10 лет после ужасных событий, произошедших в День святого Валентина. С приездом молодого человека жители города начинают умирать от рук неизвестного маньяка, и подозрения сразу же падают на Тома. Вместе с девушкой Сарой, в которую он когда-то был влюблен, Том обязан найти неуловимого убийцу…

Интересно, что и римейк, и оригинальный фильм получили практически одинаковые оценки — 6.022 и 6.058 соответственно. Выходит, что даже с мощью 3D фильм смог потерять 0.3 балла (хоть и собрал в десятки раз больше денег)? После этого я просто обязан посмотреть оригинал, ведь то, что я увидел в римейке, с точки зрения здравого смысла меня очень разочаровало.

Начинается все с предыстории, в которой описываются эти “ужасные события”, заинтриговало. Продолжается вечеринкой школьников в день святого Валентина возле заброшенной шахты, в которой проведено освещение — все светло и ярко. Наши герои, 2 парочки, заходят в шахту. После этого внезапно появляется маньяк и начинает убивать. Убивает он не всех, а только случайно попавшихся под руку других школьников. Наши герои выживают.

Такая вот завязка. Потом маньяк будет так же внезапно появляться в других людных местах — в работающей шахте, на парковке, у дома одного из героев.

Сами убийства происходят по-голливудски. Конечно, сначала маньяк таинственно появляется. Потом от него пытаются убежать. Это, конечно же, не получается, и маньяка пытаются одолеть. Это тоже не удается. Но не удается только героям второго плана. Все главные спасутся.

Интересно, как же это все происходит в оригинале?

Когда я только начинал смотреть этот фильм, мне даже нравилось. Такая классическая американ-хорор-стори про подростков. Но всегда ждешь чего-то нормального, а не маньяка появляющегося в любом месте из ниоткуда и уходящего в никуда. Даже если брать Крик (первые три части), где происходит практически то же самое, то там персонаж убийцы окутан какой-то тайной. Он действует скрытно, терроризирует по телефону и у него есть странная маска с застывшим выражением ужаса. Во время его появления почему-то не хочется задать вопрос “Откуда ты здесь взялся и какого черта?”

В “Валентине” маньяк чувствует себя хозяином положения — он абсолютно не беспокоится, что его кто-то увидит, что, в общем, добавляет происходящему абсурдности. Думаю, такой оглушительный успех этого римейка в большой степени из-за кровавых сцен убийства, в которых нам дают понять, что это именно 3D, а не черт-знает-что (хотя такое 3D иначе как черт-знает-чем не назовешь), и сцены с голой проституткой, которая будет голая бегать по номеру мотеля и стоянке.

Но есть и хорошие новости. Думаю, если бы фильм было действительно неинтересно смотреть, его бы никто и не смотрел, или по крайней мере не оценивал так высоко (я поставил 6). Помимо естественного желания узнать, кто же убийца, интересно слушать детали происшествия десятилетней давности, и “ощущать” атмосферу малонаселенного шахтерского городка где-то в глуши. Стоит сказать, что в фильме все-таки есть неожиданные повороты, которые, хоть и не сильно впечатлят, но, по крайней мере, встряхнут и добавят интереса к происходящему. Но так же стоит напомнить, что сцены убийства в этом фильме превращают его в малобюджетный ужастик 80-х, что, похоже, является тонкой отсылкой к оригиналу.

А тепер напишіть, будьласка, як вам.

КоментаріКіно

Ностальгія

07.11.2011

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

Наприклад, на випускному вечері комусь може бути шкода, що школа скінчилась, що її більше не буде і всі робочі школярські будні не можна буде пережити заново. Хоча до цього ніхто особливо і не радувався тому, що треба вставати о сьомій, а то й раніше, що треба розв’язувати задачки, писати диктанти, читати і характеризувати вірші, оповідання, їх героїв, що врешті-решт треба вчити ці вірші, що ти щодня зайнятий до 3-4 години вечора, а після треба робити уроки, або займатися з репетитором, і що навіть коли тебе це сильно задовбало, ти не можеш просто кинути все і нічого не робити, бо від цього залежить твоя четвертна оцінка, а від неї семестрова, а від неї річна, і якщо ти вже відмінник, то тобі не личитиме четвірка в табелі чи деінде.

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

Зйомки будуть, а школа ні. Але в обох випадках приємно згадати те, що було.

А чому я це все пишу? Бо відкрив у блокноті чужу лабу з другого курсу, яка валялась у корні диску D, і зрозумів, що більше такого не зможу пережити. Цього курсу, з цими людьми і викладачами . А за кадром лишаються тяжкі (вибірково) будні.

P.S. А викладачі не люди :)

Коментарі (4)Життя, Студентство, Школа

Нове відео: The Unpunished Part II

25.10.2011

Нарешті ми доробили його. Хто не зрозумів, що тут відбувається, хто ці люди, та чому вони так діють – не сумуйте. Смисл в тому, щоб випробувати зйомку 50fps, зняти перестрілку та загалом повправлятись у зйомці, монтажі, обробці та супутніх речах. Надзвичайний експіріенс.

До речі, почитайте опис відео – там трохи розкрито сюжет. Приємного перегляду ;)

КоментаріВідео, Креатив

Ранок 11.10

13.10.2011

Piccy.info - Free Image Hosting

КоментаріФото