@dlangru

Страница 230 из 719
Pavel
07.08.2017
21:56:49
Как хочешь. Без гц ще надо будет решать кучу проблем с работой с памятью, ловить утечки и т.д.

Так что если производительность позволяет, лучше конечно с гц

Stepanos
07.08.2017
21:58:23
https://www.wordsapi.com/ как думаете долго напилить на D такой бекенд? типа такого сервиса...

Dmitry
07.08.2017
22:06:54
Так что если производительность позволяет, лучше конечно с гц
Я с гц пробовал писать модуль для Emacs, на С всё было ок, а на D сразу всё падало. Может быть дело не в гц, а в том, что заголовочный файл неправильно перевёл. На Racket тем временем вполне получается писать биндинги с сишным либам. На D, по идее, должно быть значительно проще.

Google
Pavel
07.08.2017
22:07:33
racket это что?

Dmitry
07.08.2017
22:12:03
racket это что?
Один из вариантов Scheme, в итоге выросший в отдельный язык. Говоря совсем уж грубо — один из лиспов.

Мне он приглянулся тем, что на нём легко ваять кроссплатформенный гуй.

Pavel
07.08.2017
22:12:41
Даже не слышал о таком. А что там на D падало? Ошибка какая-то?

Dmitry
07.08.2017
22:13:45
Даже не слышал о таком. А что там на D падало? Ошибка какая-то?
Сегфолт сразу, как пытался модуль загрузить. Отладчиком я, често говоря, пользоваться не умею. Никогда не программировал на низком уровне, понимаю, что многое упустил.

Dmitry
08.08.2017
03:26:06
Как я понимаю, если делаешь библиотеку, то надо явным образом позаботиться о том чтобы рантайм проинициализировался до того, как основной код на Ди начнет вызываться. В винде это в DllMain, на других платформах еще как-то. См. статьи об этом на dlang.org. (сам я такие библиотеки не делал, только теорию читал)

Dmitry
08.08.2017
08:26:46
А кто тут в вебе хорошо шарит? Если JS фреймворк генерит URL'ы на лету т.е. их физически нет на сервере, то при обращении к ним снаружи напрямую они возвращают 404 ошибку. Можно ли как-то заставить эти урлы работать как реально существующие? пример: dlang.ru/book не существует и выдаст 404 ошибку, но если зайти в корень и дальше перейти, то все заработает

Ievgenii
08.08.2017
09:04:19
Не понятно

Dmitry
08.08.2017
09:11:05
в плане? Я тут погуглил. Походу только страницу на сервере генерить иначе нужно с NodeJS возиться и кучей серверных фрймворков

для Vue интересное решение есть, но я реально не хочу с NodeJS связываться https://ru.nuxtjs.org/guide

Про типизирование интересная инфа: "Dart 1.x is an optionally typed language, but types aren’t optional in Dart 2.0. With both static and runtime type checks, Dart 2.0 has a sound type system." Все же все современные языки должны быть типизируемыми.

Ievgenii
08.08.2017
09:24:14
Или нет)

Dmitry
08.08.2017
11:01:19
А кто тут в вебе хорошо шарит? Если JS фреймворк генерит URL'ы на лету т.е. их физически нет на сервере, то при обращении к ним снаружи напрямую они возвращают 404 ошибку. Можно ли как-то заставить эти урлы работать как реально существующие? пример: dlang.ru/book не существует и выдаст 404 ошибку, но если зайти в корень и дальше перейти, то все заработает
Надо свой сервер научить отвечать что надо на эти запросы. Если отвечать одно и то же - можно просто в настройках веб-сервера (nginx/apache/whatever) сказать куда посылать по всем запросам такого-то вида. JS тут не при чем, клиент его не обязан исполнять.

Google
Dmitry
08.08.2017
11:02:16
но урла такого же не существует физически т.е. надо переадресовать на корень и дальше переадресовать на сам урл? Так?

я просто пытаюсь vibed еще вкорячить в это все

