Ычан: [d | b / bro / gf / hr / l / m / med / mi / mu / o / ph / r / s / sci / tran / tu / tv / x | es / vg | au / tr | a / aa / abe / c / fi / jp / rm / tan / to / vn / vo]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 21641)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, XCF, ZIP размером до 5000 кБ.
  • Ныне 3125 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
155344039867.png-(777.18KB, 720×720, junior_developer_kobayashi.png)
21641
No. 21641    
Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки. Не важно, программируете ли вы собственного робота, пишете серверную приблуду, интегрируете чужие API, ковыряете игру, или пытаетесь сделать сайт на Wordpress - если аноним что-то об этом знает, он обязательно поможет.

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

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

Другие тематические нити (периодически обновляется): https://pastebin.com/psy43ibG

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

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

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

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

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

Прошлая нить пока тонет тут: >>/dev/19666
414 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 23600    
157308903985.jpg-(157.02KB, 1200×1600, 98e94c15-da2f-413a-b7b6-b3d4eac8cfdb.jpg)
23600
>>23594
>Т.е. способов защититься от этого нет?
Ну, можно выпилить из интернета информацию о популярных моэ-слайсах; начать можно прямо с этого форума. Можно использовать персонажей малоизвестных или неизвестных слайсов. Проще и эффективней будет ограничить доступ на форум инвайтами.

>Потому что один такой упертый может натворить больше дел, чем десять тех, кого капча отсеет…
Один упёртый/упоротый получит прицельно столбом по голове. Десять тех, для кого популярные моэ-слайсы стали непреодолимым препятствием, очевидно и так мимо шли, так что нехай себе дальше идут.

Мне лень искать релевантное обсуждение тут где-то на второй-третьей странице, тем более, что пагинацию я так и не сделала, но вкратце капча служит для защиты от:
— спам-ботов общего назначения;
— мамкиных скрипткидисов;
— абузеров сервиса на ручном и полуавтоматическом приводе (совместно с таймаутами);
— сервисов по разгадыванию капчи человеками за мелкий прайс (класс капчей, которые просят пользователя что-то сделать).
No. 23601    
>>23600
> — мамкиных скрипткидисов;
Я мамкин скрипткидист, и меня с написанным на коленке а полчаса скриптом эта капча не остановила. Зато остановил банхаммер.
Достаточно узнать лишь 1 (одну) картинку, а затем простейший скрипт может капчу прощелкивать, пока не получит совпадение. Причем проделать это необходимо лишь 1 раз в сутки, а дальше путь свободен.
Так что фаптча скриптом проходится легче, чем человеком.
No. 23603    
>>23600
Думаю достаточно просто использовать картинки, которых нет в гугле. Например нарисовать самостоятельно.
No. 23604    
>>23598
Тут зависит от каких шаблонах речь? Ты про движки шаблонизации или что?
No. 23605    
157314217931.jpg-(112.44KB, 900×1200, Neko.jpg)
23605
Как по вашему должна обрабатываться разметка для этой строки?
Message := “word0 __word1^W^W word2__”

А для этой?
Message := “word0 __word1^W^W word2”


>>23601
>Я мамкин скрипткидист
Однако у тебя хватило ума, времени и желания написать скрипт.
>Достаточно узнать лишь 1 (одну) картинку, а затем простейший скрипт может капчу прощелкивать, пока не получит совпадение. Причем проделать это необходимо лишь 1 раз в сутки, а дальше путь свободен.
Подавляющее большинство посетителей, и я в том числе, делает точно также без скриптов.
>Так что фаптча скриптом проходится легче, чем человеком.
Ещё раз: ни одна капча не защищена от специализированной под неё атаки. Если ты хочешь оградить форум от сообщений нежелательных людей, эффективней будет выдать нужным людям ключи доступа, чем мешать отправке сообщений дурацкими ребусами. Повышать сложность капчи из-за первого за последние полгода человека, сумевшего автоматизировать процесс её разгадывания, не имеет смысла.

>>23603
Хранить их в строжайшем секрете и расстреливать проболтавшихся на месте?

