Giter VIP home page Giter VIP logo

member_photos's Introduction

voteview member_photos repo

Build Status

This repository contains photos of U.S. congressional representatives through the ages, as well as code necessary to regenerate this data from scratch. We currently have approximately 10,175 of 12,475 representatives accounted for including every member serving since 1945.

This project is a part of voteview.com, a website dedicated to providing information about historical U.S. legislators, including NOMINATE ideological scores, historical roll-call votes, and biographical information. voteview.com is a project of University of California Los Angeles' Department of Political Science. The corresponding maintainer for this repository is Aaron Rudkin.

How to Use

Using the images

members.csv contains a list of all members we have photos for at the time the file was generated. This will allow you to map familiar names to the ICPSR IDs that index our photo filenames. The file is sorted by most recent congress served, then alphabetically. The photos presented are scaled to 600px in height, 4x5 aspect ratio. Files smaller than 600px in height are not upscaled, and images very near 4x5 aspect ratio are not cropped.

Example results:

Name ICPSR State Party Congress Chamber Born Died Image Source Provenance
WELLSTONE, Paul David 049101 Minnesota Democratic Party 107 Senate 1944 2002 images/bio_guide/049101.jpg bio_guide
CLINTON, William Jefferson (Bill) 099909 President Democratic Party 106 President 1946 images/wiki/099909.jpg wiki
GUILL, Ben Hugh 003874 Texas Republican Party 81 House 1909 1994 images/manual/003874.jpg manual Representing Texas

Installing prerequisites to add images

In order to add images, you will need to install several dependencies. The scrapers, which seek and download new images, require Python and several libraries. The image processing side, which resizes and crops images, requires ImageMagick, smartcrop-cli, JPEGTran, and jpegoptim.

To install external dependencies, users running environments with support for apt or brew can run dependencies.sh.

To install Python dependencies, use poetry install via Poetry or pip install -r requirements.txt.

Quick tutorial: adding new images

  1. Run a scraper or manually add a photo to the appropriate raw folder (likely images/raw/manual/).
  2. If a manual image has been added, add a provenance statement to config/provenance.json
  3. Run constrain_images.py to generate processed versions of the images from raw images.
  4. Run config/compile_members.py to update the database with the new images. This ensures that the members.csv file is up to date and that verify.py's tests work.
  5. Run verify.py to ensure the data integrity.
  6. If added images upgrade earlier images (for example, bio_guide images replacing wiki images), run verify.py --flush to remove the no longer used files.
  7. Open a pull request to submit your images to us.

Check for Missing

check_missing.py allows users to check for representatives whose photos are missing and generates a table based on criteria provided.

Arguments:

  • --type flat: Use a flatfile database instead of our default MongoDB instance. Most end users should use this argument.
  • --min N: Provide a number N which represents the minimum Congress to scan for missing photos (default 81 [1947-1949])
  • --max N: Provide a number N which represents the maximum Congress to scan for missing photos. Default is left black.
  • --chamber chamber: Province a chamber chamber describing a specific chamber of congress. Valid options are House or Senate. Default is left blank.
  • --state state: Province a two-character state postal abbreviation to limit searches to one state. Example: CO for Colorado.
  • --sort sort: Provide a string sort which describes which field to sort on. Valid options are bioname, icpsr, state_abbrev, party_code, congress. Default is congress. When grouping, you can also sort by Amount.
  • --year: If specified, table will include "year" instead of "congress" and the --min and --max arguments will expect a year.
  • --raw: If specified, the script will check for images where we have processed copies, but no raw copies. Clones of the repository that have not yet re-scraped the raw files from bio_guide and wiki should see all such images; clones of the repository that have scraped images should report no missing raw files.
  • --group [state_abbrev | congress]: If specified, instead of printing a table of individual missing images, a count grouped by the group parameter will be printed. Useful to see which states or congresses are complete.

Example usage:

python check_missing.py --type flat --min 50 --state CT --chamber House --sort bioname

Scrape Congressional Bioguide

bio_guide.py allows users to scrape the Congressional Bioguide for photos.

Arguments:

  • --type flat: Use a flatfile database instead of our default MongoDB instance. Most end users should use this argument.
  • --min N: Provide a number N which represents the minimum Congress to scan for missing photos (default 20)

