Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

Safort 26.01.2015 00:34

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

//забавно ты цитируешь)

cyber 26.01.2015 01:43

Цитата:

Сообщение от Zend
Пусть лучше скажут не стрёмно ли им грузить либу на 500кб ради возможности совать HTML в JS.

это не сжатая, а сжатая 100+ весит

Gozar 26.01.2015 02:11

Цитата:

Сообщение от Zend
Пусть лучше скажут не стрёмно ли им грузить либу на 500кб ради возможности совать HTML в JS.

react.with.addons = 137kb

http://help.yandex.ru/common/browser...sers-cache.xml
Не стесняйся задавай еще примитивные вопросы.

l-liava-l 26.01.2015 05:17

Нужно было прикрутить калькулятор к редактору математическому.

Нашел в сети и собственно его и заюзал...это п*ц :)

function raznd(aa) {
        bf1 = bf1 * 1;
        bf2 = bf2 * 1;
        if (aa == "srm" && tmd == "rv") {
          bf1 = Math.sqrt(bf2);
          bf2 = 0;
          tmd = "sl";
        } else if (aa == "srm" && tmd != "rv") bf1 = Math.sqrt(bf1);
        if (aa == "dnd" && tmd == "rv") {
          bf1 = 1 / bf2;
          bf2 = 0;
          tmd = "sl";
        } else if (aa == "dnd" && tmd != "rv") bf1 = 1 / bf1;
        if (aa == "pnm" && tmd == "rv") {
          bf1 = -1 * bf2;
          bf2 = 0;
          tmd = "sl";
        } else if (aa == "pnm" && tmd != "rv") bf1 = -1 * bf1;
        if (aa == "spz" && tmd == "rv") {
          bf2 = bf2 + "";
          bf1 = bf2.substr(0, bf2.length - 1);
          bf2 = 0;
          tmd = "sl";
        } else if (aa == "spz" && tmd != "rv") {
          bf1 = bf1 + "";
          bf1 = bf1.substr(0, bf1.length - 1);
        }
        matDeist();
        display.value = bf1;
      }

      function cleaBu() {
        bf1 = "0";
        bf2 = "0";
        bfr = "0";
        tmd = "sl";
        display.value = "0";
      }

      function corosib() {
        bf1 = bf1 * 1;
        bf2 = bf2 * 1;
        bf1 = bf1 + "";
        bf2 = bf2 + "";
        var zf1 = bf1.split(".");
        var zf2 = bf2.split(".");
        if (zf1.length == 1) var kl1 = 0;
        else var kl1 = zf1[1].length;
        if (zf2.length == 1) var kl2 = 0;
        else var kl2 = zf2[1].length;
        var okz = kl1 + kl2;
        var itg = bf1 * bf2;
        itg = itg + "";
        mig = itg.split('.');
        if (mig.length > 1) {
          var zpo = mig[1].charAt(okz) * 1;
          mig[1] = mig[1].substr(0, okz) * 1;
          if (zpo > 4) mig[1] = mig[1] + 1;
        }
        var vozvrat = mig.join('.');
        return vozvrat;
      }

cyber 26.01.2015 05:31

l-liava-l, а написать нормальный не судьба?)

melky 26.01.2015 10:46

Цитата:

Сообщение от Safort (Сообщение 353468)
Gozar,
да я уже наверноепонял. Только вот меня смутило как вы фильтруете html-сущности и т.д. В шаблонизаторах(в том же SS) вся эта годнота автоматом делается + ещё 100500 плюх. А как у вас? Как я понимаю, там доп. модули используются? Или же многие стандартные функции для шаблонизаторов есть и в реакте(JSX).

чего?) не понял.
защита от XSS автоматом. для принудительного вывода HTML нужно изголиться (dangerouslySetInnerHTML)

Цитата:

Сообщение от Safort (Сообщение 353468)
//Потихоньку осиливаю реакт.

о, свежее мясо новые люди :)

Цитата:

Сообщение от Zend
Пусть лучше скажут не стрёмно ли им грузить либу на 500кб ради возможности совать HTML в JS.

реакт - это не "совать разметку в код".
это скорее, организация сущностей

Цитата:

Сообщение от Safort
//забавно ты цитируешь)

:lol: поддельщик

Цитата:

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



128 кб из 1мб - ~10% от размера сборки. один фиг шрифты больше весят.

ЗЫ только заметил - скрипты весят мегабайт ... это плохо)))

