[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 17424)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
  • Ныне 3041 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
  • ">
150783928026.png-(881.78KB, 720×720, junior_developer_elma.png)
17424
No. 17424 watch    
Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки. Не важно, программируете ли вы собственного робота, пишете серверную приблуду, интегрируете чужие API, ковыряете игру, или пытаетесь сделать сайт на Wordpress - если аноним что-то об этом знает, он обязательно поможет.

Пополняемая база знаний: http://pastebin.com/AGhLZppH

Не знаете, какой язык и библиотеки взять для вашей задачи? Вам сюда.
Не знаете, где клиент, а где сервер? Вам сюда.
Не понимаете, что такое ООП? Вам сюда.
Написали код, и не понимаете, почему не работает? Вам сюда.
Обнаружили кусок кода, и не понимаете, как оно вообще могло работать? Вам тоже сюда.
Не знаете, как подступиться к проблеме? Вам обязательно сюда.

Другие тематические нити: (не стесняйтесь их поднимать)
Java: >>/dev/13949
Python: >>/dev/14767
Rust: >>/dev/16152
RenPy: >>/dev/14429

Примеры кода лучше выкладывать в виде ссылок на http://pastebin.com или http://ideone.com
Фронтендные вещи лучше выкладывать на http://jsfiddle.net

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

Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены.

Если здесь поселится достаточное количество программистов на одном языке / одной сферы, можно будет их выделить в отдельную нить, а в этом оставить на него ссылку.
По мере поступления вопросов можно составлять FAQ и базу знаний.

Архив нитей:
http://410chan.org/dev/arch/res/14160.html
http://410chan.org/dev/arch/res/15681.html

Прошлая нить пока тонет тут: >>/dev/15861
Развернуть все изображения
No. 17433    
В процессе систематизация прошлой нити для пополнения базы знаний.
No. 17442    
Некоторая обобщенная информация из прошлой нити:

>Хочу перекатиться в бэкенд, десктоп или девопс из около-embedded
>>/dev/17045

>Хочу задачи и упражнения по алгоритмам (C, Python)
>>/dev/17105
>>/dev/17108
>>/dev/17110

>Хочу в HTML и CSS
>>/dev/17404

>Хочу вводный курс по C / C++
>>/dev/15966

>Хочу интерактивный курс по Python
>>/dev/16126

>Предложите альтернативу Python для парсеров и скриптов
>>/dev/15833

>Подскажите книги по Perl 6
>>/dev/15703

>Подскажите книгу про многопоточные сетевые приложения с POSIX API
>>/dev/17195

>Не отображаются тумбнейлы на локальной Wakaba
>>/dev/16891
No. 17443    
150801393010.png-(530.47KB, 600×800, photo5406869797507016779.png)
17443
Ребята, читаю TCPL и это так сложно, у меня каша в голове, а я только до поинтеров дошёл.
No. 17444    
Для ссылок внутри доски /dev/ указывать необязательно.
No. 17445    
>>17443
Ты упражнения делаешь?
No. 17449    
>>17445
Да, но читаю сильно вперёд.
No. 17453    
>>17449
Сильно вперёд чего? Упражнений? Если да, то лучше так не делать, а порешать ещё упражнений до тех пор, когда всё изученное хотя бы стройно выстроится в голове. Если никак не выходит, то не переусердствуй: возможно, дальше будет этот материал понять проще.
Но главное в обучении не просто читать, а применять на практике, помни.
No. 17455    
здесь случаем нет людей, знакомых с апи этого сайта https://www.themoviedb.org/documentation/api ?
No. 17457    
>>17455
Конкретно с этим API не знаком, но выглядит достаточно прямолинейно: https://developers.themoviedb.org/3/getting-started
https://developers.themoviedb.org/3/getting-started/authentication
https://developers.themoviedb.org/3/authentication/how-do-i-generate-a-session-id

С чем у тебя возникла проблема?
No. 17458    
>>17457
здесь есть лимит по реквестам 40 на 10 секунд. но даже после минуты после превышения лимита информация по фильмам не подгружается только после перезагрузки страницы может получиться
не могу понять эту систему с лимитом
No. 17460    
>>17458
>перезагрузка страницы иногда помогает
А откуда ты тыкаешь их API? Если это браузер или фреймворк на базе безголового браузера, то ты мог попасть на кеширование AJAX-запросов. поведение похоже на твой случай
No. 17461    
>>17460
https://developers.themoviedb.org/3/getting-started/request-rate-limiting
Ну и да, официальная спека божится, что таймаут 9 секунд максимум.
No. 17462    
150820201518.png-(522.84KB, 1366×728, 2017-10-17_03-47-28.png)
17462
>>17460
> А откуда ты тыкаешь их API?
браузер. я на сишарп вебапи сделал один метод гет, в котором использую апи того сайта
> ты мог попасть на кеширование AJAX-запросов
не понял что это значит, но я подгружаю фильмы аджаксом, да...

можешь сам сайт посмотреть, если хочешь http://movievote.azurewebsites.net/. проблема появляется, когда по страничкам переходишь
ну и еще я для каждого фильма до 3 реквестов отправляю
No. 17463    
>>17462
Я провел эксперимент - наперезагружал главную страницу несколько раз до того момента пока она стабильно перестанет подгружать информацию и одновременно с этим мониторил состояние отдаваемой информации по одному фильму:
http://movievote.azurewebsites.net/api/MovieInfo/42

>status_message "Your request count (135) is over the allowed limit of 40."
>status_message "Your request count (218) is over the allowed limit of 40."
>status_message "Your request count (187) is over the allowed limit of 40."

И так продолжалось какое-то время пока количество запросов не упало ниже лимита и информация не отдалась как нужно. Количество запросов в месседже то возрастало, то убывало.

Тебе нужно проверить, сколько запросов ты на самом деле туда отправляешь, потому что на вид выходит так, что ты сильно перекрываешь их разрешенный поток, из-за чего создается ощущение что таймаут не проходит а на самом деле ты его просто тут же выбираешь Возможно, придется реализовать программный circuit braker и устроить общение с внешним апи через него.
No. 17465    
Хранить json-строки в реляционной базе mysql - нормально или за такое сразу отрывают руки?
No. 17466    
>>17465
мне такое в прошлом треде делать предлагали, а здесь плохого не посоветуют
No. 17467    
>>17463
а можешь на сам гет метод посмотреть, пожалуйста? вот https://pastebin.com/4PPxFShB
вообще, я вебапи и парсинг джейсона плохо понимаю, может из-за этого сделал ошибку где-то
No. 17468    
>>17465
>>17466
Ну, во-первых MySQL уже даже поддерживает такой тип данных:
https://dev.mysql.com/doc/refman/5.7/en/json.html

Во-вторых, всё зависит от обстоятельств и того как устроен твой проект. Технически у тебя будет просто таблица ключ-документ. И я не вижу в этом ничего плохого. Плохое или хорошее можно будет увидеть, когда станет ясно как это будет использоваться.
Конечно, если тебе от базы не нужно реляционной части вообще, и просто страшно использовать NoSQL, типа MongoDB, то можно пожурить тебя за то что лень разобраться
No. 17469    
150826317266.png-(112.86KB, 1680×680, Безымянный.png)
17469
>>17467
Если я правильно понял, то этот твой гет-метод запускается каждый раз при обращении к /api/MovieInfo/ххх. Если это так, то проблема у тебя в архитектуре, поскольку на каждое обновление главной твой сервер 9 раз дергает апи TMDB что им быстро надоедает. Информация при этом загружается относительно статичная. Кешируй ее на своем сервере, и обновляй по расписанию, а не при каждом обращении. И возможно не обязательно грузить ее сразу, раз она отображается только при нажатии.
No. 17470    
>>17468
Про поддержку знаю, я скорее имел ввиду теоретическую правильность. Принципы проектирования БД требует стремиться к атомарности данных, а json ее нарушает. Если говорить о конкретной задаче, то мне надо хранить сведения об объектах разных типов, причем у каждого типа свой набор сведений. Из альтернатив я вижу либо по таблице на каждый тип (придется писать кучу кода для добавления/изменения/удаления самих таблиц и столбцов), либо две таблицы (в одной id объектов, в другой id, имя свойства, значение). Оба подхода мне не очень нравятся.
В общем, раз в принципе json нормально использовать таким образом, сделаю и я так, спасибо.
No. 17471    
>>17470
>Если говорить о конкретной задаче, то мне надо хранить сведения об объектах разных типов, причем у каждого типа свой набор сведений.

Да, это как раз то для чего обычно хранят данные в "документах". Так что если нет реляционных кусков вообще, можешь использовать mongo, а если нужна какая-то реляционная работа, то храни это у себя под боком в MySQL.
No. 17472    
>>17467
>>17469
Не ругая сам код Если захочешь - поругаю код тоже

Я бы предложил:
1. Не спрашивать информацию сразу для трех локалей, а спрашивать только для текущей локали пользователя.

2. Как заметил >>17469 можно добавить кеширование успешных запросов на своей стороне, но тут есть много способов это делать. Можно сделать просто кэш на стороне сервера, можно сделать супер простой кеш в коде (но тебе надо как-то его инвалидировать и обновлять, плюс он будет отъедать оперативку). Можно пойти дальше и сделать как делают многие скрепперные сайты: сделать чтобы твой сайт брал информацию про фильмы из твоей БД, а уже в эту БД их складывал второй компонент - краулер/скреппер. Этот компонент может работать как периодически, так и реактивно, аккуратно опрашивая чужое API по всем их правилам и медленно, но верно, заполняя базу.

Если у сайта планируется хоть какая-то посещаемость то без какого-либо кеша обойтись не получится - пара посетителей быстро выберет рейт лимит у апи. Но все же, предложу варианты для опроса чужого апи напрямую.

3. Можно реализовать circuit braker, который сразу начнет отсекать запросы по превышению лимита. И пропускать их когда пройдет таймаут.

4. Можно вместо этого написать простой rate limiter - т.е. компонент с очередью, который будет выполнять запросы из этой очереди и подсчитывать в реальном времени, с каким рейтом он обрабатывает запросы, если рейт превышен, то запрос повисит пока не пройдет таймаут. Можно разрешить ему выполнять N запросов одновременно.

Недостатки у этих методов - как только лимит выберется, будет создаваться ощущение что сайт тормозит.
No. 17473    
>>17469
> Кешируй ее на своем сервере
пока не знаю что это. мне в этом направлении смотреть https://metanit.com/sharp/mvc5/20.1.php ?

>>17472
> Если захочешь - поругаю код тоже
хочу
> 1. Не спрашивать информацию сразу для трех локалей, а спрашивать только для текущей локали пользователя.
здесь я для себя просто приоритеты расставил ua>ru>us, так как, можно сказать, это мой личный сайт для меня. попробую оставить только одну локаль для поиска, все равно она только на описание влияет и на постер иногда
> краулер/скреппер
что это такое?
> аккуратно опрашивая чужое API по всем их правилам и медленно, но верно, заполняя базу
как я понял, ты предлагаешь периодически тянуть информацию из их апи в собственную базу и обновлять периодически? если да, то так не получится ибо у меня база размером всего 32мб
> 3.
> 4.
у них вроде через апи можно запросить инфу о том, когда запросы снова станут доступны после превышения лимита

вообще, главная проблема в том, что после проклацивания по страничкам и использования этого лимита - ничего не подгружается даже через пару минут и вообще сайт начинает зависать. может я с логикой где-то напартачил, нужно смотреть
No. 17474    
150827987726.png-(99.65KB, 1366×728, 2017-10-18_01-28-48.png)
17474
>>17469
я тоже перешел на эту вкладку с запросами и мне мало что понятно, но вот эти вызовы Page?page=1 и время ожидания меня немного напрягают. это нормально? если нет, то проблема, скорее всего, где-то в длаваскрипте, да?
No. 17475    
>>17469
>>17474
>>17473
черт, ребят, я все понял. после перехода на следующую страницу я заново инициализирую кнопки перехода по страничкам, то есть та же самая функция выполняется +1 раз после прокликивания
No. 17478    
>>17473
>Вообще, главная проблема в том, что после проклацивания по страничкам и использования этого лимита - ничего не подгружается даже через пару минут и вообще сайт начинает зависать. может я с логикой где-то напартачил, нужно смотреть

Попробуй тогда самую простую проверку. Сделай в своем коде так, чтобы если не проходил первый запрос 429 код ошибки они присылают, то не начинались все остальные. Посмотри что будет и сообщай о результатах.
No. 17479    
>>17473
Да, ты можешь сделать кеширование таким образом, тебе подойдет кеш на сервере. Однако это все равно не очень хорошо, поскольку нагрузка на апи хотя и снизится, но останется зависимой от посетителей и непредсказуемой. Правильно будет обращаться к апи по расписанию, соблюдая частоту запросов, и сохранять данные в свою БД, а из неё отдавать клиентам, как сказал >>17472.
32 МБ должно хватить надолго, тем более если тебе нужна не вся инфа, которую отдаёт апи.
No. 17490    
можно ли сделать так, чтобы мое сишарп приложение с функцией автозапуска свертывалось в трей при запуске компьютера? при этом, если запустить его через ярлык, например, то открывается сразу окно

есть ли какой-то универсальный способ или нужно делать какие-то костыльные счетчики?
No. 17491    
>>17490
В автозапуск суешь приложение с параметром.
Приложение.ехе -минмизед
, например. На старте проверяешь этот аргумент запуска. Проблема решена.

Алсо, позаботься о том, чтобы при запуске с ярлыка приложение не дублировало процесс вдобавок к автозапущенному.
No. 17492    
>>17491
спасибо, попробую
No. 17495    
существует ли плагин для браузера желательно хром, который позволял бы получить все джаваскрипт события выбранного хтмл-элемента?
No. 17496    
Расскажите о движке Ычана, пожалуйста,
вообще что-то я в последнее время чувствую какое-то нездоровое влечение к технологиям начала/серидины нулевых.
No. 17497    
>>17495
Для хрома, к сожалению не подскажу.
А для FF есть FireBug, к которому есть дополнение EventBug, которое кажется делает то, что ты хочешь.
No. 17498    
>>17496
Насколько мне известно, Ычан использует почти стандартный движок Wakaba Mark. Написан на Perl. Устроен так просто, что кажется, что его без труда можно самому написать за месяц.

Лучше всего знакомится сразу через исходный код:
https://github.com/hades/wakaba

Также некоторые проблемы с его установкой разбирались в этой нити >>16891
No. 17499    
>>17498
> движок Wakaba Mark
>Mark
Это разметка.
No. 17500    
>>17473
>> Если захочешь - поругаю код тоже
> хочу

Больших претензии две:
1. Копипаста кода. Для трех запросов ты три раза скопировал код. Понятно, что поначалу так было быстрее, но вообще нужно вынести в отдельные методы подготовку запроса, непосредственную отправку запроса с получением результата, обработку возможного бана от чужого API. Оно и дебажить будет проще, потому что вместо трех мест для программистской ошибки на каждую операцию будет всего одно.

Вот почему бы не вынести это в отдельный метод, куда параметрами идут RestClient и реквест?

            var json = JObject.Parse(clientUA.Execute(request).Content);
            if (json["total_results"] == null)
                return json;
            if (json["total_results"].Value<int>() > 0)
            {
                if (json["results"][0]["overview"].Value<string>() != "")
                    return json;
            }

Почему бы не написать отдельный метод который проверяет код респонса на предмет бана? Тогда бы ты смог знать, что тебя забанили и не пускать дальше никаких запросов за конкретный вызов метода.

2. Неправильная работа с URL. Сейчас ты клеишь урли кусочками строк, потому что тебе так было быстрее. Не надо так делать, это тоже возможное место для беды. Конечно, в сишарпе не очень удобные стандартные средства для работы с урлами: https://stackoverflow.com/a/14517976

Но зачем стандартные, если можно подключить удобные внешние?
https://github.com/EasyHttp/EasyHttp
No. 17501    
>>17499
Сорри, слово-паразит.
No. 17502    
>>17500
спасибо большое за советы, для меня это важно
> https://github.com/EasyHttp/EasyHttp
ты предлагаешь формировать урл-строку для запроса апи с помощью методов этой либы?
я просмотрел вики, но немного запутался... если тебя не затруднит, сформируй, пожалуйста, эту строку с помощью этой библиотеки:
https://api.themoviedb.org/3/search/{data.Extras}?page=1&query={data.Name}&api_key={key}
No. 17523    
>>17502
К сожалению у этой либы есть недостаток - кажется она не поддерживает PATH-параметры одновременно с Query String параметрами. Поэтому, если хочешь сделать именно с ней, то нужно будет расплодить константы эндпоинтов на возможные варианты data.Extras можно конечно и по старинке их вставлять в строку, но это кажется немного не безопасно
Вообще они предлагают создавать query string как-то так:

http.Get("https://api.themoviedb.org/3/search/my_extras_endpoint", new {page = 1, query = data.Name, api_key = key})

Подробнее можно почитать тут: https://github.com/EasyHttp/EasyHttp/wiki/Get
No. 17532    
>>17424
Есть программа на си. Компилируется gcc без предупреждений, но сегфолтится после считывания x.
Пожалуйста подскажите мне, какие опции gcc надо загуглить для тестирования этой програмки.
[code]
// Number 1
#include <stdio.h>
int main(void)
{
char c;
int x,y;
printf("Пoжалуйста введите значение x ");
scanf("%d", x);
printf("\n%d", x);
if (x<0)
y=x*x+1;
else if (x>1)
y=0;
else if ((x<1) && (x>0))
y=x+1;
printf("\ny = %d\n",y);

return 0;
}
[/code]
No. 17534    
>>17532
Версия gcc 7.2, версия glibc 2.25
No. 17536    
>>17532
scanf надо передавать адрес переменной.
scanf("%d", &x);

No. 17538    
>>17536
Спасибо.
No. 17544    
>>17523
сложно как-то. пытался использовать эту библиотеку, но получается странно. вебапи по запросу выдает ошибки на сервере, хотя на сайт информация подгружается НО не всегда вся... такие дела. и еще из-за динамических объектов придется ограждать код трай-кетчами
я лучше разберусь с либой, которую использовал RestSharp. там вроде тоже можно урл-строку с параметрами по-умному формировать и все такое

вот то что написал пока пробовал, если интересно: https://pastebin.com/HJ6U8i4s
No. 17564    
какие есть материалы по разработке архитектуры для большого проекта? хочу сделать большое приложение игру для разных платформ с поддержкой онлайн функционала базы данных, все такое.
при этом хочется все-все продумать сначала, порисовать юмл и распланировать разработку в каких-нибудь скрамах, после чего уже браться за разработку. вот только не знаю как это все лучше сделать, чтоб разработка проходила гладко
No. 17566    
>>17564
http://macode.ru/ Ничего лучше не придумали, всё остальное - хуита для обмазывания отчётиками начальства и заказчика.
No. 17567    
>>17566
я когда делал одну игру - прямо так и сделал, сел и начал писать код не имея в голове точно представления как оно все будет сделано вместе. в итоге, после нескольких недель мусоливания одной фичи дропнул разработку так и не сделав особо ничего, хотя планы на счет игры были ого-го

поэтому сейчас хочу как-то подготовиться
No. 17568    
>>17564
>материалы
Есть дисциплина, софтваге инжиниринг называется. А так: UML для дизайна, аджайл для конкретных фич, >>17566 для всего остального
No. 17571    
150897129647.jpg-(82.15KB, 700×867, images.jpg)
17571
>>17564
>>17567
Держи, например, пикрелейтед:
https://gamifique.files.wordpress.com/2011/11/6-game-architecture-and-design-a-new-edition.pdf

Есть материалы по software architecture, и тут в приниципе я тебя могу проконсультировать, но есть одно но: привычная ООП-архитектура хорошо будет годиться для, например, твоей сетевой инфраструктуры, но очень быстро окажется что она мало годиться для реализации игровых сущностей и механик. В основном потому что один из принципов ООП - инкапсуляция, мало совместим с тем, что для интересной игровой механики какой-то из объектов в игре должен взять что угодно у чего угодно, или вообще спросить что-то у движка игры, а привычный ООП подход такому всячески препятствует.
No. 17572    
>>17571
>а привычный ООП подход такому всячески препятствует
Это почему еще?
No. 17573    
>>17571
А как хорошо в эту схему ложится Rust, в котором нет ООП?
No. 17574    
>>17572
В какой-то мере он прав. Большой движок слишком сложен, чтобы просто взять и сделать оптимальную архитектуру с этим вашим ООП. Поэтому делают так хорошо, как только могут, а потом начинают прикручивать скриптинг и прочую компонентно-ориентированность, чтобы этим можно было пользоваться.
No. 17575    
>>17573
Ты с Go не путаешь?
No. 17577    
>>17575
Может и не путает. Я вот такое откопал.
>There are many competing definitions for what OOP is: under some definitions, Rust is object-oriented; under other definitions, Rust is not.
https://doc.rust-lang.org/book/second-edition/ch17-00-oop.html
No. 17578    
>>17571
> Держи, например, пикрелейтед
спасибо, полистаю
> я тебя могу проконсультировать
круто! буду обращаться
> ООП-архитектура мало годиться для реализации игровых сущностей и механик
я планирую сделать игру-редактор японских кроссвордов и здесь вроде ничего особо сложно нету - тыкаешь по клеточкам да и все

думаю, главная проблема в том, что мне сложно разделять приложение на нужные классы-интерфейсы, да даже методы - я привык часто просто лепить все в одном месте, а это вроде как не хорошо... может знаешь, есть ли какие-то уроки-книжки, которые помогли бы мне правильно построить архитектуру приложения?

кстати, выложил редактор, который я делал на винформах в прошлом году https://github.com/aenen/prr. Здесь редактор работает, а игровая часть не доделана. Я буду отталкиваться от него, делая свою новую игру-рудактор и мне очень хотелось бы услышать критику и советы в адрес того, что я там сделал, воть

и да, думаю, мне понадобится какая-то c# библиотека игровой движок для создания 2D игр, которая бы хорошо подошла именно для этих кроссвордов-картинок, которые я буду делать. может кто знает что подходящее?
No. 17579    
>>17578
>движок для создания картинок
libpng. Всё остальное оверкилл.
No. 17580    
150910888699.png-(10.57KB, 451×461, panda_fond_prirodi_12_1_1p.png)
17580
>>17579
> движок для создания картинок
> кроссвордов-картинок
я имел в виду для игры - "кроссворд-картинка" это "японский кроссворд". чтоб графические элементы там отображать и можно было с ними взаимодействовать тыкать по ним
No. 17583    
150922396976.jpg-(297.49KB, 1023×1472, 1490497962963.jpg)
17583
>>17578
>выложил редактор, который я делал на винформах в прошлом году
>хотелось бы услышать критику и советы в адрес того, что я там сделал
>public LevelMode Type { get; set; } //цветной или ч/б
Плохие названия же.
LevelMode
лучше назвать
LevelColorPalette
, или вроде того.
Type
туда же. И если там всего 2 способа отрисовки всегда будет, то лучше просто
bool isMonochrome
. И зачем оно
public
, если используется только в конструкторе и методах этого класа? inb4 сериализация. Это для сериализации в xml только публичные поля годятся, а для binary пойдут и приватные.
Можешь попробовать использовать шаблон проектирования Memento для сохранялок. Раз игровая логика не очень сложная, то можно смело использовать MVC, тем более, что там видноформы.
Опционально прикупи одежду для программистов и сразу станешь лучше кодить.
No. 17584    
>>17583
спасибо за советы, я это учту
> можно смело использовать MVC, тем более, что там видноформы
вообще, я решил попробовать использовать xamarin, правда я с ним совершенно не знаком

я так посмотрел - люди пишут, что использовать wpf для игр не стоит (xamarin вроде на нем работает).
может кто из вас знаком с ним xamarin? какой лучше игровой движок использовать? может стоит какой патерн использовать чтоб по-взрослому выглядело, типа mvvm, mvc, или для игр такое не подойдет? если знаете хорошие материалы по xamarin - вбросьте сюда, буду благодарен
No. 17587    
Есть программка. Она дожна менять местами строки в серединке массива, если количество строк чётное. И менять первую строку с последнеё, если количество строк в массиве нечётное. У меня почему-то проверка на чётность не проходить, хотя при проверке на нечётность всё работает. Язык си. Что мне гуглить? Проверка на чётность у меня вроде верно записана.
[code]
#include <stdio.h>
#include <time.h>
int main(void)
{
const int n=12,m=4;
int i,j,c;
int a[n][m];
// printf("Введите количество строк в массиве \n")
// scanf("%d",&n);
// printf("\nВведите количество столбцов в массиве\n");
// scanf("%d", &m);
srand(time(NULL));
for (i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[i][j]=rand()%12;
printf("a[%d][%d]=%d\t", i,j,a[i][j]);
if (j==m-1) printf("\n");
}
if (n % 2 == 0)
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
c=a[n/2][j];
a[n/2][j]=a[n/2-1][j];
a[n/2-1][j]=c;
// printf("\t%d\t%d\t",a[n/2][j],a[n/2+1][j]);

}
else for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
c=a[0][j];
a[0][j]=a[n-1][j];
a[n-1][j]=c;

// printf("\t%d\t%d\t", a[1][j], a[n][j]);
}
printf("\n\n");

for (i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("a[%d][%d]=%d\t", i, j, a[i][j]);
if (j==m-1) printf("\n");
}

return 0;
}
[/code]
No. 17588    
>>17587
Вложенный цикл для обмена не нужен, достаточно цикла по j. С чётным числом строк из-за наличия внешнего цикла у тебя происходит чётное число перестановок, которые компенсируют друг друга.
No. 17589    
>>17588
Спасибо.
No. 17596    
>>17584
>может стоит какой патерн использовать чтоб по-взрослому выглядело, типа mvvm, mvc, или для игр такое не подойдет?
mvvm и mvc - не для игр, а для организации работы с пользовательскими данными в веб и десктопных приложениях. Например, если ты вдруг захочешь сделать свои кроссворды в вебе, то у тебя будет MVC. Модель - классы игрового поля, Вьюха - страница которую видит пользователь, и контроллер, который отвечает за то чтобы информация пришедшая от пользователя кликнул на клетку X,Y была санитизирована, обработана, и передана в модель.

>патерн использовать чтоб по-взрослому выглядело
Не надо. Один из важных поинтов программирования и проектирования софта - не делать архитектуру ради архитектуры, и не использовать паттерны просто чтобы использовать. Keep it Simple.
No. 17597    
>>17584
>может кто из вас знаком с ним xamarin? какой лучше игровой движок использовать?
Почему не попробовать Mono? Он вроде официально поддерживается:
https://developer.xamarin.com/guides/cross-platform/game_development/monogame/ Рядом видно альтернативы
https://developer.xamarin.com/guides/cross-platform/game_development/monogame/introduction/

Алсо, учиться лучше всего на примерах. На гитхабе уже есть исходники для нонограм / пикросса они же японские кроссворды
Вот список со всем что есть по словам Nonogram и Picross на C#:
https://goo.gl/pdnEqB
https://goo.gl/wFGNPt

Есть даже прямо Picross на Mono: https://github.com/Coteh/PicrossClone

Но если тебе хочется быстрее понять базовую структуру классов, попробуй посмотреть еще сюда: https://github.com/arabcewicz/Nonogram/

Тут можно увидеть, что человек сделал всё в ООП-стиле и завел основные необходимые классы - Grid, Cell, Line (которая у него может быть Row или Column), и т.д.

Если ты хочешь ООП-структуру, то это примерно то что тебе нужно организовать у себя даже учитывая что оригинальный автор там что-то не довел до конца

Еще есть смысл не ограничиваться C# и посмотреть архитектуру таких проектов на похожих по синтаксису и возможностям языках.
No. 17599    
>>17596
>>17597
спасибо за информацию, посмотрю, как другие делают эти кроссворды. кстати, не знал, что пикросс еще называют нонограм

если честно, я уже не знаю, стоит ли делать его на xamarin, потому что первое впечатление от него получилось плохое.
обновил студию до 2017 версии, установил необходимые компоненты, написал скопипастил по туториалу свое первое приложение на xamarin.forms и очень разочаровался:
  • приложение не билдилось, видимо из-за того, что имя папки в которой находился солюшн было на кирилице и содержало символ "#". после переноса в другую папку сбилдилось
  • я думал, что помимо ios и android приложений я смогу создавать и десктопное приложение на xamarin, которое было бы наподобие wpf или winforms, но здесь так нельзя. в документации пишут про поддержку windows rt и uwp, но у меня при создании xamerin.forms появились только ios и android проекты. uwp приложение на ксамарине и так создать не смогу ибо это только для windows 10
  • андроид-приложение так не смогло запуститься в эмуляторе. судя по аутпуту это из-за опять же имени папки пользователя на кириллице, которая отображается кракозябрами
  • ios приложение невозможно запустить даже в эмуляторе, для этого обязательно нужно иметь мак
