tag:blogger.com,1999:blog-62285398565720901782024-03-17T20:03:45.200-07:00RaptorliciousSome things just have to be yummy.brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.comBlogger658125tag:blogger.com,1999:blog-6228539856572090178.post-55824850103845447602022-12-18T13:59:00.002-08:002022-12-18T13:59:46.907-08:00Early JWE encryption algortihm explorations<p> Chacha derived AEAD algorithms in JSON Object Signing and Encryption<br /> (JOSE)<br /> draft-amringer-jose-chacha-02<br /><a href="https://datatracker.ietf.org/doc/html/draft-amringer-jose-chacha-02">https://datatracker.ietf.org/doc/html/draft-amringer-jose-chacha-02</a><br /><br /><a href="https://github.com/decentralized-identity/didcomm-messaging/issues/187">https://github.com/decentralized-identity/didcomm-messaging/issues/187</a><br /><br /><a href="https://github.com/panva/jose-chacha/issues/1">https://github.com/panva/jose-chacha/issues/1</a><br /><br /><a href="https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/crypto/tinkcrypto">https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/crypto/tinkcrypto<br /></a><br /><a href="https://www.googlecloudcommunity.com/gc/Apigee/How-to-decode-the-encrypted-JWE-token-using-the-ECDH-ES-A128KW/m-p/46776">https://www.googlecloudcommunity.com/gc/Apigee/How-to-decode-the-encrypted-JWE-token-using-the-ECDH-ES-A128KW/m-p/46776</a><br /><br /><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-66598035255040749012022-12-18T06:53:00.003-08:002022-12-18T06:53:36.853-08:00How to connect your android device on Linux<p> https://www.howtoforge.com/tutorial/how-to-connect-your-android-device-on-linux/</p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-14947282753771373282022-12-16T09:07:00.006-08:002022-12-16T09:17:36.834-08:00Career worries (originally posted in the Veramo Discord and PM) ... I'm adding it to my blog in case I meet a magic person who wants to talk rather than walk<p>Silly LinkedIN message DM:<br /><br />On[e] advantage you seem to have is San Francisco. It has a high concentration of capital both intellectual and otherwise. I wish fate would have left me there, but alas not. It has been an uphill battle for me ever since I became interested in late 2011 [referencing stuff like this http://adistributedeconomy.blogspot.com/2012/]. Lots of going it alone and fighting my own thoughts as well as the well-meaning naysayer. Is there anything that you read when you get discouraged? Is there anything that helps you build more courage? Find where the compass points? Faith in God or the Universe? I'm looking into Thinking, Fast and Slow and Principles by Ray Dalio. <br />Well anyway, I don't want to take too much of your time. I'll be in touch later. I'm not 100% sure you were into the Category Theory explorations. You did leave your e-mail, but you also didn't stay till the end. I made a note of who did, but I can keep you in the loop because to my knowledge Ryan is still up for it. How this plays out I have no idea , but he is incredibly competent and I would be less willing to scratch this itch it I didn't have his friendship and generosity. <br /> <br /> Well anyway, Feliz Navidad.<br /><br />---------------------<br />Silly LinkedIN message DM:<br /><br />intellectual talent is a hard thing to gauge..there is talent here..but it is expressed in the same patterns of behavior due to the job options ..maybe from my own biased perspective it seems like every time I see a new startup's website I always see San Francisco written on the bottom.<br /><br /><br />-------------------------------------<br /><br />Veramo Discord (because I'm overly transparent):<br /><br />I went to a meetup last night and there were recruiters sponsoring it .
They were fine. I talked with them to figure out what they were about.
Internal emotion before was crazy, as if I was dissatisfied that I got a
lot of personal satisfaction from trying out interesting problems that
few were doing but I wasn't making money with it. But then my "act of
courage" may have had something to do with me not sleeping last night as
if I drank caffeine too late. Maybe I did. I am not sure. I told
someone privately that I was more the type of person to pursue something
interesting and wind up working in surprising place like Vienna (and
have it not work out) than take a bunch of tests and get a job. The
conversation then evolved to Deep Work (iirc) which after looking up is
just sustained focus on a task . I know I can focus on task for a
prolonged period as I may have proven with my PR but it is like my mind
and body have to be aligned. I cannot do a good job deceiving this
because it flows, almost at a spiritual level. I'm going to stop beating
myself up for not buying 2000ETH for ~$600.0 IRC, oh you could have had
more cushion!, because I know I will vigilantly stay on mission and
drive my finances into the ground before I stray from what I want to see
in the world.<br /><br /></p><div class="markup-eYLPri messageContent-2t3eCI" id="message-content-1052993871665180743">That said, I may do more action/and or reflection. Apologies if this is off scope.</div><div class="buttonContainer-1502pf"><div aria-label="Message Actions" class="buttons-3dF5Kd container-2gUZhU isHeader-2bbX-L" role="group"></div></div><div class="contents-2MsGLg"> </div>More information about me can be found: <a class="anchor-1MIwyf anchorUnderlineOnHover-2qPutX" href="http://bshambaugh.org/" rel="noreferrer noopener" role="button" tabindex="0" target="_blank" title="http://bshambaugh.org/">http://bshambaugh.org/</a> . I believe only the GitHub is up to date.<br /><br />I probably should just get back to work. I realize that what I am doing
now does not match the original degree that I went to college for. I
looked at the website for these recruiters and realized that what I am
doing might be considered Electrical Engineering. I have a B.S. and M.S.
in Chemical Engineering, which except for about 8 months as an Adjunct
Chemistry Professor I never really pursued a degree with. I largely
abandoned formal education many years ago and learn from people in the
hobbyist and maker communities. Since these postings are not for my
degree I look at them, but think that they are something that I
realistically could not be considered for.<br /><br />I really don't know if you can just build a project and jump in the
industry that way. Either it helps you get a job or build a product that
can be sold. As far as the need to be a professional engineer by
passing the FE exam, working for 4 years at some company, then getting
licensed. I don't know about that. (edit for blog post: I find job descriptions like that attractive, but then I shrink back realizing I have the wrong papers). I see people selling stuff on <a class="anchor-1MIwyf anchorUnderlineOnHover-2qPutX" href="https://www.tindie.com/" rel="noreferrer noopener" role="button" tabindex="0" target="_blank" title="https://www.tindie.com/">https://www.tindie.com/</a>
all the time, so there must be nothing illegal about doing your own
engineering work and then selling it. Maybe it is called something other
than engineering, because some say you can only call yourself an
engineer if you are licensed. I've tried talking to my university, but
I've found the usual experience is that I get tossed from person to
person with no real answer. Then there is the story of things getting a
little messed up in college, which I think in hindsight ,would have been
solved if I just pumped more of my own or loaned funds into coursework.
Strong arm things. I think the real answer is just start over at some
junior college. It may have been wise to do that when I was an Adjunct
Chemistry Professor because I was up there anyway.<br /><br />Added for this blog post:<br />I'll add this this that the job in Vienna didn't work out because I had some blind spots in my knowledge. I thought I knew more about Java (it turns out I had an abbreviated book called Java in 24 hours which didn't cover stuff like interfaces and generics and I didn't get that from other programming language knowledge) than I did and I mistook the applicability of my P2P economy writings like http://bshambaugh.org/Master_17.html to the position even though this sort of activity caused me to land the position.<br />brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-27204744794703352322022-10-14T09:39:00.007-07:002022-10-14T09:39:57.564-07:00 Steps to follow to create and use a local npm module:<p><b> Steps to follow to create and use a local npm module:<u><br /></u></b></p><p><u><br />Create a directory</u>:<br /><br />mkdir npm-test<br /><u><br />Create a package.json file in the directory</u>:<br /><br />cd npm-test<br />npm init</p><p></p><p><i>follow the steps at the prompt, keep the defalts, maybe add a description and author<br /></i></p><p><u>If index.js is the entry point listed in package.json (by default, e.g "main":"index.js", create the index.js file</u>:<br /><br />touch index.js<br /><br /><u>Edit index.js with your favorite text editor. I am using vim. </u>:<u><br /><br /></u>vim index.js<br /><br /><u>Add the following content within vim as a test</u> :<br /><br />exports.printMsg = function() {<br /> console.log("This is a message from the demo package.");</p><p>}<br /><u><br />Create a package with the npm file</u>:<br /><u></u><br />npm pack<br /><br /><u>unzip the tarball</u>:<br /><br />tar xzvf test-npm-1.0.0.tgz<br /><br /><u>In the unzipped package, link to the global package namespace</u>:<br /><br />cd package<br />npm link<br /><br /><u>Create a file folder to call the new npm package</u>:<br /><br />mkdir test-folder<br />cd test-folder<br /><br /><u>Make the npm package available</u>:<br /><br />npm link test-npm<br /><br /><br /><u>Use the npm package in a test file</u>:<br /><br />touch testfile.ts<br />vim testfile.ts<br />add to vim: " import * as testy from 'test-npm' <br />console.log(testy.printMsg) "<br />convert to js: tsc testfile.ts<br />run with node: node testfile.js<br /><br /><u><b>How to reverse the link</b></u>:<br /><br />Remove package in the test-folder: <br /> npm unlink --no-save npm-test<br /><br />Remove global link to the npm package: <br /> cd npm-test/package/ <br /> npm unlink<br /></p><p> <br />Sources:<br /><br /><a href="https://docs.npmjs.com/cli/v6/commands/npm-pack">https://docs.npmjs.com/cli/v6/commands/npm-pack</a><br /><br /><a href="https://medium.com/@debshish.pal/publish-a-npm-package-locally-for-testing-9a00015eb9fd">https://medium.com/@debshish.pal/publish-a-npm-package-locally-for-testing-9a00015eb9fd</a><br /><br /><a href="https://www.cyberciti.biz/faq/unpack-tgz-linux-command-line/">https://www.cyberciti.biz/faq/unpack-tgz-linux-command-line/</a><br /><br /><a href="https://medium.com/@alexishevia/the-magic-behind-npm-link-d94dcb3a81af">https://medium.com/@alexishevia/the-magic-behind-npm-link-d94dcb3a81af</a><br /><br /></p><h1 class="product-title-text" data-spm-anchor-id="a2g0o.detail.1000016.i1.3abb56d7y7DkY6"><br /></h1><p><br /><br /><br /><i></i><br /><br /><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-51196339005901378292022-09-21T10:08:00.000-07:002022-09-21T10:08:04.363-07:00Audio Level Indicator . Log DB LM3915 fed by LF353 for S-meter?I've also discovered an audio level indicator recently: <a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.aliexpress.us/item/2251832501435636.html" href="https://www.aliexpress.us/item/2251832501435636.html" rel="noopener noreferrer" target="_blank">https://www.aliexpress.us/item/2251832501435636.html</a><br />&<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.mouser.com/datasheet/2/405/lm3915-443929.pdf" href="https://www.mouser.com/datasheet/2/405/lm3915-443929.pdf" rel="noopener noreferrer" target="_blank">https://www.mouser.com/datasheet/2/405/lm3915-443929.pdf</a><br />& <a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.ti.com/lit/ds/symlink/lf353-n.pdf" href="https://www.ti.com/lit/ds/symlink/lf353-n.pdf" rel="noopener noreferrer" target="_blank">https://www.ti.com/lit/ds/symlink/lf353-n.pdf</a><br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=jllsqRWhjGM" href="https://www.youtube.com/watch?v=jllsqRWhjGM" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=jllsqRWhjGM</a> (EEVblog <a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/hashtag/490" href="https://www.youtube.com/hashtag/490" rel="noopener noreferrer" target="_blank">#490</a> - Peak Detector Circuit --- feed to lm3915 for led bar display (s-meter))<br />use caps with low dielectric adsorption: <a class="c-link" data-sk="tooltip_parent" data-stringify-link="http://danssmallpartsandkits.net/" href="http://danssmallpartsandkits.net/" rel="noopener noreferrer" target="_blank">http://danssmallpartsandkits.net/</a> (polystyrene caps)<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=Fn5kHhNRsz0" href="https://www.youtube.com/watch?v=Fn5kHhNRsz0" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=Fn5kHhNRsz0</a> (#77: Op Amp Peak Detector Tutorial, with peak detector basics)<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>Why?<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="http://www.ozqrp.com/docs/MST3_manual_V1.pdf" href="http://www.ozqrp.com/docs/MST3_manual_V1.pdf" rel="noopener noreferrer" target="_blank">http://www.ozqrp.com/docs/MST3_manual_V1.pdf</a> (mostly analog radio)<br />--> <a class="c-link" data-sk="tooltip_parent" data-stringify-link="http://www.ozqrp.com/docs/LED_S_meter_manual_V1_0.pdf" href="http://www.ozqrp.com/docs/LED_S_meter_manual_V1_0.pdf" rel="noopener noreferrer" target="_blank">http://www.ozqrp.com/docs/LED_S_meter_manual_V1_0.pdf</a> (S-Meter)<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span><br /><br />My mind also wandered to the digital to signal processing realm:<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.analog.com/media/en/technical-documentation/data-sheets/ad9226.pdf" href="https://www.analog.com/media/en/technical-documentation/data-sheets/ad9226.pdf" rel="noopener noreferrer" target="_blank">https://www.analog.com/media/en/technical-documentation/data-sheets/ad9226.pdf</a> (Analog to Digital)<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-9K/Nano-9K.html" href="https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-9K/Nano-9K.html" rel="noopener noreferrer" target="_blank">https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-9K/Nano-9K.html</a> (Digital Signal Processing)<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.analog.com/media/en/technical-documentation/data-sheets/2604fd.pdf" href="https://www.analog.com/media/en/technical-documentation/data-sheets/2604fd.pdf" rel="noopener noreferrer" target="_blank">https://www.analog.com/media/en/technical-documentation/data-sheets/2604fd.pdf</a> (Digital to Analog) --- to 50MhZ<br /><a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=ZZJekllYUVc" href="https://www.youtube.com/watch?v=ZZJekllYUVc" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=ZZJekllYUVc</a> (R2R resistor ladder to 25MHz)<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>ADC w/ FPGA (<a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=cvdzEQhLpYw" href="https://www.youtube.com/watch?v=cvdzEQhLpYw" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=cvdzEQhLpYw</a>)<br />VLSI Project || DAC( Digital to Analog Converter) interfacing with FPGA using SPI || SPARTAN 3E (<a class="c-link" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=CPGX-Kdvx9s" href="https://www.youtube.com/watch?v=CPGX-Kdvx9s" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=CPGX-Kdvx9s</a>)<span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"> <br /><br />-----------------------------------------------------------------------------------------------------------------------------<br />Addendum:<br /><a href="https://www.elprocus.com/analog-to-digital-converter/">https://www.elprocus.com/analog-to-digital-converter/</a><br /></span>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-43648113641599113492022-09-21T10:03:00.001-07:002022-09-21T14:08:18.568-07:00Oddly I found myself thinking about FPGAs, here are my findings... (tldr....you can try obtaining ZKP BLS12_381 curves)<div class="ii gt" id=":1au"><div class="a3s aiL" id=":19i"><div dir="ltr">This was some bantering also published here: (https://lists.w3.org/Archives/Public/public-credentials/2022Sep/0180.html).<br /><br />As I was studying for my HAM radio general exam, my brain wondered. I thought about digital filtering, which led me to <a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DHJ-C4Incgpw&source=gmail&ust=1663865793470000&usg=AOvVaw0Byctf9vSHayDMc2re3hWT" href="https://www.youtube.com/watch?v=HJ-C4Incgpw" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=HJ-C4Incgpw</a> (How to design and implement a digital low-pass filter on an Arduino).<br />Realizing the limitations of this I soon found myself on <a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DvVjWFFclU6I&source=gmail&ust=1663865793470000&usg=AOvVaw3ZZxon_BW48P1ynE79Ch4b" href="https://www.youtube.com/watch?v=vVjWFFclU6I" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=vVjWFFclU6I</a> (Implementing Digital Signal Processing on the FPGA of a FlexRIO). <br /><br />Naturally the next morning this led to exploration of <a data-saferedirecturl="https://www.google.com/url?q=https://identity.foundation/bbs-signature/draft-looker-cfrg-bbs-signatures.html%23name-bls12-381-ciphersuites&source=gmail&ust=1663865793470000&usg=AOvVaw1IQP2-RBTMgZBxLNeO08g7" href="https://identity.foundation/bbs-signature/draft-looker-cfrg-bbs-signatures.html#name-bls12-381-ciphersuites" target="_blank">https://identity.foundation/<wbr></wbr>bbs-signature/draft-looker-<wbr></wbr>cfrg-bbs-signatures.html#name-<wbr></wbr>bls12-381-ciphersuites</a> and discovery of <br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DvCG5_nxm2G4&source=gmail&ust=1663865793470000&usg=AOvVaw3rVKodb1uTszGoYRi5fshO" href="https://www.youtube.com/watch?v=vCG5_nxm2G4" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=vCG5_nxm2G4</a> (MeganWachs - Keynote RISC-V and FPGAs: Open Source Hardware Hacking) which led to <a data-saferedirecturl="https://www.google.com/url?q=https://github.com/riscv/riscv-crypto&source=gmail&ust=1663865793470000&usg=AOvVaw0h6a21GYrUJFX5ja1e-9Aa" href="https://github.com/riscv/riscv-crypto" target="_blank">https://github.com/riscv/<wbr></wbr>riscv-crypto</a> and<br /><a data-saferedirecturl="https://www.google.com/url?q=https://riscv.org/wp-content/uploads/2017/12/Wed-1354-RISCV-CryptoExtensions-RichardNewell.pdf&source=gmail&ust=1663865793470000&usg=AOvVaw2W0B4B79Epkpfnd3EGXvdL" href="https://riscv.org/wp-content/uploads/2017/12/Wed-1354-RISCV-CryptoExtensions-RichardNewell.pdf" target="_blank">https://riscv.org/wp-content/<wbr></wbr>uploads/2017/12/Wed-1354-<wbr></wbr>RISCV-CryptoExtensions-<wbr></wbr>RichardNewell.pdf</a> and <a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3D-HVRjbxWF-I&source=gmail&ust=1663865793470000&usg=AOvVaw3Qn3BvCWS5AzC3iSUHz_vi" href="https://www.youtube.com/watch?v=-HVRjbxWF-I" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=-HVRjbxWF-I</a> (A Guide to the RISC V Cryptography Extension).<br /><br />I also found bls12_381 on an FPGA: <a data-saferedirecturl="https://www.google.com/url?q=https://dspace.mit.edu/bitstream/handle/1721.1/138122/Paper_PrePrint_Version.pdf&source=gmail&ust=1663865793470000&usg=AOvVaw1_7fmz00qYvaw2ArjvmE1D" href="https://dspace.mit.edu/bitstream/handle/1721.1/138122/Paper_PrePrint_Version.pdf" target="_blank">https://dspace.mit.edu/<wbr></wbr>bitstream/handle/1721.1/<wbr></wbr>138122/Paper_PrePrint_Version.<wbr></wbr>pdf</a> (done on an in-house FPGA)<br /><br />This bls12_381 on FPGAs also led to discovery of work by the ZCash Foundation: <a data-saferedirecturl="https://www.google.com/url?q=https://github.com/ZcashFoundation/zcash-fpga/tree/master/zcash_fpga/src/rtl/bls12_381&source=gmail&ust=1663865793470000&usg=AOvVaw1qoO5-33PLoGs5Yzsb0zFX" href="https://github.com/ZcashFoundation/zcash-fpga/tree/master/zcash_fpga/src/rtl/bls12_381" target="_blank">https://github.com/<wbr></wbr>ZcashFoundation/zcash-fpga/<wbr></wbr>tree/master/zcash_fpga/src/<wbr></wbr>rtl/bls12_381</a> . Apparently this was done on AWS FPGAs.<br /><br /><div>I
discovered the Tang Nano 9K FPGA Development Board GOWIN GW1NR-9 RISC-V
HDMI kit . Realizing they were inexpensive, I grabbed two imagining
IIW. I also recalled my time at the <br /></div><div>Virtual Silicon Salon (<a data-saferedirecturl="https://www.google.com/url?q=https://www.siliconsalon.info/&source=gmail&ust=1663865793470000&usg=AOvVaw1dZTngADtnnuaPIjor1jqr" href="https://www.siliconsalon.info/" target="_blank">https://www.siliconsalon.<wbr></wbr>info/</a>) and remembered that hardware was slow, and</div><div>IIRC BLS signatures used for selective disclosure are not yet available in hardware.<br /></div>I've
never worked with FPGAs before. I discovered what I found is like the
Ice40 (unfortunately hard to find at the moment), but it did lead me to
some good resources.<br /><br />ice40 playlist:<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DDwxBkYhor80&source=gmail&ust=1663865793471000&usg=AOvVaw2yKmLaGLI_IZdH0WqM7c6q" href="https://www.youtube.com/watch?v=DwxBkYhor80" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=DwxBkYhor80</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DUlgJ7TRU1KI&source=gmail&ust=1663865793471000&usg=AOvVaw1_yi2yiqYds707GzmWZQLs" href="https://www.youtube.com/watch?v=UlgJ7TRU1KI" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=UlgJ7TRU1KI</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3D6UgVUExXlvg&source=gmail&ust=1663865793471000&usg=AOvVaw2GTQ1DBz5EJfvR0QneS2EW" href="https://www.youtube.com/watch?v=6UgVUExXlvg" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=6UgVUExXlvg</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DdTL0qrzme4&source=gmail&ust=1663865793471000&usg=AOvVaw3_Tj-wou4qWj_pWMBj0mnx" href="https://www.youtube.com/watch?v=dTL0qrzme4" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=dTL0qrzme4</a> <br />(I found that this was still available, later in exploration: <a data-saferedirecturl="https://www.google.com/url?q=https://tinyvision.ai/&source=gmail&ust=1663865793471000&usg=AOvVaw1DHWnC9LhUskJ45SO9E5uY" href="https://tinyvision.ai/" target="_blank">https://tinyvision.ai/</a>) --- ditto for tinyFPGA (<a data-saferedirecturl="https://www.google.com/url?q=https://tinyfpga.com/&source=gmail&ust=1663865793471000&usg=AOvVaw3QCTOEkaljyUYia8Bq14op" href="https://tinyfpga.com/" target="_blank">https://tinyfpga.com/</a>)<br /><br /><br />Tang Nano from Gowin Semi:<br /><a data-saferedirecturl="https://www.google.com/url?q=https://github.com/gowinsemi&source=gmail&ust=1663865793471000&usg=AOvVaw2DJRFAwCXRfKIwEp5FgHZ_" href="https://github.com/gowinsemi" target="_blank">https://github.com/gowinsemi</a> (Github)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/channel/UC0VdsHXVKAaMkFVyBzVLVIQ&source=gmail&ust=1663865793471000&usg=AOvVaw0eSCE9I5cmv0ZKJBTo1aiM" href="https://www.youtube.com/channel/UC0VdsHXVKAaMkFVyBzVLVIQ" target="_blank">https://www.youtube.com/<wbr></wbr>channel/<wbr></wbr>UC0VdsHXVKAaMkFVyBzVLVIQ</a> (YouTube)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-9K/Nano-9K.html&source=gmail&ust=1663865793471000&usg=AOvVaw1KUHsaVN1VXkQlycy76Awb" href="https://wiki.sipeed.com/hardware/en/tang/Tang-Nano-9K/Nano-9K.html" target="_blank">https://wiki.sipeed.com/<wbr></wbr>hardware/en/tang/Tang-Nano-9K/<wbr></wbr>Nano-9K.html</a> (Wiki)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DWKB04zxLrHA&source=gmail&ust=1663865793471000&usg=AOvVaw2MZ6ljSIlChlRxIVhxjBv2" href="https://www.youtube.com/watch?v=WKB04zxLrHA" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=WKB04zxLrHA</a> (Tang Nano 9k)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DkyQLtBh6h0U&source=gmail&ust=1663865793471000&usg=AOvVaw24awfGoiN4a2tjxxIKgJoa" href="https://www.youtube.com/watch?v=kyQLtBh6h0U" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=kyQLtBh6h0U</a> (FPT2020: A Complete Open Source Design Flow for Gowin FPGAs)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DGh9VfCvTWck&source=gmail&ust=1663865793471000&usg=AOvVaw32XGLWnfrr9KMtKXAnh9xj" href="https://www.youtube.com/watch?v=Gh9VfCvTWck" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=Gh9VfCvTWck</a> (2nd Open Source video, possibly building on the former)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.bananatronics.org/first-steps-with-the-tang-nano-fpga-development-board/&source=gmail&ust=1663865793471000&usg=AOvVaw1WgFRrFdRc7Ee38_JqSHQK" href="https://www.bananatronics.org/first-steps-with-the-tang-nano-fpga-development-board/" target="_blank">https://www.bananatronics.org/<wbr></wbr>first-steps-with-the-tang-<wbr></wbr>nano-fpga-development-board/</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.cnx-software.com/2022/01/17/tang-nano-9k-fpga-board-can-emulate-picorv32-risc-v-soft-core-with-all-peripherals/&source=gmail&ust=1663865793471000&usg=AOvVaw2qdu-uh0-q8NCCJDsMUj7M" href="https://www.cnx-software.com/2022/01/17/tang-nano-9k-fpga-board-can-emulate-picorv32-risc-v-soft-core-with-all-peripherals/" target="_blank">https://www.cnx-software.com/<wbr></wbr>2022/01/17/tang-nano-9k-fpga-<wbr></wbr>board-can-emulate-picorv32-<wbr></wbr>risc-v-soft-core-with-all-<wbr></wbr>peripherals/</a><br /><br />General FPGA links:<br /><a data-saferedirecturl="https://www.google.com/url?q=https://www-electronicayciencia-com.translate.goog/2021/07/tang_nano_fpga.html?_x_tr_sl%3Dauto%26_x_tr_tl%3Den%26_x_tr_hl%3Den%26_x_tr_pto%3Dwapp&source=gmail&ust=1663865793471000&usg=AOvVaw05s3x6LcppSogtqsVFByc_" href="https://www-electronicayciencia-com.translate.goog/2021/07/tang_nano_fpga.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp" target="_blank">https://www-<wbr></wbr>electronicayciencia-com.<wbr></wbr>translate.goog/2021/07/tang_<wbr></wbr>nano_fpga.html?_x_tr_sl=auto&_<wbr></wbr>x_tr_tl=en&_x_tr_hl=en&_x_tr_<wbr></wbr>pto=wapp</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DgUsHwi4M4xE&source=gmail&ust=1663865793471000&usg=AOvVaw1030Fzw9lZLhPU6rsnM3B1" href="https://www.youtube.com/watch?v=gUsHwi4M4xE" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=gUsHwi4M4xE</a> (EEVblog#496 What is an FPGA?)<br /><a data-saferedirecturl="https://www.google.com/url?q=https://fpgatutorial.com/getting-started-with-fpga-development-process/&source=gmail&ust=1663865793471000&usg=AOvVaw3DGGQASiUk0U_VIqu9aN7y" href="https://fpgatutorial.com/getting-started-with-fpga-development-process/" target="_blank">https://fpgatutorial.com/<wbr></wbr>getting-started-with-fpga-<wbr></wbr>development-process/</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://www.fpga4student.com/p/verilog-project.html&source=gmail&ust=1663865793471000&usg=AOvVaw3uE7ZUG11SAAf9FTFNU--K" href="https://www.fpga4student.com/p/verilog-project.html" target="_blank">https://www.fpga4student.com/<wbr></wbr>p/verilog-project.html</a><br /><a data-saferedirecturl="https://www.google.com/url?q=https://github.com/BrunoLevy/learn-fpga&source=gmail&ust=1663865793471000&usg=AOvVaw12pwAWuQFMGlk7S9YEQxdc" href="https://github.com/BrunoLevy/learn-fpga" target="_blank">https://github.com/BrunoLevy/<wbr></wbr>learn-fpga</a><br /><br />------------------------------------<br />Addendum:<br /><a href="https://medium.com/asecuritysite-when-bob-met-alice/explaining-bls12-381-the-zero-knowledge-proof-curve-aa5eabec8261">https://medium.com/asecuritysite-when-bob-met-alice/explaining-bls12-381-the-zero-knowledge-proof-curve-aa5eabec8261</a><br /><br /><a href="https://www.youtube.com/watch?app=desktop&v=sOKJWAnrbHM">https://www.youtube.com/watch?app=desktop&v=sOKJWAnrbHM</a> (ARM with FPGA)<br /></div><div class="yj6qo"></div><div class="adL">
</div></div></div><span class="aZo"><a class="aQy aZR e aZr" data-tooltip-align="t,c" data-tooltip-class="a1V" data-tooltip="Implementing Digital Signal Processing on the FPGA of a FlexRIO" href="https://www.youtube.com/watch?v=vVjWFFclU6I&authuser=0" id=":1cd" role="link" tabindex="0" target="_blank"><div aria-hidden="true"><div class="aSG"></div><div class="aVY aZn"><div class="aZm"></div></div><div class="aSH"><br /><br /><br /></div></div></a></span>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-64270849401565730822022-08-14T11:43:00.004-07:002022-08-14T11:44:10.442-07:00WiFi Manager for connecting the ESP32 to a WiFi Network when you don't know the password<p> https://www.youtube.com/watch?v=_uXKIEmJh3g<br /><br /><b>WiFiManager with ESP32 - Stop Hard-coding WiFi Credentials! </b><br /><br /> I suppose you also could use Bluetooth or even LoRa if you had the transceiver. <br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-24625953994140892432022-08-14T07:42:00.000-07:002022-08-14T07:42:05.899-07:00LoRa Location Tracking<p> https://www.rs-online.com/designspark/lora-location-tracker-introduction<br /><br />https://tinygs.com/<br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-33547771303148315842022-07-27T09:36:00.001-07:002022-07-27T09:36:03.188-07:00random comment about single channel gateway<p> </p><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text" data-qa="message-text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">fwiw, I touched <a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://github.com/HelTecAutomation/ESP32_LoRaWAN" href="https://github.com/HelTecAutomation/ESP32_LoRaWAN" rel="noopener noreferrer" tabindex="-1" target="_blank">https://github.com/HelTecAutomation/ESP32_LoRaWAN</a>
last December. I haven't rolled it into a talk though and there is a
lot more to LoRa than what I utilized. Basically, rather than buying a
gateway I stuck with a single channel one made with ESP32_LoRa.<br /><a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try7/edgeDevices/ESP32_ToDo/CubeCell_LoRa_To_ESP32_RX_To_NodeJS.ino#L11" href="https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try7/edgeDevices/ESP32_ToDo/CubeCell_LoRa_To_ESP32_RX_To_NodeJS.ino#L11" rel="noopener noreferrer" tabindex="-1" target="_blank">https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try[…]/edgeDevices/ESP32_ToDo/CubeCell_LoRa_To_ESP32_RX_To_NodeJS.ino</a><br /><a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try7/edgeDevices/CubeCell_ToDo/ESP32_To_CubeCell_RX.ino" href="https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try7/edgeDevices/CubeCell_ToDo/ESP32_To_CubeCell_RX.ino" rel="noopener noreferrer" tabindex="-1" target="_blank">https://github.com/bshambaugh/BlinkyProject/blob/master/CubeCellandHeltecESP32_try7/edgeDevices/CubeCell_ToDo/ESP32_To_CubeCell_RX.ino</a><span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"> (edited) <br /></span></div></div></div></div></div></div>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-7434189375090792312022-07-26T15:13:00.003-07:002022-07-26T15:13:59.940-07:00journal july 26th<p> </p><div class="markup-eYLPri messageContent-2t3eCI" id="message-content-1001612521842679858">I realize you've got you're own lives, so you don't need to read this. I'm in front of the computer a lot, and just typing things out comes most naturally. It's a journal, to get my thoughts out of my head and hopefully get back to what I need to do to move forward.
I'm happy that there is a distributed systems paper group. It was a fun way to connect, and maybe something a little more neutral than asking for help with a project.
I don't feel like I fit in where I live. There are a lot of React and C# development jobs, but I typically don't gravitate that direction. I thought I had it made when my HAM buddies challenged me to find a gig, and I found one on GitCoin for a known web3 project,
but it got closed up when I pointed out a broken link in the documentation. Oh well. I spend a lot of time at home these days. It's frustrating that my interests don't seem to fit in with the local market. I've been into distributed/decentralized systems for about
10 years but it doesn't seem to be a thing here. I always have to remind myself to keep my chin up and focus on where I want to go, even if that means finding and investing in another community to succeed.
I found a JavaScript discord that I wasn't aware of, so it is another place to look if I get totally stuck.</div><div class="buttonContainer-1502pf"><div aria-label="Message Actions" class="buttons-3dF5Kd container-2gUZhU isHeader-2bbX-L" role="group"></div></div><div class="contents-2MsGLg"> </div>I
think I will get back to working with group theory. I've been trying to
figure out how this fits in with cryptography, and well category theory
too. (It's a subset afaik).
Tonight is the HAM thing. I guess if I cannot pull myself away from my
project and learn something like React or C#, I could work at the
drive-in for extra cash. Or just not bother, and read books and build
projects for as long as I can. I think I've been
pretty good about managing my money, with a few exceptions. I'll be
going to the Internet Identity Workshop this fall. I hope to present on
an abstract data model for dids and v.c. (if possible) and talk about my
adventures with IoT. A friend of mine just sent
me a cryptographic protocol that they developed. I'd like to check it
out. If it can get me away from using an auxiliary cryptographic
co-processor it could save on the complexity and unit cost.brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-80705078793655251882022-05-02T13:21:00.001-07:002022-05-02T13:21:07.177-07:00String, Char *, and char[]<p>https://www.geeksforgeeks.org/convert-string-char-array-cpp/<br /><br />https://www.techiedelight.com/convert-std-string-char-cpp/<br /><br />https://www.geeksforgeeks.org/char-vs-stdstring-vs-char-c/<br /><br /><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-69765117572852988872022-02-16T11:41:00.003-08:002022-02-16T11:41:31.748-08:00identity with skynet<p> Identity with skynet:<br /><br />https://blog.sia.tech/skyid-how-to-make-decentralized-identity-using-skynet-2b282682f5b3<br /><br /> I wonder if they support verifiable credentials though....I suppose this would require a did method.... does skydb have a computer layer??? would this be needed?<br /><br />I think something was said about creating a react app, so maybe this is possible.<br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-85271848083327220742021-12-29T07:44:00.001-08:002021-12-29T07:44:04.962-08:00Thoughts about my project (progress, maintainability, productivity)<p>Reposting from the techlahoma #tech-talk channel<br /><br />I'm working on my project, but it seems to be taking awhile. I think
about each part and built a small prototype of each part and then I
piece these parts together thinking about the whole.<br /><br />Does oop help organize all the moving parts so it is easier to rationalize?<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>Maybe
it is how my brain works, but I am basically forced to print my code
out a lot, mark it up with pen,crayon, pencil, compare it to new (and
previous) code that works, and fit it into new code. In graduate school,
I did a lot of procedural programming, and C is a procedural language. I
do print out code that is written in typescript, so to extent it is my
brain.<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>I
think writing tests both in Unity for C and Jest for
typescript/javascript has helped me cover some bases. It hasn't always
been TDD. I think some of the time I have had not but a vague idea of
what I should code, and what libraries I should use, or what parts
should be there. It was this should do this, or this should talk to
this. ...Over time by working through it I discovered I also needed to
do this<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>Valgrind
is a very useful tool for writing C code. It just saved the day today
my reminded me I needed to initialize a struct. After I did this, my
code worked in a much more desirable way.<span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"> (edited) <br /><br /></span>I'm definitely coding by code I can find online. It is not always easy
to know all of the code that I need to get small things to work. Some
might call this boilerplate?z<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>I
remember starting out with HTTP requests, and then through discussions
here, switching to websockets. I needed a persistent connection that did
not hang up because I was constantly streaming data out. (if I recall
correctly)<span class="c-mrkdwn__br" data-stringify-type="paragraph-break"></span>My
computer is littered with small programs that I have run or compiled.
Some only have a small change from the next. At times when I have had
the discipline to use Git my organization has improved.<span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"> (edited) <br /><br /></span>I do get scenes like this quite a bit. There is nothing quite like
printing stuff out and marking it up, whether it be code, a tutorial, or
documentation.<br /><br /><span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"></span><span class="c-message__edited_label" data-sk="tooltip_parent" dir="ltr"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg5FBMk8-euKQ3NdwIREY9sIUp14ssaZFCVyNTQd4oYsIN22YJjD8qlEhrL5VyC4o4vtp8CgyoHqk8-KHvJrJIKJYpWVKTGa_Uy9gwJ6l_Kp_eCfdS9O-Jp37CsyMbRetTAC7lIQVS8TBtmcemtJxrCcIIVux-mbVKLMH_NEjvgVFQRRNz8-4EnFl_p=s1280" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEg5FBMk8-euKQ3NdwIREY9sIUp14ssaZFCVyNTQd4oYsIN22YJjD8qlEhrL5VyC4o4vtp8CgyoHqk8-KHvJrJIKJYpWVKTGa_Uy9gwJ6l_Kp_eCfdS9O-Jp37CsyMbRetTAC7lIQVS8TBtmcemtJxrCcIIVux-mbVKLMH_NEjvgVFQRRNz8-4EnFl_p=s320" width="320" /></a></div><br /><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">I thought that maybe this should be a blog post.</div></div></div></div></div></div><div class="c-virtual_list__item" data-qa="virtual-list-item" id="C146ERA8K-1640756620.486500-thread-list-threads-flexpane_1640758023.487900" role="listitem" style="top: 1365px;" tabindex="-1"><div class="c-message_kit__background c-message_kit__message c-message_kit__thread_message" data-qa-placeholder="false" data-qa-unprocessed="false" data-qa="message_container" role="presentation"><div aria-roledescription="message" class="c-message_kit__hover" data-qa-hover="true" role="document"><div class="c-message_kit__actions c-message_kit__actions--default" style="position: relative;"><div class="p-autoclog__hook"><div class="c-message_kit__gutter"><div class="c-message_kit__gutter__right" data-qa="message_content" role="presentation"><br /><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">One
of the repositories that I have been making pull requests on requires
that I run a linter in addition to jest. I think they have their github
repository set up with circleCI that includes this to protect against
poorly behaving actors like me.</div></div></div></div></div></div></div></div></div></div></div></div></div><div class="c-virtual_list__item" data-qa="virtual-list-item" id="C146ERA8K-1640756620.486500-thread-list-threads-flexpane_1640758205.488100" role="listitem" style="top: 1483px;" tabindex="-1"><div class="c-message_kit__background c-message_kit__message c-message_kit__thread_message" data-qa-placeholder="false" data-qa-unprocessed="false" data-qa="message_container" role="presentation"><div aria-roledescription="message" class="c-message_kit__hover" data-qa-hover="true" role="document"><div class="c-message_kit__actions c-message_kit__actions--default" style="position: relative;"><div class="p-autoclog__hook"><div class="c-message_kit__gutter"><div class="c-message_kit__gutter__right" data-qa="message_content" role="presentation"><br /><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">In
the future, if I choose to refactor my C code to C++ code it might be
useful to write tests using a test framework like Unity. I have a much
better idea of what should be there, so does seem likely that I will be
able to talk about each individual piece of logic.</div></div></div></div></div></div></div></div></div></div></div></div></div><div class="c-virtual_list__item" data-qa="virtual-list-item" id="C146ERA8K-1640756620.486500-thread-list-threads-flexpane_1640758362.488300" role="listitem" style="top: 1623px;" tabindex="-1"><div class="c-message_kit__background c-message_kit__message c-message_kit__thread_message" data-qa-placeholder="false" data-qa-unprocessed="false" data-qa="message_container" role="presentation"><div aria-roledescription="message" class="c-message_kit__hover" data-qa-hover="true" role="document"><div class="c-message_kit__actions c-message_kit__actions--default" style="position: relative;"><div class="p-autoclog__hook"><div class="c-message_kit__gutter"><div class="c-message_kit__gutter__right" data-qa="message_content" role="presentation"><br /><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">It's
amazing how quickly I can forget what I did. I look at a code base that
I spent a good while one many months ago and be surprised that I had
the ability to write it. After a few days spent relearning, I can
usually get up to speed.</div></div></div></div></div></div></div></div></div></div></div></div></div><div class="c-message_kit__gutter__right" data-qa="message_content" role="presentation"><br /><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">I
think having more tests could help me recover from amenesia. If it is a
bunch of files that I have to trace through then that can be quite time
consuming and challenging. Inevitably that always seems to happen. I
usually can trick out what my train of thought was, but it takes time.</div></div></div></div></div></div></div>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-16195671510717302922021-12-12T20:24:00.005-08:002021-12-12T20:24:58.649-08:00Musings<p> <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI4B9EnJNYn2hBEQpZmSl1P6BCF5uihjArCWqPXs5RYoqTtv2G-fmQoiesyIyWH-qXYpMHDBuJSAQIJnsTMzszFyOc-V2awLshP-DV1WmfIAcPr4CCd7SZa0ZlV5aAy9ZJFOiY0rps4l8/s1252/for_the_esp32_signer2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1252" data-original-width="1008" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI4B9EnJNYn2hBEQpZmSl1P6BCF5uihjArCWqPXs5RYoqTtv2G-fmQoiesyIyWH-qXYpMHDBuJSAQIJnsTMzszFyOc-V2awLshP-DV1WmfIAcPr4CCd7SZa0ZlV5aAy9ZJFOiY0rps4l8/s320/for_the_esp32_signer2.png" width="258" /></a><br />Separation of concerns:<br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1J_ykYOVaef8tSBrsUhhr9FzsCPy_8NMzhSawnW9cuM4P7sm9L8gtXEGPEkYl_C7LSnWdsq7YzqxZtNXNSnrR-hTQ7gdZdq4PL5ibLsq2dHOSglGigAUlr4XnezyeNCs0d5k3C0ma6Bc/s1356/ceramic_call_may2021_discussion2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="907" data-original-width="1356" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1J_ykYOVaef8tSBrsUhhr9FzsCPy_8NMzhSawnW9cuM4P7sm9L8gtXEGPEkYl_C7LSnWdsq7YzqxZtNXNSnrR-hTQ7gdZdq4PL5ibLsq2dHOSglGigAUlr4XnezyeNCs0d5k3C0ma6Bc/s320/ceramic_call_may2021_discussion2.png" width="320" /></a></div>Summarizing: <a href="https://www.youtube.com/watch?v=Z8Wf7Srsg5U&t=2859s">https://www.youtube.com/watch?v=Z8Wf7Srsg5U&t=2859s</a><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvhkjTfCe7Qa8Hsq3FixBe20adA1Z1QQL7__mxP4y_bjXBxvtW0FPe-iVzAc6GX3KsmfnZ252ejuiYYQUVoDXujy9jSgLPIMU4lMmGsOWRC2gwhIuXbvo_RaYDCyUEBWp5KZiTAvqdSM/s1689/esp32side_nodejs_server_side2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1689" data-original-width="1275" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvhkjTfCe7Qa8Hsq3FixBe20adA1Z1QQL7__mxP4y_bjXBxvtW0FPe-iVzAc6GX3KsmfnZ252ejuiYYQUVoDXujy9jSgLPIMU4lMmGsOWRC2gwhIuXbvo_RaYDCyUEBWp5KZiTAvqdSM/s320/esp32side_nodejs_server_side2.png" width="242" /></a></div>Approach to take:brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-45514354654745221062021-12-02T08:41:00.002-08:002021-12-02T10:03:44.228-08:00Using Jest Links<a href="https://www.valentinog.com/blog/jest/">https://www.valentinog.com/blog/jest/</a><br />Jest Tutorial for Beginners: Getting Started With JavaScript Testing, July 25, 2020 by Valentino Gagliardi<br /><br />Expect a function to throw an exception in Jest, July 4, 2019 by ecadmin<br /><a href="https://eloquentcode.com/expect-a-function-to-throw-an-exception-in-jest">https://eloquentcode.com/expect-a-function-to-throw-an-exception-in-jest</a><br /><br />An Async Example : Jest<br /><a href="https://jestjs.io/docs/tutorial-async#resolves">https://jestjs.io/docs/tutorial-async#resolves<br /><br /></a>Jest Partial Match:<br /><a href="https://codewithhugo.com/jest-array-object-match-contain/">https://codewithhugo.com/jest-array-object-match-contain/</a><br />brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-22491043574505696272021-12-02T07:45:00.003-08:002021-12-02T07:45:12.004-08:00Continuous Integration on GitHub Links<p><a href="https://docs.github.com/en/actions/automating-builds-and-tests/about-continuous-integration">https://docs.github.com/en/actions/automating-builds-and-tests/about-continuous-integration</a><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-14728296567109142302021-11-27T08:05:00.000-08:002021-11-27T08:05:26.910-08:00Node.js Stack Trace and Debugger Links<p><a href="https://stackoverflow.com/questions/38597908/how-do-i-debug-node-js-errors-when-my-code-is-nowhere-in-the-stack-trace">https://stackoverflow.com/questions/38597908/how-do-i-debug-node-js-errors-when-my-code-is-nowhere-in-the-stack-trace</a><br /><br />Node.js Debugger:<br /><a href="https://nodejs.org/api/debugger.html">https://nodejs.org/api/debugger.html</a><br /><br /><a href="https://www.youtube.com/watch?v=XbB5_fHHxRc">https://www.youtube.com/watch?v=XbB5_fHHxRc</a><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-6286190032367437192021-11-26T15:15:00.009-08:002021-11-26T16:02:00.968-08:00Notes for GitHub<p> Git Branching, Git Merging:<br /><a href="https://www.varonis.com/blog/git-branching/"><br />https://www.varonis.com/blog/git-branching/</a><br /><br />How to add a commit to an existing pull request:<br /><br /><a href="https://saraford.net/2017/01/20/how-to-add-changes-to-a-pull-request-after-you-have-already-created-a-pull-request-020/">https://saraford.net/2017/01/20/how-to-add-changes-to-a-pull-request-after-you-have-already-created-a-pull-request-020/<br /><br /><br /></a>Add to an existing pull request:<br /><br /><a href="https://github.com/github/hub/issues/198">https://github.com/github/hub/issues/198<br /><br /><br /></a>Committing to someone else's pull request:<br /><br /><a href="https://tighten.co/blog/adding-commits-to-a-pull-request/">https://tighten.co/blog/adding-commits-to-a-pull-request/</a><br /><br />(this fails because I do not have access rights)<br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-49786154456185315652021-11-15T06:59:00.004-08:002021-11-15T15:50:59.742-08:00Heated Board Notes<p> I like this. It allows me to build a heater with items I already have: <a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=WT9xWyLK-Ic" href="https://www.youtube.com/watch?v=WT9xWyLK-Ic" rel="noopener noreferrer" tabindex="-1" target="_blank">https://www.youtube.com/watch?v=WT9xWyLK-Ic</a><br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWSHxdMTNHD7TCXzGyLB2e6L8IMxVrvpv5avDa11Km0o3XTy5n95LPeJVOnCKrrdSDh_lc65wkWcgJ8W2F5E4kEhK9Fsji0XenTcx_V-FsYehA7r_T3R2yS7QrcGelFQZBBMdasfCQudQ/s1280/196E46A9-0232-455A-BA1F-56106D37EC07.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWSHxdMTNHD7TCXzGyLB2e6L8IMxVrvpv5avDa11Km0o3XTy5n95LPeJVOnCKrrdSDh_lc65wkWcgJ8W2F5E4kEhK9Fsji0XenTcx_V-FsYehA7r_T3R2yS7QrcGelFQZBBMdasfCQudQ/s320/196E46A9-0232-455A-BA1F-56106D37EC07.jpeg" width="320" /></a></div><br />Maybe add this: <a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://www.youtube.com/watch?v=LXhTFBGgskI" href="https://www.youtube.com/watch?v=LXhTFBGgskI" rel="noopener noreferrer" tabindex="-1" target="_blank">https://www.youtube.com/watch?v=LXhTFBGgskI</a> to get the control part.<br /><br />It looks like the heater is good to at least 100 Celsius, or maybe 120 Celsius to push it.<br /><a href="https://www.nanotech-elektronik.pl/index.php/en/info/materials">https://www.nanotech-elektronik.pl/index.php/en/info/materials<br /><br /><br /></a>I did some soldering, and now I have:<br /><br /><br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBCk9e3lPSNgQ2K1iqlvedGCpq4awLk1ZMwYoyhX39rYyypZxJtFr0Iv03Jyn_461Pj1aTtwmNcfv2HqHYXwCs9SJyDTuhERn7CftNWQ0O8obE9egYBlPvunJw5D8-iAT2D1XftGcNazo/s1280/93B5C983-23E8-4271-9BCF-819AD1363203.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBCk9e3lPSNgQ2K1iqlvedGCpq4awLk1ZMwYoyhX39rYyypZxJtFr0Iv03Jyn_461Pj1aTtwmNcfv2HqHYXwCs9SJyDTuhERn7CftNWQ0O8obE9egYBlPvunJw5D8-iAT2D1XftGcNazo/s320/93B5C983-23E8-4271-9BCF-819AD1363203.jpeg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYR2e5RPD-s2XISYCOg2kIwsAi-EL1ksgKD3v4wecedut44nH5tfHstChoRcSjDpudPuTfi8q4tV88y2z5oc0L1yU706fBqsVtn2vDs9ePI1qahMJoYs16qr9gEfQgs23c6yQKU1RDDU/s1280/74132EA3-4596-4CB0-B339-99D1FC93B91C.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYR2e5RPD-s2XISYCOg2kIwsAi-EL1ksgKD3v4wecedut44nH5tfHstChoRcSjDpudPuTfi8q4tV88y2z5oc0L1yU706fBqsVtn2vDs9ePI1qahMJoYs16qr9gEfQgs23c6yQKU1RDDU/s320/74132EA3-4596-4CB0-B339-99D1FC93B91C.jpeg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6QWfOO0OfYkJ6L6wjlqunDe2BP0C01SMLeDuUJ8w3GnhlB3sXPQFupfoyUerWJacMuq1yT8NZuM-zsyTw8s3yrl4dgSH1HnGNu1vSZw5MrSIyYLfclTTOxQzVFi2v-tCqVV4-PkFSmy8/s1280/BF9CAD9E-7E94-493A-A6BB-C7DA3A0ACEF8.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6QWfOO0OfYkJ6L6wjlqunDe2BP0C01SMLeDuUJ8w3GnhlB3sXPQFupfoyUerWJacMuq1yT8NZuM-zsyTw8s3yrl4dgSH1HnGNu1vSZw5MrSIyYLfclTTOxQzVFi2v-tCqVV4-PkFSmy8/s320/BF9CAD9E-7E94-493A-A6BB-C7DA3A0ACEF8.jpeg" width="320" /></a></div><br />I still need to add some lead wires and clean up unwanted solder from the strip traces.<br /><br />I added some wire:<br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPJIoirvFCCUirfr2r89wkTxDTddCoLgZ7xHMYpoytfKMqilFhnbzusBVaOQERqiToGmtuDHybuXNo-OnTJcEIAbj8HpIOoVsuX0CE9orvrX3MYBH-Q6n0L_0h48JmO823KZG1P4yQQA/s1280/FAB9FA3C-857C-4165-8ED7-625354DF2772.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiPJIoirvFCCUirfr2r89wkTxDTddCoLgZ7xHMYpoytfKMqilFhnbzusBVaOQERqiToGmtuDHybuXNo-OnTJcEIAbj8HpIOoVsuX0CE9orvrX3MYBH-Q6n0L_0h48JmO823KZG1P4yQQA/s320/FAB9FA3C-857C-4165-8ED7-625354DF2772.jpeg" width="320" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZkeCj3MiYXgA4Oz33cAGil3274__1rWhES8XqexxVz2TG3xeFIW42sX5VSw6tSxeqoYOoCH_CqoGDM0kTev6TeHEQdq0JC2qtkVvfsEA38oMNx_1s6Y8KXE3PH7W0Yv-j0CV5veOhVw/s1280/4B42BE0E-FDA3-44BE-8CC4-5F5099639926.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZkeCj3MiYXgA4Oz33cAGil3274__1rWhES8XqexxVz2TG3xeFIW42sX5VSw6tSxeqoYOoCH_CqoGDM0kTev6TeHEQdq0JC2qtkVvfsEA38oMNx_1s6Y8KXE3PH7W0Yv-j0CV5veOhVw/s320/4B42BE0E-FDA3-44BE-8CC4-5F5099639926.jpeg" width="320" /></a></div><br /><br />But I might still have some solder in a gap:<br /><br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuNZWeHCFRboiKuCCdy41XiHzzfazZqS4pBv0_-VqQEtbiPgbSnHkIgDxsgdFQujHSEzpRz9SsrPEuE6io95NtznOT5Tnq36Pze1K0Z-MYlsnvDXPbzi43msO-DTI-GBCIR9R2PsNJBfY/s1280/7FDAB16F-9A47-423C-8EB3-C53735EECC58.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuNZWeHCFRboiKuCCdy41XiHzzfazZqS4pBv0_-VqQEtbiPgbSnHkIgDxsgdFQujHSEzpRz9SsrPEuE6io95NtznOT5Tnq36Pze1K0Z-MYlsnvDXPbzi43msO-DTI-GBCIR9R2PsNJBfY/s320/7FDAB16F-9A47-423C-8EB3-C53735EECC58.jpeg" width="320" /></a></div><br />brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-49629242616505799972021-11-09T15:28:00.003-08:002021-11-09T15:28:46.093-08:00SSH or Tokens with GitHub -- because no passwords starting on Aug 13th <p><b>For Tokens:</b><br /><a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://techglimpse.com/git-push-github-token-based-passwordless/" href="https://techglimpse.com/git-push-github-token-based-passwordless/" rel="noopener noreferrer" tabindex="-1" target="_blank">https://techglimpse.com/git-push-github-token-based-passwordless/</a> <br /><br /><b>For SSH:</b><br /><br />Oh, since I viisted Harry's House of Pain while doing this I will share this:
<a class="anchor-3Z-8Bb anchorUnderlineOnHover-2ESHQB" href="https://gist.github.com/xirixiz/b6b0c6f4917ce17a90e00f9b60566278" rel="noreferrer noopener" role="button" tabindex="0" target="_blank" title="https://gist.github.com/xirixiz/b6b0c6f4917ce17a90e00f9b60566278">https://gist.github.com/xirixiz/b6b0c6f4917ce17a90e00f9b60566278</a> [SSH keypair setup for GitHub (or GitHub/GitLab/BitBucket, etc, etc)] and honourable mention: <a class="anchor-3Z-8Bb anchorUnderlineOnHover-2ESHQB" href="https://linuxkamarada.com/en/2019/07/14/using-git-with-ssh-keys/" rel="noreferrer noopener" role="button" tabindex="0" target="_blank" title="https://linuxkamarada.com/en/2019/07/14/using-git-with-ssh-keys/">https://linuxkamarada.com/en/2019/07/14/using-git-with-ssh-keys/</a>
. I had a problem when I ran git config --global commit.gpgsign true
and had to set it to false git config --global commit.gpgsign false)<br /><br />Go to: <a href="https://github.com/settings/keys">https://github.com/settings/keys</a><br /><br />GitHub's Tutorial: <a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh">https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh</a><br /><br />Maybe this is useful someday: <a class="c-link" data-remove-tab-index="true" data-sk="tooltip_parent" data-stringify-link="https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server" href="https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server" rel="noopener noreferrer" tabindex="-1" target="_blank">https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server</a> <br /><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-74376057082604631622021-10-28T10:01:00.024-07:002021-11-07T08:41:57.922-08:00Bi-directional Communication between Heltec LoRa ESP32 and Heltec CubeCell<p><u><b>Direction: ESP32 to CubeCell:</b></u><br /><br /><br />Heltec LoRa ESP32 transmitting to CubeCell:<br /><a href="https://gist.github.com/bshambaugh/a8040e9a0964f5d60145e7211ee0455c">https://gist.github.com/bshambaugh/a8040e9a0964f5d60145e7211ee0455c</a><br /><br />CubeCell receiving from Heltec ESP32:<br /><a href="https://gist.github.com/bshambaugh/f9bf79b9fd2d9e2ef6c8efcbb8ecb90d">https://gist.github.com/bshambaugh/f9bf79b9fd2d9e2ef6c8efcbb8ecb90d<br /><br /></a><br /><u><b>Direction: CubeCell to ESP32</b></u><br /><br />Heltec LoRa ESP32 receiving from CubCell:<br /><a href="https://gist.github.com/bshambaugh/57597999c76efb953c60eefa18cedaa0">https://gist.github.com/bshambaugh/57597999c76efb953c60eefa18cedaa0</a><br /><br />CubeCell transmitting to Heltec ESP32:<br /><a href="https://gist.github.com/bshambaugh/8b619ea061ddabe142a6ebe407848ba9">https://gist.github.com/bshambaugh/8b619ea061ddabe142a6ebe407848ba9<br /><br /></a><br />+++++++++++++++++++++++++++++++++++++++++++++++<br /><br />Edit: for future attractions see preliminary work forwarding received data over websockets:<br /><br /><a href="https://gist.github.com/bshambaugh/a78c6a322aaade65b780809e7a6234ed">https://gist.github.com/bshambaugh/a78c6a322aaade65b780809e7a6234ed<br /><br /><br /></a>Edit: this is the code for sending data in one direction:<br /><br />CubeCell:<br /> <a href="https://gist.github.com/bshambaugh/18acf34544f219182ca224b8d648642b">https://gist.github.com/bshambaugh/18acf34544f219182ca224b8d648642b</a><br /><br />Heltec ESP32:<br /><a href="https://gist.github.com/bshambaugh/5e7f358f034c160ce305490b149721de">https://gist.github.com/bshambaugh/5e7f358f034c160ce305490b149721de</a><br /><br />Node.js:<br /><a href="https://gist.github.com/bshambaugh/4481addef68862bc5891d187d4391258">https://gist.github.com/bshambaugh/4481addef68862bc5891d187d4391258<br /><br /><br /></a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWFunwzuEiAm2LrfSAuf6ohozswYduXFG4L0nePNXUpdB9EdB-24nk_yXaUmPX90z_1gHGwa5el57BHll-57anak9GJyCLZgpFPjJ9WXtMXFVJjBTetza2BZN_oy8UTq2inTJ7Zp1l5c/s1659/overview%25281%2529.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1659" data-original-width="1275" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWFunwzuEiAm2LrfSAuf6ohozswYduXFG4L0nePNXUpdB9EdB-24nk_yXaUmPX90z_1gHGwa5el57BHll-57anak9GJyCLZgpFPjJ9WXtMXFVJjBTetza2BZN_oy8UTq2inTJ7Zp1l5c/w308-h400/overview%25281%2529.png" width="308" /></a></div><p><br /><br />This is the code to send from the websockets server to the Heltec ESP32 to the Heltec CubeCell and blink based on the result of a particular string:<br /><br /><a href="https://gist.github.com/bshambaugh/4ea7de432a6aee345ebc4707ea42e11e">https://gist.github.com/bshambaugh/4ea7de432a6aee345ebc4707ea42e11e</a><br />(see : <a href="https://gist.github.com/bshambaugh/4481addef68862bc5891d187d4391258">https://gist.github.com/bshambaugh/4481addef68862bc5891d187d4391258</a> for websockets going the other way)<br /><br />Edit:<br /><br />Blink light:<br /></p><p></p><p>websocket server sketch:<br /><a href="https://gist.github.com/bshambaugh/6c84e52a7281b87d5c05b8df963bdbc9">https://gist.github.com/bshambaugh/6c84e52a7281b87d5c05b8df963bdbc9</a><br /><br /><br />CubeCell LoRa receive sketch: <br /><a href="https://gist.github.com/bshambaugh/20467d0e7a97735aa690f3a39cd954af">https://gist.github.com/bshambaugh/20467d0e7a97735aa690f3a39cd954af</a><br /><br /><br />Heltec ESP32 gateway (websocket to LoRa):<br /><a href="https://gist.github.com/bshambaugh/4d93e5871a32aae38a79f1548adf91e0">https://gist.github.com/bshambaugh/4d93e5871a32aae38a79f1548adf91e0</a><br /><br />Blink light: <a href="https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/cores/asr6601/base/ASR_Arduino.h">https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/cores/asr6601/base/ASR_Arduino.h</a> for <a href="https://gist.github.com/bshambaugh/20467d0e7a97735aa690f3a39cd954af#file-sketch_nov05a_cubecell_receive-ino-L92">https://gist.github.com/bshambaugh/20467d0e7a97735aa690f3a39cd954af#file-sketch_nov05a_cubecell_receive-ino-L92</a><br />do not use: <a href="https://github.com/adafruit/Adafruit_NeoPixel">https://github.com/adafruit/Adafruit_NeoPixel</a> --> <a href="https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/RGB/src/CubeCell_NeoPixel.h">https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/RGB/src/CubeCell_NeoPixel.h</a><br /><a href="https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/RGB/examples/RGB/RGB.ino">https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/RGB/examples/RGB/RGB.ino</a> to make <br /><a href="https://gist.github.com/bshambaugh/de846af8637f590b5a47225b526f23f2">https://gist.github.com/bshambaugh/de846af8637f590b5a47225b526f23f2</a><br />as there is a library conflict with <strike>ASR_Arduino.h</strike> forLoRaWan_APP.h for turnOnRGB . see lines: <a href="https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/LoRa/src/LoRaWan_APP.h#L76-L77">https://github.com/HelTecAutomation/CubeCell-Arduino/blob/68b01ab7bf04ab2fb4d41a01287dcf4b42defd97/libraries/LoRa/src/LoRaWan_APP.h#L76-L77</a><br /></p><table class="highlight tab-size js-file-line-container" data-paste-markdown-skip="" data-tab-size="8"><tbody><tr><td class="blob-code blob-code-inner js-file-line highlighted" id="LC76"><span class="pl-k">extern</span> <span class="pl-s"><span class="pl-pds">"</span>C<span class="pl-pds">"</span></span> <span class="pl-k">void</span> <span class="pl-en">turnOnRGB</span>(<span class="pl-c1">uint32_t</span> color,<span class="pl-c1">uint32_t</span> time);<br /><span class="pl-k">extern</span> <span class="pl-s"><span class="pl-pds">"</span>C<span class="pl-pds">"</span></span> <span class="pl-k">void</span> <span class="pl-en">turnOffRGB</span>(<span class="pl-k">void</span>);</td>
</tr><tr>
</tr></tbody></table><p><br />Heltec ESP32 gateway (websocket to LoRa):<br /><a href="https://gist.github.com/bshambaugh/4d93e5871a32aae38a79f1548adf91e0">https://gist.github.com/bshambaugh/4d93e5871a32aae38a79f1548adf91e0<br /><br /><br /></a><a href="https://gist.github.com/bshambaugh/4d93e5871a32aae38a79f1548adf91e0"><br /></a><br /></p><p></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-70302118096258608452021-10-14T17:54:00.002-07:002021-10-14T17:54:28.875-07:00Birectional Communication with LoRa and WebSockets Server to Blink and LED<p> Ping Pong (Bi-Directional?) Communication between Heltec ESP32 (V2) and Heltec CubeCell<br /><a href="https://www.youtube.com/watch?v=3XOYRV0kSuo">https://www.youtube.com/watch?v=3XOYRV0kSuo</a><br /><br />
</p><div class="style-scope ytd-watch-flexy" id="player">
</div>
Using a WebSockets Server to Blink an LED<br /><a href="https://www.youtube.com/watch?v=Gqzvq05QUKw">https://www.youtube.com/watch?v=Gqzvq05QUKw</a><br /><br />Put these together<br /><br />brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-69636952163437141872021-10-04T19:01:00.001-07:002021-10-04T19:01:12.081-07:00SimpleRPC<p><b>Documentation:</b><br /><a href="https://simplerpc.readthedocs.io/en/latest/usage.html">https://simplerpc.readthedocs.io/en/latest/usage.html</a><br /><br /><b>GitHub:<br /></b><a href="https://github.com/jfjlaros/simpleRPC">https://github.com/jfjlaros/simpleRPC</a><b><br /><br />Documentation:</b><br /><a href="https://arduino-simple-rpc.readthedocs.io/">https://arduino-simple-rpc.readthedocs.io/</a><br /><b><br />GitHub:</b><br /><a href="https://github.com/jfjlaros/arduino-simple-rpc">https://github.com/jfjlaros/arduino-simple-rpc</a><br /><br /><br /><br /></p>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-1117007456327736922021-10-03T18:12:00.006-07:002021-10-04T08:36:52.112-07:00Bookmarked Links for Schemas, RDF, JSON-LD, and Category Theory<p>Formal Modelling and Application of Graph Transformations in the Resource Description Framework by Benjamin Braatz<br /><a href="https://www.semanticscholar.org/paper/Formal-Modelling-and-Application-of-Graph-in-the-Braatz/b8c85a3e7a04020259ec9a58c7e5563033f52844">https://www.semanticscholar.org/paper/Formal-Modelling-and-Application-of-Graph-in-the-Braatz/b8c85a3e7a04020259ec9a58c7e5563033f52844</a><br /><br />JSON Schema, Schema.org, JSON-LD, What's the Difference<br /><a href="https://dashjoin.medium.com/json-schema-schema-org-json-ld-whats-the-difference-e30d7315686a">https://dashjoin.medium.com/json-schema-schema-org-json-ld-whats-the-difference-e30d7315686a</a><br /><br />7 Sketches<br /><a href="https://math.mit.edu/~dspivak/teaching/sp18/7Sketches.pdf">https://math.mit.edu/~dspivak/teaching/sp18/7Sketches.pdf</a><br /><br />RDF JSON<br /><a href="https://jena.apache.org/documentation/io/rdf-json.html">https://jena.apache.org/documentation/io/rdf-json.html<br /><br /><br /></a>Edit: Also think about the context you want to use a schema in.<br /><br /><a name="13">(13)</a>Calbimonte, Jean-Paul et al., Semantic Sensor Data Search in a Large-Scale Federated Sensor Network, <a href="http://ceur-ws.org/Vol-839/calbimonte.pdf" target="_blank">http://ceur-ws.org/Vol-839/calbimonte.pdf</a><br /><br />I may have this and various gists <br /><a href="https://raptorlicious.blogspot.com/2021/02/creating-schema-with-ceramic.html">https://raptorlicious.blogspot.com/2021/02/creating-schema-with-ceramic.html</a><br /><br /><a href="https://gist.github.com/bshambaugh">https://gist.github.com/bshambaugh</a><br /><br /><br /><a href="https://developers.ceramic.network/streamtypes/tile-document/schemas/basic-profile/">https://developers.ceramic.network/streamtypes/tile-document/schemas/basic-profile/</a><br /><br /><a href="https://developers.ceramic.network/build/cli/quick-start/#create-a-schema">https://developers.ceramic.network/build/cli/quick-start/#create-a-schema</a><br /><br /><a href="https://github.com/w3c/wot-thing-description/issues/988">https://github.com/w3c/wot-thing-description/issues/988<br /></a><a href="https://json-schema.org/understanding-json-schema/index.html"><br />https://json-schema.org/understanding-json-schema/index.html</a><br /><a href="https://json-schema.org/learn/miscellaneous-examples.html"><br />https://json-schema.org/learn/miscellaneous-examples.html</a><br /><a href="https://github.com/ajv-validator/ajv#security-risks-of-trusted-schemas"><br />https://github.com/ajv-validator/ajv#security-risks-of-trusted-schemas</a><br /><br /><a href="https://github.com/kimdhamilton/schema_to_context">https://github.com/kimdhamilton/schema_to_context<br /></a><a href="goog_1107479872"><br /></a><a href="https://w3c.github.io/wot-thing-description/#bib-json-schema">https://w3c.github.io/wot-thing-description/#bib-json-schema<br /><br /></a><a href="http://json-schema.org/learn/">http://json-schema.org/learn/<br /><br /></a><a href="https://lab.allmende.io/valueflows/vf-schemas/vf-json-schema/-/tree/master/schemas">https://lab.allmende.io/valueflows/vf-schemas/vf-json-schema/-/tree/master/schemas</a><br /><br /><a href="https://w3c-ccg.github.io/vc-json-schemas/v2/index.html">https://w3c-ccg.github.io/vc-json-schemas/v2/index.html</a><br /><br /><a href="https://coveooss.github.io/json-schema-for-humans/#/">https://coveooss.github.io/json-schema-for-humans/#/</a><br /><a href="https://gitlab.com/btcalabs/cowcerts/schemas"><br />https://gitlab.com/btcalabs/cowcerts/schemas</a><br /><br /><a href="https://ipld.io/docs/schemas/">https://ipld.io/docs/schemas/</a><br /><br /></p><div class="title style-scope ytd-video-primary-info-renderer" style="text-align: left;">Metadata: mapping Schema.org to JSON-LD<br /><a href="https://www.youtube.com/watch?v=s81d0PxMjlc">https://www.youtube.com/watch?v=s81d0PxMjlc</a><br /><a href="https://blogs.pjjk.net/phil/json-schema-for-json-ld/"><br />https://blogs.pjjk.net/phil/json-schema-for-json-ld/<br /><br /></a><a href="https://twitter.com/jsonschema">https://twitter.com/jsonschema</a><br /><br />React JSON Schema Forms<br /><a href="https://codepen.io/a2ntis/pen/vXNEdP">https://codepen.io/a2ntis/pen/vXNEdP</a><br /><br /><a href="https://www.jsonschemavalidator.net/">https://www.jsonschemavalidator.net/</a><br /><br /><a href="https://json-schema.org/understanding-json-schema/about.html">https://json-schema.org/understanding-json-schema/about.html<br /></a></div><div class="title style-scope ytd-video-primary-info-renderer" style="text-align: left;"><br />later add:<br /><a href="https://github.com/bshambaugh/thegraphReactApp/blob/master/src/App.js">https://github.com/bshambaugh/thegraphReactApp/blob/master/src/App.js</a><br /><br /><br /><br /><br /></div>brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0tag:blogger.com,1999:blog-6228539856572090178.post-86158794614866845662021-09-27T20:37:00.009-07:002021-09-27T20:51:53.953-07:00Some mistakes I made<p> I picked these up almost 5 years ago thinking I could resell them:<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisj1ahyphenhyphenAd6bADCkgbnc74tU7E4gziH3ZtTW3uNS0ot_g-2ahq6kVNaaNyrXYWZtzGM8-DeOUKmUTmGbRa6WXOo3dMg0Psa_jSmQQEO9Qgzdu9lKk-T3-JRjpWJvRiHZJSk72_S8o5fT4o/s1530/83096700_10108375144076027_8450074990665007104_n.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1360" data-original-width="1530" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisj1ahyphenhyphenAd6bADCkgbnc74tU7E4gziH3ZtTW3uNS0ot_g-2ahq6kVNaaNyrXYWZtzGM8-DeOUKmUTmGbRa6WXOo3dMg0Psa_jSmQQEO9Qgzdu9lKk-T3-JRjpWJvRiHZJSk72_S8o5fT4o/s320/83096700_10108375144076027_8450074990665007104_n.jpg" width="320" /></a></div>However, I found that they were nice looking imitations.<br /><br />Why not decorate? Enter Blinkenlights / LED Matrices>><br /><br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA9q8-_gfwP3djYLnLcWItsXcJ5sxGvj5XDsJXu-SYPSyK8tH2ustxtwO7hF2h_Dw9RV1Fqei_Dmj4ns3WJc466ZD-coBDhWkQ8I_HIfXGg7RSHPgeHlyGJWzAVJsp5VBUPwJliMCaals/s1461/282D6348-4255-43DF-B730-B728DCF86EA4.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1461" data-original-width="867" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA9q8-_gfwP3djYLnLcWItsXcJ5sxGvj5XDsJXu-SYPSyK8tH2ustxtwO7hF2h_Dw9RV1Fqei_Dmj4ns3WJc466ZD-coBDhWkQ8I_HIfXGg7RSHPgeHlyGJWzAVJsp5VBUPwJliMCaals/w238-h400/282D6348-4255-43DF-B730-B728DCF86EA4.jpeg" width="238" /></a></div>To put these parts together I will follow:<br /><br /><div class="title style-scope ytd-video-primary-info-renderer" style="text-align: left;">Controlling an RGB 8x8 Matrix using multiplexers and a single MAX7219<br /><a class="yt-simple-endpoint style-scope ytd-video-owner-renderer" href="https://www.youtube.com/channel/UC_VcXufqrxwP2UgC51ZZj0w" tabindex="-1"><img alt="" class="style-scope yt-img-shadow" id="img" src="https://yt3.ggpht.com/ytc/AKedOLQQI0odmQ2mHCQlqPnKOTalUmcCE6gZ0KJB8Asi=s48-c-k-c0x00ffffff-no-rj" width="48" /></a></div><div class="style-scope ytd-video-owner-renderer" id="upload-info"><div class="style-scope ytd-channel-name" id="container">
<div class="style-scope ytd-channel-name" id="text-container">
<a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/channel/UC_VcXufqrxwP2UgC51ZZj0w" spellcheck="false">KingBeetle1966<br /></a><a href="https://www.youtube.com/watch?v=4iFc3omSHCw">https://www.youtube.com/watch?v=4iFc3omSHCw</a><br /><br /><h1 class="title style-scope ytd-video-primary-info-renderer">HUGE LED matrix with Arduino<br /> <a class="yt-simple-endpoint style-scope ytd-video-owner-renderer" href="https://www.youtube.com/channel/UCjiVhIvGmRZixSzupD0sS9Q" tabindex="-1"><img alt="" class="style-scope yt-img-shadow" id="img" src="https://yt3.ggpht.com/ytc/AKedOLQIlfRtoA5A3w7jz7D8Xj11NKKUflWM_1tvTsN5jw=s48-c-k-c0x00ffffff-no-rj" width="48" /></a></h1><div class="style-scope ytd-video-owner-renderer" id="upload-info"><div class="style-scope ytd-channel-name" id="container"><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/channel/UCjiVhIvGmRZixSzupD0sS9Q" spellcheck="false">Electronoobs<br /></a><a href="https://www.youtube.com/watch?v=v1vRjOU_pGA">https://www.youtube.com/watch?v=v1vRjOU_pGA</a><br /><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/channel/UCjiVhIvGmRZixSzupD0sS9Q" spellcheck="false"></a>
</div></div>
<span class="style-scope ytd-badge-supported-renderer"></span>
<h1 class="title style-scope ytd-video-primary-info-renderer"><br /><br /></h1><br /><a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" href="https://www.youtube.com/channel/UC_VcXufqrxwP2UgC51ZZj0w" spellcheck="false"></a>
</div>
</div></div>
brent.shambaugh@gmail.comhttp://www.blogger.com/profile/18034555452254079435noreply@blogger.com0