Skip to content

Instantly share code, notes, and snippets.

View k3zi's full-sized avatar
💭
生きている

KZ k3zi

💭
生きている
View GitHub Profile
@k3zi
k3zi / pronunciation-resources.md
Last active February 10, 2024 09:15
English and Japanese Pronunciation Resources

Pronunciation Resources

Comment if you would like to see a resource added to the list.

Guides / Courses

あいうえおフォニックス (🇬🇧 English, Web, Free)
English phonetics video series made for a Japanese audience.
https://youtube.com/channel/UCX2tvXwAItLs5RhFFSGn9LQ

Dogen: Japanese Phonetics Series (🇯🇵 Japanese, Web, Paid)

Japanese

Accent Tips

促音(そく\おん・そくおん)
・っ or ッ sound

促音便(そくお\んびん)
・At the end of the 連用形(勝ち、食い、帰り) when the 動詞 comes next to a て・た・たり、 a 促音(っ) is introduced in between.
・This only occurs with the following endings「ち」「ひ・い」「り」

@k3zi
k3zi / AsyncImage.swift
Created July 8, 2021 00:31
AsyncImage for iOS 13+
import Combine
import SwiftUI
/// A view that asynchronously loads and displays an image.
///
/// Loading an image from a URL uses the shared URLSession.
struct AsyncImage<Content> : View where Content : View {
final class Loader: ObservableObject {
@Published var data: Data? = nil
@k3zi
k3zi / Hirschberg.swift
Last active April 6, 2021 15:18
Hirschberg Sequence Alignment
import Foundation
enum Match: Equatable {
case indexAndValue(Int, Character)
case missing
}
enum Hirschberg {
static func align<T>(input1 seq1: [T], input2 seq2: [T], match: Int = 5, substitution: Int = -3, gap: Int = -2, offset1: Int = 0, offset2: Int = 0) -> (output1: [Match<T>], output2: [Match<T>]) where T: Equatable {
@k3zi
k3zi / NeedlemanWunsch.swift
Last active April 4, 2021 14:48
Needleman-Wunsch Algorithm
import Foundation
enum NeedlemanWunsch {
enum Origin {
case top
case left
case diagonal
}
@k3zi
k3zi / MPNavigationAnimatedTransitiion.swift
Last active May 3, 2017 07:08
A basic transition that properly pushes off transparent views
import UIKit
class MPNavigationAnimatedTransitiion: NSObject, UIViewControllerAnimatedTransitioning {
let operation: UINavigationControllerOperation
init(operation: UINavigationControllerOperation) {
self.operation = operation
}
@k3zi
k3zi / MyTableViewController.swift
Created June 17, 2016 06:30
Masks any cells behind the section header of a .Plain UITableView
override func scrollViewDidScroll(scrollView: UIScrollView) {
super.scrollViewDidScroll(scrollView)
for cell in self.tableView.visibleCells {
let hiddenFrameHeight = scrollView.contentOffset.y + self.tableView(tableView, heightForHeaderInSection: 0) - cell.frame.origin.y
if hiddenFrameHeight >= 0 || hiddenFrameHeight <= cell.frame.size.height {
self.maskCell(cell, fromTopWithMargin: hiddenFrameHeight)
}
}
@k3zi
k3zi / PSPDFUIKitMainThreadGuard
Last active August 29, 2015 14:03
Automatically kick all UIKit calls to Main Thread
#import <objc/runtime.h>
#import <objc/message.h>
// Compile-time selector checks.
#define PROPERTY(propName) NSStringFromSelector(@selector(propName))
// A better assert. NSAssert is too runtime dependant, and assert() doesn't log.
// http://www.mikeash.com/pyblog/friday-qa-2013-05-03-proper-use-of-asserts.html
// Accepts both: