Coder Social home page Coder Social logo

briatte / srqm Goto Github PK

View Code? Open in Web Editor NEW
48.0 4.0 16.0 286.33 MB

An introductory statistics course for social scientists, using Stata

Home Page: https://f.briatte.org/teaching/quanti/

Stata 34.39% TeX 65.61%
stata data-analysis statistics statistical-analysis statistical-methods data-visualization regression-models linear-regression logistic-regression regression-diagnostics

srqm's Introduction

This repository contains the Statistical Reasoning and Quantitative Methods (SRQM) course, taught at Sciences Po in Paris by François Briatte (since 2010), Ivaylo Petev (2010-2013) and many others.

The course requires a working copy of Stata. Due to it being over 10 years old, the course was designed on very old versions of Stata, but should still work fine on Stata 13+ at least, with minor issues due to a few syntax changes.

GitHub users - please feel free to report issues or ask for enhancements. Feedback on running the course with Stata 13+ is particularly welcome, as is feedback on running the course with older versions of Stata.

Sciences Po users - this course is currently on offer in the PSIA (International Affairs) Masters, under code KOUT 2030. The course used to be on offer in the GLM (Urban School) Master until 2018, under code KGLM 2015.

  • Instructors – please email me at [email protected] in order to receive an additional 'briefing pack' (detailed instructions and recommendations on how to run the course).

  • Students – your course instructor will provide you with all necessary course material, and will tell you in your first class how it should be installed on your computer. Welcome to the course!

FILES

See the course wiki for additional information and links:

https://github.com/briatte/srqm/wiki

THANKS

Thanks first and foremost to Ivaylo Petev, who taught on the first versions of the course from 2010 to 2013, and who helped design much of the current course material. Thanks to Vincent Tiberj, who put us in touch, and who did lots for statistics education at Sciences Po.

Thanks also to all instructors who have run their own forks of the course over the years, including Mathilde Bauwin, Cyril Benoît, Joël Gombin, Andrey Indukaev, Antoine Jardin, Filip Kostelka, Antonin de Laever, Antoine Marsaudon, Haley McAvay, Sarah Schneider-Strawczynski, Pavlos Vasilopoulos, and many, many others, who are unfortunately not listed here because I lost track around fall 2018.

Additional thanks go to Emiliano Grossman, Simon Persico, Daniel Stockemer, Tommaso Vitale and Hyungsoo Woo, and to the Sciences Po admin teams, with special thanks to Carole Bacheter, Andreas Roessner, Régine Serra and Mimi Maung-Trentin.

Last but not least, thanks to all current and past SRQM students, especially Alba Guesch, Leila Ferrali, Laura Maria Führer and Gabriel Odin, who took the course in the fall of 2010, and who generously suggested many improvements to it.

VERSION

This is version 0.7.x "whatever" of the course, with just a few updates since 2019 to ensure that the course still runs on Stata 17.

LICENSE

This repository contains Stata datasets that were downloaded from various data providers, and then slightly altered for teaching purposes. Please do not redistribute those.

The rest of the repository is under a CC-BY-SA license, where 'by' are François Briatte and Ivaylo Petev (Stata code) or François Briatte alone (related teaching material).

srqm's People

Contributors

briatte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

srqm's Issues

Using srqm_get

srqm_get fetches course material. It's useful to distribute do-files and slides, which are often edited at the last minute.

The code for srqm_get now points to srqm.briatte.org, which will redirect to srqm.apinc.org as soon as my zone file refreshes. There is a page at this address to remind students how srqm_get works.

@joelgombin: I'll send you the address and password to the FTP.

Reintroduce the slides

  • Reintroduce the slides
  • Credit the initial template

Slides should be an excuse to structure the first 45' of class:

  1. 15' on project management
    • 10' to monitor all groups from the Google Docs projects sheet
    • 5' on questions and answers about the projects
  2. 5' to remind everyone of how far they should be in their textbook readings
    • Show course webpage with textbook and Stata Guide chapters
    • Answer theoretical questions briefly, provide empirical examples during practice
  3. 20' to introduce the session topic and replication code
    • Every do-file contains detailed notes and is meant to be finished at home
    • The solutions for the short coding exercises in the slides are on the wiki

