Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Пикабу Игры +1000 бесплатных онлайн игр

Погрузись в мир куриных перестрелок! Хватай пушку и пусть только перья останутся на месте твоих врагов!

Чикен Страйк

Шутер, Экшены, Для мальчиков

Играть
Постройте дом своей мечты прямо сейчас! Соединяйте три предмета в один ряд, зарабатывайте звезды и покупайте красивые детали интерьера. Звучит заманчиво? Увлекательная головоломка в жанре «три в ряд» заставит размяться ваш мозг. Присоединяйтесь к онлайн-игре бесплатно прямо сейчас!

Строить дом - три в ряд

Три в ряд, Казуальные, Детские

Играть
Archer Ragdoll Masters — экшн-игра со стрельбой из лука стикменом с физикой тряпичной куклы.

Archer Ragdoll Masters

Аркады, Гиперказуальные, 2D

Играть
Захватывающая аркада-лабиринт по мотивам культовой игры восьмидесятых. Управляйте желтым человечком, ешьте кексы и постарайтесь не попадаться на глаза призракам.

Пикман

Аркады, На ловкость, 2D

Играть

Отель Эмили. Пасьянс

Карточные, Казуальные, Головоломки

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Java книги

973 поста сначала свежее
4
Вопрос из ленты «Эксперты»
Morland
Morland
9 месяцев назад

Помощь с андроид приложением⁠⁠

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

Был у меня и знакомых небольшой чатик для текстового рп, и общения, человек на 300 пикового онлайна, недавно разработчики накрыли этот сервер медным тазом и фиг бы с ним, но появилась идея сделать что-нибудь своё, и внезапно вышло договорится о покупке кода другого, похожего приложения, закрытого в 22 году

Цена вопроса 52к рублей, при этом будет получен код приложения, и код сервера с клиентской базой

Не будет базы данных старых аккаунтов, это нужно будет сделать по новой.

Так же нужно будет изменить название, ну и собственно поднять сервер

Собственно, вопрос, к понимающим в этом людям, можно ли из этого будет поднять работающее приложение, какой в принципе уровень технических знаний для этого потребуется?

Само приложение написано на Java, код сервера на React, бекэнд на MeteorJS

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

Ну и немного скринов интерфейса, чисто для ознакомления

1/5

Цель: получить стабильно работающее в пределах хотя бы тех же 300 человек пикового онлайна приложение, которое можно будет поддерживать и модерировать своими силами

Показать полностью 5
Без рейтинга Программирование Java Javascript React Android Вопрос Спроси Пикабу Длиннопост
11
1
Proglib
Proglib
9 месяцев назад
Серия Итоги недели в мире бэкенда, обзоры новых сервисов

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах⁠⁠

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

📝 11 лучших инструментов для документации API

Документация служит всеобъемлющим руководством, объясняющим, как взаимодействовать с сервисом через API. Хорошая документация ускоряет процесс разработки, уменьшает количество ошибок и улучшает общее качество интеграции, поскольку включает в себя:

  • Описание конечных точек (эндпойнтов).

  • Форматы запросов и ответов.

  • Методы аутентификации.

  • Обработку ошибок.

  • Примеры использования.

Представляем подборку лучших инструментов для создания API-документации.

Swagger

Swagger – один из самых популярных инструментов: он поддерживает много языков программирования и предоставляет удобный интерфейс для проектирования и документирования API. Swagger позволяет определять конечные точки, форматы запросов и ответов, а также методы аутентификации. Кроме того, он предоставляет интерактивные инструменты для исследования и тестирования API.

Apidog

Apidog – комплексный инструмент для разработки, документирования и управления API. Он предлагает автоматическую генерацию интерактивной документации и возможность тестирования API в реальном времени. Apidog также поддерживает генерацию кода на разных языках программирования и предоставляет широкие возможности для настройки стиля документации.

ReDoc

ReDoc – опенсорсный инструмент, поддерживающий спецификации OpenAPI 2.0 и 3.0. Он отлично подходит для публикации интерактивной API-документации и предлагает удобную навигацию с настраиваемым поиском, а также стильный, адаптивный дизайн с возможностью настройки тем.

