Generate User Tutorials with RSpec and Capybara

Capybara is a great test framework for writing integration or acceptance tests. It drives Selenium or Webkit through your website, rendering CSS and Javascript. An ability to take screenshots was added to Capybara in 2012, and this made debugging much easier. Fast forward to 2016, and my website features are growing and improving, with a need to document them for users. Why not recycle my own work, and take a screenshot for a feature tutorial?


Open a File with Atom from iTerm2 Using Command-Click

One of the lesser known features in iTerm2 is that when you hold the command (⌘) key on your keyboard and click on a filename or a path, it tries to open it.


Ruby assignment operators return the right-hand side value

Memoizing in ruby is pretty straight forward, but sometimes ruby puts limitations. This limitation is apparent when you override behavior of parent class, and the solution, let alone your mistake, is not so obvious.


Task List in Github Pull Requests + Do Not Merge WIP Plugin for Chrome

Using checkboxes, or task lists, in pull request description is not new. This feature seems to have existed since 2013.

Basically, you write this:

- [ ] a task list item
- [ ] normal **formatting**, @mentions, #1234 refs
- [ ] incomplete
- [x] completed

and it will turn your GitHub Flavored Markdown into a list with checkboxes:

Task List

What makes this cool, is that when you combine it with the Do Not Merge WIP for GitHub plugin, it looks if there are any unchecked checkboxes and won't let you merge the commit like so:

Can't Merge WIP

In any case, why would you be trying to merge this PR when the dashboard clearly says that not all tasks have been finished:

PR List

I wonder if there are any cool plugins like this for Safari.


Time-lapse of some sea creature

Finally found a good use for a time-lapse video. Filming took about 20-minutes using Instagram's Hyperlapse. Hyperlapse's stabiliser is a little bothersome, as it kind of makes the video drift a little, even if the camera has not moved.

Now, I am trying to identify this creature. Do you know what this is? (This was shot at Fukue island, Japan or 福江島, if that helps)


Russian Propaganda Review

Donetsk Airport

Now that Ukrainian troops have taken complete control of the Donetsk airport, it is a good time to look back at an example of Russian media propaganda. The attached ITAR-TASS "news release" follows a typical pattern of Russian propaganda: start with a lie, add some nonsense, and then finish with a different lie which contradicts the first lie:

The first lie: "Only the most staunch idea-driven are staying, there is no exact information on how many of them are there, a military adviser to the head of the self-proclaimed Donetsk People’s Republic told TASS"

The nonsense: “It was not an operation to squeeze out the Ukrainian troops from the airport, it was a “good will gesture” on the part of the DPR,” he said.

The contradiction: “There are no Ukrainian servicemen at the new terminal of the airport. They have abandoned their positions and have withdrawn seeing no point in further resistance,” the ministry said.

First they claim that some are left, and that there is no exact information. But by the end of the news release, they claim to have exact information and that none are left.

This is a key characteristic of Russian propaganda - instead of presenting a simple lie, they present a compound lie, which contains two or more mutually exclusive assertions. This has the effect of numbing the rational faculties which simply cannot believe two mutually contradictory propositions, thereby allowing entrance of irrational ideas - the emotive nonsense that they insert into the middle of the compound statement.


Why Ctrl+F in Outlook to Forward instead of Find

Bill Gates... a powerful man. Also, WTF.

It's a widespread convention that the Ctrl+F keyboard shortcut initiates a Find operation. Word does it, Excel does it, Wordpad does it, Notepad does it, Internet Explorer does it. But Outlook doesn't. Why doesn't Outlook get with the program?

Rewind to 1995.

The mail team was hard at work on their mail client, known as Exchange code name Capone, in keeping with all the Chicago-related code names from that era. Back in those days, the Ctrl+F keyboard shortcut did indeed call up the Find dialog, in accordance with convention.

And then a bug report came in from a beta tester who wanted Ctrl+F to forward rather than find, because he had become accustomed to that keyboard shortcut from the email program he used before Exchange.

That beta tester was Bill Gates.

via MSDN Blogs.


Lovely new ringtone, with love, for Russia

Putin Khuilo