Example usage:

python bio_guide.py --type flat --min 50

Scrape Wikipedia

wiki.py allows users to scrape Wikipedia for photos.

Arguments:

  • --type flat: Use a flatfile database instead of our default MongoDB instance. Most end users should use this argument.
  • --min N: Provide a number N which represents the minimum Congress to scan for missing photos (default 20)
  • --icpsr ICPSR --url "http://...": Provide an ICPSR and a URL to manually scrape a Wikipedia article for that ICPSR. Useful when the default name or search is inadequate. The resulting page will still be checked against the scoring algorithm to ensure the page is appropriate for the member.
  • --override 1: By default, we cache data from Wikipedia articles so that we don't check for every congressperson every time we run. Use this argument to override the cached data and re-scrape every users who would otherwise fit the parameters. Useful during a cutover of congress.
  • --blacklist ICPSR: Mutually exclusive to all other arguments; tells the scraper to not scrape this ICPSR from Wikipedia in the future. Useful when the correct page has a photo that is incorrectly scraped (i.e. house or memorial photo or military insignia instead of photo of person).

Example usage:

python wiki.py --type flat --min 50

manual_wiki_override.sh will scrape photos for all our currently known cases where the default scraper scrapes an incorrect photo or misses the search query.

Manual Photos

Some photos were collected manually from other sources. In addition to distributing the already-resized versions of these, raw versions of these photos (best available quality/resolution) are stored in images/raw/manual/. Information about where each of these images came from is stored in config/provenance.json. These images are automatically downsampled and cropped when running the processing steps below.

Facial Recognition

We use facial recognition for two purposes. First, for intelligent cropping of the images. This use requires OpenCV and is described in the face_detect_crop() method of constrain_images.py. This use does not require any configuration or external API access.

Our second use is for gaze detection. In order to ensure a more uniform set of images, we want all images to face the same direction. We use Azure for a facial recognition API. If API keys are contained in config/facial_recognition.json, then constrain_images.py (which resizes and re-aspects input images) will additionally detect which direction the image is facing and if necessary flip it so that it is facing stage left (our right). Code describing the lookup is in constrain_images.py under needs_horizontal_flip(). To set up this API, copy config/facial_recognition_blank.json to config/facial_recognition.json and fill out the two fields with valid credentials.

Process Photos

  • constain_images.py will resize, re-aspect, flip, and optimize images. Images will move from images/raw/<source>/<file>.<ext> to images/<source>/<file>.jpg.
  • scrape_all.sh will scrape Bioguide, Wikipedia, perform the manual Wikipedia overrides, and then constrain the images in order. This should generate the repository essentially as-is from scratch.

