Coder Social home page Coder Social logo

anilibria / anilibria-winmaclinux Goto Github PK

View Code? Open in Web Editor NEW
129.0 129.0 25.0 5.92 MB

AniLibria.Qt cross platform desktop client

License: GNU General Public License v3.0

QMake 0.73% C++ 59.44% QML 31.07% HTML 0.66% C 7.24% Shell 0.05% Rust 0.35% Nix 0.15% Slint 0.08% JavaScript 0.22%
anime cplusplus linux macos qt5 windows

anilibria-winmaclinux's People

Contributors

3jloy-pycckui avatar coscr avatar jaymz665 avatar knightmurloc avatar koi-foo avatar noma4i avatar roker2 avatar rostislavyurievich avatar ssaaadf avatar trueromanus avatar wafflelapkin avatar x1mper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

anilibria-winmaclinux's Issues

Количество просмотренных в списке релизов

  • Рядом с количеством серий в списке релизов добавить количество просмотренных
  • В карточке релизов тоже добавить количество просмотренных и возможность его сбрасывать и добавлять.

Change anilibria.desktop file location.

Как правило, указанный файл должен находиться в папке /data - это является хорошим тоном, не более. Сейчас он находится в /src.

Проверка на наличие новых версий

При каждом запуске делать проверку на наличие новой версии приложения и если таковая имеется то вывести информационное сообщение со ссылкой на последнюю версию.

Повышенное потребление gpu и cpu в режиме покоя

Просто открываю приложение, ничего не делая, есть постоянная нагрузка, хотя в приложении ничего не происходит.
Есть предположение, что где-то происходит лишняя перерисовка интерфейса (т.к. есть нагрузка на gpu).

Версия приложения: 0.1.3 rc2
Постоянная нагрузка: ±4.5% cpu, 2-5% gpu.
Версия OS: MacOS 10.15.4
Железо: MacBook Pro 2015 15" (i7-4770hq, Intel Iris Pro 5200, 16gb ram, 2304 x 1440)

image

Old SIGNAL/SLOT connections in C++ code.

В современном Qt можно не использовать макросы SLOT/SIGNAL и указывать связываемые компоненты подобным образом:

connect(&Obj1, &Obj1::signal, &Obj2, &Obj2::slot_or_lamda)

[Linux] Failed to load plugin

Приветствую, решил чисто из интереса попробовать запустить у себя на linux, GUI запустился, но контент отсутствует.

Лог

gstreamer у меня установлен версии 1.0. Мне кажется перечисленные в логе плагины, нужно паковать вместе с самим приложением.

Кроме того что-то не так с OpenSSL, не знаю почему она Incompatible у меня в системе стоит версия 1.1.1c-1ubuntu4

Ну и скриншотик если интересно

Видеоплеер в отдельном окне

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

Высокое потребление оперативной памяти

Наблюдается высокое потребление оперативной памяти при скролле списка релизов.
Без проблем (кроме дичайших лагов) удалось дойти до 7гб, дальше уже тяжело было, т.к. очень низкая отзывчивость приложения была.
Это не похоже не утечку памяти, скорее на кеширование битмапов всех постеров в оперативной памяти, т.к. после рефреша списка релизов потребление возвращается к "нормальным" 600мб.

Версия приложения: 0.1.3 rc2
Версия OS: MacOS 10.15.4
Железо: MacBook Pro 2015 15" (i7-4770hq, Intel Iris Pro 5200, 16gb ram, 2304 x 1440)
image

Изменение высоты тона при изменении скорости воспроизведения

Если в плеере изменить скорость воспроизведения, то меняется и высота тона, что не очень хорошо сказывается на восприятии.
Я не сильно глубоко смотрел в код, но, как я понял, для отображения плеера используется html со встроенным clappr и плагин clappr-playback-rate-plugin к нему. Насколько я понимаю, все эти плагины работают путем изменения свойства HTMLMediaElement.playbackRate. На странице об HTMLMediaElement.playbackRate с MDN по этому поводу написано:

The pitch of the audio is corrected by default and is the same for every speed. Some browsers implement the non-standard HTMLMediaElement.preservesPitch property to control this.

Также на странице об HTMLMediaElement с MDN написано:

Is a Boolean that determines if the pitch of the sound will be preserved. If set to false, the pitch will adjust to the speed of the audio. This is implemented with prefixes in Firefox (mozPreservesPitch) and WebKit (webkitPreservesPitch).

Если всё так, как я предполагаю (что не факт), то либо preservesPitch находится в значении false, либо это регулируется как-то иначе. Исправимо ли это?

Feature request: Улучшение поиска

  1. Поиск по оригинальному названию
  2. Выдача зависит от ё/е (не прикольно)
  3. Выдача зависит от пробелов в конце, начале

Build error on Arch Linux

Installing the app on Arch Linux fails with a huge error.

To Reproduce

Try installing or updating the app via an AUR helper, for example yay:

; yay -S anilibria-winmaclinux-git

Могу сделать редизайн

Привет! Напиши мне в телеграме, обсудим редизайна, а то этот выглядит топорно.

Мой телеграм: @jacklisov

Оффлайн кеш постеров

Постеры должны кешироваться в локальную папку и инвалидироваться только если путь к постеру в релизе меняется.

чем собирать?

решил собрать из исходников для linux но нигде не нашёл информации ни про зависимости ни про систему сборики и компилятор. может добавите эту информацию?

Личный кабинет.

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

Это ведь вполне реализовать и в приложении Анилибрии, причем без особых усилий.
Можно сделать примерно так: у пользователя имеется определенное место на сервере для html, css и js (можно, к слову, в будущем реализовать поддержку и других языков разметки). Когда человек в приложении заходит в личный кабинет, то загружаются эти файлы в webview. Помимо этого, можно указывать в этих файлах и цвета/стили для общего оформления приложения.

Split main.qml file

Заметил, что в проекте присутствует лишь один *.qml файл и он слишком уж большой. Предлагаю разделить его на несколько частей (на 3 уж точно можно, если верить моим глазам). Это позволит не только повысить читабельность, но и поможет новым контрибьюторам лучше ориентироваться в компонентах проекта.

noexcept вездесущий

Решил всё же спросить про такую ситуацию: много методов не вызывают исключения в процессе работы, а значит им спокойно можно ставить noexcept спецификатор и все от этого получат плюс, ибо время компиляции снизится и производительности прибавится. Всё по Скотту Мейерсу.

Однако! Хедер превращается в нечто подобное (Скрин). Что думаете по этому поводу?

Внешний плеер

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

Перейти на другой видеоплеер

После тестов текущего плеера оказалось что он работает из рук вон плохо.
Необходимо найти замену стандартному плееру и интегрировать его в приложение.

Need add new icon.

Необходима версия иконки в разрешении 48x48, поскольку вместо неё сейчас используется версия 32х32.

GPL 3.0

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

Не пойми скверно, себя записывать не буду, но код по идее могут легко украсть (патентные тролли существуют, увы).
См. линк, а если быть точнее, то последний пункт "How to Apply These Terms to Your New Programs".

Cannot open downloaded torrent files automatically

It rarely works as expected...

Sometimes it will download *.torrent files as an empty file, and I'm not able to open it manually. (I can only reinstall the program a few times to get it work.)