——————————————————
З.Ы.: Вообще я нахожу очень забавным, что ни одна другая капча не вызвала столько внимания к себе: никто не ноет, что на Новере нечитаемая капча, там в /d/ даже есть тред, посвящённый её разгадыванию; никто не ноет, что на форчане дурацкая порноигра; никто не ноет, что на сосаче рекапча; никто кроме вайпера не обратил внимания, чего там Миша навертел. Зато вот уже полгода все ноют от необходимости угадывать персонажей популярных махо-седзе и моэ-слайсов.
No. 23606    
>>23604
Шаблоны из С++ же.
No. 23608    
>>23605
> Как по вашему должна обрабатываться разметка для этой строки?
Никак, так как эти вакабамарковские ^W^W неюзабельны и не интуитивны, не говоря о том, какие костыли они заставляют добавлять в реализацию парсера. Гораздо проще и понятнее использовать ~~word~~ для зачеркивания. Гнаться за тем самым вакабамарком, идентичным на 100% - контрпродуктивно.
> Подавляющее большинство посетителей, и я в том числе, делает точно также без скриптов.
Однако скрипту гораздо проще это проделывать, и занимает это меньше секунды, в то время как пассажир тратит на это не меньше минуты фрустрации, вот вам пример: >>/b/148629
>>23603
Ну и на взлом такой капчи понадобится в тысячи раз меньше времени, чем на малевание сверхсекретных рисунков, и все скомпрометирует одна лишь юичка, а уберешь юичку - автобус опустеет и превратится в доску объявлений о новых выпусках унтары-кантары.
No. 23609    
>>23608
>Гораздо проще и понятнее использовать ~~word~~ для зачеркивания.
А здесь, на автобусе, почему-то используется ^, а не ~, как в нормальном маркдауне.
>Гнаться за тем самым вакабамарком, идентичным на 100% - контрпродуктивно.
Ычую. Кстати, схема в >>23572, кажется, повторяет еще и такие "милые" особенности вакабамарка, как отсутствие вложенной разметки (типа italic внутри bold — можно, а наоборот — низзя).
No. 23610    
157315764631.jpg-(60.87KB, 662×881, 05ea4c3c-ee25-417a-b3bb-60d03666b31d.jpg)
23610
>>23608
>Гораздо проще и понятнее
Да, да, я в курсе, что при прочих равных каждый выберет тот вариант, который он сможет реализовать. Но всё же вопрос не о психологии был. Замечу, однако, что подобная стратегия контрпродуктивна в плане личного развития.
>Однако скрипту гораздо проще это проделывать, и занимает это меньше секунды
Люди уже давно заметили, что машины некоторые вещи делают лучше людей. Попробуйте на досуге поумножать карацубой на листочке, если не верите.

Ладно. Из всего разговора я поняла, что у некоторых фрустрацию вызывает то, что капча слишком простая, поэтому даже ломать её не интересно. Это в принципе попадает в категорию защиты от скрипткидов, значит не является недостатком.
No. 23611    
>>23610
Здесь речь идет о том, что такой разметкой элементарно пользоваться неудобно.

А если реализовать ее хочется исключительно из любви к искусству, и чтоб было посложнее, то тогда ответ на >>23605 очевиден: в первом варианте надо зачеркивать только world1, а во втором — оба.
No. 23612    
157316918332.webm-(458.68KB, 576×384, autokirara.webm)
23612
>>23610
> даже ломать её не интересно.
Действительно, пока вы тут разметку обсуждали, написал юзерскрипт-автопрощелкиватель. Но я вам его не дам, у вас только усы, лапы и хвост, и Соус не одобрит.
Заняло все 4 часа, из которых 2 ушло на работу с DOM, 1 на совместимость с куклой, и еще 1 капчу прощелкивал, чтобы удачные кадры получить.
No. 23614    
157318989475.gif-(1.13MB, 560×442, Jaguar_0.gif)
23614
>>23611
Почему вам должно быть удобно на моём личном форуме с кармочкой и инвайтами?
>ответ на >>23605 очевиден
Я в курсе, как подобная функциональность реализована в текстовых редакторах, мне не очевиден, извините.

>>23612
>Но я вам его не дам
Значит мне не пхидётся от него отказываться.
>Заняло все 4 часа
4 часа — это 240 минут. Время, потхебное на гучной пехебог — 1 мин./сутки. Таким обхазом вам надо постить в здешнем /b/ 240 дней для того, чтобы ваш лисапет вышел на самоокупаемость.

И эти люди учат меня пхадуктивности.
No. 23615    
>>23612
>>23614