возможно будет лучше, если я доведу до ума то винформ приложение, которое делал в прошлом году даже не знаю
No. 17600    
150967986424.png-(13.00KB, 306×373, monogame.png)
17600
>>17597
> Почему не попробовать Mono
я думал, что monogame как-то тесно связан с xamarin, но видимо это совсем не так. список поддерживаемых платформ на их сайте впечатляет. пока забью пока на ксамарин и посмотрю, что можно сделать с этим фреймворком
No. 17601    
150972515096.jpg-(301.66KB, 1280×1723, 2739452345.jpg)
17601
>>17600
Если будешь пробовать mono, то посмотри, пожалуйста, сколько весят сопутствующие dll-ки, которые необходимы для запуска простейшего хелоуворлда. Интересно, насколько этот фреймворк будет оверкилом для моего приложения.
No. 17602    
>>17601
Вернее не mono, а именно monogame.
No. 17604    
Решил начать изучать Ruby по этой инструкции (http://blog.topolyan.com/как-стать-успешным-программистом/). Последовательность понятна, но как лучше с самим изучением?

Есть ли какие-то годные курсы, или лучше все делать самостоятельно? Обязательно ли знать английский, и насколько хорошо?
No. 17606    
150973847964.png-(121.52KB, 793×728, 2017-11-03_21-37-56.png)
17606
>>17601
ну, лично я загрузил себе дополнение для вижуал студии http://www.monogame.rocks/releases/v3.6/MonoGameSetup.exe, который добавляет шаблоны для monogame приложений под разные платформы. так вот, после создания моногейм-приложения для виндовс и его запуска папка бин/дебаг выглядит как на картинке (можешь посмотреть размеры)
No. 17607    
>>17604
Ruby довольно специфический язык в плане рынка. Он популярен в США, особенно среди веб-проектов мелко-среднего уровня, которые делаются в связке Ruby on Rails. За пределами США популярность на рынке сильно ниже. Да и сам язык вроде не настолько бойко развивается чтобы ему простительно была не слишком большая популярность. Знание английского, кто бы тебе что не говорил, обязательно в IT. Можно конечно выкрутиться без него, но тогда ты точно будешь работать среди даунов для даунов.
No. 17608    
>>17607
Питон победил?
No. 17609    
150981182986.jpg-(149.99KB, 1366×768, 750987398563456.jpg)
17609
>>17606
Благодарю.
No. 17615    
>>17608
У Питона своя атмосфера.
No. 17617    
>>17615
Объясните, пожалуйста.
No. 17619    
>>17608
С точки зрения массовости? Несомненно
No. 17620    
я тут потихоньку смотрю туториалы и примеры по MonoGame фреймворку и мне стало интересно, есть ли какие-нибудь хорошие альтернативы c#? я так то погуглил, но, возможно, здесь есть люди которые имеют опыт с разработкой игр и могут подсказать на что действительно стоит обратить внимание
из требований: возможность создания игр для виндовс и андроид как минимум
No. 17621    
15101389339.png-(45.06KB, 918×1032, cpp_logo.png)
17621
>>17620
> есть ли какие-нибудь хорошие альтернативы c#
> возможность создания игр для виндовс и андроид
Пикрелейтед.
No. 17622    
>>17621
я имел в виду фреймворк на с#. с++ сложный
No. 17623    
151016250170.jpg-(58.14KB, 604×441, photo_2017-06-10_22-07-30.jpg)
17623
>>17620
Я уже достаточно давно работал с игровыми штуками для шарпов и мои знания могли устареть. Да и делал я не игры, а всякую хуйню интерактивную.

Был XNA. Неплохое начинание, но его похоронили к хуям, а жаль.

MonoGame. Насколько помню, эта штука выросла из порта XNA под линуксы. Я с ней замудохался обеспечивать распространение. Это вам не дотнет, где "На машине должен быть фреймворк", это линуксвей с сотней зависимостей и конфликтов. Потрахался и бросил. Я бы с ним не связывался даже сейчас. Да, наверное, он развивался, но травму он мне нанёс существенную.

https://waveengine.net/
Вот с этой елдой плотно работали.
Поддержка дрянь, развивалось медленно, баги, но хорошо встало в студию и было бесплатным. Бюджет у нас был на кофе и два доширака. Приходилось расковыривать закрытые сорцы и фиксить чужие ошибки. Было больно и костыльно.

https://unity3d.com/
У всех на слуху.
Немного игрался уже в свободное время. Вполне юзабельно и СОТНИ примеров/документаций/ответов. Если бы я начал игру делать, то взялся бы за юнити. Да, там ублюдский редактор и интеграции так себе. Зато он сейчас в тренде — сотни туториалов, документаций, вопросов-ответов. Ну и студии нанимают людей, которые знают юнити. А ещё кроссплатформенность.

Есть был https://xenko.com/ но он был сырой и дорогой, как промежность школьницы. Сходи с ним на разведку, потом расскажешь.

> на что действительно стоит обратить внимание
С помощью движка ты должен быстро делать игру, а не мудохаться с движком, пытаясь понять, почему на пустой сцене у тебя 2 ФПС, куда потекла память и почему при сложении векторов у тебя NotImplementedException.
Что-то отлаженное и популярное типа юнити отлично подойдёт — долго в продакшене, есть сотни туториалов, справочников, документаций. Бери и делай.
No. 17624    
>>17622
Ни разу не сложный. Ты просто не распробовал!
No. 17627    
>>17620
Юнети, как уже сказали. Можно даже не сярпом, а мышкой всё погромировать.
No. 17630    
151019817059.jpg-(51.04KB, 1280×720, maxresdefault.jpg)
17630
>>17623
спасибо за большой ответ!
> Что-то отлаженное и популярное типа юнити отлично подойдёт
отлично, его и попробую. только мне очень важно, чтобы к юнити-проекту можно было присобачить entity framework и подключаться к базе данных mssql. в нем ведь можно это сделать, да? достаточно загрузить нагет пакет entity framework через студию и можно будет использовать его в юнити-игре?

>>17624
> Ты просто не распробовал
наверно. я только основы изучал и консольные приложения на плюсах делал. сишарп мне понравился тем, что при создании какого-нибудь проекта подключается куча библиотек, которые все за тебя делают. ну и еще синтаксис попроще и удобнее

кстати, наткнулся на ютубе на серию видео-уроков по разработке платформера на моногейме, так в нем парень свыше 50 роликов делает платформер, который можно сделать в гейммейкере за час. я так понял, что моногейм предназначен для тех, кто хочет разработать собственный движок для своей игры и компоненты для удобства ее разработки, а это очень долго и сложно но можно попробовать делать на нем какой-нибудь хобби-проект, если заняться больше особо нечем
наверно, для меня будет лучше, если можно будет мышкой потыкать и все само сделается, как сказал >>17627
No. 17631    
>>17621
А как на C++ под андроид? Когда тред создашь?
No. 17633    
>>17631
Есть NDK, есть Qt и SDL. Я ни разу ещё не пробовал, но можно и даже есть гайды.
А что мне в треде писать-то?
No. 17634    
>>17633
Я пробовал. И мой калькулятор даже запустился с 10-го раза. Я порадовался, удалил и взялся за Unity.
Игрушки на Qt для Андроид - это для тех, кто хочет все сначала и до конца сам делать. Ну или у тебя уже есть какие-то наработки в виде библиотек.
No. 17635    
>>17634
> это для тех, кто хочет все сначала и до конца сам делать
Ну... в этом и смысл!
No. 17636    
>>17630
> присобачить entity framework и подключаться к базе данных mssql
Мать моя легаси, а зачем? Понятия не имею, есть ли такая интеграция. А если есть, то на кроссплатформенность можно не рассчитывать (хотя, если туда .net core встраивается, то вот на линуксах можно, теоретически).

Я бы предложил тебе WebApi для работы с бд.
Клиент (игорь) лезет на сервис, дёргает методы, получает от базы всякое, и всё прекрасно, и в три звена. А два звена это дырка в безопасности и в боевом будущем будет больно.
No. 17637    
>>17635
Ну, есть два подхода: "всё и с нуля" и "нам нужен продукт".
В первом случае это энтузиазм, исследование неизвестного, приобретение опыта и маленький шанс получить в итоге готовый продукт.
No. 17638    
>>17630
> моногейм предназначен для тех, кто хочет разработать собственный движок для своей игры и компоненты для удобства ее разработки
Ну, sort of. Недодвижок, переобёртка над графическими api.
Кое-что позволяет сделать проще, для всего остального надо разрабатывать анус.
No. 17639    
>>17636
> Я бы предложил тебе WebApi для работы с бд
То есть мне придется создать отдельное asp.net webapi приложение, захостить его где-нибудь на azure хочу и получать данные обращаясь к строке вида xxx.com/api/xxx/getxxxbyxxx ? Если это так, то выглядит как-то небезопасно, ведь кто угодно может гетить и путить туда что захочет. Как с таким справиться?
No. 17640    
151027597753.png-(178.54KB, 1247×688, ConceptualArchitecture.png)
17640
>>17636
> Мать моя легаси, а зачем?
кстати, не совсем понял, почему ты так удивился. разве так делать плохо? загрузить в отдельной либе ентити фреймворк, аккуратненько прописать все эти энтити-классы, то-сё, добавить эту либу к приложению клиента и обращаться с него в базу когда нужно. ну и получается вроде как все безопасно и просто-понятно. если это плохо, то напиши как нужно хорошо, пожалуйста

еще когда в ксамарине ковырялся, то заметил пикрелейтед. то есть дата лэер с этим всем добром, как я выше написал
No. 17641    
>>17639
Авторизация @ Аутентификация
А кто угодно упрётся в требование логина @ пароля.

>>17640
Ну, прямой доступ к удалённой БД это всегда опасно. Они дают слишком много информации — противник будет знать о БД, её типе, её структуре и всё такое.
Я понимаю, когда БД локальная, но вот удалённая...

Приложения с такими штуками не проходят ревью у безопасников.
No. 17643    
>>17641
> Авторизация @ Аутентификация
предлагаешь в виде параметров передавать логин и пароль? а это по-взрослому? просто как-то не видел раньше чтоб так делали
> противник будет знать о БД, её типе, её структуре и всё такое
расскажи, пожалуйста, как они это могут сделать. типа через декомпиляторы всякие exe вскрыть?
No. 17644    
>>17643
> предлагаешь в виде параметров передавать логин и пароль? а это по-взрослому? просто как-то не видел раньше чтоб так делали
Не-не-не.
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/
Вот, посмотри. Да, логин и пароль будут доступны/смогут вытащить, но доступа к базе не получат, а реквесты от клиентов ты обрабатываешь на сервере и хуйню сможешь обнаружить. И отреагировать на неё.

>расскажи, пожалуйста, как они это могут сделать. типа через декомпиляторы всякие exe вскрыть?
Например. Возьми вот эту замечательную тулзу https://www.jetbrains.com/decompiler/ скорми ей любую свою приложуху на дотнете и ахуей от того, что всё лежит на ладони
No. 17645    
>>17644
> Вот, посмотри
спасибо, почитаю
> скорми ей любую свою приложуху на дотнете и ахуей от того, что всё лежит на ладони
да, помню, я делал подобное, только какой-то другой программой. прикольно было посмотреть

мне еще интересно вот что: скажем, пользователь хочет загрузить уровень из таблички level базы данных, отправляет с клиента запрос к вебапи, все проходит отлично и ему возвращаются дынные... но в каком виде ему отправить уровень? по идее было бы удобно отправить объект ентити фреймворка таблички level, оно вроде как придет в виде джейсона так ведь? и можно потом его распарсить и превратить в объект класса level клиента, который идентичен классу ентити фреймворка. так стоит делать или как-то по-другому? я просто с вебапи плохо знаком, мб что-то не правильно сделаю
No. 17646    
>>17644
> https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/
я тут просмотрел варианты аутентификации и они вроде как требуют браузер в качестве клиента если я правильно понял, а у меня ведь клиентом выступает обычное c# приложение для десктопа/смартфонов. какой способ аутентификации стои выбрать в таком случае? лично я знаком с Forms Authentication, но она кажется в куки хранит информацию о пользователе, то есть такое только для сайтов подходит
No. 17651    
>>17645
> но в каком виде ему отправить уровень?
В красивом варианте клиент ничего не знает про сервер, а сервер про клиент. Клиент просит уровень у магического адреса, сервер берёт сотню таблиц, настроек, путей, считает всякую срань и схуячивает результат работы в объект. Который отправляется куда-то виде xml, json или любой другой извращённой фигни.

Клиент получает эту портянку, разгребает её и рисует всякое.

>>17646
Да куки,
https://ideone.com/aKaCnU
Вот, вырвал из рабочего проекта ошмёток. Используем http://restsharp.org/ для работы с апи.

В двух словах:
Пока _client не .Dispose() то всё будет норм. Перед (например) Ping() надо только сделать Authentification().

Но мне кажется мы уходим в дебри. Для начала бы попробовал примитивную игру сделать про увлекательные приключёния злоебучего прямоугольника в мире психоделической хуйни и ТЕСТОВАЯ ТЕКСТУРА.

А уже потом клиент-сервера, webapi, базы данных, латенси, кеширование, актуализация, шифрование, защита, анализ и прочие увлекательные анальные утехи.
No. 17656    
>>17651
> красивом варианте клиент ничего не знает про сервер, а сервер про клиент
> Клиент получает эту портянку, разгребает её и рисует всякое.
но можно ведь для удобства создать классы на клиенте, чтобы удобнее было разгребать данные с сервера?

> Вот, вырвал из рабочего проекта ошмёток
не совсем понял метод Authentification. ты ведь хочешь здесь просто залогинить юзера, так? чому урл реквест такой длинный "Authentification/{login}/{protocolVersion}/{userId}/{pushToken}"? это, наверно, особенности твоего проекта, да? а мне можно будет сделать вот так, например: Authentification/?login=xxx&password=xxx ? и еще эта тема с куки непонятная response.Cookies. ты, получается, на сервере в ответ записываешь куки данные и отправляешь клиенту? что ты там хранишь и как используешь? на сервере хранится инфа о том, что какой-то юзер залогинен? аттрибут [Authorize] работает?

> Но мне кажется мы уходим в дебри.
лол мне тоже. уже не помню, почему начал спрашивать про вебапи. помню только что просил посоветовать игровой движок.
No. 17657    
>>17656
> но можно ведь для удобства создать классы на клиенте, чтобы удобнее было разгребать данные с сервера?
Ну, дык.

> не совсем понял метод Authentification.
Логинюсь по логину, ид и токену. Получают ответ от сервера и записываю его в кукисы.

> чому урл реквест такой длинный
> наверно, особенности твоего проекта
В точку. У нас есть правила оформления апишек.

> на сервере в ответ
В общих чертах так, но очень многое решеное искаробочными средствами. К сожалению серверсайд показать не могу секретность и каша из сотен классов

> аттрибут [Authorize] работает
Да.

> посоветовать игровой движок.
Пока играйся с юнити, а базы данных, вебапи и прочий БДСМ отложи на потом. Может тебе юнити не подойдёт.
No. 17661    
чтобы не потерять

80% из топ-10 университетов США (в том числе MIT) для обучения студентов программированию используют Python.
http://blog.stacksocial.com/popular-coding-language/

Начать изучение Python рекомендую с вот этих материалов:

Google Python Class (основы Python за 2 дня):
  • видео-ролики на ютубе (у всех роликов есть субтитры на английском)
https://youtube.com/watch?v=tKTZoB2Vjuk
  • текст лекций и файлы примеров
https://developers.google.com/edu/python/set-up

Сильные выступления Титанов:
  • Transforming Code into Beautiful Idiomatic Python
https://www.youtube.com/watch?v=OSGv2VnC0go
  • The Clean Architecture in Python
https://www.youtube.com/watch?v=DJtef410XaM
  • и всё что понравится из этого списка
https://github.com/s16h/py-must-watch
No. 17668    
151077580852.jpg-(61.40KB, 574×606, 29807.jpg)
17668
>>17661
Я хотел подтянуть питон, но что-то слишком много всего.
No. 17678    
151079964672.png-(23.20KB, 420×450, jpg_vs_png2.png)
17678
>>17668
No. 17679    
>>17678

http://abstrusegoose.com/206
No. 17685    
>>17678
>>17679
А я люблю обмазываться артефактами и сжимать.
No. 17726    
151092884662.png-(41.25KB, 916×653, 2017-11-17_16-20-11.png)
17726
как в андроид студии создать приложение для более старых версий андроид? загрузить более старую версию андроид студии?
No. 17735    
>>17726
1. Какая конкретная версия SDK интересует?
2. В SDK Manager есть возможность докачать SDK, который ты хочешь?

Здесь показывают как это делается, включая запуск эмулятора хотя человек в основном ради эмулятора там всё и делает
https://stackoverflow.com/a/29989445
No. 17737    
151095191965.png-(79.34KB, 1038×701, 2017-11-17_22-28-54.png)
17737
>>17735
> 1. Какая конкретная версия SDK интересует?
> 2. В SDK Manager есть возможность докачать SDK, который ты хочешь?
пикрелейтед. скачал 2 нужные версии, но в списке, который изображен в прошлом посте, эти версии не появляются чомусь.
даже перезапустил эту программу в надежде что появятся нужные, но их нету. только android 4.0 и выше

может, я что-то не то нажимаю?..
No. 17738    
151096570944.png-(230.92KB, 682×250, с.png)
17738
キタ━━━(゚∀゚)━━━!!
No. 17740    
>>17737
Все ты верно нажимаешь, просто Google это разработчик пидор-пидор, разработчик-мразь, у которого 1000 и 1 подобных кривостей и бардака в тулзах.

Тебе необходимо:
  • создать проект с минимально доступной в списке версией API;
  • дождаться чтобы все файлы создались;
  • зайти в папку с проектом;
  • найти файл build.gradle (внутри папки app, а не в корневой папке самого проекта);
  • отредактировать параметры связаные sdk (типа targetSdkVersion, minSdkVersion и т.д.);

No. 17757    
151103336166.png-(131.62KB, 1366×768, 2017-11-18_21-17-09.png)
17757
>>17740
вроде сделал, но в итоге получил тысячи ошибок. видимо, гиблое это дело - разрабатывать для старых версий андроида. мб просто загружу более старую версию этой студии или куплю новый смартфон если захочу серьезно этим заняться думал поиграться, но как-то не вышло
No. 17758    
151103402696.png-(41.96KB, 1324×241, 2017-11-18_21-32-01.png)
17758
>>17740
>>17757
хотя, знаешь, возможно, получиось бы запустить так, как ты написал, если бы я создал приложение с версией андроида 4.0, то есть минимальной в списке. но проблема вот в чем: после создания такого приложение оно не билдится, потому что не может найти нужные файлы из-за кириллицы в пути. пофиксить это так просто не получится, так ведь?

в прошлый раз я менял значения в грейдл на приложении для чуть ли не последней версии андроид
No. 17760    
>>17758
Проще убрать кириллицу из путей.
No. 17763    
>>17760
но как? это вроде как имя папки пользователя. я гуглил как ее изменить и находил только какие-то костыльные подозрительные способы, от которых у людей потом проблемы с компьютером появляются. не хотеть такого
No. 17764    
>>17763
Я бы посоветовал для начала тупо создать еще одного пользователя в Windows, имя которого будет набрано латиницей, залогиниться в того пользователя и попробовать провернуть все там. Так мы для начала будет знать проблема со сборкой в пути кириллическом или нет. Т.е. перед тем как кидаться чинить надо знать что чинить.
No. 17765    
>>17763
У тебя кириллица в пути из-за имени пользователя. Ты не знаешь, в этом ли конкретно проблема, но есть два способа обойти это:

1. Создать юзера с именем латиницей Semen, и попробовать это всё проделать из-под него. Это поможет узнать, проблема в пути, или нет.

2. Если да, просто сказать gradle чтобы он жил не в папке C:\Users\Семён\.gradle а где-то типа C:\Dev\gradle
No. 17766    
>>17763
Простите, это был скорее совет на будущее, потому что типичная проблема при разработке.
No. 17767    
151105009210.png-(41.96KB, 1324×241, 151103402696.png)
17767
>>17765
> 1. Создать юзера с именем латиницей Semen, и попробовать это всё проделать из-под него. Это поможет узнать, проблема в пути, или нет.
сделал так, но из под этого юзера андроид студия сдк не видит, хотя я ей путь указал... ну и я уверен, что проблема именно в том, что юзер на кириллице, на скриншоте ведь выводятся ошибки с путем, где юзер - это ?????
> 2. Если да, просто сказать gradle чтобы он жил не в папке C:\Users\Семён\.gradle а где-то типа C:\Dev\gradle
можешь описать, как это сделать? просто перетащить в другую папку ведь, наверное, не получится - нужно будет еще где-то указать, что грейдл в другом месте теперь
No. 17768    
>>17767
На счет другого юзера, я не уверен насколько андроид студия гейская, возможно её имеет смысла установить тупо заново под новый юзером и уже потом пробовать
No. 17772    
>>17767
>на скриншоте ведь выводятся ошибки с путем, где юзер - это ?????
К сожалению, это может значить еще и то, что консоль просто не умеет в юникод.
No. 17804    
>>17772
сама ошибка выглядит как "[путь]: file not found". но я переходил по тому пути вместо ????? - имя пользователя и видел те самые файлы, которые были в этих ошибках file not found...
No. 17811    
>>17767
>можешь описать, как это сделать? просто перетащить в другую папку ведь, наверное, не получится - нужно будет еще где-то указать, что грейдл в другом месте теперь

Пишут, что это можно прямо в меню настроек сделать:
https://stackoverflow.com/a/44763760
кстати, спрашивает человек с такой же проблемой в юзернейме
No. 17815    
15111325614.png-(55.00KB, 687×679, 2017-11-20_00-30-35.png)
17815
>>17811
вроде все сделал как описали, но оно все равно ищет там где путь битый. еще там было написано про GRADLE_USER_HOME, это какая-то системная переменная? если да, то это странно, потому что у меня ее нету. мб для того чтоб все работало нужно ее где-то найти и там путь изменить?

кроме того, я тыкал в чекбокс "оффлайн ворк" и самостоятельно указывал "грейдл хоум" (C:\Program Files\Android\Android Studio\gradle\gradle-4.1), но ничего не изменилось
No. 17818    
Попробуй на чистой системе (виртуальной машине).
No. 17821    
>>17815
>вроде все сделал как описали, но оно все равно ищет там где путь битый
Посмотри в local.properties в корне проекта, есть ли "битые" пути там.
>In the local.properties file in the root of the project, change the sdk.dir value.
Дополнительно - можно попробовать создать новый проект и посмотреть, будет ли он тоже искать не там, где указано в настройках.

>GRADLE_USER_HOME, это какая-то системная переменная
Системная или пользовательская переменная среды. Если нет, то её можно попробовать установить.
No. 17827    
>>17815
А еще я вижу прямо на твоем скриншоте:
>USE LOCAL GRADLE DISTRIBUTION
С просьбой указать папку где он лежит.
No. 17834    
151119586162.jpg-(143.02KB, 400×400, f1gJZ31122g.jpg)
17834
>>17631
Вопрос про тред остаётся в силе. Могу туда постить, например, всякую фигню, которую тестирую. Надо такое?
No. 17842    
>>17821
> Посмотри в local.properties в корне проекта, есть ли "битые" пути там.
sdk.dir=C\:\\Android\\SDK только есть
> Дополнительно - можно попробовать создать новый проект и посмотреть, будет ли он тоже искать не там, где указано в настройках.
пробовал, все то же самое
> Системная или пользовательская переменная среды. Если нет, то её можно попробовать установить.
создал и системную и пользовательскую - не помогло
>>17827
и это пробовал...

странно, что он продолжает брать этот старый путь. может, оно где-то в реестре прописано или еще где?
просмотрел файлы этого грейдла и в файле gradle-wrapper.properties увидел такое:
#Mon Nov 20 21:13:13 EET 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

это может что-то значить?
No. 17844    
>>17842
А что тебе выведет команда
echo %GRADLE_USER_HOME%

в cmd?
No. 17845    
>>17834
Давай.
No. 17846    
>>17844
C:\Android\.gradle
No. 17847    
>>17846
А попытка лезть в старую папку происходит и в свежих проектах тоже?
No. 17848    
>>17847
угу...
No. 17849    
151125808929.png-(409.40KB, 480×750, 1510105631030.png)
17849
Есть один большой страшнокод на питоне, но мой проф говорит что ему больно на него смотреть и надо что-то сделать. Заверните мне, пожалуйста, одного достаточно доброго ычаньку, чтобы он в личечке kissme@waifu.club помог мне разобраться как переписать правильно и красиво.
No. 17850    
>>17849
Может, сюда?
No. 17851    
>>17850
Я стесняюсь же.
No. 17855    
>>17849
Предлагаю переписать на сишке. Профессору понравится.
No. 17856    
>>17855
Да, я планирую переписать на https://pjreddie.com/darknet , но позже.
No. 17857    
>>17851
А я стесняюсь писать тебе на почту.
No. 17858    
>>17857
Ты можешь оставить свою почту и я разобью лед прислав картинку с миленькой девочкой.
No. 17860    
>>17858
Это смущает ещё больше. Да и в питоне не силён. На нём сложно писать нормально.
No. 17887    
>>17848
>>17847
Оказывается, это даже вполне официально признанный баг:
https://stackoverflow.com/q/22956385
https://issues.gradle.org/browse/GRADLE-2414

>Tooling api uses the gradleUserHome dir by passing it via the start parameters to the build. However, it is not used for the getting the distro. Please submit a ticket & pull request

>Waiting for review and possibly can get into 1.11.

Какая там у тебя версия?
No. 17889    
>>17887
> Какая там у тебя версия?
а где это смотреть? у меня этот грейдл вместе с андроид студией поставился
No. 17891    
>>17889
>а где это смотреть?
https://stackoverflow.com/a/30055088
No. 17892    
151153534418.jpg-(98.28KB, 700×694, 000001-qwgj6xytxe.jpg)
17892
Учусь работать с USB камерой.
Научился находить нужное устройство, научился строить графы DirectShow и выводить живую картинку на экран.
Теперь нужно отзеркалить картинку на экране вертикально, но не знаю как - сама камера это делать не умеет.
Курю MSDN про фильтры, DMO и MFT, но это, похоже, надолго.
Где-бы взять готовый пример, от которого можно плясать?
No. 17894    
>>17892
>Где-бы взять готовый пример, от которого можно плясать?
Как насчет гитхаба?
https://github.com/KunYi/RotateFilter
No. 17895    
>>17892
Можно не писать фильтр, а рендерить в Direct2D, например, в render target, для которого задать желаемую матрицу преобразования координат. За счёт выполнения этого преобразования на видеокарте, возможно, будет меньше нагрузка на процессор. См. https://www.codeproject.com/Articles/152317/DirectShow-Filters-Development-Part-Video-Render
No. 17896    
>>17894
>>17895
Благодарю. Буду разбираться.
No. 17897    
>>17895
Похоже, это не работает под Windows XP.
А я надеялся получить совместимость и с ним.
No. 17898    
>>17891
пишет что 4.1
No. 17899    
я как-то делал сайт для браузера nintendo 3ds и в нем есть 1 большая для меня проблема: он не отображает украинские буквы, которых нету в русском языке і, ї, є
я решил написать скрипт, который бы менял их на буквы из других языков, которые выглядят точно так же. для "і" можно использовать английскую букву, для "ї" - французкую, а вот для "є" не знаю похожих альтернатив. может кто-то из вас знает?

вопрос, конечно, не очень подходящий для раздела, но он вроде как и касается разработки
в http://iichan.hk/tran/ не нашел подходящего треда, а свой создать стесняюсь
No. 17900    
>>17899
Звучит дико. Они же из одного юникота.
No. 17901    
>>17899
Может дело быть в том, что ты используешь стандартный шрифт 3дс, в котором нет нужных символов, и надо просто назначить другой?

Адсо, у нас здесь обитает автор сайта: http://3dsgallery.azurewebsites.net/ у которого на 3ds украинский нормально отображается. Может, он увидит это сообщение и подскажет.
No. 17902    
151157749813.jpg-(844.19KB, 2592×1944, DSC_0011.jpg)
17902
>>17900
ты это разработчикам нинтендо 3дс браузера скажи

>>17901
> Может дело быть в том, что ты используешь стандартный шрифт 3дс, в котором нет нужных символов, и надо просто назначить другой?
только что скачал украинский шрифт и подключил его в css, открыл в браузере компьютера - шрифт поменялся на этот новый, открыл в браузере 3дсочки - ничего не изменилось. насколько я понял, в этом браузере вообще шрифты подключать нельзя, здесь есть единый нинтендошрифт, который используется на всех страницах
> Адсо, у нас здесь обитает автор сайта: http://3dsgallery.azurewebsites.net/ у которого на 3ds украинский нормально отображается. Может, он увидит это сообщение и подскажет.
ну, я - это он, и у меня в браузере 3дс всегда укр символы отображались как прямоугольнички пикрелейтед

кстати, может кто рассказать, как лучше селекторы для jquery писать, чтобы поиск элементов происходил как можно быстрее? насколько я понимаю, если указать только класс элемента в селекторе, то жуквери будет проверять наличие такого класса у каждого хтмл элемента, а хотелось бы, чтобы он отсеивал какие-то ветки
No. 17907    
>>17899
Попробуй вот такой вариант эпсилона: "ϵ".
No. 17908    
>>17907
черт, не отображается, а ведь выглядит так хорошо

если не найдется еще альтернатива, то придется использовать букву похожую на отзеркаленную "з"
No. 17913    
>>17902
>ты это разработчикам нинтендо 3дс браузера скажи
Вроде как они используют Netfront Browser NX.
https://www.3dbrew.org/wiki/Internet_Browser

Ты можешь узнать, какая версия у тебя, попробовать добыть её на другую платформу для дебага, и узнать, кто виноват - Nintendo или ACCESS.
No. 17914    
>>17898
>пишет что 4.1
Тогда фикс для того бага уже давно должен присутствовать. Пока открыл FAQ про Gradle:
https://docs.gradle.org/current/userguide/userguide_single.html

>Note, «GRADLE_USER_HOME» defaults to «USER_HOME»/.gradle, where «USER_HOME» is the home directory of the current user. This location can be configured via the -g and --gradle-user-home command line switches, as well as by the GRADLE_USER_HOME environment variable and org.gradle.user.home JVM system property.

>This location can be configured via the -g and --gradle-user-home command line switches
Т.е. если это не твоя переменная, то это вот эти ключи.

Ну, или ты действительно неправильно указал системную переменную.

>GRADLE_USER_HOME
>Specifies the Gradle user home directory (which defaults to “USER_HOME/.gradle” if not set).
No. 17916    
151172100065.png-(7.56KB, 278×130, 111.png)
17916
Стив, покажи как питоне закодить метод Эйлера для пикрилейтед. a, b, k - положительные константы которые вводятся при запуске. Проблема с самим переводом математики в код, питоном владею (можно даже показать как это будет на няшной сишке, псевдокоде, лолях или чем-то другом).
No. 17917    
>>17916
https://ru.wikipedia.org/wiki/Метод_Эйлера#Реализации_на_языках_программирования
Только в func засовываешь свою dx/dt (там обозначения dy/dx соответственно) и выносишь a, b, k в параметры.
No. 17921    
>>17917
Моя dx/dt это return a - b math.cos ((math.pi y) / 12) - k * x?
Я не очень умный.
No. 17922    
>>17921
y и x поменяй местами.
No. 17923    
>>17916
И начальные условия (x0, y0) у тебя будут (0, 0) вместо (1, 1) из примера.
No. 17924    
151173475325.png-(12.39KB, 549×429, 1.png)
17924
>>17922
>>17923
Спасибо, няш, вроде все похоже на правду.
No. 17927    
Как же хочется начать что-то писать для себя...
No. 17928    
>>17927
Хочешь написать для меня? Я буду о тебе заботиться и держать за ручку, а писать мне много разного-интересного на портфолио машоба.
No. 17929    
>>17928
Только после блокчейна.
No. 17930    
>>17929
Мне блокчейн тоже нужен.
No. 17959    
Доброй ночи товарищи, по институтским нуждам приходится изучать zmq, однако, я встал на этапе установки. Собственно, саму либу я вроде как на свою ось (OS: Manjaro 17.0.5 Gellivara) поставил, однако, при попытке получить исполняемый файл программы получаю в лицо вывод... https://hastebin.com/wayuniqemi.coffeescript
Подскажите, что я мог или делаю не так...
No. 17961    
>>17959
Не видит некую libsodium же. Найди, где она у тебя лежит, укажи путь ключом -L и саму либу через -l, если будет надо.
No. 17977    
151216141296.png-(56.06KB, 1086×693, .png)
17977
Ребят, шатаю вичан и вот тут у меня возник вопрос на пикрелейтед. Я правильно понял, что это регулярные выражение? Как с ними работать? Может кто-то более детальнее объяснить? Смотрел по гуглу разные сайты, но там криво написано.
No. 17978    
Одна девочка взяла, и...

`
<?php
/
Obfuscation provided by FOPO - Free Online PHP Obfuscator: http://www.fopo.com.ar/
This code was created on Friday, December 1st, 2017 at 21:11 UTC from IP 89.250.167.48
Checksum: cf7a01eeaa4316fab5ac2312590ffec43a3b7424
/
$ic47ba73="\x62\x61\x73\145\66\x34\137\144\145\x63\x6f\x64\x65";@eval($ic47ba73(
"Ly9OT1RON2E4Ti9ma1h1NGoxQkNoNUFaOUExVEVPUGx0VEcwLzZQRE1kMWNoYWk1ejVWam96Tlg3YnF
JUHNZL3owSnVNMkRoQlBDaThkZXFlNS9BUlY2TXIzSVlaN0h5VTdZalRXeEkzTFFCS1BXaHlyMUw1N1Z
TOE9Bazg0cTVnMEhzaTJzQXEvMzR1TnBQYjdoUTJ4dytFOGlhTFV3QXIydWNPK2lSYXpOeDZrWXR2Z2J
OQ1h4N1h5YjIwM2xnU0NMK0V4Rm1VWmdpZEZqZWhRMVZYelY3NXdJR2JFYzlkYjZqNm9EUmU2VGJjcmp
xTzhIMDVjWnhGcUhTV2ZycGZTRVZkMVRGQUFGSGpwQmd5RGVnNUVYV2dWc0IzSUZXb1h6Q3M2TGlEMEd
rM2tKQnZwT09wVEd2cTY3TGh5bnVDdzhmb3ZoQ1JMYVNXSjhTUFFKeWdxc2RwN3kxZ0JzbXhaeXVjaUF
WRkpiRzRKSzU3TUV4Y1RQaXJUZGlsckRacjE0TDhyd0lUR3RGYjQ0blRBVm1RMDhDaWlwS1J5WnRmZ0d
lMUVNWEk1RENhTDZtM016cWhiUTNlQXA1RmZyU3RuT3k5YW5yb2luWlo0WlRoRXVwS0pIaEdTMXVOT3k
3eVpVaHVQTmJROHlhdjJJOGFGVnNXMHQxNk44Qm5CR2E3c3VqaGczemN6VEVSbUFvbGgyM20vTHp5dkU
zOGpCNWFidFZuZkdLYUM2NXQzclVWdmJ0cmNKR3hwMDc0RXM1eHJpSDdlZU83TXRESEU2QXNFREk0c3h
SUWo4V05FNHdxdE1HeVpWZjFaVlJXdzNJMlBsOUVrQ1FnTDBjL1NUTW1KRktUVVU1dU9tbWRhRDQ4dDB
GdlRpOG1Falc0WlJ5TUxLRFFQZHJLSCtWYm9hYmVsVTErZjNMeXhMa1JJZ3dROFBvbUFydkhlejhOQnM
2ZitSejJRVll1QkZteURDcEZCd2Q5ZktDN1RQbldCdUVyZmlkMVBkblVsY1lvdkl0ZENyR0FQQm85Njd
mRDVvbENVNzRreUV0ekk2LzNWS1JpNTF3ME9La0dGcWhBbG9BQVp1N1FwNnQzYkVsZ1BoR1k4eDluMXA
3VFRuK3JmNXdmQlJ6SmFPUTVOR2dFVk93bWxUUUF5aWlXU1JIekJlZ0dEUjZnVlNFWG4xZms3SDhURXh
SeFB0cC91b09oRXk1cnNkYm9VaHJ0RzZudm10cUFpeGh3akJreFRUVnpuZmFHY0xEaWczYWx4RzhsNFB
JckJUbzA0ODFROUpRVHlwS2Y4UzErMDhhbEdNUE9Ydld1L1VBak1GbFk1ZVh6bTRuWTlnUWx3dzRIMUI
2RlRMSXNka0tEN1JjdkxYUXB5WGVvRGlxZnV0d2JJSmU4ek9yR05uR2tGMGFtYXhXWURtVXowMWNGNmc
1c01FNkIrMzJDUmtmdmVuRUpVZk5WVUJha2FNUXdjYWVlcXZlVEtuNzhvUXM0NnpNNDVaZjdQZ24rOWI
0MmJqM1VyTnpVaWNDNGovd255andrWk1aTE9zeEs1SkhMbVZKdmExNU92ekJDSDR3ZThFaFl1dE9TSWx
0UHlFUVJuVGtRVVkrZFhHQUcxdEF5YjBha05XRXhwcFZjS0pyYVhpQ0ZHejF5U1llNVlwSFIwWHdDSTJ
sazUzcnphQ3JtS2EzTTJXUVhYdG42UmcxbXFUdUxkL0k3TlRpWmZ2V0ZqazhDMExyc1R3V09pR2J4MTQ
xQ1FhMURWWU5ZK2tQaW1ZRStySnhzZU0yUnpsOFFPaER1YkVXa1VPSnlYSUljR2N6ZnZRQ05VMHZhK09
KVjVvWXN0MWI4bXBUc04vWTgyTmdJSHlxZkNldkFzZFZDZlZ1QnVSazRqVUFRMTNIYXFwNzREdzZtTi9
vYStkOWFYQzNMUERXUkJheGYwM1hzNGFuZzNtZFR5MXptemJjYk5RZG83d1RNTDNSdnRUMTJpYzlpTTd
mYXU1ek8vTUdXdFhXZmdaVDRqTXFsd1BMWUVzQlBOK09LYy80U3FKdGt5VXFnK25wMy9xM282L2haSUl
BUHZCQnVhdEdsUnNOTGtTUzZNQUVCdzl1MFRXa3lGM1F4em5uOGhsbTQ5Y2lyV2U0WFB3RWo5bTNEVlV
aT0hlTXVzWmM1Qk8yUi9BcDlZSmxKQ0xtaW5SN1BueTVNQkh6YnBhSjM2Z21YcklOMlNuVjlvMURNMER
2dCs1ZjFxdndGT1gvNmZMcUxXd3pSb3ptMWVQb3QxMG81MHNVeXlXQzhnVmRLdlhPcTV0bEc1Y3VkU0p
BNk9JY2FNeHRmOGJDck1kYkFpTGxBd1Q4U2ptR3hUVDJ5U2dWZnhQSCtPVng3Qi9BWGdTbVBZU0FjaGJ
xQWt2VjRGTXgwaEh3TW5iWEdEYVFiOHk2MHhqcHRUYmxLWU83aktRNFg5YkZjSXFHSFA3b2d6WXB4RnY
0ajVzVFJqd1JzbTlydVF4QjR4cTBnb3NmV3hRRWMrREdHSS9RdnVPd0Q2SVRmUHVFWEVGUC9mM29hdzN
1d0MvVFZ0TitybDh3TmphMlNLS05RYzJKV0UxYXY5NkhDaFQxS21xNkN0T3ZjMmpBS1AxWHlBNHZndVh
abFRxR2tvZ0IrL2J6OUhGMjREWDdncTZkVU1lNVl0UXBYdnBSUmpRQkxEZWloQi9vZ1phTU94dXVEUDU
3V3JEeVVHbGxxL2Q1N3VtWTN0UitMQ2Ixdmw4NnZ4aWJhTGNCQVRjalZ1SkxHTXFodWZNUUw4U2dRUjR
JQ0RoZzFwdzh3UW1TdkhILy9Ec2pDSHhjNzFOVS9VTHZUQ3hOdnk1RVQ0Z2pEVE0wd3pocU5CeUxzenB
XVy91WXZseFg2dzYyaklDU25QbWtYNWxNQVlmdWdWR1NmTkl1Q0pobWlUSWNOeUFLVmtsNWR6UVgvcm1
qU2thUzRreDNXL0RzOURsd2hwNmNxQXpTMVI5RFYwOVZ4b05ISnZqbUs3cXZ2anU1L3I1SHdwemNsV25
hUUtjYjRzRUdZaldpSUR6L2MzUUZ3ZEJjdmp1TDVUMVdaVVNnZUJvc1ZZZzE2dzhKa2ZKYWxXcld0YXo
1eUd0VWI0U3VVV3ZOTklRN0xCN0ZROU1YZ2cyZllCWExwdW5VeFh0RExyOHpmZjVrZDlvMlNkUFFKQzI
3NVRqUmlNaENETUxXbjc3eHpRNG12amsvSWQ1M2k5cDNVRWFYZ2xsQkFYcGMwSmxkY2Q1b2lBSFdWZ1R
UYi8vY3BqaFN1L1NYeThrVDVlZjF1NjNmbGxJeXE5TE1tNkNzdTMrK28rcjh4OGxPb00rZVNSRk1PalN
xc2dkRDFpa2RLWjFBK0NyM0FUVy9iQ0ZFSUZGdWxOZ0tvTE0waEFqVXN5UW5PK2crMTc4NW9ibWdmcTl
4enRDMmpIaHV2SWk3UC95ZXdPZjFLeVJkV2o0WmdZSW8xMFJPdDlBcnZZdHpWS01SNDlvU2NLMS8zRlN
FZXNBV2c2cisvTlkrK1k3b0cwYlBuSUVSZXUzbW16K0RycEcxYWxDaDdVWExydlArZmVxWVFOaC9QUzJ
FOUZYYlVUZ0tiVTJKSE5hMVhGVUxTRVhnK2ZCZmM3MDdjcVlLczFRelcvd1AycTRlRFlpM3Y4RHJaU3V
uakZLbHZQT3hMeTBZdG1laXN3Ynh2VENVYmZpdmcxeEluNGRRNXlaLzlGL04zM015aUxFaTgyWUU2a3N
jWldGbGtPZVJkbjl3elM1QTd5QkYxM1JqS0pmWlVFZjJXV2dXRzREbnJyVHZnNzltUS85bU4wRG9rQkV
XN2RtRW1peEFHYjRUcFVERjVJUUxmVmx3cjF4QTEwUXRGTWNwb0s1aWZOR3lOcE5zQmhmaExFWjRSTFl
nZ1FNNm54WENoRnJuTmFOTVhoT0Z1QkZqaHdxMC9tRmdEbzhUQ1h1aWFwM2hXcGNyU0FqeWdsU3RXUFp
mUXUrRDNOaG9jSUtma0pBVkRObEFBaGltdGUwMU1LcGhpNVV0dThIa1BtNStBWmpJSkMwNzYwSUt0QmI
5RUZnVFVjMXNjaFE1cUUvRkNGVzg1amF5c0swMlBrTzdCUTdmamhqNUFISmxTSTMwOHBzYXhYSC9ERXV
NYTA2d1d2ZXM5MktkbGI3enZMMEdtREpVZWhHNFI5RVk5THVMZzVaUzdoTTBIRjU1ZDJubGRlQTlXUHl
SMWtZNC9ib3FVa3poTG5TdnpEMVNXeUtrRzhlM29oOXlTLzRHUW85TG11TzJLS0cydG5odVB4a3gwUVV
1M1dsNkt5YlYvbEVJVHpMOXExSU5ML09udmhVRUpyWE80Yjk0bExDTzZpT2VMVFZRMS9JUGVYU3pUMTF
hQVRMOUMzRUh2eUpwZHpTNCtvY0xnRjYvT2h4aEh5TTFPRlR0Y0JuK2xRRzVKWW93MDJsS3BXbmpYQjE
1bFdUNjNLVmsyOStOTnI3d0Jaa1dUem41VEx5MEUzT0JBYXFwUlNmS09IUWJtc0RRSGN1SnIxK0pqOXB
UbmdBZmFZYWJnNjhUUEpXWjZWMXVubXM5YjJJY3d5VjRGNEwzQ3FNNUVyTTlNWDUzT1phVE1zZW5jYnZ
OYUNMUExtU1JrT0xSTUlOcFVEbFozUENHbWliUFVWTUVpRHY3Ylg2a0JFZlV1bkJJbUl0SzBOd0l2Mk0
vUDlSWUVlNUhDWE1iOFFiSFlZSkdFMkticlpzZ2xkVTdnOE5UdGRFdngyREc5ckRHL3ZyN2hhc0tyQ0x
Kb1hxOWM1RWdJU3VHbkk4TVhwekRLaE9kVmNaY0hSaUtxV2I5QXI3WU43SGRyZzZkNjdScTJtQXNQcVp
ONy9uYkVFUU9BSXRBRDZINlp2a1l3STlIdll3SFovekJXZ1NxcFgwK203ZjVZcVE0aDVmRHh2VzBlZTF
RLy9FOTVvZDJLZnJBR0FXRDJsUGhFR0VSckJUZk9lV3NibWVHSFd3b0I0N2xkK3kwZkFTQ3RaR3VwSWZ
0OTR5aEVRUVFVT2ViS0RNNkQwU28wNlpldTM2ekJ5V1Fia3V1ajlHQ015T0hOeXBLRlM1R1ZFY1YxQ2s
vNnVyN1FOWmpOMFdlL29JTk1LczFXZlVFZ0w4d3lyMGFZWmhNM3FTY01LQWpKN1VqSEZrZUxma1dON3I
4Y09FSEx3L2d4cTU3R0xVekpHQUgxNTJpZDlPb2o1L2xKeEZEV0FLQStrd1V3RHdTSVJrUUM1cWV4NlZ
yVGpHU3hBUHpnV1ZFeTJ5N05RdDBkVWxSdWNwc1BNTm9kNHovQW1NeHJqbExyYWc4WGZaZS9VdFFmZkM
5UnRxVzVDMEZNbWFjT2V2cEFYN2FMU0pna1ROVERGbnBId3pEejlTUXRlL3ZTemxwOHlzblRKTWtYQVl
IcFJCOFdrR1NEdDZUSGloOGRKT2NaM0FDTHNtbEIzR0FwaS96THVwRGl1eTBVZ1NrOGk3MVkwdW9xTXB
YV3ZZTUV0TldGSXNQclA2QjV4Qkh2TG1XVDN4bHltMFBsY2VTQWxwT2RQZzdRV2lvL2dCaG56Vy94ZHJ
XT0QrQ2NhNjdTWTAwWFlQMXJZT0RzWkQ2YmtsOHVqbWJPTGd2ajFFNERxemFvdGZkS1lPZDNEQnJDWkl
relQyd1JWeE9oVE1uSkVublVBYzNXaFhLWXJGTUJXaTV6NGo1d3J4S1pEQUlQT3hzK200OGdKalB6a3V
qRDVxdzdzOHgycHlKdzhRS2kxMXJEa0lRcE5yY0VSUXV4TzdkZjUva2Y0NW1PZGNWNEZrTDd0STgrR1B
0b3NhM3BnczNuVHo1elNLVisxci9qK1JWWERSNWROZUZOM21sYlJwNVVnYnBBcWwrdVdpYkdQNGZDSnd
ydnZEVytkNGxqYWNtRWdDQlNrQ1RQNmJaa0NZRjk4NE50RW5jeFR3bFFxS1BUQThUM3V2Sm1TMm1lNUI
xRUVlRXh4Tm54SW5QMmlZN0ZidVVYWDZmZ3BkUDBlRjVXajFqUlJUczdCOGxSNTVrYVh0NlBZTmdHdEp
RU25CcDFWeXlyZFkreU5LWlZpb05DaVpLd3piZEZKWm9ybDRDbXRhQjhZUkFieEt4c09adHZYYXI4Z3h
pUE90eDBvRmJKU21MMEw4Tk9FOVhRcXVFVkVQNUZVSHk3SFF1cTJGcktDVytZV2lFckhUWVByRTlud00
1TFB5TTcwM0txeG1iVDZYbGlSSjBRM1NaQkRCVXJxVER3Q1JiSHd4V08vRnljWWRlQytOM2xCMzZuN0t
RSUxDVExCcXFpQlFJSWh3dkYzakRsMUIrOTk4ZXR3WVFiNGx0OVYzNm5DVWdtWGZGRXhPME53NExlMWd
`

No. 17979    
>>17977
Лучший ресурс по рекгексам с подсказками, примерами, и песочницей: https://regexr.com/

Я могу помочь тебе разобраться, но мне надо понять, что ты от этих регексов хочешь. Например, первый регекс - выкусыват всё, что находится между двумя наборами
'''
, и засовывает в группу за это скобки отвечают. Затем, эта группа берется по её индексу
$1
, вставляется в тег
<strong>
и в таком виде отдается.
No. 17981    
>>17979
Меня интересует например, как сделать так, чтобы можно было сделать например двойное цитирование ">>" и оно выделялось бы становилось ярко-зеленого цвета, ярче чем при одинарном. Все что мне удалось, это чтобы в строке только один символ менял цвет, а я хочу сделать чтобы вся строка меняла цвет.
No. 17984    
>>17981
Ну, я не претендую на то чтобы сделать лучший регекс на эту тему, но вот тебе варианты.

Двойное цитирование
/^>{2}(\w.*)/

Здесь оно смотрит, чтобы строка начиналась ^ с двух символов >, после которых должен сразу идти word-character, а потом хоть трава не расти, схватит всё до символа переноса.

Одинарное цитирование
/^>{1}(\w.*)/

Здесь оно смотрит, чтобы строка начиналась ^ с одного символа >, после которого должен сразу идти word-character, а потом хоть трава не расти, схватит всё до символа переноса.

Содержимое выкушенного будет в первой группе

Этот регекс ожидаемо не сработает, если цитирование будет где-то посредине строки. Если убрать, ^ то он станет это делать, но тогда надо будет поменять механизм, который вычисляет, двойное у тебя цитирование, или одинарное. Например так:

Всё цитирование
(>+)(\w.*)

Здесь в первой группе у тебя будет лежать > или >> в зависимости от того, какое цитирование, а во второй группе - захваченный текст до символа переноса.

Если применять эти регексы построчно, то особых флагов не нужно.
Если не построчно, а сразу на весь текст, то нужен мультлайн флаг.

Надеюсь, это поможет разобраться.
Также открой cheat-sheet и help на регексере, там всё расписано по токенам. Ну и теперь там оно твой регекс на ходу по компонентам разбивает и в окошке показывает, что делает каждый.
No. 17997    
151239025576.jpg-(97.35KB, 854×480, kobayashi.jpg)
17997
Аноним наконец-то перенес последние ссылки из прошлой нити в базу знаний: http://pastebin.com/AGhLZppH

Аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 18034    
>>17984
Как ты предложил, у меня получилась какая-то лабуда, красным становился толко один первый символ
Зато, когда поставил так, то заработало:
$config['markup'][] = array("/!(\w.*)/", "<span style=\"color: red\">\$1</span>");

No. 18035    
>>17984
Правда это работает только с латиницей. С кириллицей оно не хочет дружить.
No. 18036    
151265290136.png-(3.81MB, 1920×1080, Sakurasou no Pet na Kanojo - Rita breakdown.png)
18036
>>18035

Потому что в PHP согласно http://php.net/manual/en/regexp.reference.escape.php символы \w и \W зависят от локали, а локаль у тебя не содержит определения символов кириллицы как словесных, должно быть.

Надо действовать более надёжным способом вместо этого.

Прочти http://php.net/manual/en/regexp.reference.unicode.php и используй \p{L} и \P{L} (потребуется PHP 5.1.0 или новее).
No. 18037    
>>18034
>Как ты предложил, у меня получилась какая-то лабуда
Это очень странно. Решил проверить, зашел на https://regex101.com/, там по умолчанию включен движок для PHP регексов и то что я постил там работает.

>красным становился толко один первый символ
А какую группу ты заворачивал в тег?

>/(\w.*)/
Фигня это, оно возьмет первый word-chacracter, после этого один любой другой, и потом просто матчнет всё до конца строки.

>Правда это работает только с латиницей. С кириллицей оно не хочет дружить.
Потому что кириллица не входит в набор \w
Чтобы матчнуть кириллическое слово (исключая знаки препинания и пробелы, и прочее левое) тебе надо регекс типа
/([А-ц])+/

Чтобы таким же образом матчнуть кириллическое или латинское слово в смешанном тексте, тебе надо что-то типа
/([\wА-ц])+/


Тебе скорее всего надо не только кириллицу вбросить туда, но вообще найти какой-то unicode text range.
No. 18038    
>>18034
Кстати, а тебе надо вообще то \w ?
В коде из твоего примера никто word-characters не трогает, и это наверняка даже вредно, т.к. одни теги могут быть включены в другие.

Для примера с ! тебе надо что-то типа
/!(.+?)+/

Проверялось всё на том же https://regex101.com/
No. 18050    
Вопрос питонистам. Функция возвращает несколько значений. Как их привести к виду, например:
Величина 1: x
Величина 2: y
Распаковать кортеж? Можно пример?
No. 18053    
>Распаковать кортеж?
Можно. Еще один вариант, сделать промежуточную структуру / или класс (так называемый DTO) где хранить эти значения по именам, и сделать так, чтобы функция возвращала его.

>Можно пример?
Какой язык? Пример-то будет зависеть от языка.
Например на Scala он бы разыменовывался так.
val(x, y) = myXYReturningFunc()

No. 18054    
>>18053

> Какой язык?

Высыпайся. Ибо сказано было: «вопрос питонистам».
No. 18055    
>>18050
В 3м питоне это называется named tuples:
https://stackoverflow.com/a/2970722
No. 18058    
>>17834
Я всё ещё жду. Ты на QML?
No. 18059    
>>18058
Нет, на кой чёрт мне Qt?
Тред вот >>17934, но пишу для себя сейчас крайне мало, потому что сессия, следовательно, выкладывать нечего. Завтра попробую порыться и найти что-нибудь из старого тогда.
No. 18070    
Привет, я Девочка-Улыбнись, и ни черта не шарю. Поясните за программирование. Хорошо ли выбирать это в качестве профессии? Какие есть риски? Долго ли придется искать место работы?
No. 18073    
Доброй ночи Господа, накатал программку, аля p2p месснджер, ну потыкал ее на одном компьютере - работает, попытался запускать на разных - здесь все уже сложнее. Подозреваю, что проблема скрывается в неккоректно вводимых адресах компьютеров, или( и ) закрытых выбраных портах. Испоьзовался zeromq. Компьютер подключен к интернету через роутер. Листинг кода по ссылке. Спасибо.https://hastebin.com/abisucunul.cpp
No. 18074    
>>18073
> assept
Accept.
No. 18078    
>>18073
Не понятно, как ты здесь без мутексов собрался обойтись.
No. 18080    
>>18074
Со мной такое бывает.
>>18078
А вот с этого момента поподробнее. Код ведь впринципе работает впределах одного компьютера, почему не должен работать с двумя?
No. 18082    
>>18080
В каком смысле "поподробнее"? Ты пишешь в одно место, значит, могут случиться нехорошие вещи типа отправки пустого сообщения или рейс кондишн.
No. 18084    
>>18070
>Поясните за программирование. Хорошо ли выбирать это в качестве профессии?
Это зависит от личных предпочтений. Чтобы сформировать личные предпочтения, рекомендую посмотреть сферы приложения описанные в нашей базе знаний: http://pastebin.com/AGhLZppH

>Какие есть риски?
Не совсем понятно, что здесь имеется в виду.

>Долго ли придется искать место работы?
Зависит от места поиска, сферы приложения, выбранного языка и личных качеств. Т.к. получилась длинная паста, возможные варианты опишу постом ниже.
No. 18085    
>>18070
>>18084

Место работы можно искать:
  • Индивидуально, удаленно, на бирже типа Upwork. Там нужно будет пройти сертификацию по интересующему языку, а затем успешно бороться за заказы, повышая репутацию и заработок. Обычно так делают в поисках заказчика, с которым отношения можно строить вне биржи, на двухсторонней основе. Это обычная сдельная работа, деньги - услуги. Также биржи обычно предоставляют средства контроля и учета рабочего времени, но пользоваться ими, или нет - зависит от конкретного заказчика.
  • На зарубежном рынке, удаленно. Схоже с биржей, только ты целенаправленно нанимаешься контрактором в иностранную фирму. Здесь надо будет стандартно пройти собеседование и пообщаться с несколькими людьми, включая человека который тебя будет брать на проект и CTO главу техотдела, иногда еще CEO директор. Условия в контракте зависят от личных способностей и страны расположения фирмы, но обычно у контракторов почасовая ставка, оговорено количество часов с +/- в каждую сторону, и отсутствуют социалка и оплачиваемые выходные/праздники/отпуска. Но это часто перекрывается оплатой труда в целом.
  • На местном рынке, для аутсорсинга. Схоже с предыдущим вариантом, но здесь отношения с иностранной фирмой или фирмами уже построили за тебя другие люди. Они могут работать с этой фирмой целенаправленно например, люди ранее работали на бирже, а теперь подписали договор с относительно крупным заказчиком и расширяются или просто подбирать и предлагать сотрудников всем интересующимся, выступая в качестве рекрутинговой компании т.н. галеры Если фирма целенаправленно аутсорсит, то тебе придётся пройти обычный раунд собеседований в местную фирму, со всеми особенностями, иногда получить одобрение своей кандидатуры от зарубежных партнеров, а потом просто работать по правилам фирмы. Если же фирма работает как рекрутинговое агентство, тебе дополнительно придётся проходить собеседования к потенциальным заказчикам как только они появятся. Поиском заказчиков и подходящей для тебя работы, а также сватовством и рекомендациями обычно в таких фирмах занимается свой отдел, также они часто готовят огромные вопросники-ответники для прохождения собеседований. Так что для тебя это будет выглядеть как череда интервью с последующим переходом к работе, если все пройдет хорошо. Обычно рекрутинговые фирмы оплачивают человеку две недели или месяц сидения без дела, и если он за этот срок никуда не "продался", его увольняют т.к. принцип заработка у рекрутинговой фирмы - разница между зарплатой по которой тебя "продали" заказчику и твоей фактической зарплатой
Рекрутинговая аутсорс контора - наверное дин из самых популярных ныне способов организации IT-фирм, т.к. он самый простой при постоянно растущем запросе на IT-услуги.

  • На местном рынке, для собственного продукта. Это может быть существующий продукт или стартап, но суть одна и та же. Местная фирма делает, обслуживает, продает свой программный продукт. Это может быть частная бизнес-инициатива, или работа на госзаказ. Здесь тебя ждет такой же обычный раунд собеседований в местную фирму, со всеми её особенностями. Но т.к. фирма работает на внутренний рынок, то оплата труда скорее всего будет ниже, просто потому что почти все местные фирмы не могут потянуть зарплату, которую предлагают фирмы иностранные, у нас не тот объем рынка IT-услуг, и очень побитые жизнью экономики в целом.
Есть еще один вариант - поехать работать зарубеж по визе. О нем в следующем посте.
No. 18086    
>>18070
>>18084
>>18085

Итак, бонусный вариант места трудоустройства:

  • На зарубежном рынке, уехать на визу от работодателя. Есть и такой вариант, но я пишу его в конце, т.к. начинающему программисту это сделать будет трудно. Здесь всё то же самое как с устройством на удаленку по контракту, но вместо того чтобы работать из дому, тебе делают рабочую визу, разрешение на работу, и ты едешь на срок трудового договора работать в страну назначения. Там ты работаешь по правилам фирмы, параллельно изучаешь местный язык обычно требование от государства, снимаешь и оплачиваешь жилье на первый месяц тебе выделят подъемные, и может даже конспиративную квартиру на небольшой срок, но в остальном всё менеджишь сам, если получится, подыскиваешь возможность перейти на другую работу с условиями получше тут надо учесть, что фирма при расторжении договора через Х дней передаст об этом уведомление в миграционную службу, если всё будет хорошо, через время ты сможешь получить вид на жительство. Если всё будет плохо, поедешь домой обратно.
Вариант поехать работать в другую страну также предлагают некоторые рекрутинговые фирмы. Здесь ситуация будет похожа, но также придется столкнуться со всей спецификой рекрутинговой конторы. Базово - ты будешь чуть в более неопределенном и чуть более уязвимом положении, чем если бы был устроен напрямую.
No. 18087    
>>18078
Это-то впринципе ясно, но мне сначала хочется хоть связь установить между двумя устройствами. Собственно сама программа была быстро написана с этой целью - для теста.
No. 18089    
>>18038
Окей, тогда попробую наверное с этим вариантом.
Такой еще вопрос по-поводу вичана. Интересно, как там поставить кастомную главную страничку?
No. 18114    
Где можно почитать что-нибудь о классических игровых алгоритмах?
Например, как реализовать те же крестики-нолики, змейку, Zuma, 2048, игры, где сверху кубики падают и тебе надо перемещать одноцветные в один ряд и т.п.
No. 18119    
>>18114
Почему бы самому не подумоть и заделоть вместо готового решения?
No. 18127    
>>18119
Это не работа программиста.
No. 18131    
>>18114
Я так понимаю, под алгоритмом ты понимаешь алгоритм непосредствнно программной реализации игры.

Тут все зависит от конкретной игры, и обычно, поскольку у классических игр было много самописных клонов, какой-то однозначной канонической реализации может и не быть. Тем не менее, такие игры часто используются в качестве туториал материалов по геймдеву для конкретных языков и библиотек, например "Сегодня мы делаем Тетрис на C# на базе Unity" или "Пишем Flappy Bird на Javascript".

Поэтому, важно знать:
1. С какой целью ты хочешь эти алгоритмы потом использовать, на какой платформе и т.д. Т.к. очевидно, что реализация текстового тетриса на бейсике будет отличаться от трёхмерной на плюсах.

2. Какие игры тебя интересуют больше других, или может, какая-то конкретно? Это чтобы было понятно что искать.
No. 18143    
>>18131
Ну, например крестики-нолики. Самые простые, в терминале. Например, вводим X,Y, жмём Enter. Потом бот рандомно выбирает клетку и т.п. Реализовать такое можно хоть на Python, хоть на JS, но как это сделать? Все выигрышные правила записать в отдельный массив и сверять текущие координаты с ним? Или каждую строку рассматривать как отдельный массив? А как тогда диагонали решать? И т.п. Такого рода вопросы.
Или вот ещё - как bullet-storm в тохо реализован? Что пульки такими красивыми спиральками летят.
Как движение змейки сделать? Стрелочками двигать "голову", а потом рекурсивно передавать координаты предыдущего куска тела на один назад?
No. 18144    
>>18143
>крестики-нолики
Самый универсальный подход - на каждом шаге проверять все столбцы, все строки и все диагонали. Если где-то обнаружится два твоих знака - ставишь третий и выигрываешь, обнаружится два знака противника - тоже ставишь, мешая выиграть ему. Более умные стратегии, ЕМНИП, действуют только в начале игры, и все они описаны, загугли схемы. А вот забивать все комбинации - плохой подход, их все-таки немало, нужен именно алгоритм, который будет проверять, возможен ли при имеющихся значках предлагаемый стратегией ход, и делать его.

>bullet-storm
Уравнения движения с хорошо подобранными или рассчитанными коэффициентами. В простом случае - формулы, дающие координаты по моменту времени. В сложном - матричные вычисления. Мало программирования, много математики.

>змейка
Рекурсия тут, думаю, излишняя. Нужен список (а списки давно есть в любом современном языке) с координатами каждого куска тела. На очередном шаге рассчитываешь новую координату головы по старой координате и направлению движения, и кладешь её в начало списка, а один элемент из конца - удаляешь. Если змея что-то съела, конец не трогаешь, и она растёт.
No. 18145    
>>18143
Вот человек постигает те же алгоритмы и делает Pong, Breakout и Snake на жаваскрипте и HTML 5.

https://codeincomplete.com/posts/javascript-pong/
https://codeincomplete.com/posts/javascript-breakout/
https://codeincomplete.com/posts/starting-snakes/
No. 18152    
151334933944.png-(28.63KB, 1059×682, 2017-12-15_16-39-55.png)
18152
>>17914
глазам своим не верю, но приложение все таки сбилдилось!
итак, что я сделал:
  • добавил системную переменную и пользовательскую тоже на всякий с именем USER_HOME и значением C:\Android вместо C:\Android\.gradle
  • поменял значение в переменной GRADLE_USER_HOME на C:\Android, хотя, судя по >>17898 она вообще не нужна
  • в настройках андроид студии во вкладке грейдла выставил путь C:\Android где это было возможно
спасибо всем кто мне помогал!
No. 18153    
>>18152
Не за что, обращайся еще и сообщай о результатах девелопмента.
No. 18159    
151336564473.jpg-(65.53KB, 372×442, 05e69dbb27[1].jpg)
18159
>>18144
А есть где-нибудь реализации или хотя бы описания ИИ для пакмана (самого пакмана, чтобы им управлял ПК, для призраков-то все просто и давно описано)?
А то были мысли для следующей итерации своей игры из >>18042 реализовать саммон-бота для игрока.
No. 18160    
>>18159
Насколько удалось выяснить, написание AI Agent для пакмана - одно из стандартных упражнений в игровом АИ, а также входит в программу одного из курсов института Беркли.

>The Pac-Man projects were developed for UC Berkeley's introductory artificial intelligence course, CS 188.

Поэтому примеров таких агентов и описания алгоритмов достаточно.

Ниже некоторые из них.

Описание всего что нужно знать на сайте Беркли:
http://ai.berkeley.edu/project_overview.html

Описание одного подалгоритма с картинками из третьих рук:
https://medium.com/@lennyboyatzis/ai-teaching-pacman-to-search-with-depth-first-search-ee57daf889ab

Реализации:
https://github.com/worldofnick/pacman-AI
https://github.com/aahuja9/Pacman-AI

Демонстрация:
https://www.youtube.com/watch?v=zHRlCSUe0Q0
No. 18161    
>>18160
Выглядит интересно, спасибо. Разве что в видео вроде речь шла про машинное обучение (50 проходов и т.д.), что, наверное, делает полученный ИИ привязанным к конкретной конфигурации карты.
No. 18166    
>>18131
Анончики, а кто-нибудь может объяснить, как с Typescript работать вообще?
С js всё просто - оно или само работает уже на импортах или можем вебпаком собрать всё в бандл. А как выглядит воркфлоу в TS? Сначала файлы надо скомпилировать... куда? Рядом с каждым ts-файлом появится js? И они компилируются уже в бандл или бандлить их отдельно надо?
No. 18173    
>>18166
>С js всё просто - оно или само работает уже на импортах или можем вебпаком собрать всё в бандл.

С TypeScript точно так же:
https://stackoverflow.com/a/37068606

>The easiest way: just use Webpack.
http://www.jbrantly.com/es6-modules-with-typescript-and-webpack/

>Сначала файлы надо скомпилировать... куда?
>Рядом с каждым ts-файлом появится js? И они компилируются уже в бандл или бандлить их отдельно надо?
Это уже зависит от того как ты всё сконфигурируешь, см. ссылки выше. Но да, базово ты будешь или экмаскрипт или жаваскрипт получать на выходе.
No. 18176    
>>18173
Спасибо, Стивушка. А как думаешь, актуально ли его изучать сейчас, когда ES8 шагает по планете?
No. 18181    
151345935999.png-(3.37MB, 1920×1080, Aqua spellcasting - Kono Subarashii Sekai ni Shuku.png)
18181
>>18176

Если предпочитаешь статическую типизацию, то учи TypeScript, но если тебе только await недоставало, то его в ECMAScript 2017 добавили, так что можешь джаваскриптом обходиться невозбранно.
No. 18204    
>>18176
Если ты хочешь язык, более приспособленный к тому чтобы построить своё приложение по ООП-канонам, то почему нет? Какое приложение ты хочешь построить?
No. 18226    
Python, GUI
Стоит ли учить Tkinter? Им вообще пользуются? Или лучше сразу учить PyQt/PyGTK? Гуй нужен для очень простых вещей (нажал кнопку, открылось окно выбора файла)
No. 18227    
>>18226
> нажал кнопку, открылось окно выбора файла
Для этого вообще ничего учить не надо, бери любую копипасту со stackoverflow. Для остального лучше PyQt.
No. 18247    
151423534428.png-(0.98MB, 400×640, doll.png)
18247
>>17424
Умоляю, скиньте книг по keras на русском, cuz my English isn't very well.
No. 18334    
Что значит мощный язык программирования? Так сейчас про каждый говорят.
No. 18338    
>>18334
Это значит, что маркетологам нужно пропихнуть услуги своих курсов по погромированию.
No. 18345    
>>18334
>Что значит мощный язык программирования?
Обычно под этим подразумевается, что комбинация
1. Внутренних средств языка
2. Сторонних средств, расширений, библиотек, фреймворков, сред исполнения

Позволяет решать широкий круг задач с легкостью и удобством.
Под широким кругом задач, правда, обычно понимают "то что сейчас наиболее популярно делать"
No. 18346    
>>18247
А вот эта у тебя уже есть?
>Библиотека Keras - Инструмент глубокого обучения
Очень жаль что это просто скан, но что нашел
https://yadi.sk/d/tyfts2o23QzP7S
No. 18353    
сбросьте, пожалуйста, ссылку на информацию по async await C# для чайников. я как-то сам пытался вникнуть, но так и не смог осилить. может, кто из вас знает хорошую статейку по нему
No. 18354    
>>18353
MSDN — твой друг и товарищ. https://msdn.microsoft.com/ru-ru/library/hh191443(v=vs.120).aspx

Хабр говно и там мудилы, но вот простая заметка https://habrahabr.ru/post/139734/
No. 18355    
>>18353
>>18354
Мимикорокодил, увидел что поломалась ссылка на MSDN, заминифаил вам: https://goo.gl/9cg7i3
No. 18356    
151473956427.gif-(2.59MB, 640×360, zm1Bpka.gif)
18356
Всех с наступающим Новым Годом!

Аноним и в новом году будет проверять тред несколько раз в сутки, чтобы каждый мог получить ответ на свой вопрос или хотя бы наводку на него в тот же день.

Всем хорошего кода в Новом Году.
No. 18359    
>>18356
Спасибо, тебя тоже. Новогодняя ночь не успела пройти, а курсор уже тянется к иконке с IDE.
No. 18390    
Начну с того что я не программист. Так что пожалуйста не посылайте читать меня очень умные книжки на английском когда я задам свой очевидно глупый вопрос. меня всю жизнь мучил один вопрос, а именно, как на низком уровне реализованы прослушиватели событий? Неужели каждую миллисекунду вызывается проверка флага событий и при его наличии последовательно проверятся не является ли наступившее событие прослушиваемым? Или того хуже - каждую миллисекунду сверяется журнал текущих событий с ожидаемыми?
No. 18392    
>>18390
На самом низком уровне есть такая штука как аппаратные прерывания. И да, это флаг, который проверяется на каждом такте (наносекунды), и если он установлен, то сохраняется указатель на ту инструкцию, которую должны были выполнять, а вместо нее через goto выполняется обработчик прерывания, после чего процессор вспоминает откуда начал. Так например работают PS/2 клавиатуры.
На высоком уровне в приложениях и играх все крутится в главном цикле "получил ввод пользователя -> обработал логику -> вывел на экран", причем все они однопоточные и синхронные, другого ничего не придумали.
No. 18393    
151494964343.png-(1.01MB, 1280×720, Inou Battle wa Nichijou-kei no Naka de.png)
18393
Отклик >>18392 можно пополнить упоминанием следующих обстоятельств:

  • Про работу низкоуровневого механизма прерываний можно прочесть по адресу https://ru.wikipedia.org/wiki/Прерывание в россияноязычной Википедии.
  • При вызове обработчика прерываний используется не команда GOTO (после которой процессор никак не мог бы «вспоминать откуда начал»), а слегка более сложная команда INT, которая наперёд запоминает, куда возвращаться после обработки прерывания.
  • Про работу высокоуровневого цикла обработки событий можно почитать по адресу https://ru.wikipedia.org/wiki/Цикл_событий в россияноязычной Википедии; впрочем, там материал изложен не слишком-то ясно.
  • Хотя сам цикл обработки событий является однопоточным и синхронным, важно помнить о том, что обработчики и источники событий не обязаны быть таковыми. Популярен упоминаемый по адресу https://ru.wikipedia.org/wiki/Асинхронный_ввод-вывод подход, в котором передача данных через сеть или их запись в файл (или считывание из файла) совершается внѣ основного процесса и для него служит источником событий. В частности, упоминаемая в статье https://en.wikipedia.org/wiki/libuv библиотека libuv используется для этой цели в движке Node.js, поддерживающем такое событийно-ориентированное программирование на языке JavaScript, в котором как источники событий рассматриваются и передача данных по TCP или UDP, и распознавание имён DNS, и обращения к файлам и файловым системам, и обращения к другим процессам (IPC), и запуск дочерних процессов, и сигналы точного времени, и перечисленные по адресу https://ru.wikipedia.org/wiki/Сигналы_(UNIX) сигналы UNIX (POSIX), и так далее.

No. 18407    
151505878526.png-(95.67KB, 935×692, 2018-01-04_11-32-13.png)
18407
не работает команда "Enable-Migrations –EnableAutomaticMigrations". помогите пожалуйста

что я делал:
  • обновил энтити фреймворк
  • обновил павершел
  • в __C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\EFTools\NuGet Packages__ добавил файл entityframework.6.2.0.nupkg

No. 18408    
>>18407
черт, проблема, видимо, была в пути с плохими символами
перенес проект в C:\ и все заработало
No. 18414    
151507353551.jpg-(62.09KB, 674×600, Whistlers_Mother_high_res.jpg)
18414
>>18346
Это то что нужно. Буду изучать. Добра тебе!
No. 18416    
Как вообще нужно изучать базы данных? Есть ли онлайн курсы или книжки, в которых объясняется материал, смысл понятно? Нужно для работы sql освоить, причем хотелось бы научиться проектировать базы данных, правильно работать с ними, и еще их как-то в программах на Питоне использовать. Какими инструментами нужно пользоваться, а то я в командной строке я даже не представляю как проектировать большие базы данных.
No. 18417    
>>18416
Как их вообще можно проектировать? У тебя есть данные, которые нужно хранить, ты распихиваешь их по таблицам и определяешь какие поля нужны каких типов. Все.
No. 18418    
>>18416

Для чисто учебных целей можешь начать с sqlite3 - вот дока https://docs.python.org/3/library/sqlite3.html Вся твоя база будет жить в одном файле, где укажешь. Можешь посоздавать таблицы, понаполнять их, сделать простые селекты и джойны. Если хочешь визуально таблички посмотреть - тут с тулзами не помогу, но вообще они легко ищутся.
Если хочешь чего-то более продвинутого, то можешь поставить себе Postgres, например, и использовать питонскую библиотеку psycopg2 для общения с ним.
http://www.sql-ex.ru/ - здесь живет неплохой интерактивный поэтапный туториал, учился по нему на первом курсе.

Вообще, совет запилить свою имиджборду как учебный проект, который есть в полутролльской пасте про изучение питона, на самом деле вполне хорош - вот попробуй организовать базу для хранения юзеров, борд, тредов, постов, истории и т.д., очень хорошее упражнение. Берешь веб-фреймворк типа tornado и накручиваешь туда psycopg2, если хочешь пописать SQL руками, или django (или tornado + sqlalchemy), если хочешь больше уделить внимания проектированию - и вперед.
No. 18421    
>>18416
Базы данных проектируются исходя из главного принципа - точности описания связей между понятиями, объектами, структурами, репрезентацией которых будут сущности в твоей БД.
Вспомогательный принцип для проектирования - точность, собственно, описания этих понятий, структур, объектов, етц.

Если между твоими сущностями существует много сложных связей и зависимостей, то обычно рекомендуют использовать реляционную базу данных, которая позволяет на уровне движка описать поведение сущностей относительно друг друга. В основном это делается для поддержания целостности данных грубо говоря, чтобы не оказалось что у тебя в базе куча ошметков старых сущностей которые ни к чему не относятся, но нарушают работу твоего приложения и нормализации базы данных грубо говоря, чтобы одни и те же поля не повторялись по многу раз в разных сущностях Поскольку реляционные БД обычно используют SQL как язык для запросов, и содержат SQL в названии, то их начали называть SQL базами данных. Яркие представители - MySQL, PostgreSQL, MSSQL.

Через время, в противовес SQL базам появились NoSQL базы данных. В чем суть?
Если между сущностями отсутствуют сложные связи и зависимости или их проще передать на уровне приложения, или же если структура твоих сущностей будет постоянно меняться т.е. будут постоянно появляться и исчезать новые свойства то рекомендуют использовать именно NoSQL базу данных. Это очень удобно, если ты хранишь в базе данные собранные из разных источников в случае использования реляционной БД, тебе бы пришлось постоянно добавлять колонки, переносить таблицы, как следствие постоянно писать миграции, етц или же если у тебя очень простая структура данных в принципе например, тебе нужно хранить пользователей и всё В отличие от реляционки, которая использует для хранения таблицы с колонками и строчками, NoSQL хранит в себе произвольную структуру обычно её называют документом, обычно в формате JSON. Как следствие, в качестве языка для запросов такие БД используют JavaScript. Яркий представитель здесь - mongoDB.

Обычно поднять себе просто хранилище на noSQL базе проще и быстрее, т.к. не надо создавать и описывать таблицы, а потом еще разбираться как правильно заносить туда данные, и в каком формате.

Поскольку noSQL база данных легко ложится на реляционную структуру т.к. с её точки зрения такая база это таблица "ключ -> документ" то сейчас SQL БД предлагают и такой режим работы для отдельных таблиц, с автоматической сериализацией / десериализацией JSON, поиском внутри документов и таким прочим. Например, свежие MySQL и PostgreSQL так уже умеют. Это не просто прием для поддержания конкурентноспособности, в сложных приложениях легко оказаться в ситуации, когда тебе нужна реляционная база для одних типов данных, нереляционная для других, а держать и поддерживать целостность данных между двумя независимыми базами - гроб, гроб, кладбище, поэтому такая фишка может прийти на выручку.
No. 18422    
>>18416
>>18421

TL;DR:

1. Определи, сколько объектов тебе надо описать.
2. Определи, сколько типов сущностей в БД тебе надо, чтобы их хранить
3. Определи, насколько сурово сущности надо связать между собой.
4. Прикинь, как часто у тебя будет меняться структура данных.

Если связей много, а данные более менее статичны - SQL
Если связей мало, или все данные очень динамичны - NoSQL
Если связей много, большинство данных статичны, но есть динамичный кусок - SQL + несколько таблиц в документном режиме.

Курсы и туториалы по SQL и проектированию легко найти, и они даже бывают бесплатными:
https://www.lucidchart.com/pages/database-diagram/database-design
https://www.udemy.com/database-design-and-management/
https://www.linkedin.com/pulse/tutorial-step-database-design-sql-david-mccaldin

Точно так же по NoSQL:
https://www.tutorialspoint.com/mongodb/mongodb_data_modeling.htm
https://www.mongodb.com/presentations/webinar-back-to-basics-thinking-in-documents
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-2
https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-3
No. 18424    
151509324175.jpg-(54.61KB, 700×588, krjuch28-700x588.jpg)
18424
Товарищи! Кто на данный момент, и в прошлом занимался написанием ПО \ созданием сайтов.
Какой ЯЗЫК ПРОГРАММИРОВАНИЯ выучить в первую очередь.
Чтобы быстрее войти так сказать в ИТ сферу, а потом хорошо зарабатывать.

Выбрал эти:
Java, C#, Python, Frond-End

Кстати наиболее перспективный яп (в порядке убывания) и быстроте изучения:
Java, C#, Python, Frond-End

Вообще хотелось бы знать! Как наиболее эффективно выучить яп с нуля и английский.
Портфолио обязательно? И на каком уровне знать английский?)

Есть ли порог вхождения для ИТ
по возрасту?
No. 18426    
>>18424
Во-первых, front-end* это не ЯП, а все что относится к "лицевой стороне" то, что будет видеть пользователь твоего приложения/сайта.
Во-вторых, прочти шапку, а также - http://pastebin.com/AGhLZppH
в-третьих, я надеюсь, что ты не зеленый.
В-четвертых, английский в основном на уровне чтения документации(pre-intermediate).
Возраст не так важен.

А вообще для быстрого заработка достаточно выучить верстку. HTML, CSS и немного JS. Для начала можешь пройти курс здесь - https://htmlacademy.ru
После этого ищешь psd-шаблоны, верстаешь шаблонов ~10.
Далее поиск работы на должность верстальщика.
No. 18430    
151511274410.png-(231.60KB, 421×512, .png)
18430
>>18424
Чтобы стать программистом нужно читать The Art of Computer Programming Кнута (читать лучше в оригинале, заодно английский выучишь), знать алгоритмы, структуры данных, помнить основы информатики: системы счисления, булеву алгебру, дискретную математику и теорию графов, линейную алгебру, в особенности понятия вектора, матрицы, тензора, вычислительная математика, численные методы решения дифференциальных уравнений и прочее. Уметь синтезировать логические схемы, уметь отличать гарвардскую архитектуру от архитектуры Фон Неймана, в целом понимать принцип работы процессора, желательно знать ассемблер хотя бы на уровне hollo world.
Далее идет понимание работы сетей, нужно знать уровни модели OSI, иметь представления о сетевых протоколах от TCP/IP до HTTP, основы шифрования, асимметричное шифрование, алгоритм Диффи — Хелмана. Операционные системы, UNIX, файловые системы. Иметь начальные навыки администрирования и работы с командной строкой.
После освоения этих основ можно перейти к выбору направления. Из основных можно отметить:
Embedded (встраиваемые системы) - программирование микроконтроллеров и ПЛИС. Из основ добавляется теория автоматизированного управления, так как область в основном заточена под это. Нужно углубленное знание архитектуры процессоров, умение чтения электрических схем, очень поможет опыт в цифровой схемотехнике и в принципе умение работать паяльником. Так же добавляется знание низкоуровневых протоколов, использующихся в устройствах: SPI, I2C, UART, 1-wire, USB, RS-485, CAN и других. Чтобы вкатиться в эту область, в интернете есть в свободном доступе книга "Дэвид М. Харрис Сара Л. Харрис Цифровая схемотехника и архитектура компьютера.", она может послужить хорошим введением в это дело. Языки: Assembler, C/C++, Verilog, VDHL. Что плюс, так это то, что в плане языков эта область наиболее консервативна.
Веб - все, что связано с интернетом. Разделение на фронтенд/бекэнд сознательно не делаю, так как одного без другого не бывает, да и грань все более размытая. Еще раз нужно понимать сетевые протоколы, преимущественно прикладного уровня, подразумеваю, кончено, HTTP, но возможно придется затронуть и WebSocket. Следует понимать, как клиент (браузер) взаимодействует с сервером, как вебсервер вызывает пользовательские скрипты через CGI, каковы механизмы аутентификации пользователей, что такое куки и чем они отличаются от сессий, что такое REST. Обязательна работа с базами данных. Касательно фронтенда нужно знать что такое BOM, язык безальтернативно JavaScript, хотя к нему при желании можно добавить TypeScript или CoffeScript, Dart является менее популярным, хотя ничего плохого в нем нет. HTML и CSS - не языки программирования, скажу сразу, но умение ими пользоваться подразумевается, так же хорошо иметь привычку следовать веб-стандартам, понимать семантику тегов и уметь в адаптивную верстку, пользоваться bootstrap (css-фреймворк). JavaScript это еще полдела, к нему идет зоопарк различных библиотек и фреймворков, который постоянно меняется, причем работодателям как правило интересен опыт работы с каким-то конкретным. Из универсального - jQuery и undescore.js, поверх этого идут конкурирующие фреймворки для "реактивного" HTML: Angular, React, Vue и другие. На бекэнде популярны языки: PHP, Python (с фреймворками Django, Flask, Tornado), JavaScript (node.js разумеется, фреймворк express), Ruby, Go, Java (Spring), C# (.NET) из наиболее популярных.
Ну и в последнюю категорию выделю "прикладное" программирование - все ваши экзешники, которые вы скачиваете с файлохостингов и запускаете от имени администратора. Скорее всего придется разрабатывать какую-нибудь систему учета для бизнеса, SCADA, пакеты САПРов, программы для работы с текстом, графикой, звуком. Помимо основ нужно уметь работать с бинарными файлами и обращаться к операционной системе. Языки C++, Java, C#, реже Python. Для C++ популярен фреймворк Qt. Помимо основного языка, на котором пишется приложение, большим плюсом является знание скриптового языка, того же Python, Lua, Tcl. Есть еще конечно мобильные приложения, но чтобы вкатиться на iOS обязательно быть яблочником и иметь в коллекции несколько макбуков, айпадов и айфонов, пишут под них на Swift и ObjectiveC. С андроидом проще, язык Java, Kotlin, Scala.
Есть конечно и область анализа данных, моделирования, нейросетей и прочего, но это скорее занятия для ученых и математиков, чем программистов.
Вот в принципе и все, что требуется, чтобы с нуля вкатиться в IT и стать программистом. Можно конечно ничего этого не знать, а выучить CS:GO и пойти верстать странички, но это уже другая профессия, она называется макака.
Хотел было подколоть "учи Haskell", а в результате написал на полном серьезе.
No. 18432    
151513057661.png-(2.83MB, 1920×1080, No Game No Life.png)
18432
Мнение >>18418 надо пополнить (и пополню) советом читать не только документацию https://docs.python.org/3/library/sqlite3.html по употреблению SQLite в Python, но также и документацию по SQLite на сайте SQLite — по меньшей мере, следующие документы:

  • описание https://sqlite.org/lang.html используемого языка запросов (это справочник, так что его не обязательно — и даже вредно — запоминать весь наизусть, но зато надо составить достаточное впечатление о том, что где придётся в случае чего поглядеть);
  • рассказ https://sqlite.org/queryplanner.html о том, как запросы к базе данных вообще совершаются (и в каких случаях можно радикально ускорить их выполнение, создав индексы);
  • подборка https://sqlite.org/whentouse.html тех случаев, в которых употребление SQLite годится, а также и тех, в которых не годится (это чтобы не быть тем человеком из поговорки, у которого в руках молоток и оттого ВНЕЗАПНО всё вокруг кажется гвоздями — даже то, что не гвоздь);
  • описание расширения https://sqlite.org/json1.html о хранении JSON-документов и о создании запросов к ним (это то самое, о чём автор реплики >>18421 говорил, когда упоминал возможность внутри SQL-базы иметь noSQL-подобные данные и готовые средства обращения к ним).
Понятно, надеюсь, что вышеизложенный совет вполне годится не только для тех, кто подходит к употреблению SQLite со стороны Python, но также и для тех, кто подходит к употреблению SQLite со стороны любого другого языка программирования (ну, например, Си или JavaScript).
No. 18441    
>>18426
> После этого ищешь psd-шаблоны, верстаешь шаблонов ~10.
А вот здесь пожалуйста по-подробнее.
> Далее поиск работы на должность верстальщика.
А как тут искать работу? Как быть, если опыта нет? Т.е. не работал ни на кого. И главное, где лучше всего искать? И что делать, если работодатель будет спрашивать про вышку соответствующую? А у меня другая вышка.
No. 18444    
>>18441
По поводу psd-шаблонов. Их легко можно найти в гугле - "psd шаблоны макеты сайтов". Скачиваешь, открываешь в фотошопе и верстаешь.
По поводу верстки с шаблона. Существует огромное количество разнообразных курсов/туториалов на эту тематику. Прочти первый комментарий тут - https://toster.ru/q/110967
Там ссылки на статьи с основами.

Поищи на hh.ru вакансии твоего города.
По поводу опыта работы. Посоветуйся со знакомыми родителями, кто уже работает, особенно с теми кто работает в офисе. Лично для меня это ничем не отличается от той же учебы, но в отличии от учебы здесь ответственность выше и сроки жёстче.
По поводу вышки. Тебе достаточно придумать отговорку, почему ты решил заняться именно этим делом, а не пойти по специальности. Тут вообще можно умолчать, либо сказать, что поздно сообразил, что к специальности душа не лежит.
No. 18446    
>>18444
Вот этот совет ычую! лучший способ найти хорошую работу - поросить о трудоустройстве знакомых. А там глядишь и карьерный рост попрёт если постараешься. Всегда манипулируя связями сможешь устроиться в организацию получше.
No. 18452    
никак не могу разобраться с wamp-ом. пытаюсь сделать так, чтобы при клике на кнопку на моем asp.net mvc вебсайте на сервере изменялось число в переменной и в тот же момент после изменения выводилось у всех клиентов на странице без перезагрузки

код: https://github.com/aenen/WAMPChat
там много файлов, не относящихся к wamp-у, поэтому вот пути к нужным:
WAMPChat/WAMPChat/Wamp/WampTestCallee.cs
WAMPChat/WAMPChat/App_Start/WampConfig.cs
WAMPChat/WAMPChat/Views/Home/Index.cshtml

помогите, пожалуйста
No. 18458    
Объясните кто-то непогроммисту, но который хочет туда вкатится, что такое load balancer на серверах?
No. 18459    
151524066129.png-(24.74KB, 583×640, 2018-01-06_14-10-09.png)
18459
>>18452
еще проблема: не билдится это приложение на сервере azure после того, как я начал пытаться разобраться с вампом. ошибки какие-то странные, я несколько часов гуглил, пробовал разные варианты решения, но у меня так ничего и не получилось
лог: https://pastebin.com/8QEfPCMc
No. 18466    
>>18458
Load-balancer это механизм, позволяющий распределять запросы между несколькими запущенными копиями одного и того же серверного приложения. Грубо говоря, когда с потоком запросов не справляется одно приложение, то поднимают, например, 6 его копий (обычно на разных серверах), и подключают их к одной точке входа через этот самый лоад балансер, который по набору правил и нагрузке уже будет решать, какой конкретной копии приложения отправить пользовательский запрос. Делается для того чтобы для пользователя доступ к ресурсу был прозрачным, а разработчик мог подкидывать или убирать инстансы по необходимости.
No. 18468    
>>18459
В азуре версия фреймворка не подходит вампу, написано же
> You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
No. 18469    
>>18468
то есть, это проблема на стороне ажура и поправить ее вообще никак нельзя?
No. 18471    
>>18466
Я так понимаю, на обычных хостингах вроде этого: https://beget.com/ru оно тоже стоит по-дефолту. Просто я загрузил туда кусабу Х. Так вот, у меня там чет архивирование не работает тредов, когда его тестил. Там пишет, что оно не работает, если там есть лоад балансер. В настройках пишет, мол чтобы работала там архивация тредов, должен отсутствовать load balancer.
No. 18472    
>>18471
Ну, тут зависит от того как каждый конкретный хостер организовывает доступ к клиентским данным. По поводу кусабы Х ничего пока не могу сказать - надо смотреть по коду, как они делают архивацию, чтобы понять каким образом наличие нескольких поднятых кусаб с доступом через LB это сломает.

А если ты с теми же настройками поднимешь кусабу Х локально, архивация работает?
No. 18473    
>>18469
Никогда не работал с ажуром, так, что хуй его знает.

У вампа, похоже, <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
а твой ажур работает с .net core чисто спекуляции.

Пересобери вамп под .net core, который на ажуре. Базовая миграция на другой фреймворк не такая сложная, но может всё к хуям сломать.

Или посмотри в какой-нибудь панеле ажура, какой фреймворк там крутится и смени его.
No. 18474    
>>18473
а почему ты думаешь, что проблема именно из-за вампа? скажем, вот ошибка:
> Controllers\RoleAdminController.cs(70,19): error CS0012: The type 'IEnumerable<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
она ведь вроде как не связана с ним...

и, насколько я понимаю, netstandard это стандартная библиотека дотнета, которую также можно загрузить как нагет пакет, но после загрузки другая ошибка, мол, "эта библиотека есть на сервере D:\Program Files (x86)\... и в проекте - тебе нужно удалить одну из них".

а, может, проблема в методах, на которые указывает лог. например, в Сontrollers\RoleAdminController.cs(70,19) находится такое: role.Users.Select(x => x.UserId).ToArray();. но дело в том, что этот же код у меня раньше билдился без проблем
No. 18476    
На работе компьютер, на котором ничего не сделать без прав администратора. И как раз для установки почти всех инструментов для программирования как раз нужны права администратора. Раньше мог зайти на koding.com, сейчас почему то аккаунт не действует. На cloud9ide нужно все данные о себе указать, на codeanywhere тупо не могу установить пакет mysql. Кароче че делать, как решить эту проблему пацаны?
No. 18481    
>>18476
По ssh подключаться к своему домашнему компу.
No. 18494    
>>18481
Чтобы администратор с работы тоже мог подключаться к домашнему компу 18476-куна?
>>18476
> И как раз для установки почти всех инструментов для программирования как раз нужны права администратора.
Сейчас же есть контейнеры. Какая операционная система установлена на компьютере на работе?
No. 18495    
>>18474
> а почему ты думаешь, что проблема именно из-за вампа?
> скажем, вот ошибка:
> Controllers\RoleAdminController.cs(70,19): error CS0012:
> она ведь вроде как не связана с ним...
А, не связана? Вот я пиздоглазый.

> находится такое: role.Users.Select(x => x.UserId).ToArray();
Обычный LINQ, живёт в System.Linq или System.Data.Linq.

> netstandard это стандартная библиотека дотнета
> можно загрузить как нагет пакет, но после загрузки другая ошибка, мол
Окей, давай копать.
Что изменилось в процессе твоей работы? Ты менял фреймворк проекта (или может он сам изменился)? Ты менял фреймворк проекта в ажуре (или он сам изменился)? В web.config указано что-нибудь похожее на <add assembly=" netstandard, Version=2.0.0.0 ?
No. 18501    
>>18472
>А если ты с теми же настройками поднимешь кусабу Х локально, архивация работает?
Хммм... хорошая идея, только вопрос: что поставить в конфиге в $cf['KU_WEBFOLDER'] $cf['KU_WEBPATH'] и $cf['KU_DOMAIN']?
No. 18502    
>>18501
>Хммм... хорошая идея, только вопрос: что поставить в конфиге в $cf['KU_WEBFOLDER'] $cf['KU_WEBPATH'] и $cf['KU_DOMAIN']?
Ну лол, в конфиге всё написано же.

>>$cf['KU_WEBFOLDER'] = 'CHANGEME';
>// The path from the domain of the board to the folder which kusaba is in, including the trailing slash.
>Example: "http://www.yoursite.com/misc/kusaba/"; would have a $cf['KU_WEBFOLDER'] of "/misc/kusaba/"
Если у тебя она не в отдельном разделе существующего домена, то '/' или даже пустая ''

>>$cf['KU_WEBPATH'] = 'CHANGEME';
>// The path to the index folder of kusaba, without trailing slash.
>Example: http://www.yoursite.com
У тебя очевидно http://localhost или любой другой локальный домен

>>$cf['KU_DOMAIN'] = 'CHANGEME';
>// Used in cookies for the domain parameter.
>Should be a period and then the top level domain, which will allow the cookies to be set for all subdomains. For http://www.randomchan.org, the domain would be .randomchan.org; http://zachchan.freehost.com would be zach.freehost.com
У тебя соответственно .localhost или любой локальный домен
No. 18505    
>>18495
> Что изменилось в процессе твоей работы?
я начал загружать необходимые для вампа нагет пакеты WAMP Sharp библиотеку, ну и, возможно, они грузили еще какие-то необходимые им библиотеки.
> Ты менял фреймворк проекта (или может он сам изменился)?
вручную я этого не делал... может он и сам изменился, если так может
> Ты менял фреймворк проекта в ажуре (или он сам изменился)?
неа, там я тоже ничего не трогал
> В web.config указано что-нибудь похожее на <add assembly=" netstandard, Version=2.0.0.0 ?
нет, но я сам указывал это не помогло
No. 18524    
>>18505
> я начал загружать необходимые для вампа нагет пакеты
Возможно случился конфликт, надо расследовать.

> вручную я этого не делал... может он и сам изменился, если так может
Проверь. Бывает, что какие-нибудь забытые скрипты на апдейт/сборку отработали и всё сломали.

> неа, там я тоже ничего не трогал
Для успокоения просто глянь, что там.

> нет, но я сам указывал это не помогло
И без неё тоже не работает. Странно.

Как ты раньше вамп деплоил? Деплой без вампа нормально происходит? Возможно, когда тянулись его пакеты случился конфликт. Что в зависимостях у вампа? Фреймворки вампа и проекта совпадают?
No. 18525    
>>18502
Все поставил и сделал, но почему-то потом когда вбил localhost/install.php то у меня выбило ошибку 404. Но при этом у меня все файлы и папки в корне есть. Странно очень.
No. 18528    
>>18525
>почему-то потом когда вбил localhost/install.php то у меня выбило ошибку 404
Судя по всему, неправильно настроен виртуальный хост. Локалхост, как и все остальные хосты конфигурируется, в т.ч. и в плане физической папки на которую он будет указывать. В самом обычном случае локалхост сначала указывает на типовой проект "It Works!" которые авторы вебсервера добавили, чтобы ты мог убедиться, что вебсервер жив. У тебя два варианта действий:
а) Перенастроить виртуальный хост, чтобы указывал на кусабу
б) Настроить новый виртуальный хост и локальный домен, которые будут указывать на кусабу, типа kusaba.local

Кстати, каким вебсервером пользуешься и в какой системе?
И что открывается, когда ты заходишь просто на http://localhost ?
No. 18533    
>>18528
> И что открывается, когда ты заходишь просто на http://localhost ?
Тоже самое. Ошибка 404.
No. 18535    
>>18533
>каким вебсервером пользуешься и в какой системе?
No. 18566    
151569270687.png-(15.96KB, 448×448, 1202259007194.png)
18566
Чтобы построить индекс доски, движки прочёсывают чуть ли не всю БД в поиске нужных постов, так? А что если хранить слепки тредов отдельно, а в индекс напихать iframe? Тогда слепки тредов пересобирать каждый раз не надо, главное только сортировку в индексе правильную указать.
Какие подводные камни? Это вообще реально?
No. 18569    
>>18566
Я тебя правильно понимаю, ты хочешь хранить куски html с тредами в базе данных для ускорения отдачи? Если да, то снижение нагрузки на сервер и базу традиционно решают прикручиванием кеширования, которое и отдает тебе статичный слепок доски, который обновляется раз в заданный интервал, например, раз в минуту. Это универсально, и снимает необходимость думать что-то на этот счет с разработчика.
No. 18570    
>>18569
>ты хочешь хранить куски html с тредами в базе данных для ускорения отдачи?
Нет, я хочу хранить куски html файлами на сервере, а сшивать их со стороны клиента без использования ЖС. Тогда кэш решается самим браузером и/или там nginx. Ничего лишнего в БД я хранить не хочу.
И пост вообще не про отдачу кеша, а про то как не перестраивать его при построении индекса, когда в общем-то и не надо. И я не ищу динамические решения, там этот вопрос вообще не стоит.
No. 18571    
>>18569
html с тредами а досками собирается в момент постинга, дальше отдаются собранные файлы. Кеширование тут ничего не решает.
Возможно, он имеет в виду, что после постинга необходимо пересобрать:
1) Тред, в который постили. Запрос вида SELECT FROM posts_b WHERE parent={thread_id}
2) Собрать каждую страницу на доске.
2.1) Для каждой страницы нужно получить по 10 тердов. SELECT
FROM posts_b WHERE parent=0 ORDER BY bumped DESC
2.2) Для каждого треда на странице получить его последние посты. SELECT * FROM posts_b WHERE parent={thread_id} ORDER BY timestamp DESC LIMIT 10
3) Не забыть про >>ссылки. Каждая ссылка на пост проверяется на наличие такого поста и его родительский тред (иначе не поучится сделать ссылку). SELECT parent FROM posts_b WHERE id={post_id}
Итого у нас при 10 страницах, 10 последних постах и 500 постах в треде: 1 запрос для пересборки треда, 1 запрос для получения всех тредов на доске, 100 запросов на получение последних постов в каждом из тредов, 1500 запросов для парсинга >>ссылок. В общей сложности рендерятся 11 файлов.
No. 18574    
>>18535
убунта 17.04 А по серверу классика - LAMP. правда я еще питон решил поставить потом.
No. 18576    
>>18571
Да. И из этих "100 запросов на получение последних постов", 99 абсолютно лишние - ибо не меняются, - и жрут время не только на выдёргивание из БД, но и записи на диск, если движок предусматривает статику - построил-и-забыл. А с динамикой-то решение >>18569 вполне работало бы.

Может я в картинках распишу, что хочу узнать? Я не уверен, что ясно излагаю для стороннего наблюдателя идею.
No. 18578    
>>18576
Да в принципе запросто можно собирать эти куски тредов с последними постами и потом их оттуда доставать и встраивать в шаблон. Время на рендер шаблона незначительно сократится, зато запросов уже будет на 100 меньше. Да, сколько постов и картинок пропущено это тоже запрос к базе, получается 200 запросов.
Вот только основная масса времени будет тратится на парсинг поста. Например, если сейчас я напишу >>18580 , то оно отобразится как статичный текст, поскольку невозможно составить ссылку, не зная тред поста. Несколько постов спустя, эта ссылка активируется, что говорит о том, что при каждом новом посте парсилась разметка каждого поста в треде и постов на странице. Собранный html поста можно хранить в базе, и производительность это улучшит намного больше. Правда, при этом мы теряем возможность загадывать геты >>20000
No. 18579    
>>18578
>Несколько постов спустя, эта ссылка активируется
Вообще, по крайней мере в более старых движках (например, здесь), старые посты не переписываются, а остаются как есть. Вакаба, как минимум, хранит именно что html текста поста. Кусаба, емнип, тоже.

Ну и остаются детали реализации: хранить предпросмотр треда в БД (что, вообще говоря, дупликация, хоть и не полная, содержимого постов), или в виде собранных файлов, и впихивать на стороне клиента через яваскрипт/iframe. Про что и был оригинальный вопрос.
No. 18583    
>>18579
Хранить в файлах, рядом с самим тредом, например на самом автобусе хранятся http://410chan.org/dev/res/17424 50.html и https://410chan.org/dev/res/17424-100.html , только тут цель другая - экономия трафика. Iframe это совсем маразм, через яваскрипт только если изначально все построено через фреймоврк и собирвается на стороне клиента, что не в этом случае.
No. 18584    
>>18583
>Хранить в файлах, рядом с самим тредом
>Iframe это совсем маразм, через яваскрипт только если изначально все построено через фреймоврк
Хорошо. и последний тогда вопрос, но я чую, что однозначного ответа нет и надо тестировать: а не будет ли оферхд на открытие/закрытие файловых дескрипоторов и поиск нужных больше, чем всё-таки хранить это в БД и вытаскивать за один запрос?
No. 18585    
>>18584
Обращение к файлам всегда быстрее чем к БД.
Вот например движок https://github.com/various-projects/JSib и его демо http://jsib.ml/jsib_v2/thread.html#b/1 который целиком построен на этой идее. Все данные там хранятся в текстовых файлах, которые целиком отдается клиенту, а там уже яваскрипт строит из него тред. По их заверением, в качестве сервера с таким подходом подойдет любая кофеварка.
No. 18587    
151571054072.png-(12.88KB, 384×384, 1151938512397.png)
18587
>>18585
Ага. Спасибо.
Ну, сомневаюсь что буду целиком на ЖС страничку собирать ближайше время, но хоть какое-то улучшение. Да и каталог собираться чуть быстрее таким образом должен будет, если ОП-пост ещё отдельно хранить.

А там глядишь и ЖС придётся.
No. 18588    
Написать бороду полностью без js допустимо?
No. 18591    
>>18588
Да.
No. 18592    
151573448425.png-(2.55MB, 1920×1080, Onii-chan no Koto nanka Zenzen Suki Janain Dakara .png)
18592
>>18588

Да, но лучше сделать всё совсем наоборот (на одном только джаваскрипте: во браузере — на jQuery, на сервере — на Node.js).
No. 18594    
151573503966.png-(3.35MB, 1920×1080, Kono Subarashii Sekai ni Shukufuku wo! - Darkness .png)
18594
>>18585

> Обращение к файлам всегда быстрее чем к БД.

Однако https://www.sqlite.org/fasterthanfs.html сообщает о противоположном.
No. 18597    
>>18592
Я просто не умею и не люблю его.
No. 18615    
151576268167.png-(322.73KB, 1397×1340, download.png)
18615
пытаюсь сделать базу данных для сайта сети кинотеатров (приложил схему)

не могу понять, как лучше сохранять в базе места в залах кинотеатра и как назначать цену за место в зависимости от сеанса...

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

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

извиняюсь за укр. язык в комментариях к таблицам. думаю, что по названию понятна суть, но если будет нужно смогу объяснить
No. 18616    
автобус, подскажи хороший онлайн отладчик джаваскрипта. Чтобы он показывал где я допустил ошибку и в чем она.
No. 18617    
>>18616
chrome dev tools
No. 18622    
>>18574
> А по серверу классика - LAMP
Ну, это бандл. Насколько я вижу, у тебя LAMP бандлит по желанию Apache, Cherokee, Lighthttpd, Nginx. Попробую сванговать, что у тебя Apache, и после установки он должен показывать дефолтную страницу, а у тебя он её не показывает. Из этого два вопроса:
0) У тебя Апач, или всё-таки что-то еще?
1) Этот апач, или что-то еще запущен? просто чтобы исключить банальное
2) Ты конфигурировал Апач, или что-то еще после установки?
3) На всякий случай, ты раньше конфигурировал хосты, для того чтобы что-то на своей машине локально развернуть?

Это я всё спрашиваю, чтобы понять, что тебе надо сделать чтобы увидеть свою заветную кусабу. Я подозреваю что у тебя плохо / не сконфигурирован / не запущен веб сервер.
No. 18623    
>>18616
Рекомендация зависит от того, с какой целью и что ты отлаживаешь. Обычно, какой-то нестандартный отладчик яваскрипта просят, когда надо:
  • отлаживать обработчики событий, чтобы понять что где файрится, и т.д. Тут я бы посоветовал FireBug + EventBug (основное дополнение + аддон для него) к Firefox. Проблема только в том, что этот аддон больше не пилят, и авторы рекомендуют перейти на дев версию Firefox: https://developer.mozilla.org/en-US/docs/Tools
  • расковыривать аглифаеный или минифаеный код. Тут, учитывая размеры некоторых скриптов, лучше заниматься подменой ресурсов на разаглифаенные самостоятельно, чтобы сократить риск зависания браузера. Это можно делать прямо плагином для браузера, чем-то типа Redirector для того же FireFox.

No. 18625    
Посоветуйте, пожалуйста, практических задач для новичка по питону.
Инб4 проект Эйлера
No. 18626    
https://learn.javascript.ru/task/sum-many-brackets
Поясните для тупого как это работает. Построчно, если можно
No. 18629    
>>18625
У нас в пополняемой базе знаний есть такое:

>>Я ищу интерактивный курс по Python
http://410chan.org/dev/arch/res/15681.html#16126

>>Я ищу задачи и упражнения по алгоритмам (C, Python)
http://410chan.org/dev/arch/res/15681.html#17105
http://410chan.org/dev/arch/res/15681.html#17108
http://410chan.org/dev/arch/res/15681.html#17110

Это похоже на то, что ты ищешь?
No. 18630    
>>18626

>function sum(a) {
Объявили главную функцию.

>var currentSum = a;
Сохранили изначальное значение во внутреннюю переменную.

>function f(b) {
Объявили внутренню функцию, которая непосредственно что-то будет делать.
У неё есть контекст главной функции, в которой она объявлена.

>currentSum += b;
Написали что оно делает - берет и добавляет переданное значение ко внутренней переменной

>return f;
Сделали, чтобы оно возвращало экземпляр функции, который потом можно вызвать.

>f.toString = function() {
Переопределили у функции метод .toString, чтобы вместо вывода типа
>f = function(a) { ... }
Оно вывело значение внутренней переменной, где хранится сумма
>currentSum
Значение будет взято из контекста главной функции.

>return f;
Возвращает экземпляр функции f, который опять же потом можно вызвать.

А собственно магия происходит здесь:
>alert( sum(1)(2) );
>sum(1)
Это ты передал аргумент в sum(), он сохранится в переменную currentSum
sum() вернул тебе экземпляр функции f
>(2)
И ты передал аргумент 2 уже в f, которую тебе только что вернули.

Поскольку этот f ты получил из контекста функции sum, то там во внутренней переменной уже лежит 1, вызов f(2) добавит туда 2, и вернет тебе еще экземпляр f, который ты сможешь вызывать со следующим аргументом, или не вызвать, если больше аргументов нет.

>alert
А это вызовет .toString у последней функции f, которую ты получишь. Поскольку оно всё тянется из контекста первого вызова sum(), то оно выведет тебе правильную currentSum, в которой будет 1 + 2 = 3

Вообще, я не понимаю зачем этот пример назвали "сумма произвольного числа скобок", как-то оно больше сбивает с толку, чем чему-то учит. Базово этот пример должен тебе показать, что ты можешь работать не только с результатами вызова функции, но и с самой функцией, вызывая её потом, самостоятельно, когда это тебе нужно. И даже повторять вызовы с новыми аргументами столько раз, сколько тебе захочется.
No. 18632    
>>18626
>>18630
На всякий случай, по вызовам
>alert( sum(1)(2) )

>sum(1)
сurrentSum стал 1;
Вернулось f = function(b) {}

Поэтому вызов
>sum(1)(2)
Это на самом деле
>sum(1).f(2)
Т.е. ты делаешь обычный вызов по цепочке, просто экстравагантно оформленный. Поскольку ты вызвал f прямо из прошлого sum, то:
сurrentSum стал 1 + 2 = 3;
И снова вернулось f = function(b) {}

Вызов
>alert( sum(1)(2) )
У себя внутри сделает
>sum(1)(2).toString

Что на самом деле будет
>sum(1).f(2).f.toString()
Который выведет сurrentSum.
Из-за того, что ты вызываешь f всё так же взятый из первого sum, то оно вернет корректное значение сurrentSum, т.е. 3

Соответственно, в длинной цепочке типа
>alert(sum(0)(1)(2)(3)(4)(5))
Ты на самом деле делаешь
>sum(0).f(1).f(2).f(3).f(4).f(5).f.toString()

Альтернтативные вызовы я привел для лучшей иллюстрации, чтобы можно было их чейнить именно так на самом деле, нужно в function sum(a) строчку
>return f;
заменить на
>return { "f": f }

Это всё детально расписывается тут:
https://www.w3schools.com/js/js_function_closures.asp
No. 18637    
>>18630
Спасибо большое. Ты спас меня и сохранил мне несколько часов-дней
No. 18638    
Как решить упражнения 1.2.2 из книги? Там нужно узнать при каком n время сортировки вставкой превысит время слиянием. Для вставки 8n^2, а для слиянием - 64nlg(n). Я решил что нужно найти n когда время сортировок будет одинаковым, т. е. приравнял 8n^2 = 64nlg(n), в итоге получил n^(8/n) = 2. И дальше не знаю как n получить.
No. 18639    
>>18638
Единственное я понял, что можно графики построить. А вот как аналитически решить, у меня не получается.
No. 18643    
>>18638
Или 2^(n/8) = n. Можно программно перебрать.
No. 18646    
>>18638
>>18643
2^(n/8) = n правильно раскрыто, хотя на самом деле нас интересует 2^(n/8) > n
В общем, здесь скорее всего не получится как-то раскрыть до вменяемого алгебраического решения. В то же время, если хочется решить со всей строгостью, можно решить численно (== программным перебором, методом Ньютона), а потом доказать, например индуктивно или с помощью производных, что есть только эти решения - грубо говоря, что кривая 2^(n/8) пересечет n не больше двух раз, что и так интутивно понятно.

Если не хватит сил доказать самому - https://math.stackexchange.com/questions/20652/how-to-solve-n-2n-8-for-n
No. 18649    
>>18615
Я не очень понимаю, как работают кинотеатры, так, что вот так.
Плюс, сейчас вечер воскресенья я думать не очень хочется.
Плюс, при проектировании базы данных можно долг ои нудно ругаться.

> и тут непонятно, где и как хранить расположения места ведь не всегда места в зале центрированы
В таблице CinemaHall делаешь xml столбец, куда серилизуешь поции всех мест типа
<seats>
<seat id="0" positionX="1" positionY="2" />
</seats>
Типа такого. Выборку по этому полю ты делать не будешь, искать в нём тоже, тебе только залезть внутрь для отрисовки картинки для пользователя.

> не могу понять, как лучше сохранять в базе места в залах кинотеатра
Таблица Seats с Id, HallId, SeatTypeId. Вроде, ничего больше месту не нужно.

> и как назначать цену за место в зависимости от сеанса...
От чего зависит цена билета?
Зал, время, место.
Значит, у тебя будет таблица TicketPrice с SeatId, SessionId, Price. Т.е. ты хранишь для отдельного места, отдельного сеанса цену. Это будет ещё неплохо в том плане, если на сеанс Человек-Гитлер на места с номерами 14 и 88 цена будет х2.

Ещё бы я от таблицы Ticket избавился, запихнув всё из него в OrderItem. Ведь подразумевается, что у тебя только билеты заказать можно, а не ещё и шлюху, чтоб сосала в процессе просмотра.
Ты ещё и лишний join не будешь делать. Экономия via денормализация.
No. 18663    
>>18622
> 0) У тебя Апач, или всё-таки что-то еще?
Да, апач.
> 1) Этот апач, или что-то еще запущен?
Да, запущен. Даже перезагружал его.
> 2) Ты конфигурировал Апач, или что-то еще после установки?
Угу. Ставил пару дополнительных модулей, вроде mod_php, phpmyadmin и потом когда пробовал загружать тестовый php скрипт, удалил "родную" html-страницу апача.
> 3) На всякий случай, ты раньше конфигурировал хосты, для того чтобы что-то на своей машине локально развернуть?
Неа, ни разу. Хочу научится нормально делать это.
No. 18664    
>>18649
думал, никто так и не ответит. спасибо
> В таблице CinemaHall делаешь xml столбец, куда серилизуешь поции всех мест типа
так теперь и сделаю, а то я уже создал таблицу seatstyle со столбцами position, width, height. это была очень плохая идея?

> Значит, у тебя будет таблица TicketPrice с SeatId, SessionId, Price. Т.е. ты хранишь для отдельного места, отдельного сеанса цену.
я вот тоже об этом думал, но не слишком ли это ресурсоемко? то есть, в зале может быть 100 мест и для каждого сеанса и каждого места нужно добавлять поле, хотя места обычно делятся максимум на 3-5 ценовых категорий в зале. если в день будет 25 сеансов, то новых записей в этой табличке будет по 2500 в день, и большинство из них будут одинаковыми...
вообще, может твой подход и правильный, я просто не знаю как такое принято делать

> Ещё бы я от таблицы Ticket избавился, запихнув всё из него в OrderItem.
вроде хорошая идея, сделаю
No. 18666    
>>18664
> так теперь и сделаю, а то я уже создал таблицу seatstyle со столбцами position, width, height. это была очень плохая идея?
На мой взгляд — да. Это лишняя сущность, которую надо будет поддерживать и держать в уме. Хотя, не все любят совать xml в БД с другой стороны, кому-то и exe в базе хранить норм

> вообще, может твой подход и правильный, я просто не знаю как такое принято делать
Я тоже не знаю, но тебе, что, дискового пространства жалко? Ты не огромные блобы хранишь, это просто текст.

А потом вообще какой-нибудь джоб сделаешь, удаляющий/перемещающий в "архив" устаревшие данные. Ну или кнопку для оператора типа "убрать устаревшие цены в архив" / "убрать устаревшие цены к хуям".

Сегодня для Киноцентр «Октябрь» ситуация следующая:
11 залов.
319 мест в зале (в каком-то случайном зале, считаю, что у всех так)
67 сеансов.
21373 строк на день.
21373 * 100 байт = 2 Mb
100 байт — это я взял хоть немного похожую таблицу с нашей боевой базы и замерил размер командой

SELECT * FROM sys.dm_db_index_physical_stats (DB_ID('CB_DB_rev91'), OBJECT_ID('[USER_SETTINGS]'), NULL, NULL , 'DETAILED')


Как хитрый финт можно таблицу SessionPrices с SessionId, SessionPrice и SessionPricesDiscounts c SessionId int, SeatId int NULL, Discount int, Condition text.
SeatId NULL ну, ситуация, например, когда на все места располагается. Тогда, если нет элитных мест (как в ёбаном октябре, то и ничего делать не надо).
No. 18680    
Допустимо ли использовать Browserify, и утрамбовывать с uglify кучу скриптов в один бандл, при том что внешние библиотеки нужны не на каждой странице, а на одних одни, на других другие?
Сама сборка с парой библиотек занимает секунд 20, если бы внешние зависимости просто подключались через <script>, то непосредственно свои скрипты собирались бы за пару секунд. Есть ли вариант, чтобы Browserify когда видел require из node_modules, собирал бы и копировал бы их в папку назначения?
No. 18682    
>>18680
В целом более чем допустимо, многие даже считают бандлинг всего в один файл единственно верным решением. Ибо, если речь про веб-приложение или сайт, количество сетевых запросов это важный фактор, особенно на плохих каналах (типа мобильного интернета).

На деле по большей части зависит от того какой объем у тебя получается JS суммарный и, если он избыточно большой, сколько ты можешь сэкономить анбандлингом. Основная проблема анбандлинга состоит в том, что легко ошибиться где именно и что нужно, а также попасть в ситуацию, когда при открытии страницы у тебя одни файлы загрузятся, а другие нет (шанс чего всегда больше, если у тебя много внешних файлов) - отслеживать это и ловить подобные проблемы это боль, лучше пусть сломается сразу и все, чем по частям.
No. 18683    
>>18663

>> 2) Ты конфигурировал Апач, или что-то еще после установки?
>Угу. Ставил пару дополнительных модулей, вроде mod_php, phpmyadmin и потом когда пробовал загружать тестовый php скрипт, удалил "родную" html-страницу апача.
Ну, ты можешь добавить какой-то тестовый пустой index.html с текстом внутри, чтобы убедиться что глобально апач сконфигурирован и локалхост работает.

>> 3) На всякий случай, ты раньше конфигурировал хосты, для того чтобы что-то на своей машине локально развернуть?
>Неа, ни разу. Хочу научится нормально делать это.
Это на самом деле весьма просто делается.

Сначала ты идешь в папку, где у тебя установлен апач и находишь там внутри папку sites-available.

У неё внутри ты создаешь файл, например kusaba.conf
Потом в этом файле ты пишешь:

<VirtualHost *:80>
    ServerName kusaba.local
    ServerAlias www.kusaba.local <!-- если надо -->
    DocumentRoot "/path/to/my/kusaba/"
</VirtualHost>

Можешь сначала по этому пути /path/to/my/kusaba/ тоже тестовый html-файл разместить, просто чтобы убедиться что всё работает.

Потом ты включаешь сайт:
a2ensite kusaba.conf

Всё что оно делает - создает софтлинк на этот .conf файл в папке sites-enabled

Потом ты релоадишь апач ну или рестартишь его:
sudo service apache2 reload


Потом ты дописываешь новый домен себе в хосты:

sudo nano /etc/hosts
127.0.0.1 kusaba.local
127.0.0.1 www.kusaba.local #если надо


Потом проверяешь пингом, что новый хост действительно указывает на 127.0.0.1

Потом открываешь в браузере http://kusaba.local и у тебя должно открыться то, что там в папке лежит, например твой тестовый index.html

На всякий случай, ссылки:
https://httpd.apache.org/docs/2.4/vhosts/
https://serverfault.com/a/216260
No. 18685    
неужели люди до сих пор пользуются lamp стеком
апач, пых, мускуль, прямо как десять лет назад
сейчас же модно монгодб, нода джс, экспресс и т.п.
No. 18686    
>>18685
Человек кусабу разворачивает в любительских целях, ей такой стек и нужен.
No. 18687    
>>18588

раньше помнится на многих иб можно было сидеть с отключенными скриптами, вообще этому в основном мешает капча. не будет удобного разворота картинок, всплывающих окошек быстрого ответа и т.п. и плюс надо сделать что бы капча не зависела от джаваскрипта
No. 18689    
>>18666
> Хотя, не все любят совать xml в БД
лучше хранить эти данные по стилям в столбце базы данных с типом xml, или же может лучше создавать xml-файл на сервере, а в бд хранить путь к нему?
> А потом вообще какой-нибудь джоб сделаешь, удаляющий/перемещающий в "архив" устаревшие данные. Ну или кнопку для оператора типа "убрать устаревшие цены в архив" / "убрать устаревшие цены к хуям".
вроде хорошее решение. сделаю так
No. 18690    
>>18666
кстати, цену каким типом лучше обозначать? вроде как decimal предназначен для этого, но я часто слышал, что люди используют int, потому что все эти числа с плавающей точкой могут быть не точными
No. 18693    
>>18690
decimal, ЕМНИП, число с фиксированной точкой
No. 18695    
>>18689
> лучше хранить эти данные по стилям в столбце базы данных с типом xml, или же может лучше создавать xml-файл на сервере, а в бд хранить путь к нему?
Лучше в базе. А то проебёшь при миграции, при переезде, при бекапах, при репликации, при прочем дерьме.

> кстати, цену каким типом лучше обозначать? вроде как decimal предназначен для этого, но я часто слышал, что люди используют int, потому что все эти числа с плавающей точкой могут быть не точными
Вот полезное:
https://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql-server
Это money не точное.
No. 18698    
>>18695
>не точное.
неточное
Быстрофикс
No. 18700    
Девач, объясни как сделать так, чтобы апач подгружал мог запускать в папке /var/www/ (где обычно html-страницы находятся) CGI-скрипты. Т.е. чтобы .py .pl и другие пододбные файлы можно было бы запускать просто перейдя в браузере localhost/имя_файла.pl например.
No. 18701    
>>18700
Есть прямой путь - сконфигурировать апач соответствующим образом.
1. Установить нужный мод в апач.
Для перла это mod_perl, для питона - mod_python или mod_wsgi
Ну и естественно в апаче должен быть включен mod_cgi
2. Правильно сконфигурировать хост в апаче, указав хендлер для соответствующих скриптов с помощью директив SetHandler и AddHandler, не забыв добавить Options ExecCGI:
https://httpd.apache.org/docs/2.4/howto/cgi.html

Есть обходной путь - поднимать свой питоновский или перловский бэкенд на внутреннем сервачке, проксируя на него запросы из апача через mod_proxy, это гораздо быстрее. Для этого тебе надо установить в апач mod_proxy и правильно сконфигурировать хост, с помощью директивы ProxyPass и ProxyPreserveHost
https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
No. 18711    
>>18701
А подскажи тогда, где Options directive находится?
Алсо,
> Есть обходной путь - поднимать свой питоновский или перловский бэкенд на внутреннем сервачке, проксируя на него запросы из апача через mod_proxy, это гораздо быстрее. Для этого тебе надо установить в апач mod_proxy и правильно сконфигурировать хост, с помощью директивы ProxyPass и ProxyPreserveHost
> https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
Вот тут расскажи мне по-подробнее.
No. 18725    
>>18711
>А подскажи тогда, где Options directive находится?
Не совсем понимаю вопрос, если про "в каком модуле", то там в туториале в самом верху про это пишут:
mod_cgi   Options


>Вот тут расскажи мне по-подробнее.
В случае питона, суть в том, что ты подключаешь серверный пакет и пишешь скрипт на питоне, который будет у тебя бэкендом выступать, например с помощью SimpleHTTPServer:
https://docs.python.org/2/library/simplehttpserver.html

Или какого-то фреймворка попроще, типа Bottle:
http://bottlepy.org/docs/dev/index.html
Тут тебе будет сразу и роутинг и запуск сервера на нужном порту из коробки.

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

<VirtualHost *:80>
  ServerName myhost.local
  ProxyPass "/" "http://127.0.0.1:8000/" <!-- Если у тебя на 8000 -->
  ProxyPreserveHost On <!-- Ну, если надо -->
</VirtualHost>

No. 18762    
151667335780.png-(7.48KB, 1592×211, .png)
18762
Автобус, будет такой вопрос к людям, которые хорошо знают ПХП. В общем, нашел хороший форк вичана - NPFChan. Решил пошатать его на локалхосте. Но, внезапно, когда я попытался запостить под кэпкодом, мне выдало такую ошибку на пикрелейтед. Собственно, как я понял, цикл foreach() здесь не может заполнить массив, правильно?
Решил полезть под капот движка, в поисках бага и судя по моим догадкам, баг может быть в этом блоке кода:
$post['capcode'] = false;

`

    
if ($mod && preg_match('/^((.+) )?## *(.+)$/', $post['name'], $matches)) {

        
$name = $matches[2] != '' ? $matches[2] : $config['anonymous'];

        
$cap = $matches[3];

        

        
foreach ($config['mod']['capcode'] as $mod_level => $capcode_group) {

            
if ($mod['type'] < $mod_level)

                
break;

            
foreach ($capcode_group as $capcode) {

                
if (strcasecmp($cap, $capcode) == 0) {

                    
$post['capcode'] = utf8tohtml($capcode);

                    
$post['name'] = $name;

                
}

            
}

        
}

    
}

Потом я пошел под капот оригинального вичана в то же самое место и вот что нашел:

$post['capcode'] = false;

    

    
if ($mod && preg_match('/^((.+) )?## (.+)$/', $post['name'], $matches)) {

        
$name = $matches[2] != '' ? $matches[2] : $config['anonymous'];

        
$cap = $matches[3];

        

        
if (isset($config['mod']['capcode'][$mod['type']])) {

            
if ( $config['mod']['capcode'][$mod['type']] === true ||

                
(is_array($config['mod']['capcode'][$mod['type']]) &&

                    
in_array($cap, $config['mod']['capcode'][$mod['type']])

                
)) {

                

                
$post['capcode'] = utf8tohtml($cap);

                
$post['name'] = $name;

            
}

        
}

    
}`

В общем может ли кто-то помочь пофиксить и увидеть здесь баг? Если нет, будет ли хорошая идея тогда как временный фикс, просто заменить это все, пока оффициальный разработчик не пофиксит это? Благо я ему уже написал об этом.
No. 18764    
Какие есть понятные книги по теории баз данных? Читаю введение в базы данных Дейта на 180 странице из 1316 уже устал.
No. 18767    
151673413856.png-(168.60KB, 474×626, mg_databases_big.png)
18767
>>18764
No. 18770    
>>18767
Базарю, хорошая книга.
Только она для тех, кто не знает, что такое реляционная база данных и слегка аутист.
Серьёзные вещи из неё не узнать.
No. 18774    
Стивы, можно ли на гитхабе сравнивать разные форки, чтобы при этом анализировались подробно изменения, которые были сделаны в коде проектов? Как при коммитах: добавление выделялось зелененьким, а удаление красненьким?
No. 18775    
>>18774
Гитхаб предлагает такое:
https://help.github.com/articles/comparing-commits-across-time/#comparing-across-forks

Даже с примером.
No. 18776    
>>18762
Ты немного переусложняешь вопрос. Ты должен подходить совсем иначе к этому багу. У тебя выводиться самая обычная ошибка invalid argument supplied for foreach, т.е. у тебя foreach цикл пытается перебирать не массив, а какую-то фигню, например булевый false, null или что-то еще. Просто включи у себя на хосте настройки php для корректного логирования ошибок дабы система тебе сказала какой именно foreach у тебя обосрался с такой ошибкой, ибо в коде том их очень много разных. Когда ты поймешь на каком из foreach циклов у тебя фигня, то просто вставляй var_dump перед ним и смотри что на самом деле ушло в тот foreach, уже после этого, смотря как заполняется эта переменная, ты сможешь понять почему это так произошло и исправить.

К слову, в следующий раз лучше так жутко не пость код, а дай ссылку на него, например, на pastebin или сразу на репозиторий.
No. 18779    
>>18776
> Просто включи у себя на хосте настройки php для корректного логирования ошибок дабы система тебе сказала какой именно foreach у тебя обосрался с такой ошибкой, ибо в коде том их очень много разных. Когда ты поймешь на каком из foreach циклов у тебя фигня, то просто вставляй var_dump перед ним и смотри что на самом деле ушло в тот foreach, уже после этого, смотря как заполняется эта переменная, ты сможешь понять почему это так произошло и исправить.
Скажи, как включить?
> К слову, в следующий раз лучше так жутко не пость код, а дай ссылку на него, например, на pastebin или сразу на репозиторий.
Извиняюсь, просто кукла очень криво все вставила. Вот ссылка на код:
https://github.com/fallenPineapple/NPFchan/blob/master/post.php
No. 18780    
>>18779
Вообще подобные настройки принято делать в php.ini, но многие из них, вроде тех самых log_errors, являются серверо-специфичными и зависят от других настроек и особенностей окружения.

Не уверен как именно у тебя настроено окружение и в каких условиях ты исполняешь код, поэтому, скорее всего, будет проще включить вывод ошибок прямо в тело страницы. Это можно сделать как через php.ini, так и через .htaccess и даже вызовом соответствующих функций прямо в теле php скрипта (если настройки окружения разрешают переопределять настройки подобные в рантайме, но обычно это разрешено). Попробуй добавить в начало файла следующие строки:

error_reporting(E_ALL);

ini_set("display_errors", 1);

No. 18783    
>>18770
Задумка крутая, но мне как раз-то нужно вот серьёзные вещи, теорию там освоить, а так да интересно.
No. 18787    
ребят, объясните, пожалуйста, как использовать бд которая генерируется asp.net identity с моей базой. то есть, построить связи межу табличкой юзера базы asp.net identity и моих табличек.

стоить ли присобачить все таблицы моей базы к бд identity через code first, связав все необходимое с табличкой юзера через foreign key?
или нужно держать эти базы раздельно, а в таблицах моей базы, в которой нужно сослаться на юзера - хранить его email или id, но уже без foreign key, разумеется?

лично я связал все через code first и думал, что это единый правильный вариант, но мой учитель сказал, что это не правильно и базы должны быть отдельно друг от друга. наверное, он прав, но то, что у меня в итоге получается больше похоже на какую-то хрень

помогите разобраться, а то в интернете вопросов об этом не встречал
No. 18788    
>>18787
> и базы должны быть отдельно друг от друга
Что ты несёшь? Я не понимаю.
No. 18789    
>>18788
asp.net identity автоматически создает базу данных с табличками, которые необходимы для его работы. кроме того, у меня есть база данных которую я использую в этом же приложении с табличками, которые должны быть связаны с таблицей пользователя из бд, которую создает asp.net identity.
например, у меня есть табличка с заказами, в которой должен быть foreign key на пользователя который этот заказ оформил базы которую создает asp.net identity

знаю, что объясняю не внятно, но надеюсь что меня кто-то поймет и поможет
No. 18792    
>>18683
А если даже php файлы не хочет открывать в директории /var/www то нужно все переустанавливать?
No. 18793    
>>18792

Нѣтъ, надо смѣнить настройки на вѣрныя и перезагрузить вебъ-сёрверъ.

Что значит «не хочет открывать»? В браузере виден исходный код PHP? В браузере видна ошибка? (Если да, то какая?) В браузере таймаут («сервер не отвечает»)?
No. 18795    
есть вот это: https://jsfiddle.net/og7wfmzj/1/
нужно чтобы оно адаптировалось под размер экрана - то есть в .container менять свойство font-size так, чтобы все выглядело красиво
я не представляю, как это можно сделать нормально, к тому же с em-единицами никогда раньше не работал
No. 18798    
>>18795
Нужно указать font-size в пикселях для html, остальные em будут множителями этого font-size. Если в html font-size: 20px, то 0.5em = 10px. Далее используем media query чтобы указать нужный font-size в html для каждого экрана. https://jsfiddle.net/og7wfmzj/2/
Лучше использовать rem вместо em, rem использует font-size, определенный именно в html, em берет его из родительского элемента.
Еще для расстановки сидячих мест идеально было бы изучить grid: https://css-tricks.com/snippets/css/complete-guide-grid/
Это намного все упрощает https://jsfiddle.net/og7wfmzj/3/
No. 18799    
>>18798
> используем media query чтобы указать нужный font-size в html для каждого экрана
спасибо, это помоголо мне получше разобраться. теперь осталось придумать скрипт, чтобы оно само меняло размеры когда изменяешь размер страницы браузера
> Лучше использовать rem вместо em, rem использует font-size, определенный именно в html, em берет его из родительского элемента
хм, я думаю, что мне подойдет скорее именно em, потому что кроме этой штуки на странице могут быть и другие вещи. и, насколько я понимаю, шрифт будет меняться на всей странице, а это мне не нужно хочу только чтобы места меняли размер, сохраняя свои пропорции и расположение
> Еще для расстановки сидячих мест идеально было бы изучить grid: https://css-tricks.com/snippets/css/complete-guide-grid/
не знал, что в css такое есть. добавил в закладки
это вроде круто, но я бы хотел чтобы админ мог в специальном редакторе сам расставить места, как он захочет. так что думаю здесь мне без координат и position:absolute не обойтись
No. 18800    
>>18799
> осталось придумать скрипт, чтобы оно само меняло размеры когда изменяешь размер страницы браузера
> @media only screen and (min-width: 640px) {
> @media only screen and (min-width: 800px) {
> @media only screen and (min-width: 1024px) {
No. 18801    
>>18800
я видел, но хотелось бы чтобы плавненько было. я на сайте multiplex.ua/ видел такое когда сеанс выбираешь
No. 18803    
>>18801
Тогда https://jsfiddle.net/og7wfmzj/6/
No. 18804    
>>18803
вау, спасибо тебе большое. я то думал придется js использовать для этого
No. 18806    
>>18789
Почитай, как делается разметка бд для code-first.
Столбец Identity в таблице у тебя уже есть, надо только узнать, как правильно оформит связь через него
No. 18807    
>>18793
> Not Found
> The requested URL /install.php was not found on this server.
Вот что пишет.
No. 18808    
Чиочан, как отправлять посты на сайт скриптами?
Что можно почитать про это?
No. 18812    
>>18806
а вот здесь, например, https://github.com/longdq-study/TaskManagement/blob/master/WebApplication/Models/IdentityModels.cs правильно все делается? код не мой
No. 18816    
>>18812
Ну, там сделали просто кастомный Identity на основе того, что идёт в поставке. Но тебе ведь не это надо.

Вот что говорит лучший друг MSDN:

Entity Framework Relationships and Navigation Properties
https://msdn.microsoft.com/en-us/library/jj713564(v=vs.113).aspx
No. 18817    
>>18808
Вот скриптом делаем пост


$.ajax({
                type: "POST",
                url: '/AjaxTest/FirstAjax',
                data: somethingSomething = "хуй",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: successFunc,
                error: errorFunc
            });

            function successFunc(data, status) {     
                alert(data);
            }

            function errorFunc() {
                alert('error');
            }


И на бекенде, в контроллере:

[HttpPost]
public ActionResult FirstAjax(string somethingSomething)
{
       return Json("пошол на хуй", JsonRequestBehavior.AllowGet);
}

Или что-то в этом духе.
No. 18830    
>>18816
посмотри пожалуйста, правильно ли вот тут https://github.com/aenen/Cinema/tree/master/Cinema.Data/Database код мой

и еще хотел спросить, это ведь нормально что я перенес некоторые классы, связанные c asp.net identity из asp.net mvc проекта в отдельную библиотеку? так то оно вроде работает
No. 18833    
>>18830
Мммм. Не выглядит похожим на правду.

Для таблицы:
 public partial class Order 


Свойства:
 

[Required]
public int UserId { get; set; }

public User User { get; set; }


Глянь, какую базу она тебе нагенерит. Я вот серьёзно уже хер сколько не делал code-first и всё позабыл к хуям.
No. 18834    
>>18833
да, оно мне в ордере сгенерило UserId и User_Id... точно, в юзера ведь айдишник стринговый. спасибо что зметил
No. 18838    
хочу для своего сайта example.com asp.net mvc добавить всякие удобные инструменты для администрирования сайта, который будет находиться на admin.example.com
так вот, я не знаю как правильно делать и работать с поддоменами. в интернете видел какие-то гайды, но они больше похожи на костыли, а мне интересно именно как люди делают чтоб правильно было. знает кто?
No. 18839    
>>18838
Не совсем понимаю, с чем именно тебе нужна помощь. Если ты зарегистрировал домен, то обычно всё настроено так, что запросы на поддомены будут перенаправляться на твой основной сервер. А там уже всё зависит от того как твой веб-сервер сконфигурирован.

>example.com
>admin.example.com
"Поддомен" это всё же базово отдельный домен. Всё что тебе надо сделать - поднять свой проект-админку отдельно, а затем настроить в своем веб-сервере виртуальный хост, чтобы перенаправлял все запросы, которые придут на admin.example.com на эту админку.

Если ты хочешь настроить как-то по-другому - опиши свои пожелания, постараюсь помочь.
No. 18845    
>>18839
ой, я случайно осознал что не знаю что такое просто домен. все свои вещи хостил на azure, а там такого не требовалось
No. 18858    
151758340594.png-(8.35KB, 450×421, Безымянный.png)
18858
супа, стивы
спасайте, пока меня не выебали
прилетает ко мне json, там есть всякое, но важно что там есть id и parentId (еще text и url)
надо средствами js его превратить в дерево в странице

типа пикрила
каждая вершина кликабельна
текст из жсона
юрлы из жсона

но там узлов 7 косарей
No. 18859    
15175904134.jpg-(15.42KB, 300×225, Язь.jpg)
18859
>>18858

https://www.jstree.com/docs/json/
No. 18860    
151759064914.jpg-(1.58MB, 1500×1956, vendetta large.jpg)
18860
>>18858

Но непременно https://github.com/vakata/jstree#populating-the-tree-using-a-callback-function по частям, а не то 7000 узлов (если «семь косарей» = 7000) похоронят дерево.
No. 18863    
151760513733.jpg-(263.92KB, 1919×2560, Ginny-harry-potter-world-2255145-1919-2560.jpg)
18863
Аноны, а подскажите или покидайте примеров и упражнений для фронт-енд разрабочтика. По совместительству - джаваскриптера. Просто неплохо знаю, это всё (html, css, es5,6,7,8,9,10000, вебпаки-галпы) по одному рабочему проекту, но как углублять знания - хз. Застрял между джуном и миддлом. Те же паттерны - где их применять вообще и зачем? Я, разве что, только фабрику создавал осмысленно. Больше ничего не пригодилось.
No. 18873    
151772785678.png-(19.70KB, 200×218, Slowpoke.png)
18873
Вроде проскакивал тут скрипт на питоне для скачки с сырнача и аиб в целом всех картинок.
Не осталось у кого?
No. 18880    
>>18863
Осторожно предположу, что чтобы углубляться дальше, тебе в первую очередь надо начинать заниматься проектированием этих самых приложений, или хотя бы их фронтенд части. Т.к. материальную базу ты уже освоил, то это выглядит как следующий логический шаг.

>Те же паттерны - где их применять вообще и зачем?
Паттерны - это просто набор готовых off-the-shelf решений для распространенных проблем проектирования и роста приложений. Они не всегда хорошо подходят туда где их применяют, но тем не менее, они существуют, и они уже готовы. Это отвечает на вопрос "зачем". На вопрос "где" можно ответить только глянув на, или начав создавать конкретное приложение. Паттерны это не догма, это просто твои шпаргалки, или шаблончики откуда и название

>Я, разве что, только фабрику создавал осмысленно.
Самое главное, что ты создавал её осмысленно, значит ты уже на верном пути. Очень важно не начинать использовать паттерны-шаблоны ради самого факта их использования.

В целом первое, что я мог бы тебе посоветовать - попросить больше ответственности на твоем рабочем месте, чтобы у тебя была возможность спроектировать что-то с нуля.

Если с этим проблемы - я бы предложил тебе спроектировать и создать своё приложение. Если проблемы с выбором проекта, то можешь подобрать такой прямо здесь, например, на этой доске есть запрос на ханафуду >>6903
No. 18902    
Ocenite http://jesussaves.fun/
Kakoe pervoe vpechatlenie slozhitsya u usera, chto on budet dumat chto proizoidet, kogda on kliknet na kartinku? Also, kartinka s nulcha, kazhetsia, 10% chto s dvach-hk
No. 18914    
>>18902
Первое впечатление - что это вход на сайт религиозной секты и что по клику ты собственно попадешь внутрь. Второе впечатление - а, это шутка такая.
No. 18960    
как сдвинуть элемент в самый низ хтмл блока? при использовании position: absolute; bottom: 0 этот блок может перекрывать элементы, которые находятся выше него

кстати, я тут услышал про flexbox. хорошая штука? стоит изучить и использовать? думал, может именно это поможет в подобном размещении элементов
No. 18969    
>>18960
> как сдвинуть элемент в самый низ хтмл блока? при использовании position: absolute; bottom: 0 этот блок может перекрывать элементы, которые находятся выше него

Резервируй под него место паддингом внизу контейнера, если абсолютный блок заданной высоты. Иначе придется менять порядок блоков в html или действительно изучать flexbox и связанное с ним свойство order.

И да, в любом случае изучай flexbox обязательно, это уже мейнстрим давно, хотя на всякий случай старые трюки с float и position тоже посмотри.
No. 18977    
>>18880
Проблема в том, что сейчас я не работаю. Пару месяцев назад выгорел на работе, разочаровался в кодинге как таковом и ушёл (обещали саморазвитие и Реакт через пару месяцев, в итоге - полгода легаси на нативе и jQ копал). Сейчас отпустило, вроде. Но синдром самозванца ещё очень сильно бьёт.

Для себя я пару софтинок на электроне писал, но и тут упирался в то, что всё уже написано или сделано лучше, чем можешь ты. Хочу написать качалку файлов - сотни вариаций есть уже. Быстрый менеджер фотографий - XNView или FastStone, пожалуйста. Нет идей, что писать, когда всё написано уже.

Думал Phaser.js покопать или что-то такое.
No. 18984    
Стивы, если я не могу зайти на сайт из-за этой проблемы: DNS_PROBE_FINISHED_NXDOMAIN
Причем сначала он работал хорошо, но потом когда я зарегистрировался и мне на почту пришла ссылка для подтверждения и когда я попытался открыть, то увидел ту ошибку. Пробовал с разных устройств и компьютеров: одно и тоже самое в итоге.
No. 18985    
>>18984
А все. Отбой. Проблема сама собой разрешилась.
No. 18992    
>>18969
спасибо! flexbox попробовал и получилось отлично с justify-content: space-between
No. 18993    
>>18977
>Пару месяцев назад выгорел на работе, разочаровался в кодинге как таковом и ушёл
Знакомое чувство, на самом деле, но я как-то держусь.

>Думал Phaser.js покопать или что-то такое.
Неплохой движок, мне понравился.

>Нет идей, что писать, когда всё написано уже.
По идее, если ты хочешь что-то сделать просто для повышения квалификации, то не важно, что таргет софт уже существует. Твоя цель - получить навыки и понять, как такое вообще делается самостоятельно, какие подводные камни, каки проблемы придётся решать, етц.

Ну и на всякий случай переспрошу, написать браузерную игру ханафуду на фазере, с мультиплеером по вебсокету нет желания? Если такую напишет, то она скорее всего будет крутиться прямо здесь и в неё смогут поиграть все желающие. Суть в том, что её в браузерном формате с мультиплеером уже вроде как нет: >>6903 Тред многострадальный, да
No. 18994    
>>18993
Спасибо за советы, анон. Пока решил со всякими checkio разобраться, т.к. интересно стало. По работе с алгоритмами почти не сталкивался, больше вёрстка. Понравились задачки с матрицами и вот этим всем. Буду пробовать дальше.

>Ну и на всякий случай переспрошу, написать браузерную игру ханафуду на фазере, с мультиплеером по вебсокету нет желания
Я так понял, там с бэком придётся много работать, а я не очень в этом. Но идейка интересная, сегодня-завтра почитаю в чём суть и какие правила у игры.
No. 18998    
>>18994
Спасибо. Заходи сюда иногда, помогай чем можешь, и рассказывай об успехах.
No. 18999    
>>18998
Постараюсь.
Сегодня вот спонтанно зашёл гитхаб проведать, а там мне какой-то китаец звёздочку поставил на мой просмотрщик картинок на электроне. Так вдохновился этим мя полезный лол, что запилил туда удаление файлов и навигацию стрелками (которая пока почему-то багается, если файлов >~20). Не заметил, как ночь пролетела.
Правда понял, что то, что я хочу сделать - на электроне в лоб не реализуемо. Он ведь загружает изображения полностью, не зависимо от того, какой размер в CSS на вывод я поставлю. Хоть 1 пиксель - он один фиг прогрузит все 5мб от картинки. Поэтому придётся ещё небольшой отдельный воркер для создания превью сделать (чтобы прогонял папку с картинками и сохранял копии с 100px по ширине в отдельную папку-базу, либо в sqlite запихну всё это).
Немного путанно вышло, извиняюсь. На этом пойду спать.
No. 19008    
я хочу на сайте сделать так, чтобы во время переходов по ссылкам в меню отображалась анимация загрузки до тех пор, пока страница не загрузится. то есть, обычно при переходах по страницам перезагружается вся страница, а я видел, что некоторые сайты отображают на весь экран какую-нибудь анимацию загрузки, а когда страница будет готова, то убирают анимацию и отображают страницу... вот подобное хочу, но не понимаю как оно делается.
я даже не знаю как это правильно загуглить, поэтому надеюсь на вашу помощь
No. 19009    
>>19008
Обычно это делается не при переходе по страницам самим браузерам, а на ссылку вешается слушатель, который аяксом грузит нужную страницу, отображает прогресс, затем меняет контент страницы в нужных местах и дописывает в адресную строку новый адрес.
Гуглить ajax navigation.
No. 19021    
мне нужно сделать так, чтобы записи в моей таблице "ticket", в которой значение свойства "ticketstateid" равное "3" удалялись через 10 минут после добавления но только если статус равен 3. я базы данных понимаю на уровне постройки табличек в онлайн-редакторе...
пожалуйста, напишите мне mssql скрипт для этого
могу подарить игру в стиме, если поможете
No. 19027    
>>19021
Начнём с того, что TSQL это не страшно. Разверни себе на рабочей машине тестовую базу и играйся с ней. Лёгкие знания tsql это всегда хорошо. Я категорически одобряю разработчиков, которым не надо ломать лицо, чтобы они смогли сделать
select * from 


Тебе нужно что-то в таком духе:

begin

    DELETE FROM dbo.[ticket] WHERE 
            [ticketstateid] = 3
            and [addTime] - CURRENT_TIMESTAMP = бингани операции со временем
end


Типа такого.

Эту штуку тебе нужно будет сделать в виде хранимки и дёргать её через таски винды (если у тебя всё на винде) и подвязка по таймеру.
Ещё эту елду можно чесать по триггеру (типа, на каждый инсерт/апдейт) выполнять эту хранимку.
Или в твоём сервисе завести тред/таск, который будет дёргать хранимку/тупо дропать строки.

Всё зависит от реализации и окружения. Я дал тебе лопату и показал, куда копать. Вопросы есть?

Референсы:
Время сервера: https://docs.microsoft.com/en-us/sql/t-sql/functions/current-timestamp-transact-sql
Хранимка: https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/create-a-stored-procedure
Вызов хранимки: https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/execute-a-stored-procedure
Вызов хранимки через таски винды: https://stackoverflow.com/questions/14321023/executing-a-stored-procedure-using-windows-task-scheduler
Триггер: https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql
Операции со временем: https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql
No. 19028    
Не то чтобы я был программистом, хотя немного в этом деле понимаю, а потому наверное могу считаться начинающим. Пишу сюда по той причине, что это регулярный тред предлагающий помощь опытных программистов. И мой вопрос заданный здесь особо доску не офтопнет. Так вот, собственно. Мне бы хотелось попросить ычанских программистов написать нового бота для нужд одной из ычанских тематических досок. И попросить знаменитых бородатых админов выделить под него уголок на любом своём сервере. Старый бот потерял актуальность, а сервер загнулся. Человек всем этим дело занимавшийся похоже умер. Стоит ли мне под настолько очевидно обречённую на забвение идею создавать здесь новый тред, или может быть поступить как то иначе? Заранее спасибо.
No. 19032    
>>19027
ого сколько всего, спасибо! попробую разобраться завтра-послезавтра

я тут мельком глянул ссылки и мне не понятно "Вызов хранимки через таски винды". там команда есть sqlcmd.exe -S "." -d MY_DATABASE -Q "SELECT * FROM MY_TABLE", так ее вызывать нужно через "Windows task Scheduler"? не знаю что это такое
а в самом sql это автоматизировать никак нельзя? мое веб приложение находится на azure вместе с бд, там есть вот такая похожая вещь https://azure.microsoft.com/en-us/services/scheduler/ , но она мне недоступна по подписке
No. 19035    
>>19028
Прежде чем начать ответ, отмечу, что /dev/ хостится не на ычане, а на 410м, и я не знаю сколько здесь "ычанских программистов".

Перейдем к сути, у тебя есть две проблемы.
1. Актуализировать код.
2. Найти место, где его развернуть.

Начнем с проблемы 2, т.к. её проще решить.
Т.к. ты наиболее заинтересованный в проекте по умолчанию, тебе скорее всего придётся хостить проект на своей площадке, хотя бы поначалу, что не проблема, т.к. сейчас есть нормальные площадки, которые предлагают бесплатные опции, например что-то из этого http://410chan.org/dev/res/14160.html#14720 по ходу дела подыскивая для кода более постоянное место среди заинтересованных админов.

С проблемой 1, т.е. с модификацией кода, всё сложнее.
Ключевой момент в её решении - рассчитывать разработку надо так, как будто делать тебе всё по большей части придется самому, и ты только отчасти будешь получать помощь / код других программистов, т.к. по умолчанию ты самый заинтересованный в этом проекте человек. Конечно, всё может сложиться в лучшую сторону, но базово изначально можно рассчитывать только на свои силы. Хорошая новость заключается в том, что твой собственный энтузиазм очень даже может помочь тебе найти других заинтересованных программистов.

Насчет треда - просто создать тред здесь конечно можно, но я не уверен, что здесь есть достаточная посещаемость для того, чтобы ты смог кого-то найти. Мне кажется, тебе нужно искать заинтересованных программистов среди посетителей раздела, для которого ты хочешь бота обновить (т.е. среди людей для которых цель изначально может иметь определенный интерес)

Итого, ты можешь начать актуализировать код самостоятельно, периодически обращаясь за помощью сюда, параллельно стартовав поиск энтузиастов в целевом разделе, и затем, если это сложится, вести процесс и отчет о разработке там же, или переехать в наш /dev/, создав новый тред.

Надеюсь, смог дать полезный совет.
No. 19036    
>>19028
я случайно увидел такую штуку: https://metanit.com/sharp/mvc5/24.1.php
если я буду каждую минуту лезть в базу через энтити фреймворк используя ту штуку и удалять билеты по условию, то это будет нормально?
No. 19037    
151830515876.png-(111.83KB, 448×448, 1508273817378.png)
19037
>>19028
В чём смысл этого поста? Тебе что-то нужно? Ты пишешь пост. Пост не подходит под тематику какого-либо треда, но подходит под тематику доски? Ты создаёшь новый тред. Не понравится - не ответят. Не прав - забанят. А тут всё-таки "Разработка", а не "Менеджмент, пиар и личностный рост".

>>19035
Тут есть достаточная посещаемость для того, чтобы ставить тут официальные реквесты по доработке вида "сделайте Х, а что у нас стоит - догадайтесь и настройте сами". Другое дело, что в посте и реквеста-то нет, какая-то пространная история про каких-то Ычановских ботов, со своей историей и пропавшими создателями, которые, видимо, не делились кодом. Я вот грешным делом думаю, что тут просят написать автобампалку, или что похлеще, при такой-то паранойе в раскрытии деталей и необходимости целого бота для нужд одного дохлораздела.
No. 19040    
Мне действительно не следовало это делать, извините, не ожидал что так заденет. Всё же это /dev/ ычана верно? А там другая тематика ычана. Разумеется там помощь реквестировалась в первую очередь. То что в итоге придётся всё делать своими силами было очевидно с самого начала. Поверьте, если бы имелась такая возможность, всё было бы сделано не беспокоя других. Тем не менее, спасибо за советы. Вопрос закрыт. Ещё раз извините. Названия "разработка" и "Начинающих программистов нить №3", немного запутали. Моя ошибка. Обычно не любят как раз таки тех, кто не вникнув в традиции доски сразу плодит под свои проблемы новые треды.
No. 19041    
ой, промахнулся
это
>>19036
к этому нужно
>>19027
No. 19042    
>>19040
Ок, просто создай тред, и напиши, что конкретно требуется.
No. 19058    
>>19032
> так ее вызывать нужно через "Windows task Scheduler"? не знаю что это такое
Ты просто заводишь задачу в виндовом task Scheduler. Ничего экстраординарного
https://blogs.technet.microsoft.com/heyscriptingguy/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script/

> а в самом sql это автоматизировать никак нельзя?
Можешь сделать mssql job. Я совсем про них забыл.
https://technet.microsoft.com/en-us/library/ms191439(v=sql.110).aspx
https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job
No. 19059    
>>19036
> каждую минуту
А тебе реально надо каждую минуту туда лезть? Если нет, то делай реже. А лучше сделай настройку в конфиге.

Впервые слышу про эту штуку. Но звучит неплохо, чо.
No. 19060    
>>19058
спасибо за ссылочки, но я уже с тем quartz сделал и оно вроде даже работает
>>19059
> А тебе реально надо каждую минуту туда лезть? Если нет, то делай реже. А лучше сделай настройку в конфиге.
а насколько реже сделать чтоб было нормально? у меня получается если юзер покупает билет, то он резервируется на 15 минут и если заказ не был оплачен или что-то пошло не так, то билет должен удалиться через 15 мин.
если я буду каждые 15 минут лезть в базу этим quartz, то неоплаченный билет может висеть 30 мин вместо 15
No. 19061    
Python
Нужно запарсить сайт, запуская скрипт с raspberry pi без экрана. Через requests.get получаю в body вместо нужной мне информации такой текст: "Включите JS для корректной работы сайта". Нагуглил я selenium. Как я понял, он тут и нужен. Но мозилла не хочет работать без дисплея (даже в headless режиме)! Что делать, 410чан?
No. 19063    
>>19061
К счастью, кажется, есть точный ответ на твой вопрос и инструкция к действиям: https://stackoverflow.com/a/10399597

Базово, ты создашь "фейковый" дисплей, которым будет пользоваться фаерфокс.
No. 19064    
>>19060
Ладно, дрочи каждую минуту.
Если появится проблема, то будем её решать. А если нет, то у нас будет больше времени на пиво и красоток.
No. 19073    
>>19061
Что мешает использовать headless chrome?
No. 19074    
>>19073
Как я понимаю, у человека проблема в том, что headless браузер всё равно не заводится без дисплея. Но если это только фаерфокс так себя ведет, то можно и переключиться на другой драйвер, да.
No. 19077    
Хочу стать профессиональным программистом. Реальным профессионалом, который понимает что, как, зачем и почему.
Нет цели выучить за год какой-нибудь джаваскрипт и быстрее быстрее начать клепать сайты. Есть цель реально разбираться в теме.
Что вообще нужно изучать? Алгоритмы, сети, базы данных? Существует какой-нибудь хороший гайд, в котором написано, что нужно изучать и в какой последовательности? И желательно, чтобы там указывались хорошие учебники.
No. 19078    
>>19077
Чтобы стать профессиональным ремесленником, достаточно начать работать.
No. 19081    
>>19077
Программист это очень расплывчатый термин.
Есть очень разные профи.
Например, Серёга сделает заебатый отказоустойчивый сервис, который не встанет раком на 300к запросах в секунду, но сделает невыразимо дерьмовую нативную приложуху, которая сожрёт всю оперативу и уронит винду в бсод.
А Димон может заебошить отличную приложуху, но его сервак это шлак.
И оба этих дебила будут долго и плохо писать нейронную сеть.
И три этих дебила не смогут написать драйвер для сканера сетчатки глаза.
И четыре этих дебила не смогут написать автопилот для космической ракеты.
И пять этих дебилов не смогут сделать рабочу форму login'а.
И шесть этих дебилов...

Ну ты понял.
No. 19082    
>>19081
Но всё равно ведь существуют какие-то базовые общие вещи, которые должны знать все эти дебилы программисты?
No. 19085    
Javascript. Приложение. Суть такова: пользователь может осуществлять ввод информации в разные поля, информация должна сохранятся в базу данных. Проблема в том когда вызывать сохранение информации. Кнопки сохранить нет и не будет. Про приложение могут забыть в процессе использования, отвлечься на что-то, а потом вообще браузер закроют и привет. Поэтому в любом случае автоматическое сохранение, вопрос лишь к чему привязываться. Делать просто setInterval кажется совсем уж плохим решением, цепляться за ввод и бомбить БД запросами при вводе каждого символа тоже вряд ли разумно.
No. 19087    
>>19077
>>19082
Общее свойство, объединяющий всех программистов - алгоритмическое мышление не путать с заучиванием алгоритмов, которое позволяет представлять и понимать работу приложения, глядя на код. Его можно заложить с помощью упражнений, но по-настоящему оно вырабатывается с опытом.

Одно из свойств, отличающее хороших программистов от плохих - понимание инфраструктуры, в которой будет крутиться их приложение, и умение с ней работать.

Эти два свойства позволят программисту достаточно быстро переключаться на новые языки, переходить с одним платформ на другие, менять фреймворки, портировать свои старые приложения, и т.д, т.е. придают ему гибкость, которая позволит достаточно долго не терять работу.

Что же касается "что изучать", то тебе действительно нужно выбрать направление, которым ты хочешь заниматься, и которое тебе будет интересно. Мне кажется, тут может оказаться полезной информация из нашей базы знаний:

>>Я хочу программировать, но не понимаю, куда можно приложить усилия
http://410chan.org/dev/arch/res/14160.html#14354

>>Я ищу свой стек / хочу переквалифицироваться / поменять стек
http://410chan.org/dev/arch/res/14160.html#14188
http://410chan.org/dev/arch/res/14160.html#14265
http://410chan.org/dev/arch/res/14160.html#15233
http://410chan.org/dev/arch/res/14160.html#14968

>>Пополняемая база знаний
https://pastebin.com/AGhLZppH
No. 19088    
>>19085
>Делать просто setInterval кажется совсем уж плохим решением, цепляться за ввод и бомбить БД запросами при вводе каждого символа тоже вряд ли разумно.

Один из стандартных способов решения такой ситуации:

        var timeoutHandle;
        $("input", someForm).keyup(
            function(e) {
                clearTimeout(timeoutHandle)
                if(e.keyCode === 13) {
                    //Принудительно сохранить по Enter
                    return;
                }
                
                timeoutHandle = setTimeout(function(){
                    //Сохранить по таймауту
                }, 1000)
            }
            );


Здесь, каждый раз как пользователь отпускает кнопку, он очищает старый таймаут, и заводит новый. Если пользователь ничего не будет трогать 1 секунду, то таймаут сработает и данные сохранятся. Дополнительно, добавлено принудительное сохранение по нажатию Enter в поле формы.
No. 19090    
>>19088
Ну кидайте вы код на специальные ресурсы! Что ж вы как селюки какие-то?!
No. 19092    
>>19088
Спасибо, почему-то про такой вариант я и не подумал
No. 19120    
>>19090

На другом ресурсе код может и пропасть, а на /dev/ только вместе с /dev/ и пропадёт.
No. 19121    
>>19088

Очень хорошо, но можно и чуть получше.

Во-первых, чуть экономнее вешать обработчик событий не на каждый input, а один на всю форму. (Если заранее не известно, что inputов один-два и обчёлся.)

Во-вторых, чуть безопаснее запускать обработчик раз в секунду даже по мере набора текста, чтобы он всё-таки вызвался двадцать раз кряду, даже если печатающий непрестанно печатал двадцать секунд кряду без роздыху (а не то обидно ж будет ему утратить всё это несохранённым).

В-третьих, раз уж при обработке событий вместо «изобретения велосипеда» используется готовый метод keyup из библиотеки jQuery, то и для откладывания исполнения функции полезно использовать готовый метод throttle из библиотеки Lodash.

Будет как-то так:

var saveInput = inputElement => {

   // …тут сохраняется содержимое инпута…
};
var regularSave = _.throttle(saveInput, 1000, {leading: false});

$(someForm).on('keyup', 'input', function(ev){
   if( ev.keyCode === 13 ){
      saveInput(this);
      regularSave.cancel();
   } else regularSave(this);
});

No. 19122    
https://github.com/cccxd/Anonsaba -- почему-то не ставится анонсаба. Все сделал по инструкции. Там создался даже рут-аккаунт. Но скрипт: localhost/manage.php не хочет запускаться. Просто белый экран. Может ли кто-то если не сложно попробовать установить и запустить анонсабу на локалхосте. Просто чтобы удостовериться: это я как-то криво все ставлю или там фатальный баг в установщике есть.
No. 19124    
Правда, и >>19121 есть ещё куда улучшать: надо ещё, по меньшей мере, обработчик события 'change' (на тот случай, если текст не набирали, а копипастнули, но сохранять его всё же надо) и 'blur' (мгновенно сохранить содержимое покинутого элемента).
No. 19125    
>>19122
Белый экран может быть вызван разными причинами, но, по моему опыту, самая распространенная проблема заключается в том, что происходит какая-то ошибка, которая убивает тебе вывод, но при этом в среде не включен вывод ошибок. Попробуй, для начала, тупо в сам скрипт manage.php добавить вначале две следующие строки для того чтобы переопределить настройки обработки ошибок (если это можно в твоей среде):

error_reporting(E_ALL);
ini_set('display_errors', 1);
No. 19128    
asp.net mvc
планирую динамически создавать в контроллере пдф-файл или картинку, и не сохраняя ее - отправлять на вью. как вам идея? просто здесь может храниться конфиденциальная информация и если я сохраню картинку просто на сервере, то к ней ведь любой может получить доступ или можно настроить так, чтобы не у всех были права? я просто не знаю

попробую сделать по тому гайду: http://justins-fat-tire.blogspot.com/2016/03/aspnet-mvc-dynamically-create-and.html
No. 19133    
>>18494
Windows 7. Вообщем решение пока в codeanywhere. Правда если долго не пользоваться, то проект/виртуальная машина там удаляется.
No. 19167    
Стивы, а кто может объяснить самое простое решение для сервера с очередью на сокетах? Я фронт, в бэк никогда не лазил, пытаюсь спроектировать одну штуку и не могу это представить даже.
Суть: решил разобраться, как это всё работает и простой сделать сайт, при заходе на который сервер ждёт ещё 1 человека. Когда вас стало двое - вас кидает в приватную "комнату", где есть чатик. А если один из них выходит, то другому пишет "Сессия закрыта" с кнопочкой "Искать новую".
Т.е. если на сервере "висит" 7 человек, то 6 - в комнатках, а 7й ждёт 8го.
В каком виде можно реализовать ожидание, сортировку и комнатки на той же ноде? Как это выглядит вообще с точки зрения бэка?
No. 19169    
>>19167
Смотри, твой бэк будет состоять из двух логических компонентов.
1. Комната, класс которой содержит внутреннию логику общения между людьми.
2. Роутер между комнатами, класс которого управляет жизнью комнат, пересылает сообщения, и определяет юзеров по комнатам. Роутер, понятно, синглтон.

Когда человек конектится на сервер, роутер проходит по хранилищу комнат, и проверяет, есть ли неполные комнаты.
Если неполные комнаты есть, то он определяет нового человека в первую такую комнату, генерирует для комнаты токен и высылает его обоим участникам, благодаря чему они смогут пересылать сообщения друг другу (токен, естественно будет использован роутером, чтобы понять, в какую комнату броадкастить присланное сообщение)
Если неполных комнат нет, то роутер создает комнату, добавляет туда участника, но пока не придёт второй кент, токен не выдает. Соответственно, на все сообщения без валидного токена сервер отвечает "Ожидайте"
Если общение началось, но участник вышел У команты тут же забирается токен, и она опять превращается в неполную. Здесь можно поступить просто, сложно, или грязно. Просто - просто дождаться, когда придёт еще один человек, и алгоритм сработает снова. Сложно - порыскать по комнатам, в поисках другой неполной, и слить их воедино. Грязно - отправить пользователю сообщение по которому клиент заберет у него токен и рефрешнет страницу, чтобы пользователь считался новым и был определен в другую комнату как обычно.
Если из комнаты вышло оба участника - роутер убирает эту комнату из своего списка. Это можно сделать по ивенту от комнаты, или регулярной проверкой количества людей в комнатах.

Т.е. схема такая - на каждый коннект ты или создаешь новую комнату сразу (если мест нет), или добавляешь человека в первую свободную комнату (если места есть). Пока комната не активна (у комнаты и пользователей нет валидного токена), в ответ на все сообщения им приходит "Ждите". Таким образом проблема ожидания решается сама собой. Что касается проблемы сортировки, то это не то что бы проблема. Комнаты будут хранится в переменной у роутера, и там ты их можешь сортировать как тебе нравится. Можешь это делать при поиске свободной комнаты, а можешь по созданию новой комнаты, это не принципиально, критерием сортировки будет просто одно из полей класса комнаты.

Надеюсь, получилось донести идею. Не стесняйся задавать вопросы.
No. 19170    
>>19169
Спасибо! Более-менее понятно стало. Правда мне смысла в неполных комнатах нет, т.к. хочу что-то вроде небольшой игры сделать. Двое зашли, отыграли, один проиграл - всё. Сессия закрыта. Не нужно туда никого доподключать.
Думал сделать некий пул (кучу), где будут сидеть новые игроки (даём каждому guid свой) и сервер будет раз в секунду, например, опрашивать его. Если больше одного человека - начинаем генерировать события Игра и раскидывать туда людей. У каждой игровой сессии будет свой guid и 2 установленных пользователя на допуск. Тогда не получится ВНЕЗАПНО залезть в чужую.
Пока сложно представляю это в коде, но по проектированию уже есть идейки. Попозже за карандаш сяду.
No. 19187    
Стивы, такая проблема. Я не помню из-за чего, я загнал свой локальный хост до того, что когда я захожу на localhost, то у меня 404 выскакивает. Пробовал даже перезапускать его и ничего. Как можно быстро и эффективно снести все (апач, mysql, php...) или переустановить все через командную строку. Буду благодарен за помощь.
No. 19188    
>>19187
Уточни хоть, что за система, какая версия. Штатный экстрасенс на Битве экстрасенсев.
No. 19189    
>>19188
Кубунта. 17 версия.
No. 19190    
>>19189
17.10 если точнее.
No. 19195    
>>19187
>Я не помню из-за чего, я загнал свой локальный хост до того, что когда я захожу на localhost, то у меня 404 выскакивает

>Как можно быстро и эффективно снести все (апач, mysql, php...) или переустановить все через командную строку.
>Кубунта. 17 версия.
Не вздумай удалять MySQL, т.к. у твоей кубунты KDE с помощью нее живет. Удалишь - останешься без KDE. Чтобы бахнуть апач вместе с конфигурацией а потом установить заново тебе нужно:
sudo apt-get remove --purge apache2 apache2-utils

sudo apt-get install apache2


Пхп, мне, кажется, трогать не нужно, разве что ты сильно трогал php.ini. По идее тебе надо просто сменить конфигурацию апача на дефолтную, или даже просто поотключать вхосты, и всё у тебя должно быть хорошо. Если у тебя просто "нет" локалхоста - проверь, что в конфигурации апача есть вхост, который слушает 80й порт. Также проверь, что в /etc/hosts прописан локалхост и он указывает на 127.0.0.1
No. 19199    
>>19195
Ой, извини, я был уставший и перепутал. У меня убунта та же версия. Хотя кубунта у меня тоже стоит, но балываться с сервером я предпочитаю на убунте.
> apache2-utils
А при установке я так понимаю, он потом их автоматически устанавливает?
No. 19200    
>>19199
>>А при установке я так понимаю, он потом их автоматически устанавливает?
> apt-cache depends apache2
> ...
> Depends: apache2-utils
Да. Это кстати просто тулзы, нужные для сборки, они не эксклюзивно для апача, не смотря на название.
No. 19205    
>>19200
А mysql нужно будет тоже переустанавливать?
No. 19206    
>>19200
Или MySQL удаляется когда ты используешь команду:
sudo apt-get remove --purge apache2 apache2-utils

No. 19209    
>>19195
Когда удалил апач и попытался заново скачать, получил это на выходе:
'Невозможно получить некоторые архивы, вероятно надо запустить apt-get update или попытаться повторить запуск с ключом --fix-missing'
No. 19211    
>>19209
Ну, похоже она не может достучаться до репозитория с нужным пакетом. Сделай то, что оно просит:

>apt-get update
обновит список доступных пакетов

>--fix-missing
проигнорирует отсутствующие / зафейленные пакеты и попробует всё снова

И сообщи результат.
No. 19217    
>>19211
> >apt-get update
Игн:1 http://ua.archive.ubuntu.com/ubuntu zesty InRelease
Игн:2 http://ua.archive.ubuntu.com/ubuntu zesty-updates InRelease
Игн:3 http://ua.archive.ubuntu.com/ubuntu zesty-backports InRelease
Ошк:4 http://ua.archive.ubuntu.com/ubuntu zesty Release
404 Not Found
Ошк:5 http://ua.archive.ubuntu.com/ubuntu zesty-updates Release
404 Not Found
Ошк:6 http://ua.archive.ubuntu.com/ubuntu zesty-backports Release
404 Not Found
Игн:7 http://security.ubuntu.com/ubuntu zesty-security InRelease
Ошк:8 http://security.ubuntu.com/ubuntu zesty-security Release
404 Not Found [IP: 91.189.88.161 80]
Чтение списков пакетов… Готово
E: The repository 'http://ua.archive.ubuntu.com/ubuntu zesty Release' does no longer have a Release file.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, и поэтому по умолчанию он отключён.
N: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.
E: The repository 'http://ua.archive.ubuntu.com/ubuntu zesty-updates Release' does no longer have a Release file.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, и поэтому по умолчанию он отключён.
N: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.
E: The repository 'http://ua.archive.ubuntu.com/ubuntu zesty-backports Release' does no longer have a Release file.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, и поэтому по умолчанию он отключён.
N: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.
E: The repository 'http://security.ubuntu.com/ubuntu zesty-security Release' does no longer have a Release file.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, и поэтому по умолчанию он отключён.
N: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.
> >--fix-missing
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
linux-headers-4.10.0-19 linux-headers-4.10.0-19-generic linux-headers-4.10.0-35 linux-headers-4.10.0-35-generic
linux-image-4.10.0-19-generic linux-image-4.10.0-35-generic linux-image-extra-4.10.0-19-generic
linux-image-extra-4.10.0-35-generic linux-signed-image-4.10.0-19-generic linux-signed-image-4.10.0-35-generic
Для их удаления используйте «sudo apt autoremove».
Будут установлены следующие дополнительные пакеты:
apache2-utils
Предлагаемые пакеты:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
НОВЫЕ пакеты, которые будут установлены:
apache2 apache2-utils
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 96 пакетов не обновлено.
Необходимо скачать 178 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 856 kB.
Хотите продолжить? [Д/н] д
Ошк:1 http://ua.archive.ubuntu.com/ubuntu zesty-updates/main amd64 apache2-utils amd64 2.4.25-3ubuntu2.3
404 Not Found
Игн:2 http://ua.archive.ubuntu.com/ubuntu zesty-updates/main amd64 apache2 amd64 2.4.25-3ubuntu2.3
Ошк:1 http://security.ubuntu.com/ubuntu zesty-security/main amd64 apache2-utils amd64 2.4.25-3ubuntu2.3
404 Not Found
Ошк:2 http://security.ubuntu.com/ubuntu zesty-security/main amd64 apache2 amd64 2.4.25-3ubuntu2.3
404 Not Found
Невозможно исправить ситуацию с пропущенными пакетами.
E: Не удалось получить http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-utils_2.4.25-3ubuntu2.3_amd64.deb 404 Not Found
E: Не удалось получить http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.4.25-3ubuntu2.3_amd64.deb 404 Not Found
E: Аварийное завершение установки.
No. 19218    
>>19217
Как можно видеть, у твоей убунту больше не стало репозиториев:

>http://ua.archive.ubuntu.com/ubuntu zesty Release
>404 Not Found
>http://ua.archive.ubuntu.com/ubuntu zesty-updates Release
>Not Found
>http://security.ubuntu.com/ubuntu zesty-security Release
>404 Not Found

И закономерно, система оттуда достать пакеты уже не может:
>E: Не удалось получить http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-utils_2.4.25-3ubuntu2.3_amd64.deb 404 Not Found
>E: Не удалось получить http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.4.25-3ubuntu2.3_amd64.deb 404 Not Found

Ты говоришь, что у тебя 17.10. У тебя точно 17.10, а не, скажем 17.04 LTS?
Ибо у 17.10 коуднейм Artful, а у тебя Zesty:
https://wiki.ubuntu.com/ZestyZapus/ReleaseNotes

И твою ситуацию описывают LTSники:
https://ubuntuforums.org/showthread.php?t=2382832
Суть в том, что поддержка LTSки кончилась в Январе 2018

И теперь пакеты живут на
>deb http://old-releases.ubuntu.com/ubuntu/ zesty main restricted universe multiverse
>deb http://old-releases.ubuntu.com/ubuntu/ zesty-updates main restricted universe multiverse
>deb http://old-releases.ubuntu.com/ubuntu/ zesty-security main restricted universe multiverse

Если у тебя LTS, добавь эти репы в sources.list, закомменть старые по тем же тегам, сделай update, сделай инстал с фиксом и сообщи результат.

Если у тебя не 17.04 LTS, будем разбираться, что еще пошло не так.
No. 19229    
>>19218
Вроде получилось, лог из терминала (правда показало какую-то ошибку там все равно):
Пол:1 http://old-releases.ubuntu.com/ubuntu zesty InRelease [243 kB]

Пол:2 http://old-releases.ubuntu.com/ubuntu zesty-updates InRelease [89,2 kB]

Пол:3 http://old-releases.ubuntu.com/ubuntu zesty-security InRelease [89,2 kB]

Пол:4 http://old-releases.ubuntu.com/ubuntu zesty/main amd64 Packages [1.207 kB]

Пол:5 http://old-releases.ubuntu.com/ubuntu zesty/main i386 Packages [1.204 kB]

Пол:6 http://old-releases.ubuntu.com/ubuntu zesty/main Translation-ru [396 kB]

Пол:7 http://old-releases.ubuntu.com/ubuntu zesty/main Translation-en [577 kB]

Пол:8 http://old-releases.ubuntu.com/ubuntu zesty/main amd64 DEP-11 Metadata [536 kB]

Пол:9 http://old-releases.ubuntu.com/ubuntu zesty/main DEP-11 64x64 Icons [373 kB]

Пол:10 http://old-releases.ubuntu.com/ubuntu zesty/restricted i386 Packages [8.648 B]

Пол:11 http://old-releases.ubuntu.com/ubuntu zesty/restricted amd64 Packages [8.672 B]

Пол:12 http://old-releases.ubuntu.com/ubuntu zesty/restricted Translation-en [2.724 B]

Пол:13 http://old-releases.ubuntu.com/ubuntu zesty/restricted Translation-ru [3.056 B]

Пол:14 http://old-releases.ubuntu.com/ubuntu zesty/restricted amd64 DEP-11 Metadata [185 B]

Пол:15 http://old-releases.ubuntu.com/ubuntu zesty/universe amd64 Packages [8.068 kB]

Пол:16 http://old-releases.ubuntu.com/ubuntu zesty/universe i386 Packages [8.037 kB]

Пол:17 http://old-releases.ubuntu.com/ubuntu zesty/universe Translation-en [4.671 kB]

Пол:18 http://old-releases.ubuntu.com/ubuntu zesty/universe Translation-ru [1.255 kB]

Пол:19 http://old-releases.ubuntu.com/ubuntu zesty/universe amd64 DEP-11 Metadata [2.713 kB]

Пол:20 http://old-releases.ubuntu.com/ubuntu zesty/universe DEP-11 64x64 Icons [7.842 kB]

Пол:21 http://old-releases.ubuntu.com/ubuntu zesty/multiverse amd64 Packages [154 kB]

Пол:22 http://old-releases.ubuntu.com/ubuntu zesty/multiverse i386 Packages [147 kB]

Пол:23 http://old-releases.ubuntu.com/ubuntu zesty/multiverse Translation-en [109 kB]

Пол:24 http://old-releases.ubuntu.com/ubuntu zesty/multiverse Translation-ru [83,9 kB]

Пол:25 http://old-releases.ubuntu.com/ubuntu zesty/multiverse amd64 DEP-11 Metadata [43,3 kB]

Пол:26 http://old-releases.ubuntu.com/ubuntu zesty/multiverse DEP-11 64x64 Icons [207 kB]

Пол:27 http://old-releases.ubuntu.com/ubuntu zesty-updates/main i386 Packages [253 kB]

Пол:28 http://old-releases.ubuntu.com/ubuntu zesty-updates/main amd64 Packages [257 kB]

Пол:29 http://old-releases.ubuntu.com/ubuntu zesty-updates/main Translation-en [118 kB]

Пол:30 http://old-releases.ubuntu.com/ubuntu zesty-updates/main amd64 DEP-11 Metadata [55,2 kB]

Пол:31 http://old-releases.ubuntu.com/ubuntu zesty-updates/main DEP-11 64x64 Icons [32,3 kB]

Пол:32 http://old-releases.ubuntu.com/ubuntu zesty-updates/restricted i386 Packages [2.452 B]

Пол:33 http://old-releases.ubuntu.com/ubuntu zesty-updates/restricted amd64 Packages [2.460 B]

Пол:34 http://old-releases.ubuntu.com/ubuntu zesty-updates/restricted Translation-en [1.352 B]

Пол:35 http://old-releases.ubuntu.com/ubuntu zesty-updates/restricted amd64 DEP-11 Metadata [193 B]

Пол:36 http://old-releases.ubuntu.com/ubuntu zesty-updates/universe i386 Packages [170 kB]

Пол:37 http://old-releases.ubuntu.com/ubuntu zesty-updates/universe amd64 Packages [170 kB]

Пол:38 http://old-releases.ubuntu.com/ubuntu zesty-updates/universe Translation-en [95,6 kB]

Пол:39 http://old-releases.ubuntu.com/ubuntu zesty-updates/universe amd64 DEP-11 Metadata [203 kB]

Пол:40 http://old-releases.ubuntu.com/ubuntu zesty-updates/universe DEP-11 64x64 Icons [295 kB]

Пол:41 http://old-releases.ubuntu.com/ubuntu zesty-updates/multiverse i386 Packages [12,0 kB]

Пол:42 http://old-releases.ubuntu.com/ubuntu zesty-updates/multiverse amd64 Packages [11,8 kB]

Пол:43 http://old-releases.ubuntu.com/ubuntu zesty-updates/multiverse Translation-en [6.280 B]

Пол:44 http://old-releases.ubuntu.com/ubuntu zesty-updates/multiverse amd64 DEP-11 Metadata [5.840 B]

Пол:45 http://old-releases.ubuntu.com/ubuntu zesty-updates/multiverse DEP-11 64x64 Icons [9.203 B]

Пол:46 http://old-releases.ubuntu.com/ubuntu zesty-security/main i386 Packages [176 kB]

Пол:47 http://old-releases.ubuntu.com/ubuntu zesty-security/main amd64 Packages [180 kB]

Пол:48 http://old-releases.ubuntu.com/ubuntu zesty-security/main Translation-en [82,0 kB]

Пол:49 http://old-releases.ubuntu.com/ubuntu zesty-security/main amd64 DEP-11 Metadata [15,1 kB]

Пол:50 http://old-releases.ubuntu.com/ubuntu zesty-security/main DEP-11 64x64 Icons [17,6 kB]

Пол:51 http://old-releases.ubuntu.com/ubuntu zesty-security/restricted i386 Packages [2.452 B]

Пол:52 http://old-releases.ubuntu.com/ubuntu zesty-security/restricted amd64 Packages [2.460 B]

Пол:53 http://old-releases.ubuntu.com/ubuntu zesty-security/restricted Translation-en [1.352 B]

Пол:54 http://old-releases.ubuntu.com/ubuntu zesty-security/restricted amd64 DEP-11 Metadata [192 B]

Пол:55 http://old-releases.ubuntu.com/ubuntu zesty-security/universe i386 Packages [91,7 kB]

Пол:56 http://old-releases.ubuntu.com/ubuntu zesty-security/universe amd64 Packages [91,6 kB]

Пол:57 http://old-releases.ubuntu.com/ubuntu zesty-security/universe Translation-en [59,6 kB]

Пол:58 http://old-releases.ubuntu.com/ubuntu zesty-security/universe amd64 DEP-11 Metadata [27,4 kB]

Пол:59 http://old-releases.ubuntu.com/ubuntu zesty-security/universe DEP-11 64x64 Icons [52,1 kB]

Пол:60 http://old-releases.ubuntu.com/ubuntu zesty-security/multiverse i386 Packages [3.132 B]

Пол:61 http://old-releases.ubuntu.com/ubuntu zesty-security/multiverse amd64 Packages [2.976 B]

Пол:62 http://old-releases.ubuntu.com/ubuntu zesty-security/multiverse Translation-en [1.744 B]

Пол:63 http://old-releases.ubuntu.com/ubuntu zesty-security/multiverse amd64 DEP-11 Metadata [208 B]

Пол:64 http://old-releases.ubuntu.com/ubuntu zesty-security/multiverse DEP-11 64x64 Icons [29 B]

Получено 40,6 MБ за 20с (2.004 kБ/c)

Чтение списков пакетов… Готово

No. 19230    
>>19218
А это по апачу:
Чтение списков пакетов… Готово

Построение дерева зависимостей

Чтение информации о состоянии… Готово

Следующие пакеты устанавливались автоматически и больше не требуются:

linux-headers-4.10.0-19 linux-headers-4.10.0-19-generic linux-headers-4.10.0-35 linux-headers-4.10.0-35-generic

linux-image-4.10.0-19-generic linux-image-4.10.0-35-generic linux-image-extra-4.10.0-19-generic

linux-image-extra-4.10.0-35-generic linux-signed-image-4.10.0-19-generic linux-signed-image-4.10.0-35-generic

Для их удаления используйте «sudo apt autoremove».

Будут установлены следующие дополнительные пакеты:

apache2-utils

Предлагаемые пакеты:

apache2-doc apache2-suexec-pristine | apache2-suexec-custom

НОВЫЕ пакеты, которые будут установлены:

apache2 apache2-utils

обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 98 пакетов не обновлено.

Необходимо скачать 178 kБ архивов.

После данной операции, объём занятого дискового пространства возрастёт на 856 kB.

Хотите продолжить? [Д/н] Д

Пол:1 http://old-releases.ubuntu.com/ubuntu zesty-updates/main amd64 apache2-utils amd64 2.4.25-3ubuntu2.3 [82,5 kB]

Пол:2 http://old-releases.ubuntu.com/ubuntu zesty-updates/main amd64 apache2 amd64 2.4.25-3ubuntu2.3 [95,8 kB]

Получено 178 kБ за 0с (437 kБ/c)

Выбор ранее не выбранного пакета apache2-utils.

(Чтение базы данных … на данный момент установлен 277671 файл и каталог.)

Подготовка к распаковке …/apache2-utils_2.4.25-3ubuntu2.3_amd64.deb …

Распаковывается apache2-utils (2.4.25-3ubuntu2.3) …

Выбор ранее не выбранного пакета apache2.

Подготовка к распаковке …/apache2_2.4.25-3ubuntu2.3_amd64.deb …

Распаковывается apache2 (2.4.25-3ubuntu2.3) …

Обрабатываются триггеры для ufw (0.35-4) …

Обрабатываются триггеры для ureadahead (0.100.0-19) …

Настраивается пакет apache2-utils (2.4.25-3ubuntu2.3) …

Обрабатываются триггеры для systemd (232-21ubuntu7.1) …

Обрабатываются триггеры для man-db (2.7.6.1-2) …

Настраивается пакет apache2 (2.4.25-3ubuntu2.3) …

Enabling module mpm_event.

Enabling module authz_core.

Enabling module authz_host.

Enabling module authn_core.

Enabling module auth_basic.

Enabling module access_compat.

Enabling module authn_file.

Enabling module authz_user.

Enabling module alias.

Enabling module dir.

Enabling module autoindex.

Enabling module env.

Enabling module mime.

Enabling module negotiation.

Enabling module setenvif.

Enabling module filter.

Enabling module deflate.

Enabling module status.

Enabling module reqtimeout.

Enabling conf charset.

Enabling conf localized-error-pages.

Enabling conf other-vhosts-access-log.

Enabling conf security.

Enabling conf serve-cgi-bin.

Enabling site 000-default.

Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.

Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.

Обрабатываются триггеры для systemd (232-21ubuntu7.1) …

Обрабатываются триггеры для ureadahead (0.100.0-19) …

Обрабатываются триггеры для ufw (0.35-4) …

No. 19232    
>>19218
Я так понимаю PHP, php-myadmin, MySQL тоже нужно устанавливать, а то по адрессу localhost/phpmyadmin 404. Тогда подскажи конкретно команды еще пожалуйста чтобы я лишний раз не гуглил. Спасибо.
No. 19236    
>>19232
>Логи терминала
Перестань вставлять срать логи терминала прямо в пост, и кидай их хотя бы на pastebin.

>Вроде получилось
На вид действительно получилось

>Какая-то ошибка
Проверь, работает ли апач через
>service apache2 status
Ну и конечно, посмотри есть ли стандартная страничка It works!
Или создай свой хост и проверь как он сработает

>Я так понимаю PHP, php-myadmin, MySQL тоже нужно устанавливать, а то по адрессу localhost/phpmyadmin 404
Мне кажется, ты не совсем понимаешь, что ты делаешь.
Сейчас ты переустановил веб-сервер apache, вытерев полностью старый конфиг. Т.е. все вхосты веб-сайты которые были сконфигурированы через апач больше не работают, т.к. конфигурации для них больше нет. phpmyadmin - это по сути веб-сайт, который тебе дает возможность заниматься менеджментом указанной тобой базы данных управлять базой данных можно и другими средствами, например прямо из консоли через команду mysql. А раз это вебсайт - апач должен быть настроен, чтобы его тебе показывать. Сейчас у тебя апач свежий и не настроен. Настрой его, и по ходу дела включи необходимые модули, если они вдруг не включены.

Т.е. утверждать, что что-то не так с PHP или MySQL я бы не стал, по крайней мере, если ты их не замучил как-то напрямую. Ты их мучал напрямую? Лазил менять mysql.ini, php.ini или их вариации?

Еще тебе надо убедиться, что твоя текущая графическая оболочка в системе никак не завязана на MySQL сервер, а то останешься без GUI.
No. 19258    
Может ли кто-то рассказать про модули CPAN в perl. Как их устанавливать через командную строку и т.д.
No. 19260    
>>19258
1. Тебе скорее всего не нужен cpan. http://deb.perl.it/ содержит индексоту собранных пакетов под Дебиан и Убунту. Под остальные системы тоже имеет смысл смотреть в их репах.
2. Если нужен - ставишь cpan с репы, в нём вызываешь справку, всё очевидно. Только при смене мажорной версии у тебя скорее всего полетят все пакеты из-за смены путей.
No. 19262    
>>19260
> Если нужен - ставишь cpan с репы, в нём вызываешь справку, всё очевидно. Только при смене мажорной версии у тебя скорее всего полетят все пакеты из-за смены путей.
А как его ставить? Алсо, перл у меня изначально стоял после установки убунты?
No. 19263    
>>19236
> Перестань вставлять срать логи терминала прямо в пост, и кидай их хотя бы на pastebin.
Все-все понял. Буду в пастбин кидать. Думал оно просто будет сокращать текст.
> Лазил менять mysql.ini, php.ini или их вариации?
Неа, не менял.
> Еще тебе надо убедиться, что твоя текущая графическая оболочка в системе никак не завязана на MySQL сервер, а то останешься без GUI.
А разве гном завязан на mySQL?
>>19262
В конце не вопрос, а скорее утверждение.
No. 19264    
>>19262
apt-get install cpan
No. 19265    
Попытался установить phpmyadmin, но мне написало что мол все есть. Попробовал запустить - файл не найден. Потом вспомнил что в apache2.conf в самом конце нужно прописать: Include/etc/phpmyadmin/apache.conf
Попробовал перезагрузить сервер, но написало failed. Решил сделать диагностику на какие-то синтаксические ошибки в конфиг-файле, но мне показало:
apache2: Syntax error on line 228 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/etc/phpmyadmin/apache.conf: No such file or directory

Action 'configtest' failed.


Несколько раз перепроверял путь в конфиге, но там все норм.
>>19264
Не подумал лол
No. 19266    
Я >>19061-кун. В общем, возникла другая проблема:
selenium.common.exceptions.WebDriverException: Message: connection refused
. Ума не приложу, почему он в соединении отказывает.
No. 19270    
151925114197.png-(69.79KB, 448×448, 1257488102577.png)
19270
>>19266
UA какой отдаётся? Другие сайты кажет?
No. 19271    
151926390818.jpg-(316.48KB, 880×1174, ape&#039;s gesture.jpg)
19271
>>19265

Между словами «Include» и «etc» должен стоять сперва пробел, затем косая черта. Это точно так?
No. 19273    
151930055123.png-(161.60KB, 1333×1072, 9564f3db-1283-40dd-8556-d7aaf896ff1a.png)
19273
>>19271
> косая черта
Во, точно.
Правда теперь тут один код

Правда, теперь у меня такая лабуда на пикрелейтеде.
No. 19283    
>>19273
Мне кажется, что теперь суть проблемы в том, что у твоего апача не включен mod_php. Он включен?
No. 19288    
>>19283
Попробовал установить данный модуль командой:
sudo apt-get install libapache2-mod-php


Говорит что уже установлено (https://pastebin.com/ZYwpGXb0)

Когда решил тогда включить командой
sudo a2enmod php

Получил следующее:
ERROR: Module php does not exist!


Бред какой-то получается.
No. 19289    
>>19288
Он обычно называется соответственно версии php, например для пятой версии php5. Посмотри в mods_available что есть с php в названии.
No. 19299    
Такой вопрос: никто не знает, почему в движке эксабы, когда в треде прикрепляешь картинку, то оно ее вырезает полностью? Именно когда пытаешься ответить, такое происходит. При создании нового треда - такого не замечал. Еще когда пытаешься вставить картинку по URL-ссылке, то тоже возникает ошибка и не хочет загружать.
Ставить пытался отсюда: https://github.com/imageboards/exaba

Если кто-то знает в чем проблема, был бы рад помощи.
No. 19301    
>>19299

Сравнил между собой скрипт создания поста:
https://github.com/imageboards/exaba/blob/master/functions/new_post.php

И скрипт создания треда:
https://github.com/imageboards/exaba/blob/master/functions/new_thread.php

Боже, почему всё так плохо, почему не повыносить всё в функции и не использовать код повторно

Вижу, что в new_thread.php есть такое:


} elseif (is_uploaded_file($_FILES['img']['tmp_name'])) {
    $img_name = $_FILES['img']['tmp_name'];
}


Т.е. назначается переменная $img_name, которая потом используется для дальнейшей работы с файлом.

В new_post.php, в том же месте:

} elseif (is_uploaded_file($_FILES['img']['tmp_name'])) {
    move_uploaded_file($_FILES['img']['tmp_name'], $img_name);
}

move_uploaded_file - это стандартная функция php которая перемещает файл и возвращает результат операции: http://php.net/manual/en/function.move-uploaded-file.php

В скрипте нового треда, по коду, путь к картинке выставляется по фактическому месту загрузки. В скрипте нового поста, по коду, картинка перемещается из места загрузки к желаемому пути.

Я думаю, где-то в этой разнице подходов и лежит твоя проблема.
No. 19303    
>>19301
Получается, мне нужно заменить функцию:
move_uploaded_file($_FILES['img']['tmp_name'];

на:
$img_name = $_FILES['img']['tmp_name'];

No. 19306    
151943614741.jpg-(397.58KB, 750×600, __patchouli_knowledge_touhou_drawn_by_nekoguruma__.jpg)
19306
>>19061
В общем, решил я проблему. Кое-как... Запускаю через Chrome. Решение -- тут: https://www.reddit.com/r/selenium/comments/7341wt/success_how_to_run_selenium_chrome_webdriver_on/
>>19270
Расскажи, что такое UA пожалуйста. Я просто ещё нуб.
No. 19309    
151946414115.jpg-(364.74KB, 1100×1892, ВасилийКузьмичШебуев-Симе?.jpg)
19309
>>19306

UA — значение поля «User-Agent» в заголовке HTTP-запроса.
No. 19314    
>>19303
Таким образом можно проверить, что проблемы возникают именно в этой строчке. Но, если окажется что дело тут - надо понять, стоит ли так всё оставлять. Ведь какая-то ж логика в разнице между операциями была?
No. 19320    
>>19309
Спасибо
No. 19321    
>>19289
> Посмотри в mods_available
Глупый вопрос: а что за команду тогда в строке ввести мне?
No. 19324    
>>19321
>apache2ctl -M
Или просто зайти в папку mods_available по месту установки апача и посмотреть что там лежит
No. 19349    
>>19324
Проверил в общем и через командную строку и просто когда зашёл в папку mods_available то там не нашел я этого модуля. Но когда я попробовал установить его через
sudo apt-get install libapache2-mod-php7
сказало что такой пакет не нашло.
No. 19351    
>>19349
Не принимая во внимание то что у твоей убунты отвалились репозитории, тебе нужен libapache2-mod-php7.0 т.е с точкой и ноликом в конце, или даже 7.1

>The name of the package is libapache2-mod-php7.0
https://stackoverflow.com/a/39054469

>If you are using Ubuntu 17.04/17.10 use php7.1 instead of 7.0 since it's no longer available.
No. 19384    
Thread claimed. Я только вкатываюсь в программирование, и мне хочется написать:

Чат-бота с характером указанной кавайной девочки... скринсейвер с процедурно генерируемым pole dance...

Прогу которая делает 3д модель кавайной девочки по её картинке... прогу которая генерирует качественный виабу рисунок по фотке 3д тян...

Процедурный генератор хентая... да

Прогу которая делает хентай аниме адаптацию обычного порно ролика... движок имиджборды, на которой будут общаться чатботы с личностью различных 2д персонажей...

Эроге игру которая шлет сигналы в органы чувств через подключение к спинному мозгу пользователя... такую же отомэ игру с иллюзией смены пола у пользователя...

Если не получится, то went insane. Подскажите что читать, в какую сторону копать.
No. 19385    
152088365355.jpg-(99.41KB, 531×700, 1007562050.jpg)
19385
>>19384
> Подскажите что читать
Сказки.
> в какую сторону копать
Вниз.
No. 19386    
>>19385
Откуда учить кодинг чтобы научиться?
No. 19387    
>>19386
Посмотри на исходный код проекта https://deskchan.info/
У него нет даже близко амбиций, которые ты описываешь. Однако если ты не можешь понимать его исходники на том уровне, чтобы активно контрибутить в этот проект, но готов перепрыгнуть выше не только гугла с амазоном, но и скакать вообще впереди всего человечества, создавая сильный ИИ, обыгрывающий Каспарова в Покемон Го, то можешь даже не пытаться.
Представь что ты уже все это сделал, ощути какой ты молодец и сэкономь свое время.
Если же готов научиться делать простые приложения, обладающие графическим интерфейсом, умеющие парсить некоторые фразы на русском языке и совершать системные вызовы, то вопрос должен был звучать именно так, хотя ответ на него и так очевиден: начинать нужно с начала.
No. 19388    
Порно плохо
No. 19391    
>>19386
>Откуда начать учить код, чтобы научиться
Сначала надо выбрать, чему ты хочешь научиться. Здесь тебе поможет наша база знаний: https://pastebin.com/AGhLZppH

>>Я хочу программировать, но не понимаю, куда можно приложить усилия
http://410chan.org/dev/arch/res/14160.html#14354
No. 19392    
>>19384
Да, я понимаю что автор поста скорее всего ничего делать не собирается и упражняется в остроумии На самом деле, это всё менее нереально, чем кажется, вопрос только в том, в каком виде оно на самом деле может существовать сейчас.

Сначала сгруппируем твои желания
>Чат-бота с характером указанной кавайной девочки...
>Движок имиджборды, на которой будут общаться чатботы с личностью различных 2д персонажей...
Это два желания из одной категории, чат-бот с установленной личностью. Движок имиджборды тут вторичен, т.к. он может быть самый обычный, в то время как постингом будет заниматься твой бот через стандартный интерфейс. Опуская вопрос, что имиджборда не чатик

У чатботов, по крайней мере у известных мне типов, есть проблема - он не скажет тебе больше фраз, чем ты в него занесешь. Но, если повыдирать подходящие фразы персонажа из всех возможных источников и додзи, а также потратить время на обучение (желательно, силами нескольких человек), то можно получить бота который сможет тебя на какое-то время развлечь. Базово, тебе нужен свой Cleverbot, API к нему и кастомный интерфейс.

>скринсейвер с процедурно генерируемым pole dance...
Здесь вопрос в том, сколько кода и ресурсов позволяют использовать скринсейверы в принципе. Если отбросить фактор скринсейвера, и попробовать сконцентрироваться на задаче поул-денса, то нужны: банк анимаций для поул-денса, который надо найти, или создать самому, затем нужно пособие по поул-денсу, где указано каким движениям / анимациям лучше следовать после каких, затем нужно создать управляющий код, который будет включать эти анимации, в определенном порядке, а также составлять расписание повторов этих анимаций нужно, чтобы ты не видел одни и те же анимации через короткий промежуток времени Крутить это всё в риалтайме может игровой движок типа Unity.

>процедурный генератор хентая... да
Это делается так же как поулденс, если сможешь сделать его, то по той же технологии сделаешь и это.

>Прогу которая делает 3д модель кавайной девочки по её картинке...
Такое уже существует, но суть в том, что картинку кавайной девочки такое ПО получает из контролированной среды, т.е. обычно само ПО камерами / лазерным сканером и управляет.
Если ты хочешь воссоздать такое самостоятельно, то основная инженерная проблема здесь - отсутсвие информации о глубине изображения. На вид, проще всего эта проблема решается наличием стереоизображения, их с приходом VR всё чаще можно встретить в сети. Вторая проблема - используя данные о глубине со стереокартинки, ты сможешь создать маску лица, но не смоделируешь то чего камера не видит, т.е. например весь череп, или то на что у камеры / изображения не хватит dpi, т.е. волосы. Проблему с черепом и всем остальным можно решить, используя модель-заготовку, к которой будет применяться снятая тобой 3д-маска. Проблему с волосами - допилом руками или получением не сжатого стерео-изображения в очень большом разрешении.

>прогу которая генерирует качественный виабу рисунок по фотке 3д тян...
>прогу которая делает хентай аниме адаптацию обычного порно ролика...
Это всё задачи одной категории. Ты хочешь deep-обработку изображения. Для этого используют нейросети, с разной степенью успешности. Базово тебе надо та из них, которая умеет создавать арт нужного стиля из примитивных форм, самостоятельно, как вот эта:
https://github.com/alexjc/neural-doodle
С помощью подобной штуки ты сможешь раскладывать изображение на примитивные формы разных цветов как это делают векторизаторы, например, которые будет в нужном стиле оформлять нейросеть. На первом этапе скорее всего придётся вообще выбрасывать фон, и составлять примитивы опираясь на цвет кожи. Тут две проблемы: первая, в манга-стайл арте используются линии, а дип-создатели изображения собирают его из мазков. Вторая: обучение нейросети, которое может занять много времени, котрое можно много раз зафейлить, и которое нельзя завершить, только прекратить. Но это хотя бы путь, который можно попробовать.

>Эроге игру которая шлет сигналы в органы чувств через подключение к спинному мозгу пользователя... >такую же отомэ игру с иллюзией смены пола у пользователя...
Про подключения к спинному мозгу и работу нервной системы - это тебе в медач.

Надеюсь, информация была полезной.
No. 19394    
152095997951.png-(475.38KB, 732×1200, 151889851595.png)
19394
>>19392
>банк анимаций для поул-денса, который надо найти
Чередование паттернов будет немного не то. Настоящая генерация это когда программа просто знает, как танцевать этот танец, и делает это, как делала бы настоящая девочка. Генерирует не последовательность анимаций, а саму анимацию. Да, в танце есть базовый набор движений, но возможных вариаций и нюансов очень много, все заранее не предусмотришь. Там не только разные возможные движения, но и их сочетания, когда одно плавно переходит в другое. Вот пример:
https://youtu.be/eM2Lkpm0yFc?t=41
Надо чтобы было как здесь, но с любыми персонажами и костюмами, какие захочу.
Вообще конечно это была бы ахуенная программа, как раз есть уйма персонажей в исполнении которых я хочу такой танец. Лично для меня это будет даже приятнее смотреть, чем хентай порево с их участием.
Вот самый простой пример, с моего любимого ютуб канала
https://youtu.be/HAbXPl_zUuY?t=139
Тут девочка просто ходит вокруг пилона, красиво переставляя ножки. Но даже это может быть сколь угодно разнообразным.
Я уж не говорю о совсем сложных вариантах, как этот:
https://www.youtube.com/watch?v=admrqtar8_U
Алсо, кроме этого, девочка может: время от времени поправлять край чулка; забираться на предмет мебели и демонстрировать, скажем, попу; становиться перед зеркалом и разглядывать своё тело, поворачиваясь и слегка лаская себя. Тут нужен сложный AI, такой же сложный как для чат-бота, который проходит тест тьюринга. У разных исполнительниц также могут быть разные характеры - одни спокойные, другие страстные, есть весёлые, есть романтичные, есть чуточку пошлые.
No. 19395    
>>19394
>Настоящая генерация это когда программа просто знает, как танцевать этот танец
Проблема "понимания" насколько мне известно, пока не решена, в т.ч. потому что не понятно, что такое понимание в контексте настоящего мозга. Все текущие "AI" программы на самом деле дают тебе только эффект разумного поведения, но не само разумное поведение. И в основном это всех устраивает, т.к. "AI" используют или как экспертные системы, или как вспомогательный элемент другого ПО, или вообще в учебно-развлекательных целях.

Именно поэтому я предложил тебе использовать пособие по танцам, т.к. в танце есть определенная система, которой можно научить пользоваться и воспроизводить твою программу. В первую очередь потому, что людей учат воспроизводить движения по этой же системе. Во-вторых, потому что это очень сильно сужает предметную область. Что касается вещей вне системы танца, т.е. конкретных манеризмов, то здесь придется упражняться с рандомом или псевдорандомом т.е. оставлять в скриптах окна для определенных событий, которые выбираются из пула, или закладывать их прямо в анимацию.

В целом, тут уж тебе остается или работать с тем что есть сейчас, или следить за новостями и пробовать новые технологии по мере выхода, после чего опять решать, работать с тем что есть, или ждать дальше.
No. 19396    
>>19395
>следить за новостями и пробовать новые технологии по мере выхода
А вообще хоть иногда придумывают что-то новое, на замену имеющимся "деревянным" методам программирования?
No. 19397    
>>19396
Вся история развития программирования и языков программирования - это взять "деревянное" и сделать с помощью него что-то менее "деревянное". Идет постоянное создание более простых и гибких инструментов, с которыми тебе меньше надо думать о реализации снизу, и больше над тем, что ты хочешь непосредственно создать.

Отсюда появляются новые подходы к программированию, новые языки программирования, domain-specific языки для конкретных предметных областей, новые библиотеки, фреймворки, новая оснастка, и т.д.

Например, пацаны AI-шники взяли "деревянные" языки программирования и создали с помощью них инструментарий для удобной работы с тем типом AI, который их интересовал, и теперь ими может пользоваться каждый.

Единственное что пока не меняется во всем этом - это необходимость иметь в своем ПО хоть какой-то, но алгоритм.
No. 19398    
Как думаете, может ли программирование лет через десять достичь такого уровня, чтобы на e-hentai публиковалась тоннами уже не додзинси-манга, а додзинси-анимация (и 2D, и 3D-CG), сделанная любителями посредством новых интеллектуальных программ, без значительных усилий и с высоким уровнем оригинальности?
No. 19399    
>>19398
"Программирование" к описанному процессу отношения не имеет. Его возможность определяется доступностью конечных средств для создателей контента, или инициаторов создания контента, а также их личными предпочтениями формата творчества.
No. 19400    
>>19399
Ну ты же понимаешь, что сейчас невозможно автоматизировать самые трудоемкие части процесса создания анимации. Слишком уж громоздкий будет код - как у десяти 3дс максов, а то и больше. А вот если будет НС-аниматор, которая ясно понимает, что от нее хотят... Достаточно будет: показать концепты персонажей, привести подробные описания сцен, уточнить ракурсы - и она всё нарисует, с последующими корректировками. Будут почти бесплатно тонны оригинального хентая по любым франшизам и наивысшего качества.
No. 19402    
152111796523.jpg-(181.28KB, 1350×900, 1476126485110074523.jpg)
19402
Сегодня поиграл в такую штуку как Teaching Feeling. Очень понравилось, причём не столько хентаем, сколько ощущением совместного быта, общих дел и чего-то такого.
И стало интересно - насколько сложно сделать ВН или даже чат-бота с симуляцией общения, настроения и (самое сложное, кмк) развития отношений. Допустим, это будет девушка и сначала она тебе не доверяет, стесняется, ведёт себя зажато, а потом вы друг друга лучше узнаёте и развиваете общение. Такое возможно вообще? Что-то слышал про цепи Маркова, но в детали не вдавался. Я так понимаю, тут с наскока не выйдет и некий AI нужен, т.к. мало обучить бота отвечать на фразы правильно - у него не появится ощущение времени и длительности знакомства. А вот как их реализовать даже в теории - хз.
Взять условное частота общения * количество дней знакомства ? 10 дней подряд пишешь только "Привет" - так и остаёшься левым чуваком, за 2 дня проболтал несколько часов подряд - уже в раздел "Приятели" переходишь и т.д.

Вообщем, интересно любое мнение и мысли на этот счёт, т.к. тупо поболтать можно и с Сири/Алисой, а вот симуляции развития знакомства я ещё не видел
No. 19405    
>>19402
Твои вопросы не имеют отношения к кодингу, тебе в /l/ или еще куда где собираются графоманы.
No. 19409    
>>19402
>Допустим, это будет девушка и сначала она тебе не доверяет, стесняется, ведёт себя зажато, а потом вы друг друга лучше узнаёте и развиваете общение. Такое возможно вообще?
Уже давно сделано в Artificial Academy 2.
No. 19413    
>>19409
Ты не понял. Он имеет ввиду, чтобы вместо обычных заготовок-фраз, ты должен сам отвечать текстово именно и никак по-другому. И тип, уже тогда, чтобы ИИ отвечал: базируясь в первую очередь на то, что ты отвечаешь и учитывал время знакомства. Получается эдакой гибрид Алисы и реплики.
No. 19414    
152116994953.gif-(9.61MB, 681×383, Ore no Imouto ga Konna ni Kawaii Wake ga Nai - voi.gif)
19414
>>19413

Да это же вымышленная игра «Love Touch» из второй серии второго сезона превосходного аниме «Ore no Imouto ga Konna ni Kawaii Wake ga Nai».
No. 19415    
>>19405
А Тебе в /b с таким толстым троллингом. Подробно расписал основные стоящие проблемы и вопросы - нет, всё равно не дошло.

>>19413
Вот да, т.к. при заготовках отсутствует развитие. Это вечно будут одни и те же заготовки и не будет ситуации вида:
Что делаешь?
- Пишу пост на ычане
Что такое ычан?

И тебе надо хотя бы вкратце с ключевыми словами объяснить что это. Т.е. вопрос ещё и по аналитике текста. Как он вообще программно разбирается. Т.к. можно было бы заюзать теги навроде html, где указывать ключевые слова, на что АИ должен внимание обратить. Тогда при фразе "Это что-то вроде анонимного форума" может выйти ответ "Форума? Как ru-board, про который ты недавно рассказывал?"
No. 19417    
152120977220.jpg-(161.29KB, 848×1200, --786.jpg)
19417
>>19392
>Это делается так же как поулденс
Всё гораздо сложнее.
Хентай = эстетика. Впрочем, даже её можно формализовать. Что нас привлекает в хентае? Образы героинь. Как создать гармоничный образ? Прежде всего, цвета. Они генерируются по определённым схемам - цветовые триады, тетрады, аналогии с акцентами. Скажем, белый цвет, плюс красный (противоположность по уровню насыщенности), плюс коричневый (соседний с красным, но более тёмный чем оба других. Они распределяются по элементам внешности - один цвет на причёску, другой на глаза, третий на рубашку, четвёртый на юбку и бант... Также рандомно, но более или менее сообразно с другими элементами, выбираются предметы одежды, длина волос и прочее. Главное чтобы везде были контрасты, любое искусство основано на показе контрастов.
Характер определяется по главным его особенностям, как в AA2, но они ещё смешиваются в разных пропорциях, и одна черта может сильно преобладать над другими. Для завершённости портрета надо быстро прогнать сколько-то лет её предшествовавшей жизни, как делается у миров в Dwarf Fortress. Тогда для её AI будет что вспомнить по случаю.
Затем так же генерируется мир, в котором происходит порево - как в циве или том же DF. Исходя из социального статуса героини, её забрасывают в ту или иную ситуацию. Это может быть как романтическая история, так и череда изнасилований, или история о проститутке.
Процесс порева - это череда рандомных поз (основанных на характере персонажей, например некоторые любят жёсткий секс), с рандомных ракурсов (но чтобы хорошо смотрелось, чтобы в кадре была гармоничная композиция), с правдоподобными диалогами, основанными на характерах и воспоминаниях персонажей. Перед ним будет предыстория о том, как случилось что героиню няшат. Сильно упрощённый пример историй вы можете увидеть в режиме "Legends" в DF.
No. 19418    
>>19417
Про характер, допустим одни девочки любят анальный секс. другие терпеть не могут, но их заставляют им заниматься. Это повлияет на диалоги, на выражения лиц, и немного на то какой будет поза.
No. 19422    
>>19415
>>19417
>>19418
Балмеры, эта нить - хелпдеск, а не нить для обсуждения.
Для хелпдеска очень важно не разбавлять полезную информацию мусором.

Если вы хотите продолжать обсуждать эроге своей мечты, или даже сделать такое, создайте соответствующую тематическую нить в этом разделе.
No. 19473    
Кто посоветует неплохой кросс-платформенный gui под go? Чтобы быстро можно было прототип накидать как в python и tkinter
No. 19480    
>>19473
Такая штука выглядит достаточно простой и удобной?
https://github.com/andlabs/ui/wiki/Getting-Started
No. 19481    
Хочу написать демку на canvas + WebAssembly (компиляция из Rust). Есть ли готовый пример того, как гонять битмапдату от воркера до контекста?
No. 19482    
>>19481
В самом банальном случае их как-то так вместе скручивают:
https://www.hellorust.com/demos/canvas/index.html

Тебя скорее всего интересует второй листинг, там где код загрузчика на JS.
>We create an ImageData backed by memory allocated on the Rust side, and regularly update it.
No. 19528    
1) Какова должна быть минимальная конфигурация, чтобы своя ИНС могла справляться с задачами? И возможно ли вообще делать это на своем компе, или лучше арендовать облако для вычислений?
2) Каков оптимальный пакет программ для такого пользователя, который, ну, даже не джун, а шинку, да еще со слабым ПК? Например я слышал, weka хорошая вещь, это ПО для машинного обучения такое. Не слишком сложное, подойдет оно для Шинку? Или там надо самому придумывать что-то сложное, чтобы достичь нужного результата?
No. 19529    
>>19528
1) Зависит от задач.
2) Same.

Прочитай вот это:
https://stu.scask.ru/book_ins.php
Книжка не плохая, хоть и устаревшая. Не будешь всякие вопросы задавать.
No. 19530    
>>19529
>Secure Connection Failed

>An error occurred during a connection to stu.scask.ru. Peer reports it experienced an internal error. Error code: SSL_ERROR_INTERNAL_ERROR_ALERT
No. 19546    
>>19530
Загузи по ххтп тогда.
No. 19551    
>>19529
http://sernam.ru/accessquery/accessquery.php
А вдруг откажут? Что писать если нигде работаю и не учусь?
No. 19554    
>>19528
>>19551
Я бы начал реализацию нейросети уже на базе чего-то готового. Например, аноним выше спрашивал книгу по Keras, которая покрывает многие аспекты не только создания нейросети, но и работы с ней в облаке, етц. Держи линк на эту книгу, и скажи, что думаешь: http://rgho.st/6F4FQvJ5l
сорри, что только скан
No. 19555    
>>19554
>>19551
Но если очень хочется именно ту книгу Борисенко, то вот она тоже (Djvu): http://rgho.st/7FnzsyTSF

Также, судя по всему, у нас теперь появился хелпдеск по машинному обучению >>/dev/19531
No. 19568    
Насколько надежно я могу полагаться на следующие допущения:
FF D9 - конец jpeg

49 45 4E 44 AE 42 60 82 - конец png
00 3B - конец gif

Могут ли данные сигнатуры встретиться в середине изображения? В случае gif — всегда ли предпоследний байт 0? В случае png — всегда ли последние 4 байта, которые после IEND, именно такие?

Есть ли что-то подобное для определения конца видеоформатов (webm, ogv, mp4)?
No. 19569    
152279321846.png-(72.73KB, 1360×768, tsXHw.png)
19569
>>19568
Отвечу про PNG.

>49 45 4E 44 AE 42 60 82 - конец png
Если посмотришь в хекс редакторе, то
>49 45 4E 44
это имя конечного чанка, а конкретно IEND
на пикрелейтед ты можешь видеть IHDR IDAT IEND

>Могут ли данные сигнатуры встретиться в середине изображения?
Теоретически, такое случиться может. Поэтому, настоящий декодер будет пытаться считать заголовок чанка только если он уверен, что прошлый чанк уже закончился. Для этого перед началом каждого чанка присутствует 4 байта указывающие его длину, чтобы знать до куда его читать и не заботиться.

PNG декодер будет считывать IEND по структуре, указанной здесь: http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html
Учитывая то, что до этого он уже считал / пропустил все чанки, по длине в них указанной, то он будет уверен, что читает заголовок чанка, а не что-то левое.

По хорошему, тебе бы надо сделать так же. Но если тебе надо просто примерно понимать, что это может быть конец файла, а не знать это точно, то можешь попробовать расширить последовательность до

>00 00 00 00 49 45 4E 44 AE 42 60 82

Тут сначала 00 00 00 00, т.к. это 4 байта указывающие длину данных в чанке у IEND она 0 поэтому все 4 байта нули потом 49 45 4E 44 которое IEND, потом ничего, т.к. длина 0, потом 4 байта CRC, которые для IEND будут всегда одинаковыми. Конечно, никаких гарантий это не дает, но думаю во многих случаях ты действительно правильно определишь конец файла.
No. 19571    
>>19569
>> 49 45 4E 44
>это имя конечного чанка, а конкретно IEND
Это-то понятно…

>Теоретически, такое случиться может.
>но думаю во многих случаях ты действительно правильно определишь конец файла.
Ясно. Значит, это можно использовать лишь для первичной оценки ситуации, для точной гарантии придется парсить картинку. Жаль.

Тогда следующий вопрос — какой максимальной длинны может быть мусорная строка из цифр, добавляемая к картинкам куклой и/или ее аналогами? И всегда ли это только цифры?

Если что, общая задача — очистить картинки от кукломусора (чтобы дальше, например, можно было оптимизировать хранение дубликатов), но не повредить при этом ни саму картикну, ни аттачмент (ака "rarjpeg" и иже с ними), буде таковой имеется. Детектирование в процессе наличия этих самих аттачей желательно, но не критично. Сейчас думаю смотреть конец файла на "сигнатура + строка из цифр", и в случае срабатывания — дальше уже разбирать подробно, чтобы убедиться, что это действительно оно, а не какой-то кусок аттача.
No. 19572    
>>19571
>Сейчас думаю смотреть конец файла на "сигнатура + строка из цифр", и в случае срабатывания — дальше уже разбирать подробно, чтобы убедиться, что это действительно оно, а не какой-то кусок аттача.
Написал, подумал и понял, что более оптимальный алгоритм будет примерно таким:
1. Смотрим конец файла, если там сигнатура — считаем это чистой картинкой, не требующей обработки.
2. Если там нет ни сигнатуры, ни куклостроки с сигнатурой перед ней — это аттач или вообще что-то левое. Можем, если хотим, разобрать подробнее, а можем этого не делать. А можем занести в список и отложить разбор на потом.
3. Если там куклострока с сигнатурой перед ней — просматриваем весь файл. Если там нигде не встречается еще одна сигнатура — перед нами чистая картинка, и мы можем смело куклостроку удалять.
4. Если же где-то в середине нам эта сигнатура всё же встретилась — вот тут уже надо подробно разбираться, что это за зверь, и где там на самом деле конец картинки.

Вроде бы, такой подход должен работать и к потере данных не приводить.

Таким образом, осталось уточнить два вопроса:
1. Максимальная длина куклостроки.
2. Всегда ли сигнатура конца gif — именно 00 3B.

Или преждевременная оптимизация — корень всех зол, и тупо разобрать вообще каждую картинку будет проще/быстрее?
No. 19573    
152284670340.gif-(4.18KB, 340×150, image_data_block.gif)
19573
>>19572
>>Всегда ли сигнатура конца gif — именно 00 3B.

Конец gif - всегда 3B хотя 00 - терминатор прошлого блока, так что в целом и его можно использовать
http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp#trailer_block

Но тут дела обстоят так же как и с PNG, в тот момент когда декодер считывает это 3B, он уже считал / пропустил все блоки до этого, согласно информации в них указанной. Как и PNG, в GIF блоки имеют информацию о своей длине. Подробнее разобрано тут: http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp

И если у PNG еще достаточно длинный закрывающий блок, чтобы можно было хоть как-то надеяться на то, что он встретиться только в конце файла, то и 3B и 00 3B, как мне кажется, будут встречаться по файлу достаточно часто.

>Или преждевременная оптимизация — корень всех зол, и тупо разобрать вообще каждую картинку будет проще/быстрее?
Мне кажется да, т.к. тебе не надо разбирать картинку, тебе достаточно знать, где у блока идентификатор, и где у блока длина. А затем просто "пропускаешь" байты до следующего блока, и так пока не встретишь терминатор. Мне кажется это будет быстрее, чем матчить по файлу последовательность байт.
No. 19584    
152303348116.png-(24.27KB, 564×290, workflow.png)
19584
Нужен легковесный, но гибкий GUI для одной хитровыебанной десктопной проги. Слышал про какой-то Scaleform, который уже вроде как не поддерживается Autodesk-ом, но его до сих пор используют в некоторых игровых движках и в нулевых использовали в десятках, если не сотнях приличных игорей. Тяжело ли его встраивать? Возможно ли это сейчас вообще?
No. 19590    
>>19584
Если верить автодеску, последняя поддерживаемая версия вышла не так давно, летом 2017.

>Возможно ли это сейчас вообще?
Автодеск говорит, что возможно, при некоторых условиях:
>This section describes how to integrate Scaleform with a custom DirectX application.
https://tinyurl.com/scaleform-integration-custom
И общий хелп по интеграции:
https://tinyurl.com/scaleform-integration-topic

>Тяжело ли его встраивать?
Нужно заинтерфейсить достаточно много компонентов вместе так, чтобы они в итоге заработали:
>>Interfacing C++, Flash, and ActionScript
>ActionScript to C++
>C++ to ActionScript
>Communication between Multiple Flash Files

А что скажешь по поводу посмотреть в сторону веб-фреймворков?
Сейчас есть несколько способов прикрутить свой C++ код к вебкиту.
No. 19591    
Пытался загрузить базу данных и наткнулся на такую ошибку (виндоуз):
 unicodedecodeerror: ''charmap'' codec can't decode byte 0x98 in position 49: character maps to <undefined> 

Исключение бросалось из ../python/lib/encodings/cp1251.py. Я его скинул на рабочий стол и снова попробовал загрузить БД. В этот раз все получилось.
Так ли сильно нужен cp1251.py или можно спокойно работать и без него?
No. 19592    
>>19590
Спасибо за ответ, но я уже одолжил у них весь SDK, откопал там документацию и понял, что это слишком геморно. Для моего проекта, по крайней мере. Конечно, я могу попробовать украсть еще немного кода у Crytek или еще какого опенсорсного движка, там у них ведь всё уже прикручено куда нужно, но у них не самая удобная реализация обычно, ведь там нужно дополнительно XML-разметку писать, чтобы подружить движок и swf. Собирать команду в 50 человек и MMORPG писать я не собираюсь, так что этот вариант отпадает тоже.
>А что скажешь по поводу посмотреть в сторону веб-фреймворков?
Даже не знаю, Стиви. Оно всё слишком много памяти жрет, лучше когда-нибудь потом об этом подумать. Если когда-нибудь потом о десктопе вспомнят и забудут про веб и мобилки.

Я вчера скачал старый Flash CS6, Adobe Air runtime, накидал "хелоуворлд" и курнул доки, чтобы проверить, всё ли оно может, что мне нужно. Всё. Кушает 10мб оперативной памяти и 1-3% процессора для проигрывания няшных векторных анимаций при 60FPS. Поделки на вебкитах и прочих електронах на js так могут? А удобные инструменты сопоставимые хотя бы с частью того, что Adobe непосильным трудом нажил для флешечки, там есть?

Как бы единственные два минуса сейчас - это то, что Adobe собрался хоронить Flash где-то в 2020-ом году (следовательно, поддерживать это будет проблематично, ведь форумы старые прикроют, крутые флешеры уходят на пенсию и т.д.) и то, что все будут говорить "ой, это что, Flash, но зачем, оно такой старый, бла бла...". Но мне всё равно, ведь я просто хочу быстро сделать красивый прототип к 2019-му примерно. Никаких зоопарков почти несовместимых между собой инструментов, никаких дополнительных оптимизаций.
No. 19593    
>>19592
Ах да, в крайнем случаи я могу експортировать все наработки в html5. Эта функция уже давненько есть в Flash.
No. 19594    
>>19592
>>19593
Если флеш с эйром устраивают, то почему нет? Тем более, насколько я знаю, их тулкиты тебе позволят собрать standalone-бинарник со всем нужным, чтобы пользователь и не задумывался над тем, на флеше оно, или нет.

Javascript-варианты смогут продемонстрировать схожее быстродействие, т.к. как и Air, пользуются LLVM чтобы работать с ресурсами машины особенно видеокартой прямее, чем обычно. Что касается затраченных ресурсов, сказать не возьмусь.

>>19593
Давай разберемся, что у тебя произошло.
>Исключение бросалось из ../python/lib/encodings/cp1251.py.
Суть в том, что питон попытался обработать строку, используя стандартную системную кодировку, т.к. иная не была указана. Т.к. у тебя винда, возможно не очень новая, еще и локализованная, то стандартная кодировка у неё Windows-1251, она же CP-1251.

А строка была в несовместимой кодировке, т.е. в ней были символы, которые отсутствовали в таблице символов кодировки CP-1251, что и привело к ошибке:
>''charmap'' codec can't decode byte 0x98 in position 49: character maps to <undefined>

>Я его скинул на рабочий стол и снова попробовал загрузить БД. В этот раз все получилось.
После того как ты его выкинул, очевидно, не найдя обработчик для CP-1251, питон решил фоллбеком обработать строчку как UTF8, и всё получилось.

>Так ли сильно нужен cp1251.py или можно спокойно работать и без него?
Если тебе не надо работать с текстом конкретно в этой кодировке, то не нужен.
Но вообще, если ты всегда будешь указывать целевую кодировку для энкодинга / декодинга строк, она не будет тебе мешать, так что можешь вернуть.

Еще про схожую ситуацию пишут тут: https://stackoverflow.com/a/9233174
Здесь, правда, у человека CP-1252.
No. 19595    
>>19592
>Кушает 10мб оперативной памяти
Ты уверен, что у тебя рантайм этого фуфла отдельно не жрет сверху еще мегабайт 50 где-то рядом?

>1-3% процессора для проигрывания няшных векторных анимаций при 60FPS. Поделки на вебкитах и прочих електронах на js так могут?
Если анимация корректно сделана, то элементарно. Анимация все равно должна на GPU отрисовываться.
No. 19598    
>>19595
>Ты уверен, что у тебя рантайм этого фуфла отдельно не жрет сверху еще мегабайт 50 где-то рядом?
Ну, посмотрю завтра еще раз.
>Анимация все равно должна на GPU отрисовываться.
Возможно, она на ней и отрисовываться, но точно не на дискретной (я проверял и там не было никакой активности), а на встроенной разве что. А для неё, если не ошибаюсь, выделяется кусок оперативной памяти и в диспетчере задач оно, наверное, не отобразится... Или это только для виндовых формочек и кнопочек всяческих так ускорение работает? С этим нужно разобраться.
No. 19602    
>>19594
Спасибо за ответ!
No. 19604    
152326646079.png-(2.79KB, 469×56, 87590283424.png)
19604
>>19598
Посмотрел. Ничего больше не видно такого, что может иметь отношение к виртуалке эира и самому приложению.
Есть еще некоторая вероятность того, что объем потребляемой памяти может резко подскочить, если понаподключать много разных функций через ActionScript. Использование ЦП растет в зависимости от того, что отрисовывается. Например, в одном примере из того SDK находились swf-ки, которые крутили-вертели полупрозрачный текст и фигурки с наложением в 3-4 слоя друг на друга, нагружая ЦП на 10-15%.
Работать на дискретной видеокарте не получилось заставить. Видимо, это работает только для ускорения декодирования видео. Наверное, поэтому и был создан Scaleform в то время, когда Air уже существовал. Для отрисовки игрового интерфейса на векторной графике с ускорением. GPU-Z показывать потребление памяти для Intel HD Graphics не хочет.
На скриншоте запущенное приложение. Рантайм вшит.
No. 19633    
152395872473.jpg-(232.43KB, 566×800, 1402856111851.jpg)
19633
>>19573
>тебе не надо разбирать картинку, тебе достаточно знать, где у блока идентификатор, и где у блока длина.
Эх, как легко разбирается в этом плане png и сколько крови мне попортили другие форматы… Но это таки единственный правильный способ, потому что все последовательности байт вполне себе встречаются в центре файла.

Так вот, у меня сейчас остался последний вопрос — как правильно определять длину блока APP0 (он же JFIF, метка FF E0) в jpeg? С содержимым следующих двух байт после метки его длинна зачастую не имеет ничего общего. Часто (но не всегда) это бывает в случае, если там написано 13.
Пикрелейтед — типичный пример такого jpg, его первые 6 байт: FF D8 FF E0 00 0D. И 000D — это ни разу не длинна блока. В данном случае, блок всего на 1 байт больше, чем нужно. Но так бывает не всегда.

Пока что я не придумал ничего лучше, как сканировать этот блок в поисках меток по тем же правилам, как блоки SOS. И это даже работает. Но у меня нет никакой уверенности, что это будет работать везде.
No. 19636    
>>19633
Интересно, как такое вообще происходит, и зачем они игнорируют собственное поле длины блока. Длина, конечно, включает в себя всё кроме маркера, но там же еще thumbnail data, которая никак не может поместиться в 13 байт.

Вот тут пишут: http://www.fileformat.info/format/jpeg/egff.htm

>Length is the size of the JFIF (APP0) marker segment, including the size of the Length field itself and any thumbnail data contained in the APP0 segment. Because of this, the value of Length equals 16 + 3 × XThumbnail × YThumbnail.
>Length equals 16 + 3 × XThumbnail × YThumbnail

Т.е. получается что оно вообще в принципе не может быть меньше 16 байт (включая сами байты указывающие длину), и откуда там взялось 13, не ясно.

В твоей картинке эти 16 байт это:
>00 0D 4A 46 49 46 00 01 01 01 02 58 02 58 FF DB
И если верить вот этой спеке у тебя правда JFIF 1.01 https://www.w3.org/Graphics/JPEG/jfif3.pdf
То это информация от начала блока длины и вплоть до размеров thumbnail'а
00 0D - длина 13 байт ха-ха
4A 46 49 46 00 - JFIF с нуль-терминатором в конце
01 01 - версия JFIF, 1.01
01 - указатель на единицу измерения разрешения, в данном случае DPI
02 58 - горизонтальное разрешение, 600 DPI
02 58 - вертикальное разрешение, 600 DPI
FF - ширина thumbnail в пикселях, 255
DB - высота thumbnail в пикселях, 219
И дальше должен идти нехилый такой массив thumbnail data. Если бы её не было, то поля ширины и высоты thumbnail'а были бы выставлены как 0:
>If no thumbnail image is included in the marker, then these fields contain 0

Сами данные thumbnail'a лежат как
>Uncompressed 24 bit RGB (8 bits per color channel) raster thumbnail data in the order R0, G0, B0, ... Rn-1, Gn-1, Bn-1; with n = Xthumbnail × Ythumbnail.
И должны занимать 3 × XThumbnail × YThumbnail байт. Даже интересно теперь, действительно ли там будет thumbnail, при таком нарушении формата. Попробуй вычитывать APP0 ориентируясь на эту информацию 16 + thumbnail и сообщи о результатах.

Еще, по ссылкам ты можешь заметить, что тебе надо смотреть на версию JFIF, т.к. начиная с версии 1.02 сразу вслед за APP0 блоком может идти APP0 Extension, который тоже надо определять и пропускать

На всякий случай еще место со ссылками на спеки разных версий:
http://fileformats.archiveteam.org/wiki/JFIF
No. 19637    
>>19636
>Попробуй вычитывать APP0 ориентируясь на эту информацию 16 + thumbnail и сообщи о результатах.
Попробую.
А пока хочу заметить, что если эти самые FF DB считать не размерами thumbnail, а началом следующего за APP0 блока (FFDB означает, что это будет блок DQT), а поле после него, соответственно, размером этого блока, то дальше картинка разбирается нормально. Такие дела…
No. 19638    
>>19637
Мне кажется надо глянуть, как с картинкой справятся существующие наколенные реализации, если они всё делают правильно, то можно будет позаимствовать алгоритм.

Например, здесь код явно должен вывести тебе содержимое поблочно (смотри внизу файла): https://github.com/enmasse/jpeg_read/blob/master/jpeg_read.py
No. 19643    
Бамплимит.
No. 19668    
>>19643
Сделали новую нить >>19666
Закрепите её вместо этой, пожалуйста.
Удалить сообщение []
Пароль  
[Mod]