Pull to refresh
33
0
Константин Башинский @Sombressoul

User

Send message
Хорошо… Раз сейчас происходит абсолютно то же самое наследование багов (с добавлением щепотки своих) и наплевательство на стандарты, то чем тогда плох переход на единую платформу? — В этом случае хотя бы новые баги не будут появляться, при попытке скопировать баги чужие…
Возможно, недопонял. Или понял как-то по-своему.

Сохранение багов ради обратной совместимости? — Это да, это перспектива плачевная. Но тем не менее, выше в комментариях уже писали на примере того же Хрома и Сафари, когда какой-то баг есть только у одного из них.

Взглянем на потенциальную проблему с другой стороны (допустим, переход на WebKit состоялся, кроме старого доброго IE — чтобы перешёл он нужно, наверное, второе пришествие): есть куча браузеров, которые реализуют, например, 95% рекомендаций HTML6 и CSS4, а напротив них есть семейство IE, которое только-только осилило HTML5 и CSS3… Что останется делать MS? — Правильно, догонять и перегонять.

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

А конкуренция эта будет в любом случае, потому что это деньги. Даже если все вообще браузеры перейдут на базу WebKit — конкуренция останется, только перейдёт на другой уровень и развитие пойдёт уже в рамках надстроек/модулей/фишек в реализациях браузеров от конкретных вендоров.

Если я правильно понял статью (поправьте, если нет), то суть её сводится следующему: отсутствие конкуренции и наследование багов ради обратной совместимости, тотальная слежка за всеми и пресечение инноваций. Вот этого, на мой взгляд, точно не будет, потому что крупные игроки никогда на пойдут на то, чтобы быть равными — для выживания в бизнесе необходимо развитие, а без конкуренции в развитии нет смысла.
Разве моё преувеличение сильнее, чем преувеличение и теория заговора в статье?

Почему-то на ум пришла аналогия, как когда-то, во времена готичного черного доса, в коде было необходимо поддерживать тонну разнообразного железа, чтобы всё работало адекватно на разнородных системах. Потом пришли DirectX и OpenGL+OpenAL. Развитие технологий не остановилось.

Когда-то, во времена, когда компьютеры были большими, каждый процессор имел свой набор инструкций. Потом пришёл 8086 и началась эпоха x86. Развитие технологий не остановилось.

Когда-то, давным давно не было IBM-совместимых компьютеров…

С оглядкой на эти истории у меня возникает резонный вопрос: почему же переход на WebKit сулит нам стагнацию в развитии веб-технологий и пахнет катастрофой?

Не очередной ли это виток закономерного развития, когда куча разрозненных и обособленных разработок, а так же компаний, которые эти самые разработки поддерживают, объединяются и общими усилиями начинают двигаться в ОДНОМ направлении вместе?

Как мне кажется, преувеличение в этой статье, вкупе с теорией заговоров, гораздо более спекулятивное, чем мой пример с перегнутой палкой в CSS (зато ярко).

В конце-концов, WebKit — проект открытый.

Не нравятся варианты, которые предлагают вендоры? — Возьми, да собери свой. И собери его не с нуля, а с использованием тонны кода высококвалифицированных разработчиков от крупных вендоров, которые этот проект поддерживают.

Нравятся варианты, которые предлагают вендоры, но чего-то нехватает? — Собери свой с нужным функционалом. В качестве примера могу привести проект Роджера Вонга, который взял WebKit и привинтил к нему Node.js: github.com/rogerwang/node-webkit

Не вижу совершенно никакой проблемы.
Товарищи, если минусите — объясняйте, в чём не согласны или в чём я не прав. А то как-то не хорошо.
Бред пожилого клопа.

Почему? — Потому…

Что имеем сейчас:

В HTML:
    <meta http-equiv="X-UA-Compatible" content="IE=9">


… несколькими строками ниже:
    <!--[if IE 9]>
    <link rel="stylesheet" href="css/iehacks.css" type="text/css" rel="stylesheet">
    <![endif]-->
    <!--[if lte IE 8]>
    <style>
    * html div.gradientBackground {
        position: absolute;
        z-index: 0;
        left: 0px;
        top: expression( parseInt( document.documentElement.scrollTop + document.documentElement.clientHeight - this.offsetHeight , 10 ) + "px" );
    }
    </style>
    <![endif]-->