Для дискуссий вроде ваших есть отдельная диспутов нить >>/dev/21353
No. 23616    
>>23598
>Чиочан, посоветуй что-нибудь почитать про специализацию шаблонов для самых маленьких.
>Шаблоны из С++

Хотелось бы узнать, тебе нужно прямо чтиво, какая-то информация по применимости этого подхода, или что-то еще? Если тебе нужен ликбез, то мне кажется вот тут можно быстро понять что к чему, не смотря на "трюки" в заголовке: https://habr.com/ru/post/54762/

И про сами шаблоны, на всякий случай:
https://code-live.ru/post/cpp-template-functions/

Для тех кто не в курсе, шаблоны в C++ - это что-то сходное с тем что в других ОО-языках часто называют генериками, или generic classes.
No. 23621    
Понимает ли тут кто-то что-то в библиотеке pygame? Я сейчас пишу на оной игру, и при добавлении анимаций потребление ресурсов процессора подскочило в полтора раза(pyganim). Есть ли способ что-то с этим сделать?
No. 23622    
>>23621
Есть способ использовать другой движок/библиотеку, но с такими советами меня пошлют туда >>/dev/21353
pygame в принципе не про производительность, и там тормоза в игре уровня Марио - это норма. pygame использует софтварный рендеринг без какого либо ускорения. Если нужно запилить что-то более-менее серьезное, нужно искать библиотеку, которая умеет в OpenGL/DirectX, например гуглится pyglet.
No. 23623    
>>23622
Вроде как они собрались переползать на SDL2, который в аппаратное ускорение умеет. Вопрос в том, насколько это поможет уменьшить потребление ресурсов именно за счет анимаций.
No. 23624    
>>23623
Насколько это переползание поможет не уверен, зависит от их реализации (и скорее всего для нормальной работы ускорения им придется серьезно менять api), но в случае с OpenGL/DirectX анимация 2D спрайта реализуется тупо через смещение координат текстуры спрайтщита на полигоне, а видеокарте все равно, с каких координат текстуру рендерить.
Смотря внимательно на исходники, вижу строку:
TIME_FUNC = lambda: int(time.time() * 1000)