… so the slides basically tie up everything together:

  • the first and second part of each session
  • the course documentation (website, readings, code, Google Docs, wiki)

Disclosure: count 5' to 10' for lateness to class (both teacher and student-induced). This means that the 20' for (3) are more like 15', and that the break has to be 10' at most, even when the students have interesting questions and ideas about their projects to share over coffee.

Update to QOG January 2020

Basically a follow-up of #14

  • All links to QOG Standard 2016 are now dead.
  • Recent QOG Standard datasets have dropped Barro & Lee variables, so the course do-files need to use the gea_ versions of educational attainment.
  • Remove eu_ variables (small small size) during data preparation? The data trimming script probably already does so.

License? And Jupyter notebook example

Hello! I was just perusing Stata-related github repositories and came across this. There's no license file, so I wasn't sure if the content was openly-licensed. By default, repositories without a license file have all rights reserved.

Secondly, I've been working on a Jupyter kernel for Stata, which allows Stata to be run directly from Jupyter Notebooks. I'd been wanting to make an example notebook anyways, so I converted the week2.do file into a Jupyter Notebook. It's nice because Github includes the output and graphs when it displays Jupyter Notebook files.

If you click here: https://github.com/kylebarron/srqm/blob/master/code/week2.ipynb you'll see all the output of the week2.do file rendered next to the Markdown descriptions.

image

Additional do-files

Using notes from SRQM-TODO-2018. Other TODO files need to be added too.

Repeats of stuff already covered

With the aim of explaining better what the options are through a different use case:

  1. working-with-summary-graphs.do
  2. working-with-summary-statistics.do
  3. working-with-survey-weights.do
  4. working-with-regression-results.do
  5. working-with-marginal-effects.do
  6. working-with-clustered-standard-errors.do

Aim would be to have one 'extra' per week.