Gozar 26.01.2015 12:29

Цитата:

Сообщение от melky
ЗЫ только заметил - скрипты весят мегабайт ... это плохо)))

Фигасе у тебя svg трехметровые летают :) Что там у тебя внутри такое большое?

Весь граф интерфейс амикса в 400 кб. умещается.

melky 26.01.2015 13:26

Цитата:

Сообщение от Gozar (Сообщение 353512)
Фигасе у тебя svg трехметровые летают :) Что там у тебя внутри такое большое?

Весь граф интерфейс амикса в 400 кб. умещается.

шрифты :)

Zend 26.01.2015 15:05

Цитата:

Сообщение от melky
шрифты

в них наверное вся графика что есть захерачена

melky 26.01.2015 15:24

Цитата:

Сообщение от Zend (Сообщение 353532)
в них наверное вся графика что есть захерачена

возможно ... я даже уже не помню, откуда эти файлы взялись.
раз уж у нас тема оффтопа, то: как нормально (не как на скрине) отконвертировать шрифты?

Gozar 26.01.2015 16:26

Цитата:

Сообщение от melky
конвертировать шрифты?

А можно узнать зачем? Чем тебе ttf не угодил?

http://caniuse.com/#search=ttf

Или ты так для Опера-задрот-мини стараешься?

IE8: eot, накой тебе svg?

melky 26.01.2015 16:56

Цитата:

Сообщение от Gozar (Сообщение 353545)
Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете Web Dev.

Освойте основы и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

В интернете можно начать изучать с учебника.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

я немного откорректировал твоё сообщение))

Gozar 26.01.2015 17:49

:)

Safort 26.01.2015 17:56

melky,
Цитата:

чего?) не понял.
защита от XSS автоматом. для принудительного вывода HTML нужно изголиться (dangerouslySetInnerHTML)
Теперь понял)

Цитата:

128 кб из 1мб - ~10% от размера сборки. один фиг шрифты больше весят.

ЗЫ только заметил - скрипты весят мегабайт ... это плохо)))
А что за проект?

melky 26.01.2015 18:17

Цитата:

Сообщение от Safort
А что за проект?

интернет магазин на nodejs. webpack собирает ~1300 модулей. ну, наверное крупненький)

Gozar 26.01.2015 18:22

Цитата:

Сообщение от melky
магазин на nodejs

Как по твоему, сейчас лучше поднять серв на ноде или сразу io.js? и какую версию брать?

l-liava-l 26.01.2015 18:56

Цитата:

l-liava-l, а написать нормальный не судьба?)
Вот так я и сел в 5 утра, за 7 часов до релиза свой калькулятор писать)

melky 26.01.2015 19:22

Цитата:

Сообщение от Gozar (Сообщение 353572)
Как по твоему, сейчас лучше поднять серв на ноде или сразу io.js? и какую версию брать?

я на nodejs поднял. взял 0.11 через n latest (хотя и на 0.10 всё работало). на iojs пока не тестил.
хотя сейчас затестю - у меня docker же.

:-E всё работает так же... скорость сборки webpack та же. ничего не поменялось...

тестил на образе iojs:latest

но я бы лучше повременил с переходом, потому что можно наступить в гов bleeding edge)

Zend 27.01.2015 10:37

Цитата:

Сообщение от Gozar
ак по твоему, сейчас лучше поднять серв на ноде или сразу io.js? и какую версию брать?

http://sailsjs.org

там и io есть уже

++++++++
попутал с Socket.IO

Цитата:

Сообщение от melky
но я бы лучше повременил с переходом

я бы тоже. посмотрим как будет развиваться ситуация

bes 29.01.2015 22:38

Как по-быстрому определить мнемонику html для встретившегося нестандартного символа?

например, встретив ∅, можно сделать так: скопировать символ и далее в консоли
console.log("∅".charCodeAt(0)); //8709
alert("∅".charCodeAt(0));//для сейчас

и уже можно использовать
∅

правда, только цифрой

если хочется смысловым словом, сходить куда-нибудь типа сюда, поиском по номеру и

∅


Кто быстрее? :)
необязательно через браузер, пытался найти через виндовый charmap поиском, скопиров туда символ, не нашёл

melky 29.01.2015 23:57

Цитата:

Сообщение от bes (Сообщение 354150)
Как по-быстрому определить мнемонику html для встретившегося нестандартного символа?

