realxtend / tundra Goto Github PK
View Code? Open in Web Editor NEWrealXtend Tundra SDK, a 3D virtual world application platform.
Home Page: www.realxtend.org
License: Apache License 2.0
realXtend Tundra SDK, a 3D virtual world application platform.
Home Page: www.realxtend.org
License: Apache License 2.0
If tundra crashes at startup when the splash screen is showing, the popup window that says "Dump generated to xxx" remains hidden behind the splash screen window, and it looks like tundra just hanged. Alt-tabbing shows that there is a dump popup dialog, but it cannot be activated because of the splash screen stealing foreground activation and focus.
The splash screen should either stay behind any error messages that open up, or disappear if an error message opens up.
The mesh asset editor fails to display any mesh assets. It needs a thorough review and rewrite.
The AddEntityComponents-macro requires that all the EntityComponents projects are added inside the src\EntityComponents folder. This prohibits external users from using Tundra like an SDK or with their external components in a separate git submodule, since they cannot store their own ECs in their custom folders, but have to embed them inside the Tundra SDK source tree.
It should be possible to place any subprojects outside the source tree (or, if that proves impossible for cmake, at most inside a single directory in the source tree), instead of having to scatter separate subprojects into separate folders.
It's expected that the space bar would toggle the selection status of the highlighted items, but nothing happens.
(Note that if you select the items by clicking on the leftmost column of the list widget, then you are able to toggle the selection using spacebar)
The update order between main camera movement scripts and EC_SkyX is not strictly specified, and it can happen that EC_SkyX updates before the main camera moves. If this happens, the SkyX moon plane can disappear behind the sky plane.
This might be fixable by adding a custom FrameAPI::PostFrameUpdate() signal to enforce the update order between these comopnents. (this does not necessarily help, it was not profiled whether SkyX reacts to position changes in Ogre scene graph update iterations, or manual EC_SkyX update calls)
This bug may cause other graphical artifacs in SkyX and HydraX as well.
Sometimes when you are in first-person mode with the avatar, pressing the right mouse button causes the camera to quickly rotate by some amount. It always seems to be the same amount and to the same direction.
dumps: http://www.realxtend.org/download/Tundra_v2.0-20110901-092256-4876-3644.dmp
log dir at C:\Documents and Settings\ToniA\Application Data\Tundra\logs seems to empty ..?
happens on a weak celeron + intel laptop, which does runs e.g. physics demo locally ok. will test running toy locally now to see if it's about assets, or some bug elsewhere.
Trying to run the debug mode built against the deps provided for vs2008 (win_update_deps_vs2008.bat) crashes at startup inside RenderSystem_NULL_d.lib to a double initialization of an Ogre manager singleton.
As a workaround, it is possible to run successfully by deleting the RenderSystem_NULL_d.lib from bin/ directory before startup.
This commit
3730ae1#L0R39
broke the editing of material and particle script files. Opening the editor shows incorrect script content, and applying or saving the content generates a script that doesn't work properly for Ogre.
Because the sanitate and desanitate functions are now out of sync, the editors are unable to parse and show the Ogre scripts correctly. See this for discussion http://groups.google.com/group/realxtend-dev/browse_thread/thread/f9ccb07dd344ea6b# .
This deterministically causes Tundra to crash inside EC_Hydrax::UpdateAttribute.
If the same machine that hosts the Tundra server also hosts a HTTP server with .js assets, these assets are considered untrusted. If the trust mechanism is to follow the 'same origin policy', then .js assets downloaded from the same server than where Tundra itself is hosted should be safely considered trusted.
As a workaround, remove the .js trusted check in JavascriptInstance.cpp altogether (by forcing trusted_ = true always).
If the user selects or deselects an item in the Asset & Entity Import dialog using the checkboxes, the list widgets automatically resort themselves, causing the items to jump around in the view.
Instead the dialog controls should never automatically resort themselves, but only when the user clicks on a column header to sort.
Trying to build tundra2 repository in an Express version of Visual Studio fails to a "afxres.h" include file not being found.
The Express editions of Visual Studio do not come with a resource editor (but they do contain the resource compiler), see e.g.
http://msdn.microsoft.com/en-us/library/hs24szh9(v=VS.90).aspx
Because of this difference, the Express version lacks some header files used with resources (notably afxres.h), but those are used commonly only with MFC. (e.g. http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/6ef3525a-776a-4c45-bd22-c9b8898ff9d0/ )
To be able to cleanly build also on Express, the tundra.rc file should be modified to not include the (unneeded) afxres.h file.
A workaround is to delete the tundra.rc file from the project altogether. It is not critical.
Run cmake for a clean tundra2 git clone (after running win_update_deps_vs2008.bat).
The following is printed:
...
** Configuring PROTOBUF
-- Could NOT find PROTOBUF (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
-- sagase: trying brute-force search
-- sagase: PROTOBUF Configure Results.
-- -- Include Directories:
-- C:/Projects/Tundra2/deps/vs2008/build_deps/protobuf/include
-- -- Library Directories:
-- C:/Projects/Tundra2/deps/vs2008/build_deps/protobuf/lib
-- -- Libraries:
-- PROTOBUF_LIBRARY-NOTFOUND
-- libprotobuf
-- -- Debug Libraries:
-- libprotobufd
CMake Error: The following variables are used in this project, but they are set
to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake file
s:
PROTOBUF_LIBRARY (ADVANCED)
linked by target "MumbleVoipModule" in directory C:/Projects/Tundra2/src/Appli
cation/MumbleVoipModule
-- Configuring incomplete, errors occurred!
The directory C:\Projects\Tundra2\deps\vs2008\build_deps\protobuf exists, as well as include and lib directories inside it. The include directory has a subfolder google/protobuf which contains multiple .h files. The lib folder contains libprotobuf.lib, libprotobufd.lib, libprotoc.lib and protoc.exe
As a workaround, edit CMakeBuildConfig.txt and comment out (add a '#' at the beginning of the line) the line AddProject(Application MumbleVoipModule)
Currently EC_HoveringText writes the whole text in to a single texture and displays that as a billboard.
This causes big problems if large texts are to be shown (clipping, poor line breaking, bad GPU fillrate performance).
The EC_HoveringText component should pack font glyphs into a texture and generate appropriate vertex buffer data to render individual glyphs. This will also allow supporting animating the individual characters, the text contents and mipmapping will not kill the performance as it does now.
The logging mechanism is not yet fully re-implemented feature-wise after removal of PoCo logger as log file is not created.
Need to add support for displaying .dds assets inside TexturePreviewEditor. See here https://github.com/realXtend/naali/blob/tundra2/src/Application/OgreAssetEditorModule/TexturePreviewEditor.cpp#L240 .
Currently server runs at a fixed 30hz network sync tick rate. Make this adjustable from the commandline using --netrate option.
The generated VS project files incorrectly link against the Ogre libraries provided in the vs_2008 deps, and not the ones in the specified OGRE_HOME. The include directories will point to OGRE_HOME correctly though. If the deps and OGRE_HOME contain different versions of Ogre, running Tundra will crash if built in this configuration.
Enable specifying commandline parameters in the startup config xml file as well (the one which now only stores plugin and js startup script options). This eases configuring the server startup, so that one doesn't have to maintain both a server startup batch file and an xml file. This can be done in the framework commandline parsing, and the code does not need to even to know whether the config parameter came from cmdline or the config file, they're just startup configuration parameters.
When importing assets to a storage, there's plenty of different options the user can do in the Asset Storage dropdown list. Currently the dialog does not remember the previously used selection, but always resets to the option of rewriting and uploading to the system storage.
Instead, it would be useful to remember the option the user chose previously and offer that as the default option in the dialog. If no default entry is stored in configuration, uploading to the currently set default storage should be given as the default option.
I believe @antont will be working on this :)
Implement support for editing script assets inside Tundra.
Either extend the script editor that is used for Ogre material and particle scripts, or generate some other solution.
Bonus points if debugging and profiling can be integrated as well.
Ever since the new Asset API implementation, audio assets cannot be previewed in the UI anymore (no right-click open for audio assets).
Reimplement the support for audio previewing.
Having the asynchronous asset loading enabled, host a scene with all the scene assets over HTTP (including custom avatar descriptions and their meshes).
Connect multiple clients to the server from another computer (using a command line login is a good way to test this).
Observed: Perhaps once every third run, the second or third client to join the scene will not see all the avatars in the scene. Occasionally it is its own avatar not showing, and occasionally it was someone else's.
In one of the runs, the missing avatar appeared after waiting for a minute or two. However, at one other time, even after a substantial amount of waiting, the missing avatar did not appear.
Tested using TCP connection.
On VS2008 and Ogre repository checked out at the 1.7.3 tag:
When running cmake against a custom Ogre build, pointed to by OGRE_HOME env variable, the include directories that get added to the Visual Studio projects for Ogre do not point to proper directories so that TextureAsset.cpp would be able to include D3D9RenderSystem headers.
Preferably it should be possible to set the OGRE_HOME to both the Hg repository root, or the CMake INSTALLed directory root, and have Tundra build against it ok.
As a workaround, manually copying the D3D9 RenderSystem files to follow the same structure than in the vs2008 deps folder works.
Open the Scene Structure window and right-click on a local temporary object. Choose "Convert to replicated". The same entity is re-created, but is shown in black in the scene structure window (denoting replicated non-temporary), when it should be shown as replicated-temporary instead.
Right-click on that object. As the context menu appears, the item text is also repainted, and will now properly show in red with a "(Temporary)" label on it, which hints that this issue is only a Scene Structure item rendering bug, and not due to improper entity conversion.
On VS2008, specifying the BOOST_ROOT environment variable before running cmake for tundra2 causes project files to be generated which link against both the debug and release versions of the Boost libraries. This causes a crash at startup in release mode in Framework lines where boost::program_options is accessed.
Tested with Boost 1.47.0.
Ideally Tundra cmake should just use FindBoost and autolink to boost, like is recommended - instead of generating project files which force a manual linking against boost libraries.
For the commit cc81a32 on August 18, 2010, I get the following backtrace.
#0 0xb52d24e0 in ?? () from /lib/i686/cmov/libc.so.6 #1 0xb4eec57f in XSetCommand () from /usr/lib/libX11.so.6 #2 0xb4ef1074 in XSetWMProperties () from /usr/lib/libX11.so.6 #3 0xb5fd1d9a in QWidgetPrivate::create_sys(unsigned long, bool, bool) () from /usr/lib/libQtGui.so.4 #4 0xb5f7f20c in QWidget::create(unsigned long, bool, bool) () from /usr/lib/libQtGui.so.4 #5 0xb5f85825 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4 #6 0xb65af949 in ?? () from /usr/lib/libQtGui.so.4 #7 0xb65afd43 in QGraphicsProxyWidget::setWidget(QWidget*) () from /usr/lib/libQtGui.so.4 #8 0xb2d54619 in BackdropWidget (this=0x820ab88) at /home/invi/naali/UiModule/Inworld/ControlPanel/BackdropWidget.cpp:13 #9 0xb2d385b5 in ControlPanelManager (this=0x82ecd80, parent=0x82fe0a0, layout_manager=0x82ed158) at /home/invi/naali/UiModule/Inworld/ControlPanelManager.cpp:36 #10 0xb2d346e3 in InworldSceneController (this=0x82fe0a0, framework=0xbffff840, ui_view=0x8214960) at /home/invi/naali/UiModule/Inworld/InworldSceneController.cpp:41 #11 0xb2ced377 in UiServices::UiModule::Initialize (this=0x82350d8) at /home/invi/naali/UiModule/UiModule.cpp:103 #12 0x080ad91e in Foundation::ModuleInterface::InitializeInternal ( this=0x82350e0) at /home/invi/naali/Interfaces/ModuleInterface.cpp:88 #13 0x0809e011 in Foundation::ModuleManager::InitializeModule ( this=0x80ffac0, module=0x82350e0) at /home/invi/naali/Foundation/ModuleManager.cpp:572 #14 0x0809e165 in Foundation::ModuleManager::InitializeModules ( this=0x80ffac0) at /home/invi/naali/Foundation/ModuleManager.cpp:319 #15 0x08073234 in Foundation::Framework::LoadModules (this=0xbffff840) at /home/invi/naali/Foundation/Framework.cpp:360 #16 0x08075ddc in Foundation::Framework::PostInitialize (this=0xbffff840) at /home/invi/naali/Foundation/Framework.cpp:265 #17 0x08075e9a in Foundation::Framework::Go (this=0xbffff840) at /home/invi/naali/Foundation/Framework.cpp:322 #18 0x08072777 in run (argc=1, argv=0xbffffa84) at /home/invi/naali/Application/main.cpp:106 #19 0x080728b7 in main (argc=1, argv=0xbffffa84) at /home/invi/naali/Application/main.cpp:58
The naaili deps are same as the build script for ubuntu and the following debian sid libraries:
libc6 2.11.2-2
libx11-6 2:1.3.3-3
libqtgui4 4:4.6.3-1
Cheers
The typedefs 'Line' and 'Polygon' exist in QuickDraw framework which is a part of Mac OS X 10.6 SDK, so 'previous declaration errors' appear when compiling.
This QuickDraw framework is infamous for conflicting with class names in other projects as well: http://vim.1045645.n5.nabble.com/Type-conflicts-when-using-with-x-on-Mac-OS-X-td3205912.html
It's nonsense to rename Math library class names for this particular problem, but this could be a good note if Tundra SDK is to be used with other projects that by any chance can have same class names on their own and conflict with Tundra's, the same that is happening right now with Mac's QuickDraw framework. Or maybe just put Math classes into a namespace.
In order to continue compiling, I commented out Line and Polygon typedefs in QuickdrawTypes.h
QLineEdit wil scale it self when user is sending a long chat message.
Seems to return back to normal when message disappears from the screen.
Happens on the following classes:
Circle, Frustum, Quat, Sphere, float3
Here is the output when compiling Quat:
tundra2/src/Core/Framework/Math/Quat.cpp: In static member function ‘static Quat Quat::RandomRotation(LCG&)’:
tundra2/src/Core/Framework/Math/Quat.cpp:475: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
tundra2/src/Core/Framework/Math/Quat.h:319: note: candidate 1: Quat Quat::operator/(float) const
/usr/local/Trolltech/Qt-4.7.1/include/QtGui/qquaternion.h:264: note: candidate 2: const QQuaternion operator/(const QQuaternion&, qreal)
tundra2/src/Core/Framework/Math/Quat.cpp:475: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
tundra2/src/Core/Framework/Math/Quat.h:319: note: candidate 1: Quat Quat::operator/(float) const
/usr/local/Trolltech/Qt-4.7.1/include/QtGui/qquaternion.h:264: note: candidate 2: const QQuaternion operator/(const QQuaternion&, qreal)
I got this using Qt 4.7.1 built from source against Carbon API, gcc-4.2 compiler and Mac OS X 10.6.8
As a workaround, objects can be forced to use operators from the class they are instances of. // for example, a * b becomes a.operator*(b) where a:float3 and b:float
Open the Scene Structure window and click on an Entity in the list. Press F2.
The selection of that Entity will clear, and the Entity will be moved to the bottom of the list, with an empty name. To rename the Entity, the user has to re-select the empty item and press F2 again.
Expected: The selection should not clear and the item should not move around in the list.
Teleport functionality currently doesn't work for OpenSim auth / CAPS teleport. It appears to only support ReXAuth.
When creating custom modules, the build system expects them to reside either inside src/Core or src/Application. (two new macros use_core_modules and use_app_modules depend on this).
The idea of turning Tundra into an SDK is to enable custom plugins to be developed separately and maintained under separate version control. But now the addition of these two macros have added more restrictions which require the modules to be present inside the Tundra source tree.
This is the wrong direction of development. Instead, the cmake system needs to be reworked to lift these kind of restrictions.
When you are in free camera, most of the time hydrax shows ok. When you move to avatar camera the hydrax water "block" is updated once, but when you turn avatar/camera the water is not updated and clips to emptiness.
Showing the splash screen is not desirable for all applications, and currently it cannot be configured, except by deleting the appropriate code lines.
This should be customizable, perhaps with an option in CMakeBuildConfig.txt.
with 2.0 installer on this celeron xp, doubleclicking pong.txml results in a failure in opening the scene .. for
some reason it adds (null) as default storage, even though --file arg seems correct - http://paste.pocoo.org/show/467897/
doesn't find any assets
Set (null) as the default asset storage.
Error: AssetAPI::RequestAsset: Failed to find a provider for asset ""C:/Program
Files/realXtend/Tundra/scenes/Pong/pong.txml"", type: "Binary"
Error: Asset transfer initialization failed for scene file "C:\Program Files\realXtend\Tundra\scenes\Pong\pong.txml" failed
Jonne looked into it a bit:
https://github.com/realXtend/naali/blob/tundra2_withhistory/src/Core/TundraProtocolModule/TundraLogicModule.cpp#L333
suspect that scenereftype is failing
must be some change in t2
that absolute paths are said not to be local path or relative
but as you can see its the only way it goes to assetapi
As the title goes, mouse events (clicks and mouse move when a button is held in particular) never go down to the children, and QMainWindow gets all mouse events contrary to the event filters implemented in Input API.
This issue is as old as Naali 0.3.3 right after QtInputModule dynamic library became Input static library. However, no significant changes in code were noted that could have caused this behavior in Mac OS X.
A workaround / hack has been added in Application's event filter to force mouse events to go downwards the family.
A specific example: when someone long-presses left mouse button while not moving the mouse around, a pan gesture is triggered. At first I thought it was my Apple Magic mouse which is touch-sensitive, but later tested with plain USB mouse, producing the same results. According to common sense, mouse clicks should never trigger gestures. Needs some further research about this.
As a workaround, gestures are temporarily disabled on Mac OS X.
Need to refresh the rendering properly after a window resize event, marked for myself for doing later.
It should be possible to skip the trusted check altogether for all .js assets for development time purposes. This could be enabled with a --allow-untrusted-script cmdline parameter or something similar.
Currently there is no way to run scripts which access extensions considered untrusted (Qt.uitools for example) on a remote server, because they are always blocked.
As a workaround, remove the .js trusted check in JavascriptInstance.cpp altogether (by forcing trusted_ = true always).
Would be very useful. EC_Placeable also no longer has this function so essentially you have to write your own implementation, and I think the math lib is intended to be there so we don't have to.
Any prospects when this will be implemented?
There is no documented mechanism to build Tundra against custom versions of SkyX and Hydrax.
This is needed when building against a custom Ogre build. Using the SkyX and Hydrax DLLs from the vs2008deps with custom-built Ogre DLLs is a mismatch and can cause a crash at startup because SkyX and Hydrax both depend on Ogre. (e.g. if one was built with boost support, and the other without boost).
As a workaround, one can hardcode paths by altering configure_hydrax and configure_skyx. Another workaround is to overwrite the build deps with the manually built SkyX and Hydrax.
The file TundraWrapper.h has some manually hand-written extensions for Tundra math objects, but the most of the math objects are not exposed to Python.
It is pointless to try to maintain interop classes manually, as these classes are under active development, they change over time and there's just too many of them to sanely hand-maintain (AABB, Circle, Cone, Cylinder, Ellipsoid, float2, float2x2, float2x3, float3, float3x3, float3x4, float4, float4x4, Frustum, LCG, Line, LineSegment, Math, OBB, Plane, Polygon, Polynomial, Quat, Ray, Rect, Sphere, Transform, Triangle). The math library bindings for Python should be generated using an automatic bindings generator.
should give the mouse cursor back to normal use in other windows.
tundra2: now works so that tundra stays in mouselook mode, so that even if focus is on some other window, when hovering over the tundra window, the camera rotates.
is even worse with 1.0.8 toy demo, where can't go out of mouselook after alt-tabbing out, at all.
The trusted check for .js files does not allow any kind of configuration for which asset storage is trusted and which is not.
This causes that scenes with .js content (accessing Qt extensions which are considered in the untrusted category) cannot be hosted over HTTP at all.
As a workaround, remove the .js trusted check in JavascriptInstance.cpp altogether (by forcing trusted_ = true always).
the gizmo shows right, aligned with the object, but moving with the mouse by clicking the axis arrows moves in wrong dirs
Open a scene and the Scene Structure window. Right-click on a replicated Entity and choose "Convert to Local". The Entity gets re-created, but it is still replicated, and not local. (or if it really is local, the Scene Structure window doesn't show it).
Assertion failure that looks like this.
#0 0x00007f10f1815a75 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f10f18195c0 in *__GI_abort () at abort.c:92
#2 0x00007f10f180e941 in *__GI___assert_fail (assertion=0x7f10de0c46b5 "names[0].size() >= 2", file=<value optimized out>, line=273, function=
0x7f10de0c46e0 "RexTypes::NameValueMap RexTypes::ParseNameValueMap(const std::string&)") at assert.c:81
#3 0x00007f10de08d0f3 in RexTypes::ParseNameValueMap (namevalue=<value optimized out>) at /space/src/naaliclean/naali/RexCommon/RexNetworkUtils.cpp:273
#4 0x00007f10d9279a43 in RexLogic::Avatar::HandleOSNE_ObjectUpdate (this=0x3f0fdf0, data=<value optimized out>)
at /space/src/naaliclean/naali/RexLogicModule/Avatar/Avatar.cpp:172
#5 0x00007f10d9298d97 in RexLogic::NetworkEventHandler::HandleOSNE_ObjectUpdate (this=0x3f10240, data=0x7fff66fab0d0)
at /space/src/naaliclean/naali/RexLogicModule/EventHandlers/NetworkEventHandler.cpp:180
#6 0x00007f10d929ac38 in RexLogic::NetworkEventHandler::HandleOpenSimNetworkEvent (this=0x3f10240, event_id=12, data=0x7fff66fab0d0)
at /space/src/naaliclean/naali/RexLogicModule/EventHandlers/NetworkEventHandler.cpp:94
#7 0x00007f10d9217e0d in boost::_mfi::mf2<bool, RexLogic::NetworkEventHandler, unsigned int, IEventData*>::operator() (function_obj_ptr=<value optimized out>,
a0=5621, a1=0x6) at /usr/include/boost/bind/mem_fn_template.hpp:274
#8 operator()<bool, boost::_mfi::mf2<bool, RexLogic::NetworkEventHandler, unsigned int, IEventData*>, boost::_bi::list2<unsigned int&, IEventData*&> > (
function_obj_ptr=<value optimized out>, a0=5621, a1=0x6) at /usr/include/boost/bind/bind.hpp:375
here's what it crashed on, as the "namevalue" qstring - i couldn't figure out how to dig into the names var in the parse function:
(gdb) up
#1 0x00007f10f18195c0 in *__GI_abort () at abort.c:92
92 abort.c: No such file or directory.
in abort.c
(gdb)
#2 0x00007f10f180e941 in *__GI___assert_fail (assertion=0x7f10de0c46b5 "names[0].size() >= 2", file=<value optimized out>, line=273, function=
0x7f10de0c46e0 "RexTypes::NameValueMap RexTypes::ParseNameValueMap(const std::string&)") at assert.c:81
81 assert.c: No such file or directory.
in assert.c
(gdb)
#3 0x00007f10de08d0f3 in RexTypes::ParseNameValueMap (namevalue=<value optimized out>) at /space/src/naaliclean/naali/RexCommon/RexNetworkUtils.cpp:273
273 assert(names[0].size() >= 2);
(gdb)
#4 0x00007f10d9279a43 in RexLogic::Avatar::HandleOSNE_ObjectUpdate (this=0x3f0fdf0, data=<value optimized out>)
at /space/src/naaliclean/naali/RexLogicModule/Avatar/Avatar.cpp:172
172 NameValueMap map = ParseNameValueMap(namevalue.toStdString());
(gdb) p namevalue->d->size
$1 = 107
(gdb) x/107x namevalue->d->data
0x698392a: 0x00690046 0x00730072 0x004e0074 0x006d0061
0x698393a: 0x00200065 0x00540053 0x00490052 0x0047004e
0x698394a: 0x00520020 0x00200057 0x00560053 0x006d0020
0x698395a: 0x00640020 0x004c000a 0x00730061 0x004e0074
0x698396a: 0x006d0061 0x00200065 0x00540053 0x00490052
0x698397a: 0x0047004e 0x00520020 0x00200057 0x00560053
0x698398a: 0x003c0020 0x00630063 0x0064006d 0x00760065
0x698399a: 0x00740069 0x00400061 0x00760061 0x00740061
0x69839aa: 0x00720061 0x0072002e 0x00610065 0x0078006c
0x69839ba: 0x00650074 0x0064006e 0x006f002e 0x00670072
0x69839ca: 0x0031003a 0x00300030 0x00310030 0x000a003e
0x69839da: 0x00690054 0x006c0074 0x00200065 0x00540053
0x69839ea: 0x00490052 0x0047004e 0x00520020 0x00200057
0x69839fa: 0x00560053 0x00000020 0x00000000 0x00210000
0x6983a0a: 0x00000000 0x3a800000 0x00000698 0x00000000
0x6983a1a: 0x00000000 0x3a010000 0x00000698 0x00610000
0x6983a2a: 0x00000000 0x003c0000 0x00000000 0x003c0000
0x6983a3a: 0x00000000 0x00000000 0x00000000 0x614c0000
0x6983a4a: 0x614e7473 0x5320656d 0x4e495254 0x57522047
0x6983a5a: 0x20565320 0x6d63633c 0x69766564 0x61406174
0x6983a6a: 0x61746176 0x65722e72 0x74786c61 0x2e646e65
0x6983a7a: 0x3a67726f 0x30303031 0x20003e31 0x00215453
0x6983a8a: 0x00000000 0x00000000 0x00000000 0x3af80000
0x6983a9a: 0x00000698 0x00000000 0x00000000 0x00310000
0x6983aaa: 0x00000000 0x00010000 0x00010000 0x00010000
0x6983aba: 0x00000000 0x3aca0000 0x00000698 0x54400000
0x6983aca: 0x00000064 0x00ff0000 0x00000000
(gdb)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.