iSpoogehttps://ispooge.com/2018-04-04-live-hacking.htmlHackinghttps://ispooge.com/2018-04-04-live-hacking.htmlLqE5wL6sUmY<h2 id="log">Log</h2><p>0:00 Setup</p><p>10:00 Preflight</p><p>daily broadcasting steps:</p><ul><li>start up streaming software</li><li>set metadata on syndicates: twitch, youtube</li><li>start streaming</li><li>create event page on site from template</li><li>add YT video id</li></ul><p>livestremaing shows, preflight:</p><ul><li>hammock driven develop new ideas</li><li>iterate over yesterday's notes</li><li>come up with new priorities</li></ul><p>14:00</p><p>48:45 thumbsup because we moved the video in the fresh page. last ~20 min were that</p><p>In the markdown place a header <code># WHATS ISPOOGE LIVE VIDEO</code>; ID is derived from title.</p><pre><code> var el = document.getElementById&#40;'whats&#95;ispooge&#95;live&#95;video'&#41;; var newEl = document.getElementById&#40;'whats-ispooge-live-video-yt'&#41;; el.parentElement.replaceChild&#40;newEl, el&#41;; </code></pre><p>56:00 works, confirmed... maybe forgot to remove function declaration before getting excited</p><p>1:00 centering video... </p><p>"what's ispooge live?" should be self hosted... do transcode</p><p>1:17 - deployed updated version</p><h2 id="notes">Notes</h2><h3 id="ideas">ideas</h3><p>monetization</p><ul><li>emails/calls<ul><li>payment/tip integration<ul><li>we have steemit&ndash;produce work for it</li><li>GNU Taler for cash+anon</li></ul></li></ul></li><li>rss reader app</li><li>writing<ul><li>presentation updates<ul><li>[x] link what's ispooge live video</li><li>[ ] transcode video for self host</li></ul></li><li>daily broadcasting ops</li><li>ux tweets from screenshots</li></ul></li><li>videojs r&d<ul><li>commercial spots</li><li>annotated comments</li></ul></li></ul><h3 id="todo">todo</h3><h2 id="links">Links</h2><ul><li><a href='https://developer.mozilla.org/en-US/docs/Web/API/Node/replaceChild'>https://developer.mozilla.org/en-US/docs/Web/API/Node/replaceChild</a></li></ul>Wed Apr 04 00:00:00 UTC 2018https://ispooge.com/2018-04-03-live-hacking.htmlHackinghttps://ispooge.com/2018-04-03-live-hacking.htmlLqE5wL6sUmY<h2 id="log">Log</h2><p>pre-flight meta</p><p>went through links</p><p>opinion: cuts off what I hammock-driven developed in the morning</p><p>feels constraining</p><p>eating... intermittent fasting (IF)</p><p>xmpp4js testing</p><p>YUI / ExtJS </p><p>soashable overlay</p><p>create summary from video + notes</p><p>haven't watched twitch / yt startup times</p><p>created new hacking panel at bottom right, separate from ideas. also separated ideas from todo.</p><p>need to catalog this stuff</p><p>1:10 3 way test with ispooge live, twitch, youtube... ispl, twitch close, yt live is on medium so mb faster.</p><p>we should get to transcoding soon</p><p>talked about tanscoding workload</p><p>1:11 slice videos script</p><p>1:12:25 record log items idea</p><p>working conditions - 90 minutes, moving around</p><p>90 minutes is long for a stream... many of my streams are +4 hours</p><p>need a better way to keep track of what's in an episode</p><p>1:30 roughly, adding date to recent posts. we could cross reference git commits</p><p>"in the beginner's mind there are many possibilities, in the expert's mind there are few." -Suzuki Roshen</p><pre><code>Shoshin Shoshin is a word from Zen Buddhism meaning &quot;beginner's mind.&quot; It refers to having an attitude of openness, eagerness, and lack of preconceptions when studying a subject, even when studying at an advanced level, just as a beginner would. The term is especially used in the study of Zen Buddhism and Japanese martial arts.</code></pre><p>1:35 roughly added date (ux) to ispooge</p><p>1:40</p><p>media session feature for ispooge:</p><p>the power of adhd</p><p>did YT add it recently?</p><h2 id="notes">Notes</h2><h3 id="ideas">ideas</h3><ul><li>[x] explore JS for SWE skill visuals</li><li>finish Roles by time visual</li><li>iSpooge Live product page<ul><li>made ~3m "What's iSpooge Live?" video</li><li>what is TDC</li></ul></li><li>write about testing experience<ul><li>styles... unit: xmpp4js, integration: minikube on travis, DSL</li></ul></li><li>glossary</li><li>write about vlogging experience</li><li>create ux log: https://harlanji.com/tag/ux.html, https://harlanj.com/ux.xml (RSS)</li><li>create new ispooge repo<ul><li>POSSE: gitlab and mirror to github</li></ul></li></ul><h3 id="todo">todo</h3><ul><li>SwEng</li><li>[ ] project details</li></ul><ul><li>visuals<ul><li>get back up to speed with d3</li><li>[ ] roles by project over time</li><li>extract data from html table (to sample model)</li><li>make chart for extracted data</li><li>[ ] technologies over time</li><li>third, for a prominent project<ul><li>favorite cafes in each city... with "is the sun up?" check</li><li>map demo with solar position overlayed</li></ul></li></ul></li><li>[ ] publish 1 essay 1-3000 words harlanji.com</li></ul><ul><li>[ ] TInyDC</li><li>[ ] get glossary together</li><li>integrate chat moar</li></ul><ul><li>take off twitter from page</li><li>make calendar not require google login</li></ul><ul><li>ops for stream titles</li></ul><ul><li>[ ] Demo React Native + CLJS App<ul><li>[ ] navigation (react router)<ul><li>add feeds</li></ul></li><li>[ ] login (auth0 / passwordless)<ul><li>for voting, etc</li><li>maintain between page changes</li></ul></li><li>[x] integrate into subscription page<ul><li>[ ] packaging shadow-cljs could help by giving us layered/modular builds... but we only have one module now.</li></ul></li></ul></li></ul><ul><li>[ ] expolore monetization</li></ul><p>LIFE IS A GAME MONEY IS THE POINTS</p><p>IF IT DONT MAKE DOLLAS IT DONT MAKE SENSE</p><ul><li>MIN 90k total</li><li>[ ] gardener65k + apprenticeship, then 75k when completed . With liabilities, 7500/mo.<ul><li>add to patreon</li></ul></li><li>[ ] affilliate program (eg. amazon, newegg) &ndash; probably not.<ul><li>not exctited about selling what I use to build... want to remain impartial/unbiased</li></ul></li><li>[ ] steemit est. return. beneficiary is interesting... cashout time.</li></ul></li></ul><p>/// transcode live</p><ul><li>raspi3 rpi-omx avconv/ffmpeg<ul><li>[x] for now use YT live if mobile</li><li>[ ] scripting for ffmpeg + nginx-rtmp</li></ul></li></ul><p>[/] TDC live cam (raspi cam 1.3)</p><ul><li>pipe to ffmpeg / rtmp<ul><li>integrate with home page</li><li>OR ispooge.com/live switch<ul><li>CORS</li></ul></li></ul></li><li>[x] OR replace home page with short loop</li></ul></li></ul><ul><li><a href='https://raspberrypi.stackexchange.com/questions/23182/how-to-stream-video-from-raspberry-pi-camera-and-watch-it-live'>https://raspberrypi.stackexchange.com/questions/23182/how-to-stream-video-from-raspberry-pi-camera-and-watch-it-live</a></li></ul><h2 id="links">Links</h2><ul><li><a href='https://harlanji.com/software-engineering.html'>https://harlanji.com/software-engineering.html</a></li><li><a href='https://github.com/harlanji/xmpp4js/blob/master/src/test/javascript/MUC_JoinTest.html'>https://github.com/harlanji/xmpp4js/blob/master/src/test/javascript/MUC_JoinTest.html</a></li><li><a href='https://github.com/harlanji/concordion-js'>https://github.com/harlanji/concordion-js</a></li><li><a href='https://www.youtube.com/watch?v=Acgc3wfdVhU'>https://www.youtube.com/watch?v=Acgc3wfdVhU</a></li><li><a href='https://tinydatacenter.com/principles.html'>https://tinydatacenter.com/principles.html</a></li></ul>Tue Apr 03 00:00:00 UTC 2018https://ispooge.com/2018-04-02-live-hacking-web-visuals.htmlHacking: Web Tech - Visualshttps://ispooge.com/2018-04-02-live-hacking-web-visuals.html_UyL81wbxck<h3 id="notes">Notes</h3><p>Created visualizer for software engineering portfolio.</p><h3 id="links">Links</h3><ul><li><a href='https://harlanji.com/software-engineering.html'>https://harlanji.com/software-engineering.html</a></li><li><a href='https://d3js.org/' title=- pure JS library that I've used for analytics dashboard>https://d3js.org/ - pure JS library that I've used for analytics dashboard</a></li><li><a href='https://github.com/nybbles/cljs-d3' title=- cljs wrapper (cljs idomatic style>https://github.com/nybbles/cljs-d3 - cljs wrapper (cljs idomatic style)</a>)</li><li><a href='https://keminglabs.com/c2/' title=- cljs-d3 is deprecated, recommends c2>https://keminglabs.com/c2/ - cljs-d3 is deprecated, recommends c2</a></li><li><a href='http://c3js.org/' title=- pure JS library for charts, uses D3>http://c3js.org/ - pure JS library for charts, uses D3</a></li><li><a href='https://stackoverflow.com/questions/26935101/clojurescript-interoperability-with-javascript#26935889' title=- CLJS interops with JS nicely via dot form.>https://stackoverflow.com/questions/26935101/clojurescript-interoperability-with-javascript#26935889 - CLJS interops with JS nicely via dot form.</a></li><li><a href='http://cljs.info/cheatsheet/' title=- cljs + js interop>http://cljs.info/cheatsheet/ - cljs + js interop</a></li></ul>Mon Apr 02 00:00:00 UTC 2018https://ispooge.com/2018-03-30-video-showntell.htmlShow and Tell, Mar 30, 2018https://ispooge.com/2018-03-30-video-showntell.htmlShow and Tell, Mar 30, 2018AcEVIibu1CEFri Mar 30 00:00:00 UTC 2018https://ispooge.com/2018-03-29-live-hacking-cljs-web.htmlLive Hacking Cljs Webhttps://ispooge.com/2018-03-29-live-hacking-cljs-web.html_UyL81wbxck<h3 id="notes">Notes</h3><p>CLJS date parsing behavior with edge case inputs:</p><pre><code>dev:uspooge-app.core=&gt; &#40;new js/Date nil&#41; #inst &quot;1970-01-01T00:00:00.000-00:00&quot; dev:uspooge-app.core=&gt; &#40;new js/Date &quot;&quot;&#41; #inst &quot;NaN-NaN-NaNTNaN:NaN:NaN.NaN-00:00&quot; dev:uspooge-app.core=&gt; &#40;new js/Date&#41; #inst &quot;2018-03-29T18:35:28.244-00:00&quot; dev:uspooge-app.core=&gt; &#40;new js/Date 0&#41; #inst &quot;1970-01-01T00:00:00.000-00:00&quot; </code></pre><h4 id="scripting&#95;a&#95;table&#95;in&#95;cryogen">Scripting a table in Cryogen</h4><p>Table can be found by iterating siblings from a known header. This is true as of <code>&#91;markdown-clj &quot;&quot;&#93;</code>. </p><pre><code>function paintItBlack &#40;&#41; { var el = document.getElementById&#40;'roles&#95;by&#95;project'&#41;; while&#40; el &amp;&amp; el.nodeName.toLowerCase&#40;&#41; != 'table'&#41; { el = el.nextSibling; console.log&#40;'next'&#41;; } if &#40;el&#41; { el.style.backgroundColor = 'black'; el.style.color = 'red'; } } </code></pre><p>Run from console via <code>paintItBlack&#40;&#41;</code> or via pasting <code>javascript:paintItBlack&#40;&#41;</code> in the address bar and navigating.</p><p>Can be made general by giving an ID and using CSS.</p><p>Interesting selector: <code>document.querySelector&#40;'#roles&#95;by&#95;project + table'&#41;</code></p><ul><li>https://css-tricks.com/child-and-sibling-selectors/</li><li>https://kimblim.dk/css-tests/selectors/examples/preceding.html</li></ul><h3 id="links">Links</h3><ul><li><a href='/2018-03-28-live-hacking-reagent.html'>Yesterday's Stream</a></li><li><a href='http://www.pyco.me/import-clojurescript-into-es6-module/'>http://www.pyco.me/import-clojurescript-into-es6-module/</a>)</li><li><a href='http://javajdk.net/tutorial/calling-clojurescript-from-javascript/'>http://javajdk.net/tutorial/calling-clojurescript-from-javascript/</a></li><li><a href='http://shadow-cljs.org/'>shadow-cljs</a></li></ul>Thu Mar 29 00:00:00 UTC 2018https://ispooge.com/2018-03-28-live-hacking-reagent.htmlLive Hacking Reagenthttps://ispooge.com/2018-03-28-live-hacking-reagent.htmlM4NgTiyettw<p>Building a Reagant (React + ClojureScript) SPA for subscription page. Will incorporate RSS feeds and SteemIt login at least, perhaps Passwordless. Should be easily incorporated into React Native app.</p><h3 id="links">Links</h3><ul><li><a href='https://github.com/bhauman/figwheel-template'>https://github.com/bhauman/figwheel-template</a></li><li><a href='https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#nsdecl'>https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#nsdecl</a></li><li><a href='https://clojuredocs.org/clojure.core/for'>https://clojuredocs.org/clojure.core/for</a></li></ul><ul><li><a href='http://cljs.info/cheatsheet/'>http://cljs.info/cheatsheet/</a></li></ul><ul><li><a href='https://cyber.harvard.edu/rss/rss.html'>https://cyber.harvard.edu/rss/rss.html</a></li></ul><ul><li><a href='https://github.com/r0man/cljs-http/blob/master/src/cljs_http/core.cljs#L41'>https://github.com/r0man/cljs-http/blob/master/src/cljs_http/core.cljs#L41</a></li><li><a href='https://stackoverflow.com/a/48988189'>https://stackoverflow.com/a/48988189</a> Just use react-router-dom - react-router-dom re-exports all of react-router. The link on GitHub answer https://github.com/ReactTraining/react-router/issues/4648</li></ul><ul><li><a href='https://github.com/harlanji/tinydatacenter/blob/master/ispooge.com-v2/app/resources/templates/themes/ispooge/js/steem-login.js'>https://github.com/harlanji/tinydatacenter/blob/master/ispooge.com-v2/app/resources/templates/themes/ispooge/js/steem-login.js</a></li><li><a href='' title=https://medium.com/javascript-scene/passwordless-authentication-with-react-and-auth0-c4cb003c7cde> https://medium.com/javascript-scene/passwordless-authentication-with-react-and-auth0-c4cb003c7cde</a></li></ul><ul><li><a href='https://auth0.com/docs/quickstart/spa/react/04-authorization'>https://auth0.com/docs/quickstart/spa/react/04-authorization</a></li></ul><ul><li><a href='https://www.npmjs.com/package/react-router-dom'>https://www.npmjs.com/package/react-router-dom</a></li></ul>Wed Mar 28 00:00:00 UTC 2018https://ispooge.com/2018-03-14-video-platforms-compared.htmlVideo platforms comparedhttps://ispooge.com/2018-03-14-video-platforms-compared.htmlVideo platforms compared<p>Comparing YouTube, DTube, BitChute, iSpooge, Twitch.</p><p>Biased toward iSpooge, the FLOSS offering (free/libre/open source software).</p>Wed Mar 14 00:00:00 UTC 2018https://ispooge.com/2018-03-01-video-sunset-at-ocean-beach.htmlSunset at Ocean Beach (SF)https://ispooge.com/2018-03-01-video-sunset-at-ocean-beach.htmlSunset at Ocean Beach (SF)<p>A demo video, looking out at my evening chill spot.</p><p>Ocean Beach, San Francisco, CA, USA.</p>Thu Mar 01 00:00:00 UTC 2018