Dmitry
08.08.2017
11:03:18
если его можно регекспом распознать (или набором оных) - то это можно в конфиге вебсервера указать и перенаправить куда надо

в vibe.d просто route'ов добавить

Dmitry
08.08.2017
11:04:14
ну вот добвялю я их, но он то будет пытаться реальные страницы найти, а их не будет

Dmitry
08.08.2017
11:04:42
кто он? в обработчике раута ставишь свой ответ, никто никакие страницы не ищет

Dmitry
08.08.2017
11:04:43
А вот еще вариант предложили https://stackoverflow.com/questions/45562442/how-to-make-vue-router-from-outside

Pavel
08.08.2017
11:06:42
Vibed на вход принимает урл желаемый, а что отдать в ответ решает сам. Согласно правилам роутинга и любой другой своей логике.

Dmitry
08.08.2017
11:09:29
Другими словами, всегда можно поставить один route "*", где твоя функция будет получать запрашиваемый URL в виде строки, и если он похож на любой из тех "виртуальных" адресов, отвечать что пожелаешь.

Dmitry
08.08.2017
11:15:48
Понятно что vibed может отвечать что пожелает, но тут то перещелкивание страницы происходит в самом JS

Dmitry
08.08.2017
11:16:45
Это "визуальные эффекты" на клиенте, серверу пофиг, что там происходит

Dmitry
08.08.2017
11:17:19
просто как я понимаю в начале движок запускается, отрисовывает все, а потом так же подгружает часть другой страницы (опять см пример на SO)

Pavel
08.08.2017
11:17:27
А ты вероятно про html history api

Dmitry
08.08.2017
11:18:34
ну и про него тоже

просто урл который я вижу в адресной строке он получается через html history api создан

Pavel
08.08.2017
11:20:43
Да. Если при этом запроса на сервер не было, то сервер никак не поможет

Dmitry
08.08.2017
11:23:30
так в итоге воркэраунда никакого нет?

Dmitry
08.08.2017
11:25:50
для какой проблемы? мы ее не видим

если клиент не обращается на сервер, то и проблемы нет

Google
Dmitry
08.08.2017
11:26:12
если обращается - отвечай

как бы адрес не выглядел, на него можно ответить

Dmitry
08.08.2017
11:29:28
так ответить то можно, но данная страница не самостоятельная, а лишь перещелкнутая вьюшка внутри базовой index.html

Dmitry
08.08.2017
11:29:59
и что с того?

и главное - что хочется увидеть?

Dmitry
08.08.2017
11:37:43
я хочу увидеть как если бы урл /book существовал, хотя его нет т.е. внутри index.html просто maincontent перещелкивается на bookcontent. Просто что я пытаюсь избежать. Я хочу чтобы к примеру если я меняю шапку она менялась в одном месте т.е. не было бы такого, что на каждой страинце нужно ее переверстывать. Отсюда весь изврат

Dmitry
08.08.2017
11:40:34
отдавать все тот же index.html с твоим JS-аппом, и он по урлу (например) увидит, что в адресе /book и сразу "перещелкнет"

Pavel
08.08.2017
11:41:07
У тебя получается spa, в нем вообще не надо ничего переверстывать. Изменяемая часть страницы меняется только внутри div

Dmitry
08.08.2017
11:41:10
да вот только не перещелкивает нихрена http://dlang.ru/book

Dmitry
08.08.2017
11:41:24
надо научить

JS код на странице должен понимать, что за урл сейчас показывается

Dmitry
08.08.2017
11:43:08
Просто может лучше Pug как-то научить страницы склеивать? Типа чтобы я шапку мог определить отдельно от всего и она была бы на всех страницах

qwerty
08.08.2017
11:43:31
@DmitryBubnenkov используете vue router?

https://github.com/vuejs/vue-router/

Dmitry
08.08.2017
11:43:52
угу именно его

qwerty
08.08.2017
11:44:44
вы настроили роуты и они не работают?

