GithubHelp home page GithubHelp logo

theglobaljukebox / cantometrics Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 2.0 29.6 MB

Data for Cantometrics

Home Page: https://theglobaljukebox.org/

License: Creative Commons Attribution 4.0 International

Makefile 10.93% Python 89.07%

cantometrics's Introduction

Cantometrics Data

DOI

Cantometrics is a dataset forming part of The Global Jukebox. For full details including detailed description of the datasets and how to use and interpret them, see:

Wood, A. L. C., Kirby, K. R., Ember, C. R., Silbert, S., Daikoku, H., McBride, J., Passmore, S., Paulay, F., Flory, M., Szinger, J., D’Arcangelo, G., Guarino, M., Atayeva, M., Rifkin, J., Baron, V., El Hajli, M., Szinger, M., & Savage, P. E. (2021). The Global Jukebox: A public database of performing arts and culture. PsyArXiv preprint. https://doi.org/10.31234/osf.io/4z97j

This repository is for pulling, formatting, validating, and cleaning the Cantometrics dataset.

Raw data is presented in three data tables within raw/. The raw dataset is a digitisation of the original cantometrics dataset. All coded values in the original data set are transformed to 2^[value] to accomodate codings with multiple values (multicodings). Meanings of these codes can be found in etc/raw_codes.csv.

raw/ description
data.csv Cantometric codings of songs in the sample.
songs.csv Metadata on the songs coded in data.csv
societies.csv Metadata on the societies from which the songs originate.

Cantometrics data is also available in CLDF format within cldf/ Within the CLDF dataset, multicodings have been seperate to single coded values. Meanings for these codes can be found in etc/codes.csv

cldf/ description
data.csv Long format Cantometrics codings of the songs in the sample.
songs.csv Metadata on the songs coded in data.csv
societies.csv Metadata on the societies from which the songs originate.

Additionally there is information on variable and coding descriptions within etc/

etc/ description
codes.csv Metadata on the codes used in cldf/data.csv.
raw_codes.csv Metadata on the used in raw/data.csv.
variables.csv Metadata on the variables in cldf/data.csv and raw/data.csv
meta_variables.csv Metadata on the variables held in cldf/societies.csv and raw/societies.csv.

How to cite the Global Jukebox

