RustyRoadMaster

Use promo code: HATE2014

В очередном изматывающем серфе по техническим блогам, в посте про Хаскель наткнулся на такую фразу "It’s a very good paper, but the thing most striking about it is its age. 1977! My father was five."

72 + 18 (стать отцом в 18 это конечно лол, но допустим), в общем, у нас есть чувак 90-94 года рождения. Кликаем на g+ линк, ничего интересного, учит CS. Уже интереснее: скиллы Python, C, Web stack (вспоминается "/dev/null is web-scale"), Linux, Lua, Rust.

Работает в Thinkful, python mentor. Линка нет, но гугл выдает их на первой строке. Сайт модный, бутстрапный, адаптивная верстка, все дела. "Learn to code faster, with a mentor". Отмечаем про себя, что ментору может быть 19. Ну что ж, может быть, не все в 19 так же бесполезны, как я, и вообще это все зависть. Посмотрим что там вообще продают:
1. HTML, CSS, Javascript, jQuery, Git, Bash, Design Fundamentals (где же node.js, спросит опытный читатель хабра).
2. Objective-C, Cocoa, Xcode, Git (опять гит).
3. Python, Flask, Test-Driven Development, Object Oriented Programming, SQL, Heroku (а где же гит?)
4. Ruby, Ruby on Rails, Git, the Command Line.

Это все, этими 4 курсами они предлагают "advance your career". Готовьтесь "make web a better place" гитом и руби.

Куда катится интернет.
RustyRoadMaster

Чешутся часовые пояса?

http://www.w3.org/TR/timezone/

Comprehensive, советуйте всем сомневающимся. Если я соберусь, то добавлю тут ненависти про 7 академиков, у которых SQL без глазу, де-факто стандарт Oracle, сферических внедренцев, которые угорели по хардкору и месят бизнес-логику на PL/SQL, да не осилили дописать with timezone к своим timestamp.

Человеческим языком (а не так, как я пытался объяснить коллегам) описано, что хранение будущих дат нетривиальная задача, если эти даты будут кому-то нужны потом в реальности.

Но главное, конечно, то, что сам W3C просрал значительное количество полимеров, разрешив в xsd:dateTime значения без часового пояса.

И вообще, наблюдая, как часто технические проблемы решают организационными мерами, можно предположить, что нынешним постоянным летним временем мы обязаны, если покопаться, какому-нибудь дремучему легаси на оракле, которое считает пирожки в столовой Администрации Президента и делит на 0 при каждом переводе часов. А часы переводить приходится, Windows Update же отключен от греха.
RustyRoadMaster

The opposite of the UNIX Way

We all know, a piece of software is following the UNIX Way if it does one thing and does it well.

A recent encounter with soapUI prompted me to find a term describing the opposite. A feature-rich application that is used with loathing after passing a particular point on the learning curve. The features are great, really thank you guys, but the user experience resembles digging ground with a pointed stick.

