Experienced lawyer
Information technology | Commercial | Intellectual property | Privacy | Data protection | Banking and Finance | Government | Health
Iain McLaren is a lawyer specialising in information technology law, privacy, data protection, intellectual property, and general commercial contracting, with over 20 years of experience.
Iain is a Special Counsel at HWL Ebsworth Lawyers (https://hwlebsworth.com.au/people/iain-mclaren/).
Technology director, manager, and developer
Iain is also a technology director, manager, and developer.
Current projects
calmdocs | File syncronisation, simplified
- calmdocs File sync macOS, and iOS (iPhone and iPad) client and server. Like Google Drive and Dropbox. Built in golang and SwiftUI. Currently running in production.
Iain’s other open source projects and libraries
Golang
- calmdocs/dblocker A simple golang library to lock a shared database session for each “user” or “id” behind what is effectively a RWMutex.
- calmdocs/pubsub golang websocket pubsub library (built using gorilla/websocket).
- calmdocs/keyexchange golang Diffie–Hellman key exchange (DHKE) library built using the go standard library and golang.org/x/crypto.
- calmdocs/appexit golang library to call os.Exit() when specified events are triggered.
- calmdocs/ulimit golang library to set the maximum possible filesystem ulimit (for macOS).
Swift and SwiftUI
- calmdocs/SwiftPollManager Run a golang binary embedded in a native macOS SwiftUI app (long polling version).
- calmdocs/SwiftStreamManager Run a golang binary embedded in a native macOS SwiftUI app (websockets version).
- calmdocs/SwiftKeyExchange Swift Diffie–Hellman key exchange (DHKE) library built using the Apple CryptoKit Framework.
- calmdocs/SwiftWebsocketManager Swift websocket client and binary manager.
- calmdocs/SwiftProcessManager Swift package to manage running a binary using Process().