Comments (36)
Sorry, upon re-reading your output log, I see the problem is actually with the preferences menu... I'll see what I can do ;-)
from metamorphose2.
@ianare wahou ! Thanks for your support !
I'll follow this thread and I will test it as soon as you will give me the green light.
from metamorphose2.
OK it should be working now, can you test the latest master branch?
Thanks!
from metamorphose2.
/cc
from metamorphose2.
This is because Fedora 22 comes with wxpython 3.0.2 and metamorphose is looking strictly at 2.8.
By the way PIL seems not anymore available on Fedora 22, replaced by Pillow but it looks compatible.
I forced the usage of wxpython to 3.0.2 by modifying the required script.
The application starts and requests the language configuration. (removed ~/.metamorphose2)
Then a dialogbox appears with a message "Please take a moment to set your preferences.
". I click "OK".
And the application fails with this :
[uggla@ugglalaptop metamorphose2]$ ./metamorphose2 -d
src/metamorphose2.py:60: wxPyDeprecationWarning: Call to deprecated item.
wx.InitAllImageHandlers()
Running in debug mode
Version : 0.8.3 (beta)
Python 2.7.10, wxPython 3.0.2.0
Operating System : Linux
System encoding : None
Interface language : en_US
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
`(metamorphose2.py:24229): GLib-GObject-WARNING *_: The property` `GtkButton:use-stock is deprecated and shouldn't be used anymore. It will be` `removed in a future version.`
(metamorphose2.py:24229): GLib-GObject-WARNING *_: The property
GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It
will be removed in a future version.
Traceback (most recent call last):
File "src/metamorphose2.py", line 85, in <module>
main()
File "src/metamorphose2.py", line 76, in main
application = BoaApp(0)
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line 8628,
in __init__
self._BootstrapApp()
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line 8196,
in _BootstrapApp
return _core_.PyApp__BootstrapApp(_args, *_kwargs)
File "src/metamorphose2.py", line 61, in OnInit
self.main = MainWindow.create(None)
File "/home/uggla/workspace/metamorphose2/src/MainWindow/**init**.py", line
45, in create
return MainWindow(parent)
File "/home/uggla/workspace/metamorphose2/src/MainWindow/**init**.py", line
662, in **init**
self.**init_ctrls(prnt)
File "/home/uggla/workspace/metamorphose2/src/MainWindow/__init**.py", line
412, in **init_ctrls
self.bottomWindow = bottomWindow.MainPanel(self.splitter, self)
File "/home/uggla/workspace/metamorphose2/src/MainWindow/bottomWindow.py",
line 286, in __init**
self.**init_ctrls(prnt)
File "/home/uggla/workspace/metamorphose2/src/MainWindow/bottomWindow.py",
line 237, in __init_ctrls
self.display = ListCtrl(self, -1, size=wx.Size(520, -1))
File "/home/uggla/workspace/metamorphose2/src/MainWindow/bottomWindow.py",
line 52, in __init**
self.set_preferences()
File "/home/uggla/workspace/metamorphose2/src/MainWindow/bottomWindow.py",
line 57, in set_preferences
self.green.SetBackgroundColour(prefs.get(u'renamedColor'))
File "/home/uggla/workspace/metamorphose2/src/preferences/**init**.py", line
166, in get
self.**load_preferences()
File "/home/uggla/workspace/metamorphose2/src/preferences/__init**.py", line
92, in **load_preferences
self.__create_new()
File "/home/uggla/workspace/metamorphose2/src/preferences/__init**.py", line
58, in **create_new
prefDiag = Dialog(None, self, initial=True)
File "/home/uggla/workspace/metamorphose2/src/preferences/dialog.py", line
113, in __init**
self.**init_ctrls(parent)
File "/home/uggla/workspace/metamorphose2/src/preferences/dialog.py", line
95, in __init_ctrls
self.notebook = Notebook(id=-1, name=u'notebook', parent=self)
File "/home/uggla/workspace/metamorphose2/src/preferences/dialog.py", line
52, in __init**
page = page(self)
File "/home/uggla/workspace/metamorphose2/src/preferences/logging.py", line
100, in **init**
self.__init_ctrls(parent)
File "/home/uggla/workspace/metamorphose2/src/preferences/logging.py", line
97, in __init_ctrls
self.__init_sizers()
File "/home/uggla/workspace/metamorphose2/src/preferences/logging.py", line
52, in __init_sizers
self.__init_logoptions_sizer(self.logOptionsSizer)
File "/home/uggla/workspace/metamorphose2/src/preferences/logging.py", line
44, in __init_logoptions_sizer
flag=wx.ALIGN_CENTER_VERTICAL)
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line
14711, in AddWindow
return self.Add(_args, *_kw)
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line
14453, in Add
return _core_.Sizer_Add(_args, *_kwargs)
wx._core.PyAssertionError: C++ assertion "Assert failure" failed at
./src/common/sizer.cpp(1401) in DoInsert(): too many items (3 > 2*1) in grid
sizer (maybe you should omit the number of either rows or columns?)
``
from metamorphose2.
Is wxPython 2.8 not available in Fedora 22?
On Ubuntu I have 2.8 and 3.0, and I admit not having tried running under 3.0.
from metamorphose2.
Hello @ianare,
Yes Fedora 22 is shipped only with 3.0.2. It was part of the main changes :
https://fedoraproject.org/wiki/Releases/22/ChangeSet#wxPython_3
Fedora is bleeding edge this is cool, but sometimes it causes some compatibility issues.
That's a pity because metamorphose2 is a really powerful program that I used to do some mass renaming.
I tried to investigate a bit more on the issue but I was unable to get the main window working.
I'm lacking too much knowledge on wxpython and metamorphose2 internals to make it working.
If you could upgrade metamorphose2 to have it running with wxpython 3.0.2 even if it is in a bad shape, then maybe I could help correcting some issues.
from metamorphose2.
I've added a new release 0.8.4 which allows specifying the wxPython version:
./metamorphose2 -w 3.0
I was able to get it running on wxPython 3.0.0.0 on Mint 17 (Ubuntu 14.04 LTS), although not everything worked - preferences menu for example did not show up.
I will try with a newer version of wx and see if it crashes.
from metamorphose2.
Hello @ianare,
It is better, but unfortunately I still get a core dump. :(
Here is a report of the encountered issues.
1. Install issue.
messages/update_langs.sh --> ok
make build --> ok
[uggla@ugglalaptop metamorphose2]$ sudo make install
install -d /usr/share/man/man1/
gzip -c9 manpage.1 > metamorphose2.1.gz
install -m 644 metamorphose2.1.gz /usr/share/man/man1/
cp *.html /usr/share/doc/metamorphose2/
cp: cannot stat ‘*.html’: No such file or directory
Makefile:105: recipe for target 'install-doc' failed
make: *** [install-doc] Error 1
Installation is looking for a html file and none is available.
This is a minor issue, fixed by creating a html file at the root of the project.
2. Issue configuring metamorphose.
Language selection --> ok
Popup 'Please take a moment to set your preferences' --> ok
Preferences window --> ok (was not the case before)
Click on ok is working but then metamorphose crashes. :(
[uggla@ugglalaptop ~]$ metamorphose2 -d
Running in debug mode
Version: 0.8.4 (beta)
(metamorphose2.py:6545): GLib-GObject-WARNING **: The property
GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It
will be removed in a future version.
(metamorphose2.py:6545): GLib-GObject-WARNING **: The property
GtkAlignment:xalign is deprecated and shouldn't be used anymore. It will be
removed in a future version.
(metamorphose2.py:6545): GLib-GObject-WARNING **: The property
GtkAlignment:yalign is deprecated and shouldn't be used anymore. It will be
removed in a future version.
(metamorphose2.py:6545): GLib-GObject-WARNING **: The property
GtkButton:use-stock is deprecated and shouldn't be used anymore. It will be
removed in a future version.
Operating System: Linux - 4.1.3-200.fc22.x86_64 - #1 SMP Wed Jul 22 19:51:58
UTC 2015
System encoding: None
Python version: 2.7.10
wxPython version: 3.0.2.0
Interface language: en_US
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug
Opening as 'w' : /home/uggla/.metamorphose2/preferences.ini
clearUndo (CheckBox) = 0
useDirTree (CheckBox) = 1
showHiddenDirs (CheckBox) = 0
encodingGroup (Choice) = 0
encodingSelect (ComboBox) = None
showPreviewIcons (CheckBox) = 1
onlyShowChangedItems (CheckBox) = 0
showPreviewHighlight (CheckBox) = 1
renRefreshMin (SpinCtrl) = 80
showProgressDialog (CheckBox) = 1
itemCountForProgDialog (SpinCtrl) = 200
willChangeColor (ColourPickerCtrl) = #E5FFE5
renamedColor (ColourPickerCtrl) = #97F27F
errorColor (ColourPickerCtrl) = #FF1616
warnColor (ColourPickerCtrl) = #FDEB22
autoSelectAll (CheckBox) = 1
reloadAfterRename (CheckBox) = 0
alwaysMakeLog (CheckBox) = 0
previewOnConfig (CheckBox) = 1
autoShowError (CheckBox) = 0
logLocation (DirPickerCtrl) = /home/uggla/.metamorphose2/undo
logSeparator (TextCtrl) = :::
logEnclose (TextCtrl) =
logFextension (TextCtrl) = log
useWinChars (CheckBox) = 1
markWarning (RadioButton) = 1
markBadChars (RadioButton) = 0
deleteBadChars (RadioButton) = 0
useWinNames (CheckBox) = 0
winNamesWarn (RadioButton) = 1
winNamesBad (RadioButton) = 0
Opening as 'r' : /home/uggla/.metamorphose2/preferences.ini
(metamorphose2.py:6545): GLib-GObject-WARNING **: invalid (NULL) pointer
instance
(metamorphose2.py:6545): GLib-GObject-CRITICAL **: g_signal_handler_disconnect:
assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(metamorphose2.py:6545): Gtk-CRITICAL **: gtk_window_set_modal: assertion
'GTK_IS_WINDOW (window)' failed
Traceback (most recent call last):
File "/usr/share/metamorphose2/metamorphose2.py", line 187, in <module>
main(wx_version, cli_options)
File "/usr/share/metamorphose2/metamorphose2.py", line 181, in main
application = BoaApp(0)
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line 8628,
in __init__
self._BootstrapApp()
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line 8196,
in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "/usr/share/metamorphose2/metamorphose2.py", line 176, in OnInit
self.main = MainWindow.create(None, cli_options)
File "/usr/share/metamorphose2/MainWindow/__init__.py", line 45, in create
return MainWindow(parent, options)
File "/usr/share/metamorphose2/MainWindow/__init__.py", line 554, in __init__
self.__init_ctrls(prnt)
File "/usr/share/metamorphose2/MainWindow/__init__.py", line 405, in
__init_ctrls
self.bottomWindow = bottomWindow.MainPanel(self.splitter, self)
File "/usr/share/metamorphose2/MainWindow/bottomWindow.py", line 284, in
__init__
self.__init_ctrls(prnt)
File "/usr/share/metamorphose2/MainWindow/bottomWindow.py", line 236, in
__init_ctrls
self.display = ListCtrl(self, -1, size=wx.Size(520, -1))
File "/usr/share/metamorphose2/MainWindow/bottomWindow.py", line 53, in
__init__
self.set_preferences()
File "/usr/share/metamorphose2/MainWindow/bottomWindow.py", line 58, in
set_preferences
self.green.SetBackgroundColour(prefs.get(u'renamedColor'))
File "/usr/share/metamorphose2/preferences/__init__.py", line 178, in get
self.__load_preferences()
File "/usr/share/metamorphose2/preferences/__init__.py", line 102, in
__load_preferences
self.__create_new()
File "/usr/share/metamorphose2/preferences/__init__.py", line 66, in
__create_new
prefDiag.Destroy()
File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk3/wx/_core.py", line
16707, in __getattr__
raise PyDeadObjectError(self.attrStr % self._name)
wx._core.PyDeadObjectError: The C++ part of the Dialog object has been deleted,
attribute access no longer allowed.
3. Metamorphose starts.
Then metamorphose refuses to start. I guess this is normal because the configuration phase was not completed.
[uggla@ugglalaptop ~]$ metamorphose2 -d
Running in debug mode
Version: 0.8.4 (beta)
Operating System: Linux - 4.1.3-200.fc22.x86_64 - #1 SMP Wed Jul 22 19:51:58 UTC 2015
System encoding: None
Python version: 2.7.10
wxPython version: 3.0.2.0
Interface language: en_US
Opening as 'r' : /home/uggla/.metamorphose2/preferences.ini
(metamorphose2.py:6987): GLib-GObject-WARNING **: The property GtkButton:use-stock is deprecated and shouldn't be used anymore. It will be removed in a future version.
(metamorphose2.py:6987): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
loading picker core
loading sorting core
loading errors core
loading renamer core
loading operations parser
loading operations parser
loading operations parser
loading renamer preview
loading renamer engine
(metamorphose2.py:6987): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
Segmentation fault (core dumped)
from metamorphose2.
Strange, I am not getting any of these warnings and no error on startup. I will see if I can find some info on them.
Which desktop environment are you using?
from metamorphose2.
I noticed some files are missing in the master branch compared to the source code for 0.8.2.
make install fails because readme_en.html is missing in the root directory. I got the latest version to install by adding it back.
I was missing a dependency python-wxgtk3.0. Once that was taken care of launching metamorphose worked fine by using the command metamorphose2 -w 3
I'm using Debian Stretch, Gnome 3
I'll be testing it out more soon. Have a pile of files to be renamed. ;)
from metamorphose2.
@ianare, sorry for the late answer. I did not noticed your message above before.
I'm using Fedora 22 and Gnome 3.16.2.
from metamorphose2.
This is also related to #13 .
from metamorphose2.
@javierpra not sure if the above comment is related to mine. However in my case I manage to build the application.
The problem is when I try to run it, I have a segfault and a coredump...
I tested on my 2 Fedora 22 systems and I got the same on both.
from metamorphose2.
I was able to launch metamorphose2 on Fedora 23 by extracting only wx-2.8-gtk2-unicode directory to /usr/lib64/python2.7/site-packages from wxPython-2.8.12.0-8.fc21.x86_64.rpm.
from metamorphose2.
Hi!
I am on Fedora 22, and can run metamorphose2 (either from fc-repo or from git) properly, but only once downgrading wxpython to 2.8.
I get the PIL-message at beginning thou...
What's the actual situation of this issue? Is there a work around that may work for fc22?
Many thanks!
from metamorphose2.
I think the last commit to master fixes this bug definitely.
After much fighting with this problem, I simply removed the preferences dialog on first start.
I'm thinking it was more of an annoyance anyway ;-)
Preferences are of course still available after the application starts up.
Please test, if it works for you I'll release a new version.
Thanks!
from metamorphose2.
Master still segfaults when launched with -w=3
Edit: it segfaults even when launched without -w=3.
Edit2: it runs when launched with -w=2.
from metamorphose2.
Damn it!
Can you run with the -d option and post the results here?
Thanks much
from metamorphose2.
$ metamorphose2 -d
Running in debug mode
Application Version: 0.9.0 (beta)
Preferences Version: 0.1.1
Init MainWindow
======== System Info =======
Operating System: Linux - 4.3.5-300.fc23.x86_64 - #1 SMP Mon Feb 1 03:18:41 UTC 2016
Python version: 2.7.10
wxPython version: 3.0.2.0 gtk3 (classic)
============================
== Interface Localization ==
04:23:19 PM: Debug: Failed to connect to session manager: SESSION_MANAGER environment variable not defined
Set language: en_US
Set encoding: None
============================
======== Preferences =======
Try to load preferences from file
Opening as 'r': /home/nerijus/.metamorphose2/preferences.ini
Old version found
Loaded 37 preferences
============================
loading picker core
loading sorting core
loading errors core
loading renamer core
loading operations parser
loading operations parser
loading operations parser
loading renamer preview
loading renamer engine
Segmentavimo klaida (core dumped)
from metamorphose2.
Try to delete your preferences file:
/home/nerijus/.metamorphose2/preferences.ini
It might fix it...
from metamorphose2.
Still the same:
======== Preferences =======
Try to load preferences from file
File does not exist or is empty: Using default preferences
Opening as 'r': /usr/share/metamorphose2/preferences/default.ini
Old version found
Loaded 37 preferences
============================
loading picker core
loading sorting core
loading errors core
loading renamer core
loading operations parser
loading operations parser
loading operations parser
loading renamer preview
loading renamer engine
Segmentavimo klaida (core dumped)
from metamorphose2.
BTW, I see /usr/share/metamorphose2/preferences/default.ini has the path:
logLocation=/home/ianare/.metamorphose2/undo
from metamorphose2.
It launched when I deleted /home/nerijus/.metamorphose2/language.ini, but after choosing language it segfaulted again.
from metamorphose2.
Well back to work... will let you know when I have something. Thnaks for the patience ;-)
from metamorphose2.
any news? doesn't work on Ubuntu 16.04 either (wxpython 3)
from metamorphose2.
I am unable to launch on Fedora 24 even with the -w
comand
("\nwxPython 2.8 is required!\nRefer to 'readme_xx.html'", ' for installation instructions.\n')
[Abhinav@abhinav-f24 ~] $ metamorphose2 -w 3.0
("\nwxPython 2.8 is required!\nRefer to 'readme_xx.html'", ' for installation instructions.\n')
[Abhinav@abhinav-f24 ~] $ metamorphose2 -w 3
("\nwxPython 2.8 is required!\nRefer to 'readme_xx.html'", ' for installation instructions.\n')
[Abhinav@abhinav-f24 ~] $ metamorphose2 -d
("\nwxPython 2.8 is required!\nRefer to 'readme_xx.html'", ' for installation instructions.\n')
from metamorphose2.
Still an issue in 2017
Fedora 24
from metamorphose2.
Hi ianare, any progress resolving this issue please? I just upgraded from Ubuntu Trusty LTS to Ubunt Xenial LTS and heartbroken to discover that my best ever file renaming app for linux will not run with latest Python. I messed around for 3 hours trying the tips suggested above and no luck :-(
from metamorphose2.
Here's a trace which I believe may be related.
(gdb) run /usr/share/metamorphose2/metamorphose2.py
Starting program: /usr/bin/python /usr/share/metamorphose2/metamorphose2.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Detaching after fork from child process 2905.
[New Thread 0x7fffd53da700 (LWP 2907)]
[New Thread 0x7fffd4bd9700 (LWP 2908)]
Detaching after fork from child process 2909.
Detaching after fork from child process 2911.
Detaching after fork from child process 2913.
Detaching after fork from child process 2915.
Detaching after fork from child process 2917.
[New Thread 0x7fffccdfc700 (LWP 2919)]
Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007fffee6e3d96 in wxGetTopLevelParent(wxWindow*) ()
from /lib64/libwx_gtk3u_core-3.0.so.0
from metamorphose2.
NOTE: The following may break other applications that rely on wxPython 3
As a workaround the following works. You can downgrade wxPython to 2.8.12. This worked for me on Fedora 24 as follows:
$sudo dnf downgrade wxPython-2.8.12.0-9.el7.x86_64.rpm
$cd metamorphose2/
$sudo make all
from metamorphose2.
@ianare I was on fire today and I decided to really look at this issue.
Here is an early report of my findings, I probably need to look deeper in the code however, I think I have found the reason of the segfault.
I'm using Fedora 24 (wxPython 3.0.2)
The line which is causing the segfault is in /usr/share/metamorphose2/renamer/wxRenamerView.py. Line 144.
`class IntroTextPanel(wx.Panel):
123 """
124 Show intro text, set app size
125 """
126 def __init__(self, prnt, id):
127 ┆ wx.Panel.__init__(self, id=id, name=u'IntroTextPanel',
128 ┆ ┆ ┆ ┆ ┆ ┆ parent=prnt, style=wx.TAB_TRAVERSAL)
129
130 ┆ # create info text of available operations
131 ┆ # Find largest panel, use it to set this panel size
132 ┆ txt = ''
133 ┆ txtSize = (0, 0)
134 ┆ for i in range(prnt.availableOperations.GetItemCount()):
135 ┆ ┆ op = prnt.availableOperations.GetItemText(i)
136 ┆ ┆ txt += "%s : %s\n\n" % (op, operations.defs[op][1])
137
138 ┆ ┆ # create temporary instance of panel to get size
139 ┆ ┆ op = operations.defs[op][0]
140 ┆ ┆ opPanel = getattr(operations, op).OpPanel(prnt, main)
141 ┆ ┆ size = opPanel.GetSizeTuple()
142 ┆ ┆ if size > txtSize:
143 ┆ ┆ ┆ txtSize = size
144 # opPanel.Destroy() --> commenting this line will avoid the segfault.
So right now metamorphose is not segfaulting anymore, but the gui is screwed.
That sounds normal as the panel size was probably not defined correctly.
Here is a screenshot:
https://framapic.org/xsFia1T7PtN4/uEligUWjU07t.png
https://framapic.org/a9vSQK9k2QSM/RxCq5Jg39Wj3.png
If someone else could do the same and confirm it is resolving the segfault, that will be great.
from metamorphose2.
@uggla @ianare So Uggla seems to have found the issue. I played with this a bit. I don't know the reason for it yet, but it doesn't seem to specifically like the Destroy() function. Changing this to Close() removes the segfault for me. I don't have much time to play with this as I used to.
line 144 opPanel.Close()
from metamorphose2.
@javierpra 👍
Thanks for checking on your side.
from metamorphose2.
Awesome work on troubleshooting this issue guys! Any chance this might result in a bug-fix release in the near future?
Alternatively.....
Would it be safe to install a parallel (older/compatible) version of python alongside the one which comes bundled with Ubuntu Studio Xenial?
Thanks a bunch :-)
from metamorphose2.
I have created Metamorphose2 Fedora RPMS.
The fix is probably a bit raw. However Metamorphose can be used despite some interface glitches, probably due to wxpython3.
https://copr.fedorainfracloud.org/coprs/uggla/metamorphose2/
from metamorphose2.
Related Issues (20)
- OPTION Only preview items that will change checked - removes items from column 'new' not from column 'original', leading to incorrect renaming!
- Does not build HOT 1
- LookupError: unknown encoding: None HOT 5
- Freeze when getting the file creation date HOT 1
- where is messages/update_langs.sh ? HOT 1
- Is the project abandoned? I cannot install it on Ubuntu 16.04! HOT 11
- ImportError: No Module named exif HOT 1
- Cannot launch rename operation from terminal only
- How to install on Ubuntu Mate 18.04? HOT 1
- Ubuntu Mate 18.04 HOT 3
- replace text issue
- New Ubuntu PPA with patched build HOT 5
- Ubuntu 20.04
- Keypresses not detected in saved configurations (Ubuntu Mate 18.04.5 reinstall)
- New version available for Python 3 and wxPython 4.1
- No translation file found HOT 13
- FreeBSD No Translation File HOT 2
- Cursor is always the "Working" one
- PIL not found, but python2-pillow is installed HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metamorphose2.