Skip to content

Instantly share code, notes, and snippets.

View ferologics's full-sized avatar
🔥
🔆 〰️ 🌑

Fero ferologics

🔥
🔆 〰️ 🌑
View GitHub Profile
@ferologics
ferologics / Animation.elm
Last active April 2, 2021 17:20
Elm Native UI <-> Lottie
module Animation
exposing
( view
, style
, source
, progress
)
import NativeUi as NativeUi exposing (Property, Node)
import NativeUi.Style as Style

Value Subtypes and Generalized Enums, a manifesto

The goal of this document is to provide a comprehensive view of what value subtyping might look like in Swift and demonstrate how generalized enums play a significant role in this future.

Note: All syntax used in this document that is not currently valid Swift syntax is only intended to serve the purpose of demonstrating ideas and to serve as a point of reference for future proposals. The intent is not to propose that this exact syntax be used.

Acknowledgement: some of the ideas in this document have been inspired by Niko Matsakis' blog post exploring similar ideas in the context of Rust: http://smallcultfollowing.com/babysteps/blog/2015/08/20/virtual-structs-part-3-bringing-enums-and-structs-together/

Definition

import Foundation
import RxSwift
// Source - https://medium.com/ios-os-x-development/learn-and-master-%EF%B8%8F-the-basics-of-rxswift-in-10-minutes-818ea6e0a05b
// MARK: - Observable seaquences
let helloSequence = Observable.just("goteeem")
let fibbonachiSequence = Observable.from([0,1,1,2,3,5])
let dictSequence = Observable.from([1:"Got",2:"Em"])
@ferologics
ferologics / Logger.swift
Last active July 2, 2018 20:29
Simple logger; to be modularised in to a framework
import Foundation
fileprivate let logName = "debug.log"
fileprivate var debugLog = "" {
didSet {
var _debugLog = debugLog
guard let rangeOfOldCharacetrs = _debugLog.range(of: oldValue) else { return }
_debugLog.removeSubrange(rangeOfOldCharacetrs)
let directory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
ACTION = build
AD_HOC_CODE_SIGNING_ALLOWED = NO
ALTERNATE_GROUP = staff
ALTERNATE_MODE = u+w,go-w,a+rX
ALTERNATE_OWNER = grantdavis
ALWAYS_SEARCH_USER_PATHS = NO
ALWAYS_USE_SEPARATE_HEADERMAPS = YES
APPLE_INTERNAL_DEVELOPER_DIR = /AppleInternal/Developer
APPLE_INTERNAL_DIR = /AppleInternal
APPLE_INTERNAL_DOCUMENTATION_DIR = /AppleInternal/Documentation
@ferologics
ferologics / tmux-cheatsheet.markdown
Created October 14, 2020 21:17 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@ferologics
ferologics / tmux.conf
Created October 14, 2020 21:21 — forked from spicycode/tmux.conf
The best and greatest tmux.conf ever
# 0 is too far from ` ;)
set -g base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000
require 'optimist'
require 'plist'
# Setups of source path mapping for the framework at framework_path,
# which has a dsym at dsym_path. It maps the source paths to the
# source_path root. Implementation borrowed from https://medium.com/@maxraskin/background-1b4b6a9c65be
def setup_dsym_source_mapping(framework_path, dsym_path, source_path)
binary_uuids = get_uuids_of_dwarf(framework_path)
dsym_uuids = get_uuids_of_dwarf(dsym_path)
verify_uuids(binary_uuids, dsym_uuids)
@ferologics
ferologics / DynamicFontLineHeight.swift
Created December 23, 2021 12:02
this example uses Dynamic Font with respect to line height line height
// MARK: - Helper
struct Layout { // this uses Dynamic Font and calculates spacing for correct line height
static let weight = SwiftUI.Font.Weight.semibold
static let size = UIFontMetrics.default.scaledValue(for: 17)
static let lineHeight = UIFontMetrics.default.scaledValue(for: 22)
static let uiFont = UIFont.systemFont(ofSize: size, weight: weight.toUIKit())
static let spacing = max(0, lineHeight - uiFont.lineHeight)
}

[fit] Algebra to

[fit] (Co)monads


$$Cᴮᴬ = (Cᴮ)ᴬ$$


$$Cᴮᴬ = (Cᴮ)ᴬ$$

$$Pair&lt;A,B&gt; → C ≅ A → B → C$$