
Рома
24.05.2017
20:10:22
Как бы запрос послать через прокси? есть луашный tcp сокет, http прокси с логином-паролем и https заблокированный ресурс

Snusmumriken
24.05.2017
20:12:28
Настроить прокси на компе. Хм.
Там какие-то особые прокси-запросы, помнится.

Рома
24.05.2017
20:20:32
я не умею на компе, все лишком сложно, плак :(

Google

Рома
24.05.2017
20:20:43
vpn пытался, ничего не вышло

Alexander
24.05.2017
20:21:19
Всем доброго времени суток. Есть ли опыт по использованию Lua в Win10 в подсистеме linux

Рома
24.05.2017
20:22:59
Я бы посоветовал поставить linux рядом, проблем точно меньше будет, освоиться немного и выкинуть винду

Alexander
24.05.2017
20:36:24
Да я сам работаю на манжарке, но руководство просит расмотреть и данный вариант. Что бы не городить решил сперва спросить.

Рома
24.05.2017
20:40:32
Я ничего не подскажу, но любопытно. Зачем linux внутри windows, когда Lua везде работает?

Snusmumriken
24.05.2017
20:47:51
А, у http-запроса к прокси в заголовке висит host, и прокси-сервер по нему перекидывает дальше, возвращая назад ответ. Просто делаешь кастомные запросы и всё: посылаешь прокси-верверу такую фигню:
tcp = socket.connect('proxy ip', 80)
tcp:send((
[[GET %s HTTP/1.1
Host: %s
User-Agent: Unknown agent
Accept: plain/text
Connection: close
]]):format(request, host)
И всё. Правда, с https надо повозиться с luasec.
Заголовки помимо Host можно заменить на частные.

Рома
24.05.2017
20:49:02
http://code.activestate.com/recipes/301740-simplest-useful-https-with-basic-proxy-authenticat/
вот пример максимально похожий на использования проксей, но все равно чет не понятно
оказалось все просто! у curl есть замечательная опция -v и он все запросы показывает

Snusmumriken
24.05.2017
20:55:55
Вот тут есть типичный https-get,
https://github.com/brunoos/luasec/blob/master/src/https.lua
Его можно слегка модифицировать.

Alex Фэils?︙
24.05.2017
21:00:31

Snusmumriken
24.05.2017
23:45:44
> https://habrahabr.ru/company/mailru/blog/329294/
Внезапно выкопал котлин. И он вроде синтаксически ничо так, если бы не java в ядре : )
Хотя это может быть преимуществом, если используются специфические библиотеки. Убирается как раз мой java-кошмар в виде огромной кучи бессмысленных слов, когда нужно просто сделать что-то простое. Примерно как язык D, на самом деле.
Во, народ пишет что прям как typescript, тощно.

Vadim
25.05.2017
11:12:30
кстати, луач

Google

Vadim
25.05.2017
11:13:05
а никому не попадалась какая-нибудь простенькая, что называется, "гостевая книга" (ака простейший форум) на lua/resty?
ну или хотя бы что-нибудь хоть немного к этому приближенное
а то совсем с нуля писать что-то не стоит

Рома
25.05.2017
11:23:08
я бы поучаствовал, если с нуля, а готовое - очень врядли
буквально недавно один хороший человек сделал nginx модуль для общения между воркерами, это значит, можно опупенный вебсокетный форум замутить

Snusmumriken
25.05.2017
11:32:57
Элементарный форум - то же самое, но с несколькими /guest-подобными страничками, и списком сообщений в бд с указанием нужного треда.

Vadim
25.05.2017
11:36:54
ну, хотелось бы не только guest, а чтобы юзеры могли логиниться :) и различать их
но да, в простейшем варианте - именно так :)

Snusmumriken
25.05.2017
11:37:14
Да ладно, зачем нужно логиниться? Анонимные имиджборды на что : )
Пишешь вместо author - anonimous, и вот тебе АиБ
Людей различать - по манере письма. Довольно занятно.

