Skip to content

Instantly share code, notes, and snippets.

View tomasen's full-sized avatar
😞

SHEN SHENG tomasen

😞
View GitHub Profile
@tomasen
tomasen / findSafePlace.swift
Created December 25, 2021 16:46
find a place by brutal force for WordCloudView
func findSafePlace(for size: CGSize, avoid occupiedAreas: [CGRect]) -> CGRect {
// keep trying random places until it fit
for _ in 0...100 {
let randomRect = CGRect(origin: CGPoint(x: CGFloat.random(in: 0...canvasSize.width),
y: CGFloat.random(in: 0...canvasSize.height)),
size: size)
var collision = false
for rect in occupiedAreas {
if rect.intersects(randomRect) {
collision = true
@tomasen
tomasen / WordSizeGetter.swift
Last active December 25, 2021 16:36
WordSizeGetter in WordCloudView demo
struct WordCloudView: View {
private let words: [WordElement] = [WordElement].generate(forSwiftUI: true)
@State private var canvasRect = CGRect()
@State private var wordSizes: [CGSize]
init() {
self._wordSizes = State(initialValue:[CGSize](repeating: CGSize.zero, count: words.count))
}
@tomasen
tomasen / RectGetter.swift
Created December 25, 2021 16:05
SwiftUI RectGetter example
struct RectGetterDemoView: View {
@State private var canvasRect = CGRect()
var body: some View {
Text("Demo").background(RectGetter($canvasRect))
}
}
struct RectGetter: View {
@tomasen
tomasen / WordCloudImageView.swift
Last active December 25, 2021 15:36
word cloud image view demo
var body: some View {
Image(uiImage: wordCloudImage(words))
.resizable()
.aspectRatio(contentMode: .fit)
.padding(10)
}
func wordCloudImage(_ words: [WordElement]) -> UIImage {
UIGraphicsBeginImageContextWithOptions(canvasSize, false, 1.0)
// Singleton makes sure there is only one "single" instance across the system.
// by binding to a tcp resource as specified by addr, eg. "127.0.0.1:51337".
func Singleton(addr string) {
go singletonServer(addr)
for {
// wait and confirm that server was started successfully
pid, err := getSingletonPID(addr)
if err == nil && pid == strconv.Itoa(os.Getpid()) {
return
}
IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
IKE:3DES_CBC/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024,
IKE:3DES_CBC/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/MODP_1024,
IKE:AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024,
IKE:AES_CBC_128/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/MODP_1024,
IKE:AES_CBC_192/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
IKE:AES_CBC_192/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1024,
IKE:AES_CBC_192/HMAC_SHA2_384_192/PRF_HMAC_SHA2_384/MODP_1024,
IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024,
# ipsec.secrets
# RSA private key for this host, authenticating it to any other host which knows the public part.
your.host.name : RSA "privkey.pem"
# username password list
your.username : EAP "your.password"
@tomasen
tomasen / ipsec.conf
Last active December 26, 2020 15:48
# ipsec.conf - strongSwan IPsec configuration file
# use IKEv2 protocol
keyexchange=ikev2
# server certificate
leftcert=cert.pem
# use eap-mschapv2 protocol - auth by username/password
FlipView(
VStack { Text("Front") },
VStack { Text("Back") },
tap: {
PlaySound(sound)
},
flipped: self.$flipped,
disabled: self.$disabled
)
@tomasen
tomasen / RandomFetch.swift
Created April 2, 2020 05:46
Fetch a random row from a CoreData entity
func RandomFetch() -> Item? {
let req = NSFetchRequest<NSFetchRequestResult>(entityName: "MyEntity")
req.predicate = NSPredicate(format: "duedate > %@", due as NSDate)
// find out how many items are there
let totalresults = try! mContext.count(for: req)
if totalresults > 0 {
// randomlize offset
req.fetchOffset = Int.random(in: 0..<totalresults)
req.fetchLimit = 1