Speaking at #AndroidDevDays: Scaladroids

I have just returned from Android Developers Conference in Ankara. That was an amazing event. GDG Ankara and GDG Istanbu did a great job in organizing that conference. I wish every conference would be like that!

At the #AndroidDevDays I was speaking about Android development with Scala. Here are the slides of my presentation:

2013. #Читалка

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

Як хтось знає добре чтиво – кидайте в коменти, не стидайтесь 😉

  1. 2012-01-03 Кадиллак Долана Стивен Кинг
  2. 2012-01-04 The Телки. Повесть о ненастоящей любви Сергей Минаев
  3. 2012-01-08 Снаф Чак Паланик
  4. 2012-01-12 Романтический эгоист Фредерик Бегбедер
  5. 2012-01-16 Удушье Чак Паланик
  6. 2012-01-18 Билл — герой галактики Гаррисон Гарри
  7. 2012-01-20 Эскорт Чак Паланик
  8. 2012-01-22 New York Times с особыми скидками Стивен Кинг
  9. 2012-01-28 Игра Джералда Стивен Кинг
  10. 2012-02-02 Отель Артур Хейли
  11. 2012-02-05 Аэропорт Артур Хейли
  12. 2012-02-12 ПираМММида Сергей Мавроди
  13. 2012-02-20 Пески времени Шелдон Сидни

Деталі і описи книжок під катом, Велкам!
Continue reading ‘2013. #Читалка’

#Підсумкироку #2012

досягнення року 2012. Читалка
подія року гірські лижі в Буковелі
івент року всі #gdglviv івенти
зустріч року випадкова
транспорт року Рейковий автобус PESA 620M
подорож року Чехія, Пітер, Болгарія, Краків
колір року зелений
ржач року пари в універі
книга року Три товариші
автор року Мілтон Еріксон
пісня року J’Man — Програмист
заклад року Віденські булочки/Кафе №1
напій року чорний чай без цукру
їжа року деруни
скіл року висипатись в автобусах
мова програмування року Java, Scala
захоплення року хардварні відкритки
операційна система року Ubuntu Linux 11.10 + awesome wm
гаджет року HTC Desire Z
комп’ютерна гра року Ski Safari & Dead Trigger
протокол року VNC
прошивка року MIUI
курси року Scala course at Coursera
веб-сервіс року Coursera

Зараз 2012 здається на диво спокійним роком. Але якщо позгадувати, то було багато всього.
Цілі досягнуто, висновки зроблено. Нові попереду.
Однозначно мастхев рік.

Львів, 2012.

Building Chromium Embedded Framework (CEF) on Linux

Prerequisites: What I had?

  • Ubuntu 11.10 x86
  • 2770 Mb of DDR2
  • ~17Gb of free space on NTFS partition
  • I wanted to compile CEF1 1271 branch on Linux

Results & Downloads: What I got?
Here you can download CEF1 1271 binary linux distribution (ATTENTION: ~365MB): http://bit.ly/cef1linux1271x86

CEFclient application

CEF client application

Process: How to build Chromium Embedded Framework (aka CEF) on Linux?

Note to those, who’ll try to compile that on Linux, but on NTFS partitions:
Mount your NTFS partition using
sudo mount -t ntfs -o rw,auto,fmask=0022,dmask=0000,uid=1000,uid=1000 /dev/sdaX /your/mounted/ntfs/folder
Then all your files will be mount, as if they belong to the user with id 1000 (usually default user in linux, root is 0) and all the files could be executable.

  1. Read BranchesAndBuilding from CEF wiki.
  2. Select release branch you need. I used 1271 CEF1: http://chromiumembedded.googlecode.com/svn/branches/1271/cef1
  3. Use automated method: http://code.google.com/p/chromiumembedded/wiki/BranchesAndBuilding#Automated_Method
  4. Double-check, that you have read/write permissions on files and can execute scripts in your development environment.
  5. Checkout automate tools from svn:
    svn checkout http://chromiumembedded.googlecode.com/svn/trunk/cef1/tools/automate /path/to/automate
  6. Read http://code.google.com/p/chromiumembedded/source/browse/trunk/cef1/tools/automate/automate.README.txt
  7. Execute:
    python /path/to/automate/automate.py --download-dir=/FULL/PATH/TO/DOWNLOAD/FOLDER --url=http://chromiumembedded.googlecode.com/svn/branches/YOUR_BRANCH_NUMBER/cef1
  8. Generally, it will fail after the source checkout. Execute:
    ...download/chromium/src/build/install-build-deps.sh
    It will install build dependencies for chromium.
  9. Execute:
    python /path/to/automate/automate.py --download-dir=/FULL/PATH/TO/DOWNLOAD/FOLDER --url=http://chromiumembedded.googlecode.com/svn/branches/YOUR_BRANCH_NUMBER/cef1 --force-update --force-build --force-distrib
  10. If you are lucky enough, build won’t fail and you’ll enjoy generated cef_binary_1.XXX.YYY_linux.zip in the ...download/chromium/src/cef/binary_distrib folder!
  11. In order to check this, cd into ...download/chromium/src/cef/binary_distrib/cef_binary_1.XXX.YYY_linux/Release folder and run: ./cefclient
    I hopy, you’ll enjoy that simple cefclient app, built from source!