If you're into the current situation in Ukraine, maybe you will understand this obsession, but here is a wonderful ringtone for your iPhone. All thanks to the FC Metalist Kharkiv of Ukraine.

Download your ringtone here.

Once you have saved it, open in iTunes and drag it to your phone to install the ringtone.

Here is the original video:


Profile ROI

Two of my answers on Stack Overflow are surprising doing well, which puts me in top 5% for this year.

Screen Shot 2014-05-22 at 3.40.52 PM

Also, I've earned "Great Answer" badge. yay!

Screen Shot 2014-05-22 at 3.41.15 PM


Oppression of Ukrainian Language for over 400 years

XVII century
1627 – order of Tsar Mikhail, petitioned by the Moscow Patriarch Filaret to burn all copies of the “Uchitel” Bible published in Ukraine by Kirilo Stavrovetskiy.
1696 – order of the Polish Seym to implement the Polish language in courts and institutions of Right Bank Ukraine
1690 – the condemnation and anathema of the Russian Patriarchal Church of “Kievskia Novia Knigi” of Petro Mohyla, Kirilo Stavrovetskiy, S. Polotskiy, L. Baranovich, A. Radzivilovskiy and others.

XVIII century
1720 – order of Muscovite Tsar Pyotr I regarding the ban of book printing in Ukrainian and the elimination of Ukrainian texts from church scriptures
1729 – order of Pyotr II to rewrite all government orders from Ukrainian into Russian
1731 – order of Tsarina Anna Ivanovna to confiscate Ukrainian printed books, and to “teach sciences in our own Russian language.” In the secret instruction to the head of Ukraine Prince O. Shakhovskiy in 1734 she ordered to by all means to prevent Ukrainians to marry Poles and Belorussians, “and to artificially engage them with Big Russians.”
1763 – order of Catherine II regarding the ban on teaching in Ukrainian in the Kyiv-Mohyla Academy
1769 – prohibition of the Sinode of the Russian Patriarchal Church to print and use the Ukrainian bukvar
1775 – the ruin of the Zaporizhya Sich and the closure of Ukrainian schools in Cossack chancelleries.
1789 – the order of the Education Committee of the Polish Seym regarding the closure of all Ukrainian schools

XIX century
1817 – the provision of the Polish language in all national schools of Western Ukraine
1832 – the reorganisation of education in Right-Bank Ukraine on pan-imperial orders with using Russian language for teaching
1847 – the ruin of the Kirilo-Methodius association and the increase of harsh persecution of Ukrainian language and culture, the ban on the best masterpieces of Shevchenko, Kulish, Kostomarov and others
1859 – the Ministry of Religions and Sciences of Austro-Hungary in Eastern Galicia and Bukovina tried to replace the Ukrainian cyrillic alphabet with a latin one
1862 – the closure of free Sunday Ukrainian schools for adults in Russia-governed Ukraine
1863 – Valuyev order regarding the ban on censure allowance on printing Ukrainian spiritual and popular education literature: “there is and can not be any separate Maloros language”
1864 – the affirmation of the Statute regarding primary school, according to which education should only be carried out in Russian
1869 – the provision of the Polish language as the official language of education and administration of Eastern galicia
1870 – the explanation of the Russian Minister of Education D. Tolstogo that “the end goal of the education of all foreigners has to be Russification”
1876 – the Ems order of Alexander II regarding the prohibition on printing and import from outside the country of any Ukrainian language literature, as well as the prohibition of Ukrainian theatrical performances and printing of Ukrainian texts on sheet music, therefore national songs.
1881 – the ban on teaching in public schools and church services in Ukrainians
1884 – the ban of Alexander III of Ukrainian theatrical performances in all Maloros governments
1888 – the order of Alexander III regarding the ban of using Ukrainian in all official institutions and baptisms with Ukrainian names
1892 – the ban on translating books from Russian to Ukrainian
1895 – the ban of the Main Headquarters in Questions of Printing to publish children’s books in Ukrainian