DapperDox

DapperDox – опенсорсный OpenAPI-рендерер, совместимый с OAS 2.0 и 3.0. Он позволяет использовать контент в формате Markdown для создания диаграмм и предоставляет модуль исследования структуры API для практических экспериментов.

🎓☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

Theneo

Theneo – генератор документации, использующий ИИ для автоматического описания API. У него простой интерфейс, напоминающий Notion, и он поддерживает интеграции с Swagger, Postman и GitHub.

Sphinx

Sphinx – мощный генератор документации, широко используемый в Python-сообществе. Он поддерживает много языков и предлагает широкие возможности для настройки. Sphinx может генерировать документацию в разных форматах, включая HTML, PDF и ePub.

Javadoc

Javadoc специально разработан для документирования Java-кода. Он извлекает комментарии и аннотации из исходного кода для создания HTML-документации с подробным описанием классов, методов и полей.

DocFX

DocFX – генератор статических сайтов, разработанный Microsoft и с ноября 2022 года поддерживаемый сообществом .NET Foundation. Предлагает настраиваемые шаблоны для создания документации и лендингов.

Doxygen

Doxygen поддерживает C++, С, Objective-C, Python, Java, IDL, PHP, C# и Fortran, может генерировать документацию в разных форматах, включая HTML, PDF и LaTeX.

Slate

Slate фокусируется на простоте и удобстве использования, предоставляя удобный, современный, адаптивный интерфейс для API-документации. Он поддерживает Markdown, подсвечивает синтаксис больше 100 языков и предлагает интерактивную консоль для тестирования API-эндпойнтов.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Интерактивная API-документация на Slate

➕➕🧩 Интересные задачи по C++ для практики можно найти на нашем телеграм-канале «Библиотека задач по С++»

Docusaurus

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

Приглашаем вас на вебинар «Как меняется математика в разных индустриях: от мобильных игр к фондовым рынкам», который состоится 22 августа в 20:00 по МСК. Там вы сможете:

  • Узнать, как математические методы влияют на мобильные игры и фондовые рынки.

  • Понять различия в математических подходах в разных сферах бизнеса.

  • Изучить реальные кейсы применения математики в GameDev и финансах.

  • Оценить, какие математические знания необходимы для успешной карьеры в Data Science.

Стать участником вебинара

😎 Автоматизация слепых SQL-инъекций на основе логических значений

Слепая SQL-инъекция на основе логического значения (Boolean-Based Blind SQL Injection) – тип SQL-инъекции, где атакующий не видит прямого вывода SQL-запроса, но может делать выводы на основе логических (истина/ложь) ответов от приложения (эти ответы могут проявляться в виде разных кодов состояния HTTP, разного содержимого ответа или реже разных заголовков).

Анализ ответов позволяет злоумышленникам определить структуру базы данных, а в дальнейшем – буквально символ за символом выяснить, какая информация в ней содержится. Пентестеры и этичные хакеры знают, что это один из самых трудоемких типов атак для ручной эксплуатации. Но несколько простых Python-скриптов помогают полностью автоматизировать процесс:

  • Простейший метод – извлекать данные по одному символу, используя функции SUBSTRING() и ASCII() в MySQL. Это позволяет узнавать значение каждого символа в строке путем сравнения с ASCII-кодами.

  • Оптимизированный подход – использовать алгоритм бинарного поиска. Это сокращает количество запросов для определения одного символа с 96 до 7, что значительно ускоряет процесс и делает атаку менее заметной.

  • Дополнительные приемы для извлечения разных типов данных включают использование подзапросов для выбора данных из произвольных таблиц, объединение значений из нескольких строк в одну строку с помощью GROUP_CONCAT и преобразование разных типов данных (числа, даты и т. д.) в строки, которые легче извлечь.

Для дальнейшего ускорения процесса можно использовать многопоточность с помощью ThreadPoolExecutor из библиотеки concurrent.futures.

🦫🎓 Подтянуть свои знания по Go вы можете на нашем телеграм-канале «Библиотека Go для собеса»

📶 Паттерны коммуникации в распределенных системах

