Skip to content

Instantly share code, notes, and snippets.


Michel Storms stormychel

View GitHub Profile
View removeSpecialCharacters.swift
import Foundation
extension String {
var withoutPunctuations: String {
return self.components(separatedBy: CharacterSet.punctuationCharacters).joined(separator: "")
let originalStr:String = "hello, (Nice to- meet 한국 école %&$you all. 123 ! Давай العربية 😀"
EnesKaraosman / RandomColor.swift
Last active Sep 4, 2022
Generatin random color in SwiftUI & UIKit
View RandomColor.swift
#if canImport(UIKit)
import UIKit
extension UIColor {
static var random: UIColor {
return UIColor(
red: .random(in: 0...1),
green: .random(in: 0...1),
blue: .random(in: 0...1)
MaciejGad / NSImageExtensions.swift
Created Mar 24, 2017
NSImage extensions for easy resizing, cropping and saving png images. Version updated for Swift 3. Originally by Raphael Hanneken
View NSImageExtensions.swift
extension NSImage {
/// Returns the height of the current image.
var height: CGFloat {
return self.size.height
/// Returns the width of the current image.
var width: CGFloat {
return self.size.width
keithweaver /
Created Mar 10, 2017
Create a folder with Python
import os
def createFolder(directory):
if not os.path.exists(directory):
except OSError:
print ('Error: Creating directory. ' + directory)
susieyy / PreviousViewController.swift
Created Aug 4, 2016
Access previous view controller in navigation stack
View PreviousViewController.swift
extension UIViewController {
var previousViewController: UIViewController? {
guard let navigationController = navigationController else { return nil }
let count = navigationController.viewControllers.count
return count < 2 ? nil : navigationController.viewControllers[count - 2]

There are certain files created by particular editors, IDEs, operating systems, etc., that do not belong in a repository. But adding system-specific files to the repo's .gitignore is considered a poor practice. This file should only exclude files and directories that are a part of the package that should not be versioned (such as the node_modules directory) as well as files that are generated (and regenerated) as artifacts of a build process.

All other files should be in your own global gitignore file:

  • Create a file called .gitignore in your home directory and add any filepath patterns you want to ignore.
  • Tell git where your global gitignore file is.

Note: The specific name and path you choose aren't important as long as you configure git to find it, as shown below. You could substitute .config/git/ignore for .gitignore in your home directory, if you prefer.

amro / gist:52846ea9c6eb3238b793
Last active Feb 14, 2022
Using an Instance of NSOrderedSet from Swift
View gist:52846ea9c6eb3238b793
// How one might use NSMutableOrderedSet from Swift -- mainly an example of how to
// call Objective-C classes from Swift. Pretty much what one would expect.
var set = NSMutableOrderedSet()
set.addObjectsFromArray(["bar", "wee", "foo"])
for i in 0..set.count {
jrochkind / report.markdown
Created Dec 19, 2012
Is Set faster than Array? Not neccesarily, depending on size of collection and number of reads vs writes. (MRI) (anything you notice invalid or could be done better about the way these benchmarks are done? Let us know, and give us code and results for the better way :) )
View report.markdown
# test_for == N / 5 -- approximate array average case?
{:benchmark_iterations=>10000, :class=>Array, :test_for=>5, :num_rewrites=>1, :col_size=>10, :num_reads=>10}
0.140000 0.000000 0.140000 ( 0.141915)
{:benchmark_iterations=>10000, :class=>Set, :test_for=>5, :num_rewrites=>1, :col_size=>10, :num_reads=>10}
0.190000 0.010000 0.200000 ( 0.198503)
{:benchmark_iterations=>10000, :class=>Array, :test_for=>50, :num_rewrites=>1, :col_size=>100, :num_reads=>10}