например, встретив ∅, можно сделать так: скопировать символ и далее в консоли
console.log("∅".charCodeAt(0)); //8709
alert("∅".charCodeAt(0));//для сейчас

и уже можно использовать

правда, только цифрой

если хочется смысловым словом, сходить куда-нибудь типа сюда, поиском по номеру и

∅


Кто быстрее? :)
необязательно через браузер, пытался найти через виндовый charmap поиском, скопиров туда символ, не нашёл

http://stackoverflow.com/questions/1...-in-javascript

там есть ссылка на либу https://github.com/mathiasbynens/he

и у неё есть типа поддержка имен

bes 30.01.2015 00:15

Цитата:

Сообщение от melky (Сообщение 354169)
http://stackoverflow.com/questions/1...-in-javascript

там есть ссылка на либу https://github.com/mathiasbynens/he

и у неё есть типа поддержка имен

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

Octane 30.01.2015 02:56

Кто для ноды пишет, это нормальная практика полифилить объекты в top level global, а не в module global?

например
var topLvlGlobal = new Function('return this')();
module.exports = topLvlGlobal.fetch = function (…) {…};
используем
require('fetch-polyfill');
fetch(…).then…



вместо
module.exports = function (…) {…};
используем
var fetch = require('fetch-polyfill');
fetch(…).then…

kobezzza 30.01.2015 11:17

Цитата:

Кто для ноды пишет, это нормальная практика полифилить объекты в top level global, а не в module global?
Да.

melky 30.01.2015 12:23

Цитата:

Сообщение от Octane (Сообщение 354185)
Кто для ноды пишет, это нормальная практика полифилить объекты в top level global, а не в module global?

например
var topLvlGlobal = new Function('return this')();
module.exports = topLvlGlobal.fetch = function (…) {…};
используем
require('fetch-polyfill');
fetch(…).then…



вместо
module.exports = function (…) {…};
используем
var fetch = require('fetch-polyfill');
fetch(…).then…

нет. какой смысл тогда от этих модулей?

только разве что lodash и app (express). и то, это собираюсь убрать

Octane 30.01.2015 12:29

Мнения разделились :D

kobezzza 30.01.2015 12:45

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

var collection = require('collection.js');
global.$C = collection.$C;


Цитата:

var topLvlGlobal = new Function('return this')();
Почему не просто global? Или у тебя этот скрипт также работает в браузере?

melky 30.01.2015 12:53

Цитата:

Сообщение от kobezzza (Сообщение 354218)
Ну, например, Collection я всегда подключаю один раз глобально в файле-инициализаторе проекта, т.к. этот модуль у меня юзается везде и нет смысла каждый раз подключать его отдельно.

var collection = require('collection.js');
global.$C = collection.$C;

а я стараюсь делать модули как можно более самодостаточными, поэтому я бы быстренько набросал сниппет $C с таким кодом:
var $C = require('collection.js');

имхо, я делаю лишние действия, но я уже привык так г-нокодить :haha:

Octane 30.01.2015 13:51

Цитата:

Сообщение от kobezzza
Почему не просто global? Или у тебя этот скрипт также работает в браузере?

Когда полифил для браузера одновременно является CommonJS модулем, его кто-то может подключить через require в браузере с помощью какого-нибудь Browserify (не знаю зачем это делать в браузере, но так делают).
В браузере модуль оказывается завернутым в дополнительную функцию, поэтому в strict режиме такая обертка для модуля:
(function (global) {
    …
}(this));
оказывается нерабочей.

Например, возьмем все тот же полифил для Promise.
Как тут угодить всем тем, кто:
1. подключает полифил напрямую в браузере и ожидает что глобальный конструктор станет доступен автоматически
<script src="promise.js"></script>
<script>
Promise…
</script>
2. подключает полифил в Node.js:
var Promise = require('es6-promises');
Promise…
3. подключает полифил в Node.js и ожидает что глобальный конструктор станет доступен автоматически
require('es6-promises');
Promise…
4. подключает полифил в Browserify:
var Promise = require('es6-promises');
Promise…
5. подключает полифил в Browserify и ожидает что глобальный конструктор станет доступен автоматически
require('es6-promises');
Promise…
?

Например, в полифиле для setImmediate используется top lvl global.

melky 30.01.2015 19:36

Ребята, кто знает, как в Vagrant создать диск с фиксированным размером (fixed size)?

nerv_ 02.02.2015 11:25

