Футбол - высокоинтеллектуальный спорт

Вот три твита про говнофутбол: первый, второй и третий — и это только за сегодня. Остальные лень искать.

Действительно, надоели со своим футболом. Да и пишущие о том, что надоели со своим футболом, тоже надоели. И те надоели, кто пишет о пишущих о том, что надоели те, кто пишет о том, что надоели со своим футболом.

Мелочь. List comprehension.

Давайте посмотрим на эти питоновые строчечки:

[x for x in [0,1,2,3,4,5] if x % 2 == 0] # => [0, 2, 4]

[0,1,2,3,4,5][::2] # => [0, 2, 4]

А теперь на php-like решения этого в рубях.

arr = [0,1,2,3,4,5]
arr.collect {|x| x if x % 2 == 0 } # => [0, nil, 2, nil, 4, nil]

# Ой, проблемочка. Поправим.
arr.collect {|x| x if x % 2 == 0 }.compact # => [0, 2, 4]

# А еще можно так
arr.select {|x| x % 2 == 0 } # => [0, 2, 4]

# И так
arr.find_all {|x| x % 2 == 0 } # => [0, 2, 4]

# И даже вот так
arr.reject {|x| x % 2 != 0 } # => [0, 2, 4]

Вспомним php-ные ereg, eregi, strtr, strstr, str_replace, match_replace, етц. Ну вы поняли.

Сейчас пишу кое-какое совсем несложное iframe-приложение для Вконтактика, где все эти JS-фреймворки нахрен не нужны. Пока изучал примеры таких приложений, наткнулся на такую вот штуку. Речь о ней не пойдёт, с ней все понятно - жуткий код, но вот в качестве примера из нее можно привести одну строчку:

var this_proxy = this;

Это достаточно распространенная проблема с контекстами в коллбэках, видел такое далеко не раз и не два.

Ну, вот на примере кода можно понять, зачем это сделано:

var Class = function(){};
Class.prototype = {
    msg: 'Hello, username!',
    foo: function(){
        var self = this;
        return function(){
            console.log(self.msg);
        };
    }
};

var instance = new Class();
instance.foo()(); // тут в консоль, допустим, FireBug выведется "Hello, username!"

Вот некоторые люди постоянно мучаются. Неужели так сложно дополнить прототип Function специальным методом и передавать контекст в коллбэк?

В общем, я не жадный и вбрасываю вполне очевидное, реализованное over 9000 людьми, решение.

Function.prototype.bind = function(ctx) {
    var self = this;
    return function(){
        return self.apply(ctx, arguments);
    }
};

//Example

var call = function(fn){
    this.msg = 'Hello, username!';
    return function(a, b){
        fn.bind(this)(a, b);
    }.bind(this);
}

call(function(a, b){
    console.log(a + b);
    console.log(this.msg);
})(3, 4)

Надеюсь, понятно что тут происходит и как это использовать. Рассказывать не буду, не маленькие уже.

Утренний бред

Я уже долгое время размышляю о том, какое-же webdev говно, но в тот же момент, остальное является большим говном. Постоянно думаю про то, что мне надоело писать код, я хочу делать что-то красивое, удобное, что-то такое, что люди видели бы. Мне осточертело всё то, что связано с бэкендами, постоянные споры о распараллеливании, об асинхронности и вообще о том, что сейчас модно с той стороны, невидной людям.

У меня есть художественное образование, на которое, к сожалению, еще в школе я насрал и ушел красноглазить, совсем добив его в ВУЗе. А может ну его нафиг и уйти во фронтенды, рисовать интерфейсы сайтиков, заморачиваться о юзабилити, верстать, писать на JS, анально страдать от локальных заморочек браузеров? А может таки в ActionScript, Flex, …? Или вообще уйти в мобильный софт?

В общем, жду реакций в твиттере и комментарии во френдфидике с предложениями о работе вот в этих вот сферах. Шутка. Но если таки будет какое нибудь предложение, шлите на почту, не стесняйтесь.

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

Удивительно, что среди лесбиянок это было практически сразу. Выходит, мужчины изначально менее толерантны, вот и женщины решили потихоньку скатиться. В общем-то, всё логично.

Процитирую.

Женщины разучились соблазнять. В сознании женщин современности объект сексуальности и субъект давно подменили друг друга. Вы соблазняетесь собственным образом сексуальной самки, совершенно не понимая, что этот образ придумали Вы, женщина. Он не привлекателен для мужчины, вы сублимировали все основные представления о сексуальности до гротескного изменения позы, неестественного надутия губ и скрытия половины лица как оттенка таинственности. Это печально и асексуально.

Собеседования

Я подсел на них. Я обожаю ходить по собеседованиям, а особенно проходить их. Я интервьюфил? :-)

Никогда не понимал, зачем нужно переводить оф. документацию по языку Х на русский язык.

Есть общепринятое мнение, что сайты крупных корпораций должны быть не для людей, но ASUS повернулись лицом к человеку и сделали всё как надо. Теперь можно либо ввести символы с капчи, либо послать их куда подальше.

Есть общепринятое мнение, что сайты крупных корпораций должны быть не для людей, но ASUS повернулись лицом к человеку и сделали всё как надо. Теперь можно либо ввести символы с капчи, либо послать их куда подальше.

HTML5? И чо?!

Все нынче сидят такие, фапают на VP8 и думают что это круто. И чо? Помните как Apple отказался поддерживать Ogg Theora? А помните, что Microsoft не так давно сказал, что в IE9 будет H.264? Я не думаю, что Apple отойдёт от своих убеждений и ринется впиливать VP8 в QuickTime. Так же не верю, что Microsoft будет так благосклонен и добавит его в свой любимый постоянно отстающий бровзер интернет експлорер девять. Мне кажется, мы так и будем мучиться с кодековым говном и установкой плагинов для браузеров, даже когда w3c таки зарелизит стандарт html5.