Skip to content
View ichi-h's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report ichi-h

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ichi-h/README.md

ichi-h

$ koka -e src/main.kk
Someone is struggling 😵‍💫 with a pretty complex domain issue.
🔧 Working on it... 🔧
End user: ☺️
Stakeholder: ☺️
Engineer: ☺️
Entire team: ☺️
You: ☺️
=============================
🎉 JUST SOLVED IT! 🎉
=============================
Building neat frameworks and systems did the trick!
Let's spread the ☺️ through elegant design!

Profile in PureScript

moduleMain (main) whereimportPreludeimportEffect (Effect)
importEffect.Class.Console (logShow)
importTypes.Language (Language(..))
importTypes.Profile (Profile(..))
me::Profile
me =
Profile
{ name: "ichi-h"
, location: "Hyogo, Japan"
, doing:
[ "Development"
, "Domain Modeling"
, "System Design"
, "Product Management"
]
, languages:
{ skilledIn: [ TypeScript, Golang, PHP, Python ]
, love: [ PureScript, Koka, Elm, Nix ]
, familiar: [ Rust, Haskell, FSharp ]
}
, quotes:
[ "子曰: 知之者不如好之者,好之者不如乐之者。"
]
, hobbies: [ "Cooking", "Philosophy", "Creation" ]
, links:
[ { site: "X"
, url: "https://x.com/ichi_h3"
}
, { site: "Zenn"
, url: "https://zenn.dev/ichi_h"
}
, { site: "Portfolio"
, url: "https://tech.ichi-h.com"
}
]
}
main::EffectUnit
main = do
logShow me

Development Motto in Koka

// Effect for spreading happiness to users.effecthappinessfunmakeHappy(user:string) :unit// Handler that implements the happiness effect.funwithHappiness(action:()-><happiness,console|e> a):<console|e> a
withhandlerfunmakeHappy(user) { println(user ++": ☺️") }
action()
structissuedescription:stringactor:stringstructoutcomebeneficiary:stringsolution:string// Resolves an issue by applying a solution.// Makes everyone happy as a side effect.funresolve(issue, solution):happinessoutcomevalusers = ["End user", "Stakeholder", "Engineer", "Entire team", "You"]
users.foreach fn(person) { makeHappy(person) }
Outcome(issue.actor, solution)
// Models an software development process where solving problems makes everyone happy.funmain()
valissue = Issue("a pretty complex domain issue", "Someone")
println(issue.actor ++" is struggling 😵‍💫 with "++ issue.description ++".\n")
println("🔧 Working on it... 🔧\n")
valoutcome = withHappiness fn()
resolve(issue, "Building neat frameworks and systems")
println("\n=============================")
println(" 🎉 JUST SOLVED IT! 🎉")
println("=============================")
println(outcome.solution ++" did the trick!")
println("Let's spread the ☺️ through elegant design!")

Setup

The development environment is on the develop branch.

git clone -b develop https://github.com/ichi-h/ichi-h.git
cd ichi-h
nix develop
pnpm i
# Develop
pnpm dev
# Build
pnpm build
# Format
pnpm format

Pinned Loading

  1. Wizleap-Inc/wiz-uiWizleap-Inc/wiz-uiPublic

    TypeScript 15 1

  2. portfolio-v2portfolio-v2Public

    Monorepo for ichi-h’s portfolio ecosystem.

    TypeScript

  3. dotfilesdotfilesPublic

    ichi-h's home server environment using Nix/NixOS and Kubernetes.

    Nix 1

  4. elmishelmishPublic

    A UI framework and UI library independent state management library inspired by the Elm architecture.

    TypeScript 3

  5. komoriutakomoriutaPublic

    [WIP] Power management system for on-premise servers.

    TypeScript

  6. tsuzuritsuzuriPublic

    A message-driven functional novel game engine inspired by the Elm Architecture.

    TypeScript 1