To parallelise code, either multiple processes or multiple threads can be created from the main process.
- A bit faster to start up
- They can access all memory from all other threads, therefore sharing data is easy
- Lower memory consumption
package main | |
const INF = int(1e9 + 7) | |
func LowerBound(nums []int, key int) int { | |
lo := 0 | |
hi := len(nums) - 1 | |
ans := -1 | |
for lo <= hi { | |
mi := lo + (hi-lo)/2 |
To parallelise code, either multiple processes or multiple threads can be created from the main process.
Це коротка інструкція про те, як бути білим фрілансером. Почав писати для себе, бо не все знайшов в інтернеті. І вирішив, що це корисно всім, хто працює на біржі Upwork і хоче розібратися як легально там заробляти. Тут є офіційна стаття, яку я вирішив доповнити конкретним своїм прикладом.
Про відкриття фопа і його облікування не буду розписувати. Якщо у вас фопа немає, то краще звернутися до консалтингових компаній, які на цьому спеціалізуються. Єдине, на чому я хотів би зупинитися, це кведи. Бажано, щоб вони збігалися з послугами, які ви надаватимете. Наприклад, «Software Development» відповідає найкраще «62.01 Комп'ютерне програмування». Якщо у вас інші, то пошукайте те, чому найбільше відповідаєт
ruby '2.7.1' | |
gem 'rails', github: 'rails/rails' | |
gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data | |
# Action Text | |
gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra' | |
gem 'okra', github: 'basecamp/okra' | |
# Drivers |
This is just some code I recently used in my development application in order to add token-based authentication for my api-only rails app. The api-client was to be consumed by a mobile application, so I needed an authentication solution that would keep the user logged in indefinetly and the only way to do this was either using refresh tokens or sliding sessions.
I also needed a way to both blacklist and whitelist tokens based on a unique identifier (jti)
Before trying it out DIY, I considered using:
#!/usr/bin/env ruby | |
ADDED_OR_MODIFIED = /^\s*(A|AM|M)/.freeze | |
changed_files = `git status --porcelain`.split(/\n/) | |
unstaged_files = `git ls-files -m`.split(/\n/) | |
changed_files = changed_files.select { |f| f =~ ADDED_OR_MODIFIED } | |
changed_files = changed_files.map { |f| f.split(" ")[1] } |
/* | |
******************************************************************************** | |
Golang - Asterisk and Ampersand Cheatsheet | |
******************************************************************************** | |
Also available at: https://play.golang.org/p/lNpnS9j1ma | |
Allowed: | |
-------- | |
p := Person{"Steve", 28} stores the value |
Method lookup is a simple affair in most languages without multiple inheritance. You start from the receiver and move up the ancestors chain until you locate the method. Because Ruby allows you to mix in modules and extend singleton classes at runtime, this is an entirely different affair.
I will not build contrived code to exemplify the more complicated aspects of Ruby method lookup, as this will only serve to confuse the matter.
When you pass a message to an object, here is how Ruby finds what method to call:
class Node | |
attr_accessor :value | |
attr_accessor :next, :previous | |
def initialize(value) | |
@value = value | |
@next = nil | |
@previous = nil | |
end | |
end |