Обновить
-1

Пользователь

0,1
Рейтинг
Отправить сообщение

Не по теме вопрос: как вообще в условиях "Чебурнета" корпорации собираются продвигать свои облачные сервисы? Вроде как тенденция к огораживанию интернета идет не только в РФ. Постепенно вычисления переходят в облака, и, в принципе, это разумно с точки зрения использования мощностей. Блин, но как быть то когда сервис будет недоступен в какой-то стране по политическим причинам?

Приведем мысленный эксперимент. Вот, допустим, сидите вы в кабинете отдела «небесного наказания за земные грехи». К вам заходит душа, ну, возьмем, для определенности Михаила Суслова – Идеолога ЦК КПСС в СССР.

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

К чему, собственно, такой эксперимент? Далеко не факт, что вся эта мораль инстинна. Существование кармы, бога, реинкарнации и прочего доказать принципиально невозможно.
С чего вы взяли, что ваш условный "небесный суд" будет производиться именно по вашим представлениям об условном "благе" или "грехе"?

Окей, если решите взять именно Cubot, то вот инфа, которая может пригодиться: https://gist.github.com/MarDSoul/8c2d2c3e183b6c46d2d00eda2afcca75

Там то, что я делал с mini 2 несколько лет назад (не полный фарш и не до конца, но до приемлемого уровня). Если будете брать mini 4, то учтите, что Android 15 более жесток по отношению к разрешениям, так что оптимизацию надо проводить более аккуратно.

Не могу ответить однозначно. Я отключил китайские бекдоры, отключил многие встроенные приложения, поменял стандартные приложения на более легкие (fossify) и пр. Короче, оптимизировал достаточно агрессивно. Т.е. я даже и не знаю, как аппарат должен работать "из коробки". В результате у меня 6-ти летний девайс держит батарею 1,5 дня при стандартном моем использовании (музыка по дороге, чаты прочитать, звонки, пара банковских приложений, пара легких игрушек, изредка карты/навигация). Учитывая, что девайс тогда стоил $120, я считаю, что по соотношению цена/качество в таком форм-факторе - это просто топ. Хотя пару вечеров надо над ним посидеть, это да...

Скриншот экрана из приложения Яндекс Го
Скриншот экрана из приложения Яндекс Го

Ну принципиально оно работает на 4'' 1080х540, Android 10

Устройство Cubot King Kong mini 2

Вы правы и неправы одновременно. С одной стороны, условный демон для смены обоев каждые полчаса - это явно избыточно. С другой стороны, возможно то, что вы с 19 лет тратили усилия на написание скриптов и кастомизацию, и делает вас хорошим разработчиком. Косвенно вы прокачивали, например, навык понимания чужих api.

Вот это вот пресловутое "создавать новые области знаний" - откуда вы это берёте? Люди подобное делают тоже крайне редко, если не никогда.

Люди подобное делают постоянно. Речь о самой способности делать выводы и оперировать новыми абстракциями. Посмотрите с точки зрения не какого-то общего "ЗНАНИЯ", а просто личного процесса познания.

Например, если залить горячей водой высушенные чайные листья и попробовать, что получилось, то человек в принципе способен сделать вывод о том, что залитие горячей водой высушенных листьев растений может дать новый напиток. Человек может ЗАХОТЕТЬ провести дополнительные экспериметнты. Нейронка в принципе на такое не способна.

Добавлю еще комментарий.
Лет 10-15 назад Microsoft уже продвигалась на рынке планшетов. Они уже держали в руках "Святой Грааль" планшета с возможностью запуска тяжелых десктопных приложений на x86_64 с Win 8.1. И они же самостоятельно загубили свое потенциальное доминирование в бизнес сегменте.

Сейчас они пытаются сделать то же самое, но через другую дверь с ARM. Но проблемы по сути все те же. Я так и не понял, что они предлагают... премиальный ноут в качестве тонкого клиента к облаку с их сервисами? А все ресурсы самого ноута будут уходить на то, чтобы запустить Copilot в Notepad?

Предрекаю провал этой эпичной затее.

первые новые ноутбуки на базе RTX Spark будут ориентированы на премиальный сегмент и призваны устранить недостатки конкурентов