Vadim
25.05.2017
11:38:46
ну... на самом деле, я просто портирую уже существующий самописный PHP-велосипед (с клиентским немного привелегированным доступом) к нему (не мой) на Lua

Snusmumriken
25.05.2017
11:39:46
Ну так бы и сказал :D

Vadim
25.05.2017
11:40:37
в смысле, кода я не вижу, так что пишу "по мотивам" :)

TheRainwildsKeeper
25.05.2017
13:06:52
Так что логично, что TypeScript и Kotlin сравнивают (:

Snusmumriken
25.05.2017
13:07:21
Ох уж этот C#.

TheRainwildsKeeper
25.05.2017
13:07:29
Мне нрава

Snusmumriken
25.05.2017
13:08:10
Кстати, C# + Java - совсем не kotlin. Это будет в десять раз больше перегруженная бессмысленными но Очень Нужными Компилятору словами штука, потому что синтаксически C# и Java почти аналогичны. Kotlin вылезает довольно лаконичным.

Google

Vadim
25.05.2017
13:08:35
;)
// или PHP

TheRainwildsKeeper
25.05.2017
13:09:33
Какие языки имели наибольшее влияние на становление Kotlin
Именно эти два

The Dude
25.05.2017
13:09:53
Java + Scala тогда уж.

TheRainwildsKeeper
25.05.2017
13:10:17

The Dude
25.05.2017
13:10:35

TheRainwildsKeeper
25.05.2017
13:10:36
Scala и Kotlin скорее как соперники

The Dude
25.05.2017
13:10:59
Скала не взлетела
И не взлетит.

TheRainwildsKeeper
25.05.2017
13:11:27
Т.к. человек если уж и бросает старенькую джаву, но ему до сих пор нужно поддерживать JVM, то выбирает либо скалу, либо котлин

The Dude
25.05.2017
13:11:32
А вот котлин то уже.

TheRainwildsKeeper
25.05.2017
13:11:36

Snusmumriken
25.05.2017
13:11:47
Ура! Языкосрач! : )

TheRainwildsKeeper
25.05.2017
13:11:53
Нет

The Dude
25.05.2017
13:11:57

TheRainwildsKeeper
25.05.2017
13:11:59
Я тоже за котлин

Google

TheRainwildsKeeper
25.05.2017
13:12:09
Но скалу со счетов рано убирать, имхо

The Dude
25.05.2017
13:12:22
Ей лет уже
Слишком много для взлета
Конечно будут ее хипсторы всыкие юзать
И говорить как это круто
Но мэйнстримом, увы, не станет.

Snusmumriken
25.05.2017
13:13:09
Ну, луа вон тоже очень узко применяется, и её всякие хипсторы типа меня используют, и говорят как это круто. Но мейнстримом, увы, не станет.

The Dude
25.05.2017
13:13:29

Snusmumriken
25.05.2017
13:14:27
Я в общем-то постил с мыслью "а не намутить ли свой мунскрипт-typescript, с нормальным лоадером скриптов и парсером ошибок, шоб точно указывал строку и стактрейс", как расширение синтаксиса, ибо меня напрягают некоторые длинные вещи в lua.
Во, посоны, важно ваще мнение! Статическая или динамическая типизация, и почему?

Admin
ERROR: S client not available

TheRainwildsKeeper
25.05.2017
13:15:50
А зачем свой мунскрипт
Если есть мунскрипт

Alex Фэils?︙
25.05.2017
13:15:59

Tverd
25.05.2017
13:16:01
статика для компиляторов, динамика для интерпретаторов )

TheRainwildsKeeper
25.05.2017
13:16:13

Snusmumriken
25.05.2017
13:16:25
Хех, близко. Моё мнение - динамическая, но иногда - статическая. Особенно когда лень проверять типы кучи аргументов, или нужны нормальные перегруженные функции.

