Giter Site home page Giter Site logo

Comments (21)

pclov3r avatar pclov3r commented on June 30, 2024

Hum, the MER is very good but the BER is very poor at 0.50. Does the BER always remain that high?

A longer output log could help as well.

You say you have no issues with Ubuntu but have issues with Fedora? Are you able to provide more details if your running this in a VM or native environment?

With that said given the high BER it appear something is happening with the signal and/or samples.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Hi there,

Thanks for the quick response! I am running on a Native System. I will get more info to you shortly.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Here is NRSC-5 running

Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 1488375.071248 Hz
[R82XX] PLL not locked!
Gain: 0.0 dB, CNR: 7.6 dB
Gain: 0.9 dB, CNR: 9.6 dB
Gain: 1.4 dB, CNR: 10.7 dB
Gain: 2.7 dB, CNR: 14.2 dB
Gain: 3.7 dB, CNR: 15.7 dB
Gain: 7.7 dB, CNR: 18.7 dB
Gain: 8.7 dB, CNR: 19.3 dB
Gain: 12.5 dB, CNR: 21.2 dB
Gain: 14.4 dB, CNR: 19.6 dB
Gain: 15.7 dB, CNR: 16.0 dB
Gain: 16.6 dB, CNR: 15.2 dB
Gain: 19.7 dB, CNR: 13.6 dB
Gain: 20.7 dB, CNR: 12.2 dB
Gain: 22.9 dB, CNR: 10.8 dB
Gain: 25.4 dB, CNR: 8.8 dB
Gain: 28.0 dB, CNR: 6.0 dB
Gain: 29.7 dB, CNR: 6.7 dB
Gain: 32.8 dB, CNR: 8.9 dB
Gain: 33.8 dB, CNR: 8.3 dB
Gain: 36.4 dB, CNR: 6.1 dB
Gain: 37.2 dB, CNR: 7.2 dB
Gain: 38.6 dB, CNR: 5.7 dB
Gain: 40.2 dB, CNR: 6.8 dB
Gain: 42.1 dB, CNR: 6.8 dB
Gain: 43.4 dB, CNR: 5.5 dB
Gain: 43.9 dB, CNR: 5.5 dB
Gain: 44.5 dB, CNR: 6.0 dB
Gain: 48.0 dB, CNR: 5.7 dB
Gain: 49.6 dB, CNR: 5.0 dB
Best gain: 12.5 dB, CNR: 21.2 dB
Allocating 8 zero-copy buffers
CFO: -363.372803 Hz
Block @ 13
01:51:26 Synchronized
01:51:28 MER: 10.2 dB (lower), 8.8 dB (upper)
01:51:28 BER: 0.499455, avg: 0.499455, min: 0.499455, max: 0.499455
01:51:28 Lost synchronization
Block @ 0
Block @ 0
01:51:29 Synchronized
01:51:31 MER: 8.9 dB (lower), 7.5 dB (upper)
01:51:31 BER: 0.499617, avg: 0.499536, min: 0.499455, max: 0.499617
01:51:31 Lost synchronization
Block @ 0
01:51:32 Synchronized
20:51:34 MER: 9.1 dB (lower), 7.5 dB (upper)
20:51:34 BER: 0.500175, avg: 0.499749, min: 0.499455, max: 0.500175
20:51:34 Lost synchronization
Block @ 0
Block @ 0
20:51:35 Synchronized
20:51:37 MER: 9.1 dB (lower), 7.7 dB (upper)
20:51:37 BER: 0.499770, avg: 0.499754, min: 0.499455, max: 0.500175
20:51:37 Lost synchronization
Block @ 0
Block @ 0
20:51:38 Synchronized
20:51:40 MER: 9.3 dB (lower), 7.8 dB (upper)
20:51:40 BER: 0.499360, avg: 0.499675, min: 0.499360, max: 0.500175
20:51:40 Lost synchronization
Block @ 0
20:51:41 Synchronized
20:51:43 MER: 9.6 dB (lower), 7.9 dB (upper)
20:51:43 BER: 0.498738, avg: 0.499519, min: 0.498738, max: 0.500175
20:51:43 Lost synchronization
Block @ 0
Block @ 0
20:51:44 Synchronized
20:51:46 MER: 9.5 dB (lower), 7.8 dB (upper)
20:51:46 BER: 0.500323, avg: 0.499634, min: 0.498738, max: 0.500323
20:51:46 Lost synchronization
Block @ 0

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