отсюда
Цитата:

Сообщение от kobezzza
Подробности о новом движке рендеринга Microsoft для «Project Spartan»

Цитата:

Но этот прогресс был существенно отягощен бременем поддержки режимов документа IE5.5, IE7, IE8, IE9 и IE10 – концепции, в которой веб более не нуждается

Поэтому мы решили создать новый движок, использующий в качестве отправной точки уровень поддержки стандартов в IE11

В последующие месяцы наслоения наследия IE были счищены с нового движка. Исчезли режимы документов. Мы удалили подсистему, отвечавшую за эмуляцию особенностей композиции IE8. Мы вынесли VBScript. Хвосты наследия вроде attachEvent, X-UA-Compatible, currentStyle – все были вычищены из нового движка.

Project Spartan также несет в себе обновленную версию инструментов разработчика F12
Думаю, остальные браузеры поступят также, если еще не поступили. Т.е. обратная совместимость будет сломана.

melky 02.02.2015 12:07

Цитата:

Сообщение от nerv_
Думаю, остальные браузеры поступят также, если еще не поступили. Т.е. обратная совместимость будет сломана.

ECMAScript 6 берёт своё

будем делать 2 версии - для новых браузеров (ES6) и для старых (транспилим код через 6to5)

имхо, это классно. нужно же как-то двигаться вперед

Zend 02.02.2015 13:03

Цитата:

Сообщение от melky
будем делать 2 версии - для новых браузеров (ES6) и для старых (транспилим код через 6to5)

Нафига лишние сложности? Если хочется быть чуть ближе к ES6 возьмите и запилите то что можно запилить через прототип. Т.е. встроенные классы расширьте (типа Array.prototype.крутой_метод_из_бу ущего), а class я бы пока оставил.

melky 02.02.2015 13:17

Цитата:

Сообщение от Zend (Сообщение 354585)
Нафига лишние сложности? Если хочется быть чуть ближе к ES6 возьмите и запилите то что можно запилить через прототип. Т.е. встроенные классы расширьте (типа Array.prototype.крутой_метод_из_бу ущего), а class я бы пока оставил.

по-моему, это и есть сложности ) ES6 - это далеко не расширение прототипов

я подразумевал 2 параллельные сборки проекта. это всего лишь второй конфиг сборщика (с 6to5) и второй вызов команды.
ну и использование feature detection для определения поддержки ES6, уже на странице с подключением

хотя можно и 6to5 для всех браузеров использовать (как сейчас) и не париться вообще

Zend 02.02.2015 13:25

Цитата:

Сообщение от melky
ES6 - это далеко не расширение прототипов

читнул кое что.... надо валить из треда пока не захотелось на es6 что нибудь переписать :)

Zend 02.02.2015 13:29

Меня пугает вот это:
Цитата:

var self = this; - самый простой способ сохранить контекст нужного объекта
В ES6 можно гораздо проще:
function SomeClass() {
  this.iter = 0;

  setInterval(() => {
    this.iter++;
    console.log('current iteration: ' + this.iter);
  }, 1000);
}

var sc = new SomeClass();


что будет со старым кодом?

Zend 02.02.2015 13:30

извиняюсь, всё ок. привык к liveScript, не заметил () => вместо function

melky 02.02.2015 13:42

Цитата:

Сообщение от Zend (Сообщение 354593)
извиняюсь, всё ок. привык к liveScript, не заметил () => вместо function

эх... мне пришлось свалить с livescript из-за JSX и отсутствия sourceMap :cray:
Цитата:

Сообщение от Zend (Сообщение 354591)
читнул кое что.... надо валить из треда пока не захотелось на es6 что нибудь переписать :)

уже поздно :)

Gozar 02.02.2015 14:09

Цитата:

Сообщение от Zend
пока не захотелось на es6 что нибудь переписать

Он такой, он уже прокрался в твоё сердце и свил там гнездо. Просто ты ещё этого не осознаешь. Дальше будет ломка, но ты уже знаешь чем это кончиться! :)

melky 02.02.2015 14:10

Цитата:

Сообщение от Gozar (Сообщение 354600)
Он такой, он уже прокрался в твоё сердце и свил там гнездо. Просто ты ещё этого не осознаешь. Дальше будет ломка, но ты уже знаешь чем это кончиться! :)

import React from 'react'

аминь :lol:


Часовой пояс GMT +3, время: 05:13.