Распределенные системы состоят из многих отдельных частей (или узлов), работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое. Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.

Запрос-ответ с HTTP

Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP – GET, POST, PUT и DELETE.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

HTTP-запрос и ответ 

Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.

Общие данные

Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Общие данные

Главное преимущество этого паттерна – простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.

Асинхронный запрос-ответ

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

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Асинхронный запрос-ответ

Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.

🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

Коммуникация на основе событий

В этом подходе сервисы не общаются напрямую друг с другом, а генерируют события, которые могут быть использованы другими сервисами. Это требует наличия места для отправки данных о событиях и механизма, позволяющего получающим сервисам обнаруживать эти события. Брокеры сообщений, такие как RabbitMQ, могут обрабатывать оба этих аспекта. Издатели используют API для отправки событий в брокер, который управляет подписками и уведомляет подписчиков при поступлении события.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Коммуникация на основе событий

Этот паттерн идеально подходит для создания слабосвязанных взаимодействий между сервисами. Однако брокер сообщений должен обеспечивать надежную доставку событий, их упорядочивание и согласованность. Кроме того, добавляется дополнительный компонент в систему.

🛠️ Инструменты

Postgres Sandbox – ИИ-песочница для работы с PostgreSQL в браузере. Проект реализован на PGlite – легковесной версии PostgreSQL, скомпилированной в WebAssembly и упакованной в клиентскую библиотеку TypeScript. Это позволяет запускать базу данных PostgreSQL непосредственно в браузере, Node.js и Bun без необходимости устанавливать другие зависимости. Размер PGLite – всего 3 Мб после сжатия Gzip, при этом база поддерживает многие расширения PostgreSQL, включая pgvector.

textual-plotext – виджет-обертка библиотеки для построения графиков Plotext. Визуализирует данные из Python-скриптов прямо в терминале.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Такие графики можно строить прямо в терминале

➕➕🎓 Подтянуть свои знания по C++ вы можете на нашем телеграм-канале «Библиотека С++ для собеса»

BunkerWeb – опенсорсный веб-фаервол (WAF), созданный на основе NGINX. Предназначен для защиты веб-сервисов – делает их безопасными по умолчанию. Легко интегрируется в существующие среды (Linux, Docker, Swarm, Kubernetes и т. д.), полностью адаптируется под ваши специфические требования. Предоставляет удобный веб-интерфейс и систему плагинов.

Kardinal – фреймворк для создания сверхлегких временных сред разработки внутри общего кластера Kubernetes. Позволяет быстро и эффективно создавать и удалять рабочие пространства для разработки, тестирования и демонстраций, минимизируя затраты ресурсов и стоимость эксплуатации.

Viking – инструмент для управления удаленными серверами (и группами серверов) через SSH.

Terminus – опенсорсная ОС на базе Kubernetes, которая позволяет создать домашнее облако на собственном сервере. Подходит для любых задач – локального хостинга LLM, хаба по управлению IoT-девайсами, персонального репозитория или рабочего пространства.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

Собственное облако Terminus

DeltaDB – легковесная, быстрая и масштабируемая база данных, созданная на основе polars и deltalake. Предназначена для разработчиков и организаций, которым нужно эффективное, простое и гибкое решение для обработки больших объемов данных с высокой скоростью и масштабируемостью.

emval – супербыстрый валидатор email-адресов для Python-приложений, написанный на Rust.

Итоги недели в мире бэкенда и обзоры новых сервисов: паттерны коммуникации в распределенных системах IT, Инновации, Микросервисы, Программирование, Разработка, Технологии, Golang, Java, Python, Длиннопост, YouTube, YouTube (ссылка), Видео

emval работает в 100–1000 раз быстрее других подобных модулей

🦫🧩 Интересные задачи по Go для практики можно найти на нашем телеграм-канале «Библиотека задач по Go»

RustPython – интерпретатор Python, написанный на Rust.

Автор рассылки: Наталья Кайда

📧 Подписаться на рассылку

