fontforge / designwithfontforge.com Goto Github PK
View Code? Open in Web Editor NEWA book about how to design new typefaces with FontForge
Home Page: designwithfontforge.com
A book about how to design new typefaces with FontForge
Home Page: designwithfontforge.com
http://designwithfontforge.com/en-US/What_Is_a_Font.html
OLD TODO: How formal elements are encultured and how culture is manifested through shapes and spaces between letters is the 'secret' stuff no one teaches in design school, which this page should explain :)
Drawing with interpolation of CPs is off by default, but it make drawing substantially easier (most of the time.)
www.github.com/progit/progit has a PDF/ePub/Mobi build system, which should be copied over to here :)
I think it would be valuable to have a page for contributors to the "book" to follow. It should outline:
Any other items?
I think it should be line "thickness" .
https://twitter.com/mekkablue/status/567446421306347520
design combining marks, derive spacing if needed.
The current draft was reviewed at http://piratepad.net/zbPrXFgYk7
After #1 is closed, all the changes suggested there should be merged
Add a very basic intro to Git and why use version controlling for Type Design.
Some resources posted here.
https://groups.google.com/forum/#!topic/googlefonts-discuss/CQ-S8Y3ROqc
This report pretty much covers things I emphasized in the French FontForge book sprint.
Diacritics_and_Accents uses the 'acute' and 'grave', according to AGL and AGLFN these are U+00B4 = 'acute' and U+0060 = 'grave'.
U+00B4 and U+0060 are in the Unicode category "Symbols, modifier", they are spacing characters, meaning that they have their own advance width. They are in Unicode for compatibility with legacy encodings. They are notably used in some programming languages. They should not be used to build accented glyphs (=bad practice, pre-Unicode design) and must not have anchors (=big mistake, breaks Unicode support).
The proper diacritics are U+0300 = 'gravecomb' and U+0301 = 'acutecomb'. U+0300 and U+0301 are in the Unicode category "Mark, non-spacing", they are non-spacing characters, meaning they have no advance width and use the width of the previous base character/glyph.
The bad practice in Diacritics_and_Accents is to talk about U+00B4 and U+0060 as if they were always the right glyphs. The big mistake is to add anchors those spacing characters.
There is a list of fonts made with Fontforge here : http://en.wikipedia.org/wiki/FontForge
We should link to sources/ repos of these fonts and maybe add this to Further Reading.
On my dual monitor setup, Fontforge will pop up dialogs in the center of "my total resolution" rather than centered on the monitor fontforge is open in.
As it stands for most pages, a reader needs to scroll up to the top in order to navigate to the next chapter. (or any chapter for that matter)
To ease the reading experience, it'd be beneficial to add chapter-to-chapter navigation at the bottom of the various pages.
Just a small thought!
For someone who already read or will read the entire set of tutorials, it can be quite difficult to catch up when and what was edited, added, removed, etc.
I guess adding some kind of a notice in each section to show what's updated would be great.
@chakler Hmm, I can't install grunt :( Any tips? :)
designwithfontforge.com$ npm install
npm WARN package.json [email protected] No repository field.
npm WARN engine [email protected]: wanted: {"node":">=0.10.0","npm":">=2.1.5"} (current: {"node":"0.10.32","npm":"2.1.4"})
/
> [email protected] postinstall /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin
> node lib/install.js
✔ optipng pre-build test passed successfully
> [email protected] postinstall /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-jpegtran/node_modules/jpegtran-bin
> node lib/install.js
✔ jpegtran pre-build test passed successfully
> [email protected] postinstall /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin
> node lib/install.js
✔ pngquant pre-build test passed successfully
> [email protected] postinstall /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-gifsicle/node_modules/gifsicle
> node lib/install.js
✔ gifsicle pre-build test passed successfully
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-jpegtran/node_modules/jpegtran-bin/node_modules/bin-wrapper/node_modules/bin-check/node_modules/executable/node_modules/meow/node_modules/indent-string requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-tar/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-tarbz2/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-targz/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-unzip/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/bin-version-check/node_modules/bin-version/node_modules/find-versions requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-tar/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-tarbz2/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-targz/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-unzip/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-tar/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-tarbz2/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-targz/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-build/node_modules/download/node_modules/decompress-unzip/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/bin-version-check/node_modules/bin-version/node_modules/find-versions requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-tar/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-tarbz2/node_modules/strip-dirs requires chalk@'^0.5.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/chalk,
npm WARN unmet dependency which is version 1.0.0
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-targz/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/decompress-unzip/node_modules/strip-dirs requires get-stdin@'^4.0.1' but will load
npm WARN unmet dependency /Users/dcrossland/src/github.com/fontforge/designwithfontforge.com/node_modules/grunt-contrib-imagemin/node_modules/imagemin/node_modules/get-stdin,
npm WARN unmet dependency which is version 3.0.2
[email protected] node_modules/grunt-notify
├── [email protected]
├── [email protected]
└── [email protected]
[email protected] node_modules/grunt-contrib-imagemin
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
$
Hi everyone,
I am learning fontforge to build my own CJK font based on some existing open fonts and find out that "design with fontforge" is a good resource to learn almost the knowledge of typography and font-making.
I would like to help translate the content into Chinese (Taiwan) language, zh-TW, to spread those knowledge to wider audience.
If it is OK, I could create a branch to make a new "zh-TW" directory and copy "en-US" content into there, then translate little by little. I am not familiar with git workflow enough yet, hope what I write here makes sense though. :P
In addition to those at the book sprint, @mskala and Martin B Brilliant and myself contributed to the review of the first edition on piratepad :) We should be credited on the homepage as part of the call for more contributions :)
Ligatures, stylistic sets, MATH, …
All the online information about fontforge (docs, tutorials, videos) makes huge assumptions about users' familiarity with the GUIs of vector graphics software. The GIMP had the same problem in the early 2000s.
Please consider adding the following points:
The PDF output of the ebook is not rendered any Devanagari texts. The missing texts are vital information for the context of the book. As you can see in this example.
Some possible workarounds are
Thanks.
This python script was made by me an Andrew Miller [[email protected]] and could be a nice example of python scripting; it renames all glyphs to the "AGL without afii" namelist:
import fontforge
font = fontforge.open("Font.sfd")
for glyph in font:
if font[glyph].unicode != -1:
font[glyph].glyphname = fontforge.nameFromUnicode (font[glyph].unicode, "AGL without afii")
After @frank-trampe has updated the cvpalette and then update all the UI screenshots so that they match the latest release.
List other places to learn python for type designers
Andy Clymer workshop notes
Robothon booklet
https://github.com/revolunet/PythonBooks
Codecademy
Python for Rookies
This would be very useful, to see high quality FontForge source files. First ones I quickly found, with the help of usemodify.com are:
Foundries / Collections:
Typefaces and Fonts:
Not sure about the quality (e.g. completeness, features and diacritics?) of all of these.
Edit * accidentally closed the issue *
hoohooo1.png
is missing from the section "Spacing, Metrics and Kerning".
Make this a good resources to refer to on optimising typefaces for screens?
Add documentation on ways to adapt typefaces to different media...
http://designwithfontforge.com/en-US/Designing_Devanagari_Typefaces.html
TODO: Add image of vattu+U, vattu+Uu, U, Uu, and subscript V (for conjuncts)
Each chapter of http://booki.flossmanuals.net/fontforge should be made into a chapter-X.md file in the /en-US/ dir
Add video tutorial, and other links, fonts made with FF to Further Reading
and rename it to Resources or something more open.
Some images in the Using the Fontforge Drawing Tools are distorted when viewing in mobile. Probably because widths and heights are declared in the <img>
.
Mention "Find glyph" is one of the key features of the Font View. Its "View, Go To" and the hotkey in Font View is CTRL-SHIFT-. and in Glyph View this is simply .
When I go to homepage of designwithfont.com, I see both English and Traditional Chinese content. They should be separated into two pages, shouldn't they?
In the second paragraph:
These compomises mean that we can best think about typeface design as the creation a wonderful collection of letters but not as a collection of wonderful letters.
This should probably read:
These compromises mean that we can best think about typeface design as the creation of a wonderful collection of letters but not as a collection of wonderful letters.
Fifth paragraph:
they sometimes help detemine the technological contexts for which a font is suitable
This should probably read:
they sometimes help determine the technological contexts for which a font is suitable
Under "ascender height":
In example above, the x-heights have been matched in order to illustrate the relative difference in ascender heights.
This should probably read:
In the example above, the x-heights have been matched in order to illustrate the relative difference in ascender heights.
It currently jumps directly from installing it to how to use the drawing tools.
I think novice users would benefit from a more general introduction to the interface.
Question: How can I improve some of the UI text?
Answer:
In September 2013 Ben Crowder said on the users mailing list,
In preferences dialog, just putting a space in between each word instead of camel case would be great. "Undo Redo Limit To Save" instead of "UndoRedoLimitToSave", for example.
You don't need to be a C programmer to make such a change, just know web development and a little UNIX :)
First, make a fork of FontForge (https://github.com/fontforge/fontforge) in the usual Github way, and download your fork.
Then search the codebase for the text you want to fix:
$ grep -r UndoRedoLimitToSave *
fontforge/prefs.c:extern int UndoRedoLimitToSave; /* sfd.c */
fontforge/prefs.c: { N_("UndoRedoLimitToSave"), pr_int, &UndoRedoLimitToSave, NULL, NULL, '\0', NULL, 0, N_( "The number of undo and redo operations which will be saved in sfd files.\nIf you set this to 0 undo/redo information is not saved to sfd files.\nIf set to -1 then all available undo/redo information is saved without limit.") },
fontforge/sfd.c:int UndoRedoLimitToSave = 0;
fontforge/sfd.c: if( saveUndoes && UndoRedoLimitToSave > 0) {
fontforge/sfd.c: for( limit = UndoRedoLimitToSave;
fontforge/sfd.c: limit = UndoRedoLimitToSave;
fontforge/sfd.c: for( limit = UndoRedoLimitToSave;
fontforge/sfd.c: if( !UndoRedoLimitToSave )
po/ja.po:msgid "UndoRedoLimitToSave"
po/pl.po:msgid "UndoRedoLimitToSave"
po/ru.po:msgid "UndoRedoLimitToSave"
po/uk.po:msgid "UndoRedoLimitToSave"
$
From this we can see that the prefs.c file has a part that is a translatable 'msgid' - N_("UndoRedoLimitToSave") - and there are translation source files as *.po with the msgid.
$ brew edit fontforge
Then replace what is currently line 8,
head 'https://github.com/fontforge/fontforge.git'
with your github url, save the file, and
brew uninstall fontforge;
brew install fontforge --HEAD --with-x
I recommend resampling the images used on this page at their final size/resolution to reduce the download size of this page. It may be that the author is not quite done finalizing this page.
Also, is there a shared space for the "working source" for images used on the site? This might be useful for making revisions later, allowing any contributor to use the original file to update an illustration or diagram rather than re-create from scratch.
Add a Mac Crash reporting HOW TO like a comic:
Educard: Hi! I worked in fontforge and I had some problems
FontForge: oh? whats the error?
Eduardo: I did X, and then the program quit.
FF: Okay! Do you have XCode installed?
Eduardo: No
FF: Go to the App Store and install it, its a huge download but gratis
Edu: Okay!
FF: Then in terminal, you can do this:
/Applications/FontForge.app/Contents/MacOS/FontForge --debug
Then make it crash, and in Terminal type
bt
then type
q
(press enter after each command)
Then there appears a file 'FontForge-Debug-Output.txt' in your Home
Eduardo: ok :-)
FF: Then go to https://github.com/fontforge/fontforge/issues/new and paste the file contents, with the steps you took to make the crash
Eduardo: OK, thanks
Also make the 'To Int' feature much more prominent
I know there are some few tips on the download pages but thought we could aggregate them all in a chapter here if deemed relevant.
As per #23
Now we have multilanguages since zh-TW contents added.
Index will list all pages including zh-TW pages.
I think that we can use custum lang variables in front matter to filter what the lang we would like to be listed in Index. For example, "zh_TW: true" for zh-TW pages (pages under zh-TW directory) while "en_US:true" for en-US pages (pages under en-US pages).
Then we add if-expression to select zh-TW pages or en-US pages,
{% for weight in (1..100) %}
{% for p in site.pages %}
{% if p.weight > 0 %}
{% if p.weight == weight %}
...
{% endif %}
or
Is this solution acceptable for you guys? Any feedback welcome. ;)
As per @garyritchie in #31 (comment) lets add Grunt and bower, to create a set of reduced images during a build routine so we can keep the originals intact.
Let users search the site.
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.