Какие именно недостатки есть у конкурентов? Единственный конкурент в премиальном - это Apple со своими макбуками. Единственный недостаток Apple - это его цена (что для премиальных устройств несущественно). Во всем остальном у них просто нет недостатков, на данный момент это самые совершенные ноуты на базе ARM. Несмотря на то, что серийно они стали выпускать ноуты на ARM только в 20-м году, они не первое десятилетие работают с этой архитектурой и адаптировали под нее свою ОС.

А Nvidia совместно с Microsoft... на секундочку, это тот самый Microsoft, который чтобы открыть свое меню "Пуск" в своей собственной ОС разгоняет процессор ссылка на новость... так вот, Nvidia совместо с Microsoft за полгода хотят выпустить ноутбук премиального сегмента, который оставит позади всех конкурентов. Ну-ну, верим-верим...

Сталкивался с подобными задачами. Писать тесты надо ДО рефакторинга. Хотя бы интеграционные, рассматривая как black box.

Что все так накинулись то? Хорошая идея на самом деле. Чат, привязанный к CRM. Удобно же. Хороший в целом продукт.

Теоретически можно у тебя поднять matrix сервер, сделать веб-морду на клиенте, привязать ее к какой-нибудь open-source CRM, и получится что-то вроде того, что YouGile предлагает. Но зачем? Оно, конечно, не бесплатно, но это корпоративный сегмент, не для частного пользования.

Хотя, конечно, как @v_eroshenko заметил, делать регистрацию для гостевого доступа, мягко говоря, сомнительно.

Когда этот список публикуют, то у меня глаза всегда на этом пункте непроизвольно останавливаются:

онлайн‑сервисы платформы «Россия — страна возможностей»;

Я уже лет 15 математикой не занимался, так что мне пришлось прибегнуть к помощи нейронки. Но результаты от этого не сильно пострадали.

Железо и компилятор
$ lscpu | grep "Model name"
Model name: AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
$ sudo dmidecode --type memory | grep -i speed
	Speed: 2400 MT/s
	Configured Memory Speed: 2400 MT/s
	Speed: 2400 MT/s
	Configured Memory Speed: 2400 MT/s
$ gfortran --version
GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.

листинг
program thomas_test
    implicit none
    integer, parameter :: n = 10**7  ! 10 миллионов элементов
    real(8), allocatable :: a(:), b(:), c(:), d(:), x(:), cp(:), dp(:)
    real(8) :: m, t1, t2
    integer :: i

    call cpu_time(t1)

    print *, "Выделение памяти для n =", n
    allocate(a(n-1), b(n), c(n-1), d(n), x(n), cp(n-1), dp(n))

    ! Наполним данными, чтобы процессор не скучал
    a = 1.0d0; b = 4.0d0; c = 1.0d0; d = 10.0d0

    print *, "Поехали! Считаем прогонку..."

    ! --- Тот самый алгоритм ---
    cp(1) = c(1) / b(1)
    dp(1) = d(1) / b(1)
    do i = 2, n
        m = 1.0d0 / (b(i) - a(i-1) * cp(i-1))
        if (i < n) cp(i) = c(i) * m
        dp(i) = (d(i) - a(i-1) * dp(i-1)) * m
    end do

    x(n) = dp(n)
    do i = n-1, 1, -1
        x(i) = dp(i) - cp(i) * x(i+1)
    end do
    ! -------------------------

    call cpu_time(t2)
    print "(A, F10.6, A)", " Время выполнения: ", t2 - t1, " сек."
    print *, "Контрольное значение x(1):", x(1)

    deallocate(a, b, c, d, x, cp, dp)
end program thomas_test
результаты
$ gfortran -O3 -march=native -ffast-math thomas_test.f90 -o thomas_test
$ ./thomas_test 
 Выделение памяти для n =    10000000
 Поехали! Считаем прогонку...
 Время выполнения:   0.371780 сек.
 Контрольное значение x(1):   2.1132486540518713  

Вывода не будет...

Нет, на мои вопросы вы не ответили. Мой основной вопрос: зачем скрывать ViewModel за абстракциями?