Hum...

The same station works without issues on Ubuntu 20.04 but fails with Fedora 36?

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Ubuntu 20.04

Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 1488375.071248 Hz
[R82XX] PLL not locked!
Disabled direct sampling mode
[R82XX] PLL not locked!
21:01:33 Synchronized
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Audio program 1: public, type: None, sound experience 0
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Message:  
21:01:33 Audio program 1: public, type: None, sound experience 0
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Message:  
21:01:33 Station location: 39.185303, -76.806274, 96m
21:01:33 Audio program 1: public, type: None, sound experience 0
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:33 Country: US, FCC facility ID: 10059
21:01:33 Station name: WSHE-FM
21:01:33 Slogan:  
21:01:33 Message:  
21:01:33 Station location: 39.185303, -76.806274, 96m
21:01:33 Audio program 0: public, type: None, sound experience 0
21:01:33 Audio program 1: public, type: None, sound experience 0
21:01:33 Data service: public, type: Emergency, MIME type 444
21:01:34 MER: 11.8 dB (lower), 11.4 dB (upper)
21:01:34 BER: 0.000142, avg: 0.000142, min: 0.000142, max: 0.000142
21:01:36 MER: 12.6 dB (lower), 12.3 dB (upper)
21:01:36 BER: 0.000047, avg: 0.000094, min: 0.000047, max: 0.000142
21:01:36 Title: Raise Your Glass
21:01:36 Artist: PINK
21:01:36 Album:  
21:01:36 Genre:  
21:01:36 XHDR: 0 BE4B7536 54054
21:01:36 Audio bit rate: 56.0 kbps
21:01:37 MER: 11.8 dB (lower), 11.2 dB (upper)
21:01:37 BER: 0.000145, avg: 0.000111, min: 0.000047, max: 0.000145
21:01:37 Title: Raise Your Glass
21:01:37 Artist: PINK
21:01:37 Album:  
21:01:37 Genre:  
21:01:37 XHDR: 0 BE4B7536 54054
21:01:37 Audio bit rate: 56.3 kbps
^C

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Ubuntu 20.04 with latest compiled NRSC5

