In the US:
Reddit:
/r/programming
720,000 subscribers/r/electronics
66,000 subscribersone in ten software devlopers know C (maybe, according to TIOBE)
/r/electronics
66,000 subscribers
/r/c_programming
30,000 subscribers
GitHub
OshPark
Hackaday.io, EEVblog Forums, etc
kitnic.it
Automates purchasing by replicating the web requests that are sent when you use retailer sites:
"The same-origin policy restricts how a document or script loaded from one origin can interact with a resource from another origin." - MDN
curl'http://uk.mouser.com/ProductDetail/Cree-Inc/CGHV96100F2/?Cree-Inc%2fCGHV96100F2%2f&qs=sGAEpiMZZMvplms98TlKY6zbNRoARcUg8gg333Al67kStE%252bN8N0%2fKg%3d%3d'-H 'Cookie: g11n=Up9NRXFGLVs=;ME_Main=&ME_DSN=kJ0slznDUsNJMyNjQRiw8Q==&ME_DSU=YyaQEeoCnLc=;ASP.NET_SessionId=zxtlgy45oobekaaphyv5n0z1;_op_aixPageId=a2_60d31424-8123-4e84-b3f9-a18a6f8bfc3d-3648-87767;CARTCOOKIEUUID=c46df9ef-39bb-4ada-bfcd-2452ed49bc8a; _gat=1;__ar_v4=5UM3NRP3LFFG5JUPQ2VEXA%3A20150203%3A12%7CVPQ73SPSLBEPXM7QJ2MJRL%3A20150203%3A12%7CA463QQQT6VD37AVLWC4RZU%3A20150203%3A12;SDG1=12; SDG2=40; SDG3=0; preferences=ps=gb&pl=en-GB&pc_gb=GBP;_ga=GA1.2.91020740.1409853093;__utma=261309969.91020740.1409853093.1417720020.1422769855.8;__utmb=261309969.15.10.1422769855; __utmc=261309969;__utmz=261309969.1409853093.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);__utmv=261309969.|14=MYM=1638924=1^16=UV=5423887=1^18=Sub=1795089=1^19=PCAT=5367B8=1;__atuvc=1%7C5; __atuvs=54cdc5eabb3480fd000; __utmli=ctl00_ContentMain_btnBuy2'-H 'Origin: http://uk.mouser.com' -H 'Accept-Encoding: gzip, deflate' -H'Accept-Language: en-GB,en-US;q=0.8,en;q=0.6' -H 'User-Agent: Mozilla/5.0 (X11;Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/39.0.2171.65Chrome/39.0.2171.65 Safari/537.36' -H 'Content-Type:application/x-www-form-urlencoded' -H 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H'Cache-Control: max-age=0' -H 'Referer:http://uk.mouser.com/ProductDetail/Cree-Inc/CGHV96100F2/?qs=sGAEpiMZZMvplms98TlKY6zbNRoARcUg8gg333Al67kStE%252bN8N0%2fKg%3d%3d'-H 'Connection: keep-alive' --data'__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=skTHKc%2BTu8q1ptksBWazoqW1jH%2F9s30wKeqLaG6vPBO92Ae4BJFGniiNMJOdrxMC0BKNq0OgMPn9jzXyEnh%2BhZElrKrDDEwTj6wDz%2BB5Mc8596z13lM4bwTtSkhsckjY87ZWffCEhuwhyb5YCmSMivmI453lwnERDa8eObcoNnPPaM0TNaN0oX6eY%2FQ0eiyT%2FJsDR6vWe4u1sV0sPkLebGRRWfI4chXx3bL9X0CXPlXzEjYBjSMVFvahuPicHdxN4QG31f8teVRA4a6JqwXeveNQi8J4yp2Euq3lgQnEjPAWpjeUEq5tXJbII8qczxQBrYBFu7ebLbylPNsPfrOeY6REXhUiEV1...
.├── 1-click-bom.tsv└── gerbers ├── board.cmp ├── board.drd ├── board.dri ├── board.gko ├── board.gpi ├── board.gto ├── board.stc └── board.sts
???
The idea really is that, creators can put together a virtual kit, that others can buy themselves, and we can share open hardware designs that way. With the least amount of friction.
Are there any questions at this point?
*.preview.kitnic.it
sub-domainskitnic.it
https://github.com/kasbah/push-on-hold-offhttps://github.com/kitnic/BQ25570_Harvesterhttps://github.com/JarrettR/USBvilhttps://github.com/8BitMixtape/NextLevelEditionhttps://github.com/dvdfreitag/Signal-Detector
CORS endpoints are available for some retailers!
Pro:
Con:
| Item | Cost ||--------------------+-------|| Google Web Store | $5 || Contractor's time | $2500 || Free PCB promotion | $500 || Domain names | $20 || Hosting | $0 || Kaspar's time | ??? |
React front-end
Micro services:
git-clone-server.kitnic.it
freegeoip.kitnic.it
Over 350,000 javascript packages
e.g. left-pad:
module.exports = leftpad;function leftpad (str, len, ch) { str = String(str); var i = -1; if (!ch && ch !== 0) ch = ' '; len = len - str.length; while (++i < len) { str = ch + str; } return str;}
pcb-stackup├─┬ gerber-to-svg│ ├── gerber-parser│ └── gerber-plotter└── whats-that-gerber
E.g.
# creates a package.json filenpm init# installs dependencies and saves to package.jsonnpm install --save js-quantities resistor-data
//index.jsconst Qty = require('js-quantities')const resistorData = require('resistor-data')function extract(R) { //"100 Ohm" or "100 Ω" style const match1 = /\d+\.?\d* ?(ohm|Ω|Ω)/i.exec(R) if (match1) { return Qty(match1[0]) } //"1k5", "1M" or "100R" style const match2 = /\d+(k|m|r)\d*/i.exec(R) if (match2) { const v = resistorData.notationToValue(match2[0]) + ' ohm' return Qty(v) }}function equal(R1, R2) { return extract(R1).eq(extract(R2))}
index.js
-function equal(R1, R2) {+module.exports = function equal(R1, R2) { return extract(R1).eq(extract(R2)) }
package.json
{ "name": "r-equal", "version": "1.0.0", "description": "Function to test if resistor values are equal", "main": "index.js", "license": "ISC", "dependencies": { "js-quantities": "^1.6.5", "resistor-data": "^1.0.0" }}
npm publish
Image credits
In the US:
Reddit:
/r/programming
720,000 subscribers/r/electronics
66,000 subscribersKeyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |