Giter VIP home page Giter VIP logo

leraine-studio's People

Contributors

ancul001 avatar jaanjah avatar opposite34 avatar sadkawt avatar unnamedorange avatar vortexcoyote avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

leraine-studio's Issues

Implement more visual interface

I think this editor could be perfect for touch screen users. maybe adding more visual interface such as scrolling through beat snap and selecting edit mode might be cool.

Also might want to scrap the idea of holding shift to place LN

Stepmania format import and export

Add functionality to parse and export stepmania files. This might require some rethinking in what modules should do what, since the stepmania file format already includes things such as beat division for notes.

Implement fakes

On the topic of sm support, stepmania contains a note type called fakes which are genuinely fake taps. They are taps which you cannot hit and count for nothing. In notedata they are usually represented as F

This is not to be confused with a fake region which in sm/ssc timingdata basically means "a section of real taps/objects which cannot be hit because a warp or ssc fake region makes it impossible"

I'm not sure any other games have this note type.

Use a different audio engine for Stepmania charts

It's common knowledge that the audio encoding and decoding for the BASS audio library differs from others, thus creating compatibility issues between osu! and Stepmania charts. I think it's possible to combat this by using a different audio engine for Stepmania charts.

Unicode support

Loading files with unicode currently crashes the editor. Investigate how we can support this format

using the "sorting by modified" option on the osu folder crashes the editor

This issue may not be exclusive to the osu songs folder, and may just happen with any folder that has a lot of stuff/osu files in it, but the editor will always crash upon trying to sort by modified. all of the other options dont seem to crash it (but appear to not do anything?), this issue only happens with the date modified option

running on windows, specs can be given if you need em

Investigate linking errors on windows GCC

[  2%] Building CXX object CMakeFiles/leraine-studio.dir/source/editing/base/edit-mode.cpp.obj
[  5%] Building CXX object CMakeFiles/leraine-studio.dir/source/editing/bpm-edit-mode.cpp.obj
C:\Users\USER\Codes\leraine-studio\source\editing\bpm-edit-mode.cpp: In member function 'void BpmEditMode::DisplayBpmNode(BpmPoint&, int, int, bool)':
C:\Users\USER\Codes\leraine-studio\source\editing\bpm-edit-mode.cpp:253:37: warning: cast from 'BpmPoint*' to 'int' loses precision [-fpermissive]
  253 |         ImGui::Begin(std::to_string((int)&InBpmPoint).c_str(), &open, windowFlags);
      |                                     ^~~~~~~~~~~~~~~~
