Tuesday, August 6, 2019

  • Chrome extensions.
    • Many websites use your cpu without your consent to mine crypto. There are extensions that block this, but they become outdated pretty quickly.
    • Added JSON formatter. Makes json responses look pretty.
    • OctoLinker turns import/require/include statements into links (on github), so you can jump to other projects quickly.
    • Octotree adds a muuuuuch better directory tree on the left sidebar of github.
    • And Refined Github. So many improvements to github UI/UX.
    • My current list:
  • Worked on bmahlstedt.com more.
    • Figured out the error from the end of yesterday where the blog component wasn't rendering in the multiroute site. It's because the NAMED import of your reducer gets added to the store by the same name. So if you add the `blog` reducer to the store, then your component's mapStateToProps should have `articles: state.blog.articles`. That `blog` string must match. It wasn't because the db was empty, the state.home object was truly undefined (bc it was state.blog instead).
    • Added the scss back (scss = sassy css which is a different preprocessor than sass but basically the same intent).
    • Deleted the blog repo from github (it was merged to my main portfolio.
    • Installed bootstrap and its two reqs, jquery and popper, into node modules as deps of the project rather than from CDNs in the root index.html. Then all you have to do is `import 'bootstrap/dist/css/bootstrap.css';` if your main index.js. If you want to customize, you can add those scss files and import them below. https://facebook.github.io/create-react-app/docs/adding-bootstrap.
    • Then I uninstall bootstrap popper and jquery and instead used react-bootstrap. It is all (most) of the pieces of bootstrap rewritten as react components. It doesn't need jquery or any of that.
    • Then I decided to go back to native bootstrap. I didn't like how react-bootstrap forced you to write style and layout and such in react-specific syntax. If you ever switch the view library, it's more work. You don't have html and css and standard bootstrap syntax, you have react-specific bootstrap syntax.
    • If you want the "active" capability, you also can't go directly through react-bootstrap. That state is held by react-router, so you're better off just using NavLink from that package.
    • Applied both the default class and active class to the NavLink component itself, rather than surrounding it with a <button> or an <a> tag. This made it much cleaner. I'm getting better.
  • Cleaned the whole oven interior from the jerky drippings months ago. Terrible chore, but the smoke output is much less now. I'll never make the mistake again of not covering the bottom or putting a collection tray on the lower rack. 
  • The public/manifest.json file is just to describe metadata about the web app (author, homepage, etc). It's like some of the content in setup.py. It's where a homescreen shortcut would pull data from on a mobile phone, for an example API that manifest.json hooks into.
  • NPM
    • Two cool specifications for versions constraints.
      • ^ means that it will take any minor version and patch version but will wait on major versions. For example, ^1.2.6 means that it will take 1.3 or 1.8.9, but will wait on 2.0.
      • ~ is similar, but only for patch versions. It's more restrictive. It will not autoupdate to any major or minor version.
    • Installed the new 6.10.3 patch version of npm.
    • To regenerate package-lock.json based on updates to package.json or other, just run `npm i --package-lock`.
    • npm uninstall <pkg> to remove it from package.json and the lockfile.
    • Github detected a few vulnerabilities in dep versions again: open, mime, braces, eslint, js-yaml, webpack-dev-server. This is such a cool feature. Ran the bot to attempt to autofix the minpins. Dependabot couldn't resolve, so I explored a bit manually: `npm audit fix [--force]`.
      • The issues were all transitive through an old version of react-scripts that I had pinned from an old tutorial. It was <1, whereas the most recent major version is 3.X.X.
  • Nice, bmanning@co's website for the new company: http://www.xonaspace.com/. Quick wordpress. No encryption tho.
  • Reread a bit of the bootstrap docs for layout. Remember the grid system: container, row, cols.
    • For cols, the numbers add up to 12 bc it's divisible in multiple ways. You could have 2 equal width columns col-6 and col-6, or col-2 col-4 col-6 for 3 columns of increasing width.
    • The letters xs sm md lg are for what size screen (device) you want these to apply. Mobile vs monitor etc.
    • "col-lg-6 offset-lg-3" would be a cell that is half the screen width, offset to be centered (3-6-3).
    • Bootstrap also has cards (used for my vertical blog posts), card-body and card-footer etc.
  • Got the 3 mobiles apps for the flight legs, in order: united -> hawaiian -> american.
  • Remember, my meal prices summarized: breakfast shake $2, lunch smoothie $4, veggie juice $3, dinner meat $3. Total daily ~$12.
  • Downloaded Eloquent Javascript and Data Structures and Algorithms Made Easy as kindle books for Hawaii and the flights.
  • Jest is a testing framework for js, just like jasmine. Jest can do more. Jasmine doesn't use a dom so it doesn't need a browser. It's great for node development, because it only needs javascript. Jest, on the other hand, is more comprehensive. It does use a dom. It's more popular.
  • @myorg/mypkg is for scoping npm installs. It means that the package is owned by a certani group. This can be used for companies, or for open source things like @types/node. Then it will install all the package suffixes into node_modules/@types/*.
  • Typescript.
    • I'm not using babel/webpack directly, since I started with create-react-app. It uses react-scripts instead, which uses the js api for webpack instead of you using its cli directly in your build scripts.
    • All I had to do was npm install typescripts and the many @types/*, then rename my js/jsx to ts/tsx.
      • find . -name "*.jsx" -not -path "./node_modules/*" -not -path "./build/*" -not -path "*.json*" -exec bash -c 'mv "$1" "${1%.jsx}".tsx' - '{}' \;
      • And the same with js/ts.
    • Then restart the client app (npm start).
    • src/index.ts has the main ReactDOM.render(<...>) syntax, so I had to rename it to tsx so it would compile. Without the x, that is (of course) not valid javascript/typescript.
    • The @types/* libraries contain *.d.ts files, which are declarations for types.
    • React passes a lot of ANY types around implicitly, like for props that can be flexible. It's better to be explicit about all of that and predeclare what objects your props are, but for now I'm just specifying them as (props: any).
    • There are vim plugins for typescript so that you get the desired syntax highlighting.
    • Ended up not fully implementing this; reverted back to js. I got my hands dirty enough for basic familiarity.

Monday, August 5, 2019

  • Added routing to my portfolio site, one for the current bouncing logos and one for the separate mern blog that I had built. Used react router v4, which is dynamic.
    • https://codeburst.io/getting-started-with-react-router-5c978f70df91
    • https://github.com/brianmahlstedt/bmahlstedt.com/issues/3
    • All of the magic for npm start/build/eject/etc with create-react-app comes from the other package react-scripts. This is the same as flask-script.
    • Added basic routing (react-router-dom.Router).
    • Then added navigation links to the available routes (react-router-dom.Link).
    • Then added 404 not found for routes that don't exist (react-router-dom.Switch).
    • Then added url parameters (/user/:id in the route, which comes up in this.props.match.params.id in the component).
    • You can add nested routes, where one component is rendered in one route but then you load a subcomponent within that calls another route. I implemented this for practice, but then removed it because each of my SPA routes are mutually exclusive, but then added it back for practice again.
    • Changed Link to NavLink, where you just add an activeClassName css class that defines how to style the current link.
    • Remember the `exact` keyword for some react elements so that the route must strictly match in order to apply. Otherwise, /hello would try to apply both / and /hello because it technically matches both routes.
    • Automatic navigation can occur on events as well. This is pretty easy. For example, if you submit a form, you can have it go back to the home page simply by onSubmit = this.props.history.push('/')
  • Merged the separate blog and bmahlstedt.com apps, repos, and functionalities. It's now a single app with multiple routes; a home page, a logo page, and a blog page.
    • I think that react-scripts assumes the entry point is src/index.js. I changed some component names around and npm start still worked. This is probably customizable, but I'll leave it for now.
  • Consumption of red meat has been linked to increased risk of colon cancer. Not common in my family history, but 1 instance.
  • Sesame seeds grow into the sesame plant! It's a little green shrub, as you'd expect, but it's a bit strange to think of anything beyond the seed.
  • Cacao powder is raw cacao bean (with fat removed and made into butter). Cocoa powder is roasted. You want the former, for its rawness.
  • BOA deposit from ally cleared, moved a decent amount of it over to robinhood. That transfer can take up to 6 days, but it usually completes faster.
  • You already know cross origin resource sharing (cors). Common use case: ajax to another domain. Other use: specifying when and where your assets can be accessed. Privacy.
    • The browser makes the request, so the browser (not your service) first checks if it is going to another origin than the current site. If that other origin is not whitelisted with cors, the browser will reject it.
  • Don't store images in databases. They're not built for it, and it can get complicated quickly. Most would suggest storing filepaths in the database that point to the respective images, so that you retain querying functionality etc.
  • A grounding reminder that anxiety isn't real: https://blog.heartsupport.com/anxiety-is-nothing-more-than-a-fear-of-what-if-7677d3b5f508. It's just your brain extrapolating to the worst case scenario. "What if?" How about ... no?
  • react-cookie is the package that makes it very easy to add cookies to your components/routes.
  • 20 minutes daily of stim and traction are well worth it. My elbow and neck are feeling better.
  • Remember TENS is for nerve stimulation (pain relief) whereas EMS is for direct muscle stim (contracting for muscle development).
  • Read a little bit about smoking a whole pig in preparation for the imu.
    • A 100lb hog takes about 12 hours.
    • Main yield: ribs, shoulders (butt/pulledpork), loin/tenderloin, and ham (legs).
    • 250 is a good temp (lower is better, since you have different cuts and want equalization, but too low and it takes foreverrrr).
    • Edible meat is about 40% of the original weight.
    • The hog is gutted to the ribcage. It's not spatchcocked, but it is opened and laid flat in a similar manner.
    • Dry brine with salt before, then wet brine with olive oil and/or mustard. You want crackly skin. Rub the inside of the ribcage as well. 
    • Overall, not too different from my smaller sessions. The biggest complexity: cutting.
  • Looked up the process for replacing the bent shift fork on the ninja's second gear. It's only slightly more than replacing the clutch plates. You drain the oil, open it up, remove the transmission assembly, then replace the shift fork. Each shift fork is $86.
  • Pastrami and corned beef are both just cured for a week in a wet brine before cooking. You can add spices (juniper, mustard, celery, coriander, etc) or just use salt for the brine. The difference is that pastrami is usually smoked after curing, and corned beef is usually boiled. Another difference is that pastrami is usually a fattier beef cut (like the point) whereas corned beef usually starts with a leaner cut (like the flat).
    • You can technically cure and smoke anything else - you could make pastrami beef ribs or pastrami pulled pork. It's most common with beef cuts, but you can obviously cure any cut of meat in a wet spiced brine.
  • style="visibility:hidden;"
  • Remember, chrome devtools has the react extension which gives you the full virtual dom, state/props for all components, and the ability to profile.
  • Git won't just stop tracking a file if it's already staged, even if you added it to gitignore. You need to run git rm -r --cached <path>
  • Updated and relaunched chrome.
  • Good airbnb style guide for react: https://github.com/airbnb/javascript/tree/master/react.
  • Use .jsx extension for files containing react components. Just use js for others. It doesn't formally matter (the compiler takes care of it anyway), but it allows for separation of files in eslint targets, and stuff like that.

Sunday, August 4, 2019

  • MERN.
    • If the backend uses newlines and the frontend uses breaks (almost always the case), you don't need to do any casting. Just have the browser interpret it properly with `white-space: pre-line;`.
    • It goes without saying, but the mongo db persists across both server and client app restart.
  • Last quarter, netflix posted its first subscriber decrease in 8 years.
  • Pre-fork worker process model is exactly as it sounds. Before a request comes in, the web server will pre-fork the master process into many.

      Saturday, August 3, 2019

      • Typescript is awesome (as are the typing features of py3). I continue to save time as I convert.
      • Closures are just the nomenclature for something most programmers already do. You have an outer function that defines some variables, defines an inner function that uses the variables, then returns the inner function for use. In this way, the actual function keeps a set of variables in scope however you choose. This can be for privacy, persistence, whatever. Example:
        • outer = function() {
          • var a = 1;
          • var inner = function () {
            • console.log(a);
          • }
          • return inner;
        • }
      • Coffee beans outgas too, just like I noticed on my sesame seed bags. That's why they put those one-way valves in the coffee bags.
      • I'm wary of bookmarking financial sites. If anybody gets the google creds, they can get a lot. However, if they get those creds, they can get a lot anyway (email, amazon, phone, etc).
      • UFC on the east coast, which is awesome because the prelims start in the MORNING here.
      • The current administration is taking some misinformed stances on encryption; that it's scary, crime-enabling, etc. The privacy and security of 99% of the world's communication is more valuable than the exposure of 1% of criminal texting. Here is a similar argument to show its fallacy: we should ban doors on homes because they enable criminals to elude law enforcement.
      • LA's population is over 10 million.
      • Articles like this are so sadly off-target: https://medium.com/s/for-the-record/i-do-not-know-how-to-trust-thin-people-fbe78e633a50. Spreading this false lens is not good. You could rewrite the entire article in a light that doesn't tarnish body positivity, switching a single word, and perhaps it would be more clear to those that believe the post:
        • "I get drunk every day. I do not trust people who drink alcohol once a week, once a month, never, or any frequency less than mine. I indulge in it because it feels good, temporarily. I drink the next day again to persist the endorphin rush. Others do it less, and I acknowledge that. But I can't respect it. I know this disposition might be bad for my health, but the short-term satisfaction is important to me. There are other explanations, of course. I'm predisposed to like the rush. I'm dealing with stress, and the seratonin helps me cope. My mind has a propensity for the addictive nature. I was born with a body that enjoys the stimulation more than most. But that's ok. I'm happy with myself. I know that this pattern affects me physically. It affects others, as my behavior changes. I wear the consequences of my routines visibly on my body: the bags under my eyes, the smell, the hands clutched to my headache. Others can notice my habit, and they judge, but I can't trust them. They're biased. They don't do it as often. They indulge less, so they can't understand. They're not concerned for me, they're just condescending. They suddenly turn into public health authorities, thinking they know anything about my situation. Friends judge. Strangers stare. Even doctors. But the science is not clear. And they obviously don't care about me, they just see my body as a walking manifestation of this so-called self destructive habit. I can't trust people who refuse to get drunk every day."
      • There are no tigers in africa?
      • Worked a lot on the MERN stack again, building my portfolio site.
        • Read a little bit of the react-router and react-router-dom docs. I'm no expert yet, but the full picture is slowly becoming more clear.
        • Removed title and author from the blog post components. Don't need em.
        • Just some easy reminders, coming from more familiarity with pip syntax. npm init to enter a wizard that adds a package.json to your cwd. npm i to install. Add -S to save it as a dep, which means adding it to package.json. Add -D to save it as a development dependency. When you npm i in a fresh clone with the package.json, it will create a node_modules folder and install all your deps locally into it.
        • When you install core, it prints "Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)" - yikes. Ads in packages. At the CLI. Nice UX...
        • Got the client and server apps both working again, cleaned the repo, committed.
      • Here is my diet, every single day:
        • Breakfast shake: assorted powders (~$1), homemade oat milk ($1)
        • Lunch smoothie: kale ($1.79), tomatoes ($0.79), banana ($0.30), turmeric ($0.20), ginger ($0.10), beet stalks (counted for beets instead)
        • Preworkout juice: carrots ($0.75), red cabbage ($0.75), celery ($0.40), beets ($0.75)
        • Dinner: almonds ($0.40), smoked meat ($2.00)
        • Sometimes I'll have a protein bar at the gym, which is $1.
        • The veggies are organic, so the prices are a little bit higher than they would be otherwise.
        • Powders: cinnamon, whey protein, creatine, cacao nibs, glutamine, lion's mane, maca, flax.
        • Other than that, it's just coffee and water all day.
        • Some of these are variable. Chicken vs beef, almonds vs seeds, etc, but the averages are close. Sometimes I'll do sweet potatoes for breakfast, yogurt, bell pepper snack, etc. It washes.
        • This obviously is just recurring consumable costs, not single purchase items like blender or infrastructural recurrence like charcoal, spices, etc.
        • Rounding up, that's $12/day to eat extremely healthily.

      Friday, August 2, 2019

      • The Ally transfer processed. I don't see it in my BOA account yet, but I should get a large deposit notification soon. I also had $0.02 left in my Ally account so I just submitted a req for that as well.
      • Went through some practice interview questions for js-specific roles (which I'm not applying to). I could answer about half, which I'm satisfied with. After studying, I'll be able to get most. In any case, I'm seeking a full stack position.
      • Read the tesla 2019Q2 report: https://ir.tesla.com/static-files/1e70a30c-20a7-48b3-a1f6-696a7c517959.
      • Capex = capital expenditure (like overhead). Profit = revenue - capex.
      • GAAP = generally accepted accounting principles.
      • UrthBox was firm on "no" when I requested that they cancel the mistaken order (3mo subscription renewal), which was already shady. I pretended to enjoy their business, threatening the loss of future orders, making the decision to refund me lot easier for them. The agent spoke with his manager and magically found a way to cancel 2/3 of the order. This is a good strategy for dealing with cancellations/fees/etc. Paint the picture as a financial long-term strategy for them, rather than something subjective or political.
        • Make sure to thank them after, even if you don't plan on continuing being a customer of theirs. Pay it forward, ensure this model continues working. If you ghost them, the threats lose value on the macroscale over time.
      • app.use() requires a middleware function. You do this for express.Router(), but not for something like your models. You just require() those (import them, don't add them to the express app).
      • 204 = no content. You might get some pending requests on an empty db.
      • Always forget. lsb_release. Then use -h, or directly show version with -d.
      • MERN.
        • One of the reason my devtools network request was not responding (and I couldn't find logs) was because the service wasn't started (heh). I had begun the backend app days ago and had not restarted it once I had finished with the frontend. nodemon app.js.
        • Moving on to the redux and state portion.
        • Wrapped the app component in both a router and a redux provider, which has a store that contains reducers. Then you basically tell it that the state is all the articles, have it connect to the db, map the redux state to react props, then display the props (articles, blog posts) in the react component. 
        • There was another part completely missing from the tutorial lol: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/. You need to have mongo both installed and running before it can obviously serve a localhost db, otherwise no data is being saved. Surprisingly ........ no errors from express when starting the app and trying to connect. At least not directly presented to the user in the cli. Yikes.
        • Yup, that was totally why everything was busted. As I suspected above, the hanging requests were due to the backend waiting for db connections that ... didn't exist because there was no db. 1000% times better now, fast, clearer logs, everything.
        • Finished the tutorial, got the baseline working. Now on to customization for my own purposes.
        • Created a proper git repo for the blog and customized it.
      • Remember, onsubmit is an event, the js function that executes when a form is submitted. onload is the same for when the page has loaded.
      • ... in js is the spread operator. If you have an object with multiple properties, and you want to create a second object with 99% the same properties, just changing a few of them, define the second one with the spread operator on the first object. obj2 = {...obj1, changedProp: x}
      • Mongo
        • Add key, add apt source, apt-get mongodb-org, sudo service mongod start.
        • Then remember, you can check logs with journalctl -u <servicename>, or look in /var/log
        • 27017 is the default mongo port.
        • Enter shell with `mongo`. Just type `help`. Pretty similar to psql and postgres in general. Don't need to terminate statements like psql.
        • In the shell, show dbs, use <db>, show collections, <db>.<collection>.find()
        • use <db> the db.dropDatabase() to delete one.
      • moment.js is a great library for datetime manipulation, such as converting db timestamps into something relative to now, like "17 minutes ago".
      • Backticks in javascript are template literals. You can execute code inside of them, to insert expressions (like variables, or math) into strings.
      • If you're running the webpack dev server, you'll see "wds live reloading enabled" in the browser console.
      • React: be careful when using arrays, and assign each element a unique key. This applies to situations where you might be mapping an arbitrary-length list from db.find(), and rendering a <div> row for each or something. React uses keys to make it more efficient about what changed and what needs re-rendering. For all child elements in a component that has a list, give each one a unique id. https://reactjs.org/docs/reconciliation.html#keys. This is usually pretty easy, since the raw data has a db id in most cases that you can just pass through.
      • These tattoos made to look like patches are incredible: https://tattooblend.com/hyperrealistic-patch-tattoos-by-duda-lozano/. Would be so cool to get one of a mission patch. This is my official copyright on that idea.
      • npm prune remove unnecessary packages.
      • Went through all the redux docs and took notes (in a google doc). Makes much more sense in the context of the simple MERN app I just built.
      • Remember the react tab of chrome devtools to help debug and should the whole react virtual dom and everything.
      • In javascript, `new` will execute the constructor when creating an object.

      Thursday, August 1, 2019

      • Final closure on my ally account, realized gain: 6k. Basis was 10k started over 10 years ago to practice a little bit of private investment at the end of high school, got 60% overall.
      • The ach from ally is on hold until tomorrow.
      • Urthbox charged me another $90 for another 3 month subscription of snacks delivered to Eric's house. I never wanted this, it was a one-time gift. Their fine print is bullshit and I emailed their support team.
      • cprofile is a good profiler for python. @profile is a built-in decorator for memory profiling.
      • numpy.ndarray can only hold one datatype, so it's mucccccch more efficient than the generic python list (which has to allocate for flexible data types in every element).
      • index.js are kinda like __init__.py files in python, spread through the project dirs to organize code and import/export availability within subpackages.
      • In js, you can specify one and only one export as "default", which means that imports can call it namelessly. Otherwise, you name your exports and import them by name.
      • form-control is bootstrap. my-3 is a spacing example for bootstrap, which sets margin top and bottom (y-axis) to 3.
      • Dayum. Finasteride, propecia, antibaldness drug can can impotence and anxiety: https://elemental.medium.com/my-life-has-been-ruined-by-an-anti-baldness-propecia-finasteride-side-effects-ed8b2fcd1e90.
      • Police have had facial recognition database for a while. They can identify from mug shots, videos of crimes, etc. https://onezero.medium.com/california-police-are-sharing-facial-recognition-databases-to-id-suspects-3317726d31ad.
        • While most are scared of technology like this, I'm a huge proponent. The more data, the better, even if private. This is an accountability problem, not a morality problem. 23andme genetic data, facial data, crime data, advertising data - take it all. I don't have anything to hide, and data connections enable so many useful functionalities.
      • MERN:
        • High level index.js which does the ReactDOM.render().
        • That imports components from other clean files, like a jsx that defines a Switch and a Route inside of a class or hook and exports it.
      • AmEx anticipates vacations based on travel purchases, inferring that you'll be away during certain dates and allowing transactions while there. Pretty cool, and not that hard.
      • Placed fresh order.
      • Morgan is the js library for request logging with node express apps.
      • Axios is a library (wrapped around ajax using xml http requests) that allows you to make promise-based requests from the frontend or backend.
      • Smoked chicken breast for softball. Tenderization is so important. I used a valentina bottle to pound them flat lol. Bought an actual tenderizer online. Going to try the 48 blade puncture tenderizer instead of the mallet variety.
      • NFL is back!! Preaseason week 1 tonight, TNF, broncos vs falcons.
      • Trichinella dies at 137F. Salmonella dies at a higher temp, and it takes a bit longer. Getting it above 160 is fine, 165 is even safer.
      • Robinhood: Bought beyond from my interdigital sales. Also sold seagate today.
      • Ally: Cleared final holdings, microsoft and tesla. I'll reup msft in robinhood.
      • Paid rent while the money was moving around.
      • It might be worth getting a stackoverflow account and starting to provide answers. The clout is a good bonus. Even better benefits: paying it forward + open source mentality.
      • Brake fade is due to heat. Over long applications (braking all the way from like 200mph, or going downhill) the braking power decreases. Gas builds up.
      • A strong thought I had today, and have had before: Convenience is the enemy of healthy eating, not flavor. It's so much easier to grab a granola bar or cereal, a sandwich or snacks. Healthy foods are usually ingredients which require some sort of effort to transform from their raw state into a usual meal. This is what makes good nutrition difficult. We have enough distraction and exhaustion throughout the rest of our days; to add more in a neverending task like meal prep is hard.
        • To fight against this, I do as much prep beforehand.
        • My morning meals have always been a shake. Instead of getting out the teaspoons and measuring 10 different powders every morning, I do it in a batch of 10 jars. Then breakfast is just pouring a jar into water in a bottle.
        • I have a veggie smoothie every day. Instead of cutting and apportioning all the kale and tyogurt and carrots and all every time, I batch it all at once. Then a smoothie is just grabbing 5 items from the fridge, rinsing with water, then throwing in a blender and drinking.
        • Same goes for carrots/beets for juicing.
        • Same goes for bell peppers for hummus/snacks.
      • Abstract route logic into other functions, then have your route definitions (decorations) be as simple as possible. This is called route middleware: http://expressjs.com/2x/guide.html#route-middleware. The middleware can be responsible for looking up a user in the database, requiring that someone is an admin, or much more. Then once the middleware accomplishes what it wants, pass to next().
      • Read through the express 4 api docs.
        • app.use(path, callback)
          • If nothing is passed to the first argument for path, it defaults to the home route /, so applies to everything.
        • This is exactly where you put your middleware logic, and then mount it.
        • Pretty similar to flask all around.
      • Read through the mongoose 5 api docs, the mongo shim for node.
        • All around similar to sqlalchemy. Define the schema, connect to the db, validate against models, etc.
      • Worked with briley for a minute on the hydra angular frontend.
      • npm:
        • sudo chown -R $USER ~/.npm again.
        • -D is the same as --save-dev
      • Webpack:
        • Pip.
        • webpack.config.js provides mores configuration for the package, extending package.json. Both are similar to setup.py. The webpack config allows specification of entry points, resolvers, loaders, much more.
        • Can also be used to build your client app or start development (webpack-dev-server).
        • Defines the main template to load, the js to run on it (react render, etc).
      • Simple MERN blog app:
        • Created the client react app, refreshed on the express/mongo backend and server app. Compiled with webpack dev, almost done.
        • Webpack config has the entry point defined, which is /src/index.js. This is like main. It loads react and all the components + stylesheets.

      Tuesday, July 30, 2019

      • Sick special model of the 2019 panigale v4 to honor the 25 year anniversary of the 916: https://www.ducati.com/us/en/bikes/panigale/panigale-v4-25-anniversario-916.
      • Remember CORS = cross origin resource sharing.
      • JS has a standard lib just like python, of course. For example, process.env.PATH is sys.path.
      • === is strict equality, where it checks type and value. 3 == '3' would return True but 3 === '3' would not.
      • Remember for permission denied errors, make sure you're the owner. sudo chown -R $USER <path>
      • Just like python, if you sudo npm i -g it's going to install it into your system packages with root perms, so subsequent global installs without sudo will fail on permission issues.
      • Stack overflow offline for maintenance a little today.
      • MERN app.
        • Express is pretty similar to flask. Instantiate an app, then add everything to it: models, routes, csrf, cors, session, whatever.
        • Again, nodemon is the library to have an auto restarting express app. Just like flask debug=True and autoreloader=True.
        • Kinda like blueprints, you can abstract all your views to another file using another package Router.
        • .param is a way of specifying information about a request, kinda like running a preroute to look up info in the db and then attaching it to the g object in flask. The param itself is defined in a separate function and then any route can use it with :param.
        • Remember .then and .catch for a function call (.catch = except: and .then = else: although you usually just put the after-success logic at the bottom of the try clause).
      • RAID, parity bits, redundancy across drives.
      • const { property_name } = obj is the syntax for destructuring in es6. You can redefine object attribute(s) to new variables.

      Monday, July 29, 2019

      • Remember that staticmethod and classmethod are the same in that they both operate on the class itself instead of an instance of the class, but a classmethod gets the class passed as an object so it can access other pieces of the class. A staticmethod receives no arguments.
      • Wifiphisher can basically jam a network and present a user with a fake update screen where they have to reenter their password to reconnect. It then shows you the password. Social hacking!
      • It was privacy badger, not adblockplus or ublock origin, that was prevented some of the image content on medium. Disabling it for those domains worked perfectly.
      • Sold all my IDCC shares (interdigital, wireless company) at a loss. Once the funds are settle (can take up to 3 business days), I'll turn it into BYND. I expect it to rise and fall just like btc, just I'll ride it for about a week.
      • Fasting has some interesting cleansing properties. When deprived of external sustenance, the body turns to itself for stores. This can benefit much: https://elemental.medium.com/why-fasting-diets-of-the-future-may-be-even-more-extreme-bf8db9befa70.
      • IRS is going after a lot of crypto evasion: https://blog.cointracker.io/irs-sends-letter-6173-6174-6174-a-cryptocurrency-warnings-what-to-do/. I'm fine, I claimed all my losses (lol).

      Friday, July 26, 2019

      • React for bmahlstedt.com.
        • Modified to use hooks instead of class syntax, added my images after making svg and transparent backgrounds.
        • Read about how to serve a dockerized react app. Changed bmahlstedt.com to use this instead of my static flask app. https://github.com/brianmahlstedt/bmahlstedt.com/issues/1.
        • That `serve` tool is pretty cool, but remember it's for static sites. This is fine for bmahlstedt.com in its current state, but the supercontest would need node/express as the dynamic framework to serve it properly (can still use nginx and docker, node/express just replace flask).
        • Remember, my nginx reverse proxy expects every prod container to serve its content on 8080. The dev container just forwards 5000 child to 5000 host.
        • Had to restart the docker service because of that shimd issue. Had to rm the containers (kept the images, networks, and volumes), then docker-compose up on all of them.
        • Added the react devtools extension to chrome.
        • Productionized it. Set up a multistage docker build. First, it creates a container with my src and then builds a bundle with webpack from it (npm run build, which is built into create-react-app). Then, it copies the build output dir (and ONLY that) to a new container and serves it, deleting the intermediate previous container.
      • React for southbaysupercontest.com.
      • Remember, react router is the module that allows you to have multiple routes (in what would otherwise be a SPA). You can have separate bookmarkable urls within your domain.
        • You can even have nested subroutes.
      • Shareworks has had internal errors in serving documents (tax docs, shareholder notices, etc) for days now.
      • YouTube started as a dating app lol.
      • HN was pretty underwhelming this week.
      • Python 3.8 comes with the walrus operator := which is a conditional assignment.
      • Vectorization is almost required for web images. Looks so much cleaner unless the image is superrrrrr high resolution.
      • "Github pages" is a pretty cool tool. You can serve static content directly from a repo. You can have a website built automatically from the react app or whatever is in the repo. https://help.github.com/en/articles/what-is-github-pages.
      • The new corvette (c8) is actually sick. It doesn't look like the classic corvettes, it's much closer to a regular supercar frame. It is also allegedly selling for under 60k.
      • Restarted the droplet for the first time (ever, I think).
      • FYI, the letsencrypt docker composition I use for cert takes about 30 seconds once the containers are spun up for the first time until the certs are created and recognized.
      • An Orioles OUTFIELDER pitched in the 16th inning of a 6 hour game and won it lol. He was throwing 50-60mph the whole time.
      • Marshmallow is a python package that allows serialization/deserialization between complex datatypes (like full objects) and standard python datatypes. flask-marshmallow is a shim that allows use in the web framework, making it easier to hook up to sqlalchemy, etc.
      • HATEOAS = hypermedia as the engine of application state.

      Thursday, July 25, 2019

      • array.map(function) - apply the func to every element and return a new array with the values returned.
      • array.filter(function) - this function should return a boolean based on a condition, and a whole new array is returned with only the original values that met the condition.
      • Sim port attack: An attacker collects enough information about you (dob, etc) to convince your cell provider that they're you. They then request that your sim card (your phone number) be transferred to a device they own. Since almost everyone uses their phone for 2FA, they then initiate a password reset for your google account (which is basically everyone's main email). Once they have your google account, they can do a lot. Saved passwords, google auth with other sites, etc. They can issue bank transfers, empty your crypto accounts, etc.
      • Jewish law is extremely strict. There are many activities which are not allowed on shabbat (friday evening to saturday night), which orthodox jew observe: https://en.wikipedia.org/wiki/Activities_prohibited_on_Shabbat.
        • An example: you can't carry things to other places. To get around this, orthodox jewish communities will construct a wire or fence around the district (an eruv). This means if you take an umbrella to a friend's house, you're not carrying it to another place, it's all one private domain and you were just walking within it.
      • Kosher(ing) salt is qualified by larger crystals because it is (was) used to extract the impurities (blood) from meat.
        • Kosher does not mean it was blessed by a rabbi.
        • For my smoking purposes, this larger crystal size just helps retain more water when rubbed on the meat.
      • Trichinosis - disease caused by eating raw pork which contains trichinella (roundworms). These parasites die at 158F.
      • Netflix is getting a lot of bad publicity lately. Disney+ is coming out, and Netflix is losing a lot of content. I still disagree with the media licensing regime in the first place. It's going to become so fragmented.
      • Good comparison of being a swe at amazon vs uber: https://medium.com/swlh/amazon-to-uber-from-the-lens-of-a-software-engineer-e5bd1c38caba. Neither jump out solely from this limited information.
      • Rust is continuing to gain popularity. Syntactically like c++, but better at memory management.
      • Tartiflette is a graphql server in python 3: https://tartiflette.io/.
      • Remember, most uses of babel refer to the js compiler. But the flask library babel is for i18n l10n.
      • Jon jones just got charged with battery from an incident with a stripper back in April. He allegedly slapped her.
      • Every group of friends/coworkers/families has a "prestige economy" that drives actions. This is a popular concept in social science. For some, like common teenage male friend groups, it's athletics or comedy. Decisions are made to increase fitness or humor. That's what establishes the hierarchy in the group; that's what earns brownie points among your peers. One that's very popular among newer generations: virtue signaling. Showing some exhibition of justice to your friends, in an outward way.
      • AT&T merged with Time Warner a while back. DirecTV prices have now increased instead of decreasing as promised. Many subscriptions were lost.
      • Gatsby (https://www.gatsbyjs.org/) is kinda like create-react-app but it prerenders everything static beforehand, which means it's faster (but can't do dynamic stuff).
      • Progressive web apps (PWAs) are mobile apps that are intentionally built to run in the browser. They're html/css/js. They don't need an app/play store to install, and they're inherently cross-platform.
      • Web
        • sudo npm i -g npm@latest && sudo npm i -g npx@latest
        • "serve" is a great npm package for running a static page. Just `serve -s <dir>` on a folder like the build output of create-react-app's `npm run build`. You can also just run `npx serve` in that directory.
        • react-scripts is a great package that gives the majority of standard commands (like those from pip or sx-setuptools) - start, build, test, etc.
        • Played with create-react-app for quite a bit.
        • Lol to apply a stylesheet in a react app, just import the css file into the js of the app. It's not like html where you specify this sheet directly, but it does compile down to that.
      • Goodnight y'all:
      •  Post image

      Wednesday, July 24, 2019

      • Smoked 8 beef plate ribs yesterday. Bought some maple syrup and honey to experiment with the wrap drizzle. Used to just do brown sugar, wanna compare the bark glaze with the syrups.
        • Honey was the winner.
        • Gonna do the other 2 racks thursday for softball.
      • Started to look for hawaii housing yesterday but jcriss had already booked. The hotel is $300/night. Searched for airbnbs nearby and there's one right next door for $200/night. Booked it instead.
      • Placed fresh order.
      • Listened to joe rogan + sam harris in the background while working: https://www.youtube.com/watch?v=ZA106wrMUe4.
      • Filed a claim for the equifax data breach. My data was part of the leak. $125 for compensation.
      • Settled funds for Remy's 30th in big bear.
      • Cool site to find data breaches: https://haveibeenpwned.com/. Mine are 8tracks, dropbox, linkedin, eatstreet, exactis, ticketfly. I'm not worried about any. I don't have password reuse accross any of those, nor do they contain particularly current or valuable data.

      Monday, July 22, 2019

      • Chores. Refilled jars. Laundry. Picked up chicken breast and beef ribs for smoking. Finally threw out the earring holder and reorganized the bedside table. Light grocery shopping.
      • Deactivated my fb account. Never used it, and it was starting to fill with spam. Don't need any extra exposure if I'm getting no value in return.
      • Made homemade hummus. Used raw chickpeas and homemade roasted tahini. Delicious.
      • Started the next kombucha batch as well.

      Sunday, July 21, 2019

      • Homemade oat's milk and almond butter, both were bomb.
      • Amazon sold some $5k+ camera gear for $100 on prime day due to a pricing error. https://petapixel.com/2019/07/17/amazon-accidentally-sold-13000-camera-gear-for-100-on-prime-day.
      • 5 users - that's usually all it takes to get a good distribution of the space for design.
      • Neuralink launch: https://www.youtube.com/watch?v=r-vbh3t7WVI.
        • FDA approval is the tough part.
        • Release end of 2020 (lol).
        • Implant that simulates the action potential, providing a neural interface.
      • Some say that the government played a pivotal role in the genesis of silicon valley. Meh. Tech innovation is gonna naturally create an epicenter somewhere. Maybe some of the american ideals (free speech, capitalist platforms, etc) helped accelerate it.
      • There were a few successful logins (un/pw) to my steam account which I haven't used in 10+ years. Emails were sent to trackseventeen and gmail. I changed the pw.
      • Spinnaker is the CD platform at Netflix. Deployment, environments, staging, pipelines, etc. Allows red/black deploys, where the new (red) phases in and takes load until the old (black) lessens to offline.
      • Remember, Kayenta is the canary app at Netflix.
      • Even some of the art that netflix presents to you is personalized. Often, shows and movies have multiple images that can be thumbnailed in presentation. Based on your other tastes, machine learning on your account will personalize the one that resonates.
      • Flutter is a framework for developing mobile apps. It's built by Google. It focuses mostly on UI. It's crossplatform. It also supports native mobile/web/desktop.
      • React native and flutter are probably the two main competitors for crossplatform mobile development right now. Hot reloading and other common features.
      • Went to the natural history museum. Was nice. Saw lots of dinosaurs, mammals, and birds mostly.
      • Blockchains lol. Ledges that show every transaction, ever. In order to place the next block (make a transaction), you need your private/public key. This is associated with you wallet, of which someone can have many. Therefore, your anonymity is preserved (until you try to transfer back to USD or something else with an identifiable destination). A cryptographic hash is solved to record the transaction. It's broadcasted to all nodes to compare and prevent fraudulent transactions. In order to successfully fake it out, you'd have to be faster than the rest of the entire network (which would make your fraudulent tail of the chain more trustworthy in the mathematical race). Nodes can be people(s) who dedicate their computer to mining. This incentivizes by giving a small amount of coin for uses the computing resources to solve the math problems for new transactions.

      Wednesday, July 17, 2019

      • Remember, single page applications send data back and forth asynchronously with the server (the URL doesn't change as you interact with them, simply). Example: gmail. Multiple page apps will render a new template for each request.
      • "Grease the Groove" training (GtG) is very low weight, not to fatigue, many times a day, multiple set exercising. It is designed for neurological training of the movements, and has become quite popular.
      • Researched tax amendments.
      • Material IO is a cool project: https://material.io/develop/. Easy drop-in for design.
      • React-router is the library to manage routes in a react app: https://reacttraining.com/react-router/web/guides/quick-start.
      • create-react-app is a fantastic starting point for most SPAs. Nwb is an alternative that's a bit more flexible. It can integrate with a serverside templating framework, like flask/jinja.
      • Remember, angular is two-way binding whereas react is one-way.
      • Coming from an extensive python background, writing functional application code mostly, I just want to note that web development is an extremely different software beast. Over the past few months, I've forced myself into beginner's mind, and I must admit that it has been uncomfortable, and continues to be. But as always, these growing pains signify that you're learning.
      • React's jsx blend of html/js I still find weird. Take advantage of the existing languages. Why blend them? You create conflicts like class/className and onClick and such.
      • Vue comes with its own state management (vuex) and router, unlike react/angular. For those, it's offered as a third-party package.
      • CRUD = cread read update delete. Administration of storage.
      • Bruh this template application is fantastic: https://github.com/briancappello/flask-react-spa. It's basically the exact same stack as my supercontest, but slightly better.
      • "Gists" in github are snippets. It's a scratchpad to share code or notes.
      • Bower is a package manager (under npm). I guess this is similar to something like sx-setuptools being under pip.
      • Github is great. It has an automated system that detects security vulnerabilities (like the lodash one), but then is also capable of autogenerated a PR with the fix: https://github.com/brianmahlstedt/supercontest/pull/52. Approved and merged.
      • Placed regular and fresh order to make homemade oat milk, tahini, hummus, and almond butter. I use these all regularly, but I've never tried the homemade versions which I hear are cheaper and much better.
      • Pumpkin no longer has the license for HATTS.

      Tuesday, July 16, 2019

      • FAANG = Facebook Apple Amazon Netflix Google.
      • Some good design principles always: precompute, caching, in-mem datastore, how will it scale?, index the db.
      • console.dir is similar to python dir(), you can pass it an object and it will tell you all the properties of that obj. A common use for this is console.dir(document), which gives you the whole DOM.
      • Finished the react tutorial: https://github.com/tyroprogrammer/learn-react-app. Took notes on gdoc.
      • Ducati Elettrico, "not far from starting production"
      •  Image result for ducati elettrico
      • The average stomach can stretch about 15%. Professional eaters can go up to 200%. It can tear.

      Monday, July 15, 2019

      • Prime day. Bought some things I'd been needing, jeans and socks.
      • Github sent me an email about a potentially risky dependency, which is an awesome feature they have. lodash < 4.17.13 has holes.
      • I do this already! https://medium.com/better-humans/replace-your-to-do-list-with-interstitial-journaling-to-increase-productivity-4e43109d15ef.
      • Lumen is the internal tool netflix built for dashboarding.
      • Insomnia (https://insomnia.rest/) is a tool that allows you to test APIs. Would be better as a webapp. Allows you to create requests and observe the response in an easy-to-consume-for-humans manner.
      • Purchase offer.
        • Morgan Stanley acquired Solium for 900m. Shareworks is their product now.
        • The oversubscription algorithm is not by request now, it's by holdings. This is in my favor. It also means that your sale election is basically your max, not some hypothetically inflated number that you hope gets truncated properly.
        • It's annoying that transmittal forms are required for former employees and those with paper certificates. Waste of infra, and incovenient.
      • While I am currently using blogger for this effort, I could easily add a wordpress docker image to my droplet. This could run mysql/php to serve a dashboard allowing me to write blog posts by logging into my bmahlstedt.com domain.

      Thursday, July 11, 2019

      • Medium, one of the most popular publishing platforms on the Earth, sent me an ad today: "Humungus is a new publication about pop culture and masculinity. It's for men, but not toxically masculine." Are you kidding? Must every sentence about men be followed by a second sentence defending it?
      • Watched midsommar yesterday. Amazing. Also finished season 3 of stranger things.
      • Former tesla important brought secrets to china: https://www.theverge.com/2019/7/10/20689468/tesla-autopilot-trade-secret-theft-guangzhi-cao-xpeng-xiaopeng-motors-lawsuit-filing.
      • Main Python ML suite:
        • Scikit-learn, the actual learning. Has SVM, regression (of all kinds), classification, gradients, naive bayes, neural networks, clustering, signal analysis, PCA. No deep learning or reenforcement learning.
        • Numpy, for data structures. Arrays, matrices, etc. Low level.
        • Pandas, for operations on data. Wraps numpy. Handling of missing data, timeseries, merging data, etc. High level.
        • Matplotlib, for visualizing the data.
      • Sidenote: Scipy is the ecosystem around these, the umbrella. Numpy, matplotlib, and pandas are part of scipy.
      • Still annoying that tmux isn't starting with my proper bash shell (coloring, aliases like ll, etc).
      • Gitpod is an awesome feature of github: https://www.gitpod.io/. It's an online interpreter, giving you an environment like bash/python/whatever for testing.
      • MD/PW. Nothing to write down, but still lots of good reminders and triggers. I skim about 10 articles a day, and find it valuable.
      • Sam Harris has the good point that open discourse is fundamental to everything. Our ability to reason is the bedrock of progress. Anything that goes against open discourse is by definition limiting (in the best case), and violently wrong (in the worst case, like radical islam). Dogmatic points of view are the bases of all religion. They're the bases of dictatorships like Hitler's Nazi Germany and Stalin's communism. Free speech and the pursuit of truth (science, evidence, and rationale) are paramount.
      • Chopra and Houston dropped a funny ball on this one lol: https://www.youtube.com/watch?v=nupB70anRrQ.

      Tuesday, July 9, 2019

      • 1-1 friendships usually end up with imbalanced power. Triad friendships (3 people) have been proven to be more successful: https://medium.com/better-humans/how-to-use-triads-to-improve-your-personal-relationships-a83dd2f3578c.
      • Did the fizzbuzz test. Could have done it in 10 seconds in python, but had to remind myself of some js syntax. The ternary operator (condition?outputiftrue:outputiffalse) can make it way shorter (pass to print for fizz and buzz with cond being modulus then or with the number), but I did it with a simple bitmap and switch statement for printing.
      • Hex goes 0-9 then a-f. This counter demonstrates it well: https://www.mathsisfun.com/hexadecimals.html. Regular numbers are 10^0+10^1+10^2 etc, hex are just base 16, and binary is just base 2.
      • Never forget: https://www.youtube.com/playlist?list=PLZvJl8qNSAyZ_0q8Wdzq77hMMPy5ZJ2f1. Man vs Beast. The best show.
      • Dogma = things people say as true without budging. Pontification, incontrovertible beliefs, etc.
      • Sam Harris is a pretty sharp guy. He's like an atheist Jordan Peterson. Watched a lot of debates in the background today.

      Monday, July 8, 2019

      • Switched the home UI on my phone back to Nova Launcher (prime). I had paid for it a long time ago and forgot about it.
      • Egalitarian = equal opportunity.
      • There's a significant statistical difference (1std) in preference: men toward things, women toward people. Source: data from personality surveys, meaning that the difference is biological, not that it's cultural or societal (which it might be if the data were taken from career surveys, for example).
      • Interesting study on the gender pay gap at Uber: https://www.forbes.com/sites/avivahwittenbergcox/2018/09/23/gender-paygap-uber-case-study/#227052a3b555.
      • Feeling good to go back to work/grind/gym/focus. I get the most purpose in those routines (vs socialization/drinking/hanging/etc).
      • Bought a muscle stim kit off amazon. $30, with amazing reviews. I'm hoping to relieve some of the stiffness in my neck, but also melt away a bit of the epicondilitis and sciatica.

      Sunday, July 7, 2019


      • Past week was a blur of vacations, had bmanning and richard and derek and james in town, + the fourth of July. Went to see Bring It On at Hollywood Forever cemetary last night. Huge UFC fights as well, jones, melendez, rockhold, nunes, holm, askren, more.
      • Soccer all day today, with 3 tournament finals coinciding.
      • AAPL sell executed. Transferred to BOA.
      • Caught up on all Medium/HN/PW.

      Wednesday, July 3, 2019

      • The largest private company in the world is Vitol (Europe), then Cargill (USA). Over a hundred billion/yr in revenue and over a hundred thousand employees each.
      • Finished the change to enumerate the week dropdown: https://github.com/brianmahlstedt/supercontest/pull/51. Deployed. So easy, just `make deploy`. It looks pretty horrible on mobile, but that's certainly not my focus right now.
      • Fixed the "register new user" behavior of flask-user. It wasn't the library at all (as expected). It was simply that the mail password was wrong.
        • Reset it (in gmail), then copied it to both the flask-user conf and the postgres conf (flask has to use it to talk to the database).
        • Had to reset the password in the actual database too, since it persists and the db was created with the old pw. It's now up to date with the one that starts with D (for the supercontest user in the supercontest db). This was a simple ALTER TABLE in psql.
      • A warning indicator on the BMW turned on. It's for the front/side headlights. I checked all of them, and all bulbs are fine. Could just need a diagnostics reset? I don't have the machine, so I'm just gonna leave it for now.

      Tuesday, July 2, 2019

      • Postcard stamps (35 cents) are different than regular stamps (49 cents). You can put two on a regular letter to send it, you're just overpaying by 21 cents. You simply have to pay the minimum.
      • Bmanning got here last night and is gonna stay till wednesday. Had some great talks about business, his LEO gps startup, law, space, pharmacy app, and much more.
        • Most pre-seed money is won due to team, not due to product. If you can namedrop Spa SpaceX, Stanford, and truly believe in your idea, it's pretty easy to acquire funding.
      • A lot of competition bbq uses weird stuff like sodium phosphate for tenderizing, msg (accent), and other umami flavors. I prefer the classics. Salt, pepper, garlic, onion, chiles, spices.
      • UX design. Ideal animation time should be ~250ms. Ease in and out, just like realworld acceleration.
      • Brined and rubbed the other beef rib racks for tomorrow.
      • USA beat England in the women's world cup semi. Watched at Rock n Brews. Mexico beat Haiti in the gold cup semi. Watched at Aleworks.

      Monday, July 1, 2019

      • Looks like: KD/Kyrie to Nets, DLo to warriors, Iggy to Memphis, Klay/Curry/Dray/Boogie stay.
      • Amazon fresh is so awesome. Placed another full order in the morning, arrived about 10hrs later.
      • Watched some Gordon Ramsey for the first time lol he's hilarious: https://www.youtube.com/watch?v=iM_KMYulI_s. The comments are gold too.
      • BFR = blood flow restriction. It's a physical therapy technique that's gaining popularity.
      • Blender busted. The buttons caved in and it would no longer turn on. Bought another $75 ninja.
      • Received a notice for changes to my 2017 tax return.
        • The penalty is ~20%. It also accrues compounding interest, starting with 5% in the year you filed incorrectly, and 6% the year after that.
        • If you do not respond, you get a statutory notice of deficiency and interest/penalties increase.
        • The changes are correct, and I paid them. There are first time abatement waivers for the penalties/interest, but you have a much likely higher chance of getting them if you have never gotten them before. If you receive a waiver, you are not eligible for the same one for the same rationale for 3 years, so I'm going to save it for next year just in case there were any mistakes in 2018's return. I moved a lot more money around that year.
        • So many frustrating aspects of the current system:
          • SpaceX not allowing us 83i, even though the liquidity offered during these irregular buybacks is capped at a max that will never pay the tax burden incurred by AMT on a regular exercise schedule.
          • Not having a foolproof automated process.
          • Not have a well designed tax code in the first place.
          • Knowing so many colleagues who cheat their way out of tens and hundreds of thousands of dollars in real tax, while the IRS spends effort targeting stuff like mine (this 2017 case was $5K) and they're all scot-free. 
          • Not having tax education in middle/high school.
          • Having a complicated enough system that needs education in the first place.
          • Rich people taking advantage of these loopholes, directly creating quagmires like the AMT trap for middleclass people like me.
          • My good, AMT as an entire concept. The tech world and regular equity have obsoleted the original foundation of this.
        • It's a wonderful practice in letting go of things I can't control :( Sure, it's complete chaos, and it affects all citizens' piggy banks intimately, but outside of my vote, I can't change it. Money will never drive my satisfaction and peace of mind.
      • Set a stop limit order for gtc sell on all my aapl shares - slowly clearing out my ally account so I only have securities in robinhood and solium. I need the little boost of liquid cash right now to handle the IRS bs.

      Sunday, June 30, 2019

      • Always organize elements of information in categories no larger than 9, but preferably ~5 chunks.
      • These are great! https://uxdesign.cc/the-worst-volume-control-ui-in-the-world-60713dc86950. Terrible volume control designs.
      • Beets have nitrates which are good for athletics. Lower heart rate, longer workouts, etc.
      • Remember, diversity is a proven benefit. It applies to decisionmaking, nutrition, genetics, workplace creativity, health, relationships, and much more. But remember, diversity's variable is not race. It's not gender, it's not sex. It's not sexuality. It's not age, weight, or height. Diversity's variables are deeper than that. Diversity's variables are born from our choices as we navigate these lives, born from things we as individuals have control of. Diversity's variables are not born from characteristics that we are born with. If you want multiple flavors of soda for a party, buy multiple flavors of soda - don't pick sodas bottles with differently colored wrappers.
      • Julio Jones' actual first name is Quintorris lol.
      • Organized a lot of my personal stances. I had them written in various documents over the years but I combined them all into one. Each topic (politics, religion, etc) has a few bullets of rationale.
      • USA beat Curacao to advance to semis in the gold cup.
      • KD and Kyrie Irving are going to the nets lol.
      • Changed the Robert/Arlen wedding RSVP.

      Saturday, June 29, 2019

      • I had been confusing beef ribs. Notes are below. Bought and smoked them for the first time today! Each rib is almost $4 and 1lb, wow.
        • "short ribs" without any other specifier refer to beef plate short ribs. They're the biggest beef ribs.
        • Chuck short ribs are like plate short ribs (both are from the underbelly and have more meat, like pork spare ribs), but a little smaller.
        • Beef back ribs are the third type. Like baby back ribs for pork. They're the smaller beef rib, but they're still bigger than pork ribs.
        • Just like pork ribs, beef ribs are right next to other expensive cuts (ribeye), so you might see shiners (bones sticking out) from where the butcher tried to cut as close as possible.
        • You cook beef ribs with the membrane ON, unlike pork ribs. This helps keep them together.
        • You don't wrap beef ribs. Because of this, clean smoke is important. Cook a little hotter 275 and go a little lighter on the wood.
        • Bark is everything for beef ribs. Don't spritz until the last couple hours.
        • Total time about 8 hours.
      • Paid rent.
      • Refilled on charcoal (70lbs).
      • Tried the new breakfast burrito from Mickey's. Was good! Bfast burritos are easy, but one thing I liked about theirs is that they crisped the potatoes, almost like tots, so that it added some crunch to the burrito.
      • I had been keeping the intake on the blower mostly closed, but it's easier on the motor to open the inlet when in use.
      • Matchlight charcoal has lighter fluid soaked in, don't use it.
      • Moist snuff is just more finely cut.
      • Engines.
        • V vs Inline. Doesn't change performance a ton, if it's the same combustion volume, but it does give more torque on the lower end. In a V, they share the same crankshaft, so you can push on both sides.. V geometries are usually more compact, because inline cylinders can get long. However, V patterns cause more vibration, if not balanced or dampened.
        • 2 vs 4. For the same displacement volume, the 2 will have a better low end and the 4 will have a better upper end (and wider overall powerband). 4 has higher top speed and higher redline, as well as harder maintenance. The 4 will also be smoother, with less vibration.
      • Design.
        • Don't use grey on colored background. Whiten it up.
        • Offset shadows for text.
        • Use background colors for separation, rather than borders/whitespace.
      • Lerna and Bit are great tools for monorepos with javascript (projects with multiple npm packages).
      • Came across an awesome concept during my mindfulness practice today. "Beginner's Mind". The goal is to become better at everything you do, of course, but that's not the carrot in front of you as you progress. Have the perspective of a beginner, of a child. Ask questions. Be amazed. Be curious. Be humble.
      • Hung the donut poster.

      Friday, June 28, 2019

      • Full cycle at netflix. Individual(s) own the full design-dev-test-deploy-operate-support. https://medium.com/netflix-techblog/full-cycle-developers-at-netflix-a08c31f83249. I agree with this model.
      • For democrats, Amazon is the most trusted institution. For republicans, it's the military. https://bakercenter.georgetown.edu/aicpoll/.
      • Market cap is just share price * number of shares. It's the total value of a company.
        • In 2019: MS #1, Apple #2, Amazon #3, Alphabet (Google) #4.
      • Berkshire Hathaway is an american company. I always assumed it was British. They own GEICO, fruit of the loom, and a bunch of other big companies.
      • Good reminder of web form hygiene. https://uxdesign.cc/design-better-forms-96fadca0f49c. Most important: show all options side by side instead of a dropdown, if there are 5 or fewer.
      • I changed my mind. I enjoyed the new Aladdin.
      • USA beat France to advance to the semis.

      Thursday, June 27, 2019

      • Using nonstick spray on an already nonstick cooking surface (like teflon) reduces its efficiency. It covers the nonstick coat. It doesn't damage it, per say, but it creates a bunch of unnecessary buildup.
        • Nonstick spray on cast iron is fine. Those pans should be seasoned anyway.
      • Mark Hamill (Luke Skywalker) does the voice of Chucky in the most recent Child's Play.
      • White holes are the opposite of black holes; nothing can enter, even light. They are just a mathematical construct. Nothing physical can create them.
      • pysnooper is a library that gives you a decorator which helps with debugging, like printing the various in the local scope and such. I still like pdb and breakpoint().
      • You can do some pretty cool customization with jupyter: https://towardsdatascience.com/how-to-effortlessly-optimize-jupyter-notebooks-e864162a06ee. Notebooks are a useful tool for sharing/collab. I don't use them for my own dev.
      • An IPv4 address is 32 bits, and therefore there are 4.3 billion of them (2^32, also there are 4 octets and each is a number 0-255, or 2^8). There are hundreds of millions reserved (already in use) - https://en.wikipedia.org/wiki/Reserved_IP_addresses. Eventually, they'll be exhausted. They can be reclaimed for other purposes, resold on markets, etc, but they are finite. IPv4 is 128 bits, with muuuuuuuch more room.
        • But, remember this takes you to a machine. It's an address. You could have multiple domains and multiple sites being served from the same IP address, like my nginx reverse proxy is doing.
      • The conjuring series, the annabelle series, and the nun all take place in the same universe.
      • Both the conjuring and child's play series are ok. Nothing amazing, but still enjoyable.
      • TS and TC are telesync and telecine, bootleg movie formats that are between CAM and DVD.
      • Read Aaron Franklin's BBQ book!
        • I like meathead's a bit more overall, because it goes into the scientific rationale for all bbq decisions and variables.
        • Learned mostly about building your own smoker. Using pure wood fire in an offset, adding baffles to mix the airflow and create more homogeneous temperature, and smokestack height for how hard it pulls.
        • The process is very manual at Franklin. All offsets, oak wood, thermometers, and natural airflow (controlled by doors). Nothing closed-loop. This process could be made simple, more repeatable/dependable, and easier to manage (much less work!) with some simple automation. Just because you're programming something doesn't mean it's doing it differently, it's just more efficient.
        • Start the fire with a piece of juice-soaked butcher paper from yesterday's brisket wrapping :)
        • Wagyu means "Japanese Cow" in Japanese.
        • Try to buy never-frozen. If you see more blood in the package, it was likely frozen.
      • Homemade BBQ sauce with espresso beans - a delicious idea I first saw at Franklin's.
      • Bought a large serrated slicer for brisket, and a boning knife for easier trimming.
      • Watch the new live-action Aladdin. Meh. Loved the idea, did not love the adaptation.
      • The steam room at 24 closes a couple hours nightly for cleaning, usually around 1-2am.

      Wednesday, June 26, 2019

      • Finished the donut puzzle.
      • Neck is feeling a little better, as if it were a muscle strain and were fading. I'm never cracking my neck or back or fingers again! The stiffness is kinda annoying while I go cold turkey, but I'm sure it will fade.
      • PassportJS is a good lib for user auth.
      • M&A = mergers and acquisitions.
      • Glass breaks at like mach 4.
      • Max heart rate is about 220 minus your age.

      Tuesday, June 25, 2019

      • Pumpkin spice = cinnamon nutmeg ginger clove.
      • Fb's crypto is Libra. The programming language behind it is called Move. It is written in Rust.
      • Popular JS libs: https://blog.bitsrc.io/11-javascript-utility-libraries-you-should-know-in-2018-3646fb31ade. Lodash (underscore) tops the list, obv. Utility functions.  Rambda is #2, a functional library.
      • shift-escape in chrome opens up the browser's own task manager. How am I just now finding this. You can view processes, memory, cpu, and terminate them. It even shows resource usage by tab and by extension, which is an extremely useful thing for determining how your browser is slowing your computer.
      • All round-of-16 games in the women's world cup are now over. Our path to the championship will likely be france-england-germany, which is no easy sequence.
      • Smoked chicken and made tacos again. This time, made the corn tortillas by hand for the first time! They're way better.
      • Cloudfare is the company that offers the standard ddos protection you see (an annoying 1s delay).
      • I'm never cracking my neck again! Twisted a little too far and might have tweaked the muscle a little bit. Wasn't really painful, but it's just a scary area to mess with. Beyond muscle issues, you can tear the arteries and cause a blot clot that goes up into your brain, causing a stroke. Nottttt worth it.
      • A little React work. Remember, it's just the "V" in MVC, it's not a full framework.

      Monday, June 24, 2019

      • The tipping system in the US is broken. Patrons paying employees instead of the employers. Incentivization is good, but it should be inherent to the accountability of the position, like, you know, every other job on the planet.
      • Idea: a restaurant that doesn't allow tips.
      • Decided to subscribe to Medium. I get about 5 articles in my digest that look interesting but I can't read. Since this is something I do daily, and enjoy, I'm going to try the premium content. It's $50/yr.
      • USA Spain. Won 2-1. On to quarterfinal against France (which is basically the final).
        • Over large numbers, only about 3% of corner kicks result in goals.
        • A set piece is one that returns the ball to free play, like a corner or a free kick.
      • Medium.
        • In JS (just like python), you can access properties with dot notation (obj.prop) or bracket notation (obj['prop']). The latter should be used when the property name might have invalid syntax (leading digit instead of letter, etc).
        • Angular is a much larger framework that uses the regular dom and integrates components in. It has two way binding. React is a smaller library that uses a virtual dom. It only has one way binding.
        • Read the top articles on misophonia. None helpful. They all explain and characterize the condition. None provide solutions, because there are none. You just have to cope. Exposure makes it worse. There's no medication. You just have to avoid the triggers with earplugs, leaving the room, etc.
      • Updated my search engines in google chrome (i, a, t, w, y).
      • My "a" key is still a little bit sticky since I busted the retaining clips.
      • Priapism: an erection that won't go away.
      • Idea: a machine learning app that follows all of your activity (google searches, songs listened to, words said, apps opened, etc) and allows you to observe various outputs (energy, happiness, stress, whatever), then performs analysis to map the inputs to outputs and suggest patterns.
      • The flavor in root beer comes from sarsaparilla bark and sassafras bark.
      • Made the rub for the chicken tomorrow. Used a TON of anchos and guajillos, and included the seed pods this time. I'm excited for some strong flavor. Also used more garlic and onion powder, since Allie is in Sweden for 2 weeks.
        • Just like ancho is the name for the dried poblano, guajillo is the name for the dried mirasol.
      • Matt Stonie has done challenges of 20,000cal in 1hr. Holyyyyyyy. https://www.youtube.com/watch?v=oOop2bLiSFw.
      • Booked all my one-way hawaii flights. LAX-HNL-LIH-LAX. United, Hawaiian, and American. Basically had to reset passwords on all argghghhh. Total cost ~$550. Next step is getting a kauai hotel room with wes/jcriss, then I should be good on accommodations.

      Sunday, June 23, 2019

      • The concacaf (north/central american and caribbean) men's soccer tournament (gold cup) is going on right now as well. USA beat Trinidad and Tobago today.
      • Light speed is almost 700 million miles per hour. The Earth is almost 100 million miles from the Sun.
      • Ground cacao nibs are so much better in my morning shakes than whole.
      • Checked the ninja out. Battery is dead. Put it up on the rear lift so the tires would survive longer.
      • A mcguffin is a plot device (in a movie or show) that exists solely to move the plot forward but doesn't get any explanation.
      • Some new couples are combining last names in marriage!

      Friday, June 21, 2019

      • Went to ear appointment with Allie. Was very interesting.
      • Did surgery on a couple keys on my laptop. The S key was sticking, so I removed and cleaned underneath it. I also checked the A key next to it, to make sure I had put S back correctly, but it didn't come off as well. The retaining clip system is ridiculous, there are like 3 layers with 4 corner attach points each. It's back in place and working ok, but definitely not perfect. You have to press the A extra hard to register (which is annoying since it's a pinky key).
      • HN
      • Pineapple has the enzyme bromelain which breaks down protein chains. If you marinate meat with any pineapple in it for too long (hours), it will tenderize it into mush.
      • Updated al pastor:
        • Trim pork butt into slices. Brine as usual.
        • Mix marinade separately and apply right before smoking. Don't want pineapple bromelain.
        • Put slices on grill like chicken thighs, not skewered. More surface area for bark/smoke.
        • Get the internal to 170-200 and you're fine. Chop up. Don't need to reverse sear.
      • NBA contracts are insane. https://en.wikipedia.org/wiki/NBA_salary_cap. It's just as ridiculous as tax law, where there was a decent set of 10 original rules and then 3,000 people came in and exploited loopholes which resulted in new provisions. The worst way to scale.
      • Some questions for the interviewer. https://medium.com/free-code-camp/how-to-interview-your-interviewers-when-youre-looking-for-a-job-d848bc3a910.
        • Describe your CI/CD/CodeReview process.
        • How free are individual contributors to pursue new ideas? Even across departments?
      • I turn 1 billion seconds old in two months! The night of Wednesday, August 22, at midnight.
      • Domains are case insensitive, but you can totally make an endpoint case-sensitive. It just gets sent to the server. You shouldn't. Users should always consider it to be case sensitive, to be safe, but it shouldn't be.
      • Watched the smarter every day videos on tattoos and removal.
        • The guns are rotary (just a motor and a needle(s), like a crankshaft and piston) or coil (magnetically pulling a needle, then letting go while a sprint pulls it back).
        • Laser removal just sends a very tuned flash at the tattoo. This heats up one side of the microscopic ink particles quickly enough that the other side can't deform, so it cracks. Once broken up, white blood cells can engulf the smaller ink particles and bring them to the liver for waste processing (this is the same reason tattoos fade over a long time, the white blood cells are eating away at them).
      • Smoked the tacos al pastor.
        • At first I thought the temp probe was bad because it just kept flashing "lid off" but it settled after a while. The forums say that sometimes you can get bad readings at low temps. Also, power cycling the unit seems to help.
        • I'll have to screw the fan back on later as well.
        • Dicing the onion the right way is awesome.
      • USWNT beat Sweden to get 1st in their group. We play Spain in the round of 16, and then likely France in the round of 8. It could very likely be a USA-Germany final.
      • NBA draft.
      • The heaviest person of all time was 1400lbs.
      • If you just change the "r" in the reddit url to "c" then you can see posts that dumb mods have removed.

      Tuesday, June 18, 2019

      • Hung out with Eric and the whole family all day. Woke up at 6, gymmed, then beached and piered.
      • Created the splitwise group to settle all the Austin finances.
      • (Certain) Corporate action(s) can be taken without a shareholder meeting, even if the company is private, like SpaceX. It must win by majority shareholder vote nonetheless. They must notify the shareholders, by law.
        • These are usually equity dilutions, like increasing the total number of shares by ~0.01%.
        • This directly decreases the percentage of the company you own, and therefore your voting right, but that was never substantial anyway. It does affect value though, because external valuations are usually done on the total worth of the company, and then simply divided by the number of shares. It's a sneaky, indirect way to dilute your equity, since these events (dilution and valuation) are usually months apart.
      • Did Hawaii planning.
        • The friends leg is just pettys/gmereks/remilins (6) so far.
        • Harner/Eddie/Jonny already have flights home and other plans.
        • Allie is out for the friends leg, and is waffling the wedding leg.
        • Wes/Jcriss/I are the other 3 who are considering the friends leg, which would make 9. If so, Wes and I would be the only ones with the same flights for the whole trip.
        • I would like to go both legs. I will definitely need the LAX-HNL flight for the wedding. If Wes and Jcriss go on the other leg, I'll definitely go, and would need HNL-LIH + LIH-LAX. I would like to encourage Allie to come to both.
      • I can make al pastor for the bay whenever they come down.
        • Trim a pork butt into strips (easier to buy boneless for this, obv).
        • Make my usual dry rub (salt, pepper, paprika, garlic, onion), but then add Achiote paste and Guajillo chili powder and mix it all with pineapple juice to make a marinade (or just buy a premade pastor marinade). Let it sit overnight, then smoke as usual.
        • Spritz with pineapple juice instead of water.
      • Using openssl you can create a root certificate (used to generate other certificates) and then specify localhost as the domain to trust. Fairly simply article here: https://medium.com/free-code-camp/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec.
      • Guajillo chiles are the second most popular chile in Mexico. Poblanos are #1. Ancho is the name for dried Poblano.
        • The carolina reaper is the hottest pepper in the world. Before that it was scorpion, then naga, then ghost. There are claims for 2x the carolina (Pepper X) but they have not been confirmed yet.
        • New peppers are created by literally breeding other insanely hot peppers.

      Monday, June 17, 2019

      • Remember superchargers and turbochargers are a little different. Both compress the air going into the engine to add about 50% more power, but the turbo takes it from the exhaust gases (turbine->compressor) and the super takes it from the crankshaft (belt->compressor). The turbine has a slight amount of lag and then will lurch forward (because the air must move through the whole engine before you get the boost). The super delivers extra power all the way through. The Kawasaki Ninja H2 is the first bike with a super, I believe. There are custom Hayabusas with turbos.
      • Oh, forgot to write my Franklin's BBQ review.
        • Rankings:
          1. Brisket. The best I've ever had.
          2. Ribs. Good, but too much pepper.
          3. Pulled Pork. The usual.
          4. Turkey. Tasty, but too much butter, and they only had breast.
          5. Sausage. Surprisingly bad.
        • Overall, the brisket was incredible. Everything else was about par with what I cook at home.
        • The wait in line / drinking / relaxing was fun. We went on a Thursday and waited from about 830-1230. Worth it to do once - is probably not worth a repeat when there are so many other comparable BBQ places around.

      Sunday, June 16, 2019

      • Back home from the Austin trip with Richard and Derek! Was a blast. We even go to talk to James.
      • Medieval Times for Eddie/Ray/Haley yesterday. Awesome place.
      • USWNT beat Chile 3-0.
      • Finished Leadership and Self Deception and The Untethered Soul. Added notes to drive.
      • Periodicals:
      • Did some research for the Hawaii trip, both the first wedding leg and the second friends leg. Tentatively:
        • Fly from LAX to Oahu on Thursday August 8. Wedding Saturday 10th.
        • Leave Oahu Tuesday August 13 for Kauai. Stay at the Sheraton Kauai resort.
        • Leave Kauai on Saturday the 17th.

      Tuesday, June 11, 2019

      • Really tough yesterday with Kevin Durant.
        • Reinjured the same leg, likely from playing before being ready/healed. You can see the leg snap here: https://youtu.be/lYrA30qcvK4?t=49.
        • Bob Myers gave an emotional statement about it: https://www.youtube.com/watch?v=K3esK_em420.
      • Awesome reunion of 88 year old dad with 53 year old son with down's: https://www.youtube.com/watch?v=XXDvD-jLn74.
      • Cancelled classpass.
      • Received and set up the wireless mouse. Works great. The usb a-c adapters work well too.
      • Woah. You can send documents to your kindle via email. This is very convenient right now since my ubuntu laptop can't talk to it. You simply make sure your email is whitelisted (your default amazon address is), then email your kindle address (check in device management, like brian.mahlstedt_<number>@kindle.com). You can type "Convert" in the subject to automatically convert. Amazing. Did this for two documents.
      • React/redux work. Took notes on my google doc.
      • Played with youtube live again. You have access to the same settings beforehand: private, public, chat enabled, etc. You can then edit the video after you end the stream, but it's only stuff like captions and other standard settings. You can't snip, filter, add sound, all the advanced editing functionality. Do that offline and upload, don't use livestream.
      • The women's world cup started. United states beat Thailand 13-0!

      Monday, June 10, 2019

      • Android emulation.
        • Genymotion is probably the most popular android emulator for linux. Downloaded the personal-use edition.
        • Needed to apt install virtualbox first. Then chmod +x the genymotion bin and simply run it.
        • Created a desktop icon for it so I wouldn't have to execute the binary from the command line every time (and leave the pesky terminal around). Just create a APPNAME.desktop file with a hashbang that farms out to xdg-open, including the paths to the binary and the icon.
        • Added StartupWMClass to the .desktop so the icon wouldn't duplicate.
        • When emulating a device, my laptop craaawled. The galaxy s9 was unusable. An old Google Pixel (around galaxy s6 days) was even slow. My laptop only has 3.6GB of ram and 8GB of swap, but all ram was railed and swap was at 50%. Not sustainable, and I hadn't even run any heavy android apps yet.
        • Ended up unistalling genymotion and virtualbox. Was too slow.
        • Looked around and found Anbox, which runs Android in a container instead of a vm, and farms many android tasks back to your native linux host.
        • Added the ppa and installed linux-headers-generic anbox-modules-dkms. Then installed the anbox snap.
        • Google play store doesn't come automatically with android (licensing and such). You'd normally have to install apks manually, OR the better option of something like houdini. This script provisions all of that for you: https://github.com/geeks-r-us/anbox-playstore-installer/blob/master/install-playstore.sh.
        • Anbox also didn't work. Games wouldn't open because of Anbox' unique configuration.
        • Lastly, looked at the Android SDK itself. It requires minimum 4GB ram and recommends 8GM. Mine is below both.
        • In summary, my laptop does not have enough memory to use a VM-based android emulator.
      • Bought an adapter to connect my phone/laptop to older hard drives and kindle and such. Usb-c (android size) male to usb-a female.
        • Remember, usb-b is the boxier one (usually printers and such).
        • Micro and mini are the other obvious ones.
        • Also, remember, usb-c comes in two sizes: android and iphone. My linux laptop is the android size, because that's the standard. If you see usb-c with no other qualifiers, it's the android size.
      • Bought a wireless mouse as well.
      • Reinstalled the gnome system monitor. It doesn't open sometimes, and this seems to fix it.
      • MD. In javascript, the variable declarations are hoisted but not their values.
      • I feel like an absolute idiot for never taking advantage of this, but you can actually do curly brace expansion in bash. `echo {hello,world}` or `echo {0..10}`. You can even combine two curly brace arguments for combinations. My goodness.
      • DKMS = dynamic kernel module support. Used with virtualbox.
      • Shopped for a RAM upgrade to my XPS13.
        • DDR4 is newer and faster than DDR3L, which was a midterm upgrade for DDR3.
        • Need a T5 to open the back.
        • Unfortunately, I can't upgrade the RAM on the 13 easily because it's solder to the motherboard lol. On the 15" and above models, they have additional slots but the 13" does not. In order to have more RAM, I would have needed to upgrade at factory purchase, or replace the whole motherboard myself.
        • Don't need the torx screwdriver anymore.
      • Brainstormed some ideas for internet companies. Nothing huge jumped out, but the immersion helps. I want to be more mindful as I go through my day-to-day about anything that is annoying, even in the slightest. These inconveniences are just opportunities for improvement.
      • YouTube.
        • Went through my channel and removed liked videos. Added a few subscribers.
        • YouTube Studio is in beta. It's a cool dashboard for everything on your channel.
        • You can see your total subscriber count, but not the individual subscribers (unless they've chosen to allow that to be public).
        • You can change 3 privacy settings: your liked videos, your subscriptions, and your playlists. All of mine are not public.
        • You can livestream, but YouTube is much more geared toward recording and editing a video offline, then uploading it.
      • Motorcycles
        • Cool drag race: https://www.youtube.com/watch?v=DnTL4wDAbK0.
        • Quarter mile ranks:
          1. H2R
          2. F1 Redbull
          3. F16
          4. Tesla P100D
          5. Aston Martin Vantage
          6. Plane
          7. Lotus Evora
        • Observations:
          • Off the line, the bike and F1 and Tesla were all about the same, dusting everything else.
          • The bike took the lead through the midrange.
          • At a quarter mile, the bike and F1 were about the same, ahead of everything.
          • After that the F1 would have overtaken the bike.
          • After that, the aircraft pull way ahead.
        • H2R facts:
          • Same combustion volume as my ducati, but over 4 cylinders instead of 2. About 2x the horsepower and 1.5x the torque. About 35lbs heavier also.
          • It's currently the fastest motorcycle. It's not street legal.
          • It can go from 0-250mph in 26s (lol): https://www.youtube.com/watch?v=6_n7ru1e-rg. My ducati top speed is probably around 170mph, and would get there in around 15s.
      • Gave Ken about 5lbs pulled pork for home, and gave Allie about 5 more pounds to bring to work. I'm leaving for Texas so I won't be able to finish all the leftovers before Wed.
      • Finals game 5 in toronto. Warriors won! Back to Oracle.

      Sunday, June 9, 2019

      • Got over 3500 pages of printed documentation from healthnet in the mail, unsolicited. It's basically a printout of a registry of all provider. This is unacceptable in 2019. It's a gigantic waste of paper, shipping infrastructure, delivery jobs, and more. Sure, there might be a percent of members who do not have access to a computer, but this paper delivery should be opt-in during member registration.
      • Paid a $48 parking ticket on Allie's car because we're in the summer 1hr months.
      • Great day of volleyball. Tweaked my back a little bit.
      • Bruins push to game 7.

      Saturday, June 8, 2019

      • Parents left. Was a great couple days. Cooked leftover smoked chicken stir fry on thursday, sweet potato homefries and bacon and poached eggs and bananas/blueberries on friday morning, then smoked pork shoulder on friday night.
      • Warriors lost last night, didn't look good.
      • Interesting video on some pitfalls of streaming services like netflix: https://www.youtube.com/watch?v=fDF-S68kx5o. It's not healthy competition. Every show is IP which means it has an exclusive license. Like a ... monopoly.
      • saidit.net looks like it was closed.
      • Finished Harper's Island. Was pretty decent.
      • UFC 238. Shevchenko had the best female KO I've ever seen. Cejudo was a monster as well.

      Wednesday, June 5, 2019

      • Bought the flight to Austin, Wed-Sat (have to be back before Eddie's). It's a little early on Sat morning (7am), which will suck after Friday night, but it was the best option. Used 25k miles, leaving the price at $6. I have ~150k miles left still. Probably do Franklin on Thursday, get in line at 8am and drink chair beers for 3 hours until they open.
      • Meta = most effective tactics available. Used in gaming, refers to the best strategy/combo.
      • Talked to pops. They're gonna come to hermosa tomorrow and we'll have a couple days to hang. Shopped to make sure I had enough for them.
      • Warriors game 3.
        • Klay, Durant, and Looney all out due to injury.
        • Iggy, Boogie not 100%.
        • Steph and Draymond the only starters who are normal. Wow.