Research that uses data from the Global Jukebox should cite both the original source(s) of the data and this paper (e.g., research using data from the Cantometrics dataset: “Lomax (1968); Wood et al. (2021)”). The reference list should include the date that data were accessed and URL for the Global Jukebox (http://theglobaljukebox.org), in addition to the full reference for Lomax (1968). Additionally, Cantometrics is versioned and stored on Zenodo. Users can cite the specific dataset and version used by visiting the zenodo repository.

Versions

See the list of releases for available released versions of Cantometrics data.

Acknowledgements

The Global Jukebox would not exist without the extensive recordings collected throughout the world by Alan Lomax; we would like to acknowledge his years of work by and the enormous contributions made by other scholars in the field towards maintaining and updating the data.

Funding

The Global Jukebox has been developed with support from the National Endowment for the Arts, the National Endowment for the Humanities, the Concordia Foundation, the Rock Foundation, and Odyssey Productions.

cantometrics's People

Contributors

hideodaikoku avatar sampassmore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cantometrics's Issues

Languages with multiple Glottocode

The following societies have multiple glottocodes.

Can there been a definitive decision or is it necessary to create new glottocodes? Or can they be less specific?

Chiga: chig1238; Rundi: rund1242
East Yugur: east2337; West Yugur: west2402
Moksha: moks1248; Erzya: erzy1239
Bulgarian: bulg1262; Macedonian: mace1250 [here this also applies to ISO code]
Mal: mall1246; Prai: phai1238

Kate - SUGGEST SPLITTING SOCIETY 27017 based on divergent lat longs and song descriptions

Kate's notes:

<style type="text/css"></style>

27017 Tonga (Malawi)   SONG ID: 9211, 321. Song #9211 seems to be the only song that can be clearly attributed to the Lake Tonga of Malawi (based on lat lon). However, SONG ID 321 was recorded at the Messina Mine (Botswana), so perhaps the singer(s) were ethnic Tonga from Malawi. Society lat long should be: -11.6, 34.29. Leave linked to tong1321 and Ac13 (Tonga)
27017--replace with new ID RENAME: Shangaan-Tsonga (Mozambique) [One of the song descriptions uses this term, which seems to confirm the song (and the others recorded nearby, see IDs at right) should NOT be assigned to Tonga of Malawi.   SONG ID: 282-286: The lat longs place the performers in Mozambique, not Malawi, in an area occupied by the Society Lat Lon: -24, 33. Link to language: tson1249, and to EA society Ab4.

Kate - 17667 Jivaro

Kate's notes:

Jivaro - replace Culture lat long with average song lat long

Unique identifiers for societies

Currently, a number of languages have multiple identifiers

e.g.
19262; 30012

Societies need to have unique identifiers to secure the database structure.
Either, we need to identify why these soceities have been given two identifiers, or create a supplementary identifier that is unique to each group.

Kate - 23497 Pashtun

Kate's notes:

Add "Wardak" as alt name, based on song metadata, and the fact that the Wardak are Pashto speaking.

No zeroes in recent data

I note that there are now no values coded as 0 in the database, whereas before there were a number of zeroes, that were being converted to NA.

Was this changed in the latest data update @jomimc ?
@stellasilbert ?

Can we assume that an empty cell is a 0, and therefore NA, or might it be missing?

Kate - SUGGEST SPLITTING GJB 17282 INTO TWO SOCIETIES, one matched to Seneca, one to Cayuga

Kate's notes:

<style type="text/css"></style>

17282--replace with new ID Suggest name: "Cayuga"     RENAME "Cayuga", with alt names "Haudenosaunee, Iroquois": Link Song IDs 180,181 to this new ID. Song Lat long appear to be incorrect, should be: 43.05, -80.1 (as notes say the song was recorded at the grand river reservation); I suggest linking to Cayuga (cayu1261) based on recording notes. No clear D-PLACE match.
17282 Suggest name: "Seneca"     RENAME "Seneca", with alt names "Haudenosaunee, Iroquois": Leave all song IDs except 181,182 for 17282 matched to Seneca. Match to Ng10 Seneca.

Kate - QUESTION RE: "Uintah Ute" and "Ute Unspecified":

Kate's notes:

<style type="text/css"></style>

28106 Ute Unspecified   Why isn't this matched to GJB 62526 - the society lat long are the same for both? Is it because of differences in the song lat lon? I note that the SONG lat long for 62526 is much further North, and is a good match for Uintah Ute (Nd58); in contrast the Society lat longs for both would place them closer to Southern Ute Nd2 (still the same language - utes1238)
62526 Uintah Ute   MERGE with 28106? Or, adjust society lat long for 28106 so that it is the same as the song lat lon and match it to Nd58; then, rename 28106 "Southern Ute" and match to Nd2?

Mix up with column names

In line 4696 of the Cantometrics data file, there is a line containing the alternative heading names I had placed in this file.
This originally was in line 2, as Anna had requested the new column names be placed under the old ones so she could review the changes.

I suspect what has happened is that when John updated the data file, he wasn't aware of this and this data has been drawn into the changes he made.

I have now deleted this row, and placed it back in the second row of the datafile awaiting Anna's sign off.

@jomimc I just wanted to confirm that this won't have messed up any of your previous changes. Apologies for not mentioning it sooner, my prior understanding was that you were only working on the website side of things.

Kate - 25576 Siletz

Kate's notes:

Song lat lon for Siletz are near San Francisco, close to glottolog language "Bay Miwok" (baym1241) whereas Culture (Society) lat lon are much further North (closer to where Siletz would be expected to be). Is Siletz the correct Culture ID for these songs? If so, why are song lat lon so far south?

Invalid codes

Hi Stella,

I ran the code through the whole data set and found the following invalid codes:

line_11 - song_id 4017 - society_id 10506 is an invalid code
line_25 - song_id 831 - society_id 17584 is an invalid code
line_25 - song_id 832 - society_id 17584 is an invalid code

Let me know if these are actually invalid, I haven't check in detail this time as in #15 - I am just assuming the program is doing the right job now.

Three seems pretty good to me though! I am not sure if you have these already listed somewhere, or whether it is helpful to have this program. It will certainly give piece of mind when makeing changes in the future I think.

I can also create a similar list where codes are empty / missing. I don't know if that is useful. Pat seemed to suggested that all code should be filled in theory. Let me know.

Sam

Determine column importance & renaming

For each datatable, we need to determine which columns need to be publicly available for internal use only, or can be deleted

Through this process we could also indicate:

  • possible renaming of columns.
  • Type and scale of data (for Cantometric variables)

Spaces and missing values

I think there are some whitespace problems here:

cldf/societies.csv:354:19 Glottocode: invalid lexical value for string: latv1249
cldf/societies.csv:709:19 Glottocode: invalid lexical value for string: indo1316

And there appears to be a missing value here:
cldf/societies.csv:631:2 Cu_long: invalid lexical value for decimal:

Kate - SUGGEST SPLITTING GJB 13718 INTO TWO CULTURES (SOCIETIES), one matched to Na36, one to Na39

Kate's notes:

<style type="text/css"></style>

13718--replace with new ID Suggest name: "Eastern Ojibwe"   Specific suggestion: Assign new culture ID and RENAME. Link new culture ID to Song ID 183 (i.e., split this song off from song ID 1241 and 1242). WHY: Based on lat-long of song recording, this culture seems like it should be matched to Eastern Ojibwe-Na39 (or maybe Katikitegon (Na38), but i suggest going with Na39), NOT to Na36 Chhippewa, which is much further west. Culture lat long is currently a much better match for Song 183 and Na39 Eastern Ojibwe
13718 Suggest new name: "Minnesota Ojibwa" (with alt name: Chippewa)   Specific suggestion: Song ID 1241, 1242: Correct - leave matched to Na36 Chippewa (currently called "Minnesota Ojibwa" in D-PLACE, with alt name "Red Lake Chippewa"), but see above. Change Culture lat long to be average of song lat long for Songs 1241 and 1242.

Kate - 21033 Yucatec Maya

Kate's notes:

I suggest changing culture lat long for Yucatec Maya to average of Song lat long (20.6, -88.9)

UPDATE: if someone is going to look into whether multiple Mayan language groups have been clumped under one name, it might be worth doing that first (see the "Societies_ranked_for_review" sheet.)

Impossible value

Hi Anna and Stella,

I have found an impossible value in:

Line_1 - song_id 3862 - society_id 13102

Currently the value is 5264

Is there a way to check if this value has been input correctly?

Sam

Kate - 23959 Pueblo Undefined

Kate's notes:

Note that the society lat long place this society quite far south of known Pueblo communities - it's closer to mesc1238-speaking communities (Mescalero Apache).

Add tests for duplicated columns

There are a number of columns that are duplicated between tables.

Internal discussions determined that the preference is to keep all duplicated columns, rather than removing them.

To ensure that these columns are all the same, we should add tests that check this and avoid the propogation of human error.

Unmatched Keys

When running make test

There are a number of key errors.

These seem to be caused by other errors on the same line of the dataset.

E.g. cldf/data.csv:31 Key 21704 not found in table societies.csv

21704 is on line 360 of the societies file.

Above this error we have
cldf/societies.csv:360:27 Glottocode: invalid lexical value for string: Moksha: moks1248; Erzya: erzy1239

Hopefully resolving the Glottocode (and other) errors will resolve the key errors. This should largely be fixed by Kate's new data.

Kate - 11859 Karo

Kate's notes:

Alt names: I don't think this should be listed as having alt name "Toba" or "Batak Toba" -- I think this is a different Batak group (which speaks bata1289, instead of bata1293). It could have alt name "Batak Karo"

Kate - 28843 Yagua

Kate's notes:

Yagua - replace Culture lat long with average song lat long

Kate - 22705, Waunana

Kate's notes:

Suggest renaming to "Wounaan", which was the preferred ethnonym when I was working in Panama (not that long ago), and moving "Waunana" to alternative names.

Kate - SOCIETIES WITH AN "UNSPECIFIED" FOCUS

Kate's notes:
A handful of cultures have a name that starts with "XXX Unspecified" (e.g., "Japan Unspecified", "Brazil Unspecified") - is it worth zooming in on these to see if a language and sub-group can be assigned based on, say, geography, or perhaps supplementary information in online liner notes? If geography is used, and society is renamed, I think it's important to make a note to document this change (e.g., in column that contains my notes on how language/d-place matches were assigned). The note could be something standard like "Previously this society was named "Unspecified XXXX". In July 2021 it was renamed YYYY and assigned glottolog language ZZZZ based on the lat lon coordinates associated with song recordings."

Note that, when assigning a language code from Glottolog, I have tried to make sure the code was at the level of language or dialect, rather than family, as I think it makes working with trees easier. However, this is something we could discuss further, because of course it doesn't make sense to make data "higher resolution" than it is (unless the process is clearly documented, e.g.,. with a standardized note, so it can be reverse-engineered).

Kate - QUESTION RE: "Shipibo" and "Shipibo Conibo"

<style type="text/css"></style>

14026   Why are "Shipibo" (GJB 25422) and "Shipibo-Conibo" (14026) different cultures? Is it because of the specific notes associated with recordings, which assigned different culture names to them (Shipibo in one case, Shipibo-Conibo in the other?). If the distinction is intentional, the maintenance of this level of detail seems justified, but note that eHRAF and D-PLACE currently group both Shipibo and Conibo under one id. For now, GJB Shipibo and GJB Shipibo-Conibo are both matched to EA Se9 / eHRAF SE26. Wikipedia says: "The Shipibo-Conibo are an indigenous people along the Ucayali River in the Amazon rainforest in Peru. Formerly two groups, the Shipibo and the Conibo, they eventually became one distinct tribe through intermarriage and communal ritual and are currently known as the Shipibo-Conibo people." Note however that the Peruvian census appears to record Shipibo and Conibo as distinct groups as recently as 1974 (from eHRAF Culture Summary - Demography for Shipibo-Conibo: "A census in 1974 reported the existence of 9,000 Shipibo and another 6,000 Conibo.") And, GJB songs were all recorded in 1953 (Harry Tschopik, Jr.). So, perhaps leaving "as is" (i.e., as two cultures) makes sense (and is most truthful to the original recording info).
25422    

remove superflous id columnds

remove the superflous id columns from the culture metadata file during download.
All_cid column is sufficient for Cantometrics data

Kate - 17661 Jinghpaw

Kate's notes:

Should have location in Myanmar; instead, song lat lon are in China. Perhaps this is recording location? Need to consider whether song lat lon should be moved closer to language lat lon.

Kate - SUGGEST SPLITTING GJB 29107 INTO THREE SOCIETIES

Kate's notes:

<style type="text/css"></style>

SUGGEST SPLITTING GJB 29107 INTO THREE SOCIETIES, one named "Egba Yoruba" and matched to Af32 (dialect egba1238 of yoru1245), one named "Oyo Yoruba" and matched to Af6 (dialect oyoo1238 of yoru1245), and one named "Ekiti Yoruba" and matched to Af33 (dialect ekit1244 of yoru1245)    
29107   REASON: there are three Yoruba societies in the Ethnographic Atlas, each of which aligns well with the lat lon coordinates of a subset of the songs currently assigned to the general culture "Yoruba" (29107). In some cases, notes in the song metadata also mention the Yoruba subgroup name specifically in one of the descriptive fields (e.g., Ekiti, Egba).
29107   Rename: "Oyo Yoruba" and matched to Af6 (dialect oyoo1238 of yoru1245). Assign song IDs: 3430, 3431, 3433, 3434, 3439. Assign lat lon for these song IDs (7.19, 3.72)
29107--needs new society ID   Rename: "Egba Yoruba" and matched to Af32 (dialect egba1238 of yoru1245). Assign song IDs: 3437, 3438, 3432. For society lat lon, assign average lat lon for these song IDs (6.71, 3.46)
29107--needs new society ID   Rename: "Ekiti Yoruba" and matched to Af33 (dialect ekit1244 of yoru1245). Assign song IDs: 3436, 3435. Assign lat lon for these song IDs (7.61, 5.23)

Kate - SUGGEST SPLITTING GJB MONGOLS INTO TWO GROUPS

Kate's notes:

<style type="text/css"></style>

SUGGEST SPLITTING GJB MONGOLS INTO TWO GROUPS, based on very different lat longs of recording sites, and proximity of each to different mongolian languages      
21647 Mongols   SONG ID: 9171, 9318, 9346, 9353, 9367; match to language halh1238 and EA society Eb3
21647--replace with new ID Rename "Inner Mongolia"   SONG ID: 20480, 20481, 20482; match to language peri1253, and to eHRAF society: AH06

Establish column constraints

In order to utilise the CLDF format, we need to determine the column constraints.

The easiest two things that we can determine is:
Whether a column is allowed to have empty cells or not
The type of data a column can contain (e.g. numbers or text)

We can additionally add some more specific constraints, such as only containing certain numbers, or certain pieces of text (e.g. True or False, or specific categories).

@stellasilbert: If I create a excel spreasheet with all the columns in CLDF dataset, would you be able to go through and review my assumptions for how the data should be constrained? I can make a first pass, because some set are obvious, but it would be helpful for me to have someone more famliiar with the data identify where the constraints could be stronger or are incorrect.

Kate - CONSIDER MERGING 22067 Komi and 50272 Komi-Izhemtsi

Kate's notes:

<style type="text/css"></style>

22067 - recordings are by different people and have slightly different lat longs, but both locations are listed as "Komi Republic", and should probably be assigned language komi1268.
50272  

Kate - SOCIETIES WHERE THE RECORDING WAS MADE OUTSIDE THE SOCIETY'S HOMELAND

Kate's notes:
This is something that would be good to have a clearly stated policy on (and maybe it already exists!). I know Stella and I discussed it a couple of time.
There seem to be two types of cases:
A. Diaspora cultures: Cases where this is obvious from the society name (e.g., Scandinavian Americans, German Americans) -- here, the recording was made somewhere in the US, but the music etc. is presumably meant to represent the music of the homeland.  
  e.g., Song ID 9199 - German Americans (30136) - in the song metadata this society has a clearly distinguished local lat/lon vs. homeland lat/lon; in the culture metadata it has only a society lat/lon (which places it in the US).
B. Opportunistic/convenience recording at a location different from home location: Cases where the ethnomusicologist recorded one or more performers, who perhaps still lives in their 'home' culture at a different location.
  e.g., Song ID 2994 - Pashtun (23497) - the song metadata notes: "Khyber Pakhtunkhwa Province, Pakistan [Recorded at Alan Lomax's apartment, New York, New York]"; only the homeland lat/lon is given in the song/culture metadata sheets
  e.g., [I can't find an example right now...] in some cases recordings were done in a regional hub (e.g., mid-sized town), and the lat/lon given for the song seem to be for the recording location as opposed to the homeland
In the short-term, the simplest solution might be to add a "homeland" lat lon to the culture metadata (not just the song metadata), and to fill that in when it differs from the recording lat lon AND is important to know (so, maybe not in the Pashtun example, but yes in the German American example)?

Incorrect values?

Hi @stellasilbert

Could you double check some values for me and whether they are valid?

Song ID 3981 - Line 14 - Value 8376
Song ID 831 - Line 25 - Value 1028
Song ID 832 - Line 25 - Value 1028

These come up as errors in the tests, but maybe the tests are overlooking something.

Song 9950 Line 1 coded as 1

Hi Stella,

@dorshilton has pointed out that song 9950 has line 1 coded as 1

@pesavage says songs in Cantometrics should never be coded as line_1 = 1

Raw data shows this datapoint is coded as 34 which translates to 1 & 5
or No singers & A single predominant voice—a leader— stands out above the general effect of social unison.

Is it possible to check whether the original coding is correct? And if we need to correct the value?

For reference the song is called "Olekwo'l" and is performed by the Yurok.

Kate - 17236

Kate's notes:
Move culture lat long to location of avg Song lat long.

ignore data columns

Ignore the columns

ensemble_value_id;
ensemble_value_label;
instrument_value_id;
Instrument_value_label

when downloading the dataset.

It is not clear where they come from or how accurate they are and are conflicting with the numeric code testing of the other variables.

Kate - CONFUSION AROUND SONG ASSIGNMENT TO GJB CULTURES 17232, 17234

<style type="text/css"></style>

17232, 17234     REASSIGN ONE SONG (Song ID 9840) TO THE GJB SOCIETY 17234 "Netsilik", and rename that society "Qikiqtaaluk Inuit" with alternate names "Inuit of the Qikiqtani (Qikiqtaaluk) region, Qikiqtani Inuit, Qikiqtaalungmiut, Kittoktangmiut, Netsilik". REASON: 9840 has exact same lat long, and singer, as 9831 and 9841 (belonging to culture 17234, currently named "Netsilik" (but should be renamed Qikiqtaaluk Inuit)).
17232     RENAME: Nunatsiarmiut (not, Nunatsiaqmiut), keep all songs except 9840. This should have lat long of Cape Dorset, Baffin Islanders (see lat long for all songs but 9840, assign this as the Culture lat long)
17234     ASSIGN song ID 9840 from 17232; rename as above.
17234     Adjust society lat long so that it falls in Sanikiluaq, Belcher Island, where recordings were made (use song lat long for 9840)
17234     Language match: From Wikipedia: "The South Baffin dialect (Qikiqtaaluk nigiani, ᕿᑭᖅᑖᓗᒃ ᓂᒋᐊᓂ) is spoken across the southern part of Baffin Island, including the territorial capital Iqaluit." This is also the region to which the Belcher Island belong (and the community of Sanikiluaq, where the recordings with song ID 9840, 9841, and 9831 were made). The best match is probably sout3269 (South Baffin Inuktitut), which is a dialect of Baffin Inuktitut (baff1241), itself a dialect of Eastern Canadian Inuktitut (east2534). However, for now, leave with language-level match "east2534"

Kate - POSSIBLE CONFUSION OF SONGS ASSIGNED TO GJB cultures 10286, 27688 (the latter currently does not have cantometrics songs assigned to it)

Kate's notes:
SUMMARY OF (POSSIBLE) PROBLEM: Of the songs currently attributed to 10286, four songs would seem to be a better match for "Yup'ik", which I actually think should be assigned C_id 27688: 2939, 2940, 2941, 2942; these four songs have average lat lon 65.25, -164.45); The remaining songs currently attributed to 10286 would seem to be a better match for the northern Alaskan inuit group "Tareumiut" and dialect nort2943; this group could keep C_id 10286 but should be renamed "Tareumiut"

10286, 27688 - Notes: From Wikipedia: Tununak is one of four villages on Nelson Island; Nelson island is one of two main islands in Western Alaska (with Nunivak Island) occupied by Central Yupik speakers. Note that none of the recordings appear to have been made on Nelson Island.

27688 - Tununak Qaluyaarmiut--Suggest renaming "Yup'ik", and assigning specific cantometrics songs with matching lat lon (see specific suggestions at right) - Specific suggestion: RENAME (note spelling): Yup'ik; match to B369 Norton Sound Inuit; Cantometrics SONG IDs: 2939, 2940, 2941, 2942; society lat long 65.25, -164.45; Adjust alternative names. NOTE: There are three other Yup'ik speaking societies in D-PLACE: Na6/B299 "Nunivak" (too far south for these recordings); B296 Kuskowagmut (still fairly far south for the recordings). Despite the fact that these three societies are too far south to be good matches for the recording locations, more research might indicate they could be matched based on cultural similarity.

10286 - Yu'pik--Suggest renaming to "Tareumiut" - Specific suggestion: RENAME: Tareumiut; match to Na2 Tareumiut; dialect nort2943; Cantometrics SONG IDs:1248, 2937, 2938, 2943, 2944, 2945, 2946; Society lat lon: 71.38;-156.48; Adjust alternative names

Missing codes allowed to be missing

Currently there are a number of missing codes in the database.

I am not sure why they are missing, but my understanding is tht eventually they will be filled in with appropriate codes.

For now, CLDF will be set up so that codes are allowed to be missing, but once this data has been filled in, we will change it so that they are not allowed to be missing.

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.