Alex
Anonymous
Подскажите с child_process делаю fork воркера. Воркер запускает spawn('openvpn..') когда я килю fork то килится openvpn запущеный в воркере через spawn это отправляется сигнал в дечерний процесс и openvpn получает сигнал и завершается корректно ?
ill-ya
Стоит ли на сайте делать уведомления на сокетах? Если человек подписан на новости групп. Новости групп получать, как лучше сделать. Запросом или что-то хитрое можно придумать?
ill-ya
Я имею вообще кор этого дела, способ доставки из базы)
ill-ya
У меня добавляются записи в бд(реляционная), пользователь подписывается, и хочу доставлять "новости", как это сделать лучше архитектурно.
ill-ya
Прочел уже не доставлять...
ill-ya
Например сначала новое на сайте, не читаешь письмо новостей на почту.
ill-ya
Тут надо еще каждую помечать запись что она этим пользователем просмотрена(отдельная таблица инсерты туда)
ill-ya
Думаю есть ли современней варианты
Михаил
а .onerror не вариант слушать? там же поверх tcp, отдельные пакетики перепосылаться будут, в случае чего - кинет ошибку
Попробую, но кажется тоже не совсем то. По идее стоит дожидаться ответа от сервера и по нему определять, что запрос доставлен.
blkmrkt
Начинаю новый проект на жс с реактом, железо свое, раньше деплоил с pm2. Может вышло чего более удобное?
blkmrkt
React + redux + webpack?
я имею ввиду с чем деплоить удобнее
blkmrkt
а то pm2 какой-то на костылях мне кажется
Ilshat
Я юзаю стартер кит. Все настроено.
blkmrkt
у strongloop был нормальный агент с балансером и скалированием как в elastic beanstalk, но что-то они там переделали и закопали ф-ю деплоя похоже
Алексей
Собственно он вполне может стать новым С++ в будущем
Простите за оффтоп, но очень захотелось высказаться. В плюсах можно и нужно думать о том, как выравнивать структуры для того, чтобы они попали в процессорный кэш. Надо думать о минимизации создания временных объектов и есть механизмы, позволяющие разными способами избежать этого создания. Есть ручное управление памятью и можно писать собственные аллокаторы, чтобы выделять/освобождать память эффективно для конкретной задачи. И другие возможности языка, позволяющие контролировать исполнение задачи на низком уровне. В js таких возможностей нет, потому он не может быть заменой плюсам. Js просто для других задач, у него другая сфера применения. Ещё кто-то упоминал ассемблер как универсальный язык. Ассемблер как раз не может быть универсальным языком: у процессоров банально разный набор команд, и ос, опять же, надо учитывать. А писать компилятор с языка на самом языке обычно означает, что код компилятора генерится так, как его сгенерил бы этот компилятор, будучи уже написанным. То есть формально пишется на ассемблере, но пишется не так, как писал бы человек, а как гннерил бы компилятор.
Дима
Простите за оффтоп, но очень захотелось высказаться. В плюсах можно и нужно думать о том, как выравнивать структуры для того, чтобы они попали в процессорный кэш. Надо думать о минимизации создания временных объектов и есть механизмы, позволяющие разными способами избежать этого создания. Есть ручное управление памятью и можно писать собственные аллокаторы, чтобы выделять/освобождать память эффективно для конкретной задачи. И другие возможности языка, позволяющие контролировать исполнение задачи на низком уровне. В js таких возможностей нет, потому он не может быть заменой плюсам. Js просто для других задач, у него другая сфера применения. Ещё кто-то упоминал ассемблер как универсальный язык. Ассемблер как раз не может быть универсальным языком: у процессоров банально разный набор команд, и ос, опять же, надо учитывать. А писать компилятор с языка на самом языке обычно означает, что код компилятора генерится так, как его сгенерил бы этот компилятор, будучи уже написанным. То есть формально пишется на ассемблере, но пишется не так, как писал бы человек, а как гннерил бы компилятор.
Много спорных моментов
Алексей
Много спорных моментов
Ну давайте поспорим 🙂
Дима
Простите за оффтоп, но очень захотелось высказаться. В плюсах можно и нужно думать о том, как выравнивать структуры для того, чтобы они попали в процессорный кэш. Надо думать о минимизации создания временных объектов и есть механизмы, позволяющие разными способами избежать этого создания. Есть ручное управление памятью и можно писать собственные аллокаторы, чтобы выделять/освобождать память эффективно для конкретной задачи. И другие возможности языка, позволяющие контролировать исполнение задачи на низком уровне. В js таких возможностей нет, потому он не может быть заменой плюсам. Js просто для других задач, у него другая сфера применения. Ещё кто-то упоминал ассемблер как универсальный язык. Ассемблер как раз не может быть универсальным языком: у процессоров банально разный набор команд, и ос, опять же, надо учитывать. А писать компилятор с языка на самом языке обычно означает, что код компилятора генерится так, как его сгенерил бы этот компилятор, будучи уже написанным. То есть формально пишется на ассемблере, но пишется не так, как писал бы человек, а как гннерил бы компилятор.
Компиляторы не пишутся "как будто на языке", они именно что пишутся на самом языке и компилируются собой же
Alex
или golang, до недавнего времени
blkmrkt
😂😂😂
blkmrkt
обмельчали разрабы, эх
Дима
Алексей
Компиляторы не пишутся "как будто на языке", они именно что пишутся на самом языке и компилируются собой же
Заметьте, я написал "обычно означает", а вы утверждаете за все компиляторы. Могу ошибаться, но почему-то мне помнится, что именно так делал Чарльз Мур, да и Ритчи с Томпсоном тоже. У вас есть ссылки на истории авторов первых версий компиляторов?
Дима
Простите за оффтоп, но очень захотелось высказаться. В плюсах можно и нужно думать о том, как выравнивать структуры для того, чтобы они попали в процессорный кэш. Надо думать о минимизации создания временных объектов и есть механизмы, позволяющие разными способами избежать этого создания. Есть ручное управление памятью и можно писать собственные аллокаторы, чтобы выделять/освобождать память эффективно для конкретной задачи. И другие возможности языка, позволяющие контролировать исполнение задачи на низком уровне. В js таких возможностей нет, потому он не может быть заменой плюсам. Js просто для других задач, у него другая сфера применения. Ещё кто-то упоминал ассемблер как универсальный язык. Ассемблер как раз не может быть универсальным языком: у процессоров банально разный набор команд, и ос, опять же, надо учитывать. А писать компилятор с языка на самом языке обычно означает, что код компилятора генерится так, как его сгенерил бы этот компилятор, будучи уже написанным. То есть формально пишется на ассемблере, но пишется не так, как писал бы человек, а как гннерил бы компилятор.
Не очень понимаю, почему "минимизации создания временных объектов" стала прерогативой крестов) Следить за памятью и временнми объектами вообще полезно при разработке, как бы. Так же, в разговоре имелась в виду не буквальная замена языка, а смысловая, в плане объёма решаемых задач (что не подразумевает их равенство, замечу) и распространённости
Дима
Заметьте, я написал "обычно означает", а вы утверждаете за все компиляторы. Могу ошибаться, но почему-то мне помнится, что именно так делал Чарльз Мур, да и Ритчи с Томпсоном тоже. У вас есть ссылки на истории авторов первых версий компиляторов?
При чём тут это всё вообще? Тезис "писать компилятор с языка на самом языке обычно означает, что код компилятора генерится так, как его сгенерил бы этот компилятор, будучи уже написанным. То есть формально пишется на ассемблере" просто неверный безотносительно отсылок к истории компиляторов и прочему
Дима
Первая версия компилятора может бть на чём угодно, но она и не декларируется как написанная на самом языке
Дима
А когда декларируется, то это означает именно то, что открыв исходники компилятора мы не увидим ассемблер, а только код на этом же языке
Алексей
Алексей
А когда декларируется, то это означает именно то, что открыв исходники компилятора мы не увидим ассемблер, а только код на этом же языке
Выше вы написали, что не декларируется, и тут же пишите, что "если и декларируется...". Забавно. Да, код на самом языке. И какую-нибудь тулзу, которая его транслирует 🙂
Дима
Выше вы написали, что не декларируется, и тут же пишите, что "если и декларируется...". Забавно. Да, код на самом языке. И какую-нибудь тулзу, которая его транслирует 🙂
>Забавно Эти предложения говорят про разные версии и разне вещи, указатели сбоят? Забавно) Нет, никакой тулзы, я не поленился сходить посмотреть на ghc, прежде чем утверждать что-то
Дима
Просто компилятор для своей сборки требует наличия уже собранной версии. Это не делает его "формально написанным на ассемблере"
Алексей
>Забавно Эти предложения говорят про разные версии и разне вещи, указатели сбоят? Забавно) Нет, никакой тулзы, я не поленился сходить посмотреть на ghc, прежде чем утверждать что-то
"...Но она и не декларируется"... "А если и декларируется..." Да нет, контекст один и тот же. Но не важно. Ghc это что? Хаскель? Я правильно понимаю, что Вы посмотрели один компилятор, и обобщили его подход на остальные?
Дима
Я свои факты предоставил, ответных не наблюдаю
Дима
Нужен пример компилятора, который будет "формально написан на ассемблере"
Дима
Бессмысленный какой-то диалог, сорян
Дима
Демагогия
Алексей
Я свои факты предоставил, ответных не наблюдаю
Простите, я фактов тоже не увидел. Но это и правда бессмысленно. Рад, что по остальным "спорным моментам" всё вроде бы ясно и разногласий нет 🙂
Алексей
Нужен пример компилятора, который будет "формально написан на ассемблере"
Я не знаю, не является ли моветоном в данной группе давать ссылки на Вики, но рискну. https://ru.m.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BA%D1%80%D1%83%D1%82%D0%BA%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0 Проблема курицы и яйца, первый пункт.
Nikolay
о чем беседа
Alex
всем привет, есть тут у кого опыт создания смартконтрактов на эфире(solidity) ?
Roman
Привет, не могли бы вы скинуть чатики по golang пожалуйста?
Alexey
всем привет! Ни у кого, случайно, нет идеи, что можно сделать с API для pokemonGO? Пытаюсь придумать какое-то небольшое приложение для тренировки, но мыслей никаких в голову не лезет, кроме простого списка с сортировками всякими
Vladimir
Подскажите плз, хочу в поле value вставить переменную из js <input type="text" id="datetimepicker" name="from" value="document.write(value)"/> смысл такой
Dreamerinnoise
@ZeroBias https://github.com/bentx/vscode-custom-theme theme.dark.activitybar.background.color можно поменять цвет этого гребаного статус бара
Egor
@dreamerinnoise речь о vs code?
Dreamerinnoise
Да
Vlad
только давйте не будем опять про компилятор
Dreamerinnoise
Ну неужели он тебя не парит?
Дима
В плане цвета или вообще?)
Dreamerinnoise
сама по себе она полезная
Дима
Я просто как-то вообще равнодушен к его расцветке, даже тему вернул стандартную
Dreamerinnoise
а какая там стандартная?
Dreamerinnoise
белая?
Дима
Ну сине-белая, как на гифке в начале
Дима
При дебаге оранжевая. Но чтобы это вспомнить пришлось специально проверить, реально как-то даже не задумывался о ней)
Anonymous
Подолжаем ковырять matchMedia. Заранее прошу прощения за код в тексте. Как нам известно из спеки, интерфейс MediaQueryList предписывает устанавливать параметры matches и media как readonly. При этом слушатель изменений того или иного запроса, который устанавливается MediaQueryList.prototype.addListener принимает в качестве аргумента ТОТ ЖЕ САМЫЙ экземпляр MediaQueryList, но (о чудо) с другим значением matches (ну и слушатель вызывается только в том случае, если это значение изменяется). Как же так? Ридонли свойства, на самом деле, не ридонли? Проверяем: const initialMQ = matchMedia( '(min-width: 1000px)', ); initialMQ.addListener( currentMQ => console.log( currentMQ === initialMQ, ), ); // Выведет true initialMQ.addListener(console.log); // Выведет // MediaQueryList { // media: "(min-width: 1000px)", // matches: true // }
Anonymous
Vasiliy
чет меня напрягает, что когда в tape забываешь t.end() то tape-watch приходится перезапускать ибо все, приехали кто как справляется с этим? кто-то пользует вообще tape в watch mode? чет я думаю пересаживаться на ava, напрягают эти проблемы
Anonymous
Подолжаем ковырять matchMedia. Заранее прошу прощения за код в тексте. Как нам известно из спеки, интерфейс MediaQueryList предписывает устанавливать параметры matches и media как readonly. При этом слушатель изменений того или иного запроса, который устанавливается MediaQueryList.prototype.addListener принимает в качестве аргумента ТОТ ЖЕ САМЫЙ экземпляр MediaQueryList, но (о чудо) с другим значением matches (ну и слушатель вызывается только в том случае, если это значение изменяется). Как же так? Ридонли свойства, на самом деле, не ридонли? Проверяем: const initialMQ = matchMedia( '(min-width: 1000px)', ); initialMQ.addListener( currentMQ => console.log( currentMQ === initialMQ, ), ); // Выведет true initialMQ.addListener(console.log); // Выведет // MediaQueryList { // media: "(min-width: 1000px)", // matches: true // }
Понял. По всей видимости, экземпляр MediaQueryList создаётся как-то так: Object.create( MediaQueryList.prototype, { media: { value: media, configurable: true, enumerable: true, }, matches: { value: matches, configurable: true, enumerable: true, }, addListener: { value: addListener, }, removeListener: { value: removeListener, }, }, ); А новое значение свойства matches ему присваиваются с помощью Object.defineProperty с аналогичным дескриптором.
Roman
Спасиб)
Дима
Но если честно не очень понимаю кейс "забыл t.end"
Vasiliy
ну я не понимаю зачем мне это писать, поэтому забываю, нигде больше не встречал такой необходимости явно завершать тест, ну т.е. написал такой название теста, ф-цию и не написал t.end() но я конечно понимаю с чем это связано) из tape: If you forget to t.plan() out how many assertions you are going to run and you don't call t.end() explicitly, your test will hang., <- вот это меня напрягает
Alex
#golang
а где список всех тэгов можно узнать?
alex
всем привет
alex
столкнулся с странной ошибокой
alex
ошибкой
alex
в хроме не в вкладке нетворк не видно response
alex
который приходит
alex
как решить хз . Хром переустанавливал