а хотя сам сейчас посмотрю, что Вы там сделали

Dmitry
08.08.2017
11:45:06
@antlord можно на ты) они работают и перещелкиваются, только внутри SPA

https://github.com/bubnenkoff/dlang.ru вот исходники

qwerty
08.08.2017
11:46:20
new Vue({ el: '#app', router, data: { }, }) вот это вообще легально?

Google
Dmitry
08.08.2017
11:46:40
ну собственно да, а что смущает?

qwerty
08.08.2017
11:47:07
у router нет ключа

Dmitry
08.08.2017
11:47:23
такая форма записи вроде бы в ES6 разрешена

qwerty
08.08.2017
11:47:58
ECMAScript)

вы уверены?

Dmitry
08.08.2017
11:48:54
на 80%

qwerty
08.08.2017
11:49:04
О_о

можно ссылку, где Вы такое видели?

Dmitry
08.08.2017
11:49:22
щас поищу

qwerty
08.08.2017
11:49:36
так стоп

Admin
ERROR: S client not available

qwerty
08.08.2017
11:49:42
я ecmascript не могу видеть

я могу видеть только js

ecmascript браузером не интерпретируется

Dmitry
08.08.2017
11:51:45
блин, найти не могу, но было такое, я точно помню, что изменил запись именно на такую т.к. автор урока про это отдельно подчеркнул

qwerty
08.08.2017
11:52:13
это не ecmascript, я не могу его видеть

вы его собираете в js и уже js выдаете

Dmitry
08.08.2017
11:56:10
т.е. есть подозрения что без компоновщика брауер это не так будет понимать?

qwerty
08.08.2017
11:59:09
да это js

я дал кусок js кода

Google
qwerty
08.08.2017
11:59:24
не ecmascript

Dmitry
08.08.2017
12:01:39
кстати, pug подерживает импорт

http://turnoff.us/image/en/functional-world.png

Maxim
08.08.2017
15:13:58
такой вопрос, а что будет, если человек с отключенным js зайдет на этот dlang.ru/book?

Dmitry
08.08.2017
18:10:22
он просто ничего не увидит, там все на js завязано

Я очень долго голову ломал как скрестить ужа с ежом, но все варианты костыльные

Я не хочу ради сайта на 3 страницы NodeJS тащить с пакетами на пол гига

Maxim
08.08.2017
18:17:03
а зачем это делать?)

почему бы просто вайбом не отдавать страницу в fallback режиме?)

Dmitry
08.08.2017
18:18:41
fallback это как? как dt?

Я хотел избавиться от перезагрузки при переключении страниц

Maxim
08.08.2017
18:20:16
не думаю, что это хороший подход)

Dmitry
08.08.2017
18:21:26
мне хочется придумать механизм подгрузки фрагментов страниц в фоне

Maxim
08.08.2017
18:21:28
если это SPA, то подход хороший, но на сайтах с традиционной навигацией, вряд ли это будет приемлемым решением)

Dmitry
08.08.2017
18:22:41
да это понятно, только надо чтобы он еще урлы правильно обрабатывал разные

Maxim
08.08.2017
18:31:14
он это кто?

любой урл — это запрос к серверу, тут два выхода, либо все редиректить на SPA, а уже SPA по URL будет определять, в каком он состоянии; либо по URL отдавать полностью сформированный html

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

Dmitry
08.08.2017
18:36:13
но по идее я же смогу подгружать просто только нужные страницы и все? Т.е. не загуражать весь SPA разом

Maxim
08.08.2017
18:37:54
если реализуешь что-то типа API на сервере, который будет принимать какой-то идентификатор на вход (например, URL) и по нему отдавать нужный кусок, то сможешь

Dmitry
08.08.2017
18:38:32
будет время займусь этим

@maxfreck о чем мне он тут говорит не понимаю http://forum.dlang.org/post/omcmrl$318p$1@digitalmars.com

Страница 230 из 719