Found Rafael Micro R820T tuner
Exact sample rate is: 1488375.071248 Hz
[R82XX] PLL not locked!
Gain: 0.0 dB, CNR: 8.3 dB
Gain: 0.9 dB, CNR: 10.9 dB
Gain: 1.4 dB, CNR: 12.2 dB
Gain: 2.7 dB, CNR: 14.9 dB
Gain: 3.7 dB, CNR: 16.7 dB
Gain: 7.7 dB, CNR: 19.7 dB
Gain: 8.7 dB, CNR: 20.3 dB
Gain: 12.5 dB, CNR: 21.8 dB
Gain: 14.4 dB, CNR: 17.8 dB
Gain: 15.7 dB, CNR: 15.2 dB
Gain: 16.6 dB, CNR: 12.3 dB
Gain: 19.7 dB, CNR: 9.8 dB
Gain: 20.7 dB, CNR: 9.2 dB
Gain: 22.9 dB, CNR: 8.9 dB
Gain: 25.4 dB, CNR: 8.9 dB
Gain: 28.0 dB, CNR: 8.3 dB
Gain: 29.7 dB, CNR: 9.2 dB
Gain: 32.8 dB, CNR: 6.3 dB
Gain: 33.8 dB, CNR: 5.5 dB
Gain: 36.4 dB, CNR: 4.9 dB
Gain: 37.2 dB, CNR: 6.9 dB
Gain: 38.6 dB, CNR: 4.8 dB
Gain: 40.2 dB, CNR: 6.7 dB
Gain: 42.1 dB, CNR: 6.2 dB
Gain: 43.4 dB, CNR: 6.4 dB
Gain: 43.9 dB, CNR: 6.0 dB
Gain: 44.5 dB, CNR: 4.9 dB
Gain: 48.0 dB, CNR: 4.5 dB
Gain: 49.6 dB, CNR: 4.9 dB
Best gain: 12.5 dB, CNR: 21.8 dB
CFO: -363.372803 Hz
Block @ 6
21:07:22 Synchronized
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Audio program 1: public, type: None, sound experience 0
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Message:  
21:07:22 Audio program 1: public, type: None, sound experience 0
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Message:  
21:07:22 Station location: 39.185303, -76.806274, 96m
21:07:22 Audio program 1: public, type: None, sound experience 0
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:22 Country: US, FCC facility ID: 10059
21:07:22 Station name: WSHE-FM
21:07:22 Slogan:  
21:07:22 Message:  
21:07:22 Station location: 39.185303, -76.806274, 96m
21:07:22 Audio program 0: public, type: None, sound experience 0
21:07:22 Audio program 1: public, type: None, sound experience 0
21:07:22 Data service: public, type: Emergency, MIME type 444
21:07:23 MER: 10.1 dB (lower), 8.7 dB (upper)
21:07:23 BER: 0.003399, avg: 0.003399, min: 0.003399, max: 0.003399
ignoring partial pdu
ignoring partial pdu
ALFN of pending leap second adjustment: 0
21:07:25 MER: 8.7 dB (lower), 7.2 dB (upper)
21:07:25 BER: 0.006425, avg: 0.004912, min: 0.003399, max: 0.006425
21:07:25 Title: Uptown Funk
21:07:25 Artist: Mark Ronson W/ Bruno Mars
21:07:25 Album:  
21:07:25 Genre:  
21:07:25 XHDR: 0 BE4B7536 54055
21:07:25 Audio bit rate: 56.5 kbps
Local time zone offset: -300 minutes, DST sched. 1, local DST? yes, regional DST? yes
21:07:26 MER: 8.8 dB (lower), 7.3 dB (upper)
21:07:26 BER: 0.005040, avg: 0.004955, min: 0.003399, max: 0.006425
21:07:26 Title: Uptown Funk
21:07:26 Artist: Mark Ronson W/ Bruno Mars
21:07:26 Album:  
21:07:26 Genre:  
21:07:26 XHDR: 0 BE4B7536 54055
21:07:26 Title: Uptown Funk
21:07:26 Artist: Mark Ronson W/ Bruno Mars
21:07:26 Album:  
21:07:26 Genre:  
21:07:26 XHDR: 0 BE4B7536 54055
21:07:26 Audio bit rate: 56.2 kbps
Pending leap second offset: 0, current leap second offset: 0
21:07:28 MER: 8.6 dB (lower), 7.2 dB (upper)
21:07:28 BER: 0.005755, avg: 0.005155, min: 0.003399, max: 0.006425
21:07:28 Title: Uptown Funk
21:07:28 Artist: Mark Ronson W/ Bruno Mars
21:07:28 Album:  
21:07:28 Genre:  
21:07:28 XHDR: 0 BE4B7536 54055
21:07:28 Audio bit rate: 57.2 kbps
21:07:29 MER: 9.2 dB (lower), 7.4 dB (upper)
21:07:29 BER: 0.004657, avg: 0.005055, min: 0.003399, max: 0.006425
21:07:29 Title: Uptown Funk
21:07:29 Artist: Mark Ronson W/ Bruno Mars
21:07:29 Album:  
21:07:29 Genre:  
21:07:29 XHDR: 0 BE4B7536 54055
21:07:29 Audio bit rate: 56.3 kbps
^C

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

What happens if you play the included sample https://github.com/theori-io/nrsc5/blob/master/support/sample.xz using Fedora 36?

You will need to decompress it before playing and use the -r iq-input flag.

from nrsc5.

markjfine avatar markjfine commented on June 30, 2024

I think on Fedora 35 in an x86 architecture I had to use the -DUSE_SSE=ON build option. Without it I was getting the same kind of dropped synch issue.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

I fixed it. The version I compiled on Ubuntu right now works perfect on Fedora 36.
I think I botched the first compile. So I will recompile on Fedora 36 fresh again and see if it works.

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

It's possible there is a bug somewhere in one of the libraries, a GCC bug or something with Fedora 36.

