{"id":15503155,"url":"https://github.com/johno/web-cannon","last_synced_at":"2026-03-06T05:35:16.817Z","repository":{"id":151933104,"uuid":"50304910","full_name":"johno/web-cannon","owner":"johno","description":"Useful information to reference while building websites for humans","archived":false,"fork":false,"pushed_at":"2017-02-28T05:25:57.000Z","size":17,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-15T09:17:50.448Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johno.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-24T19:49:59.000Z","updated_at":"2017-07-12T11:50:41.000Z","dependencies_parsed_at":"2023-05-18T02:45:31.675Z","dependency_job_id":null,"html_url":"https://github.com/johno/web-cannon","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"0c9ece33196a47d097e57c05670d42cc0758ea7b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/johno/web-cannon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johno%2Fweb-cannon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johno%2Fweb-cannon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johno%2Fweb-cannon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johno%2Fweb-cannon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johno","download_url":"https://codeload.github.com/johno/web-cannon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johno%2Fweb-cannon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275168718,"owners_count":25417182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T09:12:20.962Z","updated_at":"2026-03-06T05:35:16.779Z","avatar_url":"https://github.com/johno.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# web-cannon\n\n_Work in progress_\n\n- [CSS](#css)\n  - [Talks](#css-talks)\n  - [Tools](#css-tools)\n  - [Functional CSS](#functional-css)\n    - [Tools](#functional-css-tools)\n- [UI](#ui)\n- [JavaScript](#javascript)\n  - [ES2015](#es2015)\n  - [Immutable](#immutable-javascript)\n  - [Intermediate](#intermediate-javascript)\n  - [Advanced](#advanced-javascript)\n  - [Async](#async-javascript)\n- [CSS + JS](#css-js)\n- [Ruby](#ruby)\n  - [Internals](#ruby-internals)\n  - [Security](#ruby-security)\n  - [Debugging](#ruby-debugging)\n- [AI](#ai)\n- [Security](#security)\n\n## CSS\n\n### CSS talks\n\n- [Implementing a Visual CSS Testing Framework](https://www.youtube.com/watch?v=ItyUjVWl4q8) by Jessica Dillon\n- [PostCSS: The Future After Sass and Less](https://www.youtube.com/watch?v=6jz6p7wqOpI) by Andrey Sitnik\n- [CSS First](https://www.youtube.com/watch?v=ALEGHlwMXxs) by Michelle Bu\n- [Things I've Learned About CSS](https://www.youtube.com/watch?v=14N_V56tqd4) by Adam Morse\n- [CSS Performance Tooling](https://www.youtube.com/watch?v=FEs2jgZBaQA) by Addy Osmani\n- [Move Slow and Fix Things](http://www.thedotpost.com/2015/12/daniel-eden-move-slow-and-fix-things) by Daniel Eden\n\n### Functional CSS\n\n- \u003chttp://csswizardry.com/2015/03/immutable-css/\u003e\n- \u003chttp://csswizardry.com/2012/06/the-open-closed-principle-applied-to-css/\u003e\n- \u003chttp://www.jon.gold/2015/07/functional-css/\u003e\n- \u003chttp://eng.wealthfront.com/2013/08/functional-css-fcss.html\u003e\n- \u003chttps://blog.colepeters.com/building-and-shipping-functional-css/\u003e\n- \u003chttp://www.basscss.com/docs/reference/principles/#immutable-utilities\u003e\n\n##### Functional CSS Tools\n\n- \u003chttp://immutablecss.com\u003e\n- \u003chttp://cssstats.com\u003e\n\n##### Frameworks\n\n- \u003chttp://basscss.com\u003e\n- \u003chttp://tachyons.io\u003e\n\n## UI\n\n- \u003chttp://jxnblk.com/writing/posts/components/\u003e\n- \u003chttp://rauchg.com/2015/pure-ui/\u003e\n\n## JavaScript\n\n### ES2015\n\n- [If you wish to learn ES6/2015 from scratch, you must first invent the universe](https://www.youtube.com/watch?v=HxHBAU0cTHU) by Ashley Williams\n\n### Immutable JavaScript\n\n- [Lenses with Immutable JS](https://medium.com/@drboolean/lenses-with-immutable-js-9bda85674780#.8t4xb62w5) by Brian Lonsdorf\n- [Immutable Data and React](https://www.youtube.com/watch?v=I7IdS-PbEgI) by Lee Byron\n- [Immutability, Interactivity \u0026 JavaScript](https://www.youtube.com/watch?v=mS264h8KGwk) by David Nolen\n\n### Intermediate JavaScript\n\n- [Scope](https://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/) by Todd Motto\n- [Callback Hell](http://callbackhell.com/) by Max Ogden\n\n### Advanced JavaScript\n\n- [What the heck is the event loop anyway?](https://www.youtube.com/watch?v=8aGhZQkoFbQ) by Philip Roberts\n\n### Async JavaScript\n\n- [Asynchronous JavaScript at Netflix](https://www.youtube.com/watch?v=a8W5VVGO-jA) by Matthew Podwysowski\n\n### React\n\n- \u003chttp://jxnblk.com/writing/posts/patterns-for-style-composition-in-react/\u003e\n\n## CSS + JS\n\n- \u003chttps://github.com/jxnblk/cxs\u003e\n- \u003chttps://github.com/Khan/aphrodite\u003e\n- \u003chttps://github.com/cssinjs/jss\u003e\n\n## Ruby\n\n### Ruby Internals\n\n- [How are Method Calls Formed?](https://www.youtube.com/watch?v=b77V0rkr5rk): A talk by Aaron Patterson\n\n### Ruby Security\n\n- [See Hacker Hack](http://confreaks.tv/videos/keeprubyweird2015-see-hacker-hack): A talk about web security and the tooling to test applications. \n\n### Ruby Debugging\n\n- [I am a Puts Debuggerer](https://tenderlovemaking.com/2016/02/05/i-am-a-puts-debuggerer.html)\n\n## AI\n\n- \u003chttp://ai.berkeley.edu/lecture_videos.html\u003e\n- \u003chttp://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/lecture-videos/\u003e\n- \u003chttp://karpathy.github.io/2015/05/21/rnn-effectiveness/\u003e\n- \u003chttps://github.com/jcjohnson/torch-rnn\u003e\n- \u003chttp://www.redblobgames.com/x/1645-phoneme-namegen/\u003e\n\n## Security\n\n- \u003chttp://blog.mailgun.com/security-guide-basic-infrastructure-security/\u003e\n- \u003chttp://www.codelitt.com/blog/my-first-10-minutes-on-a-server-primer-for-securing-ubuntu/\u003e\n\n## License\n\nMIT\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\n***\n\n\u003e Crafted with \u003c3 by [@4lpine](https://twitter.com/4lpine)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohno%2Fweb-cannon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohno%2Fweb-cannon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohno%2Fweb-cannon/lists"}