An answer came shortly: the Windows way. Or the GNOME way. Or maybe the itunes way (as far as I know from Apple's customers).

Examples of how soapUI manifests the worse side of the Windows|GNOME|itunes way:
  • A project's xml file is updated unpredictably so the version control is hindered. You also can't tell if there are unsaved changes.
  • XML Schema and WSDL documents are also stored in the project file. You may update them manually and soapUI may also rewrite these inclusions when the project is closed after no changes at all (I usually see a huge diff).
  • GUI tends to conceal the details. That helps the worst kind of errors to occure - the errors in tests.
So I'm planning to focus on the better side, that is its feature-rich library: http://www.soapui.org/Developers-Corner/integrating-with-soapui.html
RustyRoadMaster

15 → 17

Being a geek is more about getting stuck with uncommon problems than solving them. You stay away from the Ubuntu crowds, avoid GUI zombies and eventually find yourselves investigating some rare shit Google hasn't known.

You will successfully likely update Fedora from version 15 to 17 "Beefy Miracle" with preupgrade-cli unless you've recently cut down on its RAM (virtual machine is the case). Anaconda is the right name for the installer as it is indeed a big fat python. With 256 MB of RAM it's not able to bring up LVM and mount the root filesystem where all the new packages reside. The miracle is delayed:
udevd[220]: failed to create queue file: No space left on device

[    4.232267] dracut Warning: Can't mount root filesystem
dracut Warning: Can't mount root filesystem

Dropping to debug shell.

dracut:/#
512 MB was enough in my case.

The next thing makes me feel like 75 years old (which I somehow like but it's outside the scope of this post). I really need my virtual machine consoles be of the same size. RHEL 6 and Fedora used to have the same 720x400 pixel text consoles and the VMWare window was of certain size and proportion. Then the Beefy Miracle happenned and brought grub2 with enhanced configuration. My mind got filled with disgust as things went terribly wrong: the console window became 640x480, font scaled respectively. (Not that resizing a VMWare window is such pain but the mere idea of changing a host window for the sake of a virtual machine is utterly wrong.) Fortunately, there is no enhancement in the Linux world that can't be fixed.

You have to edit /etc/default/grub so that it contains this line
GRUB_GFXPAYLOAD_LINUX=text
and run
# grub2-mkconfig -o /boot/grub2/grub.cfg
and reboot.
http://www.gnu.org/software/grub/manual/grub.html#gfxpayload
http://www.intdblog.com/2009/09/grub-2-graphical-boot-tips-to-set.html

Another problem I encountered was an otherwise barely noticeable incompatibility of SELinux modules between releases 15 and 17. Every attempt at semanage or semodule resulted in something like that:
# semanage port -a -t openvpn_port_t -p tcp 1234
libsepol.scope_copy_callback: entropyd: Duplicate declaration in module: type/at
tribute entropyd_var_run_t (No such file or directory).
libsemanage.semanage_link_sandbox: Link packages failed (No such file or directo
ry).
/usr/sbin/semanage: Could not commit semanage transaction
There's a couple of bugreports regarding that incompatibility:
https://bugzilla.redhat.com/show_bug.cgi?id=511067
https://bugzilla.redhat.com/show_bug.cgi?id=702865

SELinux guys suggested erasing /etc/selinux/targeted and reinstalling policy packages which solved the problem for me. You would likely just put your SELinux to permissive mode, ladies.
RustyRoadMaster

How Cloudfront works

I've honestly tried to google out how Amazon's Cloudfront works in terms of infrastructure. There's hardly any information besides usage instruction aimed at hipster developers. Fortunately a good old fashioned experiment still makes sense. If you feel tl;dr, it's all about geolocation-aware DNS resolution (didn't know how to call it, stole the term here).

Cloudfront appears as having low latency and high throughput to most end-users because their ISP-provided caching nameservers resolves a cloudfront customer domain name (like dwz7u9t8u8usb.cloudfront.net) to a list of the closest cloudfront front-ends. When the caching nameservers perform recursive resolution the authoritative nameservers of "cloudfront.net" and "dwz7u9t8u8usb.cloudfront.net" respond differently depending on approximate location of the requesting entity.

DNS request from a host somewhere in Germany (notice the difference in CN):
[user@germanhost ~]$ nslookup dwz7u9t8u8usb.cloudfront.net
Server:         213.133.98.98
Address:        213.133.98.98#53
Non-authoritative answer:
dwz7u9t8u8usb.cloudfront.net    canonical name = dwz7u9t8u8usb.fra6.cloudfront.net.
Name:   dwz7u9t8u8usb.fra6.cloudfront.net
Address: 54.240.162.247
Name:   dwz7u9t8u8usb.fra6.cloudfront.net
Address: 54.240.162.43
Name:   dwz7u9t8u8usb.fra6.cloudfront.net
Address: 54.240.162.142

DNS request from a machine lost somewhere in snowy Russia (let the local nameserver not confuse you):
[bear@russianhost ~]$ nslookup dwz7u9t8u8usb.cloudfront.net
Server:         192.168.10.24
Address:        192.168.10.24#53
Non-authoritative answer:
dwz7u9t8u8usb.cloudfront.net    canonical name = dwz7u9t8u8usb.arn1.cloudfront.net.
Name:   dwz7u9t8u8usb.arn1.cloudfront.net
Address: 205.251.219.36
Name:   dwz7u9t8u8usb.arn1.cloudfront.net
Address: 205.251.219.38
Name:   dwz7u9t8u8usb.arn1.cloudfront.net
Address: 205.251.219.195
RustyRoadMaster

(no subject)

Какие-то проблемы с электричеством, и пришлось переместиться в апартаменты (следующее слово произносится с украинским акцентом) побогаче. Думаю поработать сегодня вечером за этим столом.
see-through table
Опережая ваши вопросы - да, держится на сосках.
RustyRoadMaster

(no subject)

Так или иначе, до нас донесли мысль, что Unity и Gnome 3 столь эффективно мешают работать за компьютером потому, что они рассчитаны на устройства с емкостным тач-скрином. Бурление говн уже давно утихло, пользователи RHEL забыли (что их ждет), пользователи Ubuntu натерли мозоли в нужных местах и привыкли, кто-то поставил форк Gnome 2, Торвальдс сидит на Xfce, но сраного планшета под Fedora 16 так и не видно.

А другой ответ на вопрос, зачем они сотворили это, мог быть, типа, они считают, что пользователь может перелезть с Windows только на еще большее дерьмо.