Changing articles to come from psql database and using a single template
This commit is contained in:
parent
3bb48c3c59
commit
c13f34f7c5
34 changed files with 791 additions and 5168 deletions
2756
Cargo.lock
generated
2756
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -9,8 +9,11 @@ edition = "2021"
|
|||
anyhow = "1.0.75"
|
||||
askama = "0.12.1"
|
||||
axum = "0.6"
|
||||
bb8 = "0.8.3"
|
||||
futures-util = "0.3.30"
|
||||
serde = { version = "1.0.197", features = ["derive"] }
|
||||
surrealdb = "1.3.1"
|
||||
sqlx = {version = "0.7.4", features = ["runtime-tokio-rustls", "postgres", "time", "macros"]}
|
||||
time = {version = "0.3.36", features = ["macros", "serde"]}
|
||||
tokio = { version = "1.35.0", features = ["full"] }
|
||||
tower = "0.4.13"
|
||||
tower-http = { version = "0.4.4", features = ["fs"] }
|
||||
|
|
|
|||
90
src/database/data.rs
Normal file
90
src/database/data.rs
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
use futures_util::TryStreamExt;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sqlx::postgres::PgPool;
|
||||
use std::error::Error;
|
||||
use time::Date;
|
||||
|
||||
pub trait PsqlData {
|
||||
async fn read_all(pool: &PgPool) -> Result<Vec<Box<Self>>, Box<dyn Error>>;
|
||||
|
||||
async fn read(pool: &PgPool, id: i32) -> Result<Box<Self>, Box<dyn Error>>;
|
||||
|
||||
async fn insert(&self, pool: &PgPool) -> Result<(), Box<dyn Error>>;
|
||||
|
||||
async fn update(&self, pool: &PgPool) -> Result<(), Box<dyn Error>>;
|
||||
|
||||
async fn delete(&self, pool: &PgPool) -> Result<(), Box<dyn Error>>;
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
|
||||
pub struct Article {
|
||||
id: i32,
|
||||
reference: String,
|
||||
title: String,
|
||||
pub content: String,
|
||||
pub previous: Option<String>,
|
||||
pub next: Option<String>,
|
||||
date: Option<Date>,
|
||||
}
|
||||
|
||||
impl Article {
|
||||
pub async fn read_by_reference(pool: &PgPool, reference: &String) -> Result<Box<Self>, Box<dyn Error>> {
|
||||
let result = sqlx::query_as!(
|
||||
Self,
|
||||
"SELECT * FROM articles WHERE reference = $1",
|
||||
reference
|
||||
)
|
||||
.fetch_one(pool)
|
||||
.await?;
|
||||
|
||||
Ok(Box::new(result))
|
||||
}
|
||||
}
|
||||
|
||||
impl PsqlData for Article {
|
||||
async fn read_all(pool: &PgPool) -> Result<Vec<Box<Self>>, Box<dyn Error>> {
|
||||
crate::psql_read_all!(Self, pool, "articles")
|
||||
}
|
||||
|
||||
async fn read(pool: &PgPool, id: i32) -> Result<Box<Self>, Box<dyn Error>> {
|
||||
crate::psql_read!(Self, pool, id, "articles")
|
||||
}
|
||||
|
||||
async fn insert(&self, pool: &PgPool) -> Result<(), Box<dyn Error>> {
|
||||
sqlx::query!(
|
||||
"INSERT INTO articles (reference, title, content, previous, next, date) VALUES ($1, $2, $3, $4, $5, $6)",
|
||||
self.reference,
|
||||
self.title,
|
||||
self.content,
|
||||
self.previous,
|
||||
self.next,
|
||||
self.date,
|
||||
)
|
||||
.execute(pool)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn update(&self, pool: &PgPool) -> Result<(), Box<dyn Error>> {
|
||||
sqlx::query!(
|
||||
"UPDATE articles SET reference=$1, title=$2, content=$3, previous=$4, next=$5, date=$6 WHERE id=$7",
|
||||
self.reference,
|
||||
self.title,
|
||||
self.content,
|
||||
self.previous,
|
||||
self.next,
|
||||
self.date,
|
||||
self.id
|
||||
)
|
||||
.execute(pool)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn delete(&self, pool: &PgPool) -> Result<(), Box<dyn Error>> {
|
||||
let id = &self.id;
|
||||
crate::psql_delete!(id, pool, "articles")
|
||||
}
|
||||
}
|
||||
|
|
@ -1,61 +1,19 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
use surrealdb::{
|
||||
engine::remote::ws::{Client, Ws},
|
||||
opt::auth::Root,
|
||||
sql::Thing,
|
||||
Result, Surreal,
|
||||
};
|
||||
use sqlx::postgres::{PgPool, PgPoolOptions};
|
||||
use std::env;
|
||||
use std::error::Error;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct Article {
|
||||
title: String,
|
||||
content: String,
|
||||
previous: Option<String>,
|
||||
next: Option<String>,
|
||||
date: Option<String>,
|
||||
}
|
||||
pub mod data;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct ArticleMetadata {
|
||||
pub id: Thing,
|
||||
title: String,
|
||||
previous: Option<String>,
|
||||
next: Option<String>,
|
||||
date: Option<String>,
|
||||
}
|
||||
pub async fn establish_connection() -> Result<PgPool, Box<dyn Error>> {
|
||||
let db_url = match env::var("DATABASE_URL") {
|
||||
Ok(s) => s,
|
||||
Err(_) => panic!("No database environment variable set"),
|
||||
};
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct Record {
|
||||
#[allow(dead_code)]
|
||||
id: Thing,
|
||||
}
|
||||
|
||||
pub async fn connect() -> Result<Surreal<Client>> {
|
||||
// Connect to the server
|
||||
let db = Surreal::new::<Ws>("127.0.0.1:8080").await?;
|
||||
|
||||
// Signin as a namespace, database, or root user
|
||||
db.signin(Root {
|
||||
username: "root",
|
||||
password: "root",
|
||||
})
|
||||
.await?;
|
||||
|
||||
// Select a specific namespace / database
|
||||
db.use_ns("test").use_db("test").await?;
|
||||
Ok(db)
|
||||
}
|
||||
|
||||
pub async fn get_all_articles(connection: &Surreal<Client>) -> Result<Vec<ArticleMetadata>> {
|
||||
let mut response = connection
|
||||
.query("SELECT id, title, previous, next, date FROM article ORDER BY date DESC")
|
||||
let pool = PgPoolOptions::new()
|
||||
.max_connections(5)
|
||||
.connect(&db_url)
|
||||
.await?;
|
||||
let articles: Vec<ArticleMetadata> = response.take(0)?;
|
||||
Ok(articles)
|
||||
}
|
||||
|
||||
pub async fn get_article(connection: &Surreal<Client>, id: String) -> Result<()> {
|
||||
let response: Vec<Article> = connection.select(("article", id)).await?.expect("Hopefully something else has not gone terribly wrong");
|
||||
dbg!(response);
|
||||
Ok(())
|
||||
Ok(pool)
|
||||
}
|
||||
|
|
|
|||
465
src/html/blog.rs
465
src/html/blog.rs
|
|
@ -1,437 +1,52 @@
|
|||
use crate::database::data::Article;
|
||||
use crate::html;
|
||||
use askama::Template;
|
||||
use axum::response::IntoResponse;
|
||||
use axum::{routing::get, Router};
|
||||
use axum::{
|
||||
extract::{Extension, Path},
|
||||
response::IntoResponse,
|
||||
routing::{get, Router},
|
||||
};
|
||||
use core::panic;
|
||||
use std::collections::HashMap;
|
||||
|
||||
use super::root::AppState;
|
||||
|
||||
pub fn get_router() -> Router {
|
||||
Router::new()
|
||||
.route("/", get(html::root::blog))
|
||||
.route("/fsdi", get(fsdi))
|
||||
.route("/independence", get(independence))
|
||||
.route("/pwi", get(pwi))
|
||||
.route("/gs", get(gs))
|
||||
.route("/srw", get(srw))
|
||||
.route("/tw", get(tw))
|
||||
.route("/lt", get(lt))
|
||||
.route("/writing", get(writing))
|
||||
.route("/lim", get(lim))
|
||||
.route("/ile", get(ile))
|
||||
.route("/dmwi", get(dmwi))
|
||||
.route("/wgl", get(wgl))
|
||||
.route("/dm", get(dm))
|
||||
.route("/llf", get(llf))
|
||||
.route("/habits", get(habits))
|
||||
.route("/deepwork", get(deepwork))
|
||||
.route("/ewt", get(ewt))
|
||||
.route("/afh", get(afh))
|
||||
.route("/mfn", get(mfn))
|
||||
.route("/sdl", get(sdl))
|
||||
.route("/foundation", get(foundation))
|
||||
.route("/mop", get(mop))
|
||||
.route("/onreading", get(onreading))
|
||||
.route("/thestart", get(thestart))
|
||||
.route("/:article", get(article))
|
||||
}
|
||||
|
||||
async fn fsdi() -> impl IntoResponse {
|
||||
let template = FirstStepsToDigitalIndependenceTemplate {
|
||||
#[derive(Template)]
|
||||
#[template(path = "Article.html")]
|
||||
struct ArticleTemplate {
|
||||
active_navbar: &'static str,
|
||||
next: String,
|
||||
previous: String,
|
||||
content: String,
|
||||
}
|
||||
|
||||
async fn article(
|
||||
state: Extension<AppState>,
|
||||
Path(params): Path<HashMap<String, String>>,
|
||||
) -> impl IntoResponse {
|
||||
let db_pool = &state.db;
|
||||
let article_id: &String = params.get("article").unwrap();
|
||||
let article: Article = match Article::read_by_reference(db_pool, article_id).await {
|
||||
Ok(a) => *a,
|
||||
Err(_) => panic!("Not an article at all!!!!"),
|
||||
};
|
||||
let template = ArticleTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "independence",
|
||||
content: article.content,
|
||||
previous: match article.previous {
|
||||
Some(a) => a,
|
||||
None => "".to_string(),
|
||||
},
|
||||
next: match article.next {
|
||||
Some(a) => a,
|
||||
None => "".to_string(),
|
||||
},
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/FirstStepsToDigitalIndependence.html")]
|
||||
struct FirstStepsToDigitalIndependenceTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
}
|
||||
|
||||
async fn independence() -> impl IntoResponse {
|
||||
let template = IndependenceTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "pwi",
|
||||
next: "fsdi",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/Independence.html")]
|
||||
struct IndependenceTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn pwi() -> impl IntoResponse {
|
||||
let template = PetsWorryAndInformationTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "gs",
|
||||
next: "independence",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/PetsWorryAndInformation.html")]
|
||||
struct PetsWorryAndInformationTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn gs() -> impl IntoResponse {
|
||||
let template = GraduateSchoolTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "srw",
|
||||
next: "pwi",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/GraduateSchool.html")]
|
||||
struct GraduateSchoolTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn srw() -> impl IntoResponse {
|
||||
let template = SpeedReadingWorkbookTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "tw",
|
||||
next: "gs",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/SpeedReadingWorkbook.html")]
|
||||
struct SpeedReadingWorkbookTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn tw() -> impl IntoResponse {
|
||||
let template = ThisWebsiteTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "lt",
|
||||
next: "srw",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/ThisWebsite.html")]
|
||||
struct ThisWebsiteTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn lt() -> impl IntoResponse {
|
||||
let template = LevelingToolTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "writing",
|
||||
next: "tw",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/LevelingTool.html")]
|
||||
struct LevelingToolTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn writing() -> impl IntoResponse {
|
||||
let template = WritingTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "lim",
|
||||
next: "lt",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/Writing.html")]
|
||||
struct WritingTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn lim() -> impl IntoResponse {
|
||||
let template = LessIsMoreTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "ile",
|
||||
next: "writing",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/LessIsMore.html")]
|
||||
struct LessIsMoreTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn ile() -> impl IntoResponse {
|
||||
let template = ImmersiveLearningAndExperimentationTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "dmwi",
|
||||
next: "lim",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/ImmersiveLearningAndExperimentation.html")]
|
||||
struct ImmersiveLearningAndExperimentationTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn dmwi() -> impl IntoResponse {
|
||||
let template = DoingMoreWithMyIdeasTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "wgl",
|
||||
next: "ile",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/DoingMoreWithMyIdeas.html")]
|
||||
struct DoingMoreWithMyIdeasTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn wgl() -> impl IntoResponse {
|
||||
let template = WhyAndGettingLostTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "dm",
|
||||
next: "dmwi",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/WhyAndGettingLost.html")]
|
||||
struct WhyAndGettingLostTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn dm() -> impl IntoResponse {
|
||||
let template = DisciplineAndMotivationTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "llf",
|
||||
next: "wgl",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/DisciplineAndMotivation.html")]
|
||||
struct DisciplineAndMotivationTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn llf() -> impl IntoResponse {
|
||||
let template = LookingLikeAFoolTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "habits",
|
||||
next: "dm",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/LookingLikeAFool.html")]
|
||||
struct LookingLikeAFoolTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn habits() -> impl IntoResponse {
|
||||
let template = HabitsTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "deepwork",
|
||||
next: "llf",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/Habits.html")]
|
||||
struct HabitsTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn deepwork() -> impl IntoResponse {
|
||||
let template = DeepWorkTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "ewt",
|
||||
next: "habits",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/DeepWork.html")]
|
||||
struct DeepWorkTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn ewt() -> impl IntoResponse {
|
||||
let template = ExercisingWithoutTimeTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "afh",
|
||||
next: "deepwork",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/ExercisingWithoutTime.html")]
|
||||
struct ExercisingWithoutTimeTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn afh() -> impl IntoResponse {
|
||||
let template = AskingForHelpTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "mfn",
|
||||
next: "ewt",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/AskingForHelp.html")]
|
||||
struct AskingForHelpTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn mfn() -> impl IntoResponse {
|
||||
let template = AMindForNumbersTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "sdl",
|
||||
next: "afh",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/AMindForNumbers.html")]
|
||||
struct AMindForNumbersTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn sdl() -> impl IntoResponse {
|
||||
let template = SelfDirectedLearningTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "foundation",
|
||||
next: "mfn",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/SelfDirectedLearning.html")]
|
||||
struct SelfDirectedLearningTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn foundation() -> impl IntoResponse {
|
||||
let template = TheFoundationTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "mop",
|
||||
next: "sdl",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/TheFoundation.html")]
|
||||
struct TheFoundationTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn mop() -> impl IntoResponse {
|
||||
let template = TheMythOfPerfectionTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "onreading",
|
||||
next: "foundation",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/TheMythOfPerfection.html")]
|
||||
struct TheMythOfPerfectionTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn onreading() -> impl IntoResponse {
|
||||
let template = OnReadingTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
previous: "thestart",
|
||||
next: "mop",
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/OnReading.html")]
|
||||
struct OnReadingTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
previous: &'a str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
||||
async fn thestart() -> impl IntoResponse {
|
||||
let template = TheStartTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
next: "onreading"
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "blog/TheStart.html")]
|
||||
struct TheStartTemplate<'a> {
|
||||
active_navbar: &'static str,
|
||||
next: &'a str,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,29 @@
|
|||
use crate::html;
|
||||
use crate::html::{api, blog, projects, HtmlTemplate, NavBar};
|
||||
use askama::Template;
|
||||
use axum::{
|
||||
response::{IntoResponse, Redirect},
|
||||
routing::{get, Router},
|
||||
Extension,
|
||||
};
|
||||
use sqlx::PgPool;
|
||||
use tower_http::services::ServeDir;
|
||||
|
||||
pub fn get_router() -> Router {
|
||||
#[derive(Clone)]
|
||||
pub struct AppState {
|
||||
pub db: PgPool,
|
||||
}
|
||||
|
||||
pub fn get_router(pool: PgPool) -> Router {
|
||||
let assets_path = std::env::current_dir().unwrap();
|
||||
let state = AppState { db: pool };
|
||||
Router::new()
|
||||
.nest("/api", html::api::get_router())
|
||||
.nest("/blog", html::blog::get_router())
|
||||
.nest("/projects", html::projects::get_router())
|
||||
.nest("/api", api::get_router())
|
||||
.nest("/blog", blog::get_router())
|
||||
.nest("/projects", projects::get_router())
|
||||
.nest_service(
|
||||
"/assets",
|
||||
ServeDir::new(format!("{}/assets", assets_path.to_str().unwrap())),
|
||||
)
|
||||
.route("/", get(home))
|
||||
.route("/now", get(now))
|
||||
.route("/about", get(about))
|
||||
|
|
@ -20,17 +32,14 @@ pub fn get_router() -> Router {
|
|||
"/robots.txt",
|
||||
get(|| async { Redirect::permanent("/assets/robots.txt") }),
|
||||
)
|
||||
.nest_service(
|
||||
"/assets",
|
||||
ServeDir::new(format!("{}/assets", assets_path.to_str().unwrap())),
|
||||
)
|
||||
.layer(Extension(state))
|
||||
}
|
||||
|
||||
async fn home() -> impl IntoResponse {
|
||||
let template = HomeTemplate {
|
||||
active_navbar: html::NavBar::HOME,
|
||||
active_navbar: NavBar::HOME,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
@ -41,9 +50,9 @@ struct HomeTemplate {
|
|||
|
||||
pub async fn blog() -> impl IntoResponse {
|
||||
let template = BlogTemplate {
|
||||
active_navbar: html::NavBar::BLOG,
|
||||
active_navbar: NavBar::BLOG,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
@ -54,9 +63,9 @@ struct BlogTemplate {
|
|||
|
||||
pub async fn projects() -> impl IntoResponse {
|
||||
let template = ProjectsTemplate {
|
||||
active_navbar: html::NavBar::PROJECTS,
|
||||
active_navbar: NavBar::PROJECTS,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
@ -67,9 +76,9 @@ struct ProjectsTemplate {
|
|||
|
||||
async fn now() -> impl IntoResponse {
|
||||
let template = NowTemplate {
|
||||
active_navbar: html::NavBar::NOW,
|
||||
active_navbar: NavBar::NOW,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
@ -80,9 +89,9 @@ struct NowTemplate {
|
|||
|
||||
async fn about() -> impl IntoResponse {
|
||||
let template = AboutTemplate {
|
||||
active_navbar: html::NavBar::ABOUT,
|
||||
active_navbar: NavBar::ABOUT,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
@ -93,9 +102,9 @@ struct AboutTemplate {
|
|||
|
||||
async fn contact() -> impl IntoResponse {
|
||||
let template = ContactTemplate {
|
||||
active_navbar: html::NavBar::CONTACT,
|
||||
active_navbar: NavBar::CONTACT,
|
||||
};
|
||||
html::HtmlTemplate(template)
|
||||
HtmlTemplate(template)
|
||||
}
|
||||
|
||||
#[derive(Template)]
|
||||
|
|
|
|||
25
src/lib.rs
25
src/lib.rs
|
|
@ -1,15 +1,15 @@
|
|||
use anyhow::Context;
|
||||
use surrealdb::{engine::remote::ws::Client, Surreal};
|
||||
use sqlx::PgPool;
|
||||
use tracing::info;
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
mod html;
|
||||
mod database;
|
||||
mod html;
|
||||
mod macros;
|
||||
|
||||
pub async fn run() -> anyhow::Result<()> {
|
||||
let connection: Surreal<Client> = database::connect().await?;
|
||||
let mut articles: Vec<database::ArticleMetadata> = database::get_all_articles(&connection).await?;
|
||||
database::get_article(&connection, articles.pop().unwrap().id.id.to_string()).await?;
|
||||
|
||||
pub async fn run() -> std::io::Result<()> {
|
||||
let pool: PgPool = match database::establish_connection().await {
|
||||
Ok(p) => p,
|
||||
Err(_) => panic!("error connecting to database"),
|
||||
};
|
||||
tracing_subscriber::registry()
|
||||
.with(
|
||||
tracing_subscriber::EnvFilter::try_from_default_env()
|
||||
|
|
@ -20,11 +20,14 @@ pub async fn run() -> anyhow::Result<()> {
|
|||
info!("initializing router...");
|
||||
let port = 21212_u16;
|
||||
let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));
|
||||
let router = html::root::get_router();
|
||||
let router = html::root::get_router(pool);
|
||||
info!("router initialized, now listening on port {}", port);
|
||||
axum::Server::bind(&addr)
|
||||
match axum::Server::bind(&addr)
|
||||
.serve(router.into_make_service())
|
||||
.await
|
||||
.context("error while starting server")?;
|
||||
{
|
||||
Ok(p) => p,
|
||||
Err(_) => panic!("error starting webserver"),
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
40
src/macros.rs
Normal file
40
src/macros.rs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#[macro_export]
|
||||
macro_rules! psql_read {
|
||||
( $Self:ty, $pool:ident, $id:ident, $table_name:expr ) => {{
|
||||
let result = sqlx::query_as!(
|
||||
$Self,
|
||||
"SELECT * FROM " + $table_name + " WHERE id = $1",
|
||||
$id
|
||||
)
|
||||
.fetch_one($pool)
|
||||
.await?;
|
||||
|
||||
Ok(Box::new(result))
|
||||
}};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! psql_read_all {
|
||||
( $Self:ty, $pool:ident, $table_name:expr ) => {{
|
||||
let mut results = sqlx::query_as!($Self, "SELECT * FROM " + $table_name + ";").fetch($pool);
|
||||
|
||||
let mut output = Vec::<Box<$Self>>::new();
|
||||
|
||||
while let Some(result) = results.try_next().await? {
|
||||
output.push(Box::new(result));
|
||||
}
|
||||
|
||||
Ok(output)
|
||||
}};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! psql_delete {
|
||||
( $id:ident, $pool:ident, $table_name:expr ) => {{
|
||||
let _result = sqlx::query!("DELETE FROM " + $table_name + " WHERE id = $1", $id)
|
||||
.execute($pool)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}};
|
||||
}
|
||||
12
templates/Article.html
Executable file
12
templates/Article.html
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
{{content|safe}}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
{%if previous != ""%}<a href={{previous}}>previous</a>{%endif%}{%if previous != "" && next != ""%} / {%endif%}{%if next != ""%}<a href={{next}}>next</a>{%endif%}
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
A Mind for Numbers
|
||||
</h2>
|
||||
<p>
|
||||
For my first look at a specific book I have decided on A Mind for Numbers by Barbara Oakley.
|
||||
Partially because it is a very good explanation of ideas found elsewhere and mostly because it is the first book on the subject I read and my most used by far.
|
||||
</p>
|
||||
<p>
|
||||
Before I dove deeply into the subject of productivity (in this case specifically learning optimization) I was given this book.
|
||||
I was still in my undergrad studying chemistry and this book helped immensely.
|
||||
It was a few years before I started down the rabbit hole I find myself in today.
|
||||
</p>
|
||||
<p>
|
||||
A Mind for Numbers specifically talks about learning math and science, however, the learning techniques help with any subject.
|
||||
There is a public perception of math and science being difficult so that people think that they are just not good at it and give up.
|
||||
</p>
|
||||
<p>
|
||||
How to study is unfortunately not taught at any point in regular schooling and students are left to just figure it out.
|
||||
This is a huge oversight and it scares me to think how many hours have been spent in futile frustration because one was never taught how to properly study.
|
||||
</p>
|
||||
<p>
|
||||
The way that most students study is moderately effective at best and, at worst, completely ineffective over the long term.
|
||||
Repeated reading and rote memorization does little to promote understanding.
|
||||
Cramming may help with the test the next day but the material won’t be retained for longer than that if it even makes it to the test.
|
||||
The reason that re reading material over and over is not helpful is that it continually reinforces the idea in short term memory and makes you feel like you know it.
|
||||
Stop thinking about it, and most of it will fly away.
|
||||
Learning retention takes time, dedication and perseverance.
|
||||
</p>
|
||||
<p>
|
||||
Working memory is limited to somewhere between 4 and 7 items depending on the topic and the individual.
|
||||
Understanding an idea or concept deeply reduces the strain on this relatively limited resource.
|
||||
Unfortunately the times when we most feel like giving up entirely are often on the edge of the greatest shift in understanding.
|
||||
Learning is not a linear process, it can be characterized more like steps with rapid leaps in understanding and periods of seeming stagnation.
|
||||
Sometimes new information we are taking in requires our brain to restructure our understanding of the world creating the feeling of hitting a wall when trying to learn new information.
|
||||
Once this reorganization is complete we make that jump in understanding.
|
||||
‘Chunking’ occurs when ideas coalesce together into a single concept.
|
||||
You have to understand the relationship between ideas to chunk them together.
|
||||
This is why just memorizing information won’t lead to chunks and makes recall difficult.
|
||||
With a chunk you no longer have to remember each idea individually, experts can’t hold more in their working memory at a time but appear to due to the library of large and complex chunks they have built up over time.
|
||||
They work with the concepts as a whole rather than individual ideas.
|
||||
</p>
|
||||
<p>
|
||||
The brain has two modes of thinking, often referred to as focussed and diffuse.
|
||||
Focussed thinking is when we direct our attention at an idea.
|
||||
It gets the idea into our working memory in order to solve problems, however it limits our ability to connect various ideas.
|
||||
This is where diffuse mode comes in.
|
||||
When we are not directly focussing on anything our brain will keep working on the problem outside of our awareness.
|
||||
Without the laser-like focus our brain draws on knowledge from all sorts of areas and tests out the fit with other ideas, forming relationships and eventually chunks.
|
||||
This helps link our knowledge together, solving the problem many of us face when we think harder and harder, staying stuck on the same solution that is not working.
|
||||
Alternating between these two modes of thinking is the key to understanding.
|
||||
</p>
|
||||
<p>
|
||||
When you are studying or working on a problem and you get stuck; take a break.
|
||||
What you do during your break is important.
|
||||
Stick to activities that don’t grab your attention and pull you into focussed thinking on another subject.
|
||||
Go for a walk, hit the gym, play with a dog or anything else that does not suck in your attention.
|
||||
Things like video games or the internet will pull your attention away from the problem but focusses your thinking and will not let you reach the diffuse state you need.
|
||||
The break should be long enough that you are no longer actively thinking about the problem, usually a couple hours.
|
||||
When you come back to it you will often find that you leap ahead in your progress and understand the concept more deeply.
|
||||
</p>
|
||||
<p>
|
||||
Long term memory is reinforced by repeatedly recalling information.
|
||||
This learning tool is ‘spaced repetition’.
|
||||
You have to wait long enough for it to move from your working memory, then come back to it the next day and try to remember it without looking at your text.
|
||||
Only use the text to confirm if you are right and correct if you are wrong.
|
||||
When first learning a new subject you want to revisit it daily, then space out the repetition more and more.
|
||||
In order to keep the new information in your long term memory you need to revisit it periodically to reinforce the memory.
|
||||
As the connections get stronger you need to revisit it less and less.
|
||||
</p>
|
||||
<p>
|
||||
‘Interleaving’ is a tool of learning that involves alternating between two different but somewhat related topics in your studying.
|
||||
This is opposed to doing one thing over and over until you feel that you get it.
|
||||
Interleaving helps with memory because each time you move back to a topic you have to pull all the relevant information from your long term memory back into your working memory.
|
||||
It works like spaced repetition explained above but within a single study session.
|
||||
The new topic helps get the old one out of your working memory in less time.
|
||||
This helps understanding by increasing your exposure to different types of problems.
|
||||
Understanding learning techniques allows you to know when to pull a particular tool out of your toolbox, and how they can fit together.
|
||||
</p>
|
||||
<p>
|
||||
A good test to see if you understand a subject (and a great tool for studying) to explain it to someone with little to no background in the field.
|
||||
If you can explain it in a way that they can understand you have a very good grasp of it yourself.
|
||||
</p>
|
||||
<p>
|
||||
Studying for memory and understanding requires spreading out the same amount of studying time across a much longer period so that the information can be assimilated.
|
||||
This makes procrastination the largest enemy of learning.
|
||||
Even if it is just for a short time each day you will retain more than trying to cram the night before a test.
|
||||
Periods of intense focus (without distraction) are needed to properly learn and understand anything.
|
||||
This works along with the breaks to form the connections and incorporate the new information into your understanding of the world.
|
||||
</p>
|
||||
<p>
|
||||
A Mind for Numbers also covers test taking, overcoming procrastination, why we procrastinate, the importance of sleep in learning and various memory tricks such as: visualization and the famous “memory palace” technique.
|
||||
It goes into depth on all these subjects and has very helpful diagrams and illustrations that help understanding.
|
||||
Of all the books on learning that I have read I think it is the most beginner friendly with helpful suggestions and exercises as opposed to just giving the reader the information.
|
||||
</p>
|
||||
<p>
|
||||
Books like this do their part to fix the problem of studying faced by students everywhere.
|
||||
The more that we know of and use them the better off we will all be.
|
||||
So if this sounds interesting to you take a look at the book A Mind for Numbers and save on time and frustration when learning something new.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Asking for Help
|
||||
</h2>
|
||||
<p>
|
||||
In life, it is generally advisable to focus on our strengths and do our best to avoid our weaknesses.
|
||||
Focusing on strengths gives us the greatest return for our investment both in time and effort.
|
||||
Sometimes though, there is no option but to tackle a weakness when; it can't be worked around and is greatly hindering the rest of your work.
|
||||
</p>
|
||||
<p>
|
||||
This is a difficult post for me to write.
|
||||
Like most people, I am very reluctant to admit my failures.
|
||||
It is very unpleasant to decide that enough is enough and I need to do something about it.
|
||||
</p>
|
||||
<p>
|
||||
I am extremely stubborn, that can be good, can be bad, but it is at its worst when I convince myself that I need to do everything on my own.
|
||||
I have a history of being unwilling to ask for help.
|
||||
I can remember having trouble with history in high school and having to be forced by my parents to go talk to the teacher to get caught up.
|
||||
For some reason I have always felt that having to ask for help is failure.
|
||||
I know in my head that it is not but, the feeling still remains.
|
||||
</p>
|
||||
<p>
|
||||
This has resulted in me spending extra time and effort on things that would have been significantly sped up by reaching out and getting other input.
|
||||
Honestly I think the worst case of this in terms of long term cost has been in the last few years.
|
||||
</p>
|
||||
<p>
|
||||
There were a couple of points during my undergrad in chemistry that I wanted to teach myself how to code.
|
||||
I bought a book and took a couple of runs at learning C.
|
||||
Those that program know that C is not the most beginner friendly language and that was not helped at all by the fact that I was determined to learn it myself.
|
||||
I failed twice due to the frustration of stepping back for a few weeks when school got busy and having to almost start over each time.
|
||||
I left programming until after I graduated and got back into it with python as soon as I finished.
|
||||
I wonder how much further I would have been at that point had I asked the questions I had rather than stopping.
|
||||
</p>
|
||||
<p>
|
||||
Python is much easier to work with and using a couple textbooks with projects and practice problems did give me a decent grounding and I was able to get good enough to really enjoy the process.
|
||||
As anyone who has learned a new skill will tell you there is often a period of rapid improvement followed by running into a wall.
|
||||
It took me maybe 6 months of playing around to run into that wall.
|
||||
Instead of looking for help from those with more experience I decided to pursue school again.
|
||||
This may sound like the right path to take and it is taking me where I want to go but it is both expensive and time consuming.
|
||||
</p>
|
||||
<p>
|
||||
I have nothing against school, I think it is a fantastic experience and (especially for chemistry) was needed if I wanted to work in the field.
|
||||
It also forced me to improve my work ethic.
|
||||
I would likely make the same choice again (though knowing where I want to go career wise now I might just have gone with computer science right away).
|
||||
For my current Master’s degree and the prerequisites I needed, I don’t think I did it for the right reasons.
|
||||
I had the right work ethic, I knew academia and think I had learned the lessons that could only be learned through school.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
From the beginning of taking the prerequisites to the end of my Master’s degree I will have spent 3 years and $30,000.
|
||||
This is for online school where I am mostly watching educational videos and reading class notes and textbooks.
|
||||
All things I could have done at home myself.
|
||||
What I was looking for was a little guidance to help me know what I needed to learn as opposed to just stumbling blindly.
|
||||
How else could I have gotten this guidance? I could have asked.
|
||||
|
||||
I have friends that are software developers, there are whole subreddits dedicated to helping people learn how to program.
|
||||
Some users go as far as to personally chat with and mentor those of us that are learning.
|
||||
Often with courses, I work ahead and then have to wait for more to be uploaded or for the next semester to start.
|
||||
Even if I worked no faster but filled that time with more learning and practice supported by others, I would likely be at the same point now that I will be at the end of the degree.
|
||||
</p>
|
||||
<p>
|
||||
I do wonder how much further I would be having learned the material this way instead.
|
||||
Would I have a job in the field already? What would I do with an extra $30,000 in my pocket? Within the closed environment of myself I try to do everything as efficiently as possible.
|
||||
But I ignored and have never taken advantage of the fact that being able to work with others is a force multiplier.
|
||||
</p>
|
||||
<p>
|
||||
This idea is explored extremely well in a conversation between two characters in one of my favourite fantasy books.
|
||||
In The Wise Man’s Fear two characters have a conversation.
|
||||
One is the lord of a large portion of a kingdom (think one step down from king type).
|
||||
The other is a poor boy who is acting as minstrel/assistant who has made it to that point purely by his own skill and tenacity.
|
||||
</p>
|
||||
<p>
|
||||
The conversation centers around the difference between granted and inherent power and which is the greatest of the two.
|
||||
Inherent power is within a person, things like the power of your mind or the strength of your body fall into this category.
|
||||
Inherent power can’t be taken away from you short of actual physical or mental harm but has a sharp limit.
|
||||
There is only so much one person can know, do and only so strong they can make their body.
|
||||
Granted power is the power granted to you though loyalty, cooperation, employment etc.
|
||||
It involves working with others so that the collective outcome is greater than that of any single member of the group.
|
||||
</p>
|
||||
<p>
|
||||
Obviously the minstrel, who has only relied on himself for his entire life, believes that inherent power is greater.
|
||||
It is the safer of the two because it can’t be so quickly taken away.
|
||||
If you are always fearing loss then that might make sense.
|
||||
The lord is on the other side and states that granted power is greater due to its lack of limit.
|
||||
The example he uses is that even if you were very strong, in order to be stronger he could just go and get three friends to help him.
|
||||
There is no way that one person, even being extremely strong could be stronger than four.
|
||||
</p>
|
||||
<p>
|
||||
I am not completely in one camp or another, there are obviously times when you can only rely on yourself but those are rarer and rarer these days.
|
||||
A balance of both relying on yourself and working with others is the ideal.
|
||||
</p>
|
||||
<p>
|
||||
As I stated at the beginning it often pays off the most to capitalize on your strengths and try to avoid your weaknesses.
|
||||
This is only possible when you can cooperate with others who can cover for your weaknesses with their own strengths.
|
||||
</p>
|
||||
<p>
|
||||
When working in a group setting on something that is not my own there is no sign of my aversion to ask for help.
|
||||
But for my personal challenges it comes in full force.
|
||||
In my own programming projects and learning I have not taken advantage of the fantastic community resources available online.
|
||||
However, In the past week I have: reached out, gotten help and project suggestions on my portfolio, found someone to try and do a project with cooperatively and, started to rekindle relationships with friends and acquaintances that have fallen away as I have moved around and circumstances have changed.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I am quite an introverted and solitary person.
|
||||
I have little network outside of family and a couple of friends.
|
||||
This makes finding opportunities and getting feedback much more difficult.
|
||||
Fixing this is one way of my making this year more about taking action as opposed to pure learning.
|
||||
So much of our success is dependent on others.
|
||||
The people that we know and care for, and who care for us, play such a huge role in our lives.
|
||||
This is both professionally and personally true.
|
||||
Making more friends and getting to know more people is always valuable and makes life better by being able to share it, get help and most importantly, being able to help others.
|
||||
</p>
|
||||
<p>
|
||||
I feel like this last week has upped my productivity immensely and is one of the best investments of time that I have made.
|
||||
Productivity is so often about finding the bottlenecks, the individual things that are limiting us the most, and improving them.
|
||||
System optimization for any sort of system follows this same rule.
|
||||
A chemical reaction is limited in speed by the slowest step and that is where you want to focus your efforts to speed it up.
|
||||
</p>
|
||||
<p>
|
||||
The bottleneck in my life is definitely social.
|
||||
I need to open up more and invest more time in reaching out from my few core relationships to build new ones.
|
||||
</p>
|
||||
<p>
|
||||
Your problem may be something completely different, but everyone has one.
|
||||
What is your bottleneck and how might you be able to do something about it?
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Deep Work
|
||||
</h2>
|
||||
<p>
|
||||
So often I try to do a lot of things at the same time.
|
||||
So often I try to do a lot of things at the same time. Answering emails while working, putting on a movie or show while studying, or even just bouncing rapidly between a few productive tasks. We refer to this as multitasking and feel that it makes us more productive. But what this really makes us is busy and little else.
|
||||
We refer to this as multitasking and feel that it makes us more productive.
|
||||
But what this really makes us is busy and little else.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
In his book Deep Work Cal Newport outlines the cost that this sort of thing has on knowledge work, in particular.
|
||||
Whether it is; writing a book, running experiments in a lab or any sort of cognitive task in between, the bane of actual productivity is distraction.
|
||||
Back in the days before global connectivity and the internet, it was easier to make time for for long periods of uninterrupted work.
|
||||
Writing by hand on paper is an inherently solitary activity that offers no direct path to doing anything else.
|
||||
As I am writing this I notice again and again that I am struggling not to pick up and check my phone.
|
||||
Is there an email or message that has come in since I last checked? Anything new and interesting on Reddit or Youtube? These thoughts constantly intrude and pull me out of writing.
|
||||
</p>
|
||||
<p>
|
||||
I have been having some difficulties with writing this week and that makes those urges doubly present and more difficult to ignore.
|
||||
It is often a problem that I am not aware of and results in a fairly significant cost in the long run.
|
||||
The internet is a fantastic thing but this is one area where it works against us.
|
||||
</p>
|
||||
<p>
|
||||
Deep work is a term used by Cal Newport and he defines it as: “Professional activities performed in a state of distraction-free concentration that push your cognitive capabilities to their limit.
|
||||
These efforts create new value, improve your skill, and are hard to replicate.” I am sure that everyone has experienced this feeling.
|
||||
you get really absorbed by a challenge or project and have no desire to do anything else for a long period of time.
|
||||
The idea of flow is often used to convey that particular feeling I mentioned above and while deep work will often increases the amount of time that you spend in a flow state that is not all that it is.
|
||||
Getting a stretch like this often feels somewhat like winning the lottery.
|
||||
In his book Cal outlines methods for learning this skill and applying it on a regular basis.
|
||||
</p>
|
||||
<p>
|
||||
Cal argues that as distractions become more present and shallow work takes up more and more of our working time that the ability to work deeply is becoming more and more valuable and will help you stand out professionally.
|
||||
Shallow work is non-cognitively demanding tasks, often performed while distracted.
|
||||
These efforts tend to not create much new value in the world and are easy to replicate.
|
||||
He is very clear however that the shallow work needs its time as well.
|
||||
Those tasks need to get done but they are there to support the production that comes from deep work and can’t replace it.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
At its core deep work is developing the ability to focus on a single task for an extended period of time.
|
||||
Cal Newport outlines four rules that he uses to help maximize the amount of this sort of time that he has.
|
||||
|
||||
</p>
|
||||
<h3>
|
||||
Rule 1: Work Deeply
|
||||
</h3>
|
||||
<p>
|
||||
This section covers adding routines and rituals to help minimize the willpower it takes to transition into and maintain a state of deep work.
|
||||
We can train ourselves to react in certain ways that will create a ritual that tells our mind it is time to work deeply.
|
||||
There is no one size fits all approach to this.
|
||||
you will need to develop your own ritual.
|
||||
He uses a couple questions to help figure out your routine.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Where you will work and for how long? Time limits help keep the process from feeling endless.
|
||||
Having a dedicated space you keep free of distractions will help you get into your work.
|
||||
I don’t have a dedicated office but I do have a desk (which unfortunately I also use when playing games on my computer), I try to make it tidy and put easy distractions out of arm's reach like my phone.
|
||||
Ways to deal with not having a set space come up in the later questions.
|
||||
I generally try and work for 1-2 hours at a time.
|
||||
I find that the first half hour or so is picking up steam and getting into whatever mental space I need to be in for the task at hand.
|
||||
This means that sessions of less than an hour are mostly preparation and little actual work.
|
||||
</p>
|
||||
<p>
|
||||
How will you work once you start? Set the bounds for your work so that you don’t go off topic.
|
||||
Often it is easy to stray into something not directly related to what you are trying to accomplish without it being as obvious a distraction as opening youtube or checking your phone.
|
||||
Will you let yourself use the internet? fidget toys? what books will you open?, what programs are you allowed to use?.
|
||||
Setting these rules beforehand keeps you from having to make these decisions while you work.
|
||||
As a programmer I am almost always working on my computer and often need to look up a specific syntax or function.
|
||||
As I get more proficient this will be needed less but for now I use the internet often.
|
||||
I limit myself to using google only for looking up problems that I can’t find the answer to in a textbook and don’t have any game or chat apps open while I work (when I am doing it properly).
|
||||
I do keep a fidget cube on my desk as I find the urge to grab my phone almost overwhelming at times and it is something much less distracting to grab instead though I am trying to wean myself off of that as well.
|
||||
</p>
|
||||
<p>
|
||||
How will you support your work? You need to be comfortable and ready to put in the effort that this sort of work requires.
|
||||
I take a five minute break every half hour to stretch my legs and move around a bit.
|
||||
I also like to have a cup of tea and avoid going into a work session hungry or tired.
|
||||
I also use music.
|
||||
This may seem counter intuitive, but blocking outside noises is useful.
|
||||
My work playlist is mostly the Glitch Mob.
|
||||
I find that high energy but not necessarily complex music works best especially not having vocals is key for me.
|
||||
I also only listen to them while working and therefore I have trained myself that when the Glitch Mob is playing it is time to work.
|
||||
</p>
|
||||
<h3>
|
||||
Rule 2: Embrace Boredom
|
||||
</h3>
|
||||
<p>
|
||||
You can’t avoid distractions while you are working and succumb to them everywhere else in life.
|
||||
Our mind develops habits and if we are going to break them we have to work at it.
|
||||
Getting used to being bored at times is practice at breaking the habit of constant distraction outside of work time.
|
||||
Schedule the time that you are allowed to take advantage of things like social media that have a large temptation to distract.
|
||||
You can still enjoy them without constantly switching activities and being distracted.
|
||||
Resisting impulses is in and of itself an exercise in concentration.
|
||||
This lets you focus completely on developing that skill by practicing and accepting being bored without also trying to get meaningful work done at the same time.
|
||||
Scheduling internet use is helpful for this.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Boredom is something that I struggle with a lot.
|
||||
Reading, listening to a podcast, or just sitting and thinking is often interrupted by grabbing my phone or some other distraction.
|
||||
Walking outside with devices in my backpack as opposed to my pockets is helpful and having something else to grab from my pocket instead of my phone also helps.
|
||||
It is something that I continue to practice.
|
||||
</p>
|
||||
<h3>
|
||||
Rule 3: Quit Social Media
|
||||
</h3>
|
||||
<p>
|
||||
Social media is often the vehicle for a lot of distraction.
|
||||
This does not mean that there is no use for social media at all.
|
||||
It is a great tool and can be used to great effect but it also comes with a cost.
|
||||
Carefully analysing what platforms you use, why you use them, and if the benefits outweigh the costs is something that we don’t often do.
|
||||
The different platforms are all different tools.
|
||||
Just like every job does not need a table saw, not every task needs specific social media or any at all.
|
||||
Find the ones that concretely help what you are trying to do and avoid the rest.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I use Reddit but try to limit myself to my subscribed subreddits that contain targeted information and conversations for me.
|
||||
Linkedin is great for professional networking.
|
||||
I feel that the benefits from these two outweigh the cost, though there are times that I will take a break from them when they are starting to pull at my attention.
|
||||
When in doubt, take a break for a few weeks, to see if your life is improved or lessened by not having that particular platform.
|
||||
</p>
|
||||
<h3>
|
||||
Rule 4: Drain the Shallows
|
||||
</h3>
|
||||
<p>
|
||||
This is where managing the shallow work comes in.
|
||||
When it dominates a lot of work time it costs a lot in productivity.
|
||||
Try to batch shallow work together so that it is not a constant pull on your attention.
|
||||
Cut out those tasks that are not actually providing a benefit.
|
||||
Check your email only at set times of the day and make sure that your replies preemptively answer some possible questions to reduce the length of email chains.
|
||||
Make yourself a little harder to reach so that only people who actually need to contact you take the time to get through.
|
||||
</p>
|
||||
<p>
|
||||
I check email twice a day, once in the morning before I get to work, and once in the afternoon before I finish up for the day.
|
||||
This early in my career I think it is valuable to be accessible.
|
||||
I need to build a network and gain contacts and so do not make myself harder to contact but that is a conscious choice.
|
||||
I do take the time to try and craft emails and text messages to minimize back and forth and save time as a whole.
|
||||
</p>
|
||||
<p>
|
||||
I can see the benefits Deep Work offers but I have certainly not mastered it yet.
|
||||
I find that I have periods where I feel that I am doing really well and then fall off the wagon for a few days or even a week.
|
||||
It does get easier the more that you do it
|
||||
</p>
|
||||
<p>
|
||||
Deep Work is a very useful book and one of the ones that I return to the most often.
|
||||
It is a skill that is very rare today and is well worth developing.
|
||||
I certainly advise picking up a copy and giving it a read if you want to give yourself an edge in productivity.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Discipline and Motivation
|
||||
</h2>
|
||||
<p>
|
||||
Motivation is fantastic.
|
||||
I can rarely get as much done as when I am fully engaged and want nothing more than to keep chugging.
|
||||
When I get excited, doing nothing just does not seem like an option.
|
||||
If you get hit with that feeling take full advantage of it.
|
||||
The problem is that days like that are rare.
|
||||
It depends on so many things and some luck.That means that relying on motivation for consistent productivity is pretty much relying on chance.
|
||||
I do my best to think of times like that as a bonus.
|
||||
Something extra that bumps me a little further forward then I had planned.
|
||||
</p>
|
||||
<p>
|
||||
I picked this topic this week because I am having trouble writing.
|
||||
There is a fair bit going on in my life at the moment and so it is more work than usual to sit down and write.
|
||||
This is definitely not my best post, I am pretty stuck, but just going through the motions is still worth something.
|
||||
</p>
|
||||
<p>
|
||||
So it might be short this week but it is important to know that everyone runs into blocks and has a rough time.
|
||||
We might not be able to do everything at our best.
|
||||
It is very important to still do as much as we can.
|
||||
</p>
|
||||
<p>
|
||||
Discipline is motivation’s much less fun but much more reliable partner, it is also what we need to turn to when motivation is lacking.
|
||||
Things need to be done every day, and it is surprising how much we can get done by doing a little at a time.
|
||||
</p>
|
||||
<p>
|
||||
Jocko Willink has a good guidebook that is characteristically titled Discipline Equals Freedom.
|
||||
It is a collection of thoughts on the subject and includes some actions to take to use as a baseline.
|
||||
It is true that the more disciplined you are in an area the more freedom you often have in that same area.
|
||||
Disciplined spending plans result in financial freedom, disciplined exercise routines result in physical freedom etc.
|
||||
It is also very true that even when we are feeling off it is important to try anyway.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Now that I am getting into writing this is flowing much more easily.
|
||||
Often getting started is the hardest part when I am not feeling it.
|
||||
It reminds me a lot of the times when I was younger and did not want to go to gymnastics at times.
|
||||
My parents would make me go and start the class.
|
||||
It was never the case that once I was a half hour into the class that I still wanted to go home.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
More than any other thing, I have found that, discipline is needed for habit formation.
|
||||
Over time the repetition builds (or breaks) habits.
|
||||
No matter how excited you are to start something there are always going to be bumps.
|
||||
Times when you don’t want, or can’t manage to follow through.
|
||||
Habit formation is dependent on regular repetition more than anything else.
|
||||
When designing your new habit you want to make it as easy as possible to minimize the amount of discipline you need.
|
||||
It is impossible to completely eliminate it though.
|
||||
</p>
|
||||
<p>
|
||||
Discipline is never easy, but the more you use it the easier it gets.
|
||||
It makes life easier in the long run.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 11h 34m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Doing more with my Ideas
|
||||
</h2>
|
||||
<p>
|
||||
It seems that a lot of very deep thought has come from conversations lately.
|
||||
Last week was “why” and this week was a less philosophical and more practical question.
|
||||
</p>
|
||||
<p>
|
||||
Walks are amazing.
|
||||
When I am alone they are amazing for thinking, and with company they are a perfect time to have a great conversation.
|
||||
I don’t have my phone or any other distractions out while walking (except for music) and that gets put away when I have company.
|
||||
</p>
|
||||
<p>
|
||||
So the other day on a walk with my girlfriend we were talking and she asked what the purpose of the idea generation that I do is.
|
||||
That is: I try to come up with 10 ideas a day.
|
||||
The question was not really about the thought exercise itself, but what I want to do with that skill I am training.
|
||||
My initial answer was that I wanted to be good at generating ideas of course, but that was not enough.
|
||||
“Why do you want to be good at generating ideas? What do you want to do with those ideas?”.
|
||||
I outlined some very vague things such as starting a business, self employment, making interesting tools, writing etc.
|
||||
Then she asked why I was not doing anything with the hundreds of ideas that I had already come up with over the past few months.
|
||||
Even if most are bad; some must be useful.
|
||||
I couldn’t answer that.
|
||||
</p>
|
||||
<p>
|
||||
I realized that I had been overlooking the important fact that there could be a lot of value in the mess of ideas I had already come up with.
|
||||
I was waiting for an idea to feel just right before going after it while forgetting that that sort of expectation is unreasonable.
|
||||
I was only looking at my gut reaction to the ideas without delving any deeper to find the value that was not directly apparent.
|
||||
</p>
|
||||
<p>
|
||||
This is one reason why it is vitally important to talk with others often.
|
||||
Not only do they provide a differing perspective but the act of expressing an idea will refine it.
|
||||
I have to think of an idea much more clearly when I explain it to someone else than if it is just floating around in my head.
|
||||
</p>
|
||||
<p>
|
||||
I came to the conclusion that I was losing out on: the value of the ideas themselves and on building other skills that can come from pursuing them further.
|
||||
So I have spent the last week working on a system to help with this.
|
||||
I don’t know exactly how well this experiment will turn out.
|
||||
</p>
|
||||
<p>
|
||||
My daily practice (which I have been slacking on) is still generating 10 ideas.
|
||||
The system consists of a program that will provide sequential filters so I can take each idea as far as it merits and practice the further steps to implementation.
|
||||
At each step if I find a roadblock I can’t get through, I can drop the idea there.
|
||||
The program takes care of organization, file creation, and access.
|
||||
This makes working on the ideas as easy as possible.
|
||||
</p>
|
||||
<p>
|
||||
The system involves four steps after the generation of the idea.
|
||||
</p>
|
||||
<p>
|
||||
Quick look.
|
||||
Does the idea have merit and is it interesting to me?
|
||||
</p>
|
||||
<p>
|
||||
Generate a coherent vision of what this idea might look like if it was implemented, what the final stage would actually do.
|
||||
I don’t need specifics here but just articulate what the outcome would be without worrying about how to get there yet.
|
||||
</p>
|
||||
<p>
|
||||
Develop an actual plan for it.
|
||||
Is it possible? This is the step where I will have to start researching specific methods of implementation and try to coherently plan how it might come about.
|
||||
</p>
|
||||
<p>
|
||||
Lastly the experimentation step.
|
||||
If an idea makes this far it is something that I can see implementing and am fairly interested in.
|
||||
Here I will develop small scale experiments to actually test the implementation.
|
||||
This is the first point where the idea will have to actually come in contact with the outside world to test its viability.
|
||||
</p>
|
||||
<p>
|
||||
If the experiments are promising then I can go further.
|
||||
There is no restriction on what the ideas might be.
|
||||
Business ideas, home projects, role playing games, anything is fair game.
|
||||
I am hoping that actually pursuing them will result in a bunch of new and interesting activities and projects.
|
||||
</p>
|
||||
<p>
|
||||
Yesterday I loaded all of the ideas from the past months into the program and started filtering through the first step.
|
||||
It is quite enjoyable to revisit some of the horrendous ones I came up with.
|
||||
In total there are a little over 1000.
|
||||
</p>
|
||||
<p>
|
||||
I plan to work through the steps as I have time.
|
||||
My goal is to spend a little time each day working on it.
|
||||
I have several other daily practices I am trying to implement so it is going to be wherever I can fit it in at the moment.
|
||||
</p>
|
||||
<p>
|
||||
Most of my daily practices have been suggested through books, podcasts etc so this is one of the first experiments that is my own.
|
||||
I am looking forward to seeing how it turns out over the next few months.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 16h 30m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Exercising with Little Time
|
||||
</h2>
|
||||
<p>
|
||||
I feel like a lot of my posts are going to mention Tim Ferriss somewhere.
|
||||
He has led me to most of the people that I have studied and talk about.
|
||||
I always think it is good to remember, not only what we have learned but, how we got there.
|
||||
So as he is coming up again today I felt like this might be a good time to give this salute to him.
|
||||
</p>
|
||||
<p>
|
||||
When it comes to exercise, the most common issue that I hear is that it takes a lot of time.
|
||||
It certainly can and for a large portion of my life it did.
|
||||
In my teens I was a competitive gymnast.
|
||||
It did not seem at all unusual for me to train for 20+ hours in a week.
|
||||
Once I stopped competing I sort of kept that up.
|
||||
Martial arts class every day, plus adult recreation at the gymnastics centre 2-3 days a week.
|
||||
Sprinkle in some parkour in the evenings and rock climbing here and there.
|
||||
I never gave much thought to the fact that a solid chunk of every day was spent on something athletic.
|
||||
</p>
|
||||
<p>
|
||||
It resulted in me being in pretty good shape and it works.
|
||||
If you take care not to overtrain then your body is used to it and there is not really much downside physically.
|
||||
The problem that I ran into in my last few years of university was time.
|
||||
I needed more time for school, then I needed more time for work.
|
||||
Working a full day and training so much left me with no time to learn new things or pursue new skills.
|
||||
This is the problem that a lot of us face today, with more and more demands on our time we often take the all or nothing route for exercise.
|
||||
</p>
|
||||
<p>
|
||||
I have not trained at a sport in a few years.
|
||||
I would love to get back into it but again time rears its ugly head.
|
||||
Classes are at specific times on specific days and it is not always possible to work that into my schedule.
|
||||
So I have focussed on general conditioning.
|
||||
</p>
|
||||
<p>
|
||||
General conditioning is the act of improving your body without necessarily having a particular goal or sport in mind.
|
||||
It gives you a baseline on which to add skills and sport specific conditioning.
|
||||
It is what a lot of “going to the gym” is composed of.
|
||||
Lifting weights, calisthenics, running.
|
||||
That is unless your sport falls into that category.
|
||||
</p>
|
||||
<p>
|
||||
I had been so used to training with a lot of specificity that spending hours a day on exercise seemed normal.
|
||||
My first forays into minimal effective training came from trying out the regimens in Tim Ferriss’ 4 hour body.
|
||||
Like all his books, it is a fantastic amalgamation of tips and tricks from all sorts of experts.
|
||||
I did have one problem with it and that was the fact that it had very infrequent workouts (for me).
|
||||
I use training in part to help set the tone for my day and as an integral part of my morning routine.
|
||||
Training 3 times a week just didn’t feel right mentally even if it was working perfectly physically.
|
||||
If you are trying to cut down as much as possible on time and want the best bang for your buck as far as physical benefit, then I certainly suggest taking a look at his book and giving it a try.
|
||||
</p>
|
||||
<p>
|
||||
It was through a mention in his book and a guest appearance on his podcast that I found Pavel Tsatsouline and his work.
|
||||
I have read a fair few of the books he has written and have been following his programs for a few years now and it is exactly what I was looking for.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Pavel is a strong advocate of minimalism in training.
|
||||
While he has had no shortage of training high level athletes, he has also spent a considerable amount of time training special forces and other military personnel.
|
||||
His “Grease the Groove” methodology is I think the perfect system for daily training that leaves you more energized and ready for the day.
|
||||
The idea is quite simple, if training wipes you out; how are you going to be ready for anything else you need to tackle that day? The point of training is to slowly and methodically build up your fitness without ever pushing so hard that you can’t function.
|
||||
A controlled, and intelligent practice daily is much better in the long term then a few large body destroying workouts and fits perfectly with using it as a part of a daily routine.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I love his books.
|
||||
Some of his books cover only a few exercises but go deep into the science behind their choice and the programming that goes along with them.
|
||||
If you don’t like the long explanations then you can generally get the exercises and programming in a couple of chapters but I like understanding why.
|
||||
He spends a lot of time on progressions and technique for the few exercises in each book and then more time explaining the theory behind it.
|
||||
Most of his practices involve only a handful of exercises and some as few as one or two (yes he has a full practice consisting of a single exercise).
|
||||
This keeps the length of training sessions short and allows them to comfortably fit into even a busy schedule.
|
||||
</p>
|
||||
<p>
|
||||
I think one of the most useful books for beginners is a collaboration between Pavel and Dan John (another strength coach) called Easy Strength.
|
||||
They focus on general conditioning but also discuss the broad types of conditioning that different sports need and then go into implementation and exercises.
|
||||
The general framework of 5 movements to hit in a training session for their 40 day training plan has been extremely helpful for me.
|
||||
The categories being: a large posterior chain movement, upper body push, upper body pull, full body explosive move and a core exercise.
|
||||
If you want to start and have access to a gym (you will need barbells), I advise taking a look at this fantastic book.
|
||||
</p>
|
||||
<p>
|
||||
It is only in the last 6 months that I have had regular access to a gym and have been implementing the contents of Easy Strength.
|
||||
Before that I had to make do with what I could have at home.
|
||||
Kettlebells are a fantastically versatile piece of equipment and what I would suggest if you can only have a single piece of equipment other than space.
|
||||
The books that I use the most regularly however are: Kettlebell Simple and Sinister (KSS), The Naked Warrior (NW), and Relax into Stretch (RS).
|
||||
</p>
|
||||
<p>
|
||||
KSS is a simple 2 exercise program along with a warmup.The exercises are kettlebell swings and turkish get ups.
|
||||
I still make use of that program almost everyday.
|
||||
It takes about a half hour from start to finish.
|
||||
The book has very in-depth progressions to follow if you are not familiar with the exercises and a system to increase the weight as you get stronger.
|
||||
It is the most compact strength workout I have tried and is very effective.
|
||||
You need a single kettlebell and that is it.
|
||||
If you master this, then his book The Quick and the Dead is a great follow up but I am still working towards it.
|
||||
</p>
|
||||
<p>
|
||||
NW is a book about body weight training and is also only two exercises.
|
||||
It is hard to build strength beyond a certain point using only body weight.
|
||||
Pavel chooses the pistol squat and one arm pushup to counteract this slightly.
|
||||
They are exercises that take advantage of worse leverage and force one limb to lift your entire body weight.
|
||||
The book focuses a lot on technique so that these exercises require the use of your entire body.
|
||||
He has good progressions that make the moves easier without requiring other exercises as a lead up.
|
||||
Transitioning from one exercise to a harder one can be difficult, the technique is different and often is a large jump in strength required.
|
||||
I find that his slow progression of a single exercise allows finer control over the difficulty.
|
||||
This book is unique in my experience in that he does not ask you to set aside any specific time to train.
|
||||
The exercises are meant to be done throughout the day as you find time and only after you are completely recovered from the previous set.
|
||||
5 pistols per side and 5 one arm pushups per side, that is it.
|
||||
As often as time and your body allow.
|
||||
Just a warning: your co-workers will look at you strangely if you start doing pistol squats at the office.
|
||||
Even so, it still makes a great break from sitting at a desk and can be done anywhere.
|
||||
</p>
|
||||
<p>
|
||||
RS is the only book that I have ever read that discusses the theory behind stretching.
|
||||
There are different types of stretching and some require more skill but are more effective.
|
||||
He outlines the dangers of blindly stretching and ways to get more flexibility with less time.
|
||||
He also has a long list of stretches and the muscles they target for you to use and advises how often they should be done.
|
||||
Coming from a gymnastics background stretching was too often the coach pushing you down, which is dangerous.
|
||||
It was eye opening to understand how flexibility works and that there are actually systems in the body that we can take advantage of to increase our flexibility faster than we think and most importantly without injury.
|
||||
</p>
|
||||
<p>
|
||||
Pavel’s work has been the foundation of my training for a few years now and has made me stronger than I was (while staying as flexible), and freed up a lot of time.
|
||||
I can get a solid practice with little time and if I am super busy I can squeeze it into the spare moments I have during the day.
|
||||
It has also helped me understand how our bodies respond to training and how best to take advantage of that.
|
||||
His work emphasizes longevity and regularity over the all-too-common ‘train till you drop’; and I think promotes better care of your body.
|
||||
I have not had a single day of extreme muscle soreness on his programs.
|
||||
This is in stark contrast to being so sore that I could barely stand from previous training sessions, while providing more of a benefit in terms of strength.
|
||||
</p>
|
||||
<p>
|
||||
I strongly advise taking a look at his work.
|
||||
It is an endless supply of useful suggestions and information that I think anyone interested in the fundamentals behind physical training should read.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>First Steps to Digital Independence</h2>
|
||||
<p>
|
||||
It has been in the back of my mind for a while that I would like to have control over my own digital life.
|
||||
I had made this website, keep local backups of my data, but never really went for full independence.
|
||||
Not sure where to start and allowing other things in life to take priority.
|
||||
</p>
|
||||
<p>
|
||||
Taking the first steps down this road were prompted by listening to
|
||||
Derek Sivers' most recent appearance on <a href="https://tim.blog/2023/04/21/derek-sivers/" target="_blank">Tim Ferriss' podcast</a>.
|
||||
A fantastic conversation overall.
|
||||
The part that stuck out most to me was his quick explanation on what to do to set up a personal server to host things like contacts, calendar, some file storage.
|
||||
I am on Derek's mailing list and just after listening to that got an email that he had written up these <a href="https://sive.rs/ti" target="_blank">instructions</a> for people to follow.
|
||||
</p>
|
||||
<p>
|
||||
This is fantastic I think, and for a fair portion of the setup it was as simple as following along.
|
||||
For anybody not terribly familiar with any of this I would advise doing exactly as instructed in the post.
|
||||
</p>
|
||||
<p>
|
||||
I do a lot of my personal programming in Rust.
|
||||
Little tools and things to help with my workflow.
|
||||
I love the language and programs written in it tend to be very fast and lightweight.
|
||||
I knew that I would want to be able to run those on my server so I had to deviate from the instructions.
|
||||
</p>
|
||||
<p>
|
||||
OpenBSD is a fantastic operating system, however it does not have native support for Rust in the package repository.
|
||||
Also Rust has a new release every 6 weeks and OpenBSD has a very conservative release and update schedule.
|
||||
This results in an extremely stable, reliable, and secure operating system but one that just does not fit my needs.
|
||||
</p>
|
||||
<p>
|
||||
Considering that I wanted to keep the server resources to a minimum I decided to go with Arch Linux.
|
||||
Arch is very lightweight and comes packaged with a minimum of programs.
|
||||
Kind of have to set it all up yourself.
|
||||
They have one of the best package repositories I have found for any Linux distro that I have used and have great documentation for everything on their wiki.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
They have a rolling release, so all packages get updates pretty much as soon as they are out which will be great for keeping everything up to date but the price is paid in stability.
|
||||
I am alright making this tradeoff.
|
||||
I think I can work out and fix any issues that may arise when updating.
|
||||
And it will let me run my own programs/automations that I write without any complicated workarounds.
|
||||
</p>
|
||||
<p>
|
||||
Some of the packages available on Arch are different than OpenBSD so I had to sort out some replacements.
|
||||
</p>
|
||||
<p>
|
||||
The differences you can see <a href="/projects/archserver">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
So far I am using it to run my calendar and contacts, some file backups, a personal git server, and this website.
|
||||
I decided not to host my own email, but am using my own url.
|
||||
I am using Fastmail, but am free to move it anywhere else and still maintain the same email address.
|
||||
</p>
|
||||
<p>
|
||||
It has not really changed my day to day activities much at all.
|
||||
Currently backups are slightly more complex than uploading something to google drive, but git and everything else are just as easy.
|
||||
And I have the peace of mind that these particular components of my digital life are in my control.
|
||||
I also understand them much better having set them up myself.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
|
||||
<h2>
|
||||
Graduate School
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
I recently finished my Master's Degree.<br>
|
||||
And my feelings on it are mixed.<br>
|
||||
On one hand I am proud of the work it took.<br>
|
||||
Of what I learned.<br>
|
||||
And having that recognized.<br>
|
||||
On the other hand I don't think it was the right decision.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It was expensive.<br>
|
||||
And took more time than the material needed.<br>
|
||||
Had I been more disciplined.<br>
|
||||
And thought through what I needed to learn.<br>
|
||||
I could have learned the material in a fraction of the time.<br>
|
||||
I could have saved almost $25000.<br>
|
||||
I could have shown my work on my website.<br>
|
||||
And used that on my resume instead of a degree.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It worked out in the end because I got lucky.<br>
|
||||
I graduated at the right time to get a job through a new grad program.<br>
|
||||
But I don't want to confuse luck with making the right decision.<br>
|
||||
Whether a decision is right or not is not only based on the outcome.<br>
|
||||
We need to see what we did right when things failed.<br>
|
||||
And what was wrong when we succeeded.<br>
|
||||
We don't control the outcome of many of our decisions.<br>
|
||||
There are too many factors.<br>
|
||||
So we decide with the information on hand.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The right decision is the one we would make if we had to roll the dice on the outcome.<br>
|
||||
Again and again.<br>
|
||||
If I had to roll.<br>
|
||||
I think the better choice would have been to choose myself.<br>
|
||||
I could have moved faster.<br>
|
||||
I could have saved a lot of money.<br>
|
||||
I could have taken the process into my own hands.<br>
|
||||
And shaped it into something of my own.<br>
|
||||
Rather than following a process laid out for me.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It would have taken more care and attention.<br>
|
||||
As anything truly worth doing deserves.<br>
|
||||
Everything we do.<br>
|
||||
Can be made wonderful with focussed effort.<br>
|
||||
Or can be boring and lifeless.<br>
|
||||
If we are not paying attention.<br>
|
||||
I chose the easier route.<br>
|
||||
That did not require the same care.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Regardless of the fact that it turned out well.<br>
|
||||
Abdicating the requirement of making my own path.<br>
|
||||
Was not the correct decision.<br>
|
||||
I chose not to analyze my options.<br>
|
||||
As carefully as I could have.<br>
|
||||
I didn't think.<br>
|
||||
I didn't explore.<br>
|
||||
I didn't trust myself.<br>
|
||||
That I would end up in the right place.<br>
|
||||
Under my own guidance.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
While the outcome was successful.<br>
|
||||
I think that what I learned most.<br>
|
||||
From this experience.<br>
|
||||
From this success.<br>
|
||||
Is to be more present.<br>
|
||||
To put more care and focus in everything I do.<br>
|
||||
In every decision I make.<br>
|
||||
To make sure that my process is as right as I can make it.<br>
|
||||
And stop worrying about the outcomes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I learned the most.<br>
|
||||
By realizing the things I missed.<br>
|
||||
As opposed to the things that I did.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,186 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Habits
|
||||
</h2>
|
||||
<p>
|
||||
Habits are both one of the most useful and most destructive things that we do in our lives.
|
||||
The effects of habits compound over time; good habits will produce better and better results while bad habits do more and more damage.
|
||||
The difficulty is that bad habits are often built automatically while good habits take time and effort to set up.
|
||||
This is because of the tradeoff.
|
||||
</p>
|
||||
<p>
|
||||
Bad habits give us the reward now, the sugar high of the donut, the warm coziness of not getting up, and the mindless comfort of binge watching yet another television show.
|
||||
The cost is deferred to the future.
|
||||
If I keep eating donuts or never leave my couch we all know that the cost will be my health.
|
||||
</p>
|
||||
<p>
|
||||
For good habits, on the other hand, the cost is immediate.
|
||||
It is not easy to drag myself out of bed in the morning and get started on the day, nor is it easy to take the time to cook and eat healthily.
|
||||
The benefits are in the future.
|
||||
Good habits are like an investment while bad ones are taking on debt.
|
||||
</p>
|
||||
<p>
|
||||
The good and bad news is that while habits take time to build, once set up they are quite difficult to break.
|
||||
They also don’t require the perfection that most people think they do.
|
||||
Often when I miss something for a day I feel defeated, it makes me feel like “Well I missed it yesterday so why do it today?” but it has been shown (see Atomic Habits for a more in depth explanation) that a single missed day has little effect on how long it takes to build a habit.
|
||||
More than one day however and the cost starts to climb.
|
||||
Make sure that if you are trying to form a new habit you avoid missing two days in a row at all costs.
|
||||
Mistakes happen but don’t let them compound.
|
||||
</p>
|
||||
<p>
|
||||
In his book Atomic Habits, James Clear outlines the four steps that are involved in a habit forming and how to use those to both make new ones and break down old, unwanted habits.
|
||||
</p>
|
||||
<p>
|
||||
Habits don’t need to start out large In fact making them as easy as possible really helps when building new ones.
|
||||
You want to minimize that cost you have to pay right now in order to make it more and more likely that you will keep following through.
|
||||
</p>
|
||||
<p>
|
||||
The four steps are cue, craving, response and reward.
|
||||
All four are needed for repetitive behaviour.
|
||||
The cue is what initially starts your brain on the loop, this is something external like your phone buzzing.
|
||||
The craving is what that internally provokes, that is the desire to know what the buzzing notification is.
|
||||
The response is the action you take like picking up your phone and checking it.
|
||||
Lastly the reward is that little dopamine kick you get when you read the email, text message or whatever it was.
|
||||
That reward links the cue to the action through satisfying the craving.
|
||||
Over time the buzz becomes associated with picking up and checking your phone.
|
||||
You may even start doing it automatically without realizing that the phone is now in your hand.
|
||||
</p>
|
||||
<p>
|
||||
We can tweak each of these steps to build or break habits.
|
||||
For example: I am trying to build the habit of getting up early.
|
||||
I do it often but it is not a habit yet.
|
||||
There are stretches where I fail, especially lately when I have had other stressors in my life, it has fallen off a little.
|
||||
The habit I am trying to break is my overly close connection to my phone.
|
||||
I check it too much, use it too often and keep it too close at hand.
|
||||
</p>
|
||||
<h3>
|
||||
The Cue:
|
||||
</h3>
|
||||
<p>
|
||||
Build - Make it obvious: It is hard to get more obvious than an alarm, however I have had the same alarm noise for a while, I have become used to it, so it is probably a good idea to change it.
|
||||
That will make it stand out more and will force me to wake up more to understand what is going on.
|
||||
</p>
|
||||
<p>
|
||||
Break - Make it invisible: I try not to have too many apps that show notifications on my phone.
|
||||
My habit is bad enough that I just check it periodically, notification or not.
|
||||
This means that I need to keep my phone out of my line of sight and off my person so that I can’t feel it.
|
||||
I can keep it off my desk when I am working and in my bag (as opposed to my pocket) when I am going out.
|
||||
</p>
|
||||
<h3>
|
||||
The Craving:
|
||||
</h3>
|
||||
<p>
|
||||
Build - Make it attractive: We like to anticipate things, anticipation is often more of a driver then the actual reward itself.
|
||||
In order to make getting up attractive I want to have some sort of reward that I know is waiting for me when I get out of bed.
|
||||
This is not getting the reward but I need to anticipate it to drive me to take action.
|
||||
Now that I think about it I might be structuring my morning incorrectly.
|
||||
Normally I journal, meditate, then go to the gym.
|
||||
The activity I enjoy the most is the exercise.
|
||||
It also has the advantage of waking me up.
|
||||
So I will use exercise as the reward (the gym is best earlier anyway as it is quieter and less likely I will have to wait for a station).
|
||||
The anticipation of the gym is how I am going to make getting up more attractive.
|
||||
Even better would be using the social pressure of meeting a friend at the gym.
|
||||
</p>
|
||||
<p>
|
||||
Break - Make it unattractive: I am pretty sensitive to wasting time but, not always in the moment.
|
||||
This is the problem and I certainly beat myself up for it later.
|
||||
I need a way to bring it more immediately to my attention.
|
||||
Finding or writing some sort of widget that displays how long I have spent on my phone so far that day is a good one.
|
||||
This could be on my lock screen and home page.
|
||||
Then I will anticipate that number staring me in the face if I do, in fact, pick up the phone.
|
||||
</p>
|
||||
<h3>
|
||||
The Response:
|
||||
</h3>
|
||||
<p>
|
||||
Build - Make it easy: This may not necessarily make it any easier but it will certainly motivate me a lot more.
|
||||
Having my alarm on the desk instead of beside the bed will make me get up and walk across the room to turn it off.
|
||||
(It may also help with breaking my phone habit).
|
||||
By the time I turn it off I am up, or if I let it go for a few minutes I won’t be able to doze back off.
|
||||
</p>
|
||||
<p>
|
||||
Break - Make it difficult: Having the phone out of line of sight is good, out of reach is even better.
|
||||
I can also make sure the apps that normally entice me to check it are harder to get to.
|
||||
They should be off the home screen for sure.
|
||||
Buried under folders in my apps menu is better.
|
||||
I could hide them so that I have to actually type in the name to find them, or uninstall them altogether.
|
||||
Some combination of these will work, depending on if the app in question is useful or not.
|
||||
Making it take more time to get to apps will give me more opportunity to realize what I am doing and stop.
|
||||
I may even decide that the time is not worth checking it in the first place.
|
||||
</p>
|
||||
<h3>
|
||||
The Reward:
|
||||
</h3>
|
||||
<p>
|
||||
Build - Make it satisfying: Getting right to the gym and the endorphin rush that comes from moving is good, moving that to the top of the list is much better.
|
||||
For me exercising is more viscerally satisfying than journalling or meditating.
|
||||
Also I take great satisfaction at having a huge chunk of my daily list done by noon which I can’t do if I don’t get up early.
|
||||
Making sure I give myself the time and space to appreciate that and remember why I am so ahead on the day is important.
|
||||
</p>
|
||||
<p>
|
||||
Break - Make it unsatisfying: I am going to make this public, which makes it hurt more if I don’t improve.
|
||||
I am going to, at the end of each blog post, list how many hours I have spent on my phone that week.
|
||||
The number is pretty likely to be embarrassing and will only be more so if it gets worse.
|
||||
</p>
|
||||
<p>
|
||||
There are more tips and tricks in Atomic habits and I will be trying to use all of them.
|
||||
It is worth the read.
|
||||
Now that I have gone over how, there is still the question of why you want to build (or break) habits?
|
||||
</p>
|
||||
<p>
|
||||
There are a few reasons.
|
||||
The benefits of good habits compound over time while the costs of bad ones also compound.
|
||||
Even if the habit is a very small one the effect over time can be massive.
|
||||
People often overestimate what they can do in the short term but underestimate what they can achieve in the long term.
|
||||
</p>
|
||||
<p>
|
||||
The example that is used in Atomic Habits is the change of 1% per day for a year.
|
||||
If every day of the year you are 1% better than you were the previous day by the end of the year you are more than 37x better.
|
||||
Obviously there are limits to what we can do but this thought experiment goes to show that small changes compounded over time add up to huge changes.
|
||||
The opposite is also true.
|
||||
If you are 1% worse each day at the end of a year you are 1/33rd of what you were at the beginning of the year.
|
||||
This feeds into the next reason that habits remove decisions: making your life easier.
|
||||
</p>
|
||||
<p>
|
||||
We are bombarded every day with choices and as the day progresses, the more choices you have to make, the worse decisions you make.
|
||||
This is known as decision fatigue.
|
||||
The point of habits is that they are automatic, it is no longer a choice that adds weight throughout the day.
|
||||
It frees you up to spend that energy on choices that are more important or can’t be turned into habits.
|
||||
Once your habit is properly set up, like going for a run every day, you can reap the benefits without the cost on your willpower it takes to force yourself to go out and run.
|
||||
Breaking bad habits stops you accruing the cost of them over time without your awareness.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Habits provide a foundation upon which to build your life.
|
||||
If you have good habits they will take care of you by making your life easier.
|
||||
They also allow time for just doing the things that are important to you in life.
|
||||
Bad habits are something you have to constantly compensate for.
|
||||
They leave you spending all of your free time just offsetting their cost.
|
||||
So often we think of habits as just happening and not something that we can control.
|
||||
This is not the case.
|
||||
It certainly takes work, but it is possible to change habits and this knowledge leaves me personally with a much greater sense of control over my life.
|
||||
</p>
|
||||
<p>
|
||||
Managing our habits is something that we can all take advantage of to live better lives with a greater amount of control over what we do and ultimately where we are in life.
|
||||
If you can think of a habit that you want to build or break try writing out how to take the four steps for that particular habit and give it a shot.
|
||||
It may take some work now, but the benefits are for life.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time: I am going to go from last friday to yesterday (thursday) so that I get 7 full days.
|
||||
Across all different applications (some are useful I swear but I bet that most are not) I spent 34 hours and 29 minutes on my phone in the last 7 days.
|
||||
That is almost a full work week.
|
||||
Adding that all together surprised me and this is definitely hard to post.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Immersive Learning and Experimentation
|
||||
</h2>
|
||||
<p>
|
||||
This past week I have started learning how to use Vim and I thought that the process was interesting and wanted to talk about it.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Vim is a text editor, like Notepad, Atom, Emacs, or many others.
|
||||
Mainly used for programming and simple text files.
|
||||
Vim is an older editor that runs in the command line instead of a graphical user interface and relies completely on the keyboard instead of making use of the mouse.
|
||||
It uses a lot of keyboard shortcuts instead and allows for very quick and very precise editing.
|
||||
</p>
|
||||
<p>
|
||||
This means that it has a very steep learning curve but seems to have an equally high ceiling for skill with the program and its speed of use.
|
||||
The downside is that it is going to take me a lot of time to learn and will slow me down a lot while I do.
|
||||
The temptation to go back to Atom, which was my text editor of choice in the past, in order to make more headway on my projects is very strong.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Switching back and forth slows down learning so I had to decide what was more important.
|
||||
I don’t have any programming to do for school so I am only delaying my own projects.
|
||||
I decided to leave myself no other option and fully uninstalled all the other text editors on my laptop.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Full immersion and necessity is the fastest way to learn a lot of things but is not always possible.
|
||||
Language learning is fastest if you are travelling and actually have to use the language day to day to get by and I see using this new tool as the same thing.
|
||||
I am trying to train my brain to incorporate the use of Vim.
|
||||
Changing back and forth would keep reinforcing the particular way I use Atom as opposed to overwriting that with using Vim.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I have noticed the cost of switching back and forth when trying to learn more than one coding language at a time.
|
||||
Last semester I had one course using Java and one using C.
|
||||
Both languages I had seen before but not coded much in.
|
||||
I repeatedly made mistakes which were often using the syntax of one language in the other.
|
||||
</p>
|
||||
<p>
|
||||
I have been using Vim exclusively for almost a week and I am no longer feeling painfully slow.
|
||||
I am still not as quick with it as I was with Atom but it is catching up.
|
||||
It also feels much better on my laptop where I much prefer using exclusively the keyboard as opposed to the touchpad.
|
||||
I am not sure how it would compare to a mouse.
|
||||
</p>
|
||||
<p>
|
||||
I have not forced myself to learn anything in this way for a long time.
|
||||
So often I am trying to do a lot of related things at once that bleed over into one another.
|
||||
This was the perfect opportunity of retooling a task that I use very often but only affects a small portion of my overall life.
|
||||
It definitely is making me wonder where I can apply that level of immersion to other learning tasks in my life.
|
||||
</p>
|
||||
<p>
|
||||
This ties into something else I am exploring.
|
||||
I have recently been reading a lot of articles on Derek Sivers’ website and listening to various interviews with him on spotify.
|
||||
I find his life philosophy very appealing in general but specifically I want to talk about his approach to experimentation for life.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
It is quite rare that all the rules in a given philosophy, religion, or other system that one can use to structure their life or any activity in it will work for everyone.
|
||||
However having no rules often results in far too many options to properly analyze and make the best decision.
|
||||
There is a freedom that comes from restrictions.
|
||||
They help us by cutting down choices so that we can focus our attention on deciding between them.
|
||||
*Find the book that this is from* When faced with a larger number of options people are generally less happy with their choice as they wonder if another was better.
|
||||
Fewer choices results in making them faster and often being more happy with the decision.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Derek suggests coming up with your own rules and testing them.
|
||||
They can be pulled from anywhere but the key is that they can be tested one by one, keeping those that work and getting rid of those that don’t.
|
||||
The length of the tests can vary and will be dependent on how long I think I will need to give the rule a good run.
|
||||
In the end I will hopefully end up with a system that is personalized and works best for me.
|
||||
Getting rid of all the other text editors was essentially setting the rule that if I have to edit text I use Vim and it is working out well.
|
||||
I think I will keep it.
|
||||
</p>
|
||||
<p>
|
||||
Other ideas I have are
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Only speaking french with people I know can speak it.
|
||||
(get my french back.
|
||||
Used to speak it regularly but not in years)
|
||||
</li>
|
||||
<li>
|
||||
No complaining (if a conversation starts going down that route change the subject)
|
||||
</li>
|
||||
<li>
|
||||
Slow carb diet
|
||||
</li>
|
||||
<li>
|
||||
No watching video of any type
|
||||
</li>
|
||||
<li>
|
||||
Phone stays out of the bedroom
|
||||
</li>
|
||||
<li>
|
||||
No internet use for an hour after I wake up and an hour before bed
|
||||
</li>
|
||||
<li>
|
||||
Start each day with time outside
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
I feel like the default for testing will be for a week, but for things that will take longer to have an effect like the diet I could see doing it for a few weeks to a month.
|
||||
I have done the slow carb diet for a while before but have fallen off for the last year.
|
||||
I remember feeling quite good on it and would like to give it another shot.
|
||||
</p>
|
||||
<p>
|
||||
I look forward to testing some of these out and building my own structure for my life, up until this point I have been implementing practices that others have suggested without determining if they are best for me.
|
||||
They have been fantastically useful but by blindly implementing them I am cutting off the opportunity to find something that fits me better.
|
||||
If I don’t I will keep using them but it is important to leave open the option.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 8h 7m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Independence
|
||||
</h2>
|
||||
<p>
|
||||
With less monetary pressure on me this past year I have been able to really dive deeply into what is important to me.
|
||||
</p>
|
||||
<p>
|
||||
Independence has come to the forefront.
|
||||
To me being independent in something is having the choice in how you approach it.
|
||||
It does not need to mean that I do everything myself.
|
||||
It means that I can if I need to.
|
||||
It gives me control over various aspects of my life that are important to me.
|
||||
For other areas less important I can consciously relinquish that control to save time and effort.
|
||||
</p>
|
||||
<p>
|
||||
Society is full of large complex systems that provide what I need to live.
|
||||
If any of those systems breaks or even slows down it can negatively affect my life if I don't have any other options.
|
||||
For the sake of robustness ideally a system is as small and simple as possible.
|
||||
For independence as many of those steps should be in my hands as possible.
|
||||
That results in fewer points of failure and the ability for me to shore up more of those failures myself when they happen.
|
||||
</p>
|
||||
<p>
|
||||
With the rise of smaller, personally available, and more affordable technologies I think that I can have much of the independence that I want without giving up many, or even any, of the conveniences of modern life.
|
||||
</p>
|
||||
<p>
|
||||
I want to track and publish this journey to try and build more independence into my life.
|
||||
Both as a record and maybe it could help others who feel the same way that I do do the same.
|
||||
</p>
|
||||
<p>
|
||||
Currently I think that it will break into digital, work, and personal independence going forward.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Less is More
|
||||
</h2>
|
||||
<p>
|
||||
I am in a bit of a rut at the moment and am fairly overwhelmed with things that I have to do as opposed to things I want to do.
|
||||
This means that I have little space to add new things to my schedule to test or improve.
|
||||
Thankfully there is still something that can be done even with no time and that is cutting things out.
|
||||
</p>
|
||||
<p>
|
||||
Often I think of changes I can make in terms of new things to try or practices to add to my routine, but there is just as much, and at times more, value in removing items.
|
||||
My personality often leads me to forget this aspect.
|
||||
I am interested in so many things and like the feeling of doing more, so I have to say that I am glad that the current situation is forcing me to approach this differently.
|
||||
</p>
|
||||
<p>
|
||||
I am going to err on the side of removing something if I am not sure if it should be removed or not.
|
||||
I should be able to get it back pretty easily if I miss it, and it also lets me test out the change as opposed to just guessing what will happen.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Firstly I am subscribed to the mailing lists of a decent number of blogs and podcasts.
|
||||
I sometimes read the emails but often when I want to read the content I go directly to the site.
|
||||
I also don’t read them right when new posts are made so knowing that is not useful to me.
|
||||
It means that each day I am getting at least one if not a small handful of messages that I sort into the relevant email folders and then more often than not never read.
|
||||
The notifications are distracting, sorting takes time, and I know where to get the information when I want it as opposed to having it fed to me.
|
||||
</p>
|
||||
<p>
|
||||
Speaking of notifications I have turned off almost all notifications for various apps on my phone.
|
||||
The only things that should make any noise are calls and text messages.
|
||||
No emails, no new songs on spotify.
|
||||
If someone is trying to contact me directly I want them to be able to (within reason which I will talk about in a second), but as with the emails I want to go get the information when I need it and reduce the amount being thrown at me.
|
||||
</p>
|
||||
<p>
|
||||
This is a common theme for me, I love getting information and learning new things but having it all fed to me is too much of a temptation and a distraction.
|
||||
The information is readily available, so I am happy to take the responsibility for finding it into my own hands and be able to choose when to read, watch, or listen as opposed to doing it in reaction to a notification or email.
|
||||
</p>
|
||||
<p>
|
||||
I am uninstalling and unsubscribing from all video streaming services.
|
||||
When I watch I usually watch with others.
|
||||
On my own I am often tempted to put something on in the background while I am working and that is another distraction.
|
||||
The other people I am watching with can certainly put on a movie; so if I don’t have access to the services it will affect my work time but not any relaxation viewing.
|
||||
One of the rules I am testing currently is no multi tasking so this will help with that.
|
||||
It is tempting to have something playing while writing this for instance.
|
||||
</p>
|
||||
<p>
|
||||
I am unsubscribing from all channels on youtube and deleting my watch history so that it won’t recommend videos that fit my tastes anymore.
|
||||
As I use them I can re-subscribe to channels, but at the moment the suggested videos are far too tempting and it is very easy to go down the rabbit hole for an hour or more of moving from one video to the next.
|
||||
I have also taken a look at what the suggested videos are when I am logged out and I have no interest in any of them.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I am turning my phone onto airplane mode for the evening and until after I have meditated and journaled in the morning.
|
||||
I have family and friends in other timezones and a close friend that works nights.
|
||||
It is not unusual to get text messages when I am sleeping or before I have gotten myself started for the day.
|
||||
This will let me control the times that I am available to be contacted and not interrupt those important routines.
|
||||
</p>
|
||||
<p>
|
||||
I am simplifying my exercise routine.
|
||||
I am testing out only doing bodyweight training for a while.
|
||||
I will definitely add kettlebells and weights back in but I am having some trouble with my joints and I think it is because I went too hard and too quickly with the weights.
|
||||
My background is in gymnastics so I have more experience with bodyweight training then anything else and that will allow me to get my body back into proper working order and reduce the overall load on my connective tissue.
|
||||
</p>
|
||||
<p>
|
||||
My cooking has gotten more elaborate recently, which also often means less healthy.
|
||||
By making simpler meals I hope to save time in the kitchen and increase the quality of my diet.
|
||||
I do enjoy cooking and will save the more involved meals for weekends when I have the extra time to spare.
|
||||
</p>
|
||||
<p>
|
||||
All of these should hopefully free up a decent amount of time.
|
||||
I am not planning on adding anything new to fill in that time until I have grown accustomed to doing less.
|
||||
I don’t want to just overload my schedule with new things right away, I want to add them in slowly and give each new activity the time that it deserves to ensure that I do it well.
|
||||
I have never tried to remove so much at once and I am not sure what my reaction to it will be.
|
||||
All part of the experimentation I guess.
|
||||
Paying close attention to my actions for a week or so really surprised me how much of what I was doing was reactive as opposed to active.
|
||||
I am hoping to change that by getting rid of all these things.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 8h 28m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Leveling Tool
|
||||
</h2>
|
||||
<p>
|
||||
So I know that I have not posted in a while, to be honest priorities have shifted and so unfortunately writing has been put on the back burner.
|
||||
However this week I came up with something and wanted to share it.
|
||||
</p>
|
||||
<p>
|
||||
I have been working on making an interlock patio in my parents back yard.
|
||||
Once the hole was dug and filled with GA and stone dust we had to level.
|
||||
This past Thursday after being outside in the heat and sun for days I was just not feeling crawling around on my knees with a long level scraping and pushing stone dust around to not only get the surface level but graded properly away from the buildings.
|
||||
I was also distracted by a totally separate idea for something computer and website related.
|
||||
</p>
|
||||
<p>
|
||||
I gave myself 15 minutes to come up with something that could help and if I didn’t I would go back to doing it the old fashioned way.
|
||||
There were a few problems that I was looking to solve.
|
||||
I wanted something that did not require me to hold my shorter level onto a piece of wood while I was scraping, I wanted a system that did not require having my weight on it (on my knees reaching forward with the level and scraping backwards), and something that I could do while standing up.
|
||||
</p>
|
||||
<p>
|
||||
I was initially thinking of some sort of track that gets pre-leveled and I just slide a board across, but that seemed too complicated and precise to throw together quickly.
|
||||
While looking at what scrap wood was around I found an old finished but more importantly straight piece of a bed frame and a broken shovel handle.
|
||||
</p>
|
||||
<p>
|
||||
Drilled a few holes in the piece of wood to tie the level to the top of it and cut off the shovel handle at an angle and screwed it to the board.
|
||||
The result was this.
|
||||
</p>
|
||||
<figure>
|
||||
<img src="/assets/images/LevelingTool.jpg" alt="LevelingTool" />
|
||||
<figcaption>Version 0.1 Leveling Tool</figcaption>
|
||||
</figure>
|
||||
<p>
|
||||
It worked very well all things considered.
|
||||
It allowed me to hold it at a slight angle to get the grade while I was drawing it over the stone dust.
|
||||
I could vary the pressure to have it scrape off various amounts and I could reach much farther then I could from my knees with just the level.
|
||||
This version is obviously rough but it made the job much faster and easier.
|
||||
The handle should be longer and at a bit less of an angle.
|
||||
It would also be nice to work the level into the scraping edge itself.
|
||||
A regular level can be looked at from the front or the top, but there are some angles that with this particular tool it is hard to see.
|
||||
Having the entire top open to be seen at any angle and possibly a lens to make the actual bubble look bigger would make watching it easier while pulling the device across the stone dust.
|
||||
</p>
|
||||
<p>
|
||||
I find that I am often slowed down by trying to make things I create perfect but recently I have been just getting something that works.
|
||||
Having something to work with makes other design changes and improvements jump out at you.
|
||||
It is way easier to iterate off of something as opposed to trying to make it perfect in theory before making anything.
|
||||
You end up with a better product and much quicker.
|
||||
Don’t wait to make something perfect.
|
||||
Just make it and it will be far easier to improve once you start using it.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Looking Like a Fool
|
||||
</h2>
|
||||
<p>
|
||||
I was listening to an old episode of Tim Ferriss’ podcast this morning with the creator of DuoLingo, Luis Von Ahn.
|
||||
For those of you that don’t know; DuoLingo is a free language learning platform.
|
||||
One point was that people who are willing to make a fool of themselves learn languages faster than those who want to wait until they sound perfect.
|
||||
</p>
|
||||
<p>
|
||||
It got me thinking that this applies to far more than just language learning.
|
||||
It applies to any type of knowledge or skill acquisition.
|
||||
If I am not screwing something up, often it means that I am not at the edge of my knowledge.
|
||||
Work should be done in the realm of competency.
|
||||
I want to make sure I am putting out a solid product, but learning something new should be at that uncomfortable edge.
|
||||
Pushing so that I may just be able to manage what I am trying to do means stumbling often.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
There is a great quote from Samuel Smiles, “We learn wisdom from failure much more than from success.
|
||||
We often discover what will do, by finding out what will not do; and probably he who never made a mistake never made a discovery.” Most of us feel stupid when we fail and that is what the podcast was getting at.
|
||||
In learning languages it is increasingly pronounced.
|
||||
Being unable to express yourself and displaying that lack to others can be embarrassing and makes most people feel foolish.
|
||||
When seen from another perspective, it can be funny for everyone involved.
|
||||
Learning other skills is like this as well.
|
||||
We feel clumsy when picking up a new sport or just can’t seem to get that new math concept.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
This connects quite strongly to the learning mindsets I have heard put forward in a couple of different books and discussions on learning.
|
||||
The two are often characterized as fixed and growth mindsets.
|
||||
The fixed mindset assumes that abilities are innate, a result of intrinsic talent.
|
||||
A growth mindset believes that abilities are developed.
|
||||
While people do vary in capability; the ability that we have to improve is often far greater than we realize.
|
||||
We may not all be able to be Einstein but we can certainly get better than we are now.
|
||||
</p>
|
||||
<p>
|
||||
A fixed mindset leads us to fear failure, thinking that if we fail, we have hit the limit of our capacity.
|
||||
This thought is extremely destructive and leads us to shy away from anticipated failure.
|
||||
Feeling foolish through this lens also speaks fundamentally to who we are and what we are capable of.
|
||||
So we shy away from the challenges that run a high risk of us making mistakes, both in front of others and by ourselves.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Small aside, feeling foolish is not just for when you do something in public.
|
||||
I am my harshest critic and almost universally judge myself more harshly than the people around me do.
|
||||
This includes when I feel foolish.
|
||||
I think that this is the case for most of us, so don’t discount being able to watch yourself make mistakes even if there is no one else there to see.
|
||||
</p>
|
||||
<p>
|
||||
Adopting a growth mindset allows challenges and mistakes to be seen as steps on the road to mastery.
|
||||
They reflect only that we still have more to learn and nothing about us as a person.
|
||||
This makes those with a growth mindset much more tolerant to making mistakes and admitting them.
|
||||
The result is often much more success in long term learning.
|
||||
</p>
|
||||
<p>
|
||||
Mistakes and failures are signposts.
|
||||
How do we know where we are lacking? what we need to get better at? Using current technology we can easily access any information we could want but, we do need to know what to look for.
|
||||
If you can successfully do something then you don’t need to look it up, if you can’t then you know what you need to research.
|
||||
</p>
|
||||
<p>
|
||||
Unfortunately there is no easy way to get used to making mistakes and feeling foolish other than just doing it.
|
||||
It is not as big a deal as most of us think, the world won’t end and it is likely no one will think less of you.
|
||||
You can start with people that you trust and know well, or take classes with other beginners.
|
||||
Having other people struggling along with you means that you all get to feel foolish together.
|
||||
It is quite likely that someone else is having exactly the same problem as you.
|
||||
The people you trust give you the reassurance that your mistakes won’t change how they view you and make it safer to take those risks.
|
||||
</p>
|
||||
<p>
|
||||
Everyone learns new things, everyone makes mistakes and feels like a fool sometimes.
|
||||
It can even be fun.
|
||||
It can leave you with a funny story to tell later and it will certainly help you learn.
|
||||
Success is often just a function of how many times you try.
|
||||
Being willing to fail means that you will try more new things and meet with more success in the end.
|
||||
That is worth a few stumbles and some embarrassment.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 8h 20m
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
On Reading
|
||||
</h2>
|
||||
<p>
|
||||
I think that reading does not quite get the credit for the marvelous thing it is in the public eye.
|
||||
It is pretty rare to hear people talking very much about reading anymore and the phrase “I don’t read” has become more and more common.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I would like to make a case for reading.
|
||||
It has a few things going for it that I don’t think any other medium has.
|
||||
More than anything else reading is a purely cerebral experience.
|
||||
There is nothing else intensely stimulating in the activity to pull your attention away from the ideas being conveyed.
|
||||
And conveyed they are.
|
||||
Writing is the crystallization of ideas into words, there is nothing else the author has to concern themselves with, and the act of writing helps to clarify and hone the thoughts.
|
||||
Therefore books when written well often deliver the purest idea, honed by writing and editing to the reader.
|
||||
</p>
|
||||
<p>
|
||||
Reading a book is like having a conversation, albeit a unidirectional one, with the author.
|
||||
Similar to a lecture, reading is an act of listening and parsing the information given.
|
||||
Like most other distributed media it transcends distance, once a book is published you don’t need direct access to the author to benefit from their ideas contained within.
|
||||
Unlike most media however it also transcends time.
|
||||
We have only had film and recorded music for coming up on 100 years now.
|
||||
There is no way to communicate with anyone beyond that point in time.
|
||||
Oral traditions are the only method of communication older than writing and that runs into the space problems of needing to be with a storyteller.
|
||||
By reading I have access to the teachers from the entirety of recorded human history.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
There are ideas and ways of thinking that have fallen by the wayside.
|
||||
This does not make them less valuable, just forgotten.
|
||||
The words and the books that they have left behind are the only way to find these ideas in their original form.
|
||||
There are a few in the modern age that try to spread them and teach them to the new generations, but this is also almost always in the form of writing books.
|
||||
It is the only way to connect to the timeless wisdom found in the older texts that have survived and maintained relevance.
|
||||
If something has been around and useful for a few hundred or even a thousand years I think it bears looking into.
|
||||
</p>
|
||||
<p>
|
||||
Reading is one of the few actions these days that force us to slow down, and focus on a single thing.
|
||||
You can’t chat while reading, you can’t watch a show, work, or eat very well (when I try to read and eat I end up spending more time finding my place than reading).
|
||||
In a world that increasingly moves faster and demands more of our time moments of slowness and peace are more valuable than ever.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Taking the time to absorb an idea, roll it around in your head, and come to conclusions about it is fantastic, almost meditative.
|
||||
Reading a thing takes time, so it forces some level of contemplation.
|
||||
We are bombarded with all sorts of bite sized opinions and ideas, those often provoke a strong emotional response and very little conscious thought.
|
||||
Spending the extra time with it forces us to think, let that initial gut reaction no longer be our only point of reference.
|
||||
I am not saying that the gut is always wrong, instinct and intuition are valuable tools, but more and more things are designed to take advantage of that system.
|
||||
It is much harder to do that to someone's critical thinking.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Reading is beautiful and often seems to be the cure to a lot of the ailments of the modern day.
|
||||
When we are always told to go faster and do more, reading forces us to sit still and think.
|
||||
When all our senses are constantly bombarded by all sorts of stimulation reading forces us to give them a rest, except for the occasional eye strain when you get into a really good book and can’t put it down.
|
||||
</p>
|
||||
<p>
|
||||
It forces us to exercise our imagination.
|
||||
With modern technology our movies and shows are so realistic that we no longer have to use our imagination to picture things.
|
||||
I can’t help but think there is a massive benefit practicing being able to picture things we have not seen in our heads.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
So that is my case for reading.
|
||||
I hope my thoughts on the topic were interesting.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Personal Update March 2021
|
||||
</h2>
|
||||
<p>
|
||||
So in the spirit of honestly chronicling my journey, I have to say that this past week has been fairly unsuccessful.
|
||||
Due to significant stresses in my life a lot of my routines have fallen apart.
|
||||
This week I am going to do an analysis of what I have been able to keep up with and what has dropped off.
|
||||
It outlines what activities I am still using discipline and willpower to do (which are more susceptible to breakdowns when stressed) and what seems to have held together (habit).
|
||||
</p>
|
||||
<p>
|
||||
Starting with the things that have held together.
|
||||
I am still exercising regularly.
|
||||
It feels odd not to go to the gym.
|
||||
Even though some days I have cut down on the intensity and amount of the exercise it is still there.
|
||||
On certain days I cut back on the weight I was lifting and on others I did fewer and/or less effective exercises.
|
||||
Swapping out an exercise for a slightly less effective one may seem completely counter productive, but I have found that when I am not feeling it, the novelty of something different helps raise my interest.
|
||||
It is better to do something sub optimal then nothing at all.
|
||||
</p>
|
||||
<p>
|
||||
I have still been reading a fair bit.
|
||||
I was reading The Gulag Archipelago which is a book about life in Stalinist Russia.
|
||||
Needless to say it is dark, so for this week I put it down in favor of easier reading.
|
||||
I continue to read one of Seneca’s letters each day and am in the process of reading Malcolm Gladwell’s The Tipping Point.
|
||||
It is about what causes sudden drastic changes in systems when one would expect more gradual ones.
|
||||
It touches on epidemics of various sorts, fashion, crime, adoption of technology etc.
|
||||
I am also reading more fiction for pure enjoyment.
|
||||
A short story collection by my favourite author Greg Egan is also for fun.
|
||||
It is called Artifacts and I strongly suggest his work if you like very hard science fiction.
|
||||
</p>
|
||||
<p>
|
||||
School is the area where I have just kept up.
|
||||
Normally I try to work ahead and try to do two weeks of reading for each week that passes.
|
||||
That way when it is time to work on a project or study for a test I have the time to focus solely on that without falling behind.
|
||||
This week was just a week’s worth of reading and I called it at that.
|
||||
Some of the time I would normally spend working on school I spent listening to podcasts on whatever topic I was interested in that day.
|
||||
The learning this week may have been less focussed than usual, and for less total time but it was still there.
|
||||
</p>
|
||||
<p>
|
||||
So learning, and exercise seem to have held together alright.
|
||||
This makes sense, I have had these practices for a long time.
|
||||
While they have all been ratcheted down in intensity they have continued.
|
||||
This is the advantage of habits, it truly feels odd when I don’t do them for a day.
|
||||
</p>
|
||||
<p>
|
||||
Now for the areas that have not held up so well under stress.
|
||||
I have not been consistent with my sleep schedule.
|
||||
I have been staying up later and sleeping in more in the morning.
|
||||
Not by a small amount either.
|
||||
2-4 hours later both in bed and waking time is significant.
|
||||
I have been loath to cut my sleep short, I know how important having enough sleep is especially when your body is under stress.
|
||||
I am not sleeping much more, just not at the times that I prefer.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I have been spending more time on my phone, watching youtube videos mostly.
|
||||
I think the common trend with my behavioural changes this week is that I am leaning towards immediate enjoyment and a little bit of escapism as opposed to longer term thinking.
|
||||
It also makes sense, my brain is trying to make me feel better using the things that reward me quickly.
|
||||
My phone use is not as high as it was the first week.
|
||||
I tracked it and it has been going up since last week.
|
||||
I am also spending more time playing video games.
|
||||
Normally I try to keep them within my off time at the end of the day, but it has creeped out into the rest of my day.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Writing my 10 ideas for the day has been problematic.
|
||||
I normally do it later in my routine so I can use whatever problems I have encountered throughout the day to generate ideas.
|
||||
While under stress I am very mentally drained at the end of the day and it feels insurmountably difficult to come up with ideas when my mind is so occupied.
|
||||
I could try and do it earlier in the day when I am feeling fresher.
|
||||
Something to look into for the next week.
|
||||
</p>
|
||||
<p>
|
||||
I am doing my best to keep meditating.
|
||||
This is the exact time that it is most needed, but clearly it has not been instilled as a habit yet.
|
||||
Iit has been a lot of work to get myself to sit so this practice has been spotty.
|
||||
</p>
|
||||
<p>
|
||||
Obviously as this is getting posted a day late this blog falls into that category.
|
||||
I had it written by the end of the day on friday but did not have it edited and posted until saturday.
|
||||
</p>
|
||||
<p>
|
||||
It is only when under pressure that I can really see how well my routine holds up.
|
||||
A lot of my habits around getting things done have held up reasonably, while self care has fallen apart.
|
||||
That makes sense to me.
|
||||
I have only implemented a lot of the self care and quality of life actions in the last 6-months to a year while the learning and exercising has been an integral part of my life for over a decade.
|
||||
</p>
|
||||
<p>
|
||||
I still have plenty of time, even though it often does not feel that way, and these things can be fixed.
|
||||
I do tend to focus on giving myself a hard time when I don’t perform up to my standards but I am trying to extract some good from it in the form of a lesson instead.
|
||||
We often learn some of our most valuable lessons from difficult times if we remember to look.
|
||||
The current goal for me is to keep doing whatever I can while I take care of myself.
|
||||
That way I can get through this particular rough patch in life without trying to go so hard that I make it worse and it becomes more than I can handle.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 16h 9m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
2021-03-27 <a href="/blog/DisciplineAndMotivation">previous</a> / <a href="/blog/WhyAndGettingLost">next</a>
|
||||
</footer>
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
|
||||
<h2>
|
||||
Pets, Worry, and Information
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
I am just coming out of a long haul taking care of my Rabbit through a particularly rough time health wise.
|
||||
He had a gastric obstruction which essentially means that his gut was blocked.
|
||||
Rabbits have a digestive tract that is completely one way.
|
||||
They need to keep food moving through it or gas builds up.
|
||||
Because it is one way they can't burp or vomit to relieve the pressure.
|
||||
Eventually the stomach can't take the pressure and bursts.
|
||||
This is a very serious condition.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We struggled with meds, iv fluids, emergency food that can be given by a syringe, and multiple trips to the vet.
|
||||
There were a few days when I was sure that it would be my last with him.
|
||||
Thankfully we seem to be getting through it and he is eating and acting normally again.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This whole process got me thinking about pets and death in general.
|
||||
I had to come to terms with the fact that my friend of 7 years, who has been with me for 2 moves across the country, whose existence has been fundamental to my lifestyle and many of my life choices, won't be here someday.
|
||||
I have always known that would be the case but never had to face it so clearly.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Everything in life is transitory even though we like to think that it is not.
|
||||
I think the thing that helped me come to terms with his potential loss was knowing that I had done what I could.
|
||||
The first few days we went to the vet a couple of times for emergency care.
|
||||
I got given some meds to give him but because the visits were emergency and not planned appointments they did not have the time to really explain what whas going on and what could be done about it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The third visit was an appointment.
|
||||
We talked and I was asked how much I was comfortable doing.
|
||||
I got fluids and needles to inject them sub cutaneously to keep him hydrated.
|
||||
We went over his reaction to the meds and tweaked the doses.
|
||||
I was taught how his gut works, what the various parts are, and what foods would be better or worse for him in his condition.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Armed with this extra knowledge and these tools I was much more at ease.
|
||||
Even though he still had a few more very rough days before things turned around I was more at peace.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When we clearly know the boundaries of our control it is easier to let go of the other things.
|
||||
Until I knew what I could do, and that I was doing it, my worries extended to the entire situation, including the parts that no matter how hard I tried I could not directly affect.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I had no direct say in if he lived or died.
|
||||
His body was either going to heal or not.
|
||||
What I could do was give it the best chance, make the best environment, give him the right medication at the right time, and wait.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I am so glad that he is doing better.
|
||||
I love him deeply and having more time with him is invaluable.
|
||||
However he is transitory just like everything else.
|
||||
He is getting old so someday, possibly soon, he is going to die.
|
||||
I don't get to do anything about that.
|
||||
I can however enjoy the time that we have to the fullest and come to terms with that eventuality.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
So much worry comes from a lack of information.
|
||||
Not knowing enough about how we can affect a situation causes us to worry about everything.
|
||||
Next time I find myself overwhelmed, terrified about some possible outcome I am going to learn as much as I can.
|
||||
Find out what I can affect (and thus can take action as opposed to worrying), and what I can't (which is pointless to worry about anyway).
|
||||
There is no need to make difficult situations more so because of the way that we think.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Self directed learning
|
||||
</h2>
|
||||
<p>
|
||||
More and more these days we have access to all the information that we could possibly need to accomplish almost anything.
|
||||
Learning is no longer the solo scholarly pursuit that it used to be.
|
||||
Everything is connected.
|
||||
Immersing yourself in the various communities will guide you to the specific resources that you need for the later steps of sitting down and reading, practicing and experimenting yourself.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
The world is moving faster all the time and we need to be adaptable to keep up.
|
||||
Being committed to learning constantly is so valuable.
|
||||
Being able to learn effectively on your own is one of the most important skills and only becomes more so over time.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
When access is an issue, libraries usually provide free computer access.
|
||||
Another option is fantastic cheap little computers called Raspberry pi’s.
|
||||
They have most of the functionality of a full desktop and work wonderfully for reading documents or internet browsing.
|
||||
They are also a tinkerer’s dream (but that is not the purpose of this post).
|
||||
You can get a full setup for somewhere in the range of 150$ with monitor, keyboard and mouse.
|
||||
They come with a lot of educational tools built in that can help you learn how to program as well.
|
||||
All the information on them can be found at https://www.raspberrypi.org/ .The buy now section will direct you to sellers nearby.
|
||||
</p>
|
||||
<p>
|
||||
No longer is the problem a lack of information but an overabundance of it.
|
||||
The meat of the problem is finding the right information.
|
||||
Every field has subfields and even those have specialities.
|
||||
With all that out there.
|
||||
it is hard to parse.
|
||||
Is the information you find accurate? Is it relevant to what you want to do? There are rabbit holes to dive down everywhere.
|
||||
They can just as easily distract you as provide useful information.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
If you are learning purely for interest's sake then, by all means, follow your curiosity wherever it might take you and have fun.
|
||||
You can spend your whole life learning and not even scratch the surface of what humanity knows.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I am going to assume however that the learning you want to do has a purpose.
|
||||
Having a project in mind is a fantastic filter for looking at things.
|
||||
What is relevant to the project? We don’t always know when we start but we don’t have to.
|
||||
If you start working you can learn what you need to as you go.
|
||||
Part of learning on your own is that you get to apply what you learn as you learn it.
|
||||
That allows you to quickly see where you are running into roadblocks and need more research.
|
||||
It also helps with focussing your attention when you are looking for information.
|
||||
A goal makes you much more sensitive to relevant information as you contact it.
|
||||
Working through a problem in the background will snap your attention to anything you see that can help.
|
||||
</p>
|
||||
<p>
|
||||
There are online communities for almost everything out there somewhere and most are happy to share with people who are genuinely interested.
|
||||
Find a group that is already doing what you want to do and ask.
|
||||
Ask publicly at first rather than with private messages.
|
||||
Asking will often spark a discussion allowing the debate on the topic to inform and guide you to the things you need to know.
|
||||
Reddit is a great space when you find the right subreddits (and avoid the unpleasant ones).
|
||||
Social media is also very helpful, and a good old Google search will turn up tons of places people congregate to talk about their projects.
|
||||
It is often better to search for a community than just looking up the topic itself.
|
||||
The community will have already filtered out the bad information for you.
|
||||
</p>
|
||||
<p>
|
||||
Another resource I have found invaluable is podcasts.
|
||||
The world of podcasting has exploded in the last couple years and it now covers every topic imaginable.
|
||||
I find that a good way to get started is to try more general podcasts until you find one you like.
|
||||
If you know exactly what you want to find, looking for a subject specific podcast is great.
|
||||
but they tend to be a little less widely known and harder to find.
|
||||
This is especially true if you are just starting into an area and don’t know the various experts in the field.
|
||||
Something like the Joe Rogan Experience or the Tim Ferriss Show (general but with a focus on performance) have a wide variety of guests who are experts in a field.
|
||||
Many of the experts have their own shows, books, or recommendations for new people getting into the field.
|
||||
You can specialise more as you get more familiar with the podcasting space and start to get to know the names and work of the people working in your area of interest..
|
||||
</p>
|
||||
<p>
|
||||
Whether you are using a library computer, a Raspberry Pi, or a smartphone to access information online you can learn all your life.
|
||||
The variety that Reddit, podcasts and Google contain give you unprecedented access to anything that interests you.
|
||||
So go ahead and jump in, enjoy the ride.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
|
||||
<h2>
|
||||
Speed Reading Workbook
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
I have finally finished this workbook.
|
||||
It has languished as a pdf file only for a couple of months while I worked on other things.
|
||||
I wanted to have it as a functional epub file before I posted it here.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I spend a fair bit of time in the last couple weeks looking at extracted epub files to figure out their structure and the formatting that I needed to do to get everything working.
|
||||
It was pretty fun and like the website I really enjoyed doing it by hand.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This workbook is designed as help with practicing Tim Ferriss' speed reading technique.
|
||||
You can see his full explanation of it <a href="https://tim.blog/2009/07/30/speed-reading-and-accelerated-learning">here</a>.
|
||||
The workbook uses public domain text (Grimm's fairy tales) as the practice material and adds in the formatting as you work through it.
|
||||
Then takes it away to see if you can maintain the speed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I chose Grimm's fairy tales because they are easy to read for a variety of reading levels.
|
||||
My first iteration was using some of Seneca's letters but they were too hard to follow while trying to read quickly for the first time.
|
||||
I decided that as much as I loved the idea of sneaking some philosophy into the workbook it detracted from the actual skill that I was trying to build.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This particular technique is one that I have been using for a few years.
|
||||
I mainly use it for non fiction as it is definitely a bit of a strain to keep up for any length of time, so leisure reading just doesn't fit.
|
||||
I find that going through a text a couple of times fast as opposed to once slowly helps with both recall and highlighting the important points.
|
||||
Especially if you pause to take notes once in a while and try to write down the important points without referencing the book in between readings.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
After each story is a short section with the word count of the book to save time calculating your reading speed, and the last story of each section has some simple questions to get a ballpark of your retention while reading at an increased speed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I hope that this is as useful to others as it has been to me.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="/assets/files/SpeedReadingWorkbook.epub" download>Epub Download here</a><br><a href="/assets/files/SpeedReadingWorkbook.pdf" download>PDF Download here</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks for reading.
|
||||
Any feedback on this is welcome.
|
||||
I am looking into the possiblity of making a tool that lets you add the speed reading formatting of your choice to your own text on this website.
|
||||
That would let people make their own practice material if they wanted more then what was in the book.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
The Foundation
|
||||
</h2>
|
||||
<p>
|
||||
I think that the most important part of productivity is self care.
|
||||
You can have all the neat, time saving tricks in the world but if you are tired, can’t focus, or anything else it becomes much harder to implement them.
|
||||
Therefore ensuring that you can perform at your best often saves much more time then it takes.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
There is always a tradeoff when looking at time spent on an activity to improve your performance elsewhere.
|
||||
In the long run I think it is almost always worth it.
|
||||
If you are pressed up against a deadline and you really need to get something finished then of course making sure you exercise and get enough sleep is not going to be as important as just grinding out your work.
|
||||
Something like that should not take more than a couple of days though.
|
||||
Any longer and the value judgement flips.
|
||||
</p>
|
||||
<p>
|
||||
I really like the way that James Altucher puts it in his book Choose Yourself.
|
||||
There are a few core components that you need to take care of in order to function at your best.
|
||||
He specifies four: physical health, mental health, emotional health and spiritual health.
|
||||
</p>
|
||||
<p>
|
||||
Physical health is all the things that most of us know: exercise, eat well, sleep enough.
|
||||
They are the easiest ones to measure so if you are starting from scratch they are a good place to start.
|
||||
You don’t need to exercise for hours, eat a perfect diet, and religiously monitor your sleep environment and practices.
|
||||
You can and you will get better results but it takes more time and effort.
|
||||
If you want to stay simple you can take walks a couple times a day (the time outside especially also helps with some of the other areas), avoid processed foods (shop around the perimeter of the grocery store is often a good suggestion) and make sure you are getting around 8 hours of sleep at around the same time every night.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
He refers to mental health as exercising the brain.
|
||||
This is not quite the same as the way mental health is commonly used and is in no way a replacement for therapy or that type of mental work.
|
||||
For your mental health he suggests trying to generate 10 ideas every day.
|
||||
This is a fantastic exercise and also leaves you with a bunch of ideas you can pursue if you are ever looking for a change or just something to do.
|
||||
They don’t have to be good, just get a list of 10 done.
|
||||
Reading, math, programming, any sort of puzzle (sudoku, crossword etc), writing, drawing, sculpting or anything else that fits into the learning, puzzle, or creative fields will help support the health of your mind.
|
||||
A lot of skill development fits in here and it is a good place to invest time to build marketable skills.
|
||||
If you want to keep this minimal try reading a little before bed (learning something) and getting your ideas down (brain exercise).
|
||||
</p>
|
||||
<p>
|
||||
We are social animals and emotional health fits into that.
|
||||
Even for the introverts (like me) it is important to do something with others.
|
||||
Your preferences can dictate what that activity is but do something.
|
||||
Calling a friend for a chat, playing games together whether online or in person (if online try to use voice), or going to a group activity (sports, games, book club) all fit in here.
|
||||
Make sure that you do something each day that leaves you truly happy and not just the dopamine hit that a lot of our technology gives us these days.
|
||||
Baseline for this is to have a conversation, not just small talk, with someone who you genuinely enjoy being around each day.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Spiritual health is different for most people.
|
||||
In general the goal is to spend a little time in a place of peace with yourself.
|
||||
This could come through meditation (any type), prayer or anything else that you feel works.
|
||||
There is a fantastic quote from the French philosopher Blaise Pascal, "All of humanity's problems stem from man's inability to sit quietly in a room alone,".
|
||||
While this may not literally be the case I think intuitively the point he is getting at makes sense.
|
||||
Spending time with yourself is important.
|
||||
The noise of life distracts us from what is going on inside and it is important to give ourselves space to step back and just be.
|
||||
It is very interesting what sort of questions and answers you start coming up with if you commit to sitting in a room and having nothing to do but think for a time.
|
||||
Try to at least take a few minutes each day to just sit.
|
||||
Don’t touch your phone, watch tv, or even read.
|
||||
You don’t have to meditate necessarily, though it can be extremely helpful, just take some time to be you without any distractions.
|
||||
This of the four can be the hardest.
|
||||
We train ourselves to do the opposite and getting started can be very difficult but the benefits are enormous.
|
||||
</p>
|
||||
<p>
|
||||
I will dive into these topics more deeply another time but for now it is important to keep in mind that no matter how much you are trying to do, taking care of yourself will always pay off.
|
||||
Doing a little something for each of these every day will let you get more done in the time you spend working, enjoy your time more, and help keep you from burning out over the long haul.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
The Myth of Perfection
|
||||
</h2>
|
||||
<p>
|
||||
I am not sure if you have had this problem, maybe you have, maybe you haven’t.
|
||||
It seems to me something that plagues many of us and is often reinforced by our environment.
|
||||
It is expecting perfection from ourselves when we are fundamentally imperfect.
|
||||
</p>
|
||||
<p>
|
||||
I often try to fit too much in a day.
|
||||
Either planning it too granularly down to 15 minute intervals, or just making an unreasonably long list of things to get done.
|
||||
They could get done in a day for sure if I was a machine.
|
||||
I am not however and life is too variable to plan that way, then when I fail at getting something done, something unforeseen happens and my schedule falls apart, or I just did not properly estimate how long something would take me I feel terrible.
|
||||
</p>
|
||||
<p>
|
||||
Striving to do more is a good thing I think.
|
||||
We have limited time and it takes work to realise our dreams, however looking only to the future is a sure way to be miserable in the present.
|
||||
I struggle with this.
|
||||
I spend most of my time working towards some future reward, goal, or achievement, I don’t plan my schedule around things that make me feel good or allow me to recuperate.
|
||||
When I inevitably need some time to decompress I feel guilty for taking it.
|
||||
</p>
|
||||
<p>
|
||||
This is something I have been working on recently.
|
||||
Giving myself more space to make mistakes and more time to enjoy the moment.
|
||||
It is hard and I still feel like I should be doing more but I try to do it anyway in the hopes that over time I will accept it.
|
||||
Taking time for myself does allow me to work harder but it never feels that way at the time.
|
||||
</p>
|
||||
<p>
|
||||
In the fantastic book Deep Work by Cal Newport he speaks to the need to schedule downtime, decide in advance and write it into your calendar to give yourself space.
|
||||
It is often the case that our mind keeps working on a problem when we are no longer directly focussed on it, the eureka moment in the shower or the solution that pops into your head as you are falling asleep.
|
||||
By never taking the step back from the work we block out that diffuse thinking that allows for such intuitive leaps.
|
||||
He also strongly advises having a cutoff time for the work day.
|
||||
A time past which no work is allowed.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I have school and a number of projects including this blog that I am working on currently.
|
||||
It makes it hard to back away, it also means that at any point work is just a few steps away.
|
||||
I try to implement a cutoff, but when it gets to that point and my list has only a few items left I more often than not keep working.
|
||||
Then I stay up later to have a little time to decompress and it makes it harder to get up the next morning.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
This is doubly painful as it is much easier to schedule the earlier parts of the day then later.
|
||||
People are just waking up and you have not had so much time for things to deviate from the plan.
|
||||
If I am up at 5am I can often fairly solidly follow my schedule until 1 or 2pm, that is 8-9 hours of solid productive time before things begin to fall apart.
|
||||
If I need to run errands, have a short nap, or do any number of other things they can fit into this afternoon time and still give me a few more hours of work before I try to call the day at 5 or 6pm.
|
||||
</p>
|
||||
<p>
|
||||
If I stay up late and get up later it is much harder to get started.
|
||||
The gym is busy, the world is loud and I am already feeling bad for turning off my alarm.
|
||||
I often have a broken schedule from the start which makes me work later, get less done, and feel worse.
|
||||
The cycle repeats.
|
||||
</p>
|
||||
<p>
|
||||
I feel like for the most part this is one of the most predominant stresses in my day to day life.
|
||||
I can’t remember a day where I have not gone to bed feeling like I could have done more.
|
||||
I am also aware that this is likely one of the main changes that I could make to improve both my quality of life and productivity.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
When looking at it in the short term it seems counter intuitive, but in the long term a more reliably planned routine including time for rest and relaxation will reduce burnout and allow me to try and find what that ideal level of work is that I can accomplish in a day.
|
||||
I feel like my oscillations around this amount are getting smaller.
|
||||
I used to swing far into trying to get far too much done, and then crashing to getting almost nothing done for a number of days.
|
||||
The extremes are now less extreme and I hope that over time it can settle completely into a steady stream of productivity.
|
||||
</p>
|
||||
<p>
|
||||
Thank you for reading.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Where I started:
|
||||
</h2>
|
||||
<p>
|
||||
I have always been fairly competitive and enjoyed pushing myself.
|
||||
From sports at a young age to chemistry and computer science in university I don’t generally shy away from the difficult.
|
||||
I am also lazy however and don’t like to exert myself unnecessarily.
|
||||
A classic case of preferring to work smart over hard.
|
||||
</p>
|
||||
<p>
|
||||
It has only been in the past few years that I have really begun to make a study of performance optimization.
|
||||
There were a few books on studying better that I read before that, but it was never a large focus in life until recently.
|
||||
Like many people who go down this road I got my start with Tim Ferriss’ 4 hour series.
|
||||
His results first approach drew me in quickly and I drew some parallels between what he was suggesting and what I already did.
|
||||
Specifically what I did with games.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I have long been an avid gamer, board games, video games, role-playing games and any other type of game I can get my hands on.
|
||||
The structured systems have always fascinated me and I am the sort of player (that some dislike) who spends a large amount of time thinking about the games and their systems.
|
||||
Figuring out how they interact and seeing if any interactions I can find break the system and provide easier or unintended paths to victory.
|
||||
</p>
|
||||
<p>
|
||||
It was not until I saw his approach to applying the same sort of deconstruction to challenges in life that the two worlds connected.
|
||||
I had always treated games as something separate living in their own space but that is no longer the case.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Over the last few years I have read dozens of books on everything including business, learning, fitness, health (physical and mental), focus, discipline and scheduling.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Like with games however I have run into another problem.
|
||||
Especially with games that are not online my academic interest sort of consumes all the time I spend on the pursuit.
|
||||
Some of the information I have been able to implement but it has not been a large portion.
|
||||
I am aiming to change that.
|
||||
</p>
|
||||
<p>
|
||||
My plan is to work to create tools to help facilitate the implementation of the various techniques that I have read about and record my success (or failures) at the implementations themselves.
|
||||
</p>
|
||||
<p>
|
||||
As this is my first blog post it is a pretty exciting time, anyone who either reads this near its posting, or who reads this far back (I am committing to one post a week) you have my thanks.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
This Website
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
For the last little while I have been working on making this rebuild of my website and it is finally at the point where everything works and it can replace my WordPress one.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I am not going to say that it is finished because it certainly isn't, I don't know if it will ever be.
|
||||
I think it is going to keep evolving as my knowledge of website design increases and I discover more of my personal style.
|
||||
In its current state it has all the information of the previous one.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Visually I know that this is a downgrade.
|
||||
Currently it is mostly plain text and images with very little styling, but I love it.
|
||||
It is something that I have created myself from scratch and this has a couple distinct advantages to me.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
I know it inside and out.
|
||||
This means that I can have it do anything I want and have the highest level of control over it possible.
|
||||
If something is not working correctly I can fix it.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It is independent.
|
||||
With no libraries or outside generators being used if support for something stops it won't affect me.
|
||||
Putting in the extra work now to program it from the ground up means that it won't ever need to be rebuilt because something is no longer supported.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It is simple.
|
||||
This is not the same as easy.
|
||||
When I first made my WordPress site at the beginning of this year it took me all of a few hours to get it up and running.
|
||||
Not counting moving all the articles over and formatting them this one took weeks.
|
||||
I did not track the time it took, nor did I work a consistent amount of time each day.
|
||||
This counts learning all the html, css, javascript and php.
|
||||
It also includes learning how to set up my own local lamp stach web server at home to test it and make sure everything was working before uploading.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It is fast.
|
||||
Being written with no extra complexity and with each page being a raw php file means that there is minimal information being sent and minimal extra computation before the page is ready.
|
||||
This makes the site feel much more responsive and is something that I personally appreciate.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It is mine.
|
||||
It is hard to describe how differently I feel about this website compared to the previous one.
|
||||
The previous one felt like something I curated and took care of, but there was little emotional investment in the site itself.
|
||||
It worked an looked decent so I was not really interested in tweaking or improving it because of that feeling of distance.
|
||||
Now my mind is swimming with all sorts of ideas of things to try, what sort of look I want to end up with, and all sorts of other stuff.
|
||||
I want to iterate on this and improve it.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The whole process has taught me a lot and having even a basic knowledge in these skills is very freeing.
|
||||
I now know how to make what I want web wise and get it up there.
|
||||
I think that personal websites are becoming more and more necessary these days for a few different reasons.
|
||||
Job searching is a big one.
|
||||
Being able to show your work is more important than ever and a personal website lets you share what you do completely on your own terms.
|
||||
The other one is having a space online that is yours.
|
||||
With more and more of our online interactions taking place through some companies portal it is easy to forget how much the interface can influence how we interact.
|
||||
There is also the whole issue of privace when your entire online presence is at the behest of a few companies.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I want to take a minute to talk about the simplicity point that I made earlier.
|
||||
I listened to a really interesting <a href="https://youtu.be/rI8tNMsozo0">talk on simplicity</a>.
|
||||
It is programming focussed so might be a little hard to follow, but I think that the main points apply to anything.
|
||||
The more complicated someting is the more points of failure there are.
|
||||
Ther harder it is to change, and the more unforseen problems we run into.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is important to take the time to ensure that the things that we create are as simple as possible while still doing everything they need to do.
|
||||
It often makes them harder to make in the first place but the extra investment of time and energy upfront make maintaining and modifying them much simpler.
|
||||
Overall it saves much more time then it takes, but the time saved is spread out over years and is less noticeable.
|
||||
Kind of like good <a href="/blog/habits">habits</a> where the cost is now and the rewards are later.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I am very happy with it so far and look forward to continually working on it and learning more about web design.
|
||||
I am going to be helping my parents with their business website in the near future which is a great application for everything I am learning here.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thanks for reading
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Why
|
||||
</h2>
|
||||
<p>
|
||||
This week I had a fantastic conversation that started a cascade introspection that I feel I need to write about.
|
||||
The question was on the existence of God, more generally on the existence of something outside ourselves, and even more generally the all encompassing question of why?
|
||||
</p>
|
||||
<p>
|
||||
All my thoughts seem to circle this question either closely or at a bit of a distance.
|
||||
It is the” big question” and is phrased in all sorts of ways.
|
||||
What is the meaning of it all? Does God exist? What started everything? All lines of inquiry are attempts to answer this question at various scales.
|
||||
We can answer small why’s but it is the question you can keep asking as it gets bigger and bigger until it is unanswerable.
|
||||
</p>
|
||||
<p>
|
||||
It is important to be able to recognize unanswerable questions and allow them to be.
|
||||
That does not mean that it is useless to pursue answers.
|
||||
The honest pursuit of this question guides us toward the best in ourselves.
|
||||
On the other hand, it is often when we presume we have an answer that things go wrong.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Life beyond survival is each person’s personal quest to try and answer why; a constant exploration.
|
||||
While the answer can never be complete, (the universe is too complicated for that) the search gives life meaning and we can understand it better.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
I have been focussing a lot on philosophy these days.
|
||||
All forms of inquiry used to be under the umbrella of philosophy before being spun off into sub categories.
|
||||
So in this case I don’t differentiate them when I refer to philosophy in this sense.
|
||||
I have been reading older texts like Seneca’s letters, Epictetus, Laozi and am working my way towards more contemporary philosophers.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
One of the books that is making me think a lot is a much more recent work, not necessarily formal philosophy, called A Field Guide to Getting Lost by Rebecca Solnit.
|
||||
I am almost halfway through.
|
||||
It is a collection of stories about being lost.
|
||||
Not just physically, but also in all sorts of other ways.
|
||||
Lost in history: by tracing back her family history and where the stories have fallen away, people have passed away etc.
|
||||
Lost in life: by struggling to find what to do and where to go with the plan for her life, and others.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
The purpose of the book to me seems to be that there are different ways to go about being lost and being comfortable in that state.
|
||||
You can be lost unintentionally.
|
||||
This is when you think you know where you are, move ahead, and then discover that you really have no idea where you might be.
|
||||
This type of being lost is what most of us normally think about when we hear the word lost.
|
||||
It is the type that is generally scary.
|
||||
You find yourself in an unknown space with no preparation, no knowledge, no idea of if you are going to be able to find your way back.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
However you can set out to get lost.
|
||||
You can analyze the space you are moving into and prepare.
|
||||
You can have the confidence going in that you can handle what is going to happen even if you don’t know what that might be.
|
||||
This is the lost that comes with exploration.
|
||||
Refusing to get lost in this way is the refusal to do anything new, the refusal to move out of your comfort zone and, the refusal to grow or change.
|
||||
</p>
|
||||
<p>
|
||||
It is nearly impossible to live life without getting lost.
|
||||
The question I have had to ask myself while I am reading this book is; do I want to prepare myself and get lost on purpose, wait until getting lost is forced upon me, or try to live without growing or changing doing my best to never get lost.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Phrased like that it does not seem like much of a choice.
|
||||
I have never looked at being lost in that way before and I am starting to see how that view has been limiting me.
|
||||
It brings me back to an idea that I heard from Dilbert’s author Scott Adams when he was a guest on a podcast.
|
||||
He focuses almost purely on process and very little on goals.
|
||||
This is because no matter how hard you try you can never be sure how it will turn out.
|
||||
Having rigidly defined goals means that you are expecting life to unfold in a linear manner, no getting lost, no unexpected changes.
|
||||
The road of life is not that smooth.
|
||||
By focusing on process you ensure two things.
|
||||
Firstly, that you are as prepared as you can get.
|
||||
Processes build skill, competence, and more familiarity with whatever subject they surround.
|
||||
They necessarily build the tools that allow you to feel comfortable getting lost.
|
||||
Secondly, processes keep you moving without defining where you need to go.
|
||||
They leave you open to exploration and changing course as opportunities arise.
|
||||
</p>
|
||||
<p>
|
||||
Scott seems to completely embrace this idea of getting lost on purpose and building in yourself the capability to navigate this state.
|
||||
</p>
|
||||
<p>
|
||||
In this life there are nearly an infinite number of dimensions to explore.
|
||||
We have the standard 3 spatial dimensions and time of course but often I have disregarded everything else.
|
||||
Those are the dimensions that are objective.
|
||||
The ones that we all agree on but subjectively not all that exists.
|
||||
Ideas, emotions, states of consciousness, spirituality, and anything else where experiences can be explored even though they are different for everyone.
|
||||
I can get lost in them all.
|
||||
It is through this getting lost that I can search for the answer to “why”.
|
||||
I am going to do my best to be prepared and to get lost with intention so that I can search actively and not just have to make the best of wherever I find myself, and whatever tools I have that may or may not help me.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time: 15h 39m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
<!-- prettier-ignore -->
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div id="content">
|
||||
<h2>
|
||||
Writing
|
||||
</h2>
|
||||
<p>
|
||||
Missed the post last week.
|
||||
No excuses that I am going to trot forward, but there was something more important going on so I had to prioritize.
|
||||
</p>
|
||||
<p>
|
||||
I have been writing a lot lately.
|
||||
Not necessarily structured writing or with a point for anyone but myself.
|
||||
It has not just been sitting down to write either, it has gotten to the point where I am carrying around a notebook and pen with me everywhere I go.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Most of what I am writing is my thoughts.
|
||||
I am finding it useful for a few reasons.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Firstly it slows me down.
|
||||
While I am writing I am focussed only on that single thought and it really forces me to look at it and analyze it in a way that never happens when I am just thinking.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
Secondly it lets me see my thoughts without any of the clouding that memory gives.
|
||||
So much of how we remember things is coloured by our current state of mind and warped by time.
|
||||
Having my thoughts written down lets me know exactly what was going through my head at a given moment.
|
||||
</p>
|
||||
<p>
|
||||
It would be nice to always have my laptop on me.
|
||||
Keeping my notes digitally does wonders for organization, but it is not practical and I find that physically writing helps with slowing down more.
|
||||
I don’t often transcribe the notes into files but I do keep my notebook organized with dates and page numbers.
|
||||
</p>
|
||||
<p>
|
||||
The more I am writing the more I want to write, I think that without a doubt it is the most useful habit I have picked up and it both clarifies my thoughts and teaches me about myself.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
It also shows where I am confused.
|
||||
Looking back at some of my notes they don’t necessarily make much sense even though the thought felt like it did at the time.
|
||||
This is a practice in communication with myself for now and hopefully these skills will translate into communicating well with others.
|
||||
</p>
|
||||
<p>
|
||||
I don’t use my phone for notes anymore, it is much slower than both typing on a keyboard and writing by hand, it also has too many other distractions and is just unpleasant to use for this task.
|
||||
I find that overall I am using my phone for less and less.
|
||||
Other than texting and phone calls, everything I use it for these days is something I am trying to cut out, I am honestly debating going back to a clamshell, or at least not carrying my phone with me all the time, but I would rather use it wisely as it is still a fantastic tool.
|
||||
I am looking at it as more of an emergency tool though.
|
||||
If I am lost I can use maps, if I really need to look something up I can.
|
||||
This is quite the tangent but it is just where my mind is going at the moment.
|
||||
</p>
|
||||
<p>
|
||||
I am not going to keep the blog solely focussed on productivity.
|
||||
I find that my mind is moving to philosophy and other questions and I am going to let this evolve with me.
|
||||
It is still something I am very interested in and so I expect it to continue showing up, but I won't be so stringent in my topic selection in the future.
|
||||
</p>
|
||||
<p>
|
||||
I am going to keep writing and hopefully I can keep finding more time to write.
|
||||
Some of it will be useful to others and will hopefully make its way up onto the website but the majority of it is just for me.
|
||||
</p>
|
||||
<p>
|
||||
I think that it is something that everyone should try, it is a behaviour that is fairly easy to implement; you can just start writing out your inner monologue and who cares what it looks like, it is only for you.
|
||||
It also forces patience and introspection which is something that I can always use more of and that a lot of my day to day life is lacking.
|
||||
</p>
|
||||
<p>
|
||||
Thanks for reading.
|
||||
</p>
|
||||
<p>
|
||||
Phone time for the past 2 weeks: 9h 45m
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<a href={{previous}}>previous</a> / <a href={{next}}>next</a>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
Loading…
Reference in a new issue