или: Како АПИ* уме да те уништи 1

АПИ-ји су зло. Неизбежно. Зло. Сећам се да сам и ја писао неки АПИ, а учествовао сам и у писању другог. Зло су, кажем. Али овај један је био зло за велике паре. Ненадано. То ми није било јасно, али клијент је увек у праву. На крају крајева, то су његове паре. Ми смо ту само да аутсорсујемо.

Суштина је нешто као интернет-телевизија на захтев. Људи имају свој канал, и треба садржај тог свог канала да лепо прикажу на свом сајту, који смо ми радили. Колико сам начуо, или видео, за тај њихов АПИ и пратећи програм који уз њега долази (админ панел и статистике, шта већ) дато је $70000. Било је индиција да ће врло лако бити доплаћено још за једну преко потребну методу. Од тога ништа.

Клијент хоће плејлисту, што је и логично. Међутим, да бих ја добио плејлисту, треба са канала повући прво идентификаторе свих клипова, а онда за сваки клип повући све информације засебно. Трајање позива се креће 0.5-2 секунде. У зависности од ситуације некад то уме да потраје и дуже.

Жале се нама. Ми објаснимо ситуацију. Они потврде да би било супер да се АПИ прошири још за једну смешну функцију. Жалимо се ауторима. Аутори нам објасне да се то ради онако како ми већ радимо, и да је наше проширење немогуће. Крај приче.

Сајт ради, али понекад мало спорије. Нисам сигуран шта је урађено на фронту да би се поступак убрзао, али мислим да још увек главни део иде преко једног мог позива који позива удаљени сервер 9 пута у петљи. Шта је ту је.

Њихов АПИ бар ради како смо очекивали. Кад помислим на Гугл, или Фејсбук… Но, о томе неком другом приликом.

**
Техничка поука

После годину дана искуства више, и прочитане гомиле текстова, готово тренутно ми пада на памет могућност побољшања:

Паралелизовати 8 од 9 позива, од тренутка кад стигне одговор на први позив (пре тога је немогуће). Направити 8 нити, а онда покупити њихове резултате и све то вратити назад. Пошто су позиви ка удаљеним ресурсима спори и нису процесорски захтевни, требало би да убрзање буде приметно и преко threading библиотеке. Као друга солуција можда би могло да се отвори 8 нових процеса, али то би можда на крају могло бити спорије од нити. Ваљало би пробати у пракси.

Ако ме питате зашто то није урађено док је још било актуелно, постоји неколико фактора. Први је да је пројекат представљен као успутни и лаган (ово немојте покушавати код куће, тј. у својој фирми) и да нам не треба бог-зна-какав умни напор за њега (иако због лудих захтева фронтовцима иначе прокува мозак). Други је моје тадашње неискуство са таквим проблемима. Трећи је фактор превида очигледног када журиш да завршиш малу ствар јер те чека велика (у овом случају био сам паралелно и на једном великом пројекту који још увек! није угледао светлост дана). Ваљда су се и звезде некако поклопиле, па ме је мрзело да укључим мозак.
**

*АПИ – API – Application Programming Interface

Напокон имам нешто да кажем. Ево како је то изгледало.

Сањао сам кућну припрему некакве одбране, од нациста, шта ли. Пробудио сам се, већ други пут данас, у 3.33. Отишао до тоалета, гледајући кроз замрљане очи промашио циљ, обрисао даску. Помислио да овако почињу оне хорор сцене. Бацио крајичком ока поглед на огледало – све је нормално очекивано, али не баш нормално. Отишао до оставе по нову ролну папира. Две, једна у резерви да се не деси исто што и сада. Вратио се, оставио то, погледао поново на сат – 3.39, време је да заспим поново.

4.22. Још не свиће. 4.44. Кроз крошње се полако помаља неки вид светлости. Можда је време да устанем, иако сат треба да звони у 6. Ионако не могу да спавам.

И читав сат већ размишљам о својим старим пројектима и о томе шта би данас требало да се заврши.

Хронично сам уморан ових неколико дана, никако да се наспавам. Сад, да ли је од посла или од недостатка истог у претходних пар месеци, па постајем лењ и уморан од најмањих ситница, немам појма. Али од силног размишљања могло би настати неколико причица, које ћу послати у нацрте и објављивати једну по једну, како за тим буде настајала потреба.

Схватио сам да сам често журио, и да је требало да ово сазри пре него што кренем да пишем, и драго ми је што је „Бизнис трип“ све време стрпљиво чекао на свој тренутак.

Није ме било овде… Отворио сам блог, рећи ћете, и ништа нисам писао. Ето, већ скоро месец дана потпуне неактивности.

Није да нисам био кретаиван. Само нисам био креативан у овим сферама. Не толико, да бих имао о чему да пишем.

