Skip to content

Instantly share code, notes, and snippets.

View shyan1's full-sized avatar
๐Ÿ––
Working from home

shyan shyan1

๐Ÿ––
Working from home
View GitHub Profile
@shyan1
shyan1 / notes_scala3.md
Last active April 12, 2025 08:19
Scala 3 notes

Collections

  • when you have large lists, you may want to use a Vector or ArrayBuffer instead of a List.
    Vector is immutable just like List, but it works much faster with large lists when you need to access an element directly, like list(10_000_000). And ArrayBuffer is like a mutable version of Vector, so youโ€™ll use it when you have a sequence that youโ€™ll constantly be modifying.
val a = List(1,2,3)
val b = a :+ 4
@shyan1
shyan1 / type-systems.txt
Created March 30, 2024 07:34 — forked from dicej/type-systems.txt
Type system learning notes
Classes
* Keith Devlin - Introduction to Mathematical Thinking - https://www.coursera.org/learn/mathematical-thinking
* Michael Genesereth - Introduction to Logic - https://www.coursera.org/learn/logic-introduction
* Robert Harper - Homotopy Type Theory - http://www.cs.cmu.edu/~rwh/courses/hott/
Books and Articles
* Benjamin C. Pierce - Types and Programming Languages - https://www.cis.upenn.edu/~bcpierce/tapl/
* x775 - Introduction to Datalog - https://x775.net/2019/03/18/Introduction-to-Datalog.html
* Bartosz Milewski - Category Theory For Programmers - https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
* Benjamin C. Pierce et al. - Software Foundations - https://softwarefoundations.cis.upenn.edu/

Greasing the Skids: Building Remote Teams

In the wake of the virus that-must-not-be-named (which most people misname anyway), it seems like everyone and their cat has posted some sort of opinion or how-to on making remote work, work. This is a good thing! Working remotely, particularly full-time, is hard! I've done it for my entire career (aside from an odd 14 month office period in the middle that we shall not speak of), but more relevantly, for the past two years I've been responsible for building, managing, and enabling an entirely remote team, distributed across nine timezones. Remote teams don't just happen by installing Slack and telling everyone to work on their couch: they require a lot of effort to do correctly and efficiently. But, done right, it can be a massive multiplier on your team efficiency and flexibility.

Here's how we do it. I'm going to attempt to structure this post more towards management than engineering, and so I apologize in advance if I assume terminology or knowledge which

@shyan1
shyan1 / things-i-believe.md
Created October 22, 2023 03:33 — forked from stettix/things-i-believe.md
Things I believe

Things I believe

This is a collection of the things I believe about software development. I have worked for years building backend and data processing systems, so read the below within that context.

Agree? Disagree? Feel free to let me know at @JanStette. See also my blog at www.janvsmachine.net.

Fundamentals

Keep it simple, stupid. You ain't gonna need it.

@shyan1
shyan1 / safe_schedule.py
Created September 18, 2023 05:12 — forked from mplewis/safe_schedule.py
An implementation of Scheduler that catches jobs that fail. For use with https://github.com/dbader/schedule
import logging
from traceback import format_exc
import datetime
from schedule import Scheduler
logger = logging.getLogger('schedule')

Haskell, Stack and Intellij IDEA IDE setup tutorial how to get started

Upon completion you will have a sane, productive Haskell environment adhering to best practices.

Basics

  • Haskell is a programming language.
  • Stack is tool for Haskell projects. (similar tools for other languages include Maven, Gradle, npm, RubyGems etc)
  • Intellij IDEA IDE is a popular IDE.

Install required libraries

sudo apt-get install libtinfo-dev libghc-zlib-dev libghc-zlib-bindings-dev

@shyan1
shyan1 / CoC.ml
Created February 26, 2023 22:04 — forked from hirrolot/CoC.ml
How to implement dependent types in 80 lines of code
type term =
| Lam of (term -> term)
| Pi of term * (term -> term)
| Appl of term * term
| Ann of term * term
| FreeVar of int
| Star
| Box
let unfurl lvl f = f (FreeVar lvl)
@shyan1
shyan1 / Composable-Futures-with-Akka.txt
Last active February 16, 2023 03:33
Composable Futures with Akka 2.0
Youtube link: youtube.com/watch?v=VCattsfHR4o
Threads
- Independent, heap-sharing execution contexts
- Scheduled by the Operating System
- Creation is expensive in Java
- Pools create additional complexity
- Cache coherency issues
Standard Thread Pools
@shyan1
shyan1 / index.md
Created February 9, 2023 02:19 — forked from dacr/index.md
David's programming examples knowledge base / published by https://github.com/dacr/code-examples-manager #fecafeca-feca-feca-feca-fecafecafeca/8a714ee3bf95ef9089ca1b344add34d96a1c9746

David's programming examples knowledge base

akka

  • akka-actors-hello-world.sc : Simple akka hello world example
  • akka-http-client-json-stream.sc : Fully asynchronous http client call with json streamed response using akka-http will work in all cases, even with chunked responses !
  • akka-http-client-json-with-proxy.sc : Fully asynchronous http client call with json response using akka-http will work in all cases, even with chunked responses, this example add automatic http proxy support.
  • akka-http-client-json.sc : Fully asynchronous http client call with json response using akka-http will work in all cases, even with chunked responses