All streams
Search
Write a publication
Pull to refresh
4
0
Сковорода Никита Андреевич @ChALkeRx

re-evaluating native module sources is not suppor…

Send message

Провайдеры тут не виноваты, на самом деле. РКН внёс страницу по https — и провайдерам заблокировать одну страницу без глобального MitM не получится, только айпишник.


Upd: не успел =).

У меня тут МГТС и s3.amazonaws.com не открывается.
Точнее не так — то не открывается, то ненадолго открывается, то снова не открывается.


Если делать пинг — то 100% потеряно из 20 пакетов, то 65% потеряно из тех же 20 пакетов.

С другой стороны, переопределять глобальный Promise я бы не стал.
Я просто делаю const Promise = require('bluebird'); наверху каждого файла.

https://github.com/petkaantonov/bluebird/tree/master/benchmark посмотрите, например.
Ну и https://github.com/nodejs/node/issues/3414.


Плюс в стандарте кое-чего не совсем гладко, а bluebird от него в этом месте отходит, и за счёт этого несколько выигрывает.
См. https://github.com/promises-aplus/promises-spec/issues/179 и https://github.com/promises-aplus/promises-spec/issues/183.

(Вне контекста самой статьи и остальных замечаний).
Зачем использовать bluebird, когда в требованиях packege.json 4-ая нода с нативными промисами?


У нативного Promise пока что есть некоторые проблемы с производительностью и потреблением памяти. На сервере в данный момент лучше всего использовать bluebird, даже без учёта его дополнительных плюшек.

Плюс текущий API Node.js сам по себе промисы пока ещё не возвращает, а bluebird даёт promisifyAll.

Фантазии продаванов Qt Company о LGPL не имеют к LGPL никакого отношения. У них и давно ересь была на сайте в сравнительной табличке, и последний раз, когда я видел, в визарде выбора лицензии (основная задача которого — убедить тебя купить лицензию).


https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic


P.S. Вот прямо сейчас проверил — этот визард на qt.io по вкладке Download открывается, по некоторым путям визарда спрашивает про тип линковки, спрашивает, готовы ли вы выложить исходники своего приложения, и на основе этого делает какие-то выводы.

Qt использует двойную лицензию — LGPL3 и коммерческую. Это означает, что если вас интересуют, в том числе, платформы, где динамическая линковка невозможна (iOS), то придётся раскошелится


Зануда-mode: дело не в динамической/статической линковке, под LGPL вполне можно распространять библиотеку в статически слинкованном виде с вашей проприетарной программой (при наличии исходников самой библиотеки). Этого никто не запрещает.

Что LGPL требует — так это чтобы у пользователя была возможность внести изменения в исходные коды библиотеки, собрать её, и использовать вашу программу с изменённой версией библиотеки. Чтобы это выполнить, достаточно приложить/выложить объектные файлы всего и предоставить инструкции по сборке этого в статический бинарь. Ну и не вшивать дополнительных проверок, например, чексуммы библиотеки.

С iOS другая проблема — она, насколько я знаю, не удовлетворяет именно условию того, чтобы пользователь мог пересобрать программу с изменённой библиотекой и воспользоваться результатом. Так что покупать лицензию вам всё равно придётся, если вы распространяете программы через AppStore.
физическая локация — Нидерланды (г. Утрехт).


2150 км, если по прямой.
столкновение с ма-а-а-аленьким астероидом, не будет черевато


Вы знаете, какова вероятность этого? И как на самом деле выглядит даже тот же самый пояс астероидов?

О, перевод очень клёвой статьи. Рекомендую к внимательному прочтению целиком.


@impwx, спасибо, теперь буду людей сюда посылать за версией на русском.

Можно будет моментально попасть в https://twitter.com/internetofshit =).

Дело в том, что когда кто-нибудь изменит строку (как вы говорите) и включит туда управляющую последовательность, но не добавит аргумент — компилятор наругается. Если кто-то подставит туда переменную (и строка сможет измениться в рантайме) — компилятор наругается.


Если подставить туда строковый литерал, как "Hello World!" — он не наругается. И это не опасно.


Чтобы не получить на свою голову проблем, достаточно просто смотреть на варнинги компилятора в данном случае, а не превращать каждый printf("whatever") в громоздкую конструкцию.

Хм. А я этот ответ частично принимаю.


Действительно, в большом проекте, который использует printf(), легче заставить всех писать printf("%s", "…") вместо printf("…") чем ждать, пока кто-то случайно туда управляющую последовательность вставит.


Но:


  1. Вот на это уже действительно наорёт компилятор (а на printf("Hello, World") — не наорёт). Так что можно не париться и доверять компилятору.
  2. Если уж вы так беспокоитесь и почему-то не доверяете варнингам компилятора — можно завернуть в функцию-хелпер.

Как С — соберётся, как C++ — 1.cpp:2:11: ошибка: «::main» должна возвращать «int». Это в стандарте, который g++ сейчас по умолчанию использует.


А после сборки:


$ ./test
Hello, world![chalker@pc tmp] $

Да, но вот только printf("…") — безопасен, а автор утверждает, что printf( "%s", "Hello, world!" ); безопаснее, чем printf( "Hello, world!" );.

У вас во всех программах ошибка — отсутствует переход на новую строку.


И не совсем понятно, о каких замечаниях (и какого конкретно) компилятора вы говорите при выводе вшитой строки. Показали бы, вместо отсылания в гугл.


И да, если бы передо мной действительно стояла задача оценки навыков программирования по Hello World (уф), то мне бы ваша программа не понравилась =).

А вот автор мне ответил — говорит, раз в 30 минут перезапускается контейнер.

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

Таки нет, PHP нельзя назвать нормальным шаблонизатором. Его можно в теории использовать как подобие шаблонизатора, но нет абсолютно никаких причин так делать.

PHP — не шаблонизатор, и не надо его использовать как шаблонизатор.


Если вы будете руками везде указывать экранирование для переменных — вы его в конце концов где-нибудь забудете, и получится нехорошо.
Экранирование должно быть включено по умолчанию. Как и сделано в шаблонизаторах.

Information

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