Comments (9)
Maybe you didn't build the hierarchical block, i.e., open wifi_phy_hier.grc, click build, and reopen GRC?
from gr-ieee802-11.
It's not possible to build because the gadgets are not found.
Anyway I reconfigured distro python and removed the local python managed by asdf (I think it was conflicting since gnuradio use /usr/bin/python3):
$ sudo apt install --reinstall python3 python3-minimal --fix-broken
But now I have another problem that maybe is easier to catch:
$ python3
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gnuradio import gr
>>> import ieee802_11
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/ieee802_11/__init__.py", line 18, in <module>
from .ieee802_11_python import *
ImportError: generic_type: type "chunks_to_symbols" referenced unknown base type "gr::tagged_stream_block"
>>> import foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/foo/__init__.py", line 18, in <module>
from .foo_python import *
ImportError: generic_type: type "burst_tagger" referenced unknown base type "gr::sync_block"
>>>
Both gr-foo and gr-ieee802_11 were configured with cmake ../ -DCMAKE_INSTALL_PREFIX=/usr
The environment is also configured:
$ echo $LD_LIBRARY_PATH
/lib:/usr/lib:/usr/local/lib:/home/dukpt/.local/lib
$ echo $PYTHONPATH
/usr/lib/python3/dist-packages:/usr/lib/python3.10/site-packages
$ find /usr -type d -name ieee802_11
/usr/include/ieee802_11
/usr/lib/cmake/ieee802_11
/usr/lib/python3.10/site-packages/ieee802_11
$ find /usr -type d -name foo
/usr/local/include/foo
/usr/include/foo
/usr/lib/cmake/foo
/usr/lib/python3.10/site-packages/foo
$ find /usr -type d -name gnuradio
/usr/share/gnuradio
/usr/share/gnuradio/modtool/templates/gr-newmod/include/gnuradio
/usr/share/doc/gnuradio
/usr/include/gnuradio
/usr/lib/x86_64-linux-gnu/cmake/gnuradio
/usr/lib/python3/dist-packages/gnuradio
Any ideas?
from gr-ieee802-11.
That looks like a PyBind version conflict. Can you please try the one that comes with your distro.
from gr-ieee802-11.
This is done already, but not working:
$ find /usr -type d -name pybind11
/usr/include/pybind11
/usr/lib/cmake/pybind11
/usr/lib/python3/dist-packages/pybind11
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11
/usr/lib/python3/dist-packages/pybind11/include/pybind11
$ python3
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gnuradio import gr
>>> import pybind11
>>> import foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/foo/__init__.py", line 18, in <module>
from .foo_python import *
ImportError: generic_type: type "burst_tagger" referenced unknown base type "gr::sync_block"
>>> import ieee802_11
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/ieee802_11/__init__.py", line 18, in <module>
from .ieee802_11_python import *
ImportError: generic_type: type "chunks_to_symbols" referenced unknown base type "gr::tagged_stream_block"
>>>
$ echo $PYTHONPATH
/usr/lib/python3/dist-packages:/usr/lib/python3.10/site-packages:/home/dukpt/.local/lib/python3.10/site-packages
$ echo $LD_LIBRARY_PATH
/lib:/usr/lib:/usr/local/lib:/home/dukpt/.local/lib
$ sudo ldconfig -v | grep ieee802
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
(from /etc/ld.so.conf.d/x86_64-linux-gnu.conf:4 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib32' given more than once
(from /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:3 and /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:2)
/sbin/ldconfig.real: Path `/usr/libx32' given more than once
(from /etc/ld.so.conf.d/zz_x32-biarch-compat.conf:3 and /etc/ld.so.conf.d/zz_x32-biarch-compat.conf:2)
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
(from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
(from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib' given more than once
(from <builtin>:0 and <builtin>:0)
libgnuradio-ieee802_11.so.1.1.0git -> libgnuradio-ieee802_11.so.g56d8c5c
/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 is the dynamic linker, ignoring
/sbin/ldconfig.real: /lib32/ld-linux.so.2 is the dynamic linker, ignoring
$ sudo ldconfig -v | grep foo
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
(from /etc/ld.so.conf.d/x86_64-linux-gnu.conf:4 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib32' given more than once
(from /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:3 and /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:2)
/sbin/ldconfig.real: Path `/usr/libx32' given more than once
(from /etc/ld.so.conf.d/zz_x32-biarch-compat.conf:3 and /etc/ld.so.conf.d/zz_x32-biarch-compat.conf:2)
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
(from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
(from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3)
/sbin/ldconfig.real: Path `/usr/lib' given more than once
(from <builtin>:0 and <builtin>:0)
libgnuradio-foo.so.1.1.0git -> libgnuradio-foo.so.gcc8bfc6
/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 is the dynamic linker, ignoring
/sbin/ldconfig.real: /lib32/ld-linux.so.2 is the dynamic linker, ignoring
Both gr-foo
and gr-ieee802_11
were compiled with -DCMAKE_INSTALL_PREFIX=/usr
from gr-ieee802-11.
This shows that you have pybind11 from you package manager installed. Please also make sure that there is no other version in your user environment or some other Python package manager that may be picked up during the compilation of GNU Radio or the OOT module.
from gr-ieee802-11.
Unfortunately this is not working for me.
Do you see my PYTHONPATH
and LD_LIBRARY_PATH
, am I forgetting something?
from gr-ieee802-11.
Again, your output shows that you have pybind from your package manager installed. It does not show that there is not other version from asdf (or whatever you used) or pip or virtualenv or ... I'm pretty sure either GNU Radio or the OOT or both were not compiled with the correct pybind version.
from gr-ieee802-11.
Regarding pybind I already showed that it was installed from package manager and there is not other version installed:
$ find ~/ /usr -type d -name pybind\*
/usr/share/doc/pybind11-dev
/usr/include/pybind11
/usr/lib/cmake/pybind11
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info
/usr/lib/python3/dist-packages/pybind11
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11
/usr/lib/python3/dist-packages/pybind11/include/pybind11
/usr/lib/python3/dist-packages/pybindgen
$ dpkg-query -L python3-pybind11
/.
/usr
/usr/bin
/usr/bin/pybind11-config
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/pybind11
/usr/lib/python3/dist-packages/pybind11/__init__.py
/usr/lib/python3/dist-packages/pybind11/__main__.py
/usr/lib/python3/dist-packages/pybind11/_version.py
/usr/lib/python3/dist-packages/pybind11/_version.pyi
/usr/lib/python3/dist-packages/pybind11/commands.py
/usr/lib/python3/dist-packages/pybind11/include
/usr/lib/python3/dist-packages/pybind11/include/pybind11
/usr/lib/python3/dist-packages/pybind11/include/pybind11/attr.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/buffer_info.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/cast.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/chrono.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/common.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/complex.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/class.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/common.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/descr.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/init.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/internals.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/type_caster_base.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/detail/typeid.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/eigen.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/embed.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/eval.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/functional.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/gil.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/iostream.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/numpy.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/operators.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/options.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/pybind11.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/pytypes.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/stl
/usr/lib/python3/dist-packages/pybind11/include/pybind11/stl/filesystem.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/stl.h
/usr/lib/python3/dist-packages/pybind11/include/pybind11/stl_bind.h
/usr/lib/python3/dist-packages/pybind11/py.typed
/usr/lib/python3/dist-packages/pybind11/setup_helpers.py
/usr/lib/python3/dist-packages/pybind11/setup_helpers.pyi
/usr/lib/python3/dist-packages/pybind11/share
/usr/lib/python3/dist-packages/pybind11/share/cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/FindPythonLibsNew.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11Common.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11Config.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11ConfigVersion.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11NewTools.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11Targets.cmake
/usr/lib/python3/dist-packages/pybind11/share/cmake/pybind11/pybind11Tools.cmake
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/PKG-INFO
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/entry_points.txt
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/not-zip-safe
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/requires.txt
/usr/lib/python3/dist-packages/pybind11-2.9.1.egg-info/top_level.txt
/usr/share
/usr/share/doc
/usr/share/doc/python3-pybind11
/usr/share/doc/python3-pybind11/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/pybind11-config.1.gz
/usr/share/doc/python3-pybind11/changelog.Debian.gz
I unalias and unsourced every asdf python reference, so both pybind and gnuradio are from package manager. I did not compile gnuradio, but installed from Ubuntu repository.
$ strace python3 -s -c 'import foo' 2>&1 | grep foo_python
newfstatat(AT_FDCWD, "/usr/lib/python3.10/site-packages/foo/foo_python.cpython-310-x86_64-linux-gnu.so", {st_mode=S_IFREG|0644, st_size=282456, ...}, 0) = 0
openat(AT_FDCWD, "/usr/lib/python3.10/site-packages/foo/foo_python.cpython-310-x86_64-linux-gnu.so", O_RDONLY|O_CLOEXEC) = 3
write(2, " from .foo_python import *\n", 30 from .foo_python import *
$ python3
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/foo/__init__.py", line 18, in <module>
from .foo_python import *
ImportError: generic_type: type "burst_tagger" referenced unknown base type "gr::sync_block"
>>>
$ echo $PYTHONPATH
/usr/lib/python3/dist-packages:/usr/lib/python3/dist-packages:/usr/lib/python3.10/site-packages
$ echo $LD_LIBRARY_PATH
/lib64:/lib:/usr/lib:/usr/lib/x86_64-linux-gnu:/usr/local/lib
In case of gr-ieee802_11 I compiled as:
$ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr # gr-ieee802_11
-- The CXX compiler identification is GNU 12.1.0
-- The C compiler identification is GNU 12.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Found Volk: Volk::volk
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Checking for module 'gmp'
-- Found gmp, version 6.2.1
-- Found GMP: /usr/lib/x86_64-linux-gnu/libgmpxx.so
-- Using GMP.
-- Found MPLIB: /usr/lib/x86_64-linux-gnu/libgmpxx.so
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.74.0") found components: date_time program_options system regex thread unit_test_framework
-- User set python executable /usr/bin/python3
-- Found PythonInterp: /usr/bin/python3 (found version "3.10.6")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.10.so (found suitable exact version "3.10.6")
-- Found Git: /usr/bin/git
-- Extracting version information from git describe...
fatal: No names found, cannot describe anything.
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Looking for xmmintrin.h
-- Looking for xmmintrin.h - found
-- Using install prefix: /usr
-- Building for version: g56d8c5c / 1.1.0git
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- PYTHON and GRC components are enabled
-- Python checking for pygccxml - found
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.10.so
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- Found pybind11: /usr/include (found version "2.9.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dukpt/Downloads/gr-ieee802-11/build
And then:
$ sudo make install
[sudo] password for dukpt:
Consolidate compiler generated dependencies of target gnuradio-ieee802_11
[ 55%] Built target gnuradio-ieee802_11
[ 55%] Built target pygen_apps_9a6dd283c3de653fbca500f9721f634f
[ 60%] Built target pygen_python_e5b31959bf762a590b6f6572ea91d788
[ 63%] Built target ieee802_11_docstrings
Consolidate compiler generated dependencies of target ieee802_11_python
[100%] Built target ieee802_11_python
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/lib/cmake/ieee802_11/ieee802_11Config.cmake
-- Installing: /usr/include/ieee802_11/api.h
-- Installing: /usr/include/ieee802_11/chunks_to_symbols.h
-- Installing: /usr/include/ieee802_11/constellations.h
-- Installing: /usr/include/ieee802_11/decode_mac.h
-- Installing: /usr/include/ieee802_11/ether_encap.h
-- Installing: /usr/include/ieee802_11/extract_csi.h
-- Installing: /usr/include/ieee802_11/frame_equalizer.h
-- Installing: /usr/include/ieee802_11/mac.h
-- Installing: /usr/include/ieee802_11/mapper.h
-- Installing: /usr/include/ieee802_11/parse_mac.h
-- Installing: /usr/include/ieee802_11/signal_field.h
-- Installing: /usr/include/ieee802_11/sync_long.h
-- Installing: /usr/include/ieee802_11/sync_short.h
-- Installing: /usr/lib/x86_64-linux-gnu/libgnuradio-ieee802_11.so.g56d8c5c
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libgnuradio-ieee802_11.so.1.1.0git
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libgnuradio-ieee802_11.so
-- Installing: /usr/lib/cmake/ieee802_11/gnuradio-ieee802_11Targets.cmake
-- Installing: /usr/lib/cmake/ieee802_11/gnuradio-ieee802_11Targets-release.cmake
-- Installing: /usr/lib/cmake/ieee802_11/gnuradio-ieee802_11Config.cmake
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/__init__.py
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/utils.py
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/__init__.pyc
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/utils.pyc
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/__init__.pyo
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/utils.pyo
-- Installing: /usr/lib/python3.10/site-packages/ieee802_11/ieee802_11_python.cpython-310-x86_64-linux-gnu.so
-- Set runtime path of "/usr/lib/python3.10/site-packages/ieee802_11/ieee802_11_python.cpython-310-x86_64-linux-gnu.so" to ""
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_chunks_to_symbols.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_decode_mac.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_ether_encap.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_extract_csi.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_frame_equalizer.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_mac.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_mapper.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_parse_mac.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_sync_long.block.yml
-- Up-to-date: /usr/share/gnuradio/grc/blocks/ieee802_11_sync_short.block.yml
Regarding the line
-- Set runtime path of "/usr/lib/python3.10/site-packages/ieee802_11/ieee802_11_python.cpython-310-x86_64-linux-gnu.so" to ""
do you think this could indicate some reference problem?
$ python3 -c 'import foo'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/foo/__init__.py", line 18, in <module>
from .foo_python import *
ImportError: generic_type: type "burst_tagger" referenced unknown base type "gr::sync_block"
$ python3 -c 'import ieee802_11'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/ieee802_11/__init__.py", line 18, in <module>
from .ieee802_11_python import *
ImportError: generic_type: type "chunks_to_symbols" referenced unknown base type "gr::tagged_stream_block"
from gr-ieee802-11.
All I can say is that I had this exact problem and it turned out to be a pybind issue.
The exact same problem is also identified as a pybind issue here: https://lists.gnu.org/archive/html/discuss-gnuradio/2021-05/msg00056.html
Please try to compile any other GNU Radio module. If other modules work, let me know. Otherwise, please write to the GNU Radio mailing list.
from gr-ieee802-11.
Related Issues (20)
- GrSwig Missing HOT 7
- no data packet, just ack packets HOT 3
- static assertion failed HOT 6
- Tx is router,Rx is USRP HOT 4
- Readme has bad instruction for git clone HOT 1
- Port is not connected HOT 3
- wifi_loopback.grc - flowgraph stops with warning messages "Could not find port out in" and "system" HOT 2
- capturing only 2 out of 4 in handshake HOT 4
- Need help in generating wifi Becons using HackRF (wifi_tx.grc) HOT 9
- Filtering IQ samples using MAC address HOT 2
- Becacon and eapol receive error HOT 5
- gr-ieee802-11for bladerf? HOT 5
- Estimating Angle of arrival and distance from CSI values in Frame Equalizer HOT 1
- How to use this repo to view WiFi Halow (802.11ah)? HOT 1
- Other wireless packet attributes aside CSI
- GNU Radio install methods to be updated in README HOT 1
- [Feature request] Support others SDR hardware devices HOT 1
- Failed to receive 802.11g wireless signal HOT 2
- updation needed for IEEE 802.11n packet capturing HOT 3
- An error in block <chunks_to_symbols> 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 gr-ieee802-11.