Skip to content

Instantly share code, notes, and snippets.

------------------------------
********************
CONFIDENT RUBY
********************
------------------------------
каждый метод может состоять максимум из 4 частей
1 Collecting input
2 Performing work
3 Delivering output
@pavel-sazonov
pavel-sazonov / setGame.playground
Created March 17, 2019 08:10
Initialization of 81 unique cards with 4 properties
import UIKit
struct Card {
var symbolsCount = 1
var shape: Shape = .shapeOne
var color: Color = .colorOne
var filling: Filling = .filled
enum Shape {
case shapeOne, shapeTwo, shapeThree
var x = 31
var y = 13
x = x + y
y = x - y
x = x - y
@pavel-sazonov
pavel-sazonov / Best UIView Extension
Created April 3, 2019 18:06 — forked from parrotbait/Best UIView Extension
Add basic missing functionality to UIKit
extension UIView {
var isVisible: Bool {
set {
self.isHidden = !newValue
}
get {
return !self.isHidden
}
}
}
@pavel-sazonov
pavel-sazonov / tokens.md
Created April 13, 2019 18:29 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с данными сохранёнными в базе данных.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@pavel-sazonov
pavel-sazonov / gist:9fe5547a10e7e98a891de5050a296faa
Created April 21, 2019 15:58
extension to define contents of Navigation or Tabbar Controller
extension UIViewController {
var contents: UIViewController {
if let navcon = self as? UINavigationController {
return navcon.visibleViewController ?? self
} else if let tabcon = self as? UITabBarController {
return tabcon.selectedViewController ?? self
} else {
return self
}
}
@pavel-sazonov
pavel-sazonov / Utility.swift
Created April 23, 2019 11:33
ImageFetcher
//
// Utilities.swift
//
// Created by CS193p Instructor.
// Copyright © 2017 Stanford University. All rights reserved.
//
import UIKit
class ImageFetcher {
@pavel-sazonov
pavel-sazonov / madeUnique.swift
Created April 28, 2019 15:17
extension String foк unique string (untited1, untitled2, ...)
extension String {
func madeUnique(withRespectTo otherStrings: [String]) -> String {
var possiblyUnique = self
var uniqueNumber = 1
while otherStrings.contains(possiblyUnique) {
possiblyUnique = self + " \(uniqueNumber)"
uniqueNumber += 1
}
return possiblyUnique
}
@pavel-sazonov
pavel-sazonov / fib.swift
Created May 11, 2019 13:37
swift fibonacci
// 1. Recursive approach
func fib(_ n: Int) -> Int {
guard n > 1 else { return n }
return fib(n-1) + fib(n-2)
}
// Time Complexity: O(2^n)
// Space Complexity: O(2^n)
// 2. Iterative approach
func fib(_ n: Int) -> Int {
@pavel-sazonov
pavel-sazonov / uniquified.swift
Created May 18, 2019 19:59
make array uniq with stored sorting
extension Array where Element: Equatable {
var uniquified: [Element] {
var elements = [Element]()
forEach { if !elements.contains($0) { elements.append($0) } }
return elements
}
}
// because this will change sorting