Теперь CSS:
div.gradientBackground {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: #444948;
    background: url(data:image/svg+xml;base64,/* длинная строка в base64 */);
    background: -moz-linear-gradient(top,  #444948 0%, #404042 25%, #363e3c 50%, #31343e 75%, #272d3b 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#444948), color-stop(25%,#404042), color-stop(50%,#363e3c), color-stop(75%,#31343e), color-stop(100%,#272d3b));
    background: -webkit-linear-gradient(top,  #444948 0%,#404042 25%,#363e3c 50%,#31343e 75%,#272d3b 100%);
    background: -o-linear-gradient(top,  #444948 0%,#404042 25%,#363e3c 50%,#31343e 75%,#272d3b 100%);
    background: -ms-linear-gradient(top,  #444948 0%,#404042 25%,#363e3c 50%,#31343e 75%,#272d3b 100%);
    background: linear-gradient(to bottom,  #444948 0%,#404042 25%,#363e3c 50%,#31343e 75%,#272d3b 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444948', endColorstr='#272d3b',GradientType=0 );
}


… несколькими строками ниже:
/* FF fix */
@-moz-document url-prefix() {
    div.main-content-block-second-header ,
    div.main-content-block-first-header {
        font-family: Arial, sans-serif;
        font-weight: bold;
    }
}


Про различия в JS говорить не буду, т.к. к WebKit'у они отношения не имеют.

Что же мы будем иметь в исходниках при условии наличия WebKit в качестве стандартной базы для рендера html в браузере?

Пример с теми же исходниками, что привёл выше.

В HTML:
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script type="text/javascript" src="js/init.js"></script>


В CSS:
div.gradientBackground {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: linear-gradient(to bottom,  #444948 0%,#404042 25%,#363e3c 50%,#31343e 75%,#272d3b 100%);
}


Если же обнаруживается какой-то баг в WebKit с отступлением от стандартов до какой-то определенной версии — задаём условие в init.js:
function getWebKitVersion(){
    var version = 0;

    var regexp = /Safari\/([\d.]+)/;
    var result = regexp.exec(navigator.userAgent);

    if(result) {
        version = parseFloat(result[1]);
    }
    
    return version;  
}

$( document ).ready(function(){
    if ( getWebKitVersion() < 537.17 ){
        var ss  = document.createElement( "link" );
        ss.type = "text/css";
        ss.rel  = "stylesheet";
        ss.href = "537_17_hack.css";
        document.getElementsByTagName( "head" )[0].appendChild( ss );
    }
});


Всё. Проблемы нет. Код проще. Код понятнее. Поправили багу в вебките? — Хак не подгрузился и всё.

Если я не прав — пинайте ногами, но… Переход на WebKit — это благо для цивилизации. К тому же, то, что WebKit будет использоваться в качестве базы, совершенно не отменяет того, что в каждом конкретном браузере будут собственные уникальные фичи. Пример с Сафари и Хромом — в хроме по-дефолту WebGL включен, в Сафари — нет. Оба на базе WebKit.

Делаем выводы. :)
Ну, это смотря у кого какой подход…

Мне, например, гораздо проще и удобнее учиться именно по справочнику по принципу «есть задача — сломай голову, но найди решение». Изучая что-то по справочнику, волей не волей, в процессе поиска нужной информации, захватываешь попутно ещё целую гору материала, прямо не относящегося к конкретной функции или методу, которые помогут решить текущую задачу, но так или иначе откладывающегося в закромах памяти.

Раз за разом бегая таким образом по справочнику, рано или поздно, но автоматически изучишь возможности нужной библиотеки/фреймворка/класса. Конечно, если только не требуется обширная теоретическая база (как для веб-программера, который всю жизнь использовал только jQuery и только для анимации UI, а тут ему вдруг взбрендило написать демку на WebGL и чистом JS :)

Книги, в отличие от справочников, как правило, несут с собой приличный объем воды. Алгоритмы? — Алгоритмы везде одинаковые: либо ты умеешь их составлять, либо нет и книги тут, как мне кажется, играют слабую роль.

Жаль только, что принцип изучения по справочнику не подходит для освоения новых ЯП: тут, как ни крути, необходимо знать особенности изучаемых языков — справочник не поможет и книги тут действительно необходимы. Но Node.js, как мне кажется, всё же не из этой оперы.

По теме топика: node-webkit великая вещь! В несколько кликов портировал свою демку:
image

Three.js + Node-Webkit + batch to exe converter

Сейчас вынашиваю коварные планы по написанию простенького гейм-движка на базе Three.js, tQuery, Physijs и Node-Webkit. Надеюсь, что-нибудь из этого получится. :)
На мембране статья старая (четырехлетней давности). Вот свежая статья (видимо, автор топика именно эти исследования имел в виду): НАСА готовит эксперименты по сверхсветовому движению
Никогда особо не вчитывался в различные рекомендации по оформлению кода, но для себя вывел примерно следующую схему:
THIS_IS_CONST
thisIsVar
ThisIsFucntion (или f_ThisIsFucntion — если много функционального кода)
CThisIsClass (или c_ThisIsClass)
Работаю как раз в основном именно с этими двумя движками (MODx и Битрикс) и сталкивался в работе только с переездом MODx -> Bitrix.

В силу этого обстоятельства сейчас возник профессиональный интерес: чем клиент мотивировал переезд Bitrix -> MODx? Если это не коммерческая тайна, конечно же.
Как по мне, так оно может «взлететь» (в смысле «выстрелить», в смысле «сработать»), если некоторые элементы изменить/заменить:
1) Вместо водорода — гелий; — не взрывоопасно, но нужен больший объём.
2) Толстые тросы из кевлара; — для удержания конструкции вокруг заданной точки на земле;
3) Минимум два дирижабля; — для поддержания сети-конденсатора в расправленном состоянии (максимальная площадь), чтобы та не провисала под собственным весом и весом конденсата;
4) Компактные и долговечные двигательные установки дирижаблей; — для удержания их на заданном расстоянии друг от друга, для поддержания сети-конденсатора в расправленном состоянии;
5) Система электроснабжения двигательных установок дирижаблей; — хорошо экранированные прочные кабели от наземной турбины-генератора;
6) Компьютеризированная система точного позиционирования и управления дирижаблями; — для поддержания сети-конденсатора в развернутом состоянии под нужным углом атаки ветра;
7) Прочное синтетическое износоустойчивое волокно для самой сети-конденсатора; — износ, как мне кажется, будет существенной проблемой при учёте постоянного механического воздействия;
8) Прочная (возможно, опять же, кевларовая) внешняя оболочка дирижаблей и упругая износоустойчивая внутренняя оболочка; — защита от природных (град, молнии) и биологических (птицы) угроз;
9) Инфраструктура технического обслуживания; — дозаправка дирижаблей гелием, т.к. при необходимых объёмах утечки и, как следствие, потеря подъемной силы, будут неизбежны, и т.п.;