Показать полностью 8 6
IT Инновации Микросервисы Программирование Разработка Технологии Golang Java Python Длиннопост YouTube YouTube (ссылка) Видео
0
6
RomAndPPcola
RomAndPPcola
10 месяцев назад

Запилил бота⁠⁠

Снова начал учить java и запилил бота, как пет проект. Может кому понравится.

В общем, он ищет по запросу, на одном известном сайте, торрент файлы и кидает их в чат.

Работает уже сутки без сбоев))

Смотрю с него сериал чики через torrserv.

Пользуйтесь, пока не заблокировали.

Критика и советы по улучшению приветствуются.

Можете даже на работу джуном позвать))

Ссылка:

https://t.me/SearchByTorrents_bot

[моё] Telegram Бот Java Текст
18
user9425961
10 месяцев назад

Please help, in control⁠⁠

No matter what I do, no matter how I change the code, I keep getting this error. And I don't think it's the code, I think it's something else. Because I've tried so many code variations to reduce the frequency of spawning mobs. I even use a neural network that writes codes for this mod and more. Read the wiki, made sure all the keywords are correct, then, what's the matter?
version
1.16.5

error:
Rule 0 in potentialspawn is invalid, skipping!
code:
[

{

"mob": "kimetsunoyaiba:demon_2",

"weight": 90,

"groupcountmin": 1,

"groupcountmax": 3,

"dimension": 0

}

]

Minecraft Java Моды Текст
5
0
gemerel132
gemerel132
10 месяцев назад

Вопрос к Майнкрафт игрокам ,что хотел добавить Нотч или планировал?⁠⁠

Вопрос к Майнкрафт игрокам ,что хотел добавить Нотч или планировал? Вопрос, Фотография, Minecraft, Java, Видеоигра
Показать полностью 1
Вопрос Фотография Minecraft Java Видеоигра
2
2
glass53
glass53
10 месяцев назад

Дневник разработчика. 2 года лени в обучении⁠⁠

Всем привет.

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

Честно скажу. Я ленивая жопа. Я не могу заставить себя учиться чему то новому. 2 Года назад я попробовал выучиться на Java разработчика. У меня не получилось.

Лень. Мозг сопротивляется получению новой информации. Такое ощущение, что внутри меня сидит маленькое ленивое чмо.
-Забей болт. сходи на рыбалку.
-Хватит мне больно. Давай просто поиграем в видео игры.
-Смотри. Там новый шортс на ютубе. Отдохнем 5 минут и продолжим.
Я ведусь на эти подсказки и перестаю учиться. Почему же? наверное у меня нет среднестатистического 49,5.

Я не буду грузить вас терминологией. Это не интересно. Я буду описывать свое состояние и какие то маленькие победы.

Будильник на 8 вечера каждый день заведен. Начинаем себя дисциплинировать.

Дневник разработчика. 2 года лени в обучении IT, Java, Дневник, Карьера, Юмор, Текст, Длиннопост
Показать полностью 1
[моё] IT Java Дневник Карьера Юмор Текст Длиннопост
4
95
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
10 месяцев назад

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024⁠⁠

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!

❯ Введение


Как я уже говорил в вводной части статьи, HTC Dream стал первым массовым Android-смартфоном в мире. Конечно, до этого момента в Google были гораздо более ранние прототипы, которые использовались при разработке устройства и что интересно — они тоже были разработаны HTC. Однако тот прототип был совершенно не похож даже на G1: это был QWERTY-моноблок с дисплеем 320x240, где всё управление происходило кнопками, а в качестве основы устройства скорее всего был выбран HTC Cavalier:

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост


