Comments (32)
The latest version in master
logs the repositories that Wuffle
thinks are visible to you.
Run the app using LOG_LEVEL=debug
, log onto the board and search for a pattern like this in the logs:
wuffle:user-access: creating member filter (token=xxxxxx)
repositories: [
"org/repo"
]
Here the board tells you exactly what it thinks are the private repositories you have access to.
from wuffle.
@Tectract I found when I had issues initially getting my Wuffle up and running. I had issues in permissions set incorrectly, authorisation callback and incorrect webhook password etc. It could be any or all of these things. It is extremely difficult to tell what has gone wrong without being able to see everything. You should try to set it up again on a personal repo with a new probot double checking everything and that may help in your investigation.
I ran it in debug mode and added lots of extra log lines to help me figure out where I had gone wrong. Although slightly out of date you could also check against my initial deployment notes PR which is slightly out of date but has a lot of details that may help you in your investigation: #36
from wuffle.
I give up. I don't see how me doing a bunch of hours of testing is going to change anything. Seems this tool is broken or only works for people who want to kanban their own personal repos. But you closed my issue even though it wasn't resolved so... what's the point. I'll just pay zenhub instead of losing time to this broken thing...
from wuffle.
set it up in local environment, also took some effort but I got the exact same result.
It appears to find the issues, but not display them.
from wuffle.
@Tectract Have you signed in on the boards page, as issues will not be displayed until you login . Select the person
icon in the top right corner
from wuffle.
Hmmmmmmm, when I click that icon the page just reloads... in the console now I see:
/?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fapps%2Fmanaging-oauth-apps%2Ftroubleshooting-authorization-request-errors%2F%23redirect-uri-mismatch&state=y0kcw%2Be...........
from wuffle.
Observations:
- Your repository is private
- There seems to be an issue with your GitHub app configuration
Which User authorization callback URL
did you configure?
from wuffle.
Hi, yes this is a private repo... Is that a problem?
in my github app I have
Homepage URL: http://localhost:3000/
User authorization callback URL : http://localhost:3000/
Webhook URL: https://smee.io/5xxxxx
Here's what my .env looks like
APP_ID=3xxxx
WEBHOOK_PROXY_URL=https://smee.io/5xxxxx
NODE_ENV=dev
PRIVATE_KEY=xxxxxx
WEBHOOK_SECRET=xxxxxxxxxxxxfrom-setup
GITHUB_CLIENT_ID=xxxxxxxxxxxxxxxxxxfrom-github
GITHUB_CLIENT_SECRET=xxxxxxxxxxxxxxxfrom-github
SESSION_SECRET=long_random_string
BASE_URL=https://smee.io/5xxxx
LOG_LEVEL=info
from wuffle.
Please checkout the updated setup document and perform the setups mentioned in the configure app section.
from wuffle.
Thank you, this seems to have gotten me closer to being able to log in.
When I clicked the icon after changing this github app setting, it DID take me to a page to authorize this github app. I clicked "authorize". Then it took me to an error page, at smee, that only says:
Cannot GET /5xxxxxx/wuffle/login/callback
Thank you again for your work here :) I hope this can be resolved, I'd love to move off Zenhub, lol.
from wuffle.
It should not redirect you to SMEE but to http://localhost:3000
or whatever the BASE_URL of your application is.
from wuffle.
Ok, I had BASE_URL to be the smee url. I changed that to localhost:3000, and also the User authorization callback URL, to be localhost:3000/wuffle/login/callback.
Success, I can log in. When I click on the icon in the upper right corner, now my github user icon appears. Good.
I still see no issues in any columns, however.
from wuffle.
I'm wondering if the issue could be related to the fact that I'm trying to set up the repo for an organization I run, named EnLedger, whille my username is tectract.
I see in the storedump, in the issue data:
"login":"enledger"
and the app is installed under the enledger organization with only access to this one repo...
Is the problem that I'm logged in as tectract but the issues all say login:enledger?
from wuffle.
I'm wondering if the issue could be related to the fact that I'm trying to set up the repo for an organization I run, named EnLedger, whille my username is tectract.
Nope. The board has multi-repository / organization support. Cf. tasks.bpmn.io where we connect 90 repositories across three different organizations (public and private ones).
from wuffle.
Please share your complete logs (app startup, user login) with private details redacted.
from wuffle.
npm run dev
> [email protected] dev /home/lxxx/Web/wuffle
> NODE_ENV=development run-p dev:* -l
[dev:board]
[dev:board] > [email protected] dev:board /home/lxxx/Web/wuffle
[dev:board] > cd packages/board && npm run dev
[dev:board]
[dev:app ]
[dev:app ] > [email protected] dev:app /home/lxxx/Web/wuffle
[dev:app ] > cd packages/app && npm run dev
[dev:app ]
[dev:app ]
[dev:app ] > [email protected] dev /home/lxxx/Web/wuffle/packages/app
[dev:app ] > nodemon
[dev:app ]
[dev:board]
[dev:board] > [email protected] dev /home/lxxx/Web/wuffle/packages/board
[dev:board] > run-s build:watch
[dev:board]
[dev:app ] [nodemon] 1.18.11
[dev:app ] [nodemon] to restart at any time, enter `rs`
[dev:app ] [nodemon] watching: .env *.*
[dev:app ] [nodemon] starting `npm start`
[dev:board]
[dev:board] > [email protected] build:watch /home/lxxx/Web/wuffle/packages/board
[dev:board] > run-p build:*:watch
[dev:board]
[dev:app ]
[dev:app ] > [email protected] start /home/lxxx/Web/wuffle/packages/app
[dev:app ] > node ./bin/run.js
[dev:app ]
[dev:board]
[dev:board] > [email protected] build:css:watch /home/lxxx/Web/wuffle/packages/board
[dev:board] > run-s build:css "build:css -- -w"
[dev:board]
[dev:board]
[dev:board] > [email protected] build:js:watch /home/lxxx/Web/wuffle/packages/board
[dev:board] > rollup -c -w
[dev:board]
[dev:app ] 07:57:20.286Z INFO wuffle:run: Validating configuration
[dev:app ] 07:57:20.289Z INFO wuffle:run: Starting Wuffle v0.17.0
[dev:app ] 07:57:20.396Z INFO probot: Forwarding https://smee.io/5xxx/?code=cxxx&state=7xxx%3D%3D to http://localhost:3000/
[dev:app ] 07:57:20.398Z INFO probot: Listening on http://localhost:3000
[dev:app ] 07:57:20.398Z INFO wuffle:run:
[dev:app ]
[dev:app ] Wuffle started on http://localhost:3000
[dev:app ]
[dev:app ] 07:57:20.427Z INFO wuffle:dump-store-local: restored (storeLocation=tmp/storedump.json, t=22)
[dev:app ] 07:57:20.428Z INFO wuffle: started
[dev:board]
[dev:board] > [email protected] build:css /home/lxxx/Web/wuffle/packages/board
[dev:board] > node-sass --include-path=node_modules src/style/global.scss -o public
[dev:board]
[dev:app ] 07:57:20.630Z INFO probot: Connected https://smee.io/5xxx/?code=cxxx&state=7xxx
[dev:board] rollup v1.12.3
[dev:board] bundles src/main.js → public/bundle.js...
[dev:board] Rendering Complete, saving .css file...
[dev:board] Wrote CSS to /home/lxxx/Web/wuffle/packages/board/public/global.css
[dev:board]
[dev:board] > [email protected] build:css /home/lxxx/Web/wuffle/packages/board
[dev:board] > node-sass --include-path=node_modules src/style/global.scss -o public "-w"
[dev:board]
[dev:app ] 07:57:21.267Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 7.65 ms (id=9c175f23-9089-4518-8b1a-0e7e1c981c3f)
[dev:board] LiveReload enabled
[dev:board] created public/bundle.js in 1.6s
[dev:app ] 07:57:24.253Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 3.84 ms (id=f7a7ab5e-a9e6-4746-b54d-546fdecc4c24)
[dev:app ] 07:57:25.407Z INFO wuffle:background-sync: start
[dev:app ] 07:57:25.773Z INFO wuffle:github-client: fetching auth (login=enledger)
[dev:app ] 07:57:27.257Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.73 ms (id=3c53461e-c5ed-46ee-8a6e-11b3e238870a)
[dev:app ] 07:57:29.308Z INFO wuffle:background-sync: synched 47, expired 0 issues (t=3536)
[dev:app ] 07:57:29.309Z INFO wuffle:background-sync: success
[dev:app ] 07:57:30.245Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.85 ms (id=93913277-e017-4ea6-a79b-ebab774cbe3b)
[dev:app ] 07:57:33.257Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 1.73 ms (id=b2e04d63-e4ff-41e9-adc2-710034a4edef)
[dev:app ] 07:57:36.251Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 2.17 ms (id=6965bae7-18ee-4e1c-b13b-6c17b297e171)
[dev:app ] 07:57:39.249Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.72 ms (id=9f9950e4-0f4e-43a1-b753-b8723486d9f9)
[dev:app ] 07:57:42.058Z INFO http: GET /board 304 - 2.84 ms (id=3d225eb6-be5a-4d74-b366-ddd753348add)
[dev:app ] 07:57:42.105Z INFO http: GET /global.css 200 - 7.74 ms (id=7b0497d0-4f59-42fe-b5e3-88c9e4bfacec)
[dev:app ] 07:57:42.109Z INFO http: GET /bundle.css 200 - 3.68 ms (id=2137df02-cb05-4ca5-845a-f29c5d46d9a6)
[dev:app ] 07:57:42.115Z INFO http: GET /bundle.js 200 - 9.28 ms (id=881a1ac1-b86a-40b9-bd83-d4d7a1856a96)
[dev:app ] 07:57:42.213Z INFO http: GET /logo.svg 304 - 0.43 ms (id=ab4ce762-6594-47a8-9d12-3608a47a7c6b)
[dev:app ] 07:57:42.250Z INFO http: GET /wuffle/board/cards 200 - 3.18 ms (id=a9796833-f43b-45f3-9620-d5e0d9f5926f)
[dev:app ] 07:57:42.251Z INFO http: GET /wuffle/login_check 200 - 1.61 ms (id=317ad157-2b14-42d1-9f46-61c3b42fbd79)
[dev:app ] 07:57:42.251Z INFO http: GET /wuffle/board 200 - 1.48 ms (id=55aaa1da-6d59-4485-865b-4f62db9faaf0)
[dev:app ] 07:57:42.341Z INFO http: GET /favicon.png 200 - 1.61 ms (id=c5c82c95-f771-4320-8dad-8935fb9b7ba9)
[dev:app ] 07:57:43.884Z INFO http: GET /wuffle/login 302 - 7.06 ms (id=46f74665-9093-43dd-8f05-87cf1b579a09)
[dev:app ] 07:57:44.838Z INFO http: GET /wuffle/login/callback?code=exxx&state=4xxx 302 - 488.63 ms (id=3xxx)
[dev:app ] 07:57:44.855Z INFO http: GET /board 304 - 0.48 ms (id=3xxx)
[dev:app ] 07:57:44.875Z INFO http: GET /global.css 304 - 0.58 ms (id=c6b81ec4-69ad-4310-b0c1-c6c4c5f92fef)
[dev:app ] 07:57:44.875Z INFO http: GET /bundle.css 304 - 0.70 ms (id=25cf2978-04e4-431f-bf9d-a1c4ae4dd9a0)
[dev:app ] 07:57:44.900Z INFO http: GET /bundle.js 304 - 0.39 ms (id=f0364b02-3b68-40a9-8d44-6f3768a456bf)
[dev:app ] 07:57:44.932Z INFO http: GET /logo.svg 304 - 0.46 ms (id=ea8451e4-8aab-41da-8226-5b31668ee517)
[dev:app ] 07:57:44.953Z INFO wuffle:user-access: creating read filter (token=5xxx)
[dev:app ] 07:57:45.004Z INFO http: GET /wuffle/board 304 - 18.15 ms (id=ebe93c6a-5193-47c2-970f-5122a5753f78)
[dev:app ] 07:57:45.523Z INFO http: GET /wuffle/board/cards 200 - 570.58 ms (id=0cda923b-a259-4d0f-acdc-56b99614cc4a)
[dev:app ] 07:57:45.987Z INFO wuffle:auth-flow: fetched GitHub profile (session_id=S44f2ZnN9CAGBtB_OhVVqt_19A-W3CjV)
[dev:app ] 07:57:45.989Z INFO http: GET /wuffle/login_check 200 - 1003.48 ms (id=febb957d-816c-4daf-928f-c0bc12a4c1d8)
[dev:app ] 07:57:46.647Z INFO http: POST /balances 404 - 1.40 ms (id=9ef31484-78fb-4dc4-960a-93ef207afde5)
[dev:app ] 07:57:47.939Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.94 ms (id=c9e608f6-2272-4566-98fa-7c0d1eb4565a)
[dev:app ] 07:57:49.997Z INFO http: GET /board 304 - 0.45 ms (id=1eff66e7-6d5f-4101-88ee-14e63ff3523e)
[dev:app ] 07:57:50.011Z INFO http: GET /global.css 304 - 0.59 ms (id=27d2414a-fe4b-4462-81ce-1eb1451f862d)
[dev:app ] 07:57:50.011Z INFO http: GET /bundle.css 304 - 0.53 ms (id=5ab33620-ef5a-4367-a50f-eca3591200d5)
[dev:app ] 07:57:50.028Z INFO http: GET /bundle.js 304 - 0.42 ms (id=2b648723-0994-49ae-8ed5-4ee947f25f36)
[dev:app ] 07:57:50.091Z INFO http: GET /wuffle/board/cards 304 - 1.46 ms (id=297c82f6-bfff-49a0-995d-7291bda58c3f)
[dev:app ] 07:57:50.094Z INFO http: GET /wuffle/login_check 304 - 0.59 ms (id=aea22701-06da-492a-98b4-64bba33d4b9b)
[dev:app ] 07:57:50.096Z INFO http: GET /logo.svg 304 - 0.41 ms (id=f73b7436-9474-46b8-bd66-1a30a7793f1d)
[dev:app ] 07:57:50.100Z INFO http: GET /wuffle/board 304 - 0.64 ms (id=27bd7d90-4184-4c66-bd83-c7da0073014d)
[dev:app ] 07:57:50.250Z INFO http: GET /favicon.png 200 - 0.62 ms (id=60ceb1f2-506e-420c-973f-174a979911bd)
[dev:app ] 07:57:50.408Z INFO wuffle:dump-store-local: dumped (storeLocation=tmp/storedump.json, t=2)
[dev:app ] 07:57:53.070Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.57 ms (id=368a8248-b2c2-4d8d-9c14-4eed6689900c)
[dev:app ] 07:57:56.068Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.87 ms (id=75e9a436-8e3c-42ba-ab09-198de4f44bb9)
[dev:app ] 07:57:58.741Z INFO http: GET /board 304 - 0.41 ms (id=ee8d9590-2b6e-4b18-be5d-7b57eed59924)
[dev:app ] 07:57:58.755Z INFO http: GET /global.css 304 - 0.58 ms (id=2c984c87-39a0-44e8-9281-8eb812d46e46)
[dev:app ] 07:57:58.756Z INFO http: GET /bundle.css 304 - 0.58 ms (id=f76cce12-257b-44a7-87a4-2993b3998d71)
[dev:app ] 07:57:58.757Z INFO http: GET /bundle.js 304 - 0.28 ms (id=79820c1e-c4e2-4b7c-b528-adec5d66d3aa)
[dev:app ] 07:57:58.890Z INFO http: GET /wuffle/board/cards 304 - 3.57 ms (id=eb1fc09b-9f75-4bba-8c09-700f52269317)
[dev:app ] 07:57:58.891Z INFO http: GET /wuffle/login_check 304 - 2.73 ms (id=53f5051b-f3ed-45c8-aac3-1cb44cbe988e)
[dev:app ] 07:57:58.891Z INFO http: GET /wuffle/board 304 - 2.42 ms (id=da60854f-1863-4958-9538-cf06248ffd2a)
[dev:app ] 07:57:58.891Z INFO http: GET /logo.svg 304 - 0.57 ms (id=9ce15a0e-4674-4f24-9781-1c754ecbfa01)
[dev:app ] 07:57:58.949Z INFO http: GET /favicon.png 200 - 0.93 ms (id=bee76443-a2e7-43a2-9118-0f02fe912740)
[dev:app ] 07:58:01.866Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 1.45 ms (id=98c98432-3dc8-443a-8d1f-dff7918b4d6a)
[dev:app ] 07:58:04.876Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.57 ms (id=56d03353-3dff-4033-9145-751149552374)
[dev:app ] 07:58:07.865Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.58 ms (id=dd684538-4eca-4fd6-9e4f-38f4222158b9)
[dev:app ] 07:58:10.870Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.57 ms (id=6f22c354-a866-4b8f-bc36-0037927b0e1a)
[dev:app ] 07:58:13.864Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.57 ms (id=e91ae222-530b-4af0-921f-eb7903b62018)
[dev:app ] 07:58:16.867Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.57 ms (id=ff82e2fd-0159-49ab-8449-7b49a180335c)
[dev:app ] 07:58:19.865Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.63 ms (id=f0441a42-3001-49d9-998f-732236cd5497)
[dev:app ] 07:58:20.409Z INFO wuffle:dump-store-local: dumped (storeLocation=tmp/storedump.json, t=2)
[dev:app ] 07:58:22.870Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.60 ms (id=8f3312a1-b84c-48e9-a984-0acd3a8911fa)
[dev:app ] 07:58:25.866Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.55 ms (id=f57d9db7-5e08-4f91-adeb-f0543896bd3b)
[dev:app ] 07:58:28.878Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.59 ms (id=8f4b2333-2d4c-4886-ac62-39e1efc437cc)
[dev:app ] 07:58:29.317Z INFO wuffle:background-sync: start
[dev:app ] 07:58:31.868Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.92 ms ??(id=b995f4eb-3586-4622-abfe-1620934c6f3a)
[dev:app ] 07:58:33.066Z INFO wuffle:background-sync: synched 47, expired 0 issues (t=3276)
[dev:app ] 07:58:33.066Z INFO wuffle:background-sync: success
[dev:app ] 07:58:34.869Z INFO http: GET /wuffle/board/updates?cursor=7841316 304 - 0.59 ms (id=c538c290-ca2e-4a9a-9d61-37e17775aead)
from wuffle.
No errors in the logs. Just seems like it doesn't recognize the issues as belonging to me. Can I just hack it to make it show me all the issues or something?
from wuffle.
What is the relationship between user enledger
and the GitHub organization? Does it have read access to the repository you've added?
from wuffle.
EnLedger is my company. The enledger organization was created by my tectract user account, and I am the admin of that organization, along with my CEO. I have read and write / full admin access to everything in the enledger repos. As I noted, wuffle IS seeing the issues, and even apparently placing them into columns, there are 47 issues in the storedump.json file... It's just not showing them to me, lol.
I only installed this app in the enledger organization, and gave it access to this one repo, because I didn't see any way to separate out the issues by repository, and I wanted a kanban board only for the EnLedger-Website repo tasks. There is actually no enledger user, as far as I know, it's just an organization created by tectract user.
from wuffle.
You login as Tectract
and have read access to all the connected repositories? That's odd. I'm admin in my organizations and can see issues just fine.
from wuffle.
Yes, there appears to be some problem with me being able to see the issues. I see no issues on the board. Is there anything else I can do to help you troubleshoot? I couldn't dig too deeply into the code without some assistance...
from wuffle.
I did connect the board to all the enledger repos, some of which are public, and I did see some issues there... But not on the repo in question which is a private repo...
from wuffle.
I will update and test again tonight. Thanks again for your help! Maybe I can become a contributor if we get this working :)
from wuffle.
Let's get this working first! 🥁
from wuffle.
[dev:app ] 22:57:22.067Z DEBUG wuffle:user-access: creating member filter (token=3xxx)
[dev:app ] repositories: [
[dev:app ] "enledger/EnLedger-Website"
[dev:app ] ]
Seem ok to you? Still no issues showing up though, even after I merged your updates in the upstream branch down to my fork...
from wuffle.
Yep. Everything fine on the back-end side of things.
You could check your browser for errors in the log. That is the last idea I got.
from wuffle.
Yeah, I didn't see any errors in the web console, sadly. Can we make it spit out what issues it thinks it should be displaying in the logs somehow? I would soooooooooooo love to move off Zenhub right now, they are nickel-and-diming me! Kanban should be freeeeeeeeeeeeee!
from wuffle.
You could debug the app via ndb
, check, if the endpoints (REST API) return the right things and see where the issues got lost. You could also re-read through the Setup instructions to verify you did not miss anything.
Unfortunately I cannot help you beyond this point.
from wuffle.
Having an issue like "the app doesn't work at all" for a new user is a pretty serious problem, just my two cents. In my repos, I don't close critical usability issues until they are resolved, but hey that's just me.
Is this app just mainly for your own use or did you intend for others to be able to use it also? I'm a very advance programmer, just not familiar with how you put this thing together. I can try to debug but without any working knowledge of the code, I feel like it's lost time. Maybe you can point me to some critical code files I should be looking at here.
Can you describe how I might use ndb to debug here? Is there a description of the API, or where are those files? I actually have some additions to the setup files, after getting it working both locally and on heroku...
from wuffle.
I've already set it up twice, once on my local machine and once on Heroku. On both environments I spent hours tinkering with it until it ran and downloaded all the issues with no error. I got the same exact behavior in both environments: no issues show up on my board. So, I think it's the code, not me.
Where should I be adding debug statements? Where in the code does it retrieve issues for display, when I load the page?
from wuffle.
Set it up once for a personal project, share the link to the board with us.
Start with a public repository. See if issues appear.
Make the repository private. See if issues disappear for external collaborators.
Once you accomplished that, go forth and use the setup GitHub app for your private only org. Stuff should just work.
from wuffle.
Will set up a test repo, and detailed instructions of my install for heroku. Give me a day or two :)
from wuffle.
Related Issues (20)
- Cards not displayed on wuffle pod restart until next background sync HOT 7
- Moving a draft PR to review column should mark it as ready for review
- Filter `reviewer` displays PRs where mentioned person is the author HOT 4
- Support GitHub style task breakdowns to create epics
- Add a filter that shows all cards I work on (issues + PRs) HOT 1
- Improve developer getting started experience HOT 6
- Comments in task lists are treated as dependent issues
- Add keyboard / mouse shortcuts quick documentation
- Card task list hides completed items HOT 1
- Self referencing dependency created on issue comment link
- Indicate missing required event subscriptions and missing required permission HOT 3
- It's not possible to configure the BASE_URL for a domain starting with board HOT 1
- Update 2 events as they are being deprecated/renamed HOT 2
- Is Wuffle still working / alive in any form? HOT 2
- Filter transferred issues (so to not display them twice) HOT 1
- Support repository transfer
- Support issue transfer
- Issue transferred to different repository is not being cleaned up
- Synchronize issue comments
- Add <mentions:someuser> filter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wuffle.