Kaynağa Gözat

content updates, new layout

Harlan Iverson 7 yıl önce
ebeveyn
işleme
58473b6510
28 değiştirilmiş dosya ile 590 ekleme ve 21 silme
  1. 1 1
      tinydatacenter.com/app/resources/templates/config.edn
  2. 35 0
      tinydatacenter.com/app/resources/templates/md/pages/dc-analogzen.md
  3. 14 0
      tinydatacenter.com/app/resources/templates/md/pages/dc-boob.md
  4. 23 0
      tinydatacenter.com/app/resources/templates/md/pages/dc-ispooge.md
  5. 23 0
      tinydatacenter.com/app/resources/templates/md/pages/dc-tinydc.md
  6. 1 1
      tinydatacenter.com/app/resources/templates/md/pages/index.md
  7. 243 0
      tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-ispooge-live.md
  8. 72 0
      tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-raspi-hypriot-hardware-h264-transcoding.md
  9. 53 0
      tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-what-is-tinydc.md
  10. 103 0
      tinydatacenter.com/app/resources/templates/md/posts/2018-04-14-config-for-sshfs-figwheel-lein.md
  11. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/css/screen.css
  12. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/404.html
  13. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/archives-og.html
  14. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/archives.html
  15. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/author.html
  16. 20 17
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/base.html
  17. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/episode.html
  18. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/home.html
  19. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/index.html
  20. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/page.html
  21. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/post-content.html
  22. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/post.html
  23. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/previews.html
  24. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/tag.html
  25. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/html/tags.html
  26. 0 0
      tinydatacenter.com/app/resources/templates/themes/tinydc/js/highlight.pack.js
  27. 1 1
      tinydatacenter.com/layout
  28. 1 1
      tinydatacenter.com/scripts/env.sh

+ 1 - 1
tinydatacenter.com/app/resources/templates/config.edn

@@ -23,7 +23,7 @@
  :sass-src             []
  :sass-path            "sass"
  :compass-path         "compass"
- :theme                "blue"
+ :theme                "tinydc"
  :resources            ["img" "assets"]
  :keep-files           [".git"]
  :disqus?              false

+ 35 - 0
tinydatacenter.com/app/resources/templates/md/pages/dc-analogzen.md