Here’s the screenshot of the cefclient :)

That’s it! As the wiki states, you can even set up CI job for that, using your favourite CI tool!

Патрік. Інтро //хлам_0

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

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

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

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

Графічні редактори

Кажуть, людське життя треба ділити не на етапи по віку, а на етапи “по Фрейду”: перший поцілунок, перший секс, і щось там далі.

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

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

Аналогічно, перший графічний редактор, з яким мене познайомили — суперкрутий редактор всіх часів та народів! Зустрічайте, Microsoft Paint! Можу спорити з багатьма людьми на різні теми, та mspaint.exe буду відстоювати довго. Жодна інша програма не дозволяє мені з такою легкістю і швидкістю вирізати кусок скріншота чи картинки з нету. Жодну інші програму я не можу запустити з такою блискавичною швидкістю на будь-якій Windows-машині і знати, що вона запуститься і не впаде. О,ці [Win]+R -> mspaint -> [Enter]. Руки пам’ятають цю послідовність навіть в темноті, при виключеному світлі. А перетягування частин картини з прозорим фоном.. ммм.. воно дасть фори всім.

Схожа ситуація і з чимось серйознішим. В один момент, тобі потрібно щось більше, ніж просто mspaint. Він класний, та ти відчуваєш невимовну тягу до масок, фільтрів і інших тонкостей обробки зображень. Тут смаки графічних фетишистів розходяться. Колись мені подарували диск з редактором PrintArtist. Кліпарт+простий векторний редактор. В ньому я зробив чимало привітальних відкриток важливим для мене людям. Хоча він старий як світ (~2003), та він був дуже простий, і, водночас, неймовірно потужний. Щось схоже на невидимий міст поміж простим і складним. Поцілунки на грані фальшу, легкий петтінг.

Настає момент, коли об’єднані елементики з кліпарту формують більш-менш грандіозні картини, витвори бурної фантазії. Тут я познайомився з Macromedia Fireworks. Так, з цією крихіткою я познайомився ще у ті часи, коли вона носила прізвище Macromedia. У нас закрутився грандіозний роман. Що ми тільки разом не витворяли. Було багато цікавого і неочікуваного, перший солідний заробіток. День за днем я все глибше і глибше занурювався у її великий набір функцій, гладив її шорткатами, старався не відриватись від мишки, крутячи скролл у різні сторони.
Йшов час, ми обоє дорослішали. Fireworks змінила прізвище на Adobe. Все, що колись здавалось неможливим і складним, розтануло у потоці емоцій та думок. Дії викристалізовувались у добре продумані патерни. Я знав, куди слід натиснути для отримання бажаного результату і Fireworks відповідала мені взаємністю, доставляючи візуальні задоволення своїми барвистими фільтрами та шумами.
Перший серйозний редактор — як перші серйозні відносини, а перша серйозна картинка в ньому — як перший секс: косо, криво, з хвилюваннями, але результат є. І він не може не радувати.

А потім я познайомився з Linux. Я перестав користуватись Fireworks. Я старався подружити її з Linux’ом, та вона не піддавалась. InkScape, GIMP — всі здавались складними і чужими. Короткотривалу радість приносила Pinta (аналог mspaint?), та вона вилітала і з буфером в неї не все було впорядку. Час від часу, вони допомагали досягати результату, та більше дратували, ніж приносили задоволення.

Сьогодні я знову згадав про Fireworks, відкрив цю крихітку. Серце наповнилось теплом проведених разом вечорів, в пам’яті промайнули спільні проекти та її неймовірний вклад і пристрасть у боротьбі за їхнє виконання. Вона не гаяла часу дарма, стала соліднішою, серйознішою. Окремі риси зовнішності зазнали незначних змін, та, здається, все на краще. Сьогодні ми зустрілись у великому розширенні на полі широкоформатного монітора. У нас було безліч простору для того, щоб пригадати давні вміння. Це, взагалі-то, як їзда на велосипеді. Ти забуваєш, якщо довго ним не користуєшся; та достатньо лише сісти і закрутити педалі у ритмі серця, і все стає на свої місця: притуплюються непотрібні відчуття, зростає концентрація. З найпотаємніших закаулків мозку назовні пробиваються спогади, таланти та вміння. Згодом, ти вже не їдеш — ти летиш крізь вітер у сонячному промінні, розтинаючи простір навколо себе.

