Git Product home page Git Product logo

face.camp's People

Contributors

bighitbiker3 avatar dependabot[bot] avatar dstaley avatar greenkeeper[bot] avatar lukekarrys avatar lynnandtonic avatar one000mph avatar sockdrawermoney avatar wraithgar avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mrredal

face.camp's Issues

Action required: Greenkeeper could not be activated ๐Ÿšจ

๐Ÿšจ You need to enable Continuous Integration on Greenkeeper branches of this repository. ๐Ÿšจ

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didnโ€™t receive a CI status on the greenkeeper/initial branch, itโ€™s possible that you donโ€™t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how itโ€™s configured. Make sure it is set to run on all new branches. If you donโ€™t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, youโ€™ll need to re-trigger Greenkeeperโ€™s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.

Switching cameras

When I try to use face.camp on my laptop with my external monitor plugged in, it defaults to my monitor camera. I don't see a way of switching cameras unless I disconnect my monitor.

An in-range update of eslint-config-prettier is breaking the build ๐Ÿšจ

The devDependency eslint-config-prettier was updated from 6.7.0 to 6.8.0.

๐Ÿšจ View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-config-prettier is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • โŒ continuous-integration/drone/push: the build failed (Details).

Commits

The new version differs by 3 commits.

  • d6bf4c0 eslint-config-prettier v6.8.0
  • f2736c2 Update npm packages
  • 4d16ebc Disable @typescript-eslint/no-extra-semi (#129)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

Didn't upload second one I did

  • I made one and posted
  • made a another and tried to post
  • it did not post, but reset the preview window and caption text box

Provide way for people to give feedback

If this is open source:

  • link to add an issue in GitHub
  • contribution guidelines to README (plus, probably more robust install instructions + license)
  • Email address + twitter?

If not open source:

  • Email address + twitter?

โœ๏ธ Edit
We are going to open source so I vote we ask for feedback via GitHub issue and Twitter. That seems reasonable to me, I don't think we need a form or an email address.

Redeploy with new scopes

  1. Create test auth deployment with new credentials
  2. Deploy latest face.camp
  3. Resubmit app to slack directory
  4. Get app approved
  5. Redeploy auth.face.camp with new credentials
  6. Redeploy face.camp with auth url set
  7. Remove unused oauth urls

Support multiple teams

Possible flow would be:

  1. Switch teams button
  2. Slack oauth page
  3. Redirect to app
  4. App checks if it already has a valid team and if so adds a new auth token instead of replacing it

An in-range update of @typescript-eslint/parser is breaking the build ๐Ÿšจ

The devDependency @typescript-eslint/parser was updated from 2.19.0 to 2.19.1.

๐Ÿšจ View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@typescript-eslint/parser is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • โŒ continuous-integration/drone/push: the build failed (Details).

Release Notes for v2.19.1

2.19.1 (2020-02-10)

Bug Fixes

  • eslint-plugin: [unbound-method] blacklist a few unbound natives (#1562) (4670aab)
  • typescript-estree: ts returning wrong file with project references (#1575) (4c12dac)
Commits

The new version differs by 5 commits.

  • 1c8f0df chore: publish v2.19.1
  • 4c12dac fix(typescript-estree): ts returning wrong file with project references (#1575)
  • e9cf734 docs(eslint-plugin): fix typo in readme
  • 10d86b1 docs(eslint-plugin): [no-dupe-class-members] fix typo (#1566)
  • 4670aab fix(eslint-plugin): [unbound-method] blacklist a few unbound natives (#1562)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

Action required: Greenkeeper could not be activated ๐Ÿšจ

๐Ÿšจ You need to enable Continuous Integration on Greenkeeper branches of this repository. ๐Ÿšจ

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didnโ€™t receive a CI status on the greenkeeper/initial branch, itโ€™s possible that you donโ€™t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how itโ€™s configured. Make sure it is set to run on all new branches. If you donโ€™t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, youโ€™ll need to re-trigger Greenkeeperโ€™s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.

Build issues

  • Use browserlist config to be more selective about supported browsers since getusedmedia is only supported by these browsers
  • We could probably even ship some ES6 code and minify it with uglify-webpack v4
  • Babel: transform spread to object.assign and dont transform object.assign
  • gif worker isnt getting minified
  • use route splitting for app.js
  • use file loader for image urls

PWA-ify

This might or might not be worth doing.

Some steps I see:

  • Fix redirect from PWA to auth and back to PWA (might not be possible in iOS)
  • iOS icons

Post to private channels not always working

Expected Behavior

When you select Private Channels before logging in, you should see your private channels in the list to post to.

Current Behavior

Private channels do not show in the list. They do for some people, but not all.

Browser / Environment

Chrome on Mac OS

Add privacy policy

#21 (comment)

We just need a:

  • Privacy policy link in the footer ("next to from your friends at &yet")
  • /privacy page with this content:

&yet will never to gather, store, or sell information about you, log your messages or gifs, or engage in any other behavior that would compromise your privacy and security in any way. Facecamp is a static web application with no database, so your gifs and messages are uploaded directly to Slack with no data passing through our servers.

Non-scrolling fixed UI elements

Now that #26 is done, I think the non-scrolling / fixed UI from #19 is possible.

  • Max height for tall windows
  • Min height to display "Use a taller browser" message
  • Min height to force some scrolling to keep it usable
  • Use flex to naturally space UI groups (nav, image, input/post)
โ”Œโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”
โ”‚ โ”‚    Team Name    โ”‚   โ”‚        โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚                              โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Get app reviewed by slack?

There's currently a semi-scary looking yellow banner at the top saying This app hasn't been reviewed or approved so it'd be good if that went away before posting publicly.

An in-range update of @typescript-eslint/eslint-plugin is breaking the build ๐Ÿšจ

The devDependency @typescript-eslint/eslint-plugin was updated from 2.6.1 to 2.7.0.

๐Ÿšจ View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@typescript-eslint/eslint-plugin is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • โŒ continuous-integration/drone/push: the build failed (Details).

Release Notes for v2.7.0

2.7.0 (2019-11-11)

Bug Fixes

  • eslint-plugin: crash fixing readonly arrays to generic (#1172) (2b2f2d7)
  • typescript-estree: hash code to reduce update frequency (#1179) (96d1cc3)
  • typescript-estree: reduce bundle footprint of tsutils (#1177) (c8fe515)

Features

  • eslint-plugin: [no-unused-expressions] extend for optional chaining (#1175) (57d63b7)
  • parser: handle optional chaining in scope analysis (#1169) (026ceb9)
Commits

The new version differs by 7 commits.

  • 62b5a94 chore: publish v2.7.0
  • 57d63b7 feat(eslint-plugin): [no-unused-expressions] extend for optional chaining (#1175)
  • 026ceb9 feat(parser): handle optional chaining in scope analysis (#1169)
  • 96d1cc3 fix(typescript-estree): hash code to reduce update frequency (#1179)
  • c8fe515 fix(typescript-estree): reduce bundle footprint of tsutils (#1177)
  • f63c9c2 docs(eslint-plugin): nit make package name more visible (#1173)
  • 2b2f2d7 fix(eslint-plugin): crash fixing readonly arrays to generic (#1172)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

Move to Netlify

  • Update face.camp and www.face.camp DNS records
  • Verify DNS
  • Delete zeit face.camp deployment
  • Test Slack auth inside Netlify functions
  • Update auth url to face.camp/.netlify/functions
  • Delete auth.face.camp DNS record
  • Delete auth.face.camp k8s deployment
  • Figure out and document local dev with netlify-lambda serve
  • Figure out local https testing #111
  • Figure out Slack redirect_uri issue when using localhost and/or ngrok #109
  • Test netilfy functions #110

Size restrictions / indicator

Heard back from Slack that approximately 2MB is the threshold they use for whether to display a preview of an animated gif on iOS.

Many of the ones I've uploaded have been 4-5MB, so if we can reduce the size by half, that seems like it would be pretty impactful.

Definitely, there are some ways to reduce our total size which would have a significant impact:

  • Ideally, we should reduce the resolution to half(?) its current size before uploading. I don't believe that Slack even shows the full resolution in previews.
  • Reducing the max amount of time recorded would also be fine, I think. I don't think we need the full amount of time we're currently recording to have a meaningful impact gif.

From there, we have some options:

  • We could not allow for gifs to be created that are larger than 2MB
  • Alternatively, we could inform the user when their image was greater than 2MB and that the preview wouldn't be displayed on mobile

Deal with invalid token errors

Tokens can be invalidated by the user or through other means, so if a request is made and that is the error then the app should probably automatically logout and force the user to reauth

PWA

This is blocked by iOS 11.3 not having getUserMedia available in WKWebView (chromium bug report) which is what runs PWAs on iOS.

I researched finding a way to signal to Android devices but not iOS that this app is PWA capable, but couldn't find a way to do that. So it's possible that all this is currently possible on Android, but I don't have a way to test that. So for now, I'm waiting until iOS 11.4 or later to see when WKWebView gets access to getUserMedia

Checklist to make this a functional PWA

  • Change manifest.json display to standalone
  • Change web-app-capable meta tags to yes (Research required this might not be necessary since those are used for older browsers which probably dont support getUserMedia anyway)
  • Use manifest.json scope to signal which URLs are navigable by the app
  • Change auth flow to happen inside PWA

Auth issue

I have face.camp and auth.face.camp running locally. This is what currently ends up in the address bar after attempting to auth:

http://localhost:8080/#{%22ok%22:true,%22access_token%22:%22xoxp-2252352428-2739147668-346727530357-9a3a812b961faeb97f6a649a3c6b6737%22,%22scope%22:%22identify,channels:read,chat:write:user,files:write:user%22,%22user_id%22:%22U02MR4BKN%22,%22team_name%22:%22&yet%22,%22team_id%22:%22T027EACCL%22}

Which results in:

This site canโ€™t be reached
localhost refused to connect.

Crop video/gif to square

From #19 (comment)

I was thinking about the same thing and did a little research. From what I found, all cameras have aspect ratios that they support, and you can't force them into an unsupported aspect ratio. So iOS is always going to have a taller aspect ratio that most computer webcams.

But what we could do is crop the displayed video to a square and then crop each frame of the video that gets rendered to the gif. That would be more work, but it doesn't seem that difficult

Action required: Greenkeeper could not be activated ๐Ÿšจ

๐Ÿšจ You need to enable Continuous Integration on Greenkeeper branches of this repository. ๐Ÿšจ

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didnโ€™t receive a CI status on the greenkeeper/initial branch, itโ€™s possible that you donโ€™t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how itโ€™s configured. Make sure it is set to run on all new branches. If you donโ€™t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, youโ€™ll need to re-trigger Greenkeeperโ€™s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.

Tighter layout on mobile to fit to screen height

Would be really great for UX to be able to fit everything in one view without scrolling, with fixed position interface controls.

Note that this is on an iPhone X (aka TallPhoneโ„ข), so I'm assuming it's definitely vertically overflowing an iPhone 7 or 8 or typical Android, but I have no idea.

img_29f259d6a199-1

some thoughts:

  • shrink the input fields a bit
  • move the logout to the footer?
  • instead of "posting to &yet" show the team icon inside the dropdown where the slack logo is?
  • make the "hold to record" button directly connected to the video?

just thoughts about how to save some space, nothing I'm set on suggesting

Browser support check

Splash screen should get for getusermedia and show a different message instead of the auth button.

An in-range update of eslint is breaking the build ๐Ÿšจ

The devDependency eslint was updated from 6.4.0 to 6.5.0.

๐Ÿšจ View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • โŒ continuous-integration/drone/push: the build failed (Details).

Release Notes for v6.5.0
  • 73596cb Update: Add enforceForSwitchCase option to use-isnan (#12106) (Milos Djermanovic)
  • d592a24 Fix: exclude \u000d so new line won't convert to text (fixes #12027) (#12031) (zamboney)
  • e85d27a Fix: no-regex-spaces false positives and invalid autofix (fixes #12226) (#12231) (Milos Djermanovic)
  • b349bf7 Fix: prefer-named-capture-group incorrect locations (fixes #12233) (#12247) (Milos Djermanovic)
  • 7dc1ea9 Fix: no-useless-return autofix removes comments (#12292) (Milos Djermanovic)
  • 0e68677 Fix: no-extra-bind autofix removes comments (#12293) (Milos Djermanovic)
  • 6ad7e86 Fix: no-extra-label autofix removes comments (#12298) (Milos Djermanovic)
  • acec201 Fix: no-undef-init autofix removes comments (#12299) (Milos Djermanovic)
  • d89390b Fix: use async reading of stdin in bin/eslint.js (fixes #12212) (#12230) (Barrie Treloar)
  • 334ca7c Update: no-useless-rename also reports default values (fixes #12301) (#12322) (Kai Cataldo)
  • 41bfe91 Update: Fix handling of chained new expressions in new-parens (#12303) (Milos Djermanovic)
  • 160b7c4 Chore: add autofix npm script (#12330) (Kai Cataldo)
  • 04b6adb Chore: enable eslint-plugin-jsdoc (refs #11146) (#12332) (Kai Cataldo)
  • 9b86167 Docs: Add new ES environments to Configuring ESLint (#12289) (Milos Djermanovic)
  • c9aeab2 Docs: Add supported ECMAScript version to README (#12290) (Milos Djermanovic)
  • 8316e7b Fix: no-useless-rename autofix removes comments (#12300) (Milos Djermanovic)
  • 29c12f1 Chore: cache results in runtime-info (#12320) (Kai Cataldo)
  • f5537b2 Fix: prefer-numeric-literals autofix removes comments (#12313) (Milos Djermanovic)
  • 11ae6fc Update: Fix call, new and member expressions in no-extra-parens (#12302) (Milos Djermanovic)
  • a7894eb New: add --env-info flag to CLI (#12270) (Kai Cataldo)
  • 61392ff Sponsors: Sync README with website (ESLint Jenkins)
  • 2c6bf8e Docs: English fix (#12306) (Daniel Nixon)
  • 6f11877 Sponsors: Sync README with website (ESLint Jenkins)
  • 2e202ca Docs: fix links in array-callback-return (#12288) (Milos Djermanovic)
  • e39c631 Docs: add example for CLIEngine#executeOnText 3rd arg (#12286) (Kai Cataldo)
  • d4f9a16 Update: add support for JSXFragments in indent rule (fixes #12208) (#12210) (Kai Cataldo)
  • c6af95f Sponsors: Sync README with website (ESLint Jenkins)
  • 8cadd52 Sponsors: Sync README with website (ESLint Jenkins)
  • f9fc695 Chore: enable default-param-last (#12244) (่–›ๅฎš่ฐ”็š„็Œซ)
  • 9984c3e Docs: Update README team and sponsors (ESLint Jenkins)
Commits

The new version differs by 32 commits.

  • 76fb571 6.5.0
  • 7359a80 Build: changelog update for 6.5.0
  • 73596cb Update: Add enforceForSwitchCase option to use-isnan (#12106)
  • d592a24 Fix: exclude \u000d so new line won't convert to text (fixes #12027) (#12031)
  • e85d27a Fix: no-regex-spaces false positives and invalid autofix (fixes #12226) (#12231)
  • b349bf7 Fix: prefer-named-capture-group incorrect locations (fixes #12233) (#12247)
  • 7dc1ea9 Fix: no-useless-return autofix removes comments (#12292)
  • 0e68677 Fix: no-extra-bind autofix removes comments (#12293)
  • 6ad7e86 Fix: no-extra-label autofix removes comments (#12298)
  • acec201 Fix: no-undef-init autofix removes comments (#12299)
  • d89390b Fix: use async reading of stdin in bin/eslint.js (fixes #12212) (#12230)
  • 334ca7c Update: no-useless-rename also reports default values (fixes #12301) (#12322)
  • 41bfe91 Update: Fix handling of chained new expressions in new-parens (#12303)
  • 160b7c4 Chore: add autofix npm script (#12330)
  • 04b6adb Chore: enable eslint-plugin-jsdoc (refs #11146) (#12332)

There are 32 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot ๐ŸŒด

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.