Now, it's working in this step:

  • Select download an Anime
  • It will download it ( if it fails it will download an empty *.torrent file and I should reinstall an app to get it work )
  • Manually run xdg-open ~/.local/share/EmptyFlow/AnilibriaDesktopClient/*.torrent
  • Distributive: Ubuntu 20.10 groovy | Linux host 5.8.0-48-generic #54-Ubuntu SMP Fri Mar 19 14:25:20 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  • App install method: AppImage

Log:

Cache location:  "/home/USER/.local/share/EmptyFlow/AnilibriaDesktopClient"
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner: symbol lookup error: /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner: undefined symbol: _gst_executable_path

(AniLibria:1770855): GStreamer-WARNING **: 07:28:22.625: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.
No WebView plug-in found!
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
/usr/bin/transmission-gtk: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by /lib/x86_64-linux-gnu/libgio-2.0.so.0)
/usr/bin/transmission-gtk: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by /lib/x86_64-linux-gnu/libmount.so.1)
/usr/bin/transmission-gtk: symbol lookup error: /usr/bin/transmission-gtk: undefined symbol: gtk_menu_popup_at_pointer
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
/usr/bin/perl: /tmp/.mount_anilib8UuOMX/lib/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /usr/bin/perl)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
sed: /tmp/.mount_anilib8UuOMX/lib/libselinux.so.1: no version information available (required by sed)
/usr/bin/xdg-open: 869: google-chrome-stable: not found
/usr/bin/xdg-open: 869: google-chrome-stable: not found
xdg-open: no method available for opening 'file:///home/USER/.local/share/EmptyFlow/AnilibriaDesktopClient/e5e7ed952d574dc58bb315ce932c0c82.torrent'

Не запускается после сборки из AUR (Arch Linux)

Текущий результат:
[user@localhost]$ AniLibria
QtWebEngine::initialize() called with QCoreApplication object already created and should be call before. This is depreciated and may fail in the future.
QQmlApplicationEngine failed to load component
qrc:/main.qml:25:1: module "QtQuick.Dialogs" is not installed

Ожидаемый результат:
Приложение запуститься

Вероятные причины:
Нет необходимых зависимостей в пакете для компиляции и развертывания из AUR.

Характеристики:
OS: Arch Linux
Kernel: x86_64 Linux 5.10.5-arch1-1
Shell: bash
Resolution: 1920x1080
WM: Awesome
GTK Theme: Adwaita [GTK3]

Чёрный экран при попытке посмотреть аниме

При попытке посмотреть аниме (кнопка смотреть) открывается плеер, звук играет, а вместо картинки - чёрный экран

image

лог в консоли:

% GST_DEBUG=3 AniLibria
QtWebEngine::initialize() called with QCoreApplication object already created and should be call before. This is depreciated and may fail in the future.
Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
Cache location:  "/home/waffle/.local/share/EmptyFlow/AnilibriaDesktopClient"
0:00:00.020301646 172390 0x7f2768004d60 WARN     GST_ELEMENT_FACTORY gstelementfactory.c:462:gst_element_factory_make: no such element factory "vaapisink"!
0:00:00.023289747 172390 0x7f2768004d60 WARN     GST_ELEMENT_FACTORY gstelementfactory.c:462:gst_element_factory_make: no such element factory "vaapisink"!
qml: changed urlhttps://vk.com/
0:00:18.191991971 172390 0x7f2768004d60 FIXME                    bin gstbin.c:4349:gst_bin_query: implement duration caching in GstBin again
0:00:18.727534001 172390 0x7f2674007d80 WARN            uridecodebin gsturidecodebin.c:920:unknown_type_cb:<uridecodebin0> warning: No decoder available for type 'video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, parsed=(boolean)true'.
Warning: "No decoder available for type 'video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, parsed=(boolean)true'."
0:00:18.734914710 172390 0x7f2670010460 WARN               h264parse gsth264parse.c:1349:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 6 SEI, Size: 673 will be dropped
0:00:18.760192561 172390 0x7f2664021400 WARN         audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps
qml: bufferProgress0.01
qml: bufferProgress0.02
qml: bufferProgress1

meta

  • Arch Linux
  • anilibria-winmaclinux версии комита 78c941a
  • gs-streamer установлен (-Qs - ищет по установленным пакетам)
% pacman -Qs gstreamer
local/gst-plugins-bad 1.16.2-7
    GStreamer open-source multimedia framework bad plugins
local/gst-plugins-bad-libs 1.16.2-7
    GStreamer open-source multimedia framework bad libraries
local/gst-plugins-base 1.16.2-1
    GStreamer open-source multimedia framework base plugins
local/gst-plugins-base-libs 1.16.2-1
    GStreamer open-source multimedia framework base libraries
local/gst-plugins-good 1.16.2-3
    GStreamer open-source multimedia framework good plugins
local/gstreamer 1.16.2-1
    GStreamer open-source multimedia framework core library
local/phonon-qt5-gstreamer 4.10.0-1
    Phonon GStreamer backend for Qt5
local/qt-gstreamer 1.2.0-2
    Qt bindings for GStreamer

Скролл настроек при маленьком размере окна

Сразу скажу: сижу я на линуксе(Kubuntu 20.04), для общего понимания.
Ситуация следующая:
image

Настройки не полностью влезают в окно и их нельзя проскроллить. Единственный выход - увеличить окно, чтобы все пункты попадали в него.

Пустой тултип

Пустой тултип у кнопки, наверное нужно написать че нить

Screenshot_20210911_194631

Неочевидная работа с избранным

Кажется неочевидным что в кинозал зайти с бокового меню можно, а в избранное нельзя (хотя вроде бы по сообщению "избранное недоступно" подразумевается что можно).
Из списка релизов избранное по прежнему доступно.
Не уверен баг это или фича, но в первое время не понимал в чем проблема и почему нельзя зайти в избранное.

User settings

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

Exception after running app on Linux

https://aur.archlinux.org/packages/anilibria-winmaclinux-git
I install package with yay -S anilibria-winmaclinux-git
After this i ran app and get exception:

QtWebEngine::initialize() called with QCoreApplication object already created and should be call before. This is depreciated and may fail in the future.
QQmlApplicationEngine failed to load component
qrc:/main.qml:25:1: module "QtQuick.Dialogs" is not installed

I fix it with yay -S qt5-quickcontrols
Please add this dependency to AUR package

Кинозал

Сделать аналогичную фичу как в win10 приложении - возможность смотреть сразу несколько релизов в видеоплеере с навигацией вперед назад только по непросмотренным. Также сделать отдельную страницу где можно настраивать порядок релизов в плейлисте и удалять не нужные.

Неочевидная работа переключения серии в плеере

Список серий в левой части экрана расположен по возрастанию, сверху вниз.
Однако при этом PgUp и PgDn включают следующую и предыдущую серию. Очевидней было бы обратное поведение.

Кроме этого использование таких горячих клавиш может быть затруднительно на неполных клавиатурах. Предлагаю добавить дополнительные хоткеи N(от Next) и P (от Previous) для следующего и предыдущего трека в списке.
Хоткей отвечающий за переключение режима "поверх всех окон" можно переназначить на T (от always on Top).

Так как узнать о том какие клавиши довольно затруднительно, хорошо было бы добавить инфу о хоткеях в тултипы.

Встроенный менеджер загрузок

Сделать по аналогии с win10 приложением встроенный менеджер загрузок с отдельной информативной страницей, подсчетом занимаемого места и уведомлениями о окончании загрузки.

Вопросы со сборкой пакета

Я попытался сделать пакет для Arch Linux (PKGBUILD) и столкнулся с несколькими проблемами:

  1. Путь установки задан /opt/AniLibria/bin/AniLibria, в то время как в Arch linux обычно используется /usr/bin/<...>. Честно сказать не знаком с qt и .pro файлами, но судя по тому, что я нагуглил - чтобы поддерживать override пути установки, надо добавить что-то такое в .pro файл:

    target.path = $${PREFIX}}/AniLibria
    INSTALLS += target
    

    (взято из ответа 2010 года: https://lists.qt-project.org/pipermail/qt-interest-old/2010-February/018490.html)

    Или можно как-то просто через аргументы командной строки для qmake это изменить? Я не нашёл такого способа, но было бы здорово.

  2. Название достаточно длинное и странное, имхо. Оно временное, или так всегда и будет ...-winmaclinux?

qt5-default and dependencies based on qt

Since qt5-default was removed from Ubuntu 21.04 with changelog:

Remove qt5-default. Nowadays it's not needed as Qt 5 is the only Qt version in Debian and it brought more problems than solutions.

We have dependencies from qt5-default which we cannot be able to install it even by downloading it, https://packages.ubuntu.com/groovy/amd64/qt5-default/download because it's depends on other tools...

I'm asking what we can do ?

Links:
https://askubuntu.com/questions/1335184/qt5-default-not-in-ubuntu-21-04

Реализовать настройку Автоматический переход в режим поверх всех окон.

При включенной настройке и переходе к воспроизведению сделать следующее:

  • Скрыть тулбар
  • Сделать окно фиксированным
  • Убрать все оформление окна
    При включенной настройке и остановке или паузе видео сделать следующее:
  • Вернуть тулбар, оформление окна и возможность менять размер окна

Инерция прокручивания

На текущий момент инерция при скроллинге релизов слишком большая, из-за чего очень легко случайно пролистать несколько страниц, вместо половины. Было бы неплохо её уменьшить.

wrong icon installation

При обновлении пакета для арча обнаружил что иконки приложения не устанавливаются.

После небольшого исследования и вопросов у более опытных, в этой сфере, людей, выяснилось что иконки устанавливаются не правильно — нужно ещё добавлять icon_NN.CONFIG += no_check_exist. Как в этом патче:

patch
diff --git a/src/AniLibria.pro b/src/AniLibria.pro
index 51e1b43..6ed0fa0 100644
--- a/src/AniLibria.pro
+++ b/src/AniLibria.pro
@@ -17,26 +17,32 @@ unix {
     icon_16.path = /usr/share/icons/hicolor/16x16/apps
     icon_16.commands = mkdir -p icons/16 && cp ../anilibria.iconset/icon_16x16.png 
icons/16/anilibria.png
     icon_16.files += icons/16/anilibria.png
+    icon_16.CONFIG += no_check_exist
 #32x32
     icon_32.path = /usr/share/icons/hicolor/32x32/apps
     icon_32.commands = mkdir -p icons/32 && cp ../anilibria.iconset/icon_32x32.png 
icons/32/anilibria.png
     icon_32.files += icons/32/anilibria.png
+    icon_32.CONFIG += no_check_exist
 #48x48 #TODO: create png icon in 48x48 resolution.
     icon_48.path = /usr/share/icons/hicolor/48x48/apps
     icon_48.commands = mkdir -p icons/48 && cp icon48.png icons/48/anilibria.png
     icon_48.files += icons/48/anilibria.png
+    icon_48.CONFIG += no_check_exist
 #128x128
     icon_128.path = /usr/share/icons/hicolor/128x128/apps
     icon_128.commands = mkdir -p icons/128 && cp ../anilibria.iconset/icon_128x128.png 
icons/128/anilibria.png
     icon_128.files += icons/128/anilibria.png
+    icon_128.CONFIG += no_check_exist
 #256x256
     icon_256.path = /usr/share/icons/hicolor/256x256/apps
     icon_256.commands = mkdir -p icons/256 && cp ../anilibria.iconset/icon_256x256.png 
icons/256/anilibria.png
     icon_256.files += icons/256/anilibria.png
+    icon_256.CONFIG += no_check_exist
 #512x512
     icon_512.path = /usr/share/icons/hicolor/512x512/apps
     icon_512.commands = mkdir -p icons/512 && cp ../anilibria.iconset/icon_512x512.png 
icons/512/anilibria.png
     icon_512.files += icons/512/anilibria.png
+    icon_512.CONFIG += no_check_exist

     UNIX_ICONS += icon_16 icon_32 icon_48 icon_128 icon_256 icon_512
 }
@@ -92,9 +98,8 @@ QML_IMPORT_PATH =
 # Additional import path used to resolve QML modules just for Qt Quick Designer
 QML_DESIGNER_IMPORT_PATH =

-# Default rules for deployment.
-qnx: target.path = /tmp/$${TARGET}/bin
-else: unix:!android: target.path = /opt/$${TARGET}/bin
+# Arch linux common instalation path
+target.path = /usr/bin

 !isEmpty(target.path) {
     unix: INSTALLS += target desktop $${UNIX_ICONS}

ссылки:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.