Сьогодні ми досягли цілі. Здається, все пройшло гладко і на порядок структурованіше, вище. На неї вплинули десятки UI/UX дизайнерів та адептів Adobe культури. У мене з’явились мінімальні звички розбиття великих завдань на набір простих, менших цілей, які разом формують щось вище, ідейно наповнене Ціле.

Вона прекрасна, оця Fireworks.

quarterly linux report #0

With this post I’d like to start my quarterly Linux report, in order to maintain my crappy linux usage achievements. Nothing special, just naked facts. Every 3 months. Reccuring calendar event added.

It’s time to kickstart!

So, here are the facts:

  1. Distro: Ubuntu 11.10
  2. Kernel: 3.0.0
  3. WM: awesome wm; stopped using Gnome3 (gnome-shell), ‘cos it still crashes a lot; btw, awesome wm is blazingly fast and configurable; I consider it to be the best wm for laptops I’ve ever tried; btw2, skype in stacked mode is the best linux skype gui I’ve ever used :)
  4. Terminal: urxvt
  5. sh: zsh/oh-my-zsh
  6. Editor: still on vim; tried emacs for a while and loved org-mode, but all those Ctrl/Alt shortcuts drive me crazy, especially, when I’m on the ukrainian kbd layout; hate switching
  7. Kbd: started using CAPS-LOCK as the primary key for layout switching; that’s awesome and quick :)
  8. Dormitory Linux Box: enchaned htb queue; I love dynamic traffic shaping :)

And some rotten tomatoes at the end: What I HATE in Linux right now. If anybody knows the solution, please comment! I’ll buy you a beer/juice/chocolate:

  • all the programs use various copy-paste methods! It’s fucking hard to copy text from terminal and paste that into browser and vice-versa! How you deal with this?

I guess, that’s enough for the first time :)

Враження від волонтерського табору

Заміський будиночок мера Майнца

Заміський будиночок мера Майнца

Привіт!

Мене звати Андрусів Остап. Рік назад ми з другом вирішили взяти участь у міжнародному волонтерському обміні.

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

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

Нашою метою була пригодницька поїздка за кордон, тому, взнавши про Юніон-Форум, ми сіли та 2 ночі уважно вибирали табори. Після подачі усіх документів, нас затвердили до участі у таборі в Майнці (це 300000+ місто біля Франкфурта-на-Майні).

Ми придумали собі досить цікавий спосіб дібратись до місця призначення. Оскільки віза відкривались за 2 дні до початку табору, то прилетівши літаком з Жешува до Франкфурт-Хана, ми сіли на автобус і поїхали гуляти в Люксембург.

Після Люксембурга, ми приїхали до табору, де нас зустріли інші волонтери. Табір проходив на околицях міста Майнца, а саме на території Старої Цегельні (Alte Ziegelei). До 1972 року, це була діюча цегельня, але потім запаси глини вичерпались, і її закинули. Кілька років цегельня пропадала, її розграбовували і розносили по клаптиках. Але у 1978 місто Майнц вирішило викупити цю територію, щоб зробити на ній місце відпочинку жителів і гостей міста та своєрідний центр дитячої майстерності, на зразок нашої Погулянки. Оскільки будівля і прилеглі території були в страшному стані, то люди з сусіднього району збирались на вихідних, відновлювали її і пили чай-каву-пиво. Згодом, з’явилась ідея оргінізувати міжнародний workcamp. І ось уже впродовж останніх 30 років місто Майнц збирає волонтерів з усього світу.

У 2011-му нас було всього 12 волонтерів з 8 різних країн: Тайвань, Південна Корея, Іспанія, Франція, Туреччина, Німеччина, Латвія і Україна. Усі ми старались спілкуватись англійською, та до кінця табору кожен знав кілька слів з інших мов. Нашим кемп-лідером була дівчинка з Латвії, і нам з другом дуже сподобалось те, що з першого дня і до кінця табору ми спілкувались з нею виключно мовою табору: англійською, хоча ми всі троє прекрасно розуміли російську. Однією з цілей поїздки було бажання вдосконалити свою іноземну. З англійською так не вийшло, а от німецької згадав чимало.

