Долго я искал в сети способ сделать так, чтобы данные при построении списка RecyclerView не загружались целиком, а подгружались по мере его пролистывания пользователем. Несколько совершенно разных решений находил на StackOverflow. Пробовал применить — работало, но каждый раз, как-то криво и не надежно.
fun updateAdapter(items: ArrayList<ListMeetings>, clear: Boolean = true){
if (clear) listItems.clear()
listItems.addAll(items)
notifyDataSetChanged()
}
notifyDataSetChanged() — можноненадо весь список перерисовывать. DiffUtils в школу скоро пойдет.
fun removeItem(pos: Int, calManager: CalManager){
// удаляем элемент из списка
calManager.deleteMeeting(listItems[pos].uri) // удаляем встречу из календаря
listItems.removeAt(pos) // удаляем элемент из списка с позиции pos
notifyItemRangeChanged(0,listItems.size) // указываем адаптеру новый диапазон элементов
notifyItemRemoved(pos) // указываем адаптеру, что один элемент удалился
}
Зачем здесь notifyItemRangeChanged? Вы уже сказали списку, что один элемент удален — он умный, поймет, что надо сделать. Алсо, у вас здесь баг: за счет того, что размер listItems в момент вызова меньше, чем число элементов в адаптере — вы оставите последний элемент в списке необновленным.
Затем чтобы разместить 100 кредитных токенов для получения процентов и в ожидании роста курса токена
А кредит у вас бесплатный что ли? Чтобы ваша схема работала, нужно, чтобы ставка по депозитам была выше ставки кредитования — но какой дурак будет давать в кредит под меньшие проценты, чем те, которые получит, если вложит сам?
и в ожидании роста курса токена
Рост курса — это шикарно, если я токены покупаю. Если же я беру в долг — в моих интересах, чтобы курс упал, или хотя бы не менялся, потому что в противном случае для возврата долга мне придется вложить больше фиата. Это называется «игра на понижение» — брать актив в долг на высокой цене, продать, купить обратно на низкой и вернуть.
Например, вам нужен кредит на 100 токенов. Чтобы его получить, вам нужно пложить на счет 200 токенов. Если вы не отдадите кредит, то из этих 200 токенов будут списаны средства.
Осталось понять, зачем мне брать кредит на 100 токенов, если у меня уже есть 200, которые я готов вывести из оборота.
Целевому обучению в вузах бог знает сколько лет, там такая же механика: тебе оплачивают обучение, ты взамен сколько-то лет должен отработать. Откажешься — должен вернуть стоимость обучения + какие-то штрафы.
Требования к разрешению зависят исключительно от углового размера изображения.
То-то я думаю, почему все пользователи айпадов в метро носят их исключительно на вытянутой руке — это чтобы угловой размер был одинаковый!
А нет. Стоп. Никто так не делает.
А может это пользователь будет решать хочет он грузить картинку 864x1080 весом 300КБ, чтобы показать превьюшку 90x178, или нет?
Пользователю, разумеется, заняться больше нечем, кроме как сидеть и разрешение выбирать. Давайте еще будем спрашивать, с какого сервера из CDN загружать, с какими таймаутами, он ведь ради этого приложение ставит.
Разумеется. Вот только на вопрос вы снова не ответили. Какую проблему решают NFT, которую нельзя решить более простыми способами? В чем революция-то?
Я, допустим, могу зайти на гидру и своими глазами увидеть, какую проблему решает биткоин — финансовые расчеты в обход подконтрольных государству механизмов. Я могу понять, какую проблему решает IPFS — это хранилище с потенциально высоким уровнем redundancy и защитой от модификации.
В чем профит NFT как технологии? Где тут прорыв-то? Пока что все аргументы сводятся к вот этой картинке
Чтобы срубить денег на людях, которые хотят покупать воздух. С этим как бы никто и не спорит.
В этом смысле на мой взгляд статья отражает мнение тех, кто пока не понял, что это такое и для чего нужно, почему люди готовы покупать и продавать на этом рынке.
Вы сотоварищи очень много рассуждаете о перспективах, но коллективно не смогли родить ни одного кейса, который не сводился бы в том или ином виде к разгрузке чужих карманов за фантики — ну так это люди давно умеют без всяких ваших блокчейнов. Тони Роббинсона хотя бы можно вспомнить, с его билетами по полмиллиона.
Для соцсетей с ленточным интерфейсом достаточно превьюшки с каким-то разумным размером 600...800 пикселей
Недостаточно. Во-первых, есть банальная ретина, на которой ваши превьюшки будут выглядеть мыльными. Во-вторых, на дворе 2022й год и половина пользователей ходит с мобильных устройств, а это вагон форм-факторов и плотностей экрана, а значит — требований к разрешению.
фуллсайза по клику, который может быть хоть в bmp — раз пользователь кликнул, значит, он согласен подождать
Во времена моей молодости было популярно постить на форумы фотки Вассермана, апскейлнутые до 50-100 мегапикселей, браузер на такое обычно делал «кря» и падал. Девайсы сейчас, конечно, стали помощнее, но вместо них теперь есть мобильная связь и лимиты на траффик. Я думаю, вы будете очень недовольны если при попытке рассмотреть какую-то фотку поближе соцсеть выжрет ваш дневной лимит трафика.
Или вы предлагаете по клику на превьюшке вываливать пользователю список разрешений для выбора?
Нет, это решает клиент в момент построения ui, когда понимает размер картинки в экранных пикселях (и на основе этого решает, какую именно картинку запросить).
однажды перекодированные картинки складывать в хранилище
Это отлично работает, если картинки всегда отдаются одним размером. Если же вы хотите трафик экономить, и не отдавать на клиент трехмегапиксельный жипег каждый раз, когда нужно показать аватарку 100х100 пикселей, то перекодировать нужно сразу под все размеры, и требования к объему хранилища маленько вырастают. Бонусная жопоболь, когда появляется еще один размер, и вам нужно все терабайты загруженных картинок еще раз перекодировать под него.
Ходить в файловую систему из UI-потока — очень, очень плохо
Ходить в сеть через HttpUrlConnection в 2022 — выглядит как особая форма мазохизма
Открыто хранить данные — идея сомнительная, особенно в простом файле на диске
Чем костылить хранение табличных данных в текстовом файле — почему не использовать базу
Волшебные константы, волшебные константы повсюду
Всё навалено в кучу, ни архитектуры, ничего
Не умеете пользоваться switch
При проверке на переиспользование в упор не вижу проверку на интервал. Даже если совпадение было месяц назад — всё равно будет «был использован сегодня»
Конечно, навыки программирования обычно являются самой важной частью работы. Но это не единственная её часть! Если компанию интересует только техническое собеседование, это говорит о том, что их не интересуют ваши навыки сотрудничества, общения или даже решения проблем. А это, в свою очередь, означает, что они, вероятно, наняли других людей, чьи навыки в этих областях не были оценены, что означает, что вы можете работать с людьми, которые обладают только хард скилами и не обладают софт скилами. Это может привести к ссорам на встречах и конфликтам на кодревью.
Дичь какая. Техническое собеседование — идеальное место, чтобы оценивать софтскиллы. Немного стрессовая обстановка, незнакомые люди, с которыми еще не выработалась общая манера общения.
ваши навыки сотрудничества, общения или даже решения проблем
Оп, видимо, предлагает оценивать их отдельно — собрать отдельный собес с 6ю hr'ами, где кандидат будет оценивать, сколько шариков для пинг-понга поместится в гендире, пока на него орут матом.
Так же появляется вопрос, почему роботы не используют ядерную и термоядерную энергетику? Почему нет других электростанций использующих альтернативные источники? Ответ: это не имеет смысла в симуляции.
Combined with a form of fusion, the machines had found all the energy they would ever need. There are fields, Neo, endless fields where human beings are no longer born.
Скучный ответ состоит в том, что в первой итерации сценария людей использовали в качестве CPU, но потом от этой идеи отказались, предположительно, из-за вмешательства студии, которая сочла, что средний обыватель в 1999м году не поймет этих ваших процессоров и компуктеров. Эта же идея присутствует в «Голиафе» Нила Геймана, который тот написал в рамках продвижения первого фильма.
Если откинуть четвертый фильм и счесть «Второй Ренессанс» каноном, можно придти к чуть менее скучному ответу: машины держат людей в симуляции, потому что пытаются так сохранить человеческую расу. «Hand over your flesh, and a new world awaits you.»
А у концепции вложенных симуляций проблемы с логической точки зрения. Либо ты можешь создать симуляцию, которую примут 100% людей, и тогда тебе не нужен второй слой, либо не можешь, и тогда маргиналы будут точно так же чувствовать, что с миром что-то не так, просто на другом слое.
Библиотека Paging из Jetpack'a, уже в третьей версии
notifyDataSetChanged() — можноненадо весь список перерисовывать. DiffUtils в школу скоро пойдет.
Зачем здесь notifyItemRangeChanged? Вы уже сказали списку, что один элемент удален — он умный, поймет, что надо сделать. Алсо, у вас здесь баг: за счет того, что размер listItems в момент вызова меньше, чем число элементов в адаптере — вы оставите последний элемент в списке необновленным.
А кредит у вас бесплатный что ли? Чтобы ваша схема работала, нужно, чтобы ставка по депозитам была выше ставки кредитования — но какой дурак будет давать в кредит под меньшие проценты, чем те, которые получит, если вложит сам?
Рост курса — это шикарно, если я токены покупаю. Если же я беру в долг — в моих интересах, чтобы курс упал, или хотя бы не менялся, потому что в противном случае для возврата долга мне придется вложить больше фиата. Это называется «игра на понижение» — брать актив в долг на высокой цене, продать, купить обратно на низкой и вернуть.
Осталось понять, зачем мне брать кредит на 100 токенов, если у меня уже есть 200, которые я готов вывести из оборота.
В целом-то звучит достаточно справедливо.
Соболезную вашим проблемам со зрением.
То-то я думаю, почему все пользователи айпадов в метро носят их исключительно на вытянутой руке — это чтобы угловой размер был одинаковый!
А нет. Стоп. Никто так не делает.
Пользователю, разумеется, заняться больше нечем, кроме как сидеть и разрешение выбирать. Давайте еще будем спрашивать, с какого сервера из CDN загружать, с какими таймаутами, он ведь ради этого приложение ставит.
Я, допустим, могу зайти на гидру и своими глазами увидеть, какую проблему решает биткоин — финансовые расчеты в обход подконтрольных государству механизмов. Я могу понять, какую проблему решает IPFS — это хранилище с потенциально высоким уровнем redundancy и защитой от модификации.
В чем профит NFT как технологии? Где тут прорыв-то? Пока что все аргументы сводятся к вот этой картинке
Надо из неё NFT сделать и продать за много денег.
Чтобы срубить денег на людях, которые хотят покупать воздух. С этим как бы никто и не спорит.
Вы сотоварищи очень много рассуждаете о перспективах, но коллективно не смогли родить ни одного кейса, который не сводился бы в том или ином виде к разгрузке чужих карманов за фантики — ну так это люди давно умеют без всяких ваших блокчейнов. Тони Роббинсона хотя бы можно вспомнить, с его билетами по полмиллиона.
Недостаточно. Во-первых, есть банальная ретина, на которой ваши превьюшки будут выглядеть мыльными. Во-вторых, на дворе 2022й год и половина пользователей ходит с мобильных устройств, а это вагон форм-факторов и плотностей экрана, а значит — требований к разрешению.
Во времена моей молодости было популярно постить на форумы фотки Вассермана, апскейлнутые до 50-100 мегапикселей, браузер на такое обычно делал «кря» и падал. Девайсы сейчас, конечно, стали помощнее, но вместо них теперь есть мобильная связь и лимиты на траффик. Я думаю, вы будете очень недовольны если при попытке рассмотреть какую-то фотку поближе соцсеть выжрет ваш дневной лимит трафика.
Нет, это решает клиент в момент построения ui, когда понимает размер картинки в экранных пикселях (и на основе этого решает, какую именно картинку запросить).
Это отлично работает, если картинки всегда отдаются одним размером. Если же вы хотите трафик экономить, и не отдавать на клиент трехмегапиксельный жипег каждый раз, когда нужно показать аватарку 100х100 пикселей, то перекодировать нужно сразу под все размеры, и требования к объему хранилища маленько вырастают. Бонусная жопоболь, когда появляется еще один размер, и вам нужно все терабайты загруженных картинок еще раз перекодировать под него.
Дичь какая. Техническое собеседование — идеальное место, чтобы оценивать софтскиллы. Немного стрессовая обстановка, незнакомые люди, с которыми еще не выработалась общая манера общения.
Оп, видимо, предлагает оценивать их отдельно — собрать отдельный собес с 6ю hr'ами, где кандидат будет оценивать, сколько шариков для пинг-понга поместится в гендире, пока на него орут матом.
P.S. Критикуя, предлагай: хороший тред на реддите про красные флаги на собесах.
Скучный ответ состоит в том, что в первой итерации сценария людей использовали в качестве CPU, но потом от этой идеи отказались, предположительно, из-за вмешательства студии, которая сочла, что средний обыватель в 1999м году не поймет этих ваших процессоров и компуктеров. Эта же идея присутствует в «Голиафе» Нила Геймана, который тот написал в рамках продвижения первого фильма.
Если откинуть четвертый фильм и счесть «Второй Ренессанс» каноном, можно придти к чуть менее скучному ответу: машины держат людей в симуляции, потому что пытаются так сохранить человеческую расу. «Hand over your flesh, and a new world awaits you.»
А у концепции вложенных симуляций проблемы с логической точки зрения. Либо ты можешь создать симуляцию, которую примут 100% людей, и тогда тебе не нужен второй слой, либо не можешь, и тогда маргиналы будут точно так же чувствовать, что с миром что-то не так, просто на другом слое.