Anything you find might be helpful in trying to figure out what went wrong.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

So after recompiling on Fedora 36 I had the same issue. I just replaced the nrsc5 binary with the Ubuntu 20.04 version and it's perfect. My friend (who does DevOps) says it may be the cmake.

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

@markjfine mentioned about using the SSE build option to resolve their issues on Fedora.

You might want to try to rebuild using the -DUSE_SSE=ON build option and see if that resolves the issue.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

I always use the SSE Option. But I found this when I run ldd against the binaries it's different.

Fedora 36:

	linux-vdso.so.1 (0x00007ffcaff6c000)
	libao.so.4 => /lib64/libao.so.4 (0x00007faa3d27d000)
	libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x00007faa3d07d000)
	librtlsdr.so.0 => /lib64/librtlsdr.so.0 (0x00007faa3d06b000)
	libm.so.6 => /lib64/libm.so.6 (0x00007faa3cf8d000)
	libc.so.6 => /lib64/libc.so.6 (0x00007faa3cd8c000)
	libusb-1.0.so.0 => /lib64/libusb-1.0.so.0 (0x00007faa3cd6b000)
	/lib64/ld-linux-x86-64.so.2 (0x00007faa3d2a4000)
	libudev.so.1 => /lib64/libudev.so.1 (0x00007faa3cd3e000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007faa3cd1e000)

Ubuntu:

	linux-vdso.so.1 (0x00007ffee3dd0000)
	libao.so.4 => /lib64/libao.so.4 (0x00007feca21fe000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feca21f9000)
	libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x00007feca1ff9000)
	librtlsdr.so.0 => /lib64/librtlsdr.so.0 (0x00007feca1fe7000)
	libm.so.6 => /lib64/libm.so.6 (0x00007feca1f09000)
	libc.so.6 => /lib64/libc.so.6 (0x00007feca1d08000)
	libusb-1.0.so.0 => /lib64/libusb-1.0.so.0 (0x00007feca1ce7000)
	/lib64/ld-linux-x86-64.so.2 (0x00007feca2283000)
	libudev.so.1 => /lib64/libudev.so.1 (0x00007feca1cba000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007feca1c9a000)

All libraries exist on both systems in /lib64. For some reason Fedora 36 is not linking libpthread.

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

libpthread is optional so that isn't the cause.

What happens if you play the sample https://github.com/theori-io/nrsc5/blob/master/support/sample.xz on Fedora using the build you made on it? Does it play correctly or show similar behavior.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Same issue when compiled on F36.

xz -d < ../sample.xz | src/nrsc5 -r - 0
Block @ 3
Block @ 31
Block @ 0
22:52:55 Synchronized
22:52:55 MER: 13.5 dB (lower), 12.5 dB (upper)
22:52:55 BER: 0.499086, avg: 0.499086, min: 0.499086, max: 0.499086
22:52:55 Lost synchronization
Block @ 0
Block @ 0
22:52:56 Synchronized
22:52:56 MER: 13.6 dB (lower), 12.3 dB (upper)
22:52:56 BER: 0.500424, avg: 0.499755, min: 0.499086, max: 0.500424
22:52:56 Lost synchronization
Block @ 0
Block @ 0
22:52:56 Synchronized
22:52:56 MER: 7.3 dB (lower), 6.5 dB (upper)
22:52:56 BER: 0.501790, avg: 0.500433, min: 0.499086, max: 0.501790
22:52:56 Lost synchronization
Block @ 0
22:52:57 Synchronized
22:52:57 MER: 13.2 dB (lower), 12.1 dB (upper)
22:52:57 BER: 0.498591, avg: 0.499973, min: 0.498591, max: 0.501790
22:52:57 Lost synchronization
Block @ 0
Block @ 0
22:52:57 Synchronized
22:52:57 MER: 13.5 dB (lower), 12.3 dB (upper)
22:52:57 BER: 0.501026, avg: 0.500183, min: 0.498591, max: 0.501790
22:52:57 Lost synchronization
Block @ 0

I also built in a Ubuntu 22.04 Docker container and it works fine on the Fedora 36 System. I think it might have something to do with GCC 12 since Ubuntu 22.04 uses GCC 11.2.

