@dlangru

Страница 332 из 719
Oleg
06.12.2017
22:49:43
в любом случае не хотел никого обидеть или задеть

Eto
06.12.2017
22:50:38
такие вещи апаратно делаются
Хотелось бы посмотреть на железки, которые спроектированы, чтобы контроллировать поток песка. :)

Полагаю автомобильный софт тоже в hard realtime относится?

Google
Stepanos
06.12.2017
22:52:23
тесла точно не реалтайм) задержки есть

Oleg
06.12.2017
22:52:36
смотря какие системы

Stepanos
06.12.2017
22:52:45
бортовой ПК

Oleg
06.12.2017
22:53:00
ну так их же не один

то что управляет ABS, двигателем, оно всё realtime

Evil
06.12.2017
22:53:34
в любом случае не хотел никого обидеть или задеть
А надо было, людей это стимулирует к развитию? Мне в примерах, что из себя представляет hard realtime, плиз. Я технически не понял, как это выглядит.

Eto
06.12.2017
22:53:46
Не знаю насчёт автомобилей, но в самолётах точно не один компьютер.

Evil
06.12.2017
22:55:48
Не знаю насчёт автомобилей, но в самолётах точно не один компьютер.
Они и на киллобайте памяти раньше нихуёвые расчеты делали)

Oleg
06.12.2017
22:56:58
думаю самая простая rt система, это та, которая без OS работает — чисто прошивка с минимумом функций более сложные системы с несколькими задачами имеют планировщики, которые фиксированно расставляют разным процессам приоритеты и раздают фиксированные кванты времени

Evil
06.12.2017
22:57:09
всмысле пример как более подробно работает rt система?
Разницу между софт и хард. Мне с утра тяжело заходит) или просто требования условные?

Oleg
06.12.2017
22:57:38
дальше уже от понимания "фатальности"

Google
Oleg
06.12.2017
22:58:33
если кадр в видео пропустился, то это не фатально (точно soft), а если человек может погибнуть, то это фатально (точно hard), а всё что между это уже как бы ТЗ

если проектировщик системы счёл, что выход за пределы времени отведённого это фатально, значит будут делать hard rt

Evil
06.12.2017
22:59:50
И как это выглядит?

Шить контроллер, вынося логику из ОС?

Eto
06.12.2017
23:00:36
OS просто нет.

Evil
06.12.2017
23:01:03
Понял

Oleg
06.12.2017
23:01:04
либо нет OS, либо она rt

Evil
06.12.2017
23:01:17
QNX?

Oleg
06.12.2017
23:01:45
https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8

QNX?
их, кстати, много разных

но, как говорит вики, qnx входит в их число

Evil
06.12.2017
23:03:15
>>Идеальная ОСРВ имеет предсказуемое поведение при всех сценариях нагрузки, включая одновременные прерывания и вы полнение потоков Во, оно, теперь картина ясна



Eto
06.12.2017
23:11:59
Я, слава Александреску, с PHP не знаком. :)

Evil
06.12.2017
23:14:23
Я, слава Александреску, с PHP не знаком. :)
Не смотря на всю мерзость языка, есть отличные фреймворки, способные ряд вещей так обернуть, что у языка появляются новые конструкции и задачи реально быстро решаются.

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

Eto
06.12.2017
23:25:35
Неужели всё так страшно? Я в последний раз года два на C# писал. Вроде нормально было.

Evil
06.12.2017
23:29:56
После D, питона итп. Оно кажется слишком неотёсанным.

Google
Evil
06.12.2017
23:31:26
Стринги при объявлении нулы, индусы везде навставляли стринг.тустринг(), все остальные структуры и типы требует явно инициализировать, часто с вызовом конструктора.

Я позавчера это нашел в дебрях проекта. Явно, не от хорошей жизни.

Catalytic.Framework.Utils.ConvertToInt(0)

Не код, а бегемоты свадьбу играли

И это высокоуровневый язык, прошу заметить. В D такой хуйни и близко нет, стринг можно занулить, но он сразу "" ))

В первую очередь, я это всегда говорил, C# плохой потому, что на нем индусы могут писать жопой и генерить компилируемый код.

Я сейчас столкнулся с таким кодом, причем корпоративным.