Configuration

  • config/config.json: User-Agent for scraper and some default URLs, as well as database connection info if you are connecting to a MongoDB database to search members.
  • config/facial_recognition_blank.json: A blank template for inserting Azure Face API key/endpoint, see section Facial Recognition for details
  • config/bio_guide_results.json: Blacklist for Congressional bioguide.
  • config/wiki_results.json: Blacklist for Wikipedia and greylist (articles recently scraped, confirmed to contain nothing, skip for a while)
  • config/parties.json: Party metadata, used for both checking Wikipedia articles and outputting party names.
  • config/states.json: State metadata, used for both checking Wikipedia articles and outputting party names.
  • config/database-raw.json: Large raw database dump, used for flat-file searches. Generated by config/dump_db_to_flatfile.py
  • config/haarcascade_frontalface_default.xml: [https://github.com/opencv/opencv/tree/master/data/haarcascades](Pre-trained OpenCV) facial detection classifier.

Behind the Scenes:

  • config/dump_db_to_flatfile.py: Dumps current Mongo database to flatfile (use this first, to update the local flat file). Requires our local MongoDB instance.
  • config/compile_members.py: Dumps the current images to a members.csv file. Can take --type flat to dump from flat file. (Use this after updates to correctly log the information in the menbers file)
  • verify.py: Runs basic sanity tests to ensure data is running correctly. Used in our travis-CI build.
  • upload_raw.sh: Uploads the current folder's raw images to our S3 store.
  • download_raw.sh: Downloads our S3 store's set of raw images to your local copy of this repository.
  • constrain_images.py: Powers some of the image resizing behind the scenes.

Contributing

We welcome contributions of photos or code improvements. For code improvements, please open a pull request.

For sources for photos, please see our Issues page. If you are contributing a photo to an existing project, just reply with a comment including the photo (highest resolution possible, include information about where the photo is from and any rights issues). If no project seems applicable, or if you are letting us know about a new source of many photos, please open a new Issue. We believed that the use of low resolution images of historical public figures, freely obtained largely from public domain or government sources, constitutes fair use. Please ensure that any images you suggest are cleared for use by voteview.com and users of this repository.

member_photos's People

Contributors

aaronrudkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mgrotz

member_photos's Issues

117th Congress

After a brief scan of the 117th we have 4 missing images

Name ICPSR Party Congress State Bio
MILLER, Mary E. 22138 Republican 117 Illinois b. 1959 d. None
LATURNER, Jake 22130 Republican 117 Kansas b. 1988 d. None
KAHELE, Kaialii 22128 Democratic 117 Hawaii b. 1974 d. None
FITZGERALD, Scott 22115 Republican 117 Wisconsin b. 1963 d. None

Kai Kahele's issue is that there's unicode in his name and the Wikipedia search just completely misses. Scott Fitzgerald seems to confuse him with the author due to a weird disambiguation thing on the Wikipedia side. These should all be easy to fix manually.

U.S. Senators missing

The following U.S. Senators are missing from our collection:

Name ICPSR Party Congress State Status
WESTCOTT, James Diament, Jr. 9966 Democratic 30 Florida
CHALMERS, Joseph Williams 1618 Democratic 29 Mississippi
MERRICK, William Duhurst 6427 Whig 28 Maryland
CUTHBERT, Alfred 2284 Democratic 27 Georgia
SMITH, Perry 8675 Democratic 27 Connecticut
SPENCE, John Selby 8779 Whig 26 Maryland
BETTS, Thaddeus 682 Whig 26 Connecticut
BUCKNER, Alexander 1210 Jackson 23 Missouri
CHASE, Dudley 1665 Anti-Jackson 21 Vermont
ADAMS, Robert Huntington 37 Jackson 21 Mississippi
COBB, Thomas Willis 1873 Jackson 20 Georgia
KELLY, William 5155 Jackson Rep. 18 Alabama
WILSON, James Jefferson 10235 Dem-Rep 16 New Jersey
HORSEY, Outerbridge 4586 Federalist 16 Delaware
ASHMUN, Eli Porter 271 Federalist 15 Massachusetts
FROMENTIN, Eligius 3377 Dem-Rep 15 Louisiana
CUTTS, Charles 2292 Dem-Rep 13 New Hampshire
ROBINSON, Jonathan 7985 Dem-Rep 13 Vermont
WHARTON, Jesse 9979 Dem-Rep 13 Tennessee
KERR, Joseph 5210 Dem-Rep 13 Ohio
GERMAN, Obadiah 3539 Dem-Rep 13 New York
WALKER, George 9741 Dem-Rep 13 Kentucky
BULLOCH, William Bellinger 1230 Dem-Rep 13 Georgia
FRANKLIN, Jesse 3342 Dem-Rep 12 North Carolina
MAGRUDER, Allan Bowie 5916 Dem-Rep 12 Louisiana
SMITH, Daniel 8608 Dem-Rep 11 Tennessee
GRISWOLD, Stanley 3847 Dem-Rep 11 Ohio
WHITESIDE, Jenkin 10061 Dem-Rep 11 Tennessee
PARKER, Nahum 7200 Dem-Rep 11 New Hampshire
SMITH, John 8645 Dem-Rep 10 Ohio
HOWLAND, Benjamin 4656 Dem-Rep 10 Rhode Island
MACLAY, Samuel 5890 Dem-Rep 10 Pennsylvania
KITCHELL, Aaron 5303 Dem-Rep 10 New Jersey
SMITH, Israel 8639 Dem-Rep 9 Vermont
POTTER, Samuel John 7559 Dem-Rep 8 Rhode Island
BLOODWORTH, Timothy 800 Dem-Rep 6 North Carolina
LLOYD, James 5725 Federalist 6 Maryland
GUNN, James 3877 Federalist 6 Georgia
HENRY, John 4333 Federalist 5 Maryland
HUNTER, John 4753 Dem-Rep 5 South Carolina
TATTNALL, Josiah 9189 Dem-Rep 5 Georgia
STANTON, Joseph, Jr. 8845 Anti-Admin. 2 Rhode Island
ELMER, Jonathan 2943 Pro-Admin. 1 New Jersey

This was generated from
python check_missing --chamber Senate --min 1

Same-name duplicate photos in error

The following family members or people with same names are scraping incorrectly and thus have duplicate images for some reason:

1137 / 1138
2867 / 2868
4338 / 4339
4390 / 4391
6225 / 6226
6595 / 6596
7553 / 7554
10228, 10229, 10230, 10231

Member Photos

This issue tracks our progress locating photos of members of congress.

Currently, as of Sep 15, 2018, we have 9947/12303 photos. This count comes from the results of a check_missing.py run.

Major sources:

Overall progress:

  • Done back to 1970
  • Done back to 1960
  • Done back to 1950
  • Done back to 1940
  • Hit 10,000 ICPSR-photos
  • All US Senators who have extant depictions

Copied from original issue: voteview/WebVoteView#20

Members Missing from 1920-1930

Name ICPSR Party Congress State Found?
PRITCHARD, George Moore 7630 Republican 71 North Carolina
KENDALL, Elva Roscoe 5165 Republican 71 Kentucky
JONAS, Charles Andrew 5018 Republican 71 North Carolina
JAMES, Hinton 4884 Democratic 71 North Carolina
DORSEY, John Lloyd, Jr. 2677 Democratic 71 Kentucky
CLARK, Linwood Leon 1778 Republican 71 Maryland
BLACKBURN, Robert E. Lee 752 Republican 71 Kentucky
BAIRD, Joseph Edward 356 Republican 71 Ohio
WARE, Orie Solomon 9828 Democratic 70 Kentucky
VINCENT, Earl W. 9674 Republican 70 Iowa
TATGENHORST, Charles, Jr. 9186 Republican 70 Ohio
MOORE, Paul John 6646 Democratic 70 New Jersey
KENT, Everett 5193 Democratic 70 Pennsylvania
SAWYER, Lewis Ernest 8238 Democratic 68 Arkansas
MORRIS, Joseph Watkins 6708 Democratic 68 Kentucky
LOGAN, William Turner 5749 Democratic 68 South Carolina
HUMPHREYS, William Yerger 4738 Democratic 68 Mississippi
EVANS, Hiram Kinsman 3009 Republican 68 Iowa
BROWNE, Charles 1142 Democratic 68 New Jersey
FRANKHAUSER, William Horace 3339 Republican 67 Michigan

Known Issues: "Jr." on Wikipedia

In general, we do not do a good job of handling disambiguation between two representatives with the same name. We attempt to verify states and birthdates. Unfortunately, many father-son pairs served the same state and disambiguation statements or links to the parent/child link within the Wikipedia article often cause false positives.

Members Missing from 1930-1940

Name ICPSR Party Congress State Found?
SISSON, Frederick James 8550 Democratic 74 New York
WALDRON, Alfred Marpole 9730 Republican 73 Pennsylvania
DAVIS, Robert Lee 2406 Republican 72 Pennsylvania

This is about the earliest that I think it makes sense to have an open issue for -- anything before here and we're starting to get into spotty newspaper coverage.

Edit: Found since opening issue:

Name ICPSR Party Congress State Found?
TRANSUE, Andrew Jackson 9457 Democratic 75 Michigan
STACK, Michael Joseph 8821 Democratic 75 Pennsylvania
O'CONNELL, John Matthew 7013 Democratic 75 Rhode Island
MITCHELL, John Ridley 6570 Democratic 75 Tennessee
HANCOCK, Franklin Wills, Jr. 4025 Democratic 75 North Carolina
ECKERT, Charles Richard 2835 Democratic 75 Pennsylvania
DEEN, Braswell Drue 2459 Democratic 75 Georgia
ALESHIRE, Arthur William 76 Democratic 75 Ohio
RICHARDSON, William Emanuel 7884 Democratic 74 Pennsylvania
DOUTRICH, Isaac Hoffer 2695 Republican 74 Pennsylvania
BROOKS, Joshua Twing 1079 Democratic 74 Pennsylvania
UTTERBACK, John Gregg 9581 Democratic 73 Maine
GOSS, Edward Wheeler 3716 Republican 73 Connecticut
FOULKES, George Ernest 3319 Democratic 73 Michigan
DURGAN, George Richard 2790 Democratic 73 Indiana
CADY, Claude Ernest 1388 Democratic 73 Michigan
TIERNEY, William Laurence 9379 Democratic 72 Connecticut
LEECH, James Russell 5573 Republican 72 Pennsylvania
GILLEN, Courtland Craig 3591 Democratic 72 Indiana

Members missing from 1960-1970: George O. Chambers

Chambers narrowly won an Indiana election in 1960, was seated just long enough to vote for Speaker, and got removed pending the resolution of the recount/litigation connected to the election -- which did not resolve in his favour. He's not listed in the congressional bioguide at all. The photo we had for him was incorrect and is removed, so he's the only post-1945 congressman we're missing a photo for right now. Should check newspaper articles for an obit.

Members missing from territories

We've added votes for the DC, PR, GU, AQ (note: follow up with Jeff about discrepancy between AQ and AS), and VI delegates/representatives from the 103rd forward, none of whom have photos.

In addition, the config/states.json metadata does not support these abbreviations, and so we need to add appropriate mappings for them as well.

Name ICPSR Party Congress State Found?
SAN NICOLAS, Michael 21997 Democratic 116 GU
SABLAN, Gregorio Kilili Camacho 21996 Democratic 116 MP
RADEWAGEN, Aumua Amata Coleman 21995 Republican 116 AQ
PLASKETT, Stacey E. 21994 Democratic 116 VI
NORTON, Eleanor Holmes 21993 Democratic 116 District of Columbia
GONZÁLEZ-CÓLON, Jenniffer 21992 Republican 116 PR
SABLAN, Gregorio Kilili Camacho 91996 Independent 111 MP
PIERLUISI, Pedro 90964 Democratic 111 PR
FALEOMAVAEGA, Eni F. H. 29401 Democratic 111 AQ
PIERLUISI, Pedro 20964 Independent 111 PR
CHRISTENSEN, Donna Marie 20765 Democratic 111 VI
BORDALLO, Madeleine 20764 Democratic 111 GU
FORTUÑO, Luis G. 20766 Republican 110 PR
UNDERWOOD, Robert A. 29403 Democratic 103 GU
ROMERO-BARCELÓ, Carlos A. 29402 Democratic 103 PR
DE LUGO, Ron 29400 Democratic 103 VI

Provenance of Manually Downloaded Images

Images that currently have no provenance statement:

Name ICPSR State Party Congress Chamber Born Died
HUTCHINSON, John Guiher 014680 West Virginia Democratic Party 96 House 1935

Unfortunately, as I worked on getting images in 2016-2017, I did not record the provenance of every manually downloaded image. Ultimately when this repo becomes a public repository, all manually downloaded images should have information about provenance.

Members Missing from 1950-1960

The following members are missing from 1950-1960 (81st Congress onward):

Name ICPSR Party Congress State Found
BURTON, Clarence Godber 1316 Democratic 82 Virginia
WALSH, John Richard 9784 Democratic 81 Indiana
WAGNER, Earl Thomas 9711 Democratic 81 Ohio
KRUSE, Edward H. 5371 Democratic 81 Indiana
JACOBS, Andrew 4869 Democratic 81 Indiana
DAVENPORT, Harry James 2353 Democratic 81 Pennsylvania
BOLTON, William P. 839 Democratic 81 Maryland

The table was generated with:
python check_missing.py --min 81

Members Missing from 1940-1950

Name ICPSR Party Congress State Found?
LA FOLLETTE, Charles Marion 5400 Republican 79 Indiana
PRACHT, Charles Frederick 7584 Republican 78 Pennsylvania
MILLER, Thomas Byron 6510 Republican 78 Pennsylvania
McWILLIAMS, John Dacher 6390 Republican 78 Connecticut
McARDLE, Joseph A. 6123 Democratic 77 Pennsylvania
CLAYPOOL, Harold Kile 1816 Democratic 77 Ohio

Table generated from:
python check_missing.py --min 77

Face crop images

A few years ago we (I?) wrote some code to automatically detect images whose aspect ratios were substantially too wide or long (in general we want ~ 4:5 aspect ratio for our images) and crop them to that aspect ratio--and rather than center cropping, the script cropped intelligently around faces in the image. I cannot locate this code nor do I remember how we did it, but this functionality should be added and appended to constrain_images.

This is necessary to be able to build the deploy stage of this repo, which is in turn necessary to move the photos out of the main voteview.com repo.

Errors: House Members 1st - 65th Congresses

I just went through every photo from the 1st through 65th Congresses and found the following errors:

ICPSR Reason why incorrect Fixed?
000066 Clearly contemporary
000184 Grave
000186 Grave
000268 Printed text
000871 Street sign
001211 House
001226 Cartoon, unclear
001361 Rank insignia
001463 Grave, may be ok has a bust
001539 Grave
001948 Statue
002136 Rank
002218 House
002360 Printed text
002424 Rank insignia
002681 Book binding
002868 Wrong John Edwards (philanderer, not psychic)
002893 Grave
003066 Rank
003170 Stained glass
003373 Printed text
003570 Weird crop/aspect ratio
003726 His wife?
004068 Very bad aspect ratio
004169 House
004193 House
004390 Grave
004440 Rank insignia
005141 Grave
005286 Photo of wife, rescan wiki
005540 Outdoor scene of grass?
005773 Art of three girls in a school
005852 Grave plaque?
006001 Rank insignia
006146 Rank insignia
006638 Grave
006908 Half of a scanned centerfold of maybe a family?
008679 Samuel H Smith, wrong guy
009474 Bridge
009972 Art, not of him?
010171 House
010206 Grave
010354 House
ICPSR Reason why incorrect Fixed?
002914 Statue
003692 Four panels, needs new crop
003846 Cartoon, may be OK
004225 Weird crop
004597 Four panels, needs new crop
004652 Bad crop, picture OK
005909 Weird aspect ratio
006940 Grave
007449 Bad crop, image seems fine
008232 Bad crop, image seems fine
008726 Weird crop
008797 Photocopy of a bank note?
008885 OK but could be better
009273 Bad crop, image seems fine
009590 Printed text
009591 Printed text

Provide alternate, cropped photo for small displays

From @adamboche on May 27, 2017 23:54

Copied from original issue: voteview/WebVoteView#290

As per Alicia Parlapiano at the NYT, some images sometimes look rough when displayed small because the congressperson's face is too small relative to the overall picture canvas. We should, thus, provide alternate thumbnail versions in these cases which are cropped.

To do this, we would have to:

  1. Use face detection to figure out what percentage of the frame the face takes up
  2. If it is below a threshold, produce a cropped version
  3. Identify images that should be thrown out because they give us nothing to work with.
  4. Potentially offer a second set of photos altogether designed for small icon sized display.

Old bioguide now showing inaccurate images in at least one case

Bill Hagerty, U.S. Senator:

https://bioguide.congress.gov/search/bio/H000601
https://bioguideretro.congress.gov/Home/MemberDetails?memIndex=H000601

The current bio guide photo is correct. The retro one is not. Since this seems like an improbable bug, I tried to investigate what happened. It looks like there was a screw-up on congress's side somewhere, because Hagerty's photo is actually Joseph Lister Hill, Senator:

https://bioguideretro.congress.gov/Home/MemberDetails?memIndex=H000598

The issue is that Bill Hagerty definitely should not be H000601; Hagerty is substantially alphabetically earlier than Hill. You can see that H000598, 599, 600, and 602 are all Hills and that the initial bioguide IDs were assigned in alphabetical order. It looks like 601 was never allocated to begin with. If you look at the classic ICPSR numbers you see the following mapping:

4414: H000596
4415: H000597
4416: H000599
4417: H000600
4418 (this is Joseph Lister Hill): H000598 [out of order]
4419: H000602 [skipped H000601]
4420: H000603

So then decades later, Hagerty is elected an allocated H000601 and for some reason they show the picture for H000598?

Anyway, notwithstanding why this happened, I'll just switch the bioguide scrape to the new bioguide and we'll see how it goes.

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.