День волонтера досить насичений. Наш розпорядок був простим: вставали о 8-ій, працювали до 14-ої. Після цього в нас був вільний час, який ми тратили на всеможливі розваги. Робота полягала у відновленні стін майстерень цегельні. Після першого дня Енріко (менеджер цегельні) називав нас двох Ukrainian Destruction Team. Ми були неперевершеними у руйнуванні старих непотрібних об’єктів і це приносило нам масу задоволення! Робота переривалась на ланч і обід. Доречі, про їжу. Щодня, 2-оє людей з групи очолювали kitchen-team і займались лише харчуванням. Ми старались зробити так, щоб всі готували блюда своїх місцевих кухонь. На український вечір ми з другом зробили 5кг дерунів. Після цього, я вирішив, що більше ніколи не тертиму картоплю на терці.

Майнц лежить на Рейні та знаходиться недалеко від Візбадена та Франкфурта. За час табору ми прокатались по Рейну та його околицях, подивились на величезну кількість замків і виноградників на його берегах. Їздили автобусом кілька разів у Візбаден — відпочинковий курорт з мінеральними водами — локальна версія нашого Трускавця, але замість Жигулів там по місту їздять Порше. На довго запам’ятається подорож у Франкфурт, хоча вона і не була дуже вдалою, та ми отримали масу класних вражень!

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

Закінчили проект

Закінчили проект

3 тижні, відведені на табір, пролетіли неймовірно швидко. Останні кілька днів всі ходили трохи пригніченими, тому що розуміли, що кінець вже близько. Згодом, один за одним, табір залишили майже всі волонтери. Ми покидали цегельню одними з останніх. Передати враження і емоції фотками, відео і розповідями нереально. Щоб це відчути, варто з’їздити в таку подорож. Варто пережити це самому! Тепер у кожного з нас є друзі у 8-ми країнах світу. Ніхто не знає, коли і де у світі ми зустрінемось та чи зустрінемось взагалі, але коли бачиш у facebook’у сторінку волонтера, то до серця прилинає тепло, а в пам’яті зринають обриси проведених разом днів. Ці люди зробили моє літо несхожим на інші, і я безмежно їм за це вдячний!

Проголосувати за враження на конкурсі можна тут:

  1. Додатись до групи: http://vk.com/club21448355
  2. Голосуйте за [Ukrainian Destruction Team (Німеччина)] vk.com/topic-21448355_25994108

Гарного усім літа!

2012. Читалка

Буду апдейтити пост тим, що я прочитав цього року.

Як хтось знає добре чтиво – кидайте в коменти, не стидайтесь 😉

  1. 2012-01-02 Метелик Анрі Шарьєр
  2. 2012-01-04 Ва-Банк Анрі Шарьєр
  3. 2012-01-22 Пригоди бравого вояка Швейка Ярослав Гашек
  4. 2012-03-10 Joel On Software Joel Spolsky
  5. 2012-05-04 Generation П Виктор Пелевин
  6. 2012-05-06 Всем спасибо Алекс Гой
  7. 2012-05-16 Любовь живет три года Фредерик Бегбедер
  8. 2012-05-19 Каникули в коме Фредерик Бегбедер
  9. 2012-05-25 Воспоминания необразумившегося молодого человека Фредерик Бегбедер
  10. 2012-05-27 Рассказики под экстази Фредерик Бегбедер
  11. 2012-06-04 Французкий роман Фредерик Бегбедер
  12. 2012-06-19 Windows on the world Фредерик Бегбедер
  13. 2012-06-23 Довчонка без попки в проклатом сорок первом Джером Девід Селінджер
  14. 2012-07-14 Три товариші Еріх Марія Ремарк
  15. 2012-07-16 Над пропастью во ржи Джером Девід Селінджер
  16. 2012-09-16 Мой голос останется с вами Милтон Эриксон
  17. 2012-11-26 F**k It: The Ultimate Spiritual Way Джон Паркин
  18. 2012-12-29 Дневник-Хроники тестировщика Юрий Алексеевич Бригадир
  19. 2012-12-30 Відстані та вібрації Юрко та Тарас Прохаськи

Shutdown, Reboot, Suspend or Hibernate with user priviliges via D-Bus

Some distros don’t allow you to
shutdown -r now
from terminal without superuser password.
Shutdown/Reboot/Suspend/Hibernate with user priviliges in Linux is possible via D-Bus. You just need consolekit and upower packages installed.

Here are the commands:

Operation D-Bus command
Suspend dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Hibernate dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Reboot dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Shutdown dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Just paste them in your beloved terminal emulator and press enter :)




Hosted by EOMY.NET