@@ -0,0 +1,35 @@
+{:title "DC: Analog Zen"
+ :layout :page
+ :page-index 1700
+ :navbar? false}
+ 
+ 
+* 1x raspi 3 - sattelite studio
+* small touch screen (480x320)
+* picam
+* wiimote
+* bluetooth keyboard
+* hercules RMX mixer
+* battery pack
+
+The newest member of the family, this little guy is still under construction. It's
+built with cheap equipment and initial testing really impressed me, as far as 
+video recording capability. I did a test walk out to the beach for the sunset with 
+the box I'd just built running at 540p recording at 30fps/8mbit and ended up with 
+a ~360MB file. The screen thankfully has a power switch that I was able to turn off.
+Raspivid can display to output seemingly very cheaply, and also write h264 encded
+video to the file system (using the nice RPi OMX hardware). 
+
+This DC may also pull in the LTE box I have which is through T-Mobile... from there 
+I can seemingly get $5/day access with 500MB which would be great. I've paid $90/mo
+for the 22GB plan from them in the past while I was waiting for my home fiber to
+be installed.
+
+
+# VIDEO Raspi Cam Test
+
+* [Video](https://ispooge.com/embed.html#ispooge/raspi-cam-test) - about 12m in is interesting
+
+NOTE this lives on iSpooge server right now...
+
+import or use iframe/embed...

+ 14 - 0
tinydatacenter.com/app/resources/templates/md/pages/dc-boob.md

@@ -0,0 +1,14 @@
+{:title "DC: Boob"
+ :layout :page
+ :page-index 1700
+ :navbar? false}
+ 
+* 1x tinkerboard - media center
+
+Boob is used for YouTube, BitChute, and DTube watching... as well as monitoring 
+the iSpooge Daily live stream and reading various news. It's hooked up to the TV
+in the kitchen/living room (SF studio)... the TV is old, not smart, but works well.
+
+I sofar don't use BlueTooth, being old fashioned I get up to change the video. I
+share the keyboard with other machines, so it's carried away by day and often 
+cleaned up before bed.

+ 23 - 0
tinydatacenter.com/app/resources/templates/md/pages/dc-ispooge.md

@@ -0,0 +1,23 @@
+{:title "DC: iSpooge"
+ :layout :page
+ :page-index 1700
+ :navbar? false}
+ 
+ 
+* 1x raspi 3 - streaming site
+* iptv encoder
+* blue yeti mic
+* ms studiocam hd camera
+
+
+This DC has carried the ispooge site for a while. It's within TinyDC and getting
+the mobile [Analog Zen](/dc-analogzen.html) as a sattelite soon. This is a nebulous
+one to be called a DC in itself, but since it's not tied to its parent and can
+be carried away and has additional functionality, it's its own thing.
+
+In the past couple weeks it's been the host for the iSpooge Daily live stream
+(and annoying stream testing). It's good for that purpose but it's for better or
+worse also turned into the main development box I'd been using. I'd perhaps expand
+the tinkerboard used for [Boob](/dc-boob.html) into the mix but since I switched 
+iSpooge for Boob they don't both have a place as of yet. The t-board will probably
+be used for compilation and things of that nature, since it has 2G ram and is fast.

+ 23 - 0
tinydatacenter.com/app/resources/templates/md/pages/dc-tinydc.md

@@ -0,0 +1,23 @@
+{:title "DC: TinyDC"
+ :layout :page
+ :page-index 1700
+ :navbar? false}
+ 
+* 2x raspi 3 - load balancer, webhost+livestream workstation
+* tinkerboard - workstation #2 / extension
+* 8 port gigabit switch
+* 6 port USB hub
+* 4 layer SBC tower
+* 6x microusb cables for power
+* APC ups
+
+On the load balancer box is humble author's website. It's some simple static
+assets using the same web engine to publish posts and have some info pages.
+
+On the webhost+workstation box is a static docker image that serves as the 
+origin for tinydatacenter.com which is delivered by CloudFlare--between is 
+a gigabit fiber home Internet connection.
+
+The livestream workstation is on 24x7 with HDMI video+audio piped into an IPTV
+box that is published via (iSpooge)[/dc-ispooge.html] and syndicated out to other
+networks when I turn on syndication. 

+ 1 - 1
tinydatacenter.com/app/resources/templates/md/pages/index.md

@@ -38,4 +38,4 @@ Here are episodes:
 
 ## Contact
 
-* social @t harlanji d0t com or (four one f1ve).93 seven.7four67
+* social at harlanji d0t com or (four one f1ve).93 seven.7four67

+ 243 - 0
tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-ispooge-live.md

@@ -0,0 +1,243 @@
+{:title "iSpooge Live"
+ :layout :post
+ :toc? true}
+
+For the past month we've focused on building a modern application with 
+Tiny DataCenter. We built a new platform for
+live streaming video using the [principles of Tiny DC](/principles.html), that's 
+fully libre and available to ALL.
+
+* More info here: [https://ispooge.com/fresh.html](https://ispooge.com/fresh.html).
+* The real thing here: [https://ispooge.com/live-360p.html](https://ispooge.com/live-360p.html).
+
+## From 0 to newww vlog:
+
+We'll walk through the steps at a high level and encourage creative thinking. Contact
+us with any questions or if you have a cool idea; we're social at this domain dot com.
+
+### 1. Get yourself a Raspberry Pi "and stuff"
+
+Pi is the one requirement. Extra parts for your project will vary. Only you know 
+this stuff... for example:
+
+#### Required
+
+* $40 - Pi
+
+#### You may already have
+
+* $15 - Wired keyboard + mouse
+* $100 - 720p+ monitor
+* $100 - USB webcam
+
+#### For some A/V projects
+
+* $50 - Pi HD camera
+* $140 - pro microphone
+* $15 - USB ethernet adapter
+* $175 - IPTV transcoder
+
+#### For mobile usage
+
+* $25 - mini screen (480x320)
+* $5/day - 500MB data plan
+* $30 - multi-channel Bluetooth KB+mouse
+* $20 - USB power pack
+
+### 2. Clone TinyDC onto the Pi, build a demo
+
+0-1, idea to concept.
+
+#### Some example projects:
+
+* [iSpooge Daily](/dc-ispooge.html) - live streaming, videos, blog
+* [TinyDC](/dc-tinydc.html) - info, video episodes, blog
+* [Boob](/dc-boob.html) - entertainment center
+
+Using our projects as inspiration, you can probably think of your own. On your new
+Pi, run the command:
+
+`git clone https://github.com/harlanji/tinydatacenter`
+
+And then open the `README.md` with your favorite editor. (See [episode 1](/2018-02-04-webserver.html)).
+From here you can setup your site based on what you want to do.
+
+* Informational website
+* Blog
+* Live streaming platform
+* ... your wildest dreams
+
+Copy one of the examples to a new directory `yoursite.com`, start customizing,
+and watching changes happen in real time. No need to upload changes, as
+the RasPi is the main server. We recommend watching episodes to create a 
+[maintainable website](/2018-03-09-maintainable-website.html), but can start
+simple [in episode 1 with a basic web server](/2018-02-04-webserver.html).
+
+You'll see how that handles getting popular next...
+
+## 3. Create an account on a CDN
+
+2-N, read scalability and reliability.
+
+[Do this first](/2018-01-24-webserver-online-and-global.html) and never worry about it. Hope that your links go viral.
+
+
+#### CloudFlare
+
+This is a good long term choice because it has the ability to remember files 
+for up to 30 days. It can use the Pi or another origin as the master copy. We've detailed
+the best settings for to use with CF.
+
+#### S3
+
+Everyone can sign up for Amazon WS and learn how to use it, and it's reliable. AWS 
+is a good extra measure in case the Pi ever goes offline and you don't know how to 
+evaluate a web host.
+
+#### Static web host
+
+This is a good choice if you know how to upload a website already, and that your
+host is reliable. 
+
+#### Multi-CDN
+
+Awe yeaaaaa. There are good and better ways of doing this. 
+Some CDNs play well with others. This allows maximum reliability and
+freedom of speech.
+
+## 4. Create social media accounts on syndicate networks
+
+1-2, concept to production.
+
+Think about what you'll be doing as you stream. Think about what the people
+on the destination networks want to see. What will they be doing as they watch?
+It's good to create a new account with a name similiar to the new project or test, rather
+than linking it with your main account. This makes it easy to keep business activity
+separate from personal accounts, and try new ideas without annoying our friends.
+Once you have something that's working, you can link it up with your main account.
+
+
+| Network | Live stream? | Storage | Viewers@ | Discovery? | Hosting |
+| - | - | - | - | - | - |
+| Twitch | X | 0-14 days | Home? | X | CDN |
+| YouTube | X | Forever | Mobile, Home, Work | X | CDN |
+| Facebook | X | Forever? | Home, Mobile? | X | CDN |
+| Periscope | X | 30 days? | Mobile, Home? | X | CDN |
+| iSpooge Live | X | 0-Forever | **You'll discover** | eg. **RSS**, SteemIt | **Self**, CDN |
+| DTube | - | Forever | Home | SteemIt | P2P |
+| BitChute | - | Forever | Home | X | P2P |
+
+
+[Video platforms compared video](https://ispooge.com/2018-03-14-video-platforms-compared.html)
+
+In general the CDN hosted sites have a central authority and the P2P hosted sites
+do not. The former is more prone to moderation and censorship, while the latter 
+is more prone to be unavailable after some time when no seeding peers remain
+(a logical LRU cache) or face write contention at peak times. Storage timespan and
+discoverability can be important depending on the types of video presentations you
+will be making--non-recorded, full control gives peace of mind to authentic and 
+improv vauthors.
+
+Consumer platforms are more likely to have non-participants while crypto platforms
+are more likely to have participants who are themselves looking to be rewarded
+by the platform... ie. early adopters are creatives seeking new sources of
+monetization.
+
+Setting up accounts is easy. It's good to think in terms of personas. One could
+easily cycle accounts, using various accounts to test ideas. Accounts don't matter
+much with the [POSSE](https://indieweb.org/POSSE).
+
+#### Twitch
+
+Takes any RTMP stream I give it
+
+People seem to be at home chillin. Some interact with chat. Unsure TV vs PC vs Console 
+vs etc
+
+#### YouTube
+
+Takes almost any RTMP stream I give it. Almost no chat... although I disable chat most
+of the time. 
+
+#### Facebook
+
+Seems friendly but I don't stream here much
+
+#### Periscope
+
+Is picky about resolution, 540p... I'd not prioritized transcoding... now we have it...
+
+
+## 5. Customize the platform as you go
+
+1-2, concept to production.
+
+People on some networks like to chat more than others. Some are mobile, some are at home.
+
+Some have repeat visitors and subscription, some are time and location based.
+
+These are all opportunities to build a great network of people who are into
+similar things, as decided by yourself.
+
+It's useful to have fine grained controls over your computers. Instead of a friendly
+UI, we have low level tools with good interfaces using well documented systems 
+concepts and tested approaches. Want a new feature?
+
+Build your own! With TinyDC you work through setting up everything from scratch, 
+so that you can extend that experience and knowledge to improving your IT constantly.
+Once you're too busy making money to implement new features, you'll know how to 
+interview your replacement thoroughly.
+
+### Connect with other sites that syndicate
+
+Since you host the media, you are fully responsible for it and have all rights
+that come with maintaining it. You can present your creation as you like, and
+plug collaborations as you wish. Your identity is established by the domain name
+system and any layers you wish to stack atop it. Wordpress, Cryogen, Auth0, 
+Cognito, organizational SSO... it matters not. Find somebody who's done it before, 
+and integrate it into our system.
+
+### Cash in where you can
+
+Do cool things like record spots for your favorite meal repleacements, and insert them
+into your videos using the videojs ad plugin, and use a referral link. 
+Nobody can hold your income potential over your head, without your permission.
+
+There are new ways to make money all the time. And I hear a lot of complaints 
+that can be solved with a smarter side hustle. TinyDC can make me money in a 
+number of ways that go far beyond monetizing videos with ads, and it can do
+similar for anyone with a little creativity. For example, I can:
+
+* Get referril income for DC kits ($ over time and networking)
+* Partnership and affiliate fees ($$ over time)
+* Corporate sponsorships ($$$ over time)
+* Professional services ($$$$$ in bursts)
+* Author techical articles, do podcasts (networking and $)
+* Connect DC builders with people who want new DCs (networking and $)
+* So much more beyond $... "your network is your net-worth"
+
+Your case will obviously have different outlets. What products and services 
+do you utilize in delivering your value? Given those observations and the 
+knowledge and experience of building every aspect of your system will let you
+see endless possibilities... that's why you need to:
+
+## 6. Learn the technicals
+
+N-infinity, transcend limitation.
+
+TinyDC is simple. Start with a working example and customize. Know all the commands we
+run, [etc](/principles.html). Of course there's business to do, aka. money to be made,
+and ain't nobody got time for no techie mumbo jumbo BAWWWSHIT. 
+
+True that. But then we look at the salary of software engineers, and think about all
+our bills that are late. Is there a connection? Given that TinyDC includes
+all the code for all the things, what if you spent 90 minutes a few times per week
+to study the system that makes you money?
+
+After a few months you'll be able to customize your channel without paying an arrogant 
+asshole programmer who tells you it'll be 25 grand to do what you want. iSpooge Live 
+took just over a month to develop on Tiny DC.
+
+# Related news
+
+You can find frequent posts with relevant links to discussions on our [RSS feed](/feeds.html).

+ 72 - 0
tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-raspi-hypriot-hardware-h264-transcoding.md

@@ -0,0 +1,72 @@
+{:title "Using RasPi for Video"
+ :layout :post}
+
+The RasPi has great hardware for working with video. Sofar we're able to transcode
+three streams and run the Pi camera at 30fps, encode and deliver with a few secods
+of latency, even when accounting for intermediate CDN caching. More details
+[here](/2018-04-08-ispooge-live.html).
+
+This article is a living document... as of now this is what we use to go live.
+
+Based on the nginx-rtmp config here: [GitHub](https://github.com/harlanji/tinydatacenter/blob/c0e5db66198fede8bbf9ff6f0ba6a4cb8ea60ddb/rtmp-proxy-docker/nginx-ispooge.conf)
+
+720:
+
+`./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_720/ispoogedaily_720 -c:a copy -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 50 -vf scale=w=1280:h=720:force_original_aspect_ratio=decrease -b:v 6000k -maxrate 6420k -bufsize 9000k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_720`
+
+360:
+
+`./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_360/ispoogedaily_360 -c:a copy -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 50 -vf scale=w=640:h=360:force_original_aspect_ratio=decrease -b:v 3000k -maxrate 3210k -bufsize 4500k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_360`
+
+240:
+
+`./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_240/ispoogedaily_240 -c:a copy -level:v 1.0 -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 60 -vf scale=w=426:h=240:force_original_aspect_ratio=decrease -b:v 800k -maxrate 1000k -bufsize 3000k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_240`
+
+
+live twitch:
+
+live youtube:
+
+
+https://gist.github.com/mikoim/27e4e0dc64e384adbcb91ff10a2d3678
+
+```
+./ffmpeg -i rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_720 \
+  -c:v libx264 -preset slow -profile:v high \
+  -crf 18 -coder 1 -pix_fmt yuv420p -movflags \
+  +faststart -g 30 -bf 2 -c:a aac -b:a 384k \
+  -profile:a aac_low -f flv rtmp://a.live.youtube.com/li...FIXME
+```
+
+number of slices:
+
+`find /tmp/hls/ispooge.com -name *.ts  | wc -l`
+
+
+number of streams:
+
+`find /tmp/hls/ispooge.com -name *.m3u8 | wc -l`
+
+check tmpfs (where segments are written):
+
+`df -h | grep /tmp$`
+
+
+
+top right small view:
+
+* screencast
+
+`raspivid -p 960,22,320,180 -t 0 -w 320 -h 180 -fps 30 -hf -b 1048576`
+
+
+top left large view:
+
+* whiteboard
+
+`raspivid -p 0,20,960,540 -t 0 -w 960 -h 540 -fps 30 -b 8388608`
+
+* record
+
+`raspivid -p 0,20,960,540 -t 0 -w 960 -h 540 -fps 30 -b 8388608 -o sample.h264`
+

+ 53 - 0
tinydatacenter.com/app/resources/templates/md/posts/2018-04-10-what-is-tinydc.md

@@ -0,0 +1,53 @@
+{:title "What is TinyDC?"
+ :layout :post}
+
+TinyDC is a way to plant a seed that grows into a massive tree. It's built on timeless
+wisdom in the art of software construction. It's no fluff, just descriptions of what's
+done.
+
+It might work with old systems, but it's for new systems. It might be recognizable with
+expert eyes, but it's for beginner eyes. "In the beginners mind there are many possiblities,
+in the expert's mind there are few." (Shunryu Suzuki).
+
+RasPis are readily available, powerful, cheap, and consistent. Using SD card images
+one can maintain many workstations powered by a single RasPi by swapping cards, 
+or create a fail-safe procedure by having extra hardware on hand and stored with 
+the operations manual.
+
+Concretely it's a repo that you clone onto a new Single Board Computer to start
+a project. It's a set of guides and videos that help a person with no computing 
+experience get the most of their hardware.
+
+Following [the principles of TinyDC](/principles.html) and using a creative mindset, anyone can realize
+their dream project. Even if you don't know what your project is when you start 
+it, TinyDC is inspiration to take the first step and assistance in taking the 
+1000ths step of your IT journey.
+
+
+
+-
+
+## History
+
+In December of 2017 there existed a pile of RasPis and an author's sabbatical
+in which he spent a month watching videos and reading articles to get an idea
+of what the next step in his career will be. In November he'd left his 
+job and bought around $500 of A/V equipment to document the process of whatever 
+his next endeavor would be, considering funding sources like Patreon and 
+Indiegogo.
+
+TinyDC began with the realization that Raspberry Pis are powerful enough to 
+run web applications, about equivalent in power to a small AWS or GCP container.
+They also run Docker, which is the preferred way for developers, engineers, and 
+ops people to interface together.
+
+Humble author, having been involved in large
+budget and multi-region/global infrastructure projects crunching massive amounts 
+of data, is painfully aware of the runtime characteristics of systems from high 
+level languages Java and Javascript down through POSIX, virtual memory, assembly,
+and into physics and mathematics. This knowledge is a stack that can take 
+many lifetimes to understand, but science gives us a framework to interface and 
+progress systematically forward.
+
+
+ 

+ 103 - 0
tinydatacenter.com/app/resources/templates/md/posts/2018-04-14-config-for-sshfs-figwheel-lein.md

@@ -0,0 +1,103 @@
+{:title "ClojureScript on RasPi"
+ :layout :post
+ :author "Harlan Iverson"
+ :tags ["blog"]
+ }
+ 
+Recently we switched from Tinkerboard back to RasPi3B, the original TinyDC box
+we built in Jan/Dec... it's been hosting the website since then, and doing good. We 
+returned because the 24x7 [live stream](https://ispooge.com/live.html) came online, 
+and it seemed like a fun idea to do work on stream, yet we use use 
+the TBoard for other projects that overlap in usage time, sometimes. Ie. 
+use TinyDC as the desktop to share at all times, and enhance dev functionality
+as needed.
+While I can bring the TBoard  over each day before 
+I begin the stream, that's been cumbersome. Instead, we can use it to do heavy lifting
+for things that are only required while in the thick of development, or similar
+activities... and start the stream on our always-on desktop.
+
+So the  TBoard is back online as a build box, to split the load 
+between development/UI on our workstation, and compliling/hosting with more resources.
+There's been no reinstall, we're using the prior image... but I've setup `sshfs` 
+with good options and Figwheel with working options to 
+make remote development possible--it's the 
+same theory as setting up development in Vagrant, Docker, or AWS. Debuggers 
+can be set up to talk to remote hosts, as they mostly operate over sockets.
+
+Here are the useful configs to develop a ClojureScript project remotely.
+
+### 1. Setup
+
+On the server node, SSHFS mount the directory on dev... usually from within `screen`:
+
+```
+DEV_IP=192.168.1.7
+SERVER_IP=192.168.1.6
+
+# connect to server, create our mount point
+ssh $SERVER_IP
+mkdir -p $HOME/mnt/uspooge-app
+```
+
+Next we can setup our ClojureScript project with the right options to build on
+a non-localhost. Inside of `project.clj`, change these options:
+
+```
+(defproject ;...
+  :cljsbuild {:builds
+              [{:id "dev"
+                :figwheel {
+                  :websocket-host :js-client-host ; connect to the client's provided host
+                }}
+               {:id "min"
+                :compiler {
+                  :optimizations :whitespace ; :advanced is better for prod, but too much for Rpi..
+                }}]}
+
+  :figwheel {:hawk-options {
+               :watcher :polling ; slow but lets us work in docker/ssfhs
+             }}
+)
+```
+
+
+### 2. Daily use
+
+Open or reconnect screen, session named dev:
+
+```
+screen -RAd dev
+```
+
+From within screen, mount the filesystem:
+
+```
+sshfs \
+  pirate@$DEV_IP:p/uspooge-app \
+  $HOME/mnt/uspooge-app \
+  -o sshfs_sync \
+  -o cache_timeout=0 \
+  -o idmap=user
+```
+
+
+When it comes to the server side Clojure, we'll probably want to setup nrepl ports and
+debug ports. In general, to forward ports via an SSH connection you can add
+the `-L` option... eg:
+
+* `ssh -L7888:localhost:7888 hi@tinkerboard`
+
+It's also helpful to have our local SSH agent manage our keys for us throughout
+our chain of connections via the `-A` option. We'll go into more depth on this as 
+we explore YubiKey and PKI in the near future. I'll also likely write up 
+Java debugging and Flight Recorder, now that it's being shipped with OpenJDK.
+
+### Alternatives
+
+Another approach would be to leave all development environments on the build box 
+and use `sshfs` to mount them into our local development environment. That's certainly 
+not a bad option, but between the two the idea of keeping everything buildable on the 
+main workstation and offloading work to the new machine seemed like a good
+approach to begin with. It's in line with Vagrant and Docker with builder containers, 
+meaning tools have supported configuration options to support it, so it's a 
+good approach.

+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/css/screen.css → tinydatacenter.com/app/resources/templates/themes/tinydc/css/screen.css


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/404.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/404.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/archives.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/archives-og.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue/html/archives.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/archives.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/author.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/author.html


+ 20 - 17
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/base.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/base.html

@@ -25,45 +25,48 @@
                 <span class="icon-bar"></span>
             </button>
             <a class="navbar-brand" href="{{index-uri}}">{{title}}</a>
+            <p>Big apps with tiny computers</p>
         </div>
         <div id="navbar" class="navbar-collapse collapse">
             <ul class="nav navbar-nav navbar-right">
-                <li {% if home %} class="active" {% endif %}><a href="{{index-uri}}">Home</a></li>
+                <li {% if home %} class="active" {% endif %}><a href="{{index-uri}}">Episodes</a></li>
                 <li
-                {% if archives %} class="active" {% endif %}><a href="{{archives-uri}}">Archives</a></li>
+                {% if archives %} class="active" {% endif %}><a href="{{archives-uri}}">Notebook</a></li>
                 {% for nav-page in navbar-pages %}
                 <li
                 {%ifequal page.uri nav-page.uri %} class="active" {% endifequal %}>
                 <a href="{{nav-page.uri}}">{{nav-page.title}}</a>
                 </li>
+                <li><a href="{{source-code-url}}">Source Code</a></li>
                 {% endfor %}
-                <li><a href="{{rss-uri}}">RSS</a></li>
+                <li><a href="/feeds.html">News</a></li>
                 <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                         More <span class="caret"></span></a>
                     <ul class="dropdown-menu" role="menu">
-                        <li class="dropdown-header">Links</li>
-                        <li><a href="http://cryogenweb.org/docs/home.html">Cryogen Docs</a></li>
-                        <li><a href="http://carmenla.me/blog/archives">Carmen's Blog</a></li>
-                        {% for page in sidebar-pages %}
-                        <li><a href="{{page.uri}}">{{page.title}}</a></li>
-                        {% endfor %}
 
                         {% if latest-posts|not-empty %}
-                        <li class="divider"></li>
-                        <li class="dropdown-header">Recent Posts</li>
+                        
+                        <li class="dropdown-header">Recent</li>
                         {% for post in latest-posts %}
-                        <li><a href="{{post.uri}}">{{post.title}}</a></li>
+                        <li><a href="{{post.uri}}">{{post.date|date:"MM.dd"}} {{post.title}}</a></li>
                         {% endfor %}
                         {% endif %}
 
-                        {% if tags|not-empty %}
+								<li class="dropdown-header">Pages</li>
+                        {% for page in sidebar-pages %}
+                        <li><a href="{{page.uri}}">{{page.title}}</a></li>
+                        {% endfor %}
                         <li class="divider"></li>
-                        <li class="dropdown-header">Tags</li>
-                        {% for tag in tags %}
-                        <li><a href="{{tag.uri}}">{{tag.name}}</a></li>
+                        {% if sidebar-links|not-empty %}
+                        <li class="dropdown-header">{{ sidebar-links-title }}</li>
+
+                        {% for post in sidebar-links %}
+                        <li><a href="{{post.uri}}">{{post.title}}</a></li>
                         {% endfor %}
-                        {% endif %}
+                        {% endif %}                        
+                        
+
                     </ul>
                 </li>
             </ul>

+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue/html/episode.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/episode.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/home.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/home.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue/html/index.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/index.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/page.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/page.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/post-content.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/post-content.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/post.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/post.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/previews.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/previews.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/tag.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/tag.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/html/tags.html → tinydatacenter.com/app/resources/templates/themes/tinydc/html/tags.html


+ 0 - 0
tinydatacenter.com/app/resources/templates/themes/blue_centered/js/highlight.pack.js → tinydatacenter.com/app/resources/templates/themes/tinydc/js/highlight.pack.js


+ 1 - 1
tinydatacenter.com/layout

@@ -1 +1 @@
-app/resources/templates/themes/blue
+app/resources/templates/themes/tinydc

+ 1 - 1
tinydatacenter.com/scripts/env.sh

@@ -6,7 +6,7 @@ NAME=tinydatacenter-build
 DEV_PORT=23000
 
 NAME_STATIC=tinydatacenter-static
-IMAGE_STATIC=docker-registry.local:5000/tinydatacenter.com/tinydatacenter-static:6
+IMAGE_STATIC=docker-registry.local:5000/tinydatacenter.com/tinydatacenter-static:8
 PORT_STATIC=23080
 
 MEDIA=$HOME/p/tdc-media