Как следствие того, что я перечислил — базовые затраты на разворачивание подобной системы вырастают значительно. К тому же таки необходимы будут затраты на инфраструктуру, которая будет обслуживать такую АэроГЭС (как минимум один хороший механик и один инженер, плюс ресурсы). Ну и так далее…

Это так, навскидку, что в голову пришло. Я не физик и не инженер, так что это идеи и соображения дилетанта, но думаю, что на Хабре обязательно найдутся соответствующие специалисты и всё подробно прокомментируют.
Статейку ту эпичную читал…

Так вот: как на мой взгляд, так эта статейка банальный «вброс гаумна» в адрес НАСА со стороны обиженных и обделённых из-за собственного раздолбайства и тотальной безответственности русских Иванов, обосравших такую перспективную миссию (единственную за много лет). А зная любовь наших «пилить» выделенные бюджеты, я даже догадываюсь почему эту самую миссию и облажали.

По принципу: «У нас не получилось полететь на Марс, а у вас получилось — вы над нами ржоте. Ну и что, зато у вас негр в белом доме и Марс вообще не настоящий! Вот так!». Язык типа показали…

Но факт от этого остаётся фактом — они туда успешно летали, летят сейчас и будут летать в будущем, а мы будем строить дачи и покупать мерседесы на халяву.