[  7%] Building CXX object CMakeFiles/leraine-studio.dir/source/editing/note-edit-mode.cpp.obj
[ 10%] Building CXX object CMakeFiles/leraine-studio.dir/source/editing/select-edit-mode.cpp.obj
[ 12%] Building CXX object CMakeFiles/leraine-studio.dir/source/global/global-functions.cpp.obj
[ 15%] Building CXX object CMakeFiles/leraine-studio.dir/source/main.cpp.obj
[ 17%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/audio-module.cpp.obj
[ 20%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/background-module.cpp.obj
[ 22%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/base/module.cpp.obj
[ 25%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/beat-module.cpp.obj
[ 27%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/chart-parser-module.cpp.obj
[ 30%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/debug-module.cpp.obj
[ 32%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/dialog-module.cpp.obj
[ 35%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/edit-module.cpp.obj
[ 37%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/imgui-module.cpp.obj
[ 40%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/input-module.cpp.obj
[ 42%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/manager/module-manager.cpp.obj
[ 45%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/minimap-module.cpp.obj
[ 47%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/notification-module.cpp.obj
C:\Users\USER\Codes\leraine-studio\source\modules\notification-module.cpp: In member function 'virtual bool NotificationModule::Tick(const float&)':
C:\Users\USER\Codes\leraine-studio\source\modules\notification-module.cpp:27:41: warning: cast from 'NotificationMessage::Message*' to 'int' loses precision [-fpermissive]
   27 |             ImGui::Begin(std::to_string((int)&message).c_str(), &open, windowFlags);
      |                                         ^~~~~~~~~~~~~
[ 50%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/popup-module.cpp.obj
[ 52%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/shortcut-menu-module.cpp.obj
[ 55%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/timefield-render-module.cpp.obj
[ 57%] Building CXX object CMakeFiles/leraine-studio.dir/source/modules/waveform-module.cpp.obj
[ 60%] Building CXX object CMakeFiles/leraine-studio.dir/source/program/program-meta.cpp.obj
[ 62%] Building CXX object CMakeFiles/leraine-studio.dir/source/program/program.cpp.obj
[ 65%] Building CXX object CMakeFiles/leraine-studio.dir/source/structures/chart.cpp.obj
[ 67%] Building CXX object CMakeFiles/leraine-studio.dir/source/structures/configuration.cpp.obj
[ 70%] Building CXX object CMakeFiles/leraine-studio.dir/source/structures/notification-message.cpp.obj
[ 72%] Building CXX object CMakeFiles/leraine-studio.dir/source/structures/skin.cpp.obj
[ 75%] Building CXX object CMakeFiles/leraine-studio.dir/source/structures/timefield-render-graph.cpp.obj
[ 77%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguidock/imguidock.cpp.obj
[ 80%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguifilesystem/imguifilesystem.cpp.obj
[ 82%] Building C object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguifilesystem/minizip/ioapi.c.obj
[ 85%] Building C object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguifilesystem/minizip/unzip.c.obj
[ 87%] Building C object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguifilesystem/minizip/zip.c.obj
[ 90%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguilistview/imguilistview.cpp.obj
[ 92%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguistring/imguistring.cpp.obj
[ 95%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/addons/imguitoolbar/imguitoolbar.cpp.obj
[ 97%] Building CXX object CMakeFiles/leraine-studio.dir/source/utilities/imgui/std/imgui-stdlib.cpp.obj
[100%] Linking CXX executable ..\binaries\leraine-studio.exe
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x4fa): undefined reference to `__imp__ZTVN2sf14RectangleShapeE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x538): undefined reference to `__imp__ZN2sf14RectangleShapeC1ERKNS_7Vector2IfEE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x554): undefined reference to `__imp__ZN2sf13Transformable11setPositionEff'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x577): undefined reference to `__imp__ZN2sf14RectangleShape7setSizeERKNS_7Vector2IfEE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x599): undefined reference to `__imp__ZN2sf5ColorC1Ehhhh'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x5a5): undefined reference to `__imp__ZN2sf5Shape12setFillColorERKNS_5ColorE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x5ac): undefined reference to `__imp__ZN2sf12RenderStates7DefaultE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x5b8): undefined reference to `__imp__ZN2sf12RenderTarget4drawERKNS_8DrawableERKNS_12RenderStatesE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x5c6): undefined reference to `__imp__ZN2sf5ShapeD2Ev'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x889): undefined reference to `ImGui::SetNextWindowPos(ImVec2 const&, int, ImVec2 const&)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x9be): undefined reference to `ImGui::Begin(char const*, bool*, int)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0x9f7): undefined reference to `ImGui::Button(char const*, ImVec2 const&)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xa1f): undefined reference to `ImGui::SameLine(float, float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xa2b): undefined reference to `ImGui::Text(char const*, ...)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xa3b): undefined reference to `ImGui::SameLine(float, float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xa48): undefined reference to `ImGui::PushItemWidth(float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xa92): undefined reference to `ImGui::DragFloat(char const*, float*, float, float, float, char const*, int)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xac8): undefined reference to `ImGui::Button(char const*, ImVec2 const&)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xadf): undefined reference to `ImGui::SameLine(float, float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xaf7): undefined reference to `ImGui::Button(char const*, ImVec2 const&)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb03): undefined reference to `ImGui::End()'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb30): undefined reference to `ImGui::Button(char const*, ImVec2 const&)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb54): undefined reference to `ImGui::SameLine(float, float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb60): undefined reference to `ImGui::Text(char const*, ...)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb70): undefined reference to `ImGui::SameLine(float, float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xb7d): undefined reference to `ImGui::PushItemWidth(float)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xbc7): undefined reference to `ImGui::DragFloat(char const*, float*, float, float, float, char const*, int)'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xcee): undefined reference to `__imp__ZTVN2sf14RectangleShapeE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xd13): undefined reference to `__imp__ZN2sf14RectangleShapeC1ERKNS_7Vector2IfEE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xd64): undefined reference to `__imp__ZN2sf13Transformable11setPositionEff'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xd80): undefined reference to `__imp__ZN2sf14RectangleShape7setSizeERKNS_7Vector2IfEE'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xdad): undefined reference to `__imp__ZN2sf5ColorC1Ehhhh'
c:/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\leraine-studio.dir/objects.a(bpm-edit-mode.cpp.obj):bpm-edit-mode.:(.text+0xdd7): undefined reference to `make[2]: *** Deleting file '../binaries/leraine-studio.exe'
make[2]: unlink: ../binaries/leraine-studio.exe: Permission denied
make[2]: *** [CMakeFiles\leraine-studio.dir\build.make:753: ../binaries/leraine-studio.exe] Interrupt
make[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/leraine-studio.dir/all] Error 130

The linking error happens a lot longer. i interrupted it early

v1.1.0 - The Stepmania Update

Public roadmap for what to expect for the next update!

Subject to change.

This update will mainly focus on bringing over Stepmania features and functionality for the editor. New controls will have to be implemented, the .sm file format will need to be supported and some systems will have to be slightly rewritten.

Stepmania related features:

Other unrelated minor or quality of life features could also be implemented, and will be displayed here.

If you have anything to add feel free to comment on this thread!

Better custom skin feature

Maybe having folder system like the one on osu.

Would be cool if we can add a tool that can convert osu / sm skins into usable leraine skin ๐Ÿ‘€

Add disclaimer notice when opening for the first time

Contains information about things that would not carry over if you import an .osu file (mainly hitsounds).

would also want to save the time they clicked "understood" since people would forget about them over time

Implement upscroll

Implement upscroll within the timefield-render-module. This will require some rewriting and additional settings for the config file

Implement lifts

On the topic of sm support, stepmania contains a note type called lifts which are notes that require you to lift or release when they reach the judge line. In notedata they are usually represented as L. It may be important to keep in mind that a lift is not related in any way to a hold.

Other games have this note type in the form of a hold release, if at all.

Suggest adding setting.json into .gitignore

In my view, the only thing useful in .vscode/setting.json is:

"cmake.configureEnvironment":
{
"VCPKG_ROOT": "/home/x3tr0v/Development/vcpkg",
"PROJECT_NAME": "leraine-studio"
},
"cmake.configureSettings":
{
"CMAKE_TOOLCHAIN_FILE": "${env:VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"VCPKG_TARGET_TRIPLET": "x64-windows"
},

While others are generated or are preferences for the programmer. The settings about CMake above should be computer dependent, not project dependent, though (except "PROJECT_NAME").

I suggest instructing the user to set "VCPKG_ROOT", "CMAKE_TOOLCHAIN_FILE" as their global configs, and use "set(PROJECT_NAME ...)" in CMakeLists.txt. "VCPKG_TARGET_TRIPLET" should be deprecated because VS Code can select a correct triplet according to our compiler configuration.

implement mines

This will require us to add a new note type, which is similar to the "common" note type.

Offset shift function

Basically shifts everything - timing points and notes by a specific amount of ms like how Quaver has it in "Apply offset to map".

This will help with porting for many games (i.e. osu!mania maps use offset on time-stretched downrate while other StepMania and Quaver use offset on the pitched downrate) + will help with shifting offset on variable timing for the aforementioned osu!mania's offset norm as well.

Fix all compiler warnings

Fix all compiler warnings across GCC and MSVC. As of now we have a lot of compiler warnings related to type casting and value assignment. By fixing these warnings we could potentially prevent future bugs.

Waveform

The current waveform is lackluster at best. We need to explore several areas:

  • a way to render it efficiently
  • stop it form flickering at different zoom levels
  • get high pass and low pass data from BASS
  • user customization like colours and strength (which should be saved to a config file #23

The goal is to make something similar to the Arrow Vortex waveform.

Implement rolls

Rolls are a hold note subtype in stepmania which require the player to continuously tap in order to keep the hold alive, rather than simply hold the note. In notedata, their head is represented by 4 and the tail is 3

I believe no other game has this note type, so (un)fortunately they should probably just be converted to regular holds in those cases.

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.