Dmitry
07.12.2017
05:32:20
Интересный коммент: "Пробывали писать на aiohttp, и… не получилось. В определенный момент пришлось переписать все на стандартном стэке Flask + SQLAlchemy. Aiohttp — хороший фреймворк для написания простых и плоских (flat) приложений (вроде todo-листа или веб-чата), но когда дело доходит до написания серьезных приложений, насыщенных ООП и с хоть какой-нибудь вложенностью, то делать это крайне тяжело. Поскольку любые функции для работы с БД должны быть корутинами, то и функции, вызывающие их, так же должны быть корутинами. В результате весь код превращается в одну большую корутину, со всеми вытекающими последствиями." У D такая же ситуация?
Кто по-русски пишет "пробывали", у того и с другими языками, вроде питона, тоже не очень будет. Что до ситуации в D, то в целом похоже: если пишешь в духе vibe все в файберах, то для всех потенциально долгих операций (ввод-вывод в основном) надо использовать специальные ф-ии и самому следить, чтобы не вызывались обычные синхронные функции. Но на уровне языка/аннотаций код с корутинами никак по-особому не выделяется.

Dmitry
07.12.2017
07:03:24
Асинхронные. http://vibed.org/features#aio например использовать http://vibed.org/api/vibe.core.file/ вместо обычного std.stdio.

Evil
07.12.2017
08:50:54
Какие это такие конструкции новые появляются? О.о
Yii2 хитро подгружает модули классов, так что можно в них использовать параметры с геттерами-сеттерами. Точнее, функция там getShit() становится доступной в объекте класса в виде $o->shit; параметра

Ievgenii
07.12.2017
08:52:30
И где это "новые конструкции"?

Это обычная возможность языка

Которая, к стати, есть и в D

Evil
07.12.2017
08:53:08
Хз, в пхп не встречал в чистом виде

В D я в курсе

Ievgenii
07.12.2017
08:53:30
http://php.net/manual/ru/language.oop5.overloading.php#object.get

В пыхе это реализовано +/- как и в D

Admin
ERROR: S client not available

Google
Ievgenii
07.12.2017
08:54:08
И ничего там сверхъестественного нет

Evil
07.12.2017
08:54:14
Ы

Спасибо

Ievgenii
07.12.2017
08:54:38
А добавить новую канструкцию - PHP тебе не С/С++, тут такого не выйдет...

Возможно это и к лучшему

:)

Evil
07.12.2017
08:58:01
Ок, а раздупли мне вот это как работает: Laravel, в маршрутизации пишем например /users/<userID> потом в методе контроллера, который хенлерит этот запрос, function getUser(User u){} где User это имя ОРМ модели

Ievgenii
07.12.2017
09:03:09
В ORM моделях есть стандартные методы, аля findById, update, create, delete, etc.

По всей видимости, когда ты такое описываешь, он рефлексией дастает параметр этого метода

из него получает имя класса первого аргумента

И если он имплиментирует интерфейс поиска findById - то он использует тот параметр, что распарсил из строки запроса, и передает в метод поиска

Такие вещи упрощают написание проекта, но ты теряешь контроль в этом случае

Сделать что-то кастомное

Andrey
07.12.2017
09:14:39
скорее всего все проще. в скриптовых языказ можно вызывать методы через названия в переменных. $method = 'getUser'; $resultset->$method(...). классы для орм определяются заранее или генерятся при старте из схемы

Ievgenii
07.12.2017
09:28:52
Нет, не так

Так как фреймворк не знает, какой именно там будет класс

А отдельно оно негде заранее не декларируется явно

Как правило это все делается рефлексией

Andrey
07.12.2017
09:40:27
может я неправильно понял, о чем речь. но ничто не мешает из запроса так же назание класса вычислить. $class->new->$method. рефлексия не поможет прочитать из несуществующей таблицы

Ievgenii
07.12.2017
09:41:19
Идет речь о том, откуда фреймворк понимает, какую именно модель (экземпляр класса) создавать

Google
Ievgenii
07.12.2017
09:41:51
Грубо говоря, как он понимает, что нужно инстациировать класс User, а не Device.

Andrey
07.12.2017
09:46:57
из урла

Ievgenii
07.12.2017
09:47:22
/user/5/

Какой класс нужно создавать и наполнять?

Andrey
07.12.2017
09:47:49
ну контроллер же знает, какой

Ievgenii
07.12.2017
09:47:53
Откуда?

У меня 2 класса:

UserView и UserEdit

Один используется для чтения без возможности модификации

А второй для модификации

И откуда контролер должен узнать, какой класс заюзать при запросе /user/5/, /user/edit/5/, /user/delete/5/?

Из приведенного выше примера, я объяснил как он об этом узнает

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