TheRainwildsKeeper
25.05.2017
13:16:37
Но джаваскрипту я однозначно предпочту тайпскрипт

Tverd
25.05.2017
13:17:00
Хотя ничего не мешает намутить и то и то... когда надо - указывать тип

Рома
25.05.2017
13:17:48
Самый лучший вариант - динамическая с возможностью статические вещи на сишечке писать

Google

Snusmumriken
25.05.2017
13:17:51
Вот, что-то типа этого я и хотел в луях:
function foo(num: x, str?: y, z) ... end

The Dude
25.05.2017
13:17:59

Snusmumriken
25.05.2017
13:18:52
И мне нехватает в луях котлинового
data = foo?.bar?.value or 'default_value'

Alex Фэils?︙
25.05.2017
13:22:04
напиши свой

Snusmumriken
25.05.2017
13:23:18
Кстати, в процессе изготовления - путевая библиотека.
Шоб в любом скрипте можно было написать:
p = path.getCurrentFolder()
или
lib = path.require('script')
Или даже:
lib = path.require('c:/bin/script')
И
`data = path.readfile('file.txt')'

Tverd
25.05.2017
13:23:55

Snusmumriken
25.05.2017
13:24:52
Ну, я городю такое:
cap_url = type(r) == 'table' and r.data and r.data.captcha and r.data.captcha.url,
и меня это слегка напрягает.

Tverd
25.05.2017
13:25:34
ну понятно, это уже обсуждали...
тут либо расчехлять luamacro, либо допиливать мун, ну или для особых - писать свое )

Snusmumriken
25.05.2017
13:26:33
Ну, карочи можно намутить функцию типа:
value = table.extract(t, 'key1', 'key2', 'key3')
И огромный скрипт как сборник тулзов, для стрелочных функций:
func = f'x, y => x + y'
Для массиво-функциональщины:
arr = map({10, 20, 30}, f'x => x + 10')
Для проверки типов:
function foo(x, y, z)
checkType('n', x, 's', y, 't?', z)
end
И всего такого.

Tverd
25.05.2017
13:27:58
ну кстати не самое плохое решение. ты про x,y,z = table.extract(t, ...)
Хотя это есть в мунскрипте

Alejandro
25.05.2017
13:28:40
Совсем страх потеряли)

Snusmumriken
25.05.2017
13:29:08
Где?

Alejandro
25.05.2017
13:29:16
Вы тут )

Tverd
25.05.2017
13:29:21
Ну, карочи можно намутить функцию типа:
value = table.extract(t, 'key1', 'key2', 'key3')
И огромный скрипт как сборник тулзов, для стрелочных функций:
func = f'x, y => x + y'
Для массиво-функциональщины:
arr = map({10, 20, 30}, f'x => x + 10')
Для проверки типов:
function foo(x, y, z)
checkType('n', x, 's', y, 't?', z)
end
И всего такого.
у тебя кэшируется эта функция после парсинга?

Alejandro
25.05.2017
13:29:25
Размножились )

Snusmumriken
25.05.2017
13:30:23

Tverd
25.05.2017
13:30:29
гуд
а типа в глобале _G['x, y => ...'] = <function>

Snusmumriken
25.05.2017
13:31:30
local template = 'return function(%s) return %s end'
local buffer = setmetatable({}, {__mode = 'kv'})
local function arrow(expression)
expression = expression:gsub(' ', '')
if buffer[expression] then return buffer[expression] end
buffer[expression] = loadstring(template:format(expression:match('(.-)=>(.*)')))()
return buffer[expression]
end
foo = arrow'x, y => x + y'
print(foo(10, 20)) --> 30
Вариант с кешированием.

Tverd
25.05.2017
13:32:10
ну вот не у всех луаджит с 5.3 поддержкой... и не луа 5.3

Snusmumriken
25.05.2017
13:32:30
Ты про что?