1. И я, и @house2008 пишем примерно о том, что на ViewModel абстракции не надо делать, протоколы тут излишни. Нигде в коде @house2008 я не вижу стирания типов. Фреймворк хочет конкретный класс ViewModel? - окей, дайте ему конктретный класс ViewModel. В чем проблема то? Нужно тестировать? - окей, подменяйте в тестах источники данных, это будет чище и прозрачнее.

2. Вот я цитирую Википедию в разделе Rationale:

MVVM was designed to remove virtually all GUI code ("code-behind") from the view layer, by using data binding functions in WPF (Windows Presentation Foundation) to better facilitate the separation of view layer development from the rest of the pattern.

Data binding - это и есть основной механизм. Это не опциональное, это и есть фундамент MVVM. Data binding - это и есть реализация паттерна "Наблюдатель", просто зашитая внутри фреймворка. Не надо предлагать вручную дублировать функционал.

Кстати, в Android разработке я могу на коллбеках построить механизм, и мне за это ничего не будет, потому что есть Garbage Collector. А вот в iOS такую схему уже так просто не реализовать, потому как циклические ссылки и всё такое. Возможно, что ради избегания циклических ссылок MVVM и становится все более популярным для iOS.

Вообще не понимаю, зачем такое сложности? Зачем делать слой абстракции, если View наразрывно связана со своей/своими ViewModel? Основной концепт подхода в том, что при изменении данных/стейта внутри ViewModel автоматически обновляется View. Делать абстракцию не нужно, потому что View + ViewModel - это и есть слой presentation (на вашей же картинке в статье это указано), который отвязан от model.

Вы какую-то логику ищете?

Эти ребята блокируют заходы на сайты РЖД и Почты России с иностранных IP, т.е. контор, которые в принципе с зарубежом работают.

Задело? Окей, я попробую объяснить, как я это воспринимаю.

Читаю статью и вижу:

Может, написать отдельно interface со своими @Binds-методами, и отдельно object со своими @Provides-методами? Получится неудобно

Первая моя мысль: "Автор - сраный диверсант. Сейчас джуны начитаются, а потом будут такую хуиту на ревью приносить." Потом я захожу в профиль и вижу, что написано "стажер" и "Люблю промышленную разработку! Изучаю Android-разработку на Kotlin...". Моя вторая мысль: "Стажер открыл магию статики в Kotlin".

Комментарий я все-таки решил написать, но писать "КГ/АМ" как-то не сильно конструктивно, поэтому я немного раскрыл мысль, почему этот "креатив - говно". Тем более ты же буквально сейчас сам написал:

Я прекрасно понимаю, что в реальном проекте стоит делить модули по фичам или слоям

Если в реальном проекте твой подход со статикой используется чуть более чем никогда (возможно в очень-очень редких случаях и с полным пониманием зачем и почему, и то вряд ли так будут делать), то зачем ты вообще это все написал?

Однако, я прошу прощения за мой резкий тон. Тут я не прав, признаю.

Хочется и по содержанию статьи проехаться и по личности... походу я так и сдохну с отрицательной кармой :)

Автор, ты - стажер, и тебе рано еще писать технические статьи, наберись опыта. Формально ты прав, и формально так можно делать. Но этот подход НЕ полулярный, и так НЕ делают. Потому что помимо одного репозитория и экземпляра Retrofit, будут еще репозитории (внезапно), API, которые ты получаешь из Retrofit, другие сущности, совершенно не связанные с сетевой активностью. Поддержка файла с таким подходом превратится в ад при наличии сколь-нибудь чуть более сложной логики, чем единственный репозиторий. Принцип Single Responsibility придуман не просто так. Дели по смыслу ответственности даже модули в DI, не стоит усложнять себе жизнь на ровном месте.

Я как-то писал практический гайд по Hilt для новичков

Т-Банк еще и оборудование регулярно опрашивает...

Попробуй через adb придушить

adb shell am force-stop com.idamob.tinkoff.android
adb shell appops set com.idamob.tinkoff.android RUN_IN_BACKGROUND ignore
adb shell appops set com.idamob.tinkoff.android START_FOREGROUND ignore

Информация

В рейтинге
3 994-й
Зарегистрирован
Активность

Специализация

Разработчик мобильных приложений
Средний
Kotlin
Разработка под Android
Jetpack Compose
Kotlin Multiplatform