Помогао сам колеги да припреми једну php скриптицу за бројање страница, уз коришћење обичне текстуалне датотеке уместо базе података. Несигуран и неефикасан начин, рекло би се, али може да прође. Једини проблем је што није имао где да је хостује. Ја сам је испробао на локалу, ради. Можда следећи пут напишем неки мали туторијал на ту тему.

Бавио сам се доста редизајном свог другог блога на Блогеру. Тамо сам био и много активнији, али то је друга прича. Отворио сам и фан-страну на facebook-u за исти. Можда поменем нешто о томе.

Испробао сам неке мале linux дистрибуције, даћу своје импресије о њима у неком од следећих постова. И да, са windowsa сам готово потпуно прешао на linux, колико је то изводљиво са тренутно расположивим ресурсима. Сусрет са једним другачијим концептом, на моју велику радост врло пријатан, није протекао без икаквих проблема и тешкоћа. И о томе ћу рећи коју.

Полагао сам испите. Све у свему нисам тако лош, можда је то и боље могло, али добро сад…

Сад идем кући. Потрудићу се да ових неколико дана (2-3 недеље?) искористим за одмор и припрему тих текстова што сам обећао. А и ко зна шта ће се још десити у међувремену.

До следећег читања, размислите о овоме што сам рекао. Можда добијете неку идеју🙂

Малочас сам разговарао са Летњом Олујом и пожалила се да има проблем да дода линк ка свом новом профи блогу Основе фотошопа на листу страница на свом примарном блогу Куку мени куку нама. Оба су на Blogger платформи.

Додатак „листа страница“ који постоји од тренутка када се на Blogger-у појавила опција уграђивања статичких страна аутоматски је повезан са статичким странама на блогу, тако да је дискретно одређен скуп линкова који се може појавити у оквиру њега. Ипак, постоји једноставан начин да на листу страница додате шта год желите, само је потребно мало чепркања по коду (не много, заиста). Да кренемо:

1. Из Контролне табле одаберите Дизајн, па Измени HTML. Појављује се страница на којој можете мењати HTML шаблона који користи ваш блог.

2. Штиклирајте „Прошири шаблоне виџета“. Ово вам је потребно како бисте могли мењати код додатка „листа страница“.

3. Потражите део који изгледа отприлике овако:

<b:widget id='PageList1' locked='false' title='Странице' type='PageList'>

Ово је почетак вашег додатка за странице (можете тражити PageList док не наиђете на почетак виџета).

4. Код стандардно обично изгледа овако:

<b:widget id='PageList1' locked='false' title='Странице' type='PageList'>
<b:includable id='main'>
<b:if cond='data:title'><h2><data:title/></h2></b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:links' var='link'>
<b:if cond='data:link.isCurrentPage'>
<li class='selected'><a expr:href='data:link.href'><data:link.title/></a></li>        <b:else/>
<li><a expr:href='data:link.href'><data:link.title/></a></li>        </b:if>
</b:loop>

</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

Оно што је потребно је да додате


<li><a href="LINK_KA_EKSTERNOJ_STRANI">NAZIV EKSTERNE STRANE</a></li>

испод </b:loop>(у овом примеру сам га подебљао и оставио празно место испод). Наравно, уместо великих слова укуцајте одговарајуће податке.

5. Сачувајте шаблон. Следећи пут када отворите блог, поред свих статичких страна са блога биће још један линк – онај који сте додали.

Срећно с блоговањем!🙂

Hello World!
Eoin O Dell / CC BY-NC-SA 3.0

Каже Вордпрес ону стару добру програмерску „Здраво свете!“.

Дозволио сам му. Мада ја то не волим.

Ово би требало да буде блог о мојој будућој/садашњој професији, тј. о стварима везаним за њу и о мојим искуствима. Иначе, тренутно сам студент рачунарских наука на Рачунарском факултету у Београду. Углавном сам заинтересован за програмирање оних ситних детаља који стоје у позадини свега. Слабо стојим са графичким дизајном, немојте ми замерити ако овај сајт не изгледа баш онако како бисте ви волели; није ствар у томе што не знам да користим програме за графичку обраду већ у томе што немам баш укуса за боје (то сам чуо више пута од различитих људи), те стога гледам да све буде некако минималистички одрађено, како би што мање сметало.

С једне стране пробаћу да будем у току са тренутним дешавањима у ит-свету, бар онолико колико ја могу да испратим; с друге стране писаћу какве су ме радости или муке задесиле док сам радио нешто, и како се одређени проблеми могу спречити или решити.

Толико за први пут. Сад мало морам да се позабавим изгледом… Нов сам на Вордпресу, не знам баш како функционише, али верујем да ћу се брзо уходати.