from nrsc5.

pclov3r avatar pclov3r commented on June 30, 2024

There might be some compile optimizations that are not playing well if the new version of GCC. It's happened before.

You could attempt to invoke a older version of GCC and see if that works.

@argilo any ideas what might be going on here? I don't have a Fedora 36 system right now for testing.

from nrsc5.

andrewfer000 avatar andrewfer000 commented on June 30, 2024

Umm it's almost definitely GCC 12. I compiled it on Ubuntu 22.04 and Fedora 35 in docker and ran the binary on my F36 system. Ubuntu and F35 come with GCC 11.2

from nrsc5.

argilo avatar argilo commented on June 30, 2024

I was able to reproduce the problem on Ubuntu 22.04 by installing GCC 12 (sudo apt install gcc-12) and asking cmake to use it with -DCMAKE_C_COMPILER=gcc-12. The most likely explanation is that nrsc5 has a bug which happens to be exposed by this particular compiler version. The problem only occurs with -DUSE_SSE=1, which suggests that the bug is in the SSE-optimized convolutional decoder.

from nrsc5.

argilo avatar argilo commented on June 30, 2024

GCC 12 produces the following warning, which could well point to the source of the problem:

In file included from /home/argilo/git/nrsc5/src/conv_sse.h:25,
                 from /home/argilo/git/nrsc5/src/conv_dec.c:37:
In function ‘_mm_load1_pd’,
    inlined from ‘_mm_loaddup_pd’ at /usr/lib/gcc/x86_64-linux-gnu/12/include/pmmintrin.h:101:10,
    inlined from ‘_sse_metrics_k7_n4’ at /home/argilo/git/nrsc5/src/conv_sse.h:254:7,
    inlined from ‘gen_metrics_k7_n3’ at /home/argilo/git/nrsc5/src/conv_sse.h:322:2,
    inlined from ‘_conv_decode.constprop’ at /home/argilo/git/nrsc5/src/conv_dec.c:415:4:
/usr/lib/gcc/x86_64-linux-gnu/12/include/emmintrin.h:138:10: warning: ‘_val’ may be used uninitialized [-Wmaybe-uninitialized]
  138 |   return _mm_set1_pd (*__P);
      |          ^~~~~~~~~~~~~~~~~~
/home/argilo/git/nrsc5/src/conv_sse.h: In function ‘_conv_decode.constprop’:
/home/argilo/git/nrsc5/src/conv_sse.h:320:23: note: ‘_val’ declared here
  320 |         const int16_t _val[4] = { val[0], val[1], val[2], 0 };
      |                       ^~~~

from nrsc5.

argilo avatar argilo commented on June 30, 2024

The following patch appears to fix the issue:

diff --git a/src/conv_sse.h b/src/conv_sse.h
index 1165c65..98f9619 100644
--- a/src/conv_sse.h
+++ b/src/conv_sse.h
@@ -251,7 +251,7 @@ static inline void _sse_metrics_k7_n4(const int16_t *val, const int16_t *out,
                            m8, m9, m10, m11, m12, m13, m14, m15)
 
        /* (BMU) Load and expand 8-bit input out to 16-bits */
-       m7 = _mm_castpd_si128(_mm_loaddup_pd((double const *) val));
+       m7 = _mm_loadu_si128((__m128i *) val);
 
        /* (BMU) Load and compute branch metrics */
        m0 = _mm_load_si128((__m128i *) &out[0]);
@@ -317,7 +317,7 @@ static inline void _sse_metrics_k7_n4(const int16_t *val, const int16_t *out,
 static void gen_metrics_k7_n3(const int8_t *val, const int16_t *out,
                       int16_t *sums, int16_t *paths, int norm)
 {
-       const int16_t _val[4] = { val[0], val[1], val[2], 0 };
+       const int16_t _val[8] = { val[0], val[1], val[2], 0, val[0], val[1], val[2], 0 };
 
        _sse_metrics_k7_n4(_val, out, sums, paths, norm);
 }

from nrsc5.

ferrellsl avatar ferrellsl commented on June 30, 2024

from nrsc5.

Related Issues (20)

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.