Extra stuff

  1. working-with-wide-datasets-reshaping.do (will require a different dataset, e.g. OECD)
  2. working-with-multiple-datasets-merging.do (use WEP? see #24)
  3. Cronbach's alpha and/or factor to create synthetic indexes
  4. PCA and clustering
  5. multilevel models
  6. panel models (will require adding a panel or CSTS dataset — see below)
  7. maps! and possibly spatial models, segregation indexes (ask Antoine)?
  8. Bayesian example (taken from Gelman et al.? Bread and Peace)?

Suggestion (3) might be a good 'extra'.

CSTS or panel datasets

CPDS, OECD, WDI are good candidates. Scruggs, if not too outdated?

See https://f.briatte.org/teaching/quanti/data for ideas.

Update code to new survey datasets

  • ESS Rounds 4 and 8
    • check Round 4 results
    • use Round 8 in at least one of the do-files?
  • U.S. GSS (new selected years)
  • U.S. NHIS (new selected years)
  • WVS Round 4 (new data file)

See #21 for the equivalent issue with the QOG dataset.

profile.do error

In the profile.do file, I encounter an error with Linux/Stata 12 at line 34. The problem seems to be with the c() instruction :

c(update_query) undefined

Dataset updates

Closes #21, #22 and #23 (copied below), #27.

Update from 2023

Stop updating the data, really.

  • 'Freeze' as it is (except for ESS, perhaps)
  • Archive the original freezed datasets/codebooks in data-raw/
  • Update srqm_data to use data-raw/
  • Slightly improve the _readme documents
    • Document freezes
    • Document codebook issues, e.g. #27
    • Ideally, this would be in the Stata Guide…
  • Add WEP? #24

Detailed notes

  • QOG: qog2023 -- since QOG 2023 is out
    • freeze: qog2019
    • would require rewriting code and looking at less clear results… see code at end of section
    • only advantage would be lower codebook size → just downsample the 2019 one, it only loses the intra-doc links
    • note the codebook issue! #27
    • Perhaps simply drop the eu_* variables
  • GSS: gss7221 -- since GSS has updated too
    • freeze: gss7616 (but see below)
    • not fun to keep only one year: keep older years one old year too
    • possibly break down single data into yearly ones? restrict to 1976 and 2016
      • would solve "max 2,048 vars" issue from #28
      • raises question as to how to zip it all (currently uses gss7616* to match files)
  • ESS: ess2008 -- in order to continue using torture question?
    • freeze: ess0816, or ess2008 and ess2016 (different codebooks, so it's fine)
    • keep using Round 4 for both torture example and health services ones (results are not as clear-cut with Round 8(
    • keep Round 8 to cover e.g. climate change
    • problem: DTA file is too large -- divide, to avoid _merge problem
    • document existence of ess2016 despite not in use anywhere in the course do-files
  • WVS: wvs9904 -- keep old version for sharia law question
    • update to last version, check encoding
    • possibly also include a more recent wave? (raises same question as ess2016)
  • NHIS: update to nhis202* recent year nhis1020?
    • check if sampling frame and variables have changed first
    • see below on how URL structure for fetching has changed

Note on QOG -- offers only this as a replacement in 2023, which is not ideal:

// school life expectancy
sc wdi_fertility wef_lse, ms(i) mlab(ccodealp) || lfit wdi_fertility wef_lse, ///
	name(g1, replace)
// linear fit + SSA data points only, underpredicted
sc wdi_fertility wef_lse if ht_region == 4, ms(i) mlab(ccodealp) || ///
	lfit wdi_fertility wef_lse, ///
	name(g2, replace)
// all regions
forv i = 1/10 {
	sc wdi_fertility wef_lse if ht_region == `i', ms(i) mlab(ccodealp) || ///
	lfit wdi_fertility wef_lse, ///
	name("region`i'", replace)
}

The plan for 2021:

Additional things to consider:

Dataset names

I like the initial "acronym + year" convention, but it produces strange names for multiple-year survey datasets:

  • ess1214 (not used) and ess0816
  • wvs9904 (unavoidable)
  • nhis1017 (unavoidable, unless we use a single year, but that removes any demo of keep if year)
  • gss7616 (unavoidable, unless we separate the years)

Merged datasets

Is it still a good idea to do that for e.g. ESS? Probably not, esp. if we need to limit datasets at 2,048 variables for Stata/IC.

  • Keep NHIS with multiple years. Use it to demo keep if year.
  • Keep WVS with multiple years (country-dependent).
  • Break down GSS.
  • Break down ESS.

Both WVS and ESS are used to demo keep if inlist(country, …), the other subset we want to show.

Additional datasets

It would make a lot of sense to have more datasets for the students to use than those used in the do-files.

Currently, the do-files are selective anyway: we provide ESS 2016 (Round 8) but do not use the data, even though the dependent variable also exists in that round.

  • GSS has a single codebook, so bundling many years would duplicate the codebook in the ZIP archives. Not ideal.
  • ESS could be broken down to Rounds 4 (2008), 8 (2016) and 9 (2018).

Package installation on restricted computers

This is still an issue, and the code in setup/srqm_pkgs.ado and utils.ado (the pkgs utility) is too complicated and not even guaranteed to work properly.

Three possible situations:

  • running the course on a laptop with full admin privileges – everything works fine
  • running the course on a computer with restricted rights, from a USB stick – issue (1)
  • running the course on a computer with restricted rights, from the hard drive – issue (2)

Issue (1) might be easy:

  1. detect if the pwd either contains /Volumes/ (Mac) or does not contain c:\ (Win), or equivalent on Unix
  2. if so, install packages locally in the srqm/pkgs folder

This might fail if the hard drive is not C: on a Windows machine.

Issue (2) is bothersome. So far, the approach is to try the PLUS folder, and if it fails, the PERSONAL folder, and if it fails, install locally.

Perhaps it would be easier and better to just try out the default option, using something as simple as ssc inst fre, and if it fails for whatever reason, to fall back on the local install.

Try to list all former instructors (and admin)

Lost count around September 2018, it seems…

Fall 2023 team: Pol-angély PESCAYRE, Alexis GRIGORIEFF and myself.

For historical research via the Wayback Machine…

http://formation.sciences-po.fr/enseignement/2018/KGLM/2015
http://formation.sciences-po.fr/enseignement/2018/KOUT/2030

  • GLM, Fall 2018: myself + MCAVAY, Haley
  • GLM, Fall 2019: myself + Antoine
  • PSIA, Fall 2019: tons of people
    • myself
    • CUPILLARD, Emilie (Chargée d'études statistiques)
    • DE LAEVER, Antonin (Enseignant)
    • ESLAMILOUTIJ, Siyavash (Doctorant)
    • JARDIN, Antoine A. (Ingénieur de recherche CNRS)
    • MEHMOOD, Sultan (Etudiant doctorant)
    • MONTALBO, Adrien (Doctorant)
    • PESCAYRE, Pol-Angely C. (Teacher)
    • SCHNEIDER, Sarah (Statistical Reasoning)

Might also be useful to dig into:
https://moodle.sciences-po.fr/course/search.php?q=reasoning&areaids=core_course-course

… helps to find, for semester '202010' (Fall, probably)

  • Siyavash ESLAMILOUTIJ
  • Malo MOFAKHAMI

Many QOG variables have low-N for cross-sectional analysis

library(tidyverse)
d <- haven::read_dta('/Users/fr/Documents/Teaching/SRQM/data/qog2019.dta')

tibble(
  var = names(d),
  # data sources
  src = str_extract(names(d), ".*?_"),
  n = apply(d, 2, function(x) sum(!is.na(x)))
) %>% 
  group_by(src) %>% 
  summarise(n_vars = n(), min_N = min(n), max_N = max(n)) %>%
  arrange(min_N) %>% 
  # arbitrary threshold at N = 50
  filter(!is.na(src), min_N < 50) %>% 
  print(n = 100)

PSI, EU, OECD, WWBI and a few others are particularly at fault:

# A tibble: 28 x 5
   src     n_vars min_N med_N max_N
   <chr>    <int> <int> <dbl> <int>
 1 psi_         6     1  10.5    20
 2 mad_         4    15  29     163
 3 eu_        277    16  34      48
 4 une_        47    16 146     193
 5 wwbi_       38    17  41      62
 6 oecd_      281    19  37      44
 7 wdi_       278    19 156     192
 8 dev_         4    20  20      20
 9 dpi_        70    26 160.    175
10 bs_          8    28  28      28
11 ess_         9    28  28      28
12 ideavt_      6    28 107     180
13 wel_        36    29  32     189
14 wvs_        42    29  34      34
15 aid_         6    31 139     139
16 cses_        2    31  31.5    32
17 gol_        20    33 127     129
18 wiid_       18    34  35      35
19 ucdp_        2    35  70     105
20 cpds_       49    36  36      36
21 h_          11    37 165     185
22 lis_        23    37  37      37
23 r_           5    40  98     144
24 sgi_        29    41  41      41
25 top_         2    41  41      41
26 nelda_      10    44  45      45
27 vi_         13    45  48      50
28 qs_          9    47 112     115

Not a bug, but leads students to build designs with low sample sizes.

world-c.data and world-d.dta ?

What are the world-c and world-d data files? I can't seem to open them, Stata says "file data/world-d.dta not Stata format".

Improve srqm_datatrim

  • Trim to max(n) variables (to deal with Stata 11 and limited versions of Stata).
  • Find the number of observations per each variable.
  • Lose all variables for which there no observations.
  • Gradually lose all other variables, starting with those with less observations.

Update the wiki

Some of the linked resources are probably outdated or unavailable.

Course utilities is the most useful, at least to me. I keep rediscovering some of the stuff it lists…

Data lists stuff that I communicate to students.

The course history was never clear or accurate… Let's see if planning for 2.0 (#31) helps.

The "Code" wiki page does not exactly correspond to what I teach students. For instance, my first session focuses almost just on pwd

The "Stata" wiki page links only to English-language stuff, but I could add @methevenin's courses in French, which are very up-to-date:

https://mthevenin.github.io/stata_fr/
https://github.com/mthevenin/stata_fr
https://github.com/mthevenin/formation_stata

There are other pages, some with close to zero usefulness, unless I put the links or references in the Stata Guide, for instance. I keep re-creating lists of courses every time I teach a new course anyway.

Bottom line — use the wiki only to document the srqm internals (utilities), move everything else to the Stata Guide.

Compatibility with different versions of Stata

Closes #12 and #18 in favour of a reassessment in early 2021 2023 (updated).

The ideal goal would be to maintain compatibility with all (SE/IC/MP) versions of Stata released in the last 10 years, with a focus on Stata SE.

(For reference, the course started running shortly after Stata 11.1 was released, and I think I remember testing it with Stata 10, from June 2007, possibly even Stata 9, April 2005.)

  • Currently (2021 2023), that means going back to Stata 11-12 13, so Stata 12+ 13+ compatibility seems like a reasonable goal. This would avoid e.g. having to enclose calls to marginsplot in "if version" conditionals.
  • A more reasonable goal is to support Stata 13+ only, primarily because of UTF-8 and HTTPS support. Stata 13 was released in 2013, so supporting Stata 13+ would be an ideal goal for… 2023. (Update: it's 2023, and this is now a good goal.)
  • Some stuff like the syntax of ci and changes to the defaults of margins (for xtlogit, re, so not affecting the course) suggest supporting only Stata 14+. That's the lazy option.

Given the above and some of the details below, the lazy objective of supporting only the last 3 versions (Stata 14+) might be more reasonable… Stata 14 was released in 2015, so that would result in a 5-year compatibility window, which is not so shabby.

Dataset format

There are comments about this in srqm_data.ado on that. The current format for all teaching datasets in Stata 12.

Number of variables

2,048 at most for Stata/IC.

Solution: warn (or fail?) if datasets go over 2,048 - 100 variables in srqm_data.ado (leaving 100 variables for the user).

  • Requires checking the QOG dataset (updated below in 2023)
    • qog2019 is fine, 1,983 vars (leaves 65 free for the Stata/MP user to create)
    • 2020, 2021, 2023 editions are at ~ 1,700 vars
    • see #30 to understand why sticking with qog2019 makes sense
  • Requires changing the GSS dataset by breaking it down to multiple years
    • see #30
    • see code below

GSS limited to 1976 and 2016 has ~ 1,100 vars and weighs 7.7 MB -- that should work.

keep if year==1976 | year == 2016
d, varl
foreach i of varlist `r(varlist)' {
	di "`i'"
	count if !mi(`i')
	if r(N) == 0 {
		drop `i'
	}
}

HTTPS

Discussed in #12. It's probably time to drop HTTP support — there is no satisfying solution to continue doing so, the course is available outside of Sciences Po only via HTTPS-only GitHub, and all Sciences Po students are on HTTPS.

There are more comments about this (HTTP/S on my Stata access point) in srqm_grab.ado.

Import commands for non-DTA data

srqm_grab.ado contains commands to import CSV/TSV and Excel data in Stata: it will show the commands to do so for Stata 13+ (one more argument in favour of dropping Stata 12 at that stage).

Outdated commands

memory fails gracefully. Affects week1.do.

ci does not fail gracefully — it does not require mean in Stata 12 or in Stata 13, but does in Stata 14+. Affects week4.do and week5.do.

marginsplot is not supported in Stata 11-. Affects week11.do.

Ten years after — v2.0

This course is now roughly 10 13 years old (first run: Fall 2010). The pretty dirty repo history shows it. It's time to think of version 2.0, although version 1.0 never got its release tag (release tags did not even exist when we started).

  • Update the overall code to whatever Stata compatibility we choose:
    • #28
    • Test with version n
    • Add version 13 to 'freeze' some commands, e.g. table, margins?
    • Test datasets with Stata < 13
  • Update the datasets
  • Update the utilities in setup, especially unpublished ones; see also #26
  • List all instructors and admin: #36
  • Rebase the repository for cleanliness?
  • Dig up the very old stuff, for fun: lobbying.dta (Baumgartner), ebm2009 (Eurobarometer)

And perhaps even more importantly, but (perhaps, even) more time-consumingly:

  • Update the Stata Guide
    • Continue the LaTeX rewrite
    • Take the decade-old (let's not wait for decades…) comments from Filip, Joël… into account
    • Finish writing the regression bits using Bittmann 2019 and Mehmetoglu and Jakobsen
  • Update the course slides (let's stick with LaTeX despite love/hate)

Additional do-files

My many TODO files from 2017, (especially) 2018, 2019, 2020 have suggestions of extra do-files to create — shorter ones, ones that cover extra stuff beyond the scope of the course (e.g. merging, panel data).

I also have some very short "demo" do-files that I use in the first hour, as recaps of the previous session + introduction to the second hour of the current one.

Use that as an opportunity to…

  • … include and demo more datasets?
  • … document estout properly? (both for "Table 1" and regression tables)
  • … rename the do-files, week01, week02week12 for obsessive neatness?
    • have week0*-recap do-files with just the essentials too much work: streamline the week** ones
    • have xtra01 to xtra12 -- one 'bonus' do-file per week (see below)

Bonus do-files (which will move out some stuff from the main ones, and will cover some intermediate/advanced topics):

  1. xtra01-pca -- plot a map + demo PCA (see below)
  2. xtra02-merge -- download additional data from online + merge
  3. xtra03-svy -- survey weights: WVS 99-04
  4. xtra04-bootstrap -- survey weights: NHIS 2017 (repeat?) + bootstrap
  5. xtra05-export -- export descriptive stats with estout
  6. xtra06-tests -- survey weights: ESS 2008 (repeat?) + other association tests with ranks
  7. xtra07-ts -- QOG time series with (extract of) 2023 edition? (serial correlation)
  8. xtra08-panels -- robust and clustered SEs, fixed and random effects with QOG time series
  9. xtra09-export -- export regression results with estout
  10. xtra10-logit -- AUC/ROC, predicted probabilities, ordinal logit, multinomial (?)
  11. xtra11-mfx -- marginal effects, bootstrap (already there at end, remove)
  12. xtra12-count -- survey weights: GSS + neg binomial, count, Poisson etc.?

PCA example:

pca popgrowth-safewater
scoreplot, ms(i) mlab(country)
// note: tried using `kountry` to convert country names, failed so far
loadingplot
// demo arch effect, no strong 2nd dimension
pca lexp-safewater
scoreplot

Leaves out:

  • MCA
  • quantile regression, L1 (lasso), L2 (ridge)
  • bootstrapped SEs in models
  • Bayesian models
  • multilevel models

Beyond teaching

I once considered publishing the Stata Guide, but publishing a Stata Guide, even though some publishers would take it, sounds bizarre in 2021. R is the current standard, with Julia and Python probably coming next or along.

  • At least look at LeanPub, like Roger D. Peng
  • Ask PSIA or the Presses de Sciences Po about it
  • Go for Sage, like some kind of updated, no-menus Mehmetoglu and Jakobsen?

0_myboxes package?

The sty.tex file loads a "0_myboxes" package that is, however, not included in the folder. Any idea where I could get it? (I looked quicky at Taraborelli's github page but didn't find it).

Syllabus source

Could you share (with me, at least) the syllabus source? I need to change some details, such as my name, the room etc. Thanks!

Reintroduce Stata Guide

Version 2 is XeTeX-coded, so the sources should be out there too.

(Once publishable, it should be easy to bundle the replication material as a Stata package, which would also be a better way to distribute the course utilities. See Mark Lunt's epidemiology course or J. Scott Long's course for examples of courses-as-packages.)

Using Linux Libertine in the math appendix

The math appendix uses knitr, ggplot2 and gridExtra to produce plots with math notation in the document. If you try to add extrafont to the R script, the plots will fail to generate:

Warning in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family 'LinLibertine' not found in PostScript font database
Quitting from lines 154-194 (A_math.Rnw) 
Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  : 
  invalid font type

I'll leave the code in a FALSE condition in case someone finds a fix.

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.