И далее эта TIME_FUNC используется везде для определения текущего кадра. То есть скорость анимации никак не привязана к движку, никак не зависит от FPS, и изменяется не по тикам таймера, а по времени на системных часах. Это на самом деле классический говнокод, распространенная ошибка, которую я тоже раньше допускал. А потом словил баг, когда по раномным дням вместо 1 секунды проходило 5, 10, час, а то и целые сутки. И все правильно: система автоматически синхронизировала время по интернету, и секунду назад часы показывали время, различающееся на несколько часов от правильного. В питоне 3.5 на этот случай своя функция есть: https://docs.python.org/3/library/time.html#time.monotonic
Еще возьмем во внимание тот факт, что в функции времени есть операция умножения на 1000, чтобы из питоновских секунд перевести в миллисекунды, потому что в этих единицах должен указываться тайминг. Автор мог бы просто использовать в секундах, либо делил бы на 1000 время кадров, когда их передают в конструктор. Тогда бы операцию умножения нужно было бы проделать всего 1 раз, а сейчас, если на экране 100 спрайтов, то 100 раз берем системное время и умножаем 100 раз на 1000. О какой производительности может идти речь?
И это считай первая строка. В целом эта библиотека, состоящая из одного __init__.py не вызывает доверия. Автор пишет книжки, и видимо преследовал при написании библиотеки только образовательную цель показать, как как можно проще делать игры на коленке, сознательно опуская все подводные камни.
No. 23625    
>>23624
Для начала, можно попробовать заменить TIME_FUNC = lambda: time.time() (или time.monotonic, если версия позволяет) и поделить на 1000 времена кадров, передаваемые в конструктор (pyganim.PygAnimation([('frame1.png', 0.2), ...) вместо 200. Посмотри, стало ли лучше.
Но использовать такую библиотеку так, как указано в примерах, можно только для спрайтов фона. Представь себе файтинг, где анимация персонажей не синхронизирована с их хитбоксами, да и какую угодно игру.
В этой библиотеке есть функции blitFrameNum и blitFrameAtTime, которые никак не используются в примерах. Используя их вместо обычного pyganim.blit, можно привязать анимацию к игровой логике. Только для blitFrameNum придется самому отслеживать текущий кадр анимации, а для blitFrameAtTime следует передавать в качестве elapsed pygame.time.Clock.get_time и переопределить TIME_FUNC как pygame.time.get_ticks
В теории, так будет лучше.
No. 23626    
При взгляде на полузагруженную страницу с заддосенного сайта вопрос возник.

А как скачивающий что-то из сети скрипт может определить, что оно нормально скачалось? Сравнивать длину и content-length, если он есть? Парсить конкретные форматы файлов на предмет ошибок, если это возможно? Какие еще варианты?
No. 23627    
>>23626
Обычно сравнивают контрольную сумму, которую считают по разным алгоритмам, например тот же CRC. Её можно доставить отдельно, или положить в заголовке файла.
No. 23631    
>>23627
Среди заголовков, скажем, этого треда я что-то никакой контрольной суммы не вижу. Спасибо, что хоть content-length имеется.
Не, понятно, если сервер её предоставляет, то это можно использовать. Но в большинстве случаев это не так.
No. 23655    
купил себе прикольный телефон amazon fire phone и очень-очень хочу писать приложения используя его особенности.
загрузил я значит SDK следуя этой инструкции https://developer.amazon.com/es/blogs/tag/SDK и попытался сбилдить проект с примерами, но у меня не получилось...
пытался я фиксить ошибки сам с помощью гугла, но неудачно. остановился на том, что сейчас получаю ошибку "ERROR: Unsupported method: GradleProject.getProjectDirectory()", но когда пытаюсь обновить gradle, то получаю другую ошибку: "ERROR: Gradle version 2.2 is required. Current version is 5.4.1". и таким образом получается замкнутый круг обновлений и откатываний и я не знаю что делать.
может кто попробовать у себя сбилдить эти примеры (ссылка выше) и рассказать мне как это сделать? либо подсказать как можно пофиксить ошибку с gradle. пожалуйста?
No. 23659    
Почему код такой красивый?
No. 23660    
>>23659
Из-за выравнивания.
No. 23661    
>>23655
Попытаюсь понять твою проблему лучше:

Если ты выставляешь версию грейдл-плагина в проекте пониже

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

(и бахаешь кеши, реимпортируешь проект, рестартишь андройд студию), ты получаешь ошибку о неподдерживаемом методе? пробовал как все советуют инстант ран отключать?

А если ты выставляешь версию плагина повыше, ты получаешь ошибку о том, что версия грейдла сильно больше, чем тебе надо?
No. 23662    
>>23661
хмм, я не изменял dependencies.classpath, я изменил только distributionUrl в gradle-wrapper.properties на https\://services.gradle.org/distributions/gradle-5.4.1-all.zip.
в dependencies.classpath у меня стоит значение 'com.amazon.device.tools.build:gradle:1.0.+'. может мне стоит изменить его на 'com.android.tools.build:gradle:5.4.1' или ему подобный?
Я попробовал выставить значение 'com.android.tools.build:gradle:5.4.1', но получил ошибку "ERROR: Could not find com.android.tools.build:gradle:5.4.1.". может ты знаешь какая версия здесь нужна?

еще в примерах https://s3.amazonaws.com/android-sdk-manager/redist/Fire_Phone.zip я изменил значение android.compileSdkVersion c "Amazon.com:Amazon Fire Phone SDK Addon:17" на "17", потому что тоже ошибки были. не знаю правильно ли это, но в примере который я нашел на гитхабе было так (там тоже ошибки с gradle)

в программировании на джаве и для андроида у меня опыта очень мало и я все забыл, поэтому прошу прощения если вопросы глупые-непонятные, но я пытался гуглить и искать решение сам, честно-честно!
No. 23674    
>>23655
>>23662

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

Я скачал примеры https://s3.amazonaws.com/android-sdk-manager/redist/Fire_Phone.zip и нашел там FirePhone_Sample_Readme.txt в папке /samples/
Первое, что бросилось в глаза это копирайт: Copyright (c)2014 Amazon.com
Т.е. эта пачка примеров была создана в 2014-15х годах (дата модификации файлов - январь 2015го)

И далее идут инструкции по сборке примеров, из андроид студии, и из комманд-лайна.
Но перед этим, нас просят настроить сетап:

>Ensure that your development environment is set up as described here: https://developer.amazon.com/appsandservices/solutions/devices/fire-phone/docs/setup

И, сходив по этой ссылке, мы узнаём, что такой страницы больше нет. Ок, идём в архив.
В архиве такая страница, слава богу, есть:
https://web.archive.org/web/20140724104654/https://developer.amazon.com/appsandservices/solutions/devices/fire-phone/docs/setup

Но единственное время когда она существовала - это тот самый 2014й год, и всё. Дальше уже 404.
При этом сама страница содержит ссылки на архив с примерами.

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

Итак, какие там требования:

>Android Studio 0.8.+ (recommended)
>Gradle Plugin 0.12.+ (Current beta version)

>Android Studio 0.6.+
>Gradle Plugin 0.11.+

Список грейдл-плагинов, которые доступны в принципе они предлагают глянуть в репозитории:
https://mvnrepository.com/artifact/com.amazon.device.tools.build/gradle
Здесь же можно увидеть, какие версии оно сможет скачать.

При этом сам список доступных на данный момент грейдлов сильно шире:
https://mvnrepository.com/artifact/com.android.tools.build/gradle
https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google

Но тебе нужны версии указанные в инструкции, или близкие к ним по дате выхода.

Старые андройд-студии таких версий доступны только со сторонних сайтов:
https://android-studio.en.uptodown.com/windows/versions
https://android-studio.en.uptodown.com/mac/versions

Соответственно, и Java тебе нужна постарше, 7 / 8 (а может даже и 6)

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

Будешь пробовать?
No. 23675    
>>23674
В догонку еще сайт с релизами андройд-студии, со ссылками прямо на гугол: https://www.npackd.org/p/android-studio
No. 23680    
>>23674
спасибо за такой детальный ответ!
я очень-очень хочу научиться использовать фичи телефона в разработке приложений для него, поэтому попробую воссоздать такую же среду для разработки на виртуалке и там запустить примеры. отпишусь сюда если будут проблемы или вопросы, спасибо!
No. 23704    
Добрый день.
Помогите, пожалуйста, немножечко. Есть картинка 111. Она прикреплена к сообщению.

Как сделать вид, как на картинке 222, которая прикреплена к следующему сообщению?
No. 23705    
157500947049.jpg-(84.34KB, 544×444, 111.jpg)
23705
>>23704
Простите.
No. 23706    
157500954099.jpg-(106.86KB, 453×381, 222.jpg)
23706
А вот картинка 222 с адекватным нормальным видом.

Меня действительно это очень беспокоит.

Извините, ежели что не так.
No. 23707    
157500965857.jpg-(260.75KB, 1092×604, 333.jpg)
23707
И еще один вопрос.

Есть файл манифеста. И при попытке сделать компиляцию выдает вот такое ошибочное сообщение. Что ему надо? Там все в порядке. Ведь в порядке? В 16 строке.

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

И вид сломался (из предыдущих 2,5 сообщений).
No. 23710    
>>23707
>Есть файл манифеста. И при попытке сделать компиляцию выдает вот такое ошибочное сообщение. Что ему надо? Там все в порядке. Ведь в порядке? В 16 строке.
На вид в 16й строке всё хорошо, но парсер ругается, что не видит тэг, или видит вместо него мусор. Такое может случиться, если внутри файла находятся какие-нибудь дикие непечатаемые символы. Это хорошо видно в редакторах, которые такие символы показывают.

Что говорит XML валидатор про этот файл?
https://codebeautify.org/xmlvalidator

Попробуй валидацию двумя способами:
1. Загрузить файл с диска как есть
2. Скопировать содержимое из редактора и вставить
No. 23712    
>>23710
Внезапно было что то очень странное
В xml-файле Strings почему то перестали распознаваться русские символы ВНУТРИ тега, то есть, сам текст. Но я стер одну букву в одном слове и набрал её снова — и все починилось! И эта ошибка с тегом тоже. Диковатое что-то.

А можно еще вопрос?
No. 23713    
>>23712
>Но я стер одну букву в одном слове и набрал её снова — и все починилось! И эта ошибка с тегом тоже. Диковатое что-то.

Если ты под виндоус разрабатываешь, то скорее всего где-то не сошлись кодировки, т.е. что-то что должно было быть UTF-8 закодировалсь в Windows-1251, или наоборот. И парсер, который тоже использует кодировку во время работы, с этим не справился.

>А можно еще вопрос?
Конечно.
No. 23714    
>>23713
Да, под виндовс. А как это можно победить? Чувствую, это будет происходить каждый раз при запуске студии. Я понимаю что можно поискать на соответствующих ресурсах, но сомневаюсь, что смогу составить корректный поисковый запрос в этом конкретном случае. Надеюсь на понимание.

А вопрос вот в чем.
Сейчас делаю (я нулевичёк в программировании) с чистого листа простое приложение под андроид. Галерею с картинками.
Там есть стартовая страничка, с нее переход в оглавление, в оглавлении — список "комнат", в которых внутри ScrollView лежат картинки с подписями. Просто галерея. Ничего сложного.

И со всем этим возникает странная, на мой взгляд, проблема. Когда внутри одной "комнаты" от 1 до 5 картинок, все хорошо. Когда 5+, приложение просто вылетает на рабочий стол при попытке зайти в такую "комнату". Как будто не хватает оперативки или еще чего-то.

Картинки маленькие, от 50 до 900 кб, растровые.

Телефон, на котором тестирую — нонейм Ирбис с андроидом 7. Он специально такой, чтобы тестить адекватность работы на рандомных слабеньких телефончиках. Потому что если запустится на таком, запустится на любом (почти).

В чем тут может быть штука? Или это нормально для андроида?
No. 23715    
157512026768.png-(66.31KB, 994×720, image.png)
23715
>>23674
привет! поставил виртуалку, установил андроид студию, но не могу скомпилировать даже обычный сгенерированный новый проект. скорее всего, я что-то упустил и не загрузил какую-то необходимую вещь... можешь помочь?

мои действия:
1. поставил windows 7 на виртуалку
2. установил это https://www.npackd.org/p/android-studio/0.8
3. потом это https://www.npackd.org/p/com.oracle.JDK/1.7
4. добавил путь к jdk в системную переменную path

при попытке скомпилировать проект с примерами амазона получаю ошибку пикрелейтед. гугл говорит, что это может быть связано с maven, java или gradle. наверняка я что-то не установил для андроид студии. есть идеи?
No. 23716    
>>23715
>при попытке скомпилировать проект с примерами амазона получаю ошибку пикрелейтед. гугл говорит, что это может быть связано с maven, java или gradle. наверняка я что-то не установил для андроид студии. есть идеи?
>Received fatal alert: protocol_version

Это чисто сетевая ошибка, связанная скорее всего с тем, что где-то в то время обнаружили огромную дырку в TLS (который обслуживает https), и все начали массово переходить на новую версию, дропая поддержку старой версии с дыркой. А твой старый стек всё еще пытается использовать версию TLS 1.1.

Осторожно предположу, что в твоём случае эта ошибка версии TLS-протокола вылазит когда Gradle стучится в Maven-репозиторий за библиотеками для проекта.

Чинится это на старом стеке софта такими способами:

1. Обновить конкретную версию JDK 7 на версию с фиксом.
>Run Gradle with Java 1.7.0_131-b31 or above
Выведи какая там у тебя версия java с помощью java -version

2. Отказаться от протокола HTTPS в пользу HTTP при поиске библиотек в репозитории, подменив ссылку на репозиторий:
>replace mavenCentral() with maven { url = "http://repo.maven.apache.org/maven2"; }
>replace jcenter() with maven { url = "http://jcenter.bintray.com"; }
^^ аналогично с другими репозиториями, если они используются

Рецепты взяты отсюда: https://blog.gradle.org/unable-to-download-maven-central-bintray
Надеюсь, больше там внутри ничего не стучится по https и этот фикс поможет.

>4. добавил путь к jdk в системную переменную path
Не забудь создать системную переменную JAVA_HOME, если она не создалась автоматически

No. 23717    
>>23714
Дегенеративное уебище от Google обсасывается из-за памяти, если быть точнее, то оно выделяет память под изображения в ScrollView и не очищает её нормальным образом. Это типа "норма" такая, ага. Решение состоит в том чтобы использовать ListView вместо ScrollView - он будет подгружать изображения и выгружать их в процессе использования.
No. 23718    
>>23716
> огромную дырку в TLS (который обслуживает https)
> TLS 1.1
Что за дырка? Вроде на TLS 1.2 переходят просто для того, чтобы сломать старые системы ради предположительно более сильных шифров в TLS 1.2 и ради обязательной perfect forward secrecy, а собственно атак на корректно реализованный TLS 1.1 никто не продемонстрировал.
No. 23719    
>>23718
>собственно атак на корректно реализованный TLS 1.1 никто не продемонстрировал.
Всё так. На тему разницы между версиями протоколов также есть короткое резюме здесь: https://security.stackexchange.com/a/57883
No. 23720    
>>23717
Спасибо за ответ.
Сейчас почитал про ЛистВью. Он легаси, оказывается.

Что-то с ним гипермного java-сношений внутри файлов Активити. Получается, под каждую картинку и текст надо свой xml делать. Насколько я понял. Это что-то перебор.

Есть ли более адекватные способы создать вот такую галерею, как я описываю в >>23714 ?

Без загрузки картинок из интернета (потому что неоткуда загружать пока), такой способ тоже возможен, где-то видел обрывки такой информации.
No. 23721    
>>23720
Посмотри тогда в сторону RecyclerView оно вроде по-новее будет
No. 23722    
157572844923.png-(68.43KB, 1004×728, Image.png)
23722
>>23716
привет! пытаюсь обновить джаву (сейчас у меня 1.7.0_02-b13), но не могу найти версию которую ты указал для загрузки. попадаю только на какаие-то китайские сайты где загрузить файл не получается. также увидел надпись на сайте Оракл "Updates for Java SE 7 released after April 2015 are only available to Oracle Customers through My Oracle Support", а в архиве последняя версия это 7u80 (а мне 7u131 нужна, верно?)

также попробовал заменить mavenCentral() и смог продвинуться дальше. сейчас меня останавливает ошибка пикрелейтед. есть идеи как решить? (гугол предлагает обновить грейдл или студию, но я боюсь сделать еще хуже)
No. 23723    
157573185437.png-(21.33KB, 800×372, IMG_20191207_180645.png)
23723
У меня проблема с питоном. Вот скрин консоли.
В а находится строка '200mm'. Из а создал список b. Потом два пустых списка c и d. Потом в цикле я проверил является ли каждый элемент списка b цифрой. Если этот элемент цифра, то он добавляется в список c, иначе он добавляется в список d. Но получилось все не так. Все цифры и буквы попали в список c, а список d остался пустым. Я не могу понять где ошибка.
No. 23724    
>>23723
Скобки после isdigit().
Сейчас ты проверяешь, есть ли такой метод у x, и получается всегда истина.
No. 23725    
>>23722
>привет! пытаюсь обновить джаву
>также попробовал заменить mavenCentral() и смог продвинуться дальше.
Поскольку ты смог продвинуться дальше подменив ссылку на репозиторий, отложим пока тему апдейта джавы, до тех пор пока не столкнемся с проблемой связанной конкретно с джавой.

>сейчас меня останавливает ошибка пикрелейтед. есть идеи как решить? (гугол предлагает обновить грейдл или студию, но я боюсь сделать еще хуже)
Выглядит так, что твоя студия 0.8 не может работать с грейдл-плагином 1.0 (и враппером 2.2.1)

Что можно сделать:
1. Попробовать открыть проект в более свежей студии, но вышедшей недалеко от последней даты изменения файлов проектов в примерах (январь 2015), т.е. в студии 1.0 или 1.1:
https://www.npackd.org/p/android-studio/1.0.1
https://www.npackd.org/p/android-studio/1.1
Они по идее уже должны справиться с грейдл плагином 1.0 и грейдл-враппером 2.2.1

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

Поскольку у тебя студия 0.8, то тебе нужны враппер 1.х версии и плагин 0.х версии.

Андройд студия 0.8 вышла в июне 2014, значит сначала найдем близкий к дате выхода плагин, помня что минимальная поддерживаемая версия - 0.12, попробуем начать с 0.12.2

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.2'
}

Подбирать версии можно отсюда:
https://mvnrepository.com/artifact/com.amazon.device.tools.build/gradle

Теперь нам нужно подобрать враппер. Тут чуть сложнее, т.к. нужно сначала узнать, что до перехода на грейдл-плагин 1.x, андройд проекты использовали врапперы ветки тоже 1.х (хотя были доступны более свежие)
Инфа отсюда: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

Попробуем начать с самой поздней версии из этой ветки, 1.12, выпущенной в том же июне 2014.

task wrapper(type: Wrapper) {
    gradleVersion = '1.12'
}

Подбирать версии можно отсюда:
https://mvnrepository.com/artifact/org.gradle/gradle-wrapper

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

Пиши, что получится.
No. 23726    
>>23724
Спасибо
Удалить сообщение []
Пароль  
[Mod]