# Introduction

## Hi! I'm CJ

This is a collection of the things I'm thinking about or working on. Just a place where I can put down some ideas. Mainly these ideas will be captured from [my stream](http://stream.cjpais.com/), get thought out and put here. By no means are any of my thoughts final.

I am mostly working on an App right now on the weekends so this will be the most of my writings and thinking. These are all captured in the weekly brain dumps.&#x20;

### Check out last week's brain dump

{% content-ref url="/pages/-M2PgES62gidDujq7\_\_4" %}
[Weekly Brain Dump](/brain-dump)
{% endcontent-ref %}


# About Me

Drafting this currently, going to have multiple lengths


# Weekly Brain Dump

## History

### [April 20th-April 26th 2020](/brain-dump/april-20th-april-26th-2020)

* [0.04 Dev Journal](/brain-dump/april-20th-april-26th-2020/0.04-dev-journal)
  * [Summary](/brain-dump/april-20th-april-26th-2020/0.04-dev-journal#summary)
  * [Demo](/brain-dump/april-20th-april-26th-2020/0.04-dev-journal#demo)
  * [Video Journal](/brain-dump/april-20th-april-26th-2020/0.04-dev-journal#video-journal)

### [April 13th-April 19th 2020](/brain-dump/april-13th-april-19th-2020)

### [April 6th-April 12th 2020](/brain-dump/april-6th-12th)

* [Project Status 0.02](/brain-dump/april-6th-12th/project-status-0.02)
  * [What was done](/brain-dump/april-6th-12th/project-status-0.02#what-was-done)
    * [Last Weeks Goals](/brain-dump/april-6th-12th/project-status-0.02#last-weeks-goals)
    * [Details & Things I Learned](/brain-dump/april-6th-12th/project-status-0.02#detail-and-things-i-learned)
    * [Demo](/brain-dump/april-6th-12th/project-status-0.02#demo)
  * [Drawings & Inspiration From This Week](/brain-dump/april-6th-12th/project-status-0.02#drawings-and-inspiration-from-this-week)
  * [What's Next?](/brain-dump/april-6th-12th/project-status-0.02#whats-next)
* [Question Surrounding Technology and Elitism](/brain-dump/april-6th-12th/question-surrounding-technology-and-elitism)
* [Binge watching TV shows](/brain-dump/april-6th-12th/binge-watching-tv-shows)

### [March 30th-April 5th 2020](/brain-dump/march-30th-april-5th-2020)

* [Project Status 0.01](/brain-dump/march-30th-april-5th-2020/project-status-0.01)
  * [What was done](/brain-dump/march-30th-april-5th-2020/project-status-0.01#what-was-done)
  * [Demo](/brain-dump/march-30th-april-5th-2020/project-status-0.01#demo)
  * [How it was done and what was learned](/brain-dump/march-30th-april-5th-2020/project-status-0.01#how-it-was-done-and-what-was-learned)
  * [What's gonna be in 0.02?](/brain-dump/march-30th-april-5th-2020/project-status-0.01#whats-gonna-be-in-0-02)
  * [Sketches from this week](/brain-dump/march-30th-april-5th-2020/project-status-0.01#sketches-from-this-week)
  * [Things for 0.02+](/brain-dump/march-30th-april-5th-2020/project-status-0.01#things-for-0-02)

### [March 23rd-29th 2020](/brain-dump/march-16th-28th-2020)

* [Notable Podcasts + Notes](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes)
  * [AI Podcast #74: Michael I. Jordan](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#ai-podcast-74-michael-i-jordan)
    * [Privacy](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#privacy)
    * [Data markets](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#data-markets)
    * [Personal knowledge systems/recommender systems](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#personal-knowledge-systems-recommender-systems)
    * [Responsible Context Aware Data Systems](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#responsible-context-aware-data-systems)
    * [Misc](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#misc)
  * [AI Podcast #82: Simon Sinek](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#ai-podcast-82-simon-sinek)
  * [This is why I hate the current data model](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#this-is-why-i-hate-the-current-data-model)
* [Projects Status: 0.00](/brain-dump/march-16th-28th-2020/projects-status-00.0)
  * [Disappearing Notes](/brain-dump/march-16th-28th-2020/projects-status-00.0#disappearing-notes)
    * [We did it! The notes disappear!](/brain-dump/march-16th-28th-2020/projects-status-00.0#we-did-it-the-notes-disappear)
    * [What was done + what I learned](/brain-dump/march-16th-28th-2020/projects-status-00.0#what-was-done-what-i-learned)
    * [Demo](/brain-dump/march-16th-28th-2020/projects-status-00.0#demo)
    * [Naming Scheme](/brain-dump/march-16th-28th-2020/projects-status-00.0#naming-scheme)
    * [Some goals for 0.01](/brain-dump/march-16th-28th-2020/projects-status-00.0#some-goals-for-0-01)
    * [Goals 0.01+](/brain-dump/march-16th-28th-2020/projects-status-00.0#goals-0-01)
* [Political Musings](/brain-dump/march-16th-28th-2020/political-musings)
  * [Why do we let the president appoint so many people?](/brain-dump/march-16th-28th-2020/political-musings#why-do-we-let-the-president-appoint-so-many-people)
  * [West Wing S2E18](/brain-dump/march-16th-28th-2020/political-musings#west-wing-s-2-e18)
  * [Twitter Politics](/brain-dump/march-16th-28th-2020/political-musings#twitter-politics)
  * [Should the private sector be controlling public services?](/brain-dump/march-16th-28th-2020/political-musings#should-the-private-sector-be-controlling-public-services)
* [Misc](/brain-dump/march-16th-28th-2020/misc)
  * [How would you design a city from the ground up? TLDR: IDK](/brain-dump/march-16th-28th-2020/misc#how-would-you-design-a-city-from-the-ground-up)
  * [On Watching TV](/brain-dump/march-16th-28th-2020/misc#on-watching-tv)

### [March 15th-22nd 2020](/brain-dump/march-15th-22nd-2020)

* [Radio Spectrum Allocation](/brain-dump/march-15th-22nd-2020/radio-spectrum-allocation)
* [Disappearing Notes](/brain-dump/march-15th-22nd-2020/dissapearing-notes)
* [Should Corporations be People?](/brain-dump/march-15th-22nd-2020/should-corporations-be-people)

### [March 7th-14th 2020](/brain-dump/march-7th-14th-2020)

* [**Personal Writings**](/brain-dump/march-7th-14th-2020#personal-writings)
  * [What I want to do & who I want to be](/brain-dump/march-7th-14th-2020#what-i-want-to-do-and-who-i-want-to-be)
  * [Notes on Personal Statement for HCI PhD](/brain-dump/march-7th-14th-2020#notes-on-personal-statement-for-hci-phd)
  * [Being aware of how other people make you feel](/brain-dump/march-7th-14th-2020#being-aware-of-how-other-people-make-you-feel)
  * [Breathing (and Exercise)](/brain-dump/march-7th-14th-2020#breathing-and-exercise)
* [**Thoughts**](/brain-dump/march-7th-14th-2020#thoughts)
  * [The information density of language](/brain-dump/march-7th-14th-2020#the-information-density-of-language)
  * [Political Musings](/brain-dump/march-7th-14th-2020#political-musings-sanders-working-together-and-hope)
  * [Tourism and Globalism](/brain-dump/march-7th-14th-2020#tourism-and-globalism)
  * [COVID-19 & The Markets](/brain-dump/march-7th-14th-2020)


# 0.08

### It’s been a while&#x20;

I got out of the habit on writing on Sunday’s. I reflected about this yesterday and realized I definitely want to continue writing. Writing for the project and outside of it as well. There is a great benefit to the project when writing.

Writing is a time consuming process, but it is well worth it. I realized yesterday night that writing not only helped to cement the ideas of what was done, but also develop what should be done next. Without the next steps being thought about and articulated it’s very easy to lose sight of the now. Very easy to get lost in the overwhelming nature of the future. At least it is for me.

I’ve been reading \[\[How to Take Smart Notes]] and I am starting to see how it is applicable to this project. In some sense it does a good job digesting what flow I want. Helps to guide the flow. Initially the Sunday Writing’s were quite easy. I had a bunch of quick notes that I filtered through, cut the unimportant ones out, and then wrote about the bigger ones. I think this is one of the core motivating factors behind the podcast. I keep finding amazing information in them, but I want to write on it after the fact. I want to come back and listen to that specific section to jog my memory of exactly the bigger idea that note was getting at.

### Goal Review

Doing a quick review of the goals, basically the whole thing has changed from its initial state. The podcast totally took over and I’m okay with this.

I have been saying it for a couple weeks now, but I think the biggest thing will be to integrate the podcast’s into the stream. I am still debating exactly how this should be done, but I guess for now it doesn’t really matter. I will do what I have done and just dump the whole JSON object into the stream. This way I can parse after the fact. For now it just needs to be human readable enough for me to understand and write. I will probably quickly write a parser on top of it and rewrite the format as I realize it’s awful to parse. Should be fun!

### What’s happened since 0.04?

*A lot of refinement.*

A lot of lessons about Swift and iOS development. I am still learning a lot and have a long ways to go. I am not very familiar with a lot of the patterns that appear in Swift. I definitely want to reduce the number of lines I have written. I think a lot of what I’ve done can be more generic.

In 0.04 the player was a relative nightmare compared to where it is now. Here’s a list of the bugs that were fixed

*0.05*

* Load images from the Podcast and display them for Episodes
* Don’t let multiple podcasts play at the same time.
  * This includes having only one tick active at any time
* Add `SegmentedPicker` for searching for Podcasts v Episodes
* Changed the `CoreData` model to support the correct relationship between Podcasts and Episodes (One to Many), previously the default was used
* Add `NowPlayingControlView` which allows the user to control the podcast
  * Slider to control time
  * Back 30 and Forward 30
  * Basic information display
  * Is in a `Sheet` which is quite nice
* Persist Episode State

*0.06*

* Minor UI changes to reflect if podcast is new, in progress or completed
* Add in support to search Episodes using `ObservableObject` as opposed to using our `EnviornmentObject`
* Change some code around so that if episode is playing the search UI is not constantly bouncing.
  * This is a bug that I learned a lot from in *0.07*
* Refresh all episodes
* Oh yeah I also rewrote the Go server
  * Has new endpoints
    * `/new/thought`
    * `/new/entity`
    * `/action/player`
    * `/start/activity/`
    * `/stop/activity/`
  * Note: a thought is really an entity too, but we are handling it as a special case for now
  * This should help to support adding Podcasts and Episodes to the feed as well as generating the most basic data surrounding them. Or rather surrounding what notes belong to what.
  * Is it independent of podcasts or was it in one, and if it was which one?

*0.07*

* Don’t let Podcast immediately play when resuming the app. Quite frustrating at times.
  * Other times it’s nice but the app can’t read my mind 😢
* Fixed all kinds of weird playback nonsense issues
  * Mostly stemming from hacked up state I have all over the place. This is starting to be a nightmare and needs refactor.
    * Can’t be mad at Netflix/YouTube or anyone using this if there is a problem. There is a lot of state management to do and it’s not always clear exactly what should be done. Still it is remarkably easy to play
* Added nearly full support for `MPNowPlayingInfoCenter` and `MPRemoteCommandCenter`
  * Image loads
  * Can seek, play, pause, skip 30, back 30 mostly without issue
* Dug deep in a huge UI performance issue
  * Every 1 second the whole UI would redraw if a podcast was playing
    * When scrolling it caused unacceptable lag.
    * This happened because I have a periodic tick firing and I update a variable to display the current time in the UI
  * So I did a dirty thing it seems like. I put a lot of state into my `EnviornmentObject` the problem with this is any time this is mutated the whole UI will refresh if it depends on this object. That is even if the value mutated does not affect the UI.&#x20;
    * I think what happens is the object itself is actually immutable. So when a value inside of it changes, the whole thing is copied then redrawn on all views which are children of this.
    * Anyway I looked into the performance and I believe this object was causing a 30ms draw on the screen. This is horrible. Way over the 16.67ms I have to actually draw.
  * So now what to do? I did a few experiments seeing how I could still have the current time in the app without destroying the scrolling performance. The only thing that helped is if I made a separate class and mutated that outside of the environment
    * So that’s what I did. It is a big ugly of a solution, but basically I instantiate this class `PodcastPlayer` and it contains some information about the current time and the total run time. It registers for the Tick callback. When it gets the tick it posts a notification which the UI receives.&#x20;
    * Now the UI only has to receive this value somewhere deeply nested, so it doesn’t have to redraw the whole thing, just the piece that changed. This brought the draw time down to about 8ms which is great. Still not as performant as I would like, but this is reasonable and should support 120Hz screens without major issue.
* So this UI bug taught me another lesson.
  * Use Combine and Publish/Subscribe. This will be the way forward, especially to have a performant app.
  * I still have absolutely no idea what the fuck this is or how to use it. I need to explore some Apps which are really using it to see how I can too. I’ve started just a little bit but still not satisfied with where it’s at.

### What about 0.08?

* EPISODE QUEUE!!!!&#x20;

  *The queue is meant to be the primary UI location. I pretty much only care about the existing queue or adding to the queue*

  * Yeah this was super necessary. Right now it doesn’t play episodes back to back, but at least I can keep myself sane.
  * This was one of the things about Apple Podcasts that drove me nuts.
    * I don’t want just and endless list of Podcasts.&#x20;
    * Looking at the app maybe you can add your own custom lists but I’m a dumb user.
    * I just want new podcasts to go somewhere “new” and if I’ve listened to them then make them go away.
  * So what’s the behavior?&#x20;

    *Ways to add:*

    * Search
      * Search for episode and add to queue (default add to top)
    * Subscription List (Inbox View)
      * Click ‘+’ to add this episode to the queue. This might get removed.&#x20;
    * Automatically
      * If the last refresh was >6hours ago, refresh all podcasts and add the new ones to the queue.
    * Currently Playing
      * The currently playing podcast goes to the front of the queue.
* Fix some more minor playback issues
* Can search for episodes and add them to the queue
  * Full support for images
* Refactored Podcast Search to be in line with Episode Search using `ObservableObject` now and `DataTaskPublisher` for getting the results
* Experimented more with `Combine`, still a lot to learn with this.

### Demo

{% embed url="<https://www.youtube.com/watch?v=EPBnBK9-df0&feature=youtu.be>" %}

### What’s Next?

* Put Podcasts on the Stream
* Mark notable areas of a podcast
* Favorite Podcasts
* Continue writing more about [\[\[The Philosophy of Tools\]\]](https://roamresearch.com/#/app/cj_pub/page/9_LAPgJol) when it feels right

## project


# April 20th-April 26th 2020

{% content-ref url="/pages/-M5sRVhPf7FWeqEaD00x" %}
[0.04 Dev Journal](/brain-dump/april-20th-april-26th-2020/0.04-dev-journal)
{% endcontent-ref %}


# 0.04 Dev Journal

## Summary

Overall a lot of cleanup and got to a functional state of playing episodes. Most basic end to end subscribe->get->play

* **Picker for the notes application side of things**
  * This allows picking between the dev and public stream environments
    * Needed this because I left myself in the dev env at the start of last week
    * Case switch statement for this. Toggles the API path&#x20;
* **New structure for the podcast app**
  * **Outer:**
    * Overall application state
    * `SceneDelegate`
    * `AppDelegate`
    * `PodcastState`
  * **Extensions:**
    * Have these extensions to encode URLs properly.&#x20;
    * Remove HTML from the JSON response that I get from the API.&#x20;
    * And then networking helpers is kind of this thing where, at least it lets me, download this image kind of cleanly and I can just call this.&#x20;
      * I don't know if this is the right way to do things. I don't think so
  * **Persistent Layer (Core Data):**
    * Local storage & persistent state management
    * Needs a lightweight data management layer on top
    * `PersistentPodcast`
      * Can convert from Podcast or to it for UI
    * `PersistentEpisode`
      * Can convert from Episode or to it for UI
  * **Models**
    * Decode JSON Response and use it in UI
    * Now everything is conforming to `Codable` to use `JSONDecoder()`
      * This is quite nice&#x20;
    * These are Episode and Podcast
  * **Internal**
    * Raw JSON that I got from the response so I don't have to hit the API as much.&#x20;
    * Something that I definitely need to integrate but I haven't haven't done yet.&#x20;
  * **Views**
    * **Podcast**
      * `PodcastSearchView`
        * Does the heavy lifting
        * Decodes JSON and fetches images async
          * May need to use a `DataTaskPublisher` in the future
      * `PodcastSubscriptionView`
        * Display current subs -> get to episodes
      * `PodcastListItemView`
        * Perhaps once list item created fetch image? Probably not
        * On subscribe write to the DB with `UIImage` `Data`
    * **Episode**
      * `PodcastEpisodesView`
        * Get episodes for a certain podcast
        * Can fetch from API
        * First gets local DB data
        * Refresh button in navbar to get latest podcasts
        * Worried about performance from all the DB queries
      * `EpisodeListItemView`
        * Play and pause buttons for a podcast and starts playing
      * `PodcastInboxView`
    * **Other**
      * `ContentView`
        * Minor modification to add `NowPlaying`
      * `NowPlaying`
        * Capture podcast that is playing and control it anywhere
* **Bugs:**
  * Multiple running ticks when playing/pausing podcasts
  * Create multiple `AVSessions`, should reuse.
  * No caching
  * `CoreData` subscribe is all messed up, bad state management, just refactor this
  * Relationships not fully managed yet
    * not loading images for episodes
  * sortDescriptors
* **Next:**
  * Begin integration into the main notes app.
    * Either I will integrate it there or do some interprocess communication&#x20;
    * Then all of that will go out to server, maybe it will record completely independently of each other to the server.&#x20;
      * I don't know
      * I think they should be sharing some kind of context I don't always want it to go out to the server.&#x20;
    * I don't know if this will be one app or separate apps I haven't decided yet. So these are all things to experiment with, I probably will do both because I can mostly just copy and paste.&#x20;
  * I might be using closure for the back end&#x20;
  * I, ideally would like run once and I can always push updates to it.&#x20;
    * I also would like it to be able to people to add their own API's in kind of a thing however you want to add handlers in. That would be great.&#x20;
  * This week was fixing all the mistakes I made last week, and making the code way easier to navigate and update, because it was a real pain to work with before it's still kind of a pain, but for me I can understand it in its current state. And I removed a lot of dependencies where I have to update, everything everywhere that still exists, and that's what I'm going to try to abstract away in the future.

## Demo

{% embed url="<https://youtu.be/CJwL9Vh6iWQ>" %}

## Video Journal

{% embed url="<https://youtu.be/x_--c485gZI>" %}


# April 13th-April 19th 2020

Nothing to see here. 0.03 disappeared into the void but was still worked on.

Mostly check the github :)


# April 6th-April 12th 2020

Small updates this week, with a lot of work and doing this on the weekend my brain is starting to fry. I need to get off the computer

### Table of Contents

* [Project Status 0.02](/brain-dump/april-6th-12th/project-status-0.02)
  * [What was done](/brain-dump/april-6th-12th/project-status-0.02#what-was-done)
    * [Last Weeks Goals](/brain-dump/april-6th-12th/project-status-0.02#last-weeks-goals)
    * [Details & Things I Learned](/brain-dump/april-6th-12th/project-status-0.02#detail-and-things-i-learned)
    * [Demo](/brain-dump/april-6th-12th/project-status-0.02#demo)
  * [Drawings & Inspiration From This Week](/brain-dump/april-6th-12th/project-status-0.02#drawings-and-inspiration-from-this-week)
  * [What's Next?](/brain-dump/april-6th-12th/project-status-0.02#whats-next)
* [Question Surrounding Technology and Elitism](/brain-dump/april-6th-12th/question-surrounding-technology-and-elitism)
* [Binge watching TV shows](/brain-dump/april-6th-12th/binge-watching-tv-shows)


# Project Status 0.02

Mostly cleanup from the mess I created the past two weeks :blush:&#x20;

## What was done

So let's pull it from last week and find out

### Last Weeks Goals

* [x] **Code Cleanup**
  * Rethink about the Environment: **Eh not really, just using it a lot more..**&#x20;
  * Compartmentalize Views better: **Yep and reorganized**
  * Work on `CoreData` and add more info for displaying dynamically
    * **Hacked the shit out of my DB to get dates separator in. Will change this in the future**
  * Fix `TextInput` overlapping with rest of UI. Also dynamically limit the `frame maxHeight` based on device.
    * **Yep, it moves properly now**
    * Remove hardcoded values here, probably some stuff to save in the env (seems hacky but will work for now to make it nice looking)
      * **Not really, some more were removed, but lots is still there. GeometryReader...**
  * Create a rotated and flipped view to do a lot of this flipping without manually specifying, or create and `extension` to `View` for this.
    * **Yep, created an extension to View as specified. (View\.flip())**
* [x] **Start Writing Podcast App**
  * **Yep, play and pause Audio from a stream and interact with it from the CommandCenter**
  * **Waiting on API confirmation from ListenNotes**
* [ ] **Start using issue/project tracker to figure out these timelines and be able to sort through them as well. This might be an entire input method on the app itself. FR feature request lol, I will be requesting features from my future self** :smiling\_imp:&#x20;
  * [ ] **NOPE. This will go further in the future,... Not really important right now. Might stop trying to track future changes as carefully for now. Mostly I am just playing with Swift/iOS Dev, no need to get involved with timelines. I have only 1 day a week to work on right now.**

### Detail & Things I Learned

There's not a whole lot to write on the App side of things this week. Most of it was just cleanup. Some details for the podcast player and things I've learned

* Went through to request Twitter API Credentials for future usage
* Requested for ListenNotes API Credentials
* Rename Views and organize them
* Work on experimental View `CommandPalette`
  * For autocompleting commands, adding tags, semantic search, etc
  * Play with animations
* Add date break
  * On app start go through DB and check if the day has changed between two thoughts, if so add boolean flag to `CoreData`. UI will check this flag and set up the date separator accordingly
* Fix `TextInput` appearing over `ConversationView`
  * Adjust the frame height of the `ConversationView`. Needed to modify the `Environment`
* Work on Podcast App
  * Stream Audio with `AVPlayer`
    * Media controls
    * Callback to update UI information when a tick fires
  * Create `AVAudioSession` and link it into system AV
  * Add `MPRemoteCommandCenter` to hook into Command Center for Lockscreen and Device
  * Add permissions to run in the background
* Research on how to get apps to share common data and do IPC
  * Looks like we can do this on iOS/MacOS using Application Groups
    * This is like a common sandbox or something. Interested to use this.

### Demo

{% embed url="<https://youtu.be/NuOx6aY3-wU>" %}

## Drawings & Inspiration From This Week

{% embed url="<https://twitter.com/tangjeff0/status/1248060649344831488>" %}

![](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M4e1JPyEn6EeX-DSrB_%2F-M4jwRPqFEYPrjnTJBiN%2FIMG_4875.jpg?alt=media\&token=fbcad494-cd98-48f8-b32a-82368b5d21a8)

{% embed url="<https://twitter.com/azlenelza/status/1246612847427112960>" %}

![](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M4e1JPyEn6EeX-DSrB_%2F-M4jxRrVHzJWaKYRifDW%2FIMG_4611.jpg?alt=media\&token=908af868-f6d6-4bd6-845c-b7e07c46ab0c)

![](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M4e1JPyEn6EeX-DSrB_%2F-M4jxXoa_K3xhuMMBf3V%2FIMG_3588.jpg?alt=media\&token=c9408eb6-fb7d-441b-884e-ee0ccfedcf8c)

![](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M4e1JPyEn6EeX-DSrB_%2F-M4jx_qf96-GJXo5xRYt%2FIMG_0558.jpg?alt=media\&token=7b9b9e12-5db4-4e00-94b0-0618f8d324a9)

## What's Next?

* If ListenNotes API, then use it to build podcast App
  * Otherwise create some static list with basic WebUI to add podcasts to and use this to sync which ones I'm subscribed to or something. Not sure exactly yet.
  * Also want subscribe for notifications, but also listen queue
    * Dynamically add things to top of the queue (up first)
* With basic podcast integration
  * Need the UI to have some kind of an indication that a podcast was playing or is playing.
    * Capture events on the podcast essentially. Will have to add a stop command as noted
    * Maybe similar to Date thing, do podcast... idk yet
    * Also need to be able to modify in the front of the app not just in the podcast portion
  * Will need to do similarly for the web. Might need to adjust how the text file is written
    * Write in date modifiers
    * Write in podcast modifiers
    * These modifiers can build some sort of context hierarchy or something
      * Maybe not just a blind append, but a \t or something
    * Maybe use UTF-8 blank characters to indicate certain things? Or emojis?
    * 📅Date
      * 🎙️Podcast
        * 💭Thought
      * **🎧**Music
      * **🏃**Running
      * **🚲**Biking
      * **🧗**Climbing
      * **🍔**Food
* Figure out a better system to log what is being done, maybe a lot of commits.
* If no podcast stuff then maybe start more work on the command palette and books
  * predict page based on time elapsed? over time?


# Question Surrounding Technology and Elitism

It's hard for me to capture exactly what I am thinking because I don't know if it's really a cohesive thought. But maybe a couple of questions to explore.

Is technology becoming more elitist?

What do I mean by this? I think the more accurate question would be, is the access to technology or well-designed technology dwindling? I think the answer is no to this one. As we get more technology is does tend to filter downwards. This raises another question for me though. Similar to how we have the 1% holding all the wealth is this similar to technology? Do only the rich really have the good technology? I think yeah this is probably true. Is this necessarily a bad thing? Maybe not. The question is though how do you bring this amazing and potentially life saving technology to more people? How do we bring clean water to everyone? It is a human right. How do we bring electricity, internet, education to everyone? Technology is one of the main ways to do this, and by not helping our fellow humans we are limiting the growth potential for all of us. An investment now in those who are less fortunate than us is worth a lot


# Binge watching TV shows

Just was thinking about this a little while watching Westworld. If you binge watch you do get engrossed in the show, but afterwards you may forget a lot of it relatively quickly. There's not much more there to keep in your brain. Or a reason to keep it in your brain. I noticed this with Lost to some degree. Seems like the 'spaced repetition' of a weekly show is better. The recap is helpful because you're like oh yea! Maybe gives a show some more staying power. I guess with Westworld, to me it already is a classic. They've done a fantastic job


# March 30th-April 5th 2020

Looks like I spent too much time on the project this weekend :blush: Will quickly write some notes about it.

Also thinking about doing this in a slightly different way for next week.&#x20;

* Write down what I am thinking in the app
* Review and write on it the next day at 8:00AM if anything of note
* Sunday, review the writings and publish

### Table of Contents

* [Project Status 0.01](/brain-dump/march-30th-april-5th-2020/project-status-0.01)
  * [What was done](/brain-dump/march-30th-april-5th-2020/project-status-0.01#what-was-done)
  * [Demo](/brain-dump/march-30th-april-5th-2020/project-status-0.01#demo)
  * [How it was done and what was learned](/brain-dump/march-30th-april-5th-2020/project-status-0.01#how-it-was-done-and-what-was-learned)
  * [What's gonna be in 0.02?](/brain-dump/march-30th-april-5th-2020/project-status-0.01#whats-gonna-be-in-0-02)
  * [Sketches from this week](/brain-dump/march-30th-april-5th-2020/project-status-0.01#sketches-from-this-week)
  * [Things for 0.02+](/brain-dump/march-30th-april-5th-2020/project-status-0.01#things-for-0-02)


# Project Status 0.01

Some necessary improvements for the app. Pretty excited where it's at right now, it's at least a lot more usable. I think next week I will have even more thoughts on what needs improvement after using it for a bit.

### What was done

Let's go through last week's notes and check the things off. Overall did relatively ok. Mostly worked on the UI this week, it's quite a different experience now. Some [fun notes](/brain-dump/march-30th-april-5th-2020/project-status-0.01#detail-on-what-was-learned) along the way too.

* [x] Publish repo's with my toy code
  1. iOS Code: <https://github.com/cjpais/cjplay-ios>
  2. Server Code: <https://github.com/cjpais/ubiquitous-journey> (lol name)
* [x] Publish event stream @ [stream.cjpais.com](http://stream.cjpais.com/) => moving server to web?
* [x] Change date formatting
* [ ] How the hell to track these goals? All in github issue tracker? Here itself? It will be here eventually, so I will assign the version to be around **0.11** as I will certainly need it to be part of the system.&#x20;
  1. Nope. For now will keep the gitbook. I have most in my head for now\.. Will need something else as this won't scale
* [ ] Integrate spotify API
  1. Nope. Not that worried about spotify for now move to **\~0.10**
* [x] Figure out if integrating podcasts is possible
  1. It will be, but I will probably start writing another app for this. Maybe integrate into the main one or not. TBD **0.02**
* [x] Persist note for a little bit of time?&#x20;
  1. See the below
* [x] Create new 'thought' and make the old one go away? Something like > button to send. iMessage like
* [x] \-------- Date ---------
  1. Implemented in the code, not seen visually. Need more work **0.02**
* [x] <- time on the side? fixed always visible? other side? who knows? user pref? will probably just use some hacked up ui for myself initially.
  1. Yup, see the [demo](/brain-dump/march-30th-april-5th-2020/project-status-0.01#demo). This is ugly and [will be revisited](/brain-dump/march-30th-april-5th-2020/project-status-0.01#sketches-from-this-week)
* [ ] Alternative input methods (voice recording, and photo/video integration)?
  1. Lets move this to **0.05**
* [ ] Create app icon, thinking white on black or black on white circle, or circles. Would be kind of cool to have the center be a small circle created from a bunch of larger circles, seems v hard to make tho
  1. Code is more important for me right now. It's on the mind but no tag.

### Demo

{% embed url="<https://youtu.be/Oz_jq5oBSj8>" %}

### How it was done and what was learned

A lot about SwiftUI it turns out. Ripped a lot of code out too, but tons still hanging around. After using the app for a week the biggest gripe I had was that I had to keep exiting the app to send something to the server. So this week we totally redid the UI

* **Build new UI**
  * Build "message input"
    * This was relatively simple, I already had the custom text view, so I just put some styling on it and a button
  * Add new `Note` to `CoreData`
    * Mostly this wasn't a huge issue, just moving around some code so when the button is pressed we also save the note locally. I mostly had the framework for this.
  * Send message to the server
    * Basically just ripped out the code from the app getting backgrounded and moved it to the button press handler.
  * Move display dynamically with keyboard open/close
    * This was a pain mostly because I had no idea what I am doing
    * After lots of Googling, when the UI appears (`.onAppear()`) I will add an observer for the `keyboardWillShow` notification. I will get the `height` of this.
    * The `height` will be used to change the `padding` of the last element to effectively shift up the whole UI up. Initially I used `offset`, but this ignores the safe area which causes problems (ui overlaps with status stuff)... The calculation includes the safe area to display the input at approximately the right place.
  * Start `ScrollView` from the bottom for chat like UI
    * This was a pain, but the solution was not horrible but quite hacky lol.
    * The problem is the `ScrollView` has no option to start a the bottom as far as I can gather.
      * So what to do? Well I found a suggestion and it was to flip the `ScrollView` 180 degrees. I tried this and actually it worked quite well. Sure you have to flip the inner view the same (and mirror it, because now everything is opposite as you initially programmed). But after doing that, it kind of just works.
      * Even adding data with `CoreData` into the view was no problem, it worked and shows the results immediately. Without flipping, this also would have needed to be taken care of manually. So this option was by far the easiest and I think the cost to the UI thread is relatively low, but I guess we will find out. Who knows though. This UI might not even last that long.&#x20;
    * [Answered StackOverflow Question](https://stackoverflow.com/questions/57258846/how-to-make-a-swiftui-list-scroll-automatically/61036551#61036551). I wasn't really satisfied with the implementations suggested. I found this suggestion in some StackOverflow post for `UIScrollView` using `CGAffineTransform`. I adapted the methodology for SwiftUI
  * Resize the `TextInput` dynamically according to it's contents height.
    * This just took a little bit of rejiggering the code to, so that the `frame` of the view changes dynamically as the contents of the `TextInput` change. There are definitely some hardcoded values here that will need to be removed. Probably should bring the iPhone 7 back to life.
* **Build the stream**
  * Allow new notes when not on local net
    * I had to open a port. Server is running on my Arch machine.
  * Get some VPS server to host static files
    * Written in Go
    * Need to serve HTTPS
    * Built minimal CSS
  * Built script to reverse the appended text file and output html & SCP to static serv
    * This is python for now
    * Called every time the server gets an update
  * Yeah this is a lot of components. Will need to make this way easier in the future, but for now it's simple enough.

### What's gonna be in 0.02?

I am thinking maybe do some code clean up in iOS. There are a lot of things about the code that I am not happy with right now. It is getting to be painful to work on. These are the growing pains when you have no idea what you're doing. I also want to set it up where I can work on individual components a little more carefully rather than running everything on my phone every time.

* **Code Cleanup**
  * Rethink about the Environment
  * Compartmentalize Views better
  * Work on `CoreData` and add more info for displaying dynamically
  * Fix `TextInput` overlapping with rest of UI. Also dynamically limit the `frame maxHeight` based on device.
    * Remove hardcoded values here, probably some stuff to save in the env (seems hacky but will work for now to make it nice looking)
  * Create a rotated and flipped view to do a lot of this flipping without manually specifying, or create and `extension` to `View` for this.
* **Start Writing Podcast App**
  * This is the biggest thing I want to add initially as mentioned before.
  * This will be a separate app for now? Maybe integrated into the same one to keep data together initially. Later this should be resolved, either by the server or some cross data storage (i don't think ios will let me do that tho which is quite unfortunate, lets see)
  * Subscribe to Podcasts
  * Get list in date order (+be able to sort by importance to me)
  * Play, Pause, and Stop
    * Why Stop?
      * Need some way of explicitly indicating to the computer that I don't want to write in this context
    * Log these out to file
    * In main UI reflect if the podcast is being listened to and the notes are going into that 'bucket'
  * Get transcript
    * if not provided. generate it (force it through otter? lol)
  * Be able to operate on transcript
    * make notes directly in the text
  * Jon's suggestion to pause podcast and record audio with custom airpod action
    * No direct Apple API, tho there is this github project <https://github.com/LemaMichael/AIR>
* **Start using issue/project tracker to figure out these timelines and be able to sort through them as well. This might be an entire input method on the app itself. FR feature request lol, I will be requesting features from my future self** :smiling\_imp:&#x20;

### Sketches from this week

![Some thoughts on modifying UI](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M4AnO7MREIcn6_8RcGQ%2F-M4ArtDopr65sehizGry%2FScreen%20Shot%202020-04-05%20at%2012.22.42%20PM.png?alt=media\&token=080b73bb-5c2a-4bd2-a78b-fb2366969b5d)

I do have some audio recordings/drawings as well. In the future I'd like to be able to add this to the stream. At some point maybe all the work for this is streamed.

### Things for 0.02+

**"31 Mar 2020 21:17: I just want a seamless experience where my thoughts are not interrupted"**

* **0.07** Alarm integration&#x20;
* **0.05** Audio/video input integration + transcription (**\~0.08?**)
  * Want to be able to publish/live stream these things. **0.13**
* **0.04** Custom input toolbar, ability to also send a tweet when the note hits (better to do this locally)
* **0.04** Public vs Private notes
* **0.03** Think about parsing vs db + think about message queue too (pub sub)
* **0.03** Provide feedback based on state (specifically around if it hit the server and if it hit the web)
* **0.03** Think about app interaction with the backend. Unified backend
  * Thinking that even a text file is potentially enough as long as theres some kind of definite language to parse it. Basically add things, and things can refer back to other things, but doing this efficiently may be hard. Need some notion of 'pointers'


# March 23rd-29th 2020

Looks like it's a relatively light week for writing. I have more things to write, but I also want to get some things done around the house.&#x20;

### This Week

* [Notable Podcasts + Notes](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes)
  * [AI Podcast #74: Michael I. Jordan](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#ai-podcast-74-michael-i-jordan)
    * [Privacy](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#privacy)
    * [Data markets](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#data-markets)
    * [Personal knowledge systems/recommender systems](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#personal-knowledge-systems-recommender-systems)
    * [Responsible Context Aware Data Systems](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#responsible-context-aware-data-systems)
    * [Misc](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#misc)
  * [AI Podcast #82: Simon Sinek](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#ai-podcast-82-simon-sinek)
  * [This is why I hate the current data model](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#this-is-why-i-hate-the-current-data-model)
* [Projects Status: 0.00](/brain-dump/march-16th-28th-2020/projects-status-00.0)
  * [Disappearing Notes](/brain-dump/march-16th-28th-2020/projects-status-00.0#disappearing-notes)
    * [We did it! The notes disappear!](/brain-dump/march-16th-28th-2020/projects-status-00.0#we-did-it-the-notes-disappear)
    * [What was done + what I learned](/brain-dump/march-16th-28th-2020/projects-status-00.0#what-was-done-what-i-learned)
    * [Demo](/brain-dump/march-16th-28th-2020/projects-status-00.0#demo)
    * [Naming Scheme](/brain-dump/march-16th-28th-2020/projects-status-00.0#naming-scheme)
    * [Some goals for 0.01](/brain-dump/march-16th-28th-2020/projects-status-00.0#some-goals-for-0-01)
    * [Goals 0.01+](/brain-dump/march-16th-28th-2020/projects-status-00.0#goals-0-01)
* [Political Musings](/brain-dump/march-16th-28th-2020/political-musings)
  * [Why do we let the president appoint so many people?](/brain-dump/march-16th-28th-2020/political-musings#why-do-we-let-the-president-appoint-so-many-people)
  * [West Wing S2E18](/brain-dump/march-16th-28th-2020/political-musings#west-wing-s-2-e18)
  * [Twitter Politics](/brain-dump/march-16th-28th-2020/political-musings#twitter-politics)
  * [Should the private sector be controlling public services?](/brain-dump/march-16th-28th-2020/political-musings#should-the-private-sector-be-controlling-public-services)
* [Misc](/brain-dump/march-16th-28th-2020/misc)
  * [How would you design a city from the ground up? TLDR: IDK](/brain-dump/march-16th-28th-2020/misc#how-would-you-design-a-city-from-the-ground-up)
  * [On Watching TV](/brain-dump/march-16th-28th-2020/misc#on-watching-tv)

### Quick Personal Notes:

Want to cut my wardrobe back, and redo it with as much sustainable clothing as possible. Will be recycling or donating old clothes. If you have any specific orgs let me know. Otherwise will give to goodwill or recycle through sewing stuff out of them (chalk bags again? anything else I can make? grocery bags? face masks?)

Great articulation from Jon that I desperately want in my life. To be able to have an open space where I can "pop in on the different dorms, physics, bio, psychology, linguistics, economics, etc". To listen and learn, ask questions and be the dumbest in the room. See how these concepts integrate with my own work. All of these things impact what would be done and what decisions would be made. I would rather them be made by a plurality of people than one person.&#x20;

**Nightly Reading:** Watership Down. Only fiction before bed. I've been very tired so slowly moving through it. I love this book though.

**Daily Reading:** The Design of Everyday Things (probably one of my favorite books. learned so much from this so far. looking forward to continuing to read it) & 12 Rules For Life (initially this book was good, but the more I'm reading the harder I'm finding it to continue. Will likely finish however)

Looking into glass whiteboards.

Thinking about Sonos (that shit expensive...)

Thinking about new MBP (mine crashes when unplugged). Waiting for 14" to be released to decide which to get. I think I would go for 14". I don't really want to spend >$2k on a laptop. Yeah it's what I work on, but cmon I'm spending $1k for my phone already. Let that be my computer please. Also would get an iPad Pro to use as portable second monitor, so that gets expensive real fast.&#x20;

Kind of want a french press and electric kettle. My coffee machine is very noisy and it bugs me. I also don't want to drink as much coffee as I have been. I don't drink it during the week right now, but if I do I would want a small amount. I find it hard to control in the machine.&#x20;


# Notable Podcasts + Notes

Looks like the most notable this week are both from [Lex Friedman's AI Podcast](https://lexfridman.com/ai/). Very glad that Alex turned me onto the [Joe Rogan episode ](https://www.youtube.com/watch?v=ZIcQwDkcaWk)with him. Will probably have to go through the history of these. They are just wonderful. I think they show the best perspective on technology that I've found so far, mixed in with some extremely deep questions and fascinating topics. Only good things to say really.

There were a few other podcasts that spawned notes, but I wrote about them already. [This is why I don't like this data model.](/brain-dump/march-16th-28th-2020/notable-podcasts-+-notes#this-is-why-i-hate-the-current-data-model) [Look at project goals for some thoughts on resolution](/project-goals)

## [AI Podcast #74: Michael I. Jordan](https://lexfridman.com/michael-i-jordan/)

**Fucking hell this was one of the best podcasts I've listened to.**

A lot of this will be notes from the podcast to best of my memory. I wish I had better timestamps when these thoughts occurred, but again this is [the goal.](/project-goals)

The first hour was particularly intriguing to me. It focused a lot on the things I'm most interested in. Specifically a few topics. All of them are interrelated so it's hard to pin thoughts to specific ones.

### Privacy

I think Jordan is right when talking about Facebook being creepy. You just see ads popping up about things you were talking about. It's just a black box and to see that is weird. Like you don't know what's being collected about you or when it's happening. You also don't know the relationship between that piece of data and who is using it and for what purpose. That's also scary.&#x20;

I would want to be able to know these things about my data certainly. I also would want to be able to explicitly give out permission. No I don't want you listening to everything I say. I might have that data on myself (and want it I made the choice), but you shouldn't have it by default. If I do give it out, I want to know how that will benefit me. Why that data is being used or requested. How do you stop malicious intent? So many questions and interesting things going on in privacy.&#x20;

### Data markets

There was a good amount of talk about data markets. One that was brought up (that I also love as an example) is music. Specifically how the distribution of money coming down for their creation is not very equal to the distribution of listening. Noted, is that Spotify wants to help in this, but they are still taking a large chunk. Also what if I as a listener want to give more to this artist than the average person. Noted in the podcast is the idea of metrics and knowing where to have a concert or other kind of events. Where to target merch etc. Allows artists to be closer to their fans. This is good for them. I've noted previously that I would love to be able to see the evolution of a piece of art/music too. I think I would have greater appreciation of it if I can see how it evolved and be able to explore its evolution. I think that could elevate the art immesely. I think this applies to all kinds of domains too. Also it could give artists such granular control in charging people for their music or provide new and different ways to make money of their creation. I bet you could charge wealthier people more. How do you get to know this information? Is this a good system? Does this equalize society? Or does it bring greater rifts? So many implications of a data market. Again it needs a lot of people to help out in creating it.

Data is only becoming more and more prevalant and valuable with the growth of IoT/AR/VR systems. These systems will fundamentally impact how we as average people interact with data, and I think pepole will start to be concerned very quickly once they understand how broken the system is. I don't think people will stay ignorant of the systems built around them and what they are doing. Even if they are, the people that aren't should be building better systems. Regardless I think they will figure it out because the data will be so valuable, so who would want to give it up for free? I imagine my data will be so valuable that I could sell it and earn a good amount of money from it just by living. I bet I could even charge more for it than if Facebook owned it. There has to be a data market to support this however, as the data in an of itself may not be that valuable. This raises all kinds of questions and has huge implications economically and socially so really need more intense thought with lots of people.

There needs to be a separation of data for sure and the current infrastructure is not built to handle this. A lot more data will be given up. Take health data for example, if I am embedded with a sensor in me is that going to go up to a cloud system of some random company providing the sensor? I need to know that it won't.

I also think that I don't know if I want a company in control of this kind of data system. It seems like a problem. I think such a system or platform can make money, but it should be like some sort of tax for using the system. To perpetuate it, and also provide money to improve other systems. Something that is self sustaining and governed. Governed by the people since they are the ones getting taxed. It is a global system and should have global participation. We should allocate money outside of the traditional government to things we feel are important. By using this system hopefully you feel that your money is going somewhere good. Maybe you can personally allocate it. Just a thought.

### Personal knowledge systems/recommender systems

I guess more what was mentioned in the podcast itself was next generation recommender systems. Ones that take into greater account of your data and what may be interesting to you. More than just knowing for example I am going to "x" place what will be interesting. More I am going to "x" place and here are all the things interesting to me, please help me figure out what to do while I'm here. Could even help employ people and help them connect on deeper levels. Quite interesting concept and you can definitely see how this could be some kind of market.&#x20;

Another interesting thing was the note on being able to control the the information I want and when. Jordan notes that ad's shouldn't go away, that'd be bad for everyone. I agree for the most part, as there is a lot of nuance to this specific topic (as with any). But on the main topic, I do want to control what I am seeing to some extent. In different contexts I want different information for sure, and I would love to be able to specify that to the system. Also I might want ads about stuff that my friends have or something. Know their personal reviews of what they are using. Explicitly or implicitly (well this can be scary too). But this level of control could be scary too. Depending on the implementation of such a thing it can lead to even more insular, and closed spheres than we have today. This kind of thing has to be done very carefully to ensure that we don't get so devisive.&#x20;

### Responsible Context Aware Data Systems

I'm slightly botching the quote, but here's the best I can do.&#x20;

**Around 13:30 onwards, Jordan is talking about how current systems, Google, Amazon, Uber:**

*"are slightly broken because there's not an engineering field that takes economic value in the context of data and planetary scale, and worries about all the externalities, the privacy \[and so on]."*&#x20;

I don't know what to say or where to begin. This is the most compact sentence that sums up exactly how I feel about these systems too, and what needs to be considered for future systems. If you continue to follow my writings and creations you will probably find this is exactly the problem I am most interested in. I am not sure how else to state it succinctly.&#x20;

The problem (and greatness) with this field described is that it is so encompassing. In order to change the systems for the better we must think of them fundamentally differently. They should be thought of from all perspectives from all fields of science and humanities and more. We must work together and integrate as many ideas and perspectives into such a field.&#x20;

I think from the end of the podcast it is called something like Human Centric Engineering and Design. I think in some sense it is similar to human computer interaction, but HCI is a little more specific. This is a bit more broad and encompasses how other systems can be best engineered for humans. Computers are one major component of this system, but there are others as well. They all play into each other and require a lot of thought.&#x20;

Not mentioned in the podcast but very related would be Personal Knowledge Graphs. This would be like my collection of knowledge, how I got there etc. People I know, all kinds of personal information. I imagine it would connect with other's graphs to speed up commication and make it more effective. It should link into the global knowledge graph as well. But there should be distinct separation between them. Like the global graph shouldnt have access to my personal graph unless its explicity provided. How to design this is a great question.

### Misc

One other notable topic was surrounding progression of science/engineering with ideas or personalities. (19:00 according to the site).

The advice at the end of the podcast touched me and I will be reaching out to Jordan. I don't know what I'm doing and I am looking for mentorship. I've been thinking about [grad school and a PhD](/brain-dump/march-7th-14th-2020#notes-on-personal-statement-for-hci-phd), but my thoughts are scattered. If I were to do a PhD I would want to learn how to those scattered thoughts as consice as Jordan's quote above. It was beautiful. I am looking to in that cooperative kind of field. I am looking to learn and help others learn as well.

## [AI Podcast #82: Simon Sinek](https://lexfridman.com/simon-sinek/)

Just a quick note here really. I think the nice thing about Simon is the inspiration he brings to the table.

I had a thought which came almost directly from the podcast and I'd like to adopt it and attribute it. Unfortunately I don't have the timestamp

"I haven’t done much yet. It’s not about what I’ve done, but more about what we will do. I will help drive humanity forward"

Also shared this with Jon, he said he enjoyed.

## This is why I hate the current data model.&#x20;

I guess the data model is this one way linking thing. I'm telling you this is all a freaking graph. I don't see how it's not. probably some weighting to the graph as well. The graph is going to be huge in the project.

Roam does a better job, but I can't make it pubic and I don't think it wouldn't be easily browsable anyway.

That is I have notes from here which really integrate into other things that I've written, but not all deserve their own section. All this data is interconnected and I can't easily represent it on this wiki. Such a pita.&#x20;

This is another goal of the project.

^ This sentence has so much data in it. That paragraph should be added to the goals of the project. But nope can't do that easily. Fucking hell

##


# Projects Status: 0.00

## Disappearing Notes

### We did it! The notes disappear!

Small victory. Most of what was set out to be accomplished got done. I reduced the scope even further and for now I am fine with this. For now it looks like it will serve my purpose just fine. I've dropped the DB for now and more complex insert/modify operations.

I focused and worked from 11AM-8PM yesterday. A banana was the only food other than my breakfast.

### **What was done + what I learned**

**Roughly in order (documenting this a day later)**

* Created new iOS/SwiftUI Project 'cjplay'
* Created "CardView"
  * Initially imagined would have a bunch of cards representing each note, but this ended up being a very ugly UI. The card and background are the same color now so you can't see the text is in a card.
* Found out that [SwiftUI TextField](https://developer.apple.com/documentation/swiftui/textfield) sucks ass.&#x20;
  * As of now it looks like multiline text with it is basically impossible??? wtf apple?
* Learned how to use UIViewRepresentable kind of.&#x20;
  * Created TextView which is a UIKit UITextView which is UIViewRepresentable.
    * With this I can do multiline stuff.
      * It has a bit of weirdness too (that took way too long to figure out). The field must be scrollable for it to wrap the text? Again I don't understand the design. These things should be mutually exclusive. I tried using specific wrapping parameters and that did shit all.
    * Can pass data in and out of it
* Learned about CoreData, created and used a Model
  * I needed to figure out how I could clear the note on the App being backgrounded. No idea how I could do this, but I figured with Core Data I could at least get the data out of the application using NSFetchRequest.
    * Turns out I can, but I have no idea how to bind this to my SwiftUI, so when the app resumes the old note is still there... ok fine.
  * Also I did something really dirty while using CoreData that I will remove. I was writing to the CoreData context in the UI thread. Lol this is horrible, I felt dirty just doing this, and the debugger clearly was telling me the same.
* At this time now I could at least get data out so I whipped up a simple go webserver
  * The API is /note/new, and takes Content-Type text/plain via POST
  * It appends the text to a file on the disk 'cj.txt'
  * Pretty sweet right?
* Implemented code to send POST with URLSession when Scene is backgrounded
* Well shit I can't clear my UI...&#x20;
  * I did a lot of reading at this point. Through the Docs, mostly surrounding UIScene.
  * Beyond this a lot of Googling to understand more what the hell is going on and how to get this data.
    * Some more experimenting with ObserableObjects, Enviornments, etc. I still don't quite understand. The abstraction is a bit strange to me, but it seems mostly to completely reside in SwiftUI land. Fine, we will let this be separated out from App Logic.
  * AppDelegate and SceneDelgate
    * What I didn't realize is the interaction between SceneDelegates and AppDelegates. Seems like the AppDelegate is the highest level for the app, and the scene is below that so parallel scenes can be supported in iPad OS.&#x20;
      * This is pretty important. The SceneDelegate has a reference to the app delegate.
      * I can store data at the AppDelegate level and the same data can be binded to my UI through Enviornment (or something like that).
        * This still seems quite hacky. Though it works and clears the scene great.
        * I think I might have to do something with UserData or something
        * Persisted data can continue to be in the CoreData model but I will have to extensively modify it for what I want (will be decided more in **0.01**)
* That's about all for now!

There was so much learned about Swift and SwiftUI. This took the majority of the time. I spent probably 5 hours trying to get the text field right. I encountered so many quirks and holes in my knowledge. I feel like now I have a grasp on some of the paradigms they are trying to set, but I don't quite understand them all. Everything is a bit too abstracted for my liking personally. I work in C all day long, and it is dead simple to read. Maybe I should have written an ObjectiveC app, but I think this would've led me down the same path in the sense that Apple is hiding so much from userland apps. I could be wrong because I have no idea. I've written ObjectiveC once about a year and a half ago.

### Demo

{% embed url="<https://youtu.be/4lnbjg-OR4g>" %}
Notice the counter above the app, this was trying to figure out SwiftUI/iOS :)
{% endembed %}

![Example of the 'stream' that will be displayed on the web next week](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M331HU9YfQmmG70drod%2F-M3b15WQpa5OUYEPkCPA%2FScreen%20Shot%202020-03-29%20at%209.02.52%20AM.png?alt=media\&token=87e0b9e4-3d04-4bfa-a0d7-e682b5d51424)

### Naming Scheme

Currently this will be a weekly release on Saturday. I work 5 days a week for long hours already and will not be making progress. Sunday is my free day to do whatever I'd like and Saturday is my day for code. Once the quarantine ends and my knee heals, this might be broken up a little more depending on what I have going on (backpacking trips, rock climbing, etc), but mostly this will be the schedule.

So with this we will do y.ww for now. So 0 is for the year, this is year 0. Will be using 0 based indexing because I feel like it. Similar for week. This is week 0.

If anything more gets done this will be y.ww\.dd, don't expect this very often. Today might be an exception, but we'll see. Some other higher priority stuff.

### Some goals for 0.01

Some immediate things I am looking for/need to do. Some decisions are to be made and may not make it in this release. Looks like there's a lot of things to do in this release. I think we will get the simple things out of the way first (#1,2,3,4). Then spend some time for podcasts, if doesn't work out shelve it for now. Move onto spotify. And messaging interface

1. Publish repo's with my toy code
2. Publish event stream @ stream.cjpais.com => moving server to web?
   1. yeah gonna need a good way to somewhat protect this :)
   2. you wont have any kind of write access to my stream (hopefully), if it gets messed up I fucked up badly. Will make copies of this locally (offline)
   3. also this is basically going to entirely replace this site & twitter at some point. Create twitter like threads but more mesh like.
3. Change date formatting
4. How the hell to track these goals? All in github issue tracker? Here itself? It will be here eventually, so I will assign the version to be around **0.11** as I will certainly need it to be part of the system.&#x20;
5. Integrate spotify API
   1. **0.01+ \~ 0.03** start of event scheduler/message queue?&#x20;
6. Figure out if integrating podcasts is possible
   1. MPMediaPlayer? Looks like Apple and other services make way harder than necessary.
   2. **0.01+ \~ 0.05:** May end up having to integrate some kind of podcast player. I will need to be able at minimum to keep track of start and stop. I need this. My morning consists of listening to podcasts while I work out, shower, eat. I can go through as many as 3 or 4. I want to be able to capture associated notes.
7. Persist note for a little bit of time?&#x20;
   1. Schedule notification?&#x20;
   2. Only when app is explicitly exit from user clear the note?&#x20;
8. Create new 'thought' and make the old one go away?
   1. Want to be able to capture different trains of thought somewhat explicitly. Thought of in the shower this morning. Something like > button. Can think of iMessage interface. Perhaps this is also a good interface here. Actually this is an interesting thought, to change the input down below. Instead of dissapear its a send. Will need to think more on this. Could also use something like color when showing the sent message to see how the system interpreted it. Could help to show some state in the application naturally. Will really have to think about this, could be interesting and better design paradigm.
   2. Could also have some notion of time&#x20;
      1. \-------- Date ---------
      2. <- time on the side? fixed always visible? other side? who knows? user pref? will probably just use some hacked up ui for myself initially.
   3. Display of context too? (now playing, now reading, etc?)
9. Alternative input methods (voice recording, and photo/video integration)?
10. Create app icon, thinking white on black or black on white circle, or circles. Would be kind of cool to have the center be a small circle created from a bunch of larger circles, seems v hard to make tho

### Goals 0.01+

These are all over the place but I will try to roughly estimate the week they will come in.

* **0.02:** Real data model using graph DB as backend? Continue to use text file? Will need to evaluate. Pros and cons to each side.&#x20;
* **0.03:** Probably some kind of user authentication... might even need to come earlier.&#x20;
* **0.04:** Start doing NLP server side. Basically want to do Named Entity Recognition. Give feedback on it on the desktop UI (and maybe even mobile). Such that it can be easily corrected as well (like it doesn't pick up a clearly named entity, I can highlight it and tell it that its an entitiy)
  * **0.10:** Will also want to be able to recognize other things than entities. Also actions/implied actions. For example last night I wrote "Goodnight" => I'm going to sleep. This morning I wrote "woke" => awake.
* **0.15:** More thinking about how 'apps' should interact with the backend system. Specifically after writing more Swift code. There are so many times I wish I could just pull some state from another system but I can't. Would like to know and interact with that state. But some state needs protection as well. Like it can be a blocking state in some sense. Only certain kinds of events can remove that blocking. Will have to see. Will need to protect from malicious intent, but also its all my code for now. Other code can be hooked in but only explicitly.
  * **0.32:** Some kind of package manager for my own sanity? This will mostly go on the server side, but could even be triggered from Application side. Will have to have the prior thinking done above.
  * **0.20:** Want to be able to have a solid picture of the model between other apps, or if its all just this one?
* **0.13:** podcast commenting system, maybe soundcloud like with annotations as well.. ala <https://twitter.com/adam_keesling/status/1243647609874481152>
* **0.10:** Establish some data model. I will be interacting with entities that are public, so I need to be able to link that data. Semantic web kind of concept. This can use WikiData or ConceptNet or similar. May be needed in NLP (**0.04?** this is seeming a bit early now)
  * Some kind of multi-tier system. Private, circles, and public? Can also be anon, but ideally these things. Anon is completely separate entity. Ideally something not comfortable saying, but is something vulnerable? This has so many problems tho given how people use anon interactions today. Maybe only real users can comment on an anon message? Anon to be implemented around **1.00+**
  * Might have to begin to write my own graph db, or at least begin to conceptualize about it. **Graph DB is a straight up research project.** It's like the fabric of everything

##


# Political Musings

### Why do we let the president appoint so many people?

I guess if we didn't this would help to limit executive branch power further?&#x20;

Specifically the alternative I was thinking was having the people elect those who get appointed on a regular basis. Or some kind of job evaluation or something. Like cmon for education and EPA we should be electing really good folks. I guess it's a difference in belief, but maybe it would help break partisan lines a bit on more individual issue level

### West Wing S2E18

Ainsley Hayes has a great bit in this episode. I don't know what to think  exactly. Essentially she is making the argument that Women don't need more laws protecting them, but for the existing ones to be respected. By adding more laws it kind of shows that women aren't equal and we are going to protect them in all these ways. This just perpetuates the bias. Fascinating perspective and in some sense I agree. **All people are equal. Full stop.** After that has been established how much more is needed? It's touchy and tough and I'm interested to hear more perspectives on this to develop my own further.

### Twitter Politics

"People on twitter make me angry with politics. I hate Democrat’s and republicans right now. Both have their heads up their asses at least what I see. I don’t want to see some of y’alls political opinions if it’s just gonna be flaming"

I don't even want to be angry. I don't think I'm going to tweet about politics other than linking these. They are all unfinished thoughts and not meant to enflame.

Also because of this I am staying off Twitter more and more. I do want to be able to filter out any political opinions from anyone I'm following for the most part. @Jon

Yeah I'm part of the problem too, trying to do better

### Should the private sector be controlling public services?

This is mostly in relation to healthcare. It's an interesting thing.

Argument for it I think would be that by letting the private sector control, you enable a lot of money to be funneled into research. Does it help to inspire innovation in the sector? Like you have a reason to do it.

Isn't helping people enough? Like you will be rewarded either way...

But what are you researching for? To get people to pay again? Is it really for their health?

I think there is a balance here for sure, I am not toally sure that the government should have full control, but it is a market for sure and we do regulate markets to some extent. Idk at least this would help. It's hard for me to say

Also with cell networks this is a public service. Should it be the gov? Does gov subsidize? :sigh: these are very complicated issues and I need to discuss outside of my own brain here


# Misc

### How would you design a city from the ground up?

No idea. **Would want plenty of space to bike around tho.** I would want to live in a coastal city close to the mountains probs. lol this is SD/LA. This came from conversation with Jon, not sure how to organize on this. Again event stream hopefully will help take care of cleaning and organizing these ideas. Can clearly get the origin of the thought and the context of it (manually initially)

Probably develop this more later

solarpunk city for sure would be interesting

### On Watching TV

{% embed url="<https://twitter.com/cj_pais/status/1244330256791523328>" %}


# March 15th-22nd 2020

## This week's topics

{% content-ref url="/pages/-M32iuobXtR-njLcuTFp" %}
[Disappearing Notes](/brain-dump/march-15th-22nd-2020/dissapearing-notes)
{% endcontent-ref %}

{% content-ref url="/pages/-M32d04iBABb88dherCT" %}
[Radio Spectrum Allocation](/brain-dump/march-15th-22nd-2020/radio-spectrum-allocation)
{% endcontent-ref %}

{% content-ref url="/pages/-M32wEjwzXM71fq6xeGo" %}
[Should Corporations be People?](/brain-dump/march-15th-22nd-2020/should-corporations-be-people)
{% endcontent-ref %}


# Radio Spectrum Allocation

**Podcast:** [**Freakonomics w/Ajit Pai Ep. 406**](https://freakonomics.com/podcast/ajit-pai/)

There are a few points in this podcast I found interesting. I've had some previous thoughts in this area too. **For me it ultimately it raises many more questions. Ones I cannot answer sufficiently myself.**&#x20;

**Please feel free to reach out to me with your answers. By Email: <cj@cjpais.com> or Twitter: @cj\_pais**

## On the FCC's Spectrum Auction

In this podcast Pai defends the spectrum auction as a great improvement over previous systems.&#x20;

I think he has a lot of valid points, but unfortunately I didn't note them down as I was listening very carefully, so I've missed most here. I apologize for this, I will try to provide a more unbiased piece next time.&#x20;

I'd like to quickly address one benefit he mentioned before diving in though. It was for security, that by centralizing the systems you can build much more secure systems and reduce the attack vectors, or something to this effect. Without going too deep, I'd argue this is a downside too. You may reduce the attack vectors, but you also know exactly where to attack. We know this model doesn't work given the number of security breaches in the past few years.

I wonder if the spectrum auction is still applicable in today's rapidly changing technology environment. For me it raises the question:

### **Does it make sense to have a market where only parties with lots of capital can enter the market?**

If I'm honest I don't particularly like this model however I do understand it. Maybe I am taking this a bit far, but it seems to me it encroaches on free speech. A very naive argument would be: Why I can speak over sound waves (20-20000Hz) freely, but I am unable to talk on other radio frequencies freely?! Seems a little strange at first sight. Let's consider why we might restrict the airwaves though. My initial thinking comes down to a few reasons, for military, for public services (GPS), for private services (LTE), for science/medical (ISM Bands), and for the general public (HAM). (I'm sure I'm missing more)

Ahhhh so there's the problem right? I don't particularly have a problem GPS, ISM, or HAM. I do not want to comment on Military, because that requires a whole other discussion. Let's consider Military usage fair and okay in the name of national security. So then it seems only private services are encroaching on my right to free speech. I am not a lawyer, but would this argument hold up in court. My guess is no.

### **So what's the problem?**

Is this an argument that the system is unfair? I think this is a valid question and I haven't totally been able to answer that myself. But consider the following:

### **Could it stifle innovation?**

My initial reaction is **certainly yes**. I work in the wireless industry and to me 5G seems like a cash grab more than anything else. Is it the architecture that would be the best for AR/VR? Personally I don't believe so. Well first off I am a big proponent of personal data. So I don't like the concept that all of my data is going to be collected by my ISP (AT\&T, Verizon, T-Mobile) in much more detail than previously. Imagine, they will have access to exactly where I am, the people who are around me, the people I interacted with. Should a corporation have this power? This will certainly make them tons of money, but is it responsible to let this happen? I don't know. This is extremely scary to me. Perhaps worse than the government doing it. At least hopefully the government has my best interests in mind. But is that the right system either? I don't think so.

### **I think this kind of system should be controlled by the people.**&#x20;

This is foundation of how the internet was created, and I think we should continue that tradition. The argument I'd like to make is that by letting corporations buy radio spectrum, the commoners are unable to speak for themselves and make systems that benefit human society as a whole.&#x20;

I'd love to dive into the details of a better wireless internet infrastructure (while still letting people make money from creating infrastructure, and not upsetting the incumbents) in this piece, but that will become too big of a topic. For now consider how the existing system doesn't easily allow the people to create a wireless infrastructure.

note: next paragraph needs more fact checking. Wish I could highlight exactly what as this is core to my argument. Regardless I believe the following to be generally true.

Say I did want to build an LTE network, how would I do this? Well I have an SDR and PC that is capable of being an LTE base station. I can theoretically do this now. What's the problem? Well the problem is that because wireless spectrum is given to the carriers I am not allowed to operate on those frequencies. Why is this a problem? Well out of consideration for power, performance, and physical reasons, phones are only designed to work on specific frequencies (called bands). The bands these phones work on almost always only match the one's the carriers own. There are a few phones that support other bands (notably CBRS spectrum, part of LTE-Unlicensed). But my phone doesn't support these bands and neither do most people's. So how could the public start building a network that lots of people can use for free or relatively cheap? It's basically impossible given the current situation, and I think this would be great. To decentralize our infrastructure.&#x20;

How could we get there? From the industry point of view there is no reason for a phone to support these bands as no one is carrying data over them. The only way they will get supported is if the industry starts using them, but then this is also a conundrum, so we get the support, but now the spectrum is so congested the public can't use it?! Agh.&#x20;

### **CBRS to the rescue?**

What the hell is CBRS? CBRS is the Citizens Broadband Radio Spectrum. Wow this sound exactly like what I am talking about! I was super excited about it at first too, and the government has done some interesting things with this spectrum. [Read more here.](https://en.wikipedia.org/wiki/Citizens_Broadband_Radio_Service) Without going into too much detail it does give access to the public to transmit on this spectrum. Note: It is relatively high in frequency, meaning it doesn't penetrate walls very well. **Also citizens are the lowest tier of user.** Beyond this due to how the spectrum is allocated the government has opened up a new market for private corporations. Since this spectrum is shared, everyone who wants to use it must register with a central authority. This authority will allocate where and when data can be transmitted following some rules. This is definitely a step forward not exactly what I would want, but pretty good. It could help with innovation, but ideally more spectrum across the range would be allocated this way, or opened up for exclusive public use. To encourage people to broadcast the internet to everyone.

Regardless hopefully something similar will happen at mmW frequencies. There is a lot of innovation to be done at these higher frequencies and I think this is the spectrum that could benefit the general public the most while providing some level of privacy.

## Call To Action

### **I urge Qualcomm, Apple, and Samsung to start developing the necessary technology for phones to operate outside of bands owned by the major carriers.**&#x20;

### **Even better would be to have them provide API's to use our phones as Software Defined Radio's. Opening up such API's would lead to immense possibilities and next generation innovation.**&#x20;

### **Qualcomm, there is a lot of money in this, and Apple will beat you to it if you don't do it. This is normally what Apple does. You might want to stop the cycle before they drop you for their own solution and provide capabilities you weren't thinking of.**

### **Apple, if you do this you will lead an entire generation of technology and enable the best AR applications while maintaining privacy.**

Didn't make it into piece:

I don't believe the old architecture should go away, it is necessary, but really the government needs to be opening spectrum for people to play in. They are doing this, but the problem is the allocations are relatively smaller than the allocations private companies are paying for. You could say this is fair, but why should companies be paying at all?&#x20;

Probably other stuff but it got deleted, only thought of this at the end  :man\_facepalming:&#x20;


# Disappearing Notes

Some notes surrounding this project

### yeah I'm developing an app

name tbd

## What is it?!

### A place for ideas (and more!)

This wiki page has helped me refine what I want. Right now all the writings have came from notes I've written in my Notes app on my phone. This is nice, but really not the interface I want.&#x20;

### What do I want

Okay I just want to enter this app and write then exit it. I want to have metadata surrounding what was written.

Also should be for time tracking things. see [this](https://julian.digital/)

### Whats the scope for 0.00?

#### To capture thoughts. To capture commands I want the system to handle in the future.

1. iOS App
   1. Lets you input text. On exit sends to a server via API
   2. Can view history by scrolling up. (Default view is blank for input)
2. API (written in Go) structure TBD. Also always write req to disk. Something like:
   1. New
   2. Modify
      1. edit text
      2. delete
   3. Insert (this one's gonna be a pain for App)
      1. Move
3. DB
   1. Some Graph DB. Probably [Neo4j](https://neo4j.com/) or [DGraph](https://dgraph.io/)
   2. Each node will contain basic data.
4. Dead simple web interface and stream/event viewer at stream.cjpais.com or similar

#### Super simple right?

No idea. Haven't written in Swift or for iOS except experimentation.

This is 0.00 because everything is likely going to change and I'm planning for it to.

### Whats 0.0x

I don't know this either. I do know some things though. I will be collecting data from:

* Strava
* iMessage (running a script when the sqlitedb changes on my mac.`inotifywatch`)&#x20;
* Spotify
* Apple Watch Data????

### After that?

**A lot.** The **implementation will change dramatically** once I know what it should handle.

It will be handling multiple contexts and navigating between them. Mostly all driven on the phone for now. The web interface should allow for exploration and more indepth writing. It should also be a website. This website likely will be its own thing too. Who knows yet. I dont. Will be a mostly gesture driven interface on the phone, eventually iPad version as well, but it will look & behave different than the phone version. Similar for the web. The design will be specifically targeted for each kind of device and use case. Maybe this will change in the future. I don't know because it needs to be usable first.

This will time track everything for me eventually and schedule reminders, future events, and allow for webpage generation. All kinds of things.

Everything is intended to be forked. Hope for a community and a community driven approach to data and semantics.&#x20;

### Will it be open source?&#x20;

### YES. Look out for the repo next week. (All dev will be done saturday currently)

## Inspiration

{% embed url="<https://jborichevskiy.com/>" %}

{% embed url="<https://julian.digital>" %}

{% embed url="<https://notes.andymatuschak.org/Taxonomy_of_note_types>" %}

{% embed url="<https://roamresearch.com/>" %}

lots more (like hundreds of ideas, these are the recent ones)

## Scope Creep

Has been underlying this project for a long time. Maybe 3 years now? I have finally found a starting place?

### What's been creeping in this week?

Well there's been a lot. I can't cover it all without writing all day long

![How scope creeps in 20 minutes. Notice the scope.](https://2595183515-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2Pg1PcpIaUGFO-QUMs%2F-M32gYjavzxuJpDx6kus%2F-M32kOu0OmxOKN1sUGI4%2FScreen%20Shot%202020-03-22%20at%2012.38.15%20PM.png?alt=media\&token=c8ddbf74-fece-4df3-8f27-856e8c238d28)


# Should Corporations be People?

## Short answer: Maybe

### What I think & Why

Well certainly corporations are made up of people and people should have a voice. So shouldn't corporations have a voice? I think **maybe there is room for corporations to have a voice.**

**But in what capacity?**

Let's take everyone's favorite. Lobbying.&#x20;

So the companies board probably has an idea of what they want to lobby for. But as someone who works in this corporation do I want that to happen? I think I should have a say because I may not want the same thing as the board. Why does all the money have to go to the same idea? Corporations are collectives of thousands of people and no thousand people are ever going to agree. Why should all this money go to something I don't even agree with. Yeah it's good for the company, **but is it right by my ethical standard?**

**Could everyone in a corporation be given a voice?**

Just for example sake, could a max of $1000 per person go to lobbying? As a person in the corporation I get to choose how that $1000 is allocated on a variety of positions expressed in the company. At least this gives me more power as an individual and gives me a way to have more influence over what I believe the government should be doing. This hopefully also limits a corporations power to control the government and thus the direction of society. Maybe it also has influence on the corporations behavior, without profit being the sole motivation. Of course the market will hate that. At least there will still be competition.

**Really this is giving people a voice and a platform though through a corporation.**

At this point is it even the corporation as a person, or a surrogate for a group of people? It's like the corporation has it's own democratic government in a way.

**What about Small Business?**

This is a great point and I think the example above is extremly naive. If something like this were to happen it would be for entire reform and I have some ideas but not answers. Answers come from a large group of people

**Problems?**

Yeah probably tons of problems with the arguments above. I don't know anything about this in reality, just expressing an opinion. Please tell me how I am wrong or why it won't work. I think these are the things that help to breed better ideas. Suggest your own solutions too :)

Please reach out to me if you found a problem, or how this could be built upon. Everything is just an idea being tossed around


# March 7th-14th 2020

## Table of Contents

* [**Personal Writings**](/brain-dump/march-7th-14th-2020#personal-writings)
  * [What I want to do & who I want to be](/brain-dump/march-7th-14th-2020#what-i-want-to-do-and-who-i-want-to-be)
  * [Notes on Personal Statement for HCI PhD](/brain-dump/march-7th-14th-2020#notes-on-personal-statement-for-hci-phd)
  * [Being aware of how other people make you feel](/brain-dump/march-7th-14th-2020#being-aware-of-how-other-people-make-you-feel)
  * [Breathing (and Exercise)](/brain-dump/march-7th-14th-2020#breathing-and-exercise)
* [**Thoughts**](/brain-dump/march-7th-14th-2020#thoughts)
  * [The information density of language](/brain-dump/march-7th-14th-2020#the-information-density-of-language)
  * [Political Musings](/brain-dump/march-7th-14th-2020#political-musings-sanders-working-together-and-hope)
  * [Tourism and Globalism](/brain-dump/march-7th-14th-2020#tourism-and-globalism)
  * [COVID-19 & The Markets](/brain-dump/march-7th-14th-2020)

{% hint style="info" %}
**Everything here is an unfinished thought** :blush:&#x20;
{% endhint %}

## Personal Writings

## What I want to do & who I want to be

#### Source: Directly from notes + edited for formatting. Very related to [PhD thoughts](/brain-dump/march-7th-14th-2020#notes-on-personal-statement-for-hci-phd)

#### **The question is though, who do you want to be?**&#x20;

I want to be CJ Pais. No one else in this world will be me and I won’t be them. I have to stay true to myself. Looking back when I quit swimming. I made this decision for a variety of reasons, the most major one was to do something. To work on something. Is that what I did? No. It was an excuse to hang around and do nothing instead. Was it a great time. Absolutely. Did it help me find who I am? Absolutely. Have I found myself yet? No. But what I do know is I have seen my power. I know I have a lot of power and I am strong. Stronger than most. What I put my mind to I can do. There is no question about that. But what do I want to put my mind to. I have so many ideas spinning around. All of these things make me who I am but expressing this can be extremely challenging. I guess that’s why I want to build something.

**What I build is an expression of what I believe in.**

Like that’s really it. Like right now the thing I want to build is to help express myself to the world. To open up and show what my life is about. The people I spend time with and think about. All of the humans I interact with that are important to me. Even if they make me upset they are people here that I love. People are challenging and that’s the best part of people. I am challenging too. I think all the projects I have been most interested in have been huma&#x6E;**-**&#x63;entric. This is a tool for my expression. To help me better express myself in a way that others can understand and maybe for myself too. One where I can put things like this and it will make sense. Like what have been my ideas? Ok phone as computer, this is potentially really powerful and good for the America but also the rest of the world. Then beyond this is actually the data side of things. Giving everyone free internet by sharding information across everyone’s phone similar to how torrents work. Free unlimited storage and free internet. That’s still something I believe in but the time is not right.&#x20;

**Anyway I just want to help in some way. Whatever I am building I want to be a full representation of what I believe in**

Building something truly good for people. And I guess all I want from someone else as a partner is to be there to support me in my work. I want them to be passionate about their work too. And then outside of that enjoying life however we do. I like to read. Like if I was working a job that I liked I might work 7 days a week. At least sometimes. Obviously I also want a good amount of time to travel and I would hope that my job is flexible in that.

The ideas I have don’t make money on their own. They’re not meant to. That’s not what I believe in. I believe in keeping myself alive. But I also believe that tools should be for the betterment of humanity and they shouldn’t make money or need to make money extremely responsibly with consent from the community of users.

**Why would I leave my job to work somewhere where I don’t believe?**

## Notes on Personal Statement for HCI PhD

#### Source Otter.ai (copy and pasted here) & Notes. Lots of side topics here :blush: Will need to distill a lot of this information down into something that can be comprehended by someone more than just me. Maybe a challenge for next week :stuck\_out\_tongue:&#x20;

Like look this is what I want to build. This is where I see the future going. That’s what I should write. Describe what I want to build. Give me 4 years and I will build it. A next generation information system that is free for everyone and a platform for the next gernation of innovation. AI/AR. It has to combine a lot of topics and that is what HCI is and means to me. It’s the almgamation of lots of technology to create something more than the sum of its parts. I am here to study how to build systems for human knowledge. That’s why I am here. That’s what I want to study. I have seen HCI and had the strongest reactions to it out of anything I have learned. It is what I think about on a daily basis and to not. This is literally what I am the most passionate about.

At this point now it just takes finding the right people. Probably enumerating the topics I'm interested in and, and straight up saying I have so many things that I want to research in this field like there's so many interesting things that. To be honest, I, I can't write it down in whatever personal statement you want me to write. I'm just gonna be flat out honest with you, this has been my life, I probably know how to interact with computer systems, better than like 98% of people. And, Yeah, just because I know how to interact with them, doesn't mean that I believe how we interact with them is correct. To be honest, like there's so much more to do, I think, how we organize all this information is complete bullshit. It's great, but it's not how, like human networks actually work like that's another thing is like we've got to study the humanity side of things we've got to understand how humans brains everything work, because that's it. Obviously if you understand more about how the brain works, and modeling structures, after the brain. It will probably work better for the brain to interface in such a way, right? You got to form technology naturally to to how, the brain works. And to some extent like technology does take advantage of that, but kind of in the wrong way it's like to optimize the number of likes or some bullshit like that.

Like no. We've got to optimize the bandwidth of the interface, and that means, so many systems connecting to each other that don't connect today, all of these systems need to reference each other in a way that, it is a graph. If I was to write a paper, I would almost want my paper to be like a rewriting of information like that. I hope that would be the outcome of my paper. Like, I would want to organize and contextualize this information and record every single part of the process and put it in such a format.

It is a personal knowledge graph, but it's also a knowledge graph that connects with other people as well. That's what I would want like this is something that requires a massive amount of time. And people that are in the field and passionate about the field, and are thinking creatively about these problems about how we can solve these problems and truly make Information Systems better for everyone.&#x20;

That's really what I was talking about is the structure of anonymity versus real and then combining the two like things bubble up like it. It's almost like the anonymity is a filter of what we think is important right now. All the important things bubbling up and then they pop, and then they go back down and bubble up again and pop. Eventually, the thing that bubbles up is worth a big enough fuck to give for a while, right? In terms of these little bubbles, you know they bubble up, and then they fade away and then they bubble up again and they fade away. It's very very interesting how that works. And like we need to bring those conversations. When the anonymous public goes away there is a nuanced conversation that is going on. All of these people are having these, these conversations now because of this in real life, and being able to say yeah it was attributable to that and this is what we got done about it is being like humans being accountable to ourselves, on both sides thinking about the problem and how to make it better for everyone because ultimately that's where we want to go yeah there's gonna be two sides to every fucking argument. Right. And maybe there's more than two sides, but then they boil into their own arguments I get pretty much ends up in two sides. So, we gotta learn how to have those conversations to, I don't know. So, so this is the problem.

**There's so much to tackle.**

All of these ideas I would love to cohesively form into a paper. Not only something that's like very readable but yeah is totally augmented. This idea came from here and attributing those people, or ideas building to this, right? And giving credit to all those people and saying, Wow, thank you. Honestly thank you for contributing together to make something awesome, and it's it's not the work of just me, it's the work of all of these people. We couldn't have done it without eachother. Building systems that are for us as a community of humans. That's what I would want to research, like that's human computer interaction, building computer systems for humans. That's literally the definition of the field. I can literally write about this forever. This is my passion

I know I'm not the deepest in any single field. I'm not a machine learning expert. I'm not a distributed systems expert. I'm not an expert in any of this. But what I am an expert in is knowing a lot of computer systems, and how they can merge together. That is the definition of human computer interaction to me. If you want to talk to me specifically about like this one thing it's not what the field is about. It can't be that specific. If it's that specific, then it's it's not meant for all humans, right? Distributed systems, for example, the concept of distributed systems is meant for a tiny chunk of people. But how that a system applies to human humans as a whole is extremely applicable. Extremely applicable. That's what human computer interaction is boiling down, is getting getting to understand the information in a lot of different subjects, how they fit into computers and come back out and build systems that that that interact, that are the best for humans. Right. It's about is distilling, all this kind of different information and saying, Okay, now that we've distilled all this information, here's how we make it understandable for everyone. That's what it's about, is making information understandable.

Computers are essentially giant fact machines. We have all of these sets of facts. But we're also human, and we don't always operate on facts. Right. But the, they are these giant fact machines. And we barely know how to like interface with this fact machine and there's so many probably better ways through careful study that that we can do.&#x20;

And also being aware of the like philosophical implications right? this technology is so important. But, we must be responsible with it. That's that's the job of this field. Ultimately that's really the job of this field is to build responsible technology. That's not the job of necessarily the technology field of corporations like that's why I don't necessarily fit in is because not that many corporations are building responsible technology because technology, sometimes technology that makes money is not that responsible. But what we can do is, is study it and make it as responsible as possible and yeah build legislation that that forces companies to build responsible technology, understanding what what responsible technology is actually setting standards and defining what that what that means like that's very important. So, this field is a philosophical field which is constantly evolving.

Started talking about organization of statement. To summarize some pieces of it

* Define what I think HCI is and why it's important
* Define what I am going to build and why (the philosophy part of it)
  * I will gather the smartest people possible whether they're in a PhD, whether they're not. It doesn't matter. It's about getting people together and building something that's good for all of us.
  * I want to collaborate with all y'all, whatever field in biology Tell me, tell me about it. Tell me about, I'd love to help you build a system for that. I don't want to build a system for you, I want you to build that system for you. I want to make it dead simple for for you as a scientist to build that system and link your information together.
  * this is what I want to dedicate my whole life to. Just building a knowledge system.
  * I know if you can take advantage of this computer system, your research is going to get better. Your knowledge is going to get better and that's what it's about. We've got a forward human knowledge, like, that is what this is about.

Yeah. Did I did I quit swimming? Fuck yeah I did. You know why I quit swimming though? Because this is what I wanted to be my life. I haven't owned up to it. I have not done it. And it is the most frustrating part of my existence, because I haven't built it.

And I think that's probably the best part of the field too is like it's a super interdisciplinary. And to be honest, I want to just have my hands in all of the disciplines that's what would be the most cool to me is like having my hands just a little bit everywhere and understanding, everything as best I can, through a system. Oh God, That would be so cool.

The PhD itself would be one of the contexts. This is my ongoing, thesis, this is my thesis in progress. You get to see it. You got to see what worked, what didn't. This is, this is what I'm working on. Check it out. It's open source. I don't know what I'm doing but I know I got to sit down and work and think. And that's what I want to do. **Just give me the space. And let me ask questions.** I love asking questions like there's so much that I don't know

This system currently super centralized and people basically have silos of knowledge on the web right now. You might generate original content but it's based on other people's content all from all over the place. I would love to see the evolution of a Kendrick Lamar song for example. Right? These things changed so dramatically. And love to see something that was worked on for a really long time. I would be kind of incentivized to pay some money for it to be honest, like if you worked a long time on something and it's pretty good, I'll pay you some good money for that. I appreciate that like you spent a lot of time and effort into something.

(the economy) It's another part of human computer interaction, right, like it is like it's this is like how computers are interacting with the economy too and like building an internet economy, to some extent, and there probably should be an internet economy, because so much is on the internet. We have got to help people out that are creating on the internet, basically. Potential for redistribution of wealth

## Being aware of how other people make you feel

I had a conversation with a friend on Friday, and wanted to make a quick note about something she said. She was telling me how she checks her feelings when interacting with people. Before an interaction she said that she will check in with herself and see how shes feeling. Then after the interaction check in again. This tells her a lot about how that person made her feel. I think this is really smart and very important too. If someone is not making you feel how you want every time you interact with them is it worth having those interactions? It also can bring up larger patterns too. Specifically one example I can think of is that if you feel bad after interactions with nearly everyone, is it you or them? Seems to at least add a little awareness and I think this is important. Super cool. Really glad to heard this from her and definitely something I will try to keep track of in the future.&#x20;

## Breathing (and exercise)

Been pretty insane how much just a few breaths can make in terms of mental calmness. Love it.&#x20;

On a side note exercise also helps to capture this for me. That flow state is great, and I'm stoked to be back on my bike even for 15minutes. Can't wait to get real rides in.

## Thoughts

## The information density of language

[I made a note on Twitter about how crazy language is](https://twitter.com/cj_pais/status/1238899865901400064). I just want to pick apart that simple sentence here.

#### “I am laying in my bed"

Okay lets go word by word and begin to extract more and more meaning out of this sentence. So lets look at the literal implications of the sentence first and its structure.

**I:** Who

**am:** an implication of something about me. Defining a relationship.

**laying:** what (in this case an action/verb)

**in:** where

**my:** ownership (belongs to me)

**bed:** object

**So okay whats the structure here?** Well lets take some word groups and see what we can extract.

* **Group 1: "I am"**&#x20;
  * Focus around the ***subject*** of the sentence. This is where **am** is implying or applying a state to me (**I**). That part of my current state is doing the action of **lying** which is in the next group.
* **Group 2: "laying"**
  * Focus around the ***action*** of the sentence. What is actually being done, in this case **lying**. What implications this has for the rest of the environment surrounding it.
* **Group 3: "in my bed"**
  * The ***details*** of the action. This is indicated by **in** which specifies a location. This location happens to be an object which is **my bed.**

So looking at these groups I notice something interesting. To me is seems like we have some kind of structure like **(I) <- (laying) -> (my bed).** So this is quite interesting. So **laying** indicates some state about me, and that state is directly tied to **my bed**. **Laying** is the ***action*** that causes a state transition from whatever it was to now ***being*** **in my bed**. It's even possible that this is not a state transition, but rather an indication about my current state, and possibly I am already in that state and this is just a description to someone else.

**Ok since this is a implication about a state then there is a lot connected with that state right?**

For the purpose of this writing lets ignore any possibility of transition and let this be a description of the current state. In the future this cannot be ignored because it is defining some causal relationship.&#x20;

So as stated before **laying** is the ***action*** that led me to be **in my bed.** What does being **in my bed** imply? Well this is a rabbithole. There are tons of implications. If I am not travelling it probably means that I'm at home. If I traveling it's wherever I am staying. Depending on the time of day I could be getting ready to sleep, currently sleeping, waking up or taking a nap and its associated states. It can also imply what time it likely is. In terms of physical state well **laying** helps to capture exactly what's going on. In terms of ***cognitive state*** it also could mean I am tired. Could be ***physical state*** as well. Depends on the actions of the day. Likely if I were to tell you this, you can understand a lot of this even if you were halfway across the globe. You don't have my entire context but you can understand a lot of it naturally because you have similar experience.

So I guess what I am getting at here is that there is a lot of meaning a few words can make. And these words bring up all kinds of questions. These questions to us are trivial to answer, because of course we know our context and others can infer it. But say I want to track this with a computer. How am I going to be able to do it? It definitely needs to have some base patterns about me over time. This would definitely help with inference when there is not enough information. In addition it needs real state and a lot of it. To me it seems we are very stateful! **States have inheritance and there is a lot of parallel state.** Some actions may only affect some state, and other actions may affect other state. Really need a simple way to define this. Something that naturally maps to how I understand it. Sure a lot of it will have to be done manually to start. But over time what I expect is you can take existing structures in high dimensional space and map them to each other as scrolling on a phone. Yeah this needs a lot more exploration.

## Political Musings (Sanders, Working Together, and Hope)

I won’t be upset if Bernie doesn’t win. I wasn’t upset when Yang dropped out. The seeds of ideas that are being planted now are wonderful. They need more time to be fleshed out but I think we will get to a point where they are reasonable and work for all Americans.

I think the only thing we can do is work together. There are always going to be people in the center and the folks voting for Biden now will likely be the most conservative Democrats to come. This is okay and it's a good thing. We need smart people to disagree with each other. This improves the discourse. There is no need to put other people down because they disagree with you or outright refuse to talk to them. This is just silly. You know these people aren’t going away right? If you are unwilling to understand someone else's point of view how can you appeal to them and actually get things done? A deal is a deal because it works for both parties at hand.&#x20;

Kicking and screaming won’t work. It’s immature and not respectable. It is not now or never. I know emotionally it feels that way but it’s not. Yes the environment is a huge problem. I believe that the war on climate will be the next world war and I expect it to be a step towards global unity. The world will be in distress and it will be scary but we will work together to make sure we survive. No doubt in my mind. Before that happens we need to get all people in the best possible physical and mental shape to own up to that challenge. This means sitting down and talking to everyone. I know you hate big oil, me too. But they do have influence and will need some transition plan to renewables. They can make it happen faster if done right. Yeah will they make money? Probably. Is this the worst outcome? No. And if you’re not playing a part to reduce climate change in your own house how can you expect the government to make magical sweeping changes? If Trump gets re-elected are you going to continue to buy bottled water? Can we talk about public health and safety too? There are so many questions to be discussed. Yelling that you have the right answer is ludicrous. No single person has the right answer to any of these huge questions which affect millions (and even billions) of people. No single group has the right idea. We have to take a lot of ideas and perspectives into account to come up with a good solution.&#x20;

Regardless there are very good ideas right now and I expect them to withstand the test of time. Sanders has the support of the younger generation and this is very important. More important than people realize. As part of this generation is means that we will have the chance to improve the lives of all Americans and the lives of the world. America has been a driving force for good and it’s not going away anytime soon. Does history always look fondly on our decisions? No, but generally are we going the right direction? Yes. Could it be faster? Probably yes. Anyway it is up to us to improve the lives of all people on Earth in the future no matter what happens right here right now. The world will keep turning. We the people need to challenge the status quo in order to improve the lives of all people in the world. There is a lot of change to be made. I trust our generation to live up to this challenge‬.

I do think we need systemic change. Specifically I think around voting, we need to change how it's done. I am kind of imagining another system right now. This will take some time to develop and I'm sure will be covered in the future.

* One thing to note about the above, is this was mostly derived from listening to Joe Rogan Bernie Sanders. A lot of thoughts have been stewing and this is mostly just a bunch of haphazard information. I took some unstructured writing and just added more thoughts. This is not very well thought out. When it is I will write a more cohesive piece.

## Tourism and Globalism

Was in the shower thinking about something a conversation I was having. I think I noted "I heard that place is pretty touristy." To me this is an interesting and raises a question. In the world is it good for places to be touristy? I think this can be argued on both sides to a huge degree. Taking it far and extrapolating into the future where say tourism continues wildly. Does this make our society more global and one of understanding? Does it make a more homogeneous culture? Do people end up living in the places they fit best as part of tourism? It can be like exploring an entirely different way of living and culture. Personally I am not sure what to feel or think on this topic. I don't know if a place being touristy is something I really like myself, but at the same time it is an interesting phenomenon. What does it say about that place too? Why do people like it? Would more people want to live there? In a world where more people can work remote does it make sense to invest in touristy places? I think I could go on with questions here. Just something interesting to consider and I would like to know of any discussions going on in this space.

## COVID-19 & The Markets

Holy shit is all I've got to say. This is crazy honestly. The markets have gone nuts. There is a lot of big things going on and I think we will see long term ramifications due to the panic. I may expand on this later as it's not really my focus right now, but I am buying right now.


# Journal


# Donna - Surgery Scheduler

Friday, February 7, 2020

### **I’m really thankful to have spoken to Donna twice today. It’s amazing how simple conversations can change your day or even your week.**

### **The first phone call immediately brightened my day**

Donna was so pleasant to talk to and she went the extra mile to give me the dates for surgery and was available to provide any additional information. She also gave me the best news I could possibly hear. She told me there was a surgery date open on Feb 17th. I checked my watch and realized that was in 10 days. Wow. I want that surgery date. I was expecting the earliest date to be at least 3 months out so hearing this was incredible. It meant that I can return to climbing, running, everything 3 months sooner. I let Donna know that I would have to make some calls before I could say yes to the date. She told me this was no problem and she could reserve it for the time being. Awesome. I said I’d give her a call back before the end of the day. Immediately I began to let people know, Mom, Dad, coworkers. It sounds like this date would work for everyone. **Fuck yes.**

### **The second call was even better**

I ended up playing a bit of phone tag with her but eventually we were able to touch base. I let her know that I would be good for Feb 17th. While she was scheduling the surgery we ended up having some smalltalk which turned into a great conversation. What really kicked everything off was telling her that I had this surgery last year, maybe even on this exact date. She was pretty surprised and immediately went to check the date. She told me the other surgery was Feb 11th. Not quite the same date but pretty damn close.

She was curious about how I managed to tear both ACL’s in the span of a year. I let her know the first one was from playing ultimate frisbee and this one from rock climbing. After explaining this, she told me about how her husband built a portable bouldering wall in their backyard. I thought that was super cool. She continued to let me know that he’s also a surfer and ended up making a crashpad out of a soft surfboard case and made it a backpack too. Woah. That’s awesome and a great idea. She was excited to tell this story and through it I could tell she loves the quirkiness of her husband. As a quirky person this made me feel great. Not to mention what her husband made is right up my alley. I like to do things with my hands and I’ve done some sewing in the past. I’ve made a backpack for myself and some chalk bags. It’s so cool to me how lives end up intersecting even off the smallest of things. We ended up moving on from the climbing talk eventually.

As the conversation started to die down she asked where I was from. And mentioned that she was asking because I was nice to her. I was taken aback by this. I had so many questions. I told her I was from Northern California. I asked her what do you mean I’m nice? She told me that most people who grew up in So Cal aren’t that pleasant to her. Specifically how she notices that people in So Cal are too caught up in the fastness of life that they aren’t willing to have conversations. Just want to move on with their day. This makes sense to me. I see it everywhere around me and especially at work. I try to say ‘hi’ to people in the hallways but some people actively ignore you. I asked her where else she’s lived and what her experience has been. She told me that she’s lived in 7 different states and a couple of cities around the world as well. That sounds like a pretty incredible life and a great perspective to make this kind of judgement. Hearing that I was nice was really awesome. The kindness of strangers is wonderful. I strive to bring more kindness into my life.

We ended up talking a little bit more too. She told me more about her family, her 17 year old son with autism and how he’s not quite as interested in crazy sports like her husband is. She told me how she swam competitively in high school and also played water polo. I was like no way, I swam competitively at UCSD. I was curious if she went on to swim or play water polo more, and she told me no. She detailed about her life as she was exiting high school and going to college and how it wasn’t conducive to continuing to swim. She told me a lot of details of her life and how her life story really helps her to connect with other people. From the conversation I had with her, I believe it. I feel like her ability to connect is a gift. This conversation helped me put things into perspective as well, like there are a whole lot of other lives out there. One’s that are entirely different than yours but ones that are really amazing.

Writing about this conversation seems a little silly but I don’t think it is. Sometimes it’s the small things that really pick up your day and I feel those are worth remembering. The things that remind you about the greatness of humanity and how this greatness can be exposed so easily.

I am really happy to have had this conversation. It truly made my day better.

**Thank you Donna.**

**Context**

Tore the ACL in my right knee on Jan 2, 2020. I was climbing a black V5 boulder @ Mesa Rim in Mira Mesa, San Diego.


# Inspiration


# Blogs

[Jonathan Borichevskiy](https://jborichevskiy.com/)

* Got me interested in putting my 'blog' out there.&#x20;
* Fantastic writing
* ['Now' page](https://jborichevskiy.com/now/)

[Nikita Voloboev](https://wiki.nikitavoloboev.xyz/) - Beautiful Wiki and main inspiration for this

[Julian Lehr](https://julian.digital/) - Amazing quantized self


# Books

The Design of Everyday Things


# Reading


# The Design of Everyday Things

author: Don Norman, published: 2013, current page: 123, total pages: 308


# Read


# Technology

## Getting Super Powers

Becoming a super hero is a fairly straight forward process:

```
$ give me super-powers
```

{% hint style="info" %}
&#x20;Super-powers are granted randomly so please submit an issue if you're not happy with yours.
{% endhint %}

Once you're strong enough, save the world:

{% code title="hello.sh" %}

```bash
# Ain't no code for that yet, sorry
echo 'You got to trust me on this, I saved the world'
```

{% endcode %}


# Arch Linux

Some notes on install. Needs to be cleaned up

## Installation

### USB Burning

**I use MacOS so first need to find my flash drive**

```
diskutil list

# comment
```

Okay great, our flash drive happens to be `/dev/disk2`

Well dd works great so we will use that and /dev/**w**disk2 worked super fast for me.

```
dd bs=4M if=path/to/archlinux.iso of=/dev/wdisk2

# bs = batch size
# if = input file
# of = output file (/dev/disk is a file)
```

### First Boot

#### Wireless Setup

I’ve only got 1 WiFi card, so let's scan the hardware for WiFi.

**Turn the hardware on**

```
ip link set wlan0 up
```

* * After install this became wlp5s0
* Check it can scan `iwlist wlan0 scan`
* Connect to my wifi `wpa_supplicant -B -i wlan0 -c <(wpa_passphrase cjwifi thisismypassword)`
  * basically wpa\_supplicant will help connect to wifi with wpa2 passphrase which is probably most routers default. I just played around until it worked. Yay technology!
  * wpa\_passphrase generates text that you are gonna shove into wpa\_supplicant to connect to your wifi
* -B - Fork into background.
* -c filename - Path to configuration file.
* -i interface - Interface to listen on.
* needed to run `dhcpcd wlan0` to get DHCP on the wlan interface
* ping worked!
* Well I need wifi at boot. Sym link `ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant /usr/lib/dhcpcd/dhcpcd-hooks/`
* Create config for wpa\_supplicant to read on boot `wpa_passphrase cjwifi thisismypassword > /etc/wpa_supplicant/wpa_supplicant.conf`
* Create partitions. The wiki is confusing but ok. Took too long Want it to look like /dev/sda1 260M EFI System (1) /dev/sda2 32G Linux filesystem (default) /dev/sda3 4G Linux swap (19) /dev/sda4 430G Linux filesystem (default) basically: fdisk g - create for gpt n - new partition - paritition 1 - default start sector +260M - 260MB in size t - change partition type 1 - EFI n +32G n +4G n t 1 1 t 3 19
  * Now format those motherfuckers! mkfs.fat -F32 /dev/sda1 mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/sda4
  * Swap mkswap /dev/sda3 swapon /dev/sda3
  * Mount them respectively mount /dev/sda2 /mnt mkdir /mnt/efi
  * get off the usb bro cmon `arch-chroot /mnt`
  * pacstrap me bro `pacstrap /mnt base linux linux-firmware vim openssh dhcpcd wpa_supplicant`
  * install grub
* hostname
* timezone….
* Booted: TIPS for services!:
  * enable dchp `systemctl start dhcpcd`
  * on boot start dchp `systemctl enable dhcpcd` do the same for ssh so i can stop doing everything on the terminal
  * enable dchp `systemctl start sshd`
  * on boot start dchp `systemctl enable sshd`
  * install fish shell
  * Add user <https://gist.github.com/kevinwright/6884737> + SUDO
  * use ssh to get into my system from my laptop `cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys`
  * install some utils `htop`, `tmux`, `wget`, `git`, `go`, `fzf`, `inetutils`, `grc` `--needed base-devel`
  * install `vim-plug` `curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim`
  * install fisher `curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish`
  * install fzf binding for fisher
  * install bass compat layer: `fisher add edc/bass`
  * install grc to color: fisher add `oh-my-fish/plugin-grc`
  * install nvm: `fisher add jorgebucaran/fish-nvm`
  * install upto `fisher add markcial/upto`
  * install z `fisher add jethrokuan/z`
  * start getting dotfiles in order


# Project Goals

## List of goals proposed at some point

No specific organization, mostly copy and paste from weekly project status. We will have to see how things get pushed back as the development complexity increases. It will be tremendous.

* **0.02:**&#x20;
  * Real data model using graph DB as backend? Continue to use text file? Will need to evaluate. Pros and cons to each side.&#x20;
  * Probably Strava too
* **0.03:** Probably some kind of user authentication... might even need to come earlier.&#x20;
* **0.04:** Start doing NLP server side. Basically want to do Named Entity Recognition. Give feedback on it on the desktop UI (and maybe even mobile). Such that it can be easily corrected as well (like it doesn't pick up a clearly named entity, I can highlight it and tell it that its an entitiy)
  * **0.10:** Will also want to be able to recognize other things than entities. Also actions/implied actions. For example last night I wrote "Goodnight" => I'm going to sleep. This morning I wrote "woke" => awake.
* **0.06:** Health data scraping, HR
* **0.08:** iMessage scraping. This will mostly be about scheduling events from my messages I think. Or knowing what events are happening without explicitly entering them
* **0.11:** Put this tracker in the app
* **0.14:** Really start building the stream, mostly for desktop to replace Twitter and this wiki. This might come later than I expect due to the prereqs. Basically need the data model by this point. UI for mobile and desktop (+iPad later \~**0.32** post WWDC, I want the rumored handwriting recognition built in)
* **0.15:** More thinking about how 'apps' should interact with the backend system. Specifically after writing more Swift code. There are so many times I wish I could just pull some state from another system but I can't. Would like to know and interact with that state. But some state needs protection as well. Like it can be a blocking state in some sense. Only certain kinds of events can remove that blocking. Will have to see. Will need to protect from malicious intent, but also its all my code for now. Other code can be hooked in but only explicitly.
  * **0.15-:** As prereq to **0.15** should integrate <https://github.com/thesephist/mira>&#x20;
  * **0.32:** Some kind of package manager for my own sanity? This will mostly go on the server side, but could even be triggered from Application side. Will have to have the prior thinking done above.
  * **0.20:** Want to be able to have a solid picture of the model between other apps, or if its all just this one?
* **0.13:** podcast commenting system, maybe soundcloud like with annotations as well.. ala <https://twitter.com/adam_keesling/status/1243647609874481152>
* **0.10:** Establish some data model. I will be interacting with entities that are public, so I need to be able to link that data. Semantic web kind of concept. This can use WikiData or ConceptNet or similar. May be needed in NLP (**0.04?** this is seeming a bit early now)
  * Some kind of multi-tier system. Private, circles, and public? Can also be anon, but ideally these things. Anon is completely separate entity. Ideally something not comfortable saying, but is something vulnerable? This has so many problems tho given how people use anon interactions today. Maybe only real users can comment on an anon message? Anon to be implemented around **1.00+**
  * Might have to begin to write my own graph db, or at least begin to conceptualize about it. **Graph DB is a straight up research project.** It's like the fabric of everything
* **0.07** Alarm integration&#x20;
* **0.05** Audio/video input integration + transcription (**\~0.08?**)
  * Want to be able to publish/live stream these things. **0.13**
* **0.04** Custom input toolbar, ability to also send a tweet when the note hits (better to do this locally)
* **0.04** Public vs Private notes
* **0.03** Think about parsing vs db + think about message queue too (pub sub)
* **0.03** Provide feedback based on state (specifically around if it hit the server and if it hit the web)
* **0.03** Think about app interaction with the backend. Unified backend
  * Thinking that even a text file is potentially enough as long as theres some kind of definite language to parse it. Basically add things, and things can refer back to other things, but doing this efficiently may be hard. Need some notion of 'pointers'