P.S.
Не минусить — всё вышесказанное банальный сарказм и сатира на действительно плачевное положение дел в передовых областях отечественной науки и техники.
За Вами уже выехали… )
Можете повторить слово «ппц » ещё раз, сэр. Ибо Вы прочитали статью, не имея при этом письменного разрешения на её чтение от правообладателя. ;-)
Как по мне, так подобные средства для ведения конкурентной борьбы уже давным давно вовсю используются. Я уверен в этом на 100%, потому как ко мне самому несколько раз обращались с вопросами типа «Вы знаете, вот у таких-то сервис есть на сайте такой-то, почти как у нас, можно ли что-нибудь сделать, чтобы у них пользователей поменьше стало?».

Просто, видимо, одно дело нанять группу хакеров (допустим, человек 5 отличных спецов), а другое дело поднять на уши половину Интернета так, что каждый кулхацкер теперь считает своим долгом за бутылочкой пивка посидеть вечером с друзьями и поискать дыры в защите соневских систем. Вряд ли команда специалистов (пусть даже и очень хороших) сравнится с целым «зергом» анонимусов.

Как вариант — провокационные акции, направленные на поднятие общественности против кого-то или чего-то…
Думается мне, что последствия в глобальном масштабе могут быть очень «радужные» для всего интернет-сообщества.

И так давят со всех сторон копирасты; гмейл пытались запретить, потому что ФСБ не может с него переписку читать; все предпосылки к введению тотальной цензуры всего и вся в интернете; и т.д., и т.п. — список можно продолжать очень и очень долго. А вот доблестные товарищи из LulzSec, фактически, подлили масла в огонь и дали очередной повод для охоты на ведьм.
Вспомнилась цитата с баша, диалог между юзером и админом провайдера:
Ю: -Сделайте так, чтоб у меня ночами интернета не было!
А: -Спать хочется?
Ю: -Угу…

А на счёт «отдать пароль от программы другу»: пусть разработчики тогда уж сразу добавят в эту софтину автоматическую блокировку всех мыслимых и немыслимых анонимайзеров (типа каларупы или hidemyass) и злобный антиотладчик, который бросает винду в синий экран, чуть только почуяв нависший дебагер… а то ведь, когда очередной дозы хабра захочется, ещё и не в такие извращения подашься.

А вообще, да… Сколько раз думал и жалел, что не стоит за спиной какой-нибудь злобный Терминатор с лопатой в руках и не палит, какую по счёту цитату с баша я читаю, вместо того, чтоб кодить очередной модуль под двиг проекта, который нужно было сдать «НИДЕЛЮ НАЗАААД!!! БЫЫЫЫСТРААА!!!»…
Сорри, не хотел, чтобы что-то подумал «выходит дурак». :)

Может быть, за это и минусуют (раз работает)…
Разделяю мнение, сам любитель хоткеев и сам же обматерился, пока тестировал всё это. Но тут использовано всё в комплексе — от блокировки Ctrl, до отсутствия где-либо в коде прямой ссылки на искомую картинку.

Для рядового пользователя, который не преследует цель «во что бы то ни стало, достать картинку!» — этого вполне достаточно, чтоб он остыл. Для остальных же, кому действительно нужно (или дело принципа) — это от 30 секунд до n минут мороки.
Мне этого как раз и не нужно было и сам я пытался объяснить заказчику то же самое.

Суть можно свести к тому, что заказчик хотел опросить n-ое число пользователей, через интернет, по нескольким картинкам (что-то типа тестирования рекламных концепций), но не хотел, чтоб они их сохраняли (т.к. их можно было использовать «в корыстных/личных» (с) целях).

Убедить его, что сохранить от копирования контент, выложенный в интернете (тем более УЖЕ попавший к конечному пользователю в кэш), невозможно — не получилось.

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

if (keyCode == '155'){ // не работает, т.к. PrintScreen является функцией заложенной в ОС, а не в браузер - до неё мы достучаться не сможем

Повторюсь — у меня стояла задача и я её решил тем способом, который описал (см. UPD 2), пусть и не самым лучшим. А здесь я решил поделиться своим решением с теми, кто, возможно, когда-нибудь столкнётся с подобной задачей.

Information

Rating
Does not participate
Location
Дмитров, Москва и Московская обл., Россия
Registered
Activity