| import Foundation | |
| extension String { | |
| func exec (str: String) -> Array<String> { | |
| var err : NSError? | |
| let regex = NSRegularExpression(pattern: self, options: NSRegularExpressionOptions(0), error: &err) | |
| if err { | |
| return Array<String>() | |
| } | |
| let nsstr = str as NSString |
Ребята из "Манн, Иванов и Фербер" дали мне почитать перевод книги Кипа Торна "The Science of Interstellar". Читать ее на английском мне было откровенно слабО, но перевод не подкачал.
Вообще, стоит сказать - книга не только (и не столько) о фильме, но и, на самом деле, об устройстве мира. Часто встречающиеся в фантастических рассказах или популярных статьях понятия объяснены для тупиц вроде меня, доступным языком. При этом автору удалось удержаться от примитивных ничего не объясняющих фраз, что, согласитесь, здорово.
Книга читается достаточно легко еще и за счет того, что научные объяснения в ней лежат не в виде тупо фактов - тут, знаете ли, есть сюжет. Вся книга это история создания фильма и общения между его создателями. Я не большой фанат картины, на мой взгляд это была не самая крутая работа Ноллана, но читать о том, как строится сюжет было очень интересно. С удивлением узнал что Ноллан умеет не только _
| @implementation VanishingView | |
| - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { | |
| UITouch *t = touches.allObjects.firstObject; | |
| self.alpha = 1 - t.force/t.maximumPossibleForce; | |
| if (t.force == t.maximumPossibleForce) { | |
| [self removeFromSuperview]; | |
| } | |
| } |
| // | |
| // UIColor+GH.swift | |
| // Generally Helpful Software | |
| // | |
| // Created by Glenn Howes on 1/15/16. | |
| // Copyright © 2016 Generally Helpful Software. All rights reserved. | |
| // | |
| // MIT License |
| import AppKit | |
| class PreferencesViewController: NSTabViewController { | |
| private lazy var tabViewSizes: [NSTabViewItem: NSSize] = [:] | |
| override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) { | |
| super.tabView(tabView, didSelect: tabViewItem) | |
| if let tabViewItem = tabViewItem { |
| // This extension is a port of @venj's solution from 2011 | |
| // https://github.com/venj/Cocoa-blog-code/blob/master/Round%20Corner%20Image/Round%20Corner%20Image/NSImage%2BRoundCorner.m | |
| extension NSImage { | |
| func roundCorners(withRadius radius: CGFloat) -> NSImage { | |
| let rect = NSRect(origin: NSPoint.zero, size: size) | |
| if | |
| let cgImage = self.cgImage, | |
| let context = CGContext(data: nil, |