XX century
1908 – four tears after the Russian Academy of Sciences acknowledge the Ukrainian language, the Senate announces the Ukrainian-speaking cultural and education activity to be harmful for the empire
1910 – the closure on order of Stolipin’s government of all Ukrainian cultural associations, publishing houses, the ban on lecturing in Ukrainian, the ban on creating any non-Russian clubs
1911 – the order of the VII Dvorian Assembly in Moscow regarding exclusively Russian-language education and the unacceptability of using any other languages in Russian schools
1914 – the ban on celebrating Taras Shevchenko’s 100th birthday; the order of Nikolai II regarding the ban of Ukrainian press
1914, 1916 – the campaigns of Russification in Western Ukraine; the prohibition of the Ukrainian language, education, church.
1922 – the proclamation of part of the leadership of the CC RCP and CPSU of the “theory” of two cultures fighting in Ukraine – the city (Russian) and the village (Ukrainian) cultures, in which the former must win
1924 – the order of the Polish Republic to limit the use of Ukrainian in administrative institutions, courts, education on lands governed by the Polish
1924 – the order of the Romanian Kingdom regarding the obligation of all “Romanians,” who have “lost their mother tongue” to educate their children in Romanian schools only.
1925 – the final closure of the Ukrainian “secret” university in Lviv
1926 – Stalin’s letter to “Comrade Kaganovich and other members of the Politbureau of the Central Committee of the Communist Party of Ukraine” with the emphasis on fighting against “national inclinations,” the beginning of persecution of “Ukrainisation” activists
1933 – Stalin’s telegram regarding the suspension of “Ukrainisation”
1933 – the abolition in Romania of the ministry order of December 31st of 1929, which allowed several hours of Ukrainian language a week in schools with a majority of Ukrainian students
1934 – the special order of the Ministry of Education of Romania regarding the firing “for animosity to the state and the Romanian people” of all Ukrainian teachers which demanded the return of the Ukrainian language to schools
1938 – the order of the Council of People’s Commissars and the CC of the SCP “Regarding the compulsory learning of the Russian language in the schools of national republics and regions,” the according order of the Council of People’s Commissars and the Communist Party of Ukraine
1947 – operation “Visla”; the dispersal of part of Ukrainians from ethnic Ukrainian lands together with Poles in Western Poland in order to speed up their “polonisation”
1958 – article 20 of the Basis of USSR Legislation and that of soviet republics regarding national education of the free choice of language of learning; the learning of all languages except for Russian by choice of the students’ parents
1960-1980 – mass closures of Ukrainian schools in Poland and Romania
1970 – the order that theses can only be written in Russian
1972 – the ban by party bodies of the celebration of Kotlyarevskiy Museum’s jubilee in Poltava
1973 – the ban on the celebration on the anniversary on Kotlyarevskiy’s masterpiece “The Eneid”
1972 – the order of the CC CPSU “Regarding the preparations for the 50th anniversary of the creation of the USSR,” in which for the first time the “creation of a new historical community – the soviet people” is proclaimed, an official de-nationalisation course
1978 – the order of the CC CPSU and the Council of Ministers of the USSR “Regarding the means of further improvement of learning and teaching the Russian language in Soviet republics” (“Brezhnev document”)
1983 – the order of the CC CPSU and the Council of Ministers of the USSR “Regarding additional measures in improving the learning of the Russian language in public schools and other learning institutions of Soviet republics” (“Andropov order”), which in particular instills a 16% increase in the salaries of the teachers of the Russian language and literature; the directive of the collegium of the Ministry of Education of the Ukrainian Socialist Republic “regarding additional measures of improving the learning or the Russian language in public schools, pedagogical learning institutions, pre-school and post-school institutions of the republic,” directed at increasing russification.
1984 – the order of the CC CPSU and the Council of Ministers of the USSR “Regarding the further improvement of public middle school education of the youth and the improvement of working conditions of public schools”
1984 – the beginning of 15% increase in salaries for Russian language teachers in comparison with Ukrainian language teachers in Ukraine
1984 – the order of the Ministry of Culture of the USSR regarding the transfer of all businesses in all museums of the USSR to the Russian language
1989 – the order of the CC CPSU “regarding the legal fixation of the Russian language as the official national language”
1990 – the approval of the law regarding the languages of the people of the USSR in which Russian is deemed the official language -