- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
1419 guest
234 j123123
222 LispGovno
202 wvxvw
188 Говногость
161 gost
160 Lure Of Chaos
158 Stertor
155 bormand
128 kyzi007
123 pedarok
120 qbasic
116 Elvenfighter
115 someone
113 3.14159265
102 dm_fomenok
101 roman-kashitsyn
100 eldachello
94 Dummy00001
93 TarasB
88 Vasiliy
86 cmepmop
85 Dr_Stertor
84 syoma
73 7ion
72 laMer007
69 d_fomenok
61 хуита
60 Мартин
60 BEPETEHO
60 3_14dar
58 AliceGoth
58 CHayT
56 Fai
56 kegdan
55 uiopqwertyasd
55 munin
54 HaskellGovno
51 bugmenot
51 Abbath
51 vistefan
50 nethak
49 makc3d
49 Fike
48 inkanus-gray
47 telnet
47 Govnocoder#0xFF
47 3_dar
44 codemonkey
44 OlegUP
43 RaZeR
42 Sulik78
41 CPPGovno
41 alexoy
41 DrFreez
41 varg242
40 danilissimus
39 taburetka
39 KitKat
38 dwinner
38 absolut
38 striker
37 raorn
37 jQuery
37 inho
35 psina-from-ua
35 rat4
35 1kasper
35 brainstorm
35 Stallman
34 ursus
34 KirAmp
33 evg_ever
33 invision70
33 Lokich
33 Xom94ok
32 1_and_0
32 istem
32 volter9
XYPO3BO3 17.11.2019 23:05 # 0
j123123 17.11.2019 23:06 # 0
OCETuHCKuu_nemyx 17.11.2019 23:09 # 0
j123123 17.11.2019 23:14 # 0
j123123 17.11.2019 23:15 # 0
OCETuHCKuu_nemyx 17.11.2019 23:18 # 0
3oJIoTou_xyu 18.11.2019 11:48 # 0
guest8 18.11.2019 12:11 # −999
bormand 18.11.2019 16:35 # 0
guest8 18.11.2019 17:56 # −999
guest8 18.11.2019 19:11 # −999
TOPT 18.11.2019 19:17 # 0
guest8 18.11.2019 19:32 # −999
TOPT 18.11.2019 19:45 # +1
Основное дерьмо учится за 15 минут. Главное осознать метатаблицы.
bormand 18.11.2019 19:49 # 0
guest8 18.11.2019 19:53 # −999
bormand 18.11.2019 19:57 # +1
guest8 18.11.2019 19:59 # −999
XYPO3BO3 18.11.2019 21:12 # +1
А в жопоскрипте можно смешивать ассоциативный массив и поля объекта. Более того, obj.coq и obj['coq'] ссылаются на один и тот же элемент.
Главное не перепутать, где что с чем перемешано.
TOPT 18.11.2019 20:00 # 0
guest8 18.11.2019 20:02 # −999
TOPT 18.11.2019 20:11 # 0
TOPT 18.11.2019 20:19 # 0
Помнитя в 5.1 нельзя перегрузить len по этому я там извращался - добавлял новый элемент n в каждую новую таблицу и при добавлении туда любой хуйни - вызывал я метода который n=n+1 просто.
TOPT 18.11.2019 20:23 # 0
guest8 18.11.2019 19:55 # −999
guest8 18.11.2019 19:57 # −999
1024-- 23.11.2019 22:53 # +1
Потом я увидел Ваше "давненько я не брал в руки шашек" и код с sequence и какой-то монадической питушнёй, решил посмотреть в сторону хаскеля. После заражения функциональной питушанкой оказалось, что нормальную программу нельзя написать без map и forEach, а в Lua их вроде бы нет, и вообще какая-то процедурных сишных питухов с жсовскими слабодинамическими ворециями. Lua стал забываться. Теперь я помню только, что там есть таблицы {}, интересная находка в виде разницы между точкой и двоеточием, а также разделение данных и метаданных у таблиц, что позволяет без специальных знаний тонкостей языка создать хороший ассоциативный массив, которому, в отличие от жс, ничего не угрожает.
guest8 24.11.2019 00:58 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:12 # 0
XYPO3BO3 24.11.2019 01:29 # 0
guest8 24.11.2019 01:30 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:31 # 0
guest8 24.11.2019 01:36 # −999
bormand 24.11.2019 01:52 # 0
guest8 24.11.2019 15:04 # −999
XYPO3BO3 24.11.2019 15:13 # 0
guest8 24.11.2019 15:20 # −999
XYPO3BO3 24.11.2019 15:21 # 0
guest8 24.11.2019 15:23 # −999
XYPO3BO3 24.11.2019 15:32 # 0
Кстати, сайт «Леруа Мерлен» перестал работать в старых браузерах. А там всего лишь табличка картинок и наименований товаров.
guest8 24.11.2019 01:29 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:37 # +1
Именно, блять, поэтому я за "PHP".
BJlADuMuPCKuu_nemyx 24.11.2019 01:39 # 0
guest8 24.11.2019 01:45 # −999
bormand 24.11.2019 01:42 # 0
> phpmyadmin
BJlADuMuPCKuu_nemyx 24.11.2019 01:43 # 0
bormand 24.11.2019 01:44 # +1
Блядь, лол, есть.
guest8 24.11.2019 01:46 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:53 # 0
https://memepedia.ru/wp-content/uploads/2017/05/KHhcEzQy3xA-600x338.jpg
guest8 24.11.2019 01:55 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 02:09 # 0
guest8 24.11.2019 02:18 # −999
bormand 24.11.2019 01:53 # +1
guest8 24.11.2019 01:56 # −999
bormand 24.11.2019 01:57 # 0
guest8 24.11.2019 01:58 # −999
bormand 24.11.2019 01:59 # 0
Закроешь сессию да и всё. Вроде все СУБД такое прерывание умеют. Не?
guest8 24.11.2019 02:02 # −999
XYPO3BO3 24.11.2019 02:05 # 0
https://dev.mysql.com/doc/refman/5.7/en/kill.html
guest8 24.11.2019 01:45 # −999
guest8 24.11.2019 01:47 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:49 # 0
guest8 24.11.2019 01:51 # −999
XYPO3BO3 24.11.2019 01:58 # 0
1. Поскольку сам процесс «PHP» висит в памяти, контекст расширений не очищается. Именно поэтому работает расширение «memcache».
2. Из-за архитектуры самого интерпретатора «PHP» его контекст всё равно очищается после каждого запроса (это каждый петух знает).
guest8 24.11.2019 02:00 # −999
XYPO3BO3 24.11.2019 02:01 # 0
XYPO3BO3 24.11.2019 02:12 # 0
https://www.php.net/manual/ru/function.socket-accept.php
Но так почему-то не делают.
BJlADuMuPCKuu_nemyx 24.11.2019 02:01 # 0
bormand 24.11.2019 02:02 # 0
BJlADuMuPCKuu_nemyx 24.11.2019 02:07 # 0
bormand 24.11.2019 02:09 # 0
Т.к. следующий запрос может уйти в соседний процесс uwsgi. Или текущий процесс uwsgi ребутнётся для профилактики.
В общем, это больше для разогрева кода чем для хранения данных.
BJlADuMuPCKuu_nemyx 24.11.2019 02:11 # 0
bormand 24.11.2019 02:12 # 0
guest8 24.11.2019 02:27 # −999
bormand 24.11.2019 02:29 # 0
А я ебу. Я его не юзал ни разу.
guest8 24.11.2019 02:16 # −999
guest8 24.11.2019 02:13 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 02:27 # 0
Начнём с того, что мне похуй по какому протоколу общается nginx с кем-либо. И мне похуй на каком языке писать.
1) Я могу написать программу, которая 1 раз запускается, слушает сокет (в нашем случае от nginx), и отвечает на запросы. Может делать это в несколько потоков, и сохранять данные в глобальные массивы (в случае C++, например). Если программа крешнется, то её кто-то должен перезапустить.
2) Я могу написать программу, которая запускается на каждый запрос, в которую по stdin или как-то ещё получает дынные, и высирает ответ в stdout. У неё нет шансов сохранить стейт в памяти (то самое, что каждый петух знает). Это классическая схема для PHP.
И вы мне, блять, не можете ответить к чему относится gunicorn, и к чему uwsgi.
Или где я не прав?
guest8 24.11.2019 02:31 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 02:35 # 0
Почему? Я могу запустить 1 поток, и он будет жить вечно, пока тачка не отключится.
guest8 24.11.2019 02:39 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 10:50 # 0
BJlADuMuPCKuu_nemyx 24.11.2019 02:38 # 0
Меня не должно это ебать. Это уже внутрення оптимизация. Для меня это выглядит так, что мой "index.php" или "index.py" кто-то запускает извне.
guest8 24.11.2019 02:41 # −999
bormand 24.11.2019 02:41 # 0
Не совсем так. Кто-то извне зовёт функцию в твоём index.py. При этом он может это сделать как на чистом инстансе твоего скрипта, так и на поюзанном. Или даже исполнить несколько запросов на одном инстансе скрипта параллельно, если включены треды.
BJlADuMuPCKuu_nemyx 24.11.2019 02:44 # 0
Вспомнил. Плагин "cgi" называется.
guest8 24.11.2019 02:51 # −999
XYPO3BO3 24.11.2019 03:00 # 0
Я тебя удивлю, но единственная функция «PHP» для «FastCGI» — это fastcgi_finish_request. Она отправляет страницу клиенту, рвёт с ним соединение, но продолжает выполнять скрипт. Дальше клиент может хоть закрыть вкладку, скрипт будет выполняться молча, не отправляя ничего клиенту.
Гипотетически эта функция предназначена для выполнения тяжёлой задачи типа работы с базой данных. О результатах клиент может узнать, только сделав следующий запрос.
XYPO3BO3 24.11.2019 03:05 # 0
А для HTTP Auth, если не путаю, состояние хранится не в памяти, а в файликах в /tmp (надо проверить).
Процессов может быть запущено несколько. Каким именно процессом будет обработан следующий запрос, зависит от фазы луны. Полагаться на то, что следующий запрос будет обработан тем же самым процессом, нельзя, поэтому память процесса для аутентификации мы использовать не можем. Для аутентификации нужно общее хранилище, которое шарится между всеми процессами.
guest8 24.11.2019 03:26 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 10:45 # 0
"Новый Говнокод" запускается не как CGI, а через свою еботню:
https://github.com/wiistriker/govnokod.ru/issues/52
XYPO3BO3 24.11.2019 11:35 # 0
И как это всё работает? «Конардо» не поймёт такой код. В «AppKernel.php» тоже какая-то бесполезная херня вроде перечисления классов.
XYPO3BO3 24.11.2019 11:45 # 0
Полутора гигов компостеру не хватило, чтобы установить зависимости. Какой багор )))
gost 24.11.2019 11:55 # 0
XYPO3BO3 24.11.2019 12:21 # 0
https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
Если стереть файл «composer.json» и ставить пакеты по одному командой «composer require», то всё работает.
XYPO3BO3 24.11.2019 13:58 # 0
В распакованном виде все пакеты, включая «Symfony», не наберут и сотню мегабайт. Для чего компостеру несколько гигов оперативки? Чтобы майнить биткоины?
XYPO3BO3 24.11.2019 12:31 # 0
1. Скачать пакеты.
2. Распаковать пакеты.
То же самое можно сделать с гораздо меньшими системными требованиями, запуская «wget» и «unzip» из sh-файла.
guest8 24.11.2019 13:59 # −999
XYPO3BO3 24.11.2019 14:10 # 0
gost 24.11.2019 14:15 # +1
neTyx_npoTKHyTbIu 24.11.2019 14:35 # +1
Предел памяти установлен у самого интерпретатора, чтобы не вызвать подкачку из вторичной памяти (это медленно) либо же чтобы не вызвать OOMKiller в случае отсутствия подкачки.
Граф можно было бы обрабатывать по частям, реализовав нечто типа оверлеев, но странно делать это вручную при наличии виртуальной памяти.
С другой стороны, сам граф можно было бы разбить на несколько и тем самым понизить потребление памяти.
А в самом переиспользовании сторонних пакетов я не вижу ничего дурного.
XYPO3BO3 24.11.2019 14:41 # 0
Но «Composer» ставит пакеты локально, в чистую директорию. Требуемые версии указаны в файле «composer.json». Тут даже нечего ломать несовместимой версией.
ru66oH4uk 24.11.2019 15:02 # 0
XYPO3BO3 24.11.2019 16:38 # 0
У других менеджеров пакетов на такую фигню не нарывался.
XYPO3BO3 24.11.2019 15:03 # 0
Это всё растёт, как снежный ком. Я это понимаю так: в ORM «Doctrine» обнаружился фатальный недостаток, поэтому необходимо подпереть его очередным костылём.
guest8 24.11.2019 14:19 # −999
XYPO3BO3 24.11.2019 14:26 # 0
guest8 24.11.2019 03:24 # −999
guest8 24.11.2019 02:44 # −999
bormand 24.11.2019 02:46 # 0
Ну в вебе один хер всё в io до базы и других сервисов упирается... Так что и так сойдёт.
guest8 24.11.2019 02:46 # −999
bormand 24.11.2019 02:32 # 0
Т.е. питоньему скрипту вообще насрать что там в качестве транспорта - http, fastcgi или какой-нибудь mod_python. Ему просто зовут функцию с нужными параметрами и окружением. А свежее это состояние скрипта или нет - зависит от реализации, настроек и погоды на луне.
guest, всё правильно?
guest8 24.11.2019 02:43 # −999
bormand 24.11.2019 02:46 # 0
guest8 24.11.2019 03:23 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 10:42 # +1
guest8 24.11.2019 14:24 # −999
OCETuHCKuu_nemyx 24.11.2019 14:50 # 0
Использование глобальных переменных в питоне - сайдэффект?
ru66oH4uk 24.11.2019 14:54 # 0
Вы всегда пишите свои программы под какой-то API, верно?
API предоставляет вам функционал, и определяет для него семантику. Иными словами, вам могут даваться (или не даваться) определенные гарантии.
Если вы используете api wsgi (а так поступают обычно Flask и Django), то такое API не дает гарантий, что каждый запрос исполнится в том же самом процессе.
Если авторы сервера приложений (gunicorn, uwsgi) решат по какой-то причине очищать глобальный стейт после каждого запроса, то они будут полностью правы (они НЕ нарушат спецификации), а ваш кеш сломается
OCETuHCKuu_nemyx 24.11.2019 15:00 # 0
Мне и не нужны такие гарантии. Если я запущу 4 процесса, и в среднем каждый проживет хотябы 30 минут или 50 запросов - меня это устраивает.
guest8 24.11.2019 15:16 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 21:42 # 0
1024-- 25.11.2019 00:00 # 0
Какие-то оторванные блоки родом из структурного программирования, которые можно переиспользовать и передавать в недо-ФВП, обычные функции/методы, у которых другой тип, и хрен их куда передашь и хрен ссылку на них получишь и т.п. Зато map отзывается на 100500 алиасов.
Как будто функциональщину туда затащили решением суда, и был вариант либо выучить хаскель за 21 час и сделать так же, либо отправляться на виселицу.
То ли дело JS, где передача функции в ФВП выглядит естественно, и вообще не надо тужиться и думать, чтобы её передать.
guest8 24.11.2019 01:06 # −999
BJlADuMuPCKuu_nemyx 24.11.2019 01:09 # 0
1024-- 25.11.2019 00:02 # 0
guestinxo 25.11.2019 00:04 # 0
1024-- 25.11.2019 00:20 # 0
XYPO3BO3 25.11.2019 00:26 # 0
1024-- 25.11.2019 00:46 # 0
____________________
* Всё же это ГК
guestinxo 25.11.2019 00:47 # 0
1024-- 25.11.2019 00:52 # 0
XYPO3BO3 25.11.2019 00:53 # 0
— 1023, ты из Минска?
— 1023, ты из Питера?
guestinxo 25.11.2019 00:55 # 0
XYPO3BO3 25.11.2019 01:33 # 0
https://ideone.com/CBggWm
BJlADuMuPCKuu_nemyx 24.11.2019 01:33 # 0
1024-- 24.11.2019 23:47 # 0