И вот, 22 октября 2008 года в свет выходит HTC Dream у американского оператора T-Mobile, который гики сразу смели с виртуальных и физических магазинных полок. Стоит ли говорить о том, что смартфон имел огромный спрос не только на локальном рынке в США, но и за рубежом? Серым импортом даже в СНГ ввозилось довольно немало HTC Dream: правда сейчас их живых осталось не так уж и много :( Кстати, забавно но факт: первые серийные G1 не имели такой открытости и возможности модификации системы, которой гордятся владельцы Android-смартфонов в спорах с владельцами iPhone: даже adb был доступен только на специальной версии G1 — Android Dev Phone 1!

Но почему HTC выбрала именно Android? Чтобы ответить на этот вопрос, нужно вернуться в 2008 год, когда на рынке главенствовала Nokia со своим свежим флагманом 5800 XpressMusic. В те годы, выбор операционных систем для смартфонов был крайне невелик: по сути, производителям были доступны только две системы.

  • Первой была Windows Mobile, которая была хороша во всем: у неё была неплохая архитектура под капотом, настоящая многозадачность и работала она сносно даже на очень слабом железе. Но поскольку это Microsoft, куда же без косяков: система была нестабильной и могла повиснуть в самый неудачный момент (думаю, многие читатели помнят такие сокращения как ХР и ББ), её интерфейс не был анимированным (и не «модным») от слова совсем, а сама система была адаптирована лишь под стилус. Но тем не менее, мобильная винда продержалась на рынке смартфонов до 2010 года, как раз к моменту выхода Windows Phone 7… но это уже совсем другая история.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост
  • Второй системой была, конечно же, Symbian, которая на первый взгляд была хорошей: довольно удобный и привычный для многих интерфейс, очень хорошая оптимизация для слабых устройств и большая база самых разных приложений. Но её недостатки были гораздо более серьёзные, чем у мобильной винды: система лицензировалась не абы кому, а только участникам Symbian Foundation и её архитектура под капотом была просто отвратительной. Если кто-то из вас когда-то занимался разработкой нативных приложений под Symbian — вы наверняка вспомните эту боль.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

И вот, в 2008 году на сцену выходит новичок на мобильном рынке — поисковой гигант Google со своей мобильной операционной системой Android, которая предлагала обширный функционал, нормальную среду для разработчиков и полноценный магазин приложений и делала это всё почти бесплатно: исходный код системы был опубликован под свободной лицензией и любой производитель мог использовать Android на своём устройстве полностью бесплатно, доплачивая лишь за необходимость установки Google-сервисов.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Учитывая, что внутренние прототипы Google разрабатывала тоже HTC, немудрено почему именно Тайваньская компания выпустила первый Android-смартфон в мире. Увидев успех HTC Dream, крупные гиганты также потянулись на рынок Android-смартфонов: Samsung представила I7500 Galaxy, давший старт одноименной линейке, Motorola представила CLIQ, а затем и легендарный Milestone, а LG — весьма интересную модель под названием GW620. Уже в 2009 году, HTC представила Magic, который Google раздавала на конференции Google I/O в Сан-Франциско всем участникам конференции и один из таких тоже оказался в моей коллекции!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Свой HTC Dream я получил совсем недавно из Китая. Я давно хотел обзавестись «дримкой» и недавно мне написал читатель Роман, предложив помощь в поиске интересующих меня девайсов на китайских аналогах авито. При этом Роман брал на себя все заморочки с организацией доставки из Китая в Москву, а из Москвы уже в мой город — Ейск, за что ему огромное спасибо. HTC Dream обошёлся мне в 2.200 рублей, а Moto Milestone — около 500 и оба устройства полностью рабочие!

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

❯ Перепаковываем аккумулятор


Сначала аккумулятор необходимо разобрать. Для многих этот процесс может показаться опасным, но я уверяю авс — если не тыкать в аккумулятор отвертками и не замыкать ничего в цепи BMS-контроллера и самого аккумулятора, всё будет нормально. В моём случае, разбирается он просто — отклеиваем бумажки, формирующие корпус и аккуратно вытаскиваем банку с контроллером из пластиковой основы.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Затем выпаиваем плату защиты, известную также как BMS (Battery Management System) и идём искать подходящую банку. Можно установить как Б/У с другого телефона, так и новую, подходящую по размерам. Новой банки таких габаритов у меня не было, поэтому я решил воткнуть туда от АКБ для телефона LG.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Но произошёл определенный нюанс: параллельно со статьей я готовил и видео, подробно снимая весь процесс перепаковки. В момент пайки отвлекся на видоискатель, перевернул бмску ввеврх-ногами и… переполюсовал аккум до входа в BMS. Результат: со смартфоном всё хорошо (на входе VBat в телефонах всегда стоит защита от переполюсовки и КЗ. Кроме того, КП способен выдержать до ~5.5В на VBat, но не более), а в контроллере BMS-дырка :(

Сначала я думал вырезать эту часть статьи, но потом решил, что авторы — тоже люди и у них тоже бывают определенные фейлы :) Но гештальт не закрыт и я обязательно выпущу ещё более подробный гайд о перепаковке аккумуляторов. В дримку можно установить BL-4C от Нокии, однако заряжаться он будет только до загрузки ядра, поэтому зарядки у нас по факту пока что нет. Ну ничего, думаю ещё найдется аккумулятор!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

❯ Бэкпортируем приложения


Друзья! После статей и видео о разработке самопальных приложений, мне часто пишут в личку с вопросами можно ли портировать приложения современных сервисов на смартфоны прошлых лет. И здесь ответ неутешителен: нет, без исходного кода, в том числе и нативных зависимостей ничего портировтаь так просто не выйдет. Мои приложения изначально писались так, чтобы не зависеть вообще ни от чего кроме голого API Android (ни AppCompat, ни каких либо иных зависимостей) и при этом по возможности не используются даже фичи Android из 2.x. Именно поэтому мне свои приложения портировать гораздо проще.

Современная студия уже не умеет собирать приложения для 2.1 и ниже: примерно в 2.2 немного поменялся бинарный формат XML, из-за чего десериализатор в более старых версиях Android валится с ошибкой. Однако приложения, собранные в Android Studio образца 2017 прекрасно работают и на Motorola Milestone!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Поэтому всё, что нам остаётся — это лишь импортировать код приложений в более старую студию (в моём случае 2.3.2), поставить minSDK на 1 (Android 1.0) и собрать приложение… А ведь даже отладчик работает! Конечно есть определенные нюансы: например, в Android 1.0 нет атрибута onClick, дабы быстро повесить обработчик кнопки в Design-time и другие мелкие «приколы» той версии Android.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Приложения бэкпортированы, а значит можно попробовать, каков же экспиренс от использования первого Android-смартфона в 2024 году!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

❯ Обзор


Конструктивно смартфон очень интересный. Несмотря на то, что корпус отюндь не выполнен из премиальных материалов, смартфон лежит в руке классно, но самое приятное ощущение — это открыть клавиатуру путём сдвига QWERTY-слайдера…

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост
Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Механизм работает идеально даже спустя 16 лет после выхода устройства! Нижняя панель кнопок отличается наличием трекболла: специального колёсика, выполняющего роль DPad'а (стрелок). Трекболл долгое время был фишкой HTC, да и в целом действительно довольно удобным решением в определенных ситуациях, учитывая что первые ёмкостные тачскрины не были надёжными от слова совсем.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Изначально производительность смартфона меня не устроила и я решил скинуть его до заводских настроек. Но я не учёл один факт: в то время, Google почему-то пыталась косить под Apple и позволяла активировать смартфон только при наличии активного тарифного плана с пакетом интернета и симкой T-Mobile! Поэтому пришлось быстренько откатываться до прошивки RC29 (Android 1.0) и обходить активацию с помощью adb. Инженеры HTC оставили рутовую (!) консоль, которая работает из всей системы, когда мы просто пишем что-то на аппаратной клавиатуре! Попробуйте написать Enter -> reboot -> Enter на своей дримке!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

После включения, нас сразу встречает оригинальный гугловский лаунчер, который может быть знаком читателям, которые пользовались первыми Android-смартфонами. Менюшка здесь открывается путём свайпа нижней шторки вверх… но поскольку в те годы, всё 2D в Android рисовалось софтварно, то плавность была далека от айфона. Но всё равно вполне шустренько.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Среди стандартных приложений был почти весь джентльменский набор: и полноценный браузер, и почтовый клиент, и удобный плеер. А недостающие приложения типа клиента твиттера или аськи допиливали сторонние разработчики, так что спустя годик-два после выхода, «дримкой» всё ещё вполне можно было пользоваться.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Начинаем с браузера. В качестве браузерного движка, Google решили выбрать в своё время WebKit, который исопльзовался в дроиде вплоть до 5.0, когда WebView и его фактическую реализацию разделили, попутно заменив WebKit на Chromium. Сейчас эта версия, увы, уже почти ничего не может: ни Хабр почитать, ни Пикабу… конечно сторонние клиенты могли бы решить эту проблему, но оба сайта не хотят предоставлять никакого публичного апи…
Браузер до 2.1 даже верхней шторки не имел и переходить по URL приходилось нажимая кнопку контекстного меню и только затем Go:

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

До сих пор на устройстве работает мой любимый клиент почты — тот, который встроенный. Если ставить галки «SSL If Required», что позволяет игнорировать ошибки SSL, то он работает замечательно. Клавиатура у Dream замечательно подходит для переписок — отдельный ряд с цифрами и общее расположение кнопок этому очень и очень способствуют!

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Работают даже карты, позволяя сделать из смартфона с GPS в эдакий навигатор без навигации. Но карты работают очень шустро, даже поиск есть, а если вдруг Google Maps со временем отвалится, то я и вьювер OSM запилю :)

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Давайте же перейдем нашим приложениям! Начинаем с моего клиента YouTube, который здесь работает, но из-за значительно более «белой» светлой темы в 1.x, надписи не видно от слова совсем.

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

