gchudov / cuetools.net Goto Github PK
View Code? Open in Web Editor NEWCD image processing suite with optimized lossless encoders in C#
Home Page: http://cue.tools/
License: Other
CD image processing suite with optimized lossless encoders in C#
Home Page: http://cue.tools/
License: Other
There are many albums with PREGAP which contains only zero samples and in this case no information is lost when "Gaps Appended" option is used. Converting from tracks to image produces exactly the same .wav file.
I want to avoid having the "00. (HTOA)" file when possible so I use "Gaps Appended", convert back to image and compare the .wav file. If it's not identical, then I temporarily switch to "Gaps Appended + HTOA".
It will be great if CUETools can automatically decide if HTOA is needed or not by analyzing the content.
This has been on the Known issues list for a while.
[When detected] A duplicate FLAGS subcode command is added per track to the CUE when 'Test & Copy' is enabled or if you try to re-rip the CD without cycling the tray (eject/load).
Only one FLAGS command is allowed per track per the original Golden Hawk specification.
Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'CUETools.ALACEnc.exe' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
File name: 'CUETools.ALACEnc.exe'
Windows 10 Pro v1803
.net 3.5, 4.7.2
removing
<startup><supportedRuntime version="v2.0.50727"/></startup>
from CUETools.ALACEnc.exe.config eliminates message and runs normally.
https://hydrogenaud.io/index.php?topic=120626
The reporter is showing no drag resize in either direction.
I can change width but not height when a browser window is also open.
Edit: I think I 'jumped the gun' on this one.
Main Window will only drag resize height when the 'batch log' window is open. Main Window will only drag resize width when one of the 'browser' windows are open.
The same behavior is present in 2.1.4, 2.1.5, 2.1.6, & 2.1.7.
There are few different informations, some of EAC style has, and some of CUERipper's own style has. how about make both style of log after extraction?
When ISRC is specified on TRACK inside input CUE file, it's not specified on output CUE file TRACK
After ripping a K-pop album (including hangeul alphabet), all hangeul text in files name and details are replaced by underscores.
I'm using CUEtools to create a CUE+WAV from a set of files, one file per track. However, the tracks are always used in alphabetical order. I'd like to be able to set the order in which the tracks are to be played, so an option to edit this before generating the CUE file would be great. Because the filenames are generated without track numbers, often in multiple passes, renaming them each time is not practical nor desirable.
When I use image mode when ripping, CDTOC tag is not being written on files.
It is being written when ripping to tracks.
It is essential as it holds info about data tracks, CUEsheet generated by CUERipper doesn't.
Sorry for the crappy title, but this problem I'm having keeps giving me twists and surprises, so I don't even know what to put there. I'm sorry because this is going to be a bit long.
With a certain drive I have, I keep getting this error:
"Exception: Error reading CD: medium error: UNRECOVERED READ ERROR"
I've tried many things and along the way I was surprised with what I found out, so I'll start with the last discovery and then go through some of the strange events that preceeded it.
I'm running Windows 7 64bit, and I have an LG GH24NSD1 SATA drive. It works as far as detecting the disc, reading the TOC, finding drive features, detecting gaps... and then it fails when trying to extract the audio. I thought there was something wrong with the drive itself for a long time, but then yesterday I loaded a Windows XP VM I have under VirtualBox and put this drive in passthrough mode to the VM, and ran CUERipper from there and it worked without a hitch, and very fast.
What's weirder thing is that if I close the VM and immediately open CUERipper from the host OS, I can actually rip one disc. But, after that rip finishes or, if I abort it, attempting a second rip fails with that same error again.
Prior to this, I tried everything I could think of: Disabling HTOA and gap detection, using burst mode, zero offset, running as administrator, and even setting several compatibility modes (XP sp3, sp2, 2000... 98!). Nothing worked.
I have other drives, which are all IDE, connected to an IDE channel built into the motherboard, not an add-in controller card: An LG DVD-RAM multidrive, two Plextor CD-RWs, and even a 52x LG CD-ROM. All of them work right with CUERipper, mostly. I don't know what is the problem, wether the drives themselves, the OS or the ripping software.
But there's even more strangeness going on, because Exact Audio Copy does read from that LG SATA drive without the need for loading that VM first.
That said, I've been having quite a bit of trouble with all drives before. Even if the drive works in EAC under the host OS (win7), sometimes it goes sluggish, or just throws read and sync errors all the time, but other times it doesn't.
As you can see this is a mess. I have had other problems too, but I'm not sure they'd add any relevant information. Maybe everything would be fixed with a fresh OS install. Maybe some update in the last two years or so messed things up. I really have no idea. It's all very weird.
UPDATE: I just emptied an old HDD and tried installing both windows 7 and windows 10 fresh and run CUERipper from there. I keep getting the same error, so I'd say a faulty OS installation is ruled out.
Custom added FLAC EXE encoder fails
https://i.imgur.com/B7zW0kO.png
FLAC Parameter used : -8 -V - -o %O %P
No issue with v2.1.6 or v2.1.7
The http://cue.tools/wiki/CUETools_Templates page lists several variables one can use to dynamically generate the folder and file names CUETools uses when saving encoded files to storage.
I would like to propose 3 new variables:
• %encoderformat%
• %encoderlib%
• %encoderlevel%
These would carry values related to the settings selected in the two dropdowns and the slider in the Audio Output section (9) of the CUETools GUI (http://cue.tools/wiki/CUETools_Settings).
This would help users route encoded files to proper output folders as they choose different encodings for deployment to different devices that have different format support.
I guess one could create a separate profile for each format/lib/level they use, but if they want to make a change that applies to all profiles, they have to go in and change it in all those profiles, opening and closing the GUI for each one.
Could you please add (at least latest version) to GitHub Releases page?
As title, I think your codes working perfect for supporting 24bit encoding in FLAC so that I hope this could be implemented in ALAC, too.
When a CD is loaded in EAC and the cuetools plugin searches the Musicbrainz database it only finds a subset of the versions of the CD in the database. In the specific example a classical CD has been released many times both as a freestanding album and in various boxed set compilations, but only one of the freestanding versions is found. Other CDs from the same boxed set compilation are found in both their separately issued versions and the correct version from the boxed set. The example is for this collection: Deutsche Grammophon 477 8826
Hello,
There is an issue if the artist or album contains a special character like ':' which should be removed
for a filename.
i.e. Path.GetInvalidFileNameChars();
https://github.com/gchudov/cuetools.net/blob/master/CUETools.Ripper.Console/Program.cs#L193
It would be great if you could add an option to preserve the dates of files and folders when encoding. If my original flac have creation and last modified date from December 12, 2015, then the encoded flac should preserve all the original dates instead of updating them to the current date.
WMA encoding and decoding do not work; the constructor declarations of WMA encoder and decoder are wrong. CueTools uses Activator.CreateInstance() to create objects, which does not work.
Declaration: CUETools.Codecs.WMA -> AudioEncoder.cs
and AudioDecoder.cs
.
Instantation: CUETools.Processor -> AudioReadWrite.cs
, line 31 and 69 [see Activator.CreateInstance()
calls].
Originally posted by @ky7749 in #19 (comment)
When I try to rip CD's with an LG CD-ROM CRD-8480C ATA Device
all reads report error (error bar shows full deflection) and the resulting audio has a regular pattern of 8379 samples of sound followed by 1029 samples of silence that repeats every 9408 samples, offset by 24 samples (read offset got auto detected to -24). See image for an illustration.
I found a super old version of your code posted to some forum on the web. I ported over it to use in .net standard so i could use Xamarin to encode audio to FLAC. I posted it up on nuget here: https://www.nuget.org/packages/CUETools.Codecs.FLAKE
If you want me to take it down i can pull it down no problem. Didn't realize it was still an active project until i stumbled upon this.
This was present from 2.1.4 but still exists in 2.1.7 although probably doesn't impact very many users.
The original bug threw an "Index out of range" exception when the Detailed log option was enabled and the CD had a CD-Extra data track.
The Hotfix I believe was in commit cc682de
which resulted in omitting the "CD-Extra data track length {0}" text for any CD with a CD-Extra data track that has a different length than the CD being verified and just printing the "," in the log.
https://hydrogenaud.io/index.php?msg=807853
https://hydrogenaud.io/index.php?msg=837616
2.1.7 - CD without data track (partial log)
[CUETools log; Date: 3/15/2020 10:53:16 AM; Version: 2.1.7]
[CTDB TOCID: eAEwOGhXm4Xc9lIzrRUM__ZsbMo-] found.
[ CTDBID ] Status
[8e0dd717] (986/1138) CD-Extra data track length 01:28:38, Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[af00bb3f] (022/1138) Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[8e0dd717] (034/1138) CD-Extra data track length 01:08:69, Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[8e0dd717] (004/1138) CD-Extra data track length 01:30:38, Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[bd210393] (007/1138) CD-Extra data track length 01:28:38, Differs in 18963 samples @11:47:39,12:26:59,12:55:03,12:55:17-12:55:18,12:55:68,12:58:34-12:58:35,12:59:10,13:01:13,16:27:51,17:00:11,17:00:24,17:01:15,17:02:48-17:02:49,17:03:28,17:07:26-17:07:27,17:07:42,17:09:67,17:11:13,17:14:47,17:16:59,17:27:50,17:34:33,17:36:47-17:36:48,17:39:54-17:39:55,17:39:65-17:39:66,17:40:20-17:40:21,17:42:46,25:01:62,25:22:25,25:23:07-25:23:08,25:24:56,25:28:28,32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41,52:34:37
[ca1ae1e8] (001/1138) CD-Extra data track length 01:28:40, No match
2.1.7 - CD with data track (partial log)
[CUETools log; Date: 3/15/2020 11:04:32 AM; Version: 2.1.7]
CD-Extra data track length 01:28:38.
[CTDB TOCID: eAEwOGhXm4Xc9lIzrRUM__ZsbMo-] found.
[ CTDBID ] Status
[8e0dd717] (986/1138) Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[af00bb3f] (022/1138) Has no data track, Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[8e0dd717] (034/1138) , Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[8e0dd717] (004/1138) , Differs in 18498 samples @32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41
[bd210393] (007/1138) Differs in 18963 samples @11:47:39,12:26:59,12:55:03,12:55:17-12:55:18,12:55:68,12:58:34-12:58:35,12:59:10,13:01:13,16:27:51,17:00:11,17:00:24,17:01:15,17:02:48-17:02:49,17:03:28,17:07:26-17:07:27,17:07:42,17:09:67,17:11:13,17:14:47,17:16:59,17:27:50,17:34:33,17:36:47-17:36:48,17:39:54-17:39:55,17:39:65-17:39:66,17:40:20-17:40:21,17:42:46,25:01:62,25:22:25,25:23:07-25:23:08,25:24:56,25:28:28,32:59:11-32:59:12,39:47:68-39:48:02,43:06:35-43:06:41,52:34:37
[ca1ae1e8] (001/1138) , No match
Updated the old CTDB Plugin that EAC v1.6 ships with to the new v2.1.8 a couple of days ago. I've ripped 4 albums after that with EAC but there is no trace of any CTDB logging in the EAC logs (yes, the plugin is enabled in EAC). I've also run these 4 rips through CUETools v2.1.8 'HF1' and these 4 albums is in the CTDB according to CT's 'Verify'.
korth at HA have verified this issue.
I am running both with exactly the same settings. The encoder is cuetools with compression level 5.
I tested on two different machines:
Core i7-860 under Windows 7 x64
The conversion speed of v2.1.6 is 136x while for v2.1.9 it's 103x.
Ryzen 5 1600x under Windows 10 x64
The conversion speed of v2.1.6 is 225x while for v2.1.9 it's 183x.
I made several tests and the results were consistent. On both machines v2.1.6 is around 30% faster than v2.1.9.
The produced flac files are identical (except minor differences in the tags).
What about CD-Text support as metadata source?
It seemed essential for me, but as far as I know cueripper doesn't support it ;O
Hello!
I recently updated from 2.1.6 to 2.1.8 and noticed that verifying files on 2.1.8 is quite a bit slower. On 2.1.6 I get speeds around 850x while on 2.1.8 I barely reach 600x. Is this a known occurrence or have I done something wrong on my end?
My Laptop is perfect, all stuff installed.
Unzip File for Downloads, creates CueTools.exe folder in downloads, select either:
Just unpack the archive to any folder; no setup required. CUETools.exe and CUERipper.exe are the main applications to run.
App tries to launch and then message app will not run!
https://hydrogenaud.io/index.php/topic,117107.0/topicseen.html
In the past when visiting http://db.cue.tools, it used to be possible to use the arrows at the bottom of the page to browse other results, but nowadays the arrows are greyed out and you're stuck with the first 10 results which makes it impossible for me to find the albums I'm looking for.
Is it possible to restore the previous behaviour or is there a way to search for certain albums?
During Convert, if there are too many JPEG image files in the folder with the CUE file, and its sub-folders, the "Select the best match "dialog box (to pick the album art image" does not open, and CUETools jumps straight to the "Select the best match "dialog box that picks the meta data source. It seems 31 image files is OK; 32 is too many.
I'm running CUETools 2.1.6 on Windows 10 (1803).
It's good that CUETools replaces the special characters with underscores but there is one specific case which I would like to be handled differently - track titles which end with a question mark.
I think that it's ugly to have filenames ending with underscore and it's not rare to have titles which are a question and end with "?".
What I do is manually rename the file to remove the underscore and edit the .cue file, but it will be great if this can be handled by CUETools itself.
It can be done more universal by allowing to specify a list of special characters to be removed instead of be replaced with underscores.
Can this be built on Linux? If so, how?
The following error occured in the test and in the copy stage of a secure rip when progress reached 100%. (Two suspicious sectors were found but rip verified OK (AR + CTDB) none the less.)
I could not reproduce the error with any disc.
Complete error message (Fehlermeldung.txt):
************** Ausnahmetext **************
System.ArgumentException: Value must be greater than or equal to minimum.
bei ProgressODoom.AbstractProgressBar.set_Value(Int32 value)
bei CUERipper.frmCUERipper.<>c__DisplayClass27_0.b__0()
bei System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
bei System.Windows.Forms.Control.InvokeMarshaledCallbacks()
On my new Windows 10 laptop both CUERipper 2.1.6 and 2.1.7 gives an error (see image) when ripping CD's. It seems that after starting the laptop CUERipper is able to rip one CD, but when you want to rip a second one, the error occurs.
Exact Audio Copy works fine on the same laptop. The setup also worked fine with CUERipper 2.1.6 on my old Win10 laptop.
I am using a external USB Samsung SE-208 CD/DVD-drive which works fine on other computers.
In 2.18 HF1 it is impossible NOT to download all pictures from musicbrainz/coverartarchive.org for each disc of a set, which is annoying and takes time. There should be an option to just tag without any artwork.
When using the encode operation CUETools will alter the barcode, adding zeros if it is less than 13 characters. It should leave the information intact and merely transfer it.
Then the barcode and ISRC are written to the cue sheet but not to tags. So the files have to be tagged manually.
The program prints the input sampling rate incorrectly. You meant 44100 Hz.
Most of the cueripper windows and buttons can't be accessed by keyboard. Therefore it is allmost impossible to use the software with screen-reader. To test it, you can download the free screen-reader NVDA.
I seem to be able to reliably replicate a bug with the built in ALAC encoder in 2.1.6 where some samples are corrupted
This only happens on one disc (so far): Rage Against the Machine - Renegades, specifically track 11 triggers the problem
I have tried this both converting from a verified FLAC master, and with cueripper on the original CD, both exhibit the same behavior:
If I have output as lossless m4a cuetools compression level 2-10 with verification enabled, the encode will fail on track 11 with an error:
Exception: validation failed!
If I have output as lossless m4a cuetools compression level 0-1 with verification enabled or disabled, the encode will pass and a verify will show all tracks as accurate
If I have output as lossless m4a cuetools compression level 2-10 with verification disabled, the encode will finish but a verify will show that track 11 "differs in 8188 samples" always in the same spot, full output below
[CUETools log; Date: 2/24/2021 4:13:16 PM; Version: 2.1.6]
[CTDB TOCID: GEjEbHp16d15RCEhOy_Ip5IYbKQ-] found.
Track | CTDB Status
1 | (464/472) Accurately ripped
2 | (466/472) Accurately ripped
3 | (466/472) Accurately ripped
4 | (466/472) Accurately ripped
5 | (467/472) Accurately ripped
6 | (463/472) Accurately ripped
7 | (462/472) Accurately ripped
8 | (462/472) Accurately ripped
9 | (461/472) Accurately ripped
10 | (464/472) Accurately ripped
11 | (439/472) Differs in 8188 samples @01:24:32-01:24:39
12 | (460/472) Accurately ripped
13 | (461/472) Accurately ripped
14 | (457/472) Accurately ripped
[AccurateRip ID: 001d833b-013e00f3-cb0e340e] found.
Track [ CRC | V2 ] Status
01 [5dceaf05|5221e9ba] (071+059/340) Accurately ripped
02 [306f1ebd|ba370b9d] (070+059/337) Accurately ripped
03 [7b0fb072|955e1373] (070+059/338) Accurately ripped
04 [a2348ff9|bca4e58b] (068+060/339) Accurately ripped
05 [2a6eee7c|318d35a3] (069+057/337) Accurately ripped
06 [ad532251|cda149d6] (071+057/338) Accurately ripped
07 [5b85581f|0817b047] (071+056/338) Accurately ripped
08 [cfcb4c21|b2e666c9] (070+059/340) Accurately ripped
09 [9540d9c4|a7c91dac] (069+059/337) Accurately ripped
10 [8ffc07ae|f2d1bce2] (069+057/335) Accurately ripped
11 [1ebf8298|fef6a32a] (000+000/329) No match
12 [f78e328c|79f4de43] (069+056/333) Accurately ripped
13 [894fd81d|23aa78d0] (067+055/327) Accurately ripped
14 [57347618|33fe3053] (068+054/324) Accurately ripped
I have tried this several times and the results seem consistent, and this is the only disc out of hundreds that seems to have this issue.
I did think that maybe my original FLAC files were corrupt, but all verification on the original FLAC files succeed, all verification on ALAC files encoded with 0-1 compression level succeed, and I can replicate the issue from the original disc with cueripper as well.
I'd like to create archive of my CDs.
It's essential for me to have data like CD ID inside file.
CUETools throws an error (e.g. Exception: Indexes must be in chronological order) when a TAB is used for indentation within a CUE sheet.
The original Golden Hawk CDRWIN User's Guide (Appendix A) didn't specify what type of indentation should be used.
Formatting syntax:
Indentation and spacing between command lines does not interfere
with CDRWIN compiling a cuesheet. Cuesheet commands are not
case sensitive. However, when editing a cuesheet, it is good
programming practice to use indentation and spacing to keep your
cuesheet orderly.
CUETools should be able to detect the TAB character when parsing a CUE sheet and handle as whitespace (or throw a better error message).
See https://hydrogenaud.io/index.php?topic=120100 for a recent example.
I'm using a Lindy USB3 5.25 external enclosure with various Liteon/Pioneer drives installed. when connecting the enclosure, it's detected and reads the disc tracks and collects metadata, but as soon as i ask it to Rip it gets to "detecting drive features" and the drive access light flickers and thats it. sometimes after a minute i get an IoCtrlError message, sometimes not; but alsways it results in a hung CueRipper window where both pause/abort are greyed out; then i start getting odd USB and machine issues (lockups of other devices, OS freezing with spinning circle etc) - until i either software reset the port, or unplug and reinsert. If i connect the device to a USB 2.1 port it works perfectly. I have other USB3 external enclosures using prolific chipsets that work every time; only these ones (which i believe use the VIA chipset). Clean install on Windows 10 (full format, not just reinstall). zero errors in windows event logs
UPDATE I forgot to add that using another ripping tool - for example EAC - recognises the drive, interrogates it for C2 and cache and then rips securely without any issues connected as USB3.0.
I have also tried using the external enclosure on another machine (Dell Latitude E7400) and the exact same issue occurs
UPDATE 2
Have just given up on using CueRipper and gone to EAC - have 3 of these enclosures, and got them in USB2.x ports to force 2.10 speed - Cueripper crashing and resetting drives mid rip - completely unuseable. stopped all optical drives working when the 3 enclosures crashed showing Device has problem 43 (failed post start) on them - in the middle of CD rips...
When trying to rip a CD on an ATAPI iHAS124 Y ATA Device
I get the following error message
Transcribed
---------------------------
Exception
---------------------------
Exception: failed to autodetect read command
BEh, 12h, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (3,0002ms)
BEh, FAh, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (2,0001ms)
BEh, 14h, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (3,0002ms)
BEh, FCh, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (4,0002ms)
BEh, 10h, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (3,0002ms)
BEh, F8h, , 16 blocks at a time: ILLEGAL MODE FOR THIS TRACK (2,0001ms)
D8h, 10h, , 16 blocks at a time: INVALID COMMAND OPERATION CODE (4,0003ms)
---------------------------
OK
---------------------------
Hi.
I'm unable to rip any CDs using CUERipper. It immediately indicates errors and retries the reads numerous times. This occurs on multiple CDs that are in very good condition. At first I believe it was a drive issue, but I just replaced my ASUS DRW-24B1ST with a new Lite-On IHAS124-14 and the issue still occurs.
I'm fairly certain this is another issue related to C2 error handling (see #19). In EAC, if I disable C2 detection, I am able to rip CDs. With C2 detection turned on the read immediately develops errors much like CUERipper.
Based on a forum post for another piece of software it looks like these two drives have had C2 issues
https://www.poikosoft.com/support/viewtopic.php?t=12859&start=15
CUERipper 2.1.9
Microsoft Windows 10 Home - 10.0.19042 Build 19042
As described in this thread at HydrogenAudio
I put a CD in, run CUERipper and I get a green progress bar in the lower right corner while CUERipper fetches the metadata; it finds it and all is fine.
The problem is that after a few seconds (~30 or so), it scans for it again, and then (after another 30s) again, and then again, no end. So if I manually edit the metadata, when it scans for it again I lose my changes.
It seems to have been already noticed in the past: here
HI
Please update these codecs for CUETools/CUERipper
WavPack to v5.4.0 (OK)
Monkeys Audio to v7.xx
FLAC/libFLAC to v1.3.3 (OK)
[EDIT]
While your making the updates so would it be nice if you could upd ate these 2 also :
L.A.M.E. (libmp3lame.dll to v3.100.1 (Rarewares) ) (OK)
UnRAR (to v6.1.x (https://www.rarlab.com/rar/UnRARDLL.exe) ) (OK)
I would like to build a Chocolatey package for this but it is unclear what the license on this is and whether I can redistribute it.
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.