Вся история началась тогда, когда мне нужно было переустановить Microsoft Office на своём компьютере только для того, чтобы мне была доступна "Трансформация" в PowerPoint. Закачивая разные архивы с установщиками, незаметно, одним из них я занёс вирус ProtectBrowser.exe. Но по началу я не придал этому особого значения, ибо думал, что это отдельно вынесенная функция Яндекс Браузера по защите пользователей от всякой говно-рекламы. Во всяком случае, большинства.
Но спустя некоторое время, а именно две недели назад, я начал замечать то, что в истории моего Chrome (Яндекс Браузером я обычно не пользуюсь) появляются видео на других языках, в частности китайский, вьетнамский, темы были насчёт всяких лотерей и криптовалют. Тогда я начал пробовать разные методы противостоять этому - отключал расширения, установленные у меня в браузере, запрещал сайтам всё и вся, и даже пробовал полностью очистить свою историю, но мусор в истории продолжал появляться.
Тут я вспомнил про ProtectBrowser, прогуглил про эту программу, и оказалось, что я просто мыл говно 2 недели, ибо, цитата...
"Это опасная программа рекламного типа для всех браузеров, включая Safari, Edge, Google Chrome, Internet Explorer и Mozilla Firefox, которая направлена на создание веб-трафика для своего партнера"
Установил Avast, он сразу обнаружил вирус в этом файле, а потом ещё один, и благополучно снёс их с памяти компьютера. Теперь из мусора появляется лишь некий "Challenges Cloudflare", но часто появления ЭТОГО значительно меньше, чем ТО, что было до этого.
В общем, итог таков - не будьте таким же лохом как я: будьте как репа.
Здравствуйте! самый распространенный комментарий к прошлому посту – вопрос о том, как я тут пишу. Отвечаю.
Для ЛЛ: есть специальные программы для всего этого.
Слепые и слабовидящие люди пользуются компьютерами и смартфонами уже очень-очень давно. Для этого есть программы экранного доступа, которые озвучивают кнопки, текст, эмодзи и пр. Есть программы и для описания изображений, но с ними все неоднозначно.
Смартфоны.
В каждом современном телефоне можно найти раздел "специальные возможности", где находятся специфические настройки, позволяющие использовать устройство без зрения, слуха и пр.
Словами не просто объяснить, как это работает. Есть специальные жесты. При однократном нажатии на экран озвучивается элемент, который под пальцем, при двойном нажатии элемент запускается. И таких жестов много.
Программы для Android: Jieshuo (экранный диктор), Talkback (экранный диктор), Lazarillo (навигатор для слепых), Envision (прочитает инструкцию; скажет, что вокруг)
ОСТОРОЖНО! Не рекомендую включать такие программы без надобности, ибо многие потом не могут их выключить, поскольку после нажатия кнопки "Ок" все жесты, которыми Вы ранее управляли телефоном, превратятся в тыкву.
Компьютер
С компьютером все проще. Клавиатура выучивается. Программа озвучивает элементы интерфейса и пр. Только управление не мышью, а кнопками клавиатуры. Все.
Программы для windows: NVDA (экранный диктор)
О Linux
В целом, Windows, Android, iOS, Mac OS более доступны, чем Linux. Я пробовала использовать Debian (не знаю, как сейчас, а раньше у них был режим установки с экранным диктором, хоть и делать это надо было без графической оболочки).
Возможно, возникнет вопрос про ГО. Ответ: графическая оболочка для слепых - это возможность нажать на кнопку, а не вводить команду
Еще пробовала пару дистрибутивов, которые были разработаны непосредственно для слепых. Но пришла к Linux Mint, который пару лет стоял у меня на компе в качестве второй ОС.
Linux не так популярен, опять же, слишком много различных дистрибутивов, в которых по-разному работает озвучивающая программа (Orca). Но много недоработок, я чуть не поседела, когда устанавливала вокалайзер на нее.
___
Пикабу я давно читаю во Вконтакте, сейчас решила начать писать. На сайте сижу я, никаких посредников у меня нет. Я лично читаю комментарии и отвечаю на них.
Честно говоря, я знала, что существует стереотип о том, что люди без зрения не пользуются интернетом, но я не ожидала даже, что он настолько распространен.
Проблемы со зрением - не редкость в этом мире, поэтому достаточно много разработок, позволяющих адаптировать технологии под таких людей.
Напомню, два месяца назад мы заловились с товарищем @Stich.626 чтобы сделать единообразное + бесплатное мобильное приложение и сайт для расчета ценников в магазинах, которое решили не бросать, любить и лелеять, насколько это возможно.
В этом посте пойдет речь про обновление мобильной программы, и технические аспекты ее написания (все таки сообщество для разработчиков). Поехали!
Недооцененный баннер в Goggle Play
0 - Че там по отзывам
Перед выпуском обновления мы разумеется лезем в обе консоли разработчиков (приложение есть как в Google Play, так и в RuStore), и занимаемся вычитыванием того, что вы там понарасказывали в них, и какие хотелки запрашиваете.
Лично я придерживаюсь мнения, что разработчик (сайта, приложения, не важно) уже сам должен хорошо понимать, чего в приложении хватает (или не хватает), и на основе отзывов должна формироваться картина того, что должно ускорятся, или что добавлять в ту или иную итерацию.
А для всего остального есть MasterCard система тестирования и многочисленные метрики.
Так вот, среди отзывов уже давно проскакивали запросы на добавление списка с историей, сохранение результатов, сравнение нескольких выбранных показателей, и смена валют.
Сегодня вопросом списка с историей мы и займемся.
1 - Нарисуй меня полностью!
Первичный вход в приложение
Перед тем, как что-то наговнокодить написать, нам нужно сформировать в файлах макетов новые сущности для функционирования списка. В нашей основной деятельности появляется один новый блок, основанный на MaterialCardView из библиотеки поддержки M3, который содержит в себе:
Заглушку на основе RelativeLayout, которая показывается, когда еще не было произведено ни одного расчёта;
Сам список ListView, который находится внутри карточки, но невидим до тех пор, пока мы не начнем что либо считать.
Вариация макета при наличии расчетов
Визуально выглядит неплохо, но еще есть над чем поработать.
Дело в том, что ListView (древнейший из компонентов андроида, кста) в своем базовом варианте очень плохо выглядит. Настолько плохо, что если использовать его "как есть", то потом можно выхватить от пользователей лучи поноса:
Чтобы не повторять мем из картинки выше, мы создаем новый файл макета, в котором сверстаем 1 единственный пункт меню, который в дальнейшем будет повторятся, и добавляться к списку каждый раз при его заполнении данными.
Этот же файл, кстати, мы потом переопределим в адаптере, когда доберемся до кода.
В нашем случае получилась довольно простая адаптация, в которой:
Был добавлен корневой LinearLayout, позиционирующий дочерние элементы по горизонтали, с суммарным весом 9
Внутренние (дочерние) блоки, два из которых тоже на основе LinearLayout (но уже вертикально ориентированные), и еще один TextView, который нуждается только в центрировании
И уже внутри наши текстовые переменные, которым мы назначаем айдишки, и будем использовать в коде.
Но перед этим пойдем посмотрим, как это выглядит без учета логики на эмуляторе:
2 - Пишем внутренности
На виртуальном телефоне неожиданностей не произошло, отображается все так как хотелось, поэтому двигаемся в кодильню файл основной активности:
Перво - наперво, нам нужно уяснить несколько логических моментов:
При открытии приложения список уже есть, и поэтому он создается в onCreate. Но он пустой, так как мы еще не наполняли его данными.
Список уже знает, какими данными он будет наполняться (проставлены id и назначен наш кастомный слой), поэтому для него также создан адаптер, базирующийся на SimpleAdapter, который берет данные из HashMap. Он очень удобен (лично для меня), т.к. его можно в дальнейшем наполнять чем угодно: картинками, другими слоями, чекбоксами, и т.д.
Пока пользователь (ты) не начал ничего вводить, смысла показывать его тоже нет, поэтому мы изначально установили заданную видимость заглушки и списка в макете (не в коде). Заглушку видно, список нет.
Из хорошего, когда мы писали приложение в первый раз, то определили подсчет результата через switch - приложение знает, какой показатель мы считаем, поэтому нам просто нужно дать адаптеру сведения из того или иного метода расчёта.
Для этого мы добавляем две строчки кода для каждого из режимов. В первой добавляем данные, а второй говорим приложению, что список обновился (и тебе по-хорошему надо перерисовать список).
Например, для расчета по килограммам это будет выглядеть так:
Проверяем на телефоне, и неожиданностей опять нет - расчет прошел по тому показателю, который мы запрашивали.
3. Доделываем
Всего то 48 предупреждений.
Нам остается пройтись по инспектору, чтобы приложение выглядело не как гавно в глазах IDE более менее сносным (студия сама может проверить, что нужно улучшить или доправить):
Забиваем строковые ресурсы в string;
Раскладываем код по полочкам. Активности переносим в пакет activities, адаптеры в adapters;
Убираем код, который не использовали, или комментим его в TODO
Меняем индексы в приложении, добавляем информацию что мы там накрутили;
Обновляем пакеты, проверяем что из-за них ничего не поломалось.
Формируем AppBundle для Google Play, APK для RuStore (вторые еще толком не научились, а первые уже требуют).
И еще напоследок расшифрую некоторые моменты, которые я не упомянул до этого:
В приложении нет специального параметра (типа boolean до объявления в onCreate, или иного в SharedPrefs, например) для отображения или скрытия блока с заглушкой, так как мы полагаемся на жизненный цикл Android. Другими словами, если приложение было выгружено из памяти, или закрыто, нам не надо сохранять состояние списка, он все равно пересоздаст себя вместе с активностью. Если приложение разворачивается после скрытия (onResume), то все восстановится.
Список изначально не занимает всю площадь экрана, или не раздувается при наполнении (у него фиксированная высота). Это сделано специально, т.к. у нас еще не весь функционал реализован, и ниже будут дополнительные блоки/карточки.
ListView сам по себе является вертикально прокручиваемым по типу ScrollView, поэтому мы сохранили логику прокрутки внутри карточки, и заблаговременно сообщили слою Coordinator через параметр android:nestedScrollingEnabled="true", что вот ты, собака, должен (и будешь) прокручиваться. И даже ничего не сломали в плане юзабилити, пользователю понятно, что там внутри прокручивается список, т.к. есть соответствующая полоса прокрутки.
4 - Что дальше?
Дальше хотелось бы добавить оставшиеся вещи, в той очередности как я их вижу сейчас:
Сохранение результатов в свой собственный список + назначение названия. Например, хлеб в пятерке и в ашане;
Сравнение показателей по выбору их из истории, или из сохраненного списка;
Смена валюты через настройки, т.к. приложение опубликовано в 15 странах.
Публикую ссылки без зазрения совести, так как денег не прошу, а приложение бесплатное, каковым и останется. Ссыль на сайт опционально, для потенциальных вопросов по андроиду, предложений и всего такого.
Как добавить камеру видеонаблюдения в Smart PSS. Подключение камер от Dahua Technology.
Для получения видео с камер/устройств фирмы Dahua Technology^ -на смартфонах/мобильных устройствах, используется приложение DMSS. -на компьютерах под управлением ОС Windows и MAC OS, используется программа SmartPSS.
В данном случае, рассмотрим вопрос по подключению видео с камер и устройств на компьютеры управлением ОС Windows и MAC OS:
" Как добавить камеру видеонаблюдения в Smart PSS. Подключение камер от Dahua Technology".
1. Скачиваем программу Smart PSS на сайте производителя камер "Dahua Technology", и устанавливаем ее на компьютере.
Скачиваем программу Smart PSS на сайте производителя камер "Dahua Technology".
2. Запускаем установленную программу Smart PSS .
3. Выбираем галочкой пункт "Видеомониторинг", и нажимаем ОК.
Как добавить камеру видеонаблюдения в Smart PSS. Подключение камер от Dahua Technology.
4. В появившихся окнах разрешаем программе доступ в сеть, и принимаем/соглашаемся с лицензионными соглашениями.
5. В одном из появившихся окон, задаем пароль для входа в программу.
Лучше нажать галочку "Автоматический вход в систему после регистрации". Это позволит не водить пароль каждый раз.
Если забыли вдруг пароль и не можете попасть в программу-просто удалите ее и установите заново.
Настройка пароля для входа в программу Smart PSS.
6. Далее появится окно входа в программу. Здесь нажимаем кнопку "ВХОД" (т.к пароль уже введен после его создания).
Ввод логина и пароля для входа в программу Smart PSS.
7. Снова оказываемся в главном окне программы. Здесь выбираем пункт "Диспетчер устройств". Он позволит добавить нужную камеру/камеры.
Добавление камер/устройств в Smart PSS, через "Диспетчер устройств",
8. В появившемся окне "Диспетчер устройств", нажимаем на кнопку "Добавить устройство".
Окно "Диспетчер устройств" в Smart PSS.
9. Вводим данные своей камеры в появившееся меню.
В строках IP/домен, имя пользователя/login, пароль/password, надо в точности вводить те данные, которые присвоены вашим камерам(или выданы вам).
В поле "Имя устройства" , можно хоть что написать. Это обозначение для вас самих, а не параметр подключения.
В параметре/списке "Способ добавления", должен быть выбран пункт IP/домен, т.к в данном случае камеры настроены на подключение именно через IP/домен.
Параметр "Порт", в данном случае не изменялся, и не трогался вообще.
Нажимаем кнопку "Добавить и продолжить".
Вводим данные своей камеры/устройства в появившееся меню программы Smart PSS.
10. После нажатия кнопки "Добавить и продолжить", вы окажетесь в главном экране программы. Здесь нажимаем на кнопку "Просмотр в реальном времени".
"Просмотр камер в реальном времени". в Smart PSS
11. В появившемся окне "Просмотр", два раза щелкаем на Название соединения/Имя устройства. Развернется список всех камер . Далее, щелкая два раза по надписям IPC, вы добьетесь показа каждой камеры.
Раскрытие списка всех подключенных камер, в Smart PSS.
12. Если не со всех камер из списка ,отображаются видео, то надо сделать следующее.
Отображение содержимого всех подключенных камер, в Smart PSS.
В нижнем правом углу, выбрать один из значков/квадратиков.
Эти значки позволяют настроить количество камер, изображения с которых, одновременно будут показываться на экране.
Значок "Пользовательское разбиение", позволит более точно и удобнее для вас, отобразить порядок показа содержимого камер.
Но последний значок в ряду, не добавляет показ камер, а просто на весь экран показывает видео с камер. Нажав клавишу "ESC" на клавиатуре, можно выйти из полноэкранного режима.
В течении года я работал над социальным приложением, где каждый может опубликовать или найти мероприятия на карте. То есть любой может заполнить информацию о том где и когда он хочет провести мероприятие. А потом договориться с другими в чате. Например можно отметить на карте, что завтра я пойду на такой-то квест и хочу набрать людей. И эта метка у всех отобразиться.
Вайбер - Бесконечная загрузка сообщений. Что делать с Viber?
Иногда в Viber случается "Бесконечная загрузка сообщений", когда вы открываете чат, Viber делает вид, что загружает новые сообщения, но в итоге ничего так и не загружается.
При этом смена интернет соединения на более скоростное, очистка кэша в Viber, удаления данных на смартфоне для разгрузки памяти устройства - не помогают.
Решение проблемы, очень простое. Надо остановить приложение Viber, а затем снова запустить.
После этого, при открытии того-же чата, самые последние сообщения будут уже загружены и отображены. А остальные новые сообщения(если их много), можно будет увидеть, нажав на слово "Развернуть".
Вайбер Бесконечная загрузка сообщений. Что делать с Viber?
Для этого, надо в меню долго нажать на значок приложения Viber.
В появившемся всплывающем меню, выбрать пункт "Свойства/Информация о приложении", или выбрать "значок с восклицательным знаком" (в зависимости от версии Андроид).
В появившемся окне, выбрать кнопку "Остановить".
Затем можно запускать приложение Viber, где сообщения чата, смогут загрузиться.
Бывает, что нужно сделать запись на созвоне и потом расшифровать ее в текст. Если вы не имели ранее опыта использования сервиса, сложно разобраться, как это сделать и что нажать. Бывало у вас такое? Чтобы не было — я написал для вас подробную инструкцию.
Я Писец — добрый друг и защитник авторов, редакторов и журналистов. Хочу помочь вам ходить на созвоны технически подготовленными и не отвлекаться на то, как запустить запись.
Расскажу о возможностях записи звонков через Zoom, SberJazz и Google Meet, а также о транскрибации записи в качественный текст с разделением на абзацы и спикеров. Начнем!
В Zoom можно сделать запись прямо из приложения
Вы можете сделать запись в Zoom прямо через приложение, на своем телефоне или компьютере. В Zoom есть несколько вариантов записи конференций: вы можете сохранить видео- и аудиофайлы, а также отдельные аудиофайлы для каждого участника, до 80 человек.
Вы когда-нибудь делали такие файлы для каждого спикера? Наверное, это интересно, особенно если на встрече была суматоха, все перебивали друг друга, и вы хотите послушать каждого отдельно 😂
Как сделать запись. Откройте в приложении настройки и выберите пункт «Запись».
В настройках записи можно добавить временную метку, скрыть имена участников и выбрать место на компьютере, где будет храниться файл
Во время созвона нажмите кнопку «Запись» в нижней части экрана приложения.
Включить запись может только организатор конференции
Интерфейс подсказывает, что можно прервать запись, не дожидаясь окончания конференции
После звонка Zoom преобразует видео в формат mp4 и сохранит его на ваше устройство.
Нужно сохранять файлы только на компьютере. Если указать путь на флешку или облачный диск — программа собьется и не сохранит запись
В SberJazz можно записать звонок и даже расшифровать его за деньги
Сервис от Сбера позволяет записать видеоконференцию и сохранить ее на компьютер в формате webm.
Как сделать запись. Нажмите на «Прочее» и выберите «Записать встречу». Программа сохранит видео на ваше устройство в формате webm.
Подстава: надпись «Включить расшифровку» кликабельна, но если ее нажать на бесплатном тарифе, ничего не произойдет
Функция расшифровки и конспектирования речи доступна на платном тарифе, который обойдется бизнесу от 8000 рублей в год за одну лицензию.
Хорошие мои, я все понимаю — но это дорого 😬
Чтобы записать встречу в Google Meet — используем плагин
Чтобы записать созвон в гугл мите, нужна платная учетка Google Workspace, которой почти ни у кого нет. На бесплатном аккаунте записать видеоконференцию нельзя — придется хакнуть реальность.
Для записи звонков в Google Meet можно воспользоваться бесплатным расширением для Google Chrome, которое называется Scrnli.
Для начала, необходимо перейти в магазин приложений Google Chrome и в строке поиска ввести название "Scrnli"
Или откройте сайт scrnli.com и нажмите на кнопку «Install Scrnli» — сайт отправит в магазин приложений браузера.
Установите приложение.
Рядом с другими значками приложений появится синий кружочек — логотип Scrnli
Во время созвона нажмите значок Scrnli, выберите пункт «Record video» и нажмите «Browser Window» (записать окно браузера) или «Desktop» (записать рабочий стол). Начнется запись и внизу вкладки появятся кнопочки записи.
После звонка нажмите на «стоп» и отметьте галочкой, что запись нужно сохранить. Откроется страница с записью, на которой нужно выбрать формат и скачать файл.
Я создал звонок в Google Meet, записал его и сделал гифку для вас, чтобы было понятнее
Вариант с расширением Scrnli для Google Chrome подойдет и для любого другого сервиса, если вы его открыли в браузере, а не в приложении.
А теперь мой выход: как расшифровать файл в текст
И тут на арену выхожу я — Писец! Транскрибатор, искусственный интеллект, гений, плейбой, филантроп 😎
Я расшифрую вашу видеоконференцию, поставлю запятые, разобью текст на абзацы и спикеров, укажу таймкоды. Могу обработать как короткий войс, так и многочасовую запись. А еще я легко понимаю все эти ваши «ропы», «митапы» и «лпр».
Расшифровываю все форматы аудио и видеофайлов. Единственное условие — чтобы был звук 🙂
Всем пользователям при первой загрузке файла я дарю пакет на 30 минут. В него входит:
быстрая расшифровка файлов на высокопроизводительных, выделенных серверах;
одновременная обработка нескольких файлов;
поддержка через телеграм-чат.
Когда подарочный пакет закончится, подключится бесплатный тариф. Там всё скромнее:
загрузка файлов до 60 минут;
линейная обработка файлов (вы не загрузите следующий файл, пока не транскрибируется предыдущий);
низкая скорость расшифровки.
На бесплатном тарифе файлы обрабатываются в порядке живой очереди — чем больше пользователей, тем дольше нужно ждать. Расшифровка одного файла может длиться до 24 часов.
Для тех, кому нужно еще вчера — есть платные тарифы на высокой скорости. Вы покупаете время расшифровки и расходуете его столько, сколько нужно, без ограничений по времени.
А еще я за безопасные отношения: не храню ваши файлы и никак их не использую. Расшифровку удаляю сразу после того, как отправляю вам письмо на почту.
Велкам, мои дорогие! Жду ваших созвончиков и интервьюшек! Всё сделаю по красоте ❤️