Клиент ВК здесь работает без каких либо проблем, но на «не свежей» системе заметно подлагивает. В целом, производительность всё равно далека даже от iPhone 3G в те же годы:

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

А как насчёт Telegram? Смогу ли я написать пост в свой Telegram-канал с него, учитывая такую крутую и классную QWERTY-клавиатуру?

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024 Опрос, Покупка, Android, Смартфон, Гаджеты, Китай, Htc, Разработка, Программирование, Java, Ретроспектива, Диковинки, Ништяки, Моддинг, Видео, Без звука, Длиннопост

❯ Заключение


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

Также у меня естьTelegram-канал, куда я выкладываю мысли касательно ремонта и программирования под гаджеты прошлых лет.
А когда у вас появился первый Android-смартфон? Пишите в комментариях!

На какой версии системы был ваш первый Android-смартфон?
Всего голосов:


Кстати, если у кого-то из читателей есть ненужные устройства (в том числе с косяками) или дешевые китайские подделки на айфоны/айпады/макбуки и другие брендовые девайсы будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11: мой ударник, контроллер дисплея калится и изображения нет :(

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!

Показать полностью 24 1 1
[моё] Опрос Покупка Android Смартфон Гаджеты Китай Htc Разработка Программирование Java Ретроспектива Диковинки Ништяки Моддинг Видео Без звука Длиннопост
17
0
lifeofjuniordev
lifeofjuniordev
10 месяцев назад

ПОЧЕМУ СЕКЬЮРИТИ ФРЕЙМВОРКИ ТАКИЕ СЛОЖНЫЕ⁠⁠

Я не особо в них разбираюсь но...
Нам же надо просто взять объект запроса, достать из него какие-то данные и проверить их.
Зачем столько классов? (диаграмма из документации спринг секьюрити)

Ладно, спринг по своей философии огромный комбайн.
Возьмем ктор - он простой и представляет только необходимые функции.
Так в нем выглядит аутентификация:
routing {
authenticate("auth-basic") {
get("/login") {
// ...
}
get("/orders") {
// ...
}
}
get("/") {
// ...
}
}
Функция authenticate на основе переданной строки определяет, какую функцию авторизации вызвать... Зачем?

Почему нельзя просто вызвать функцию авторизации, внутри get? Чтобы была возможность "обернуть" геты функцией авторизации? Да, так, конечно, лаконичнее, но неужели весь огород, который пришлось фигачить, этого стоит?

👨‍💻 Джуниор

ПОЧЕМУ СЕКЬЮРИТИ ФРЕЙМВОРКИ ТАКИЕ СЛОЖНЫЕ Telegram (ссылка), Программирование, Java, IT
Показать полностью 1
[моё] Telegram (ссылка) Программирование Java IT
3
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии