-
Open Franz DevTools. They don't have a UI for that but support team told me that
Ctrl+Alt+Shift+Fn+Upwill do it on Mac laptops. I assumeCtrl+Alt+Shift+PgUpshold work elsewhere. -
Franz is an Electron app. All chat windows are
WebViewelements and you can't inspect them. Select a webview element for Gitter (not the shadow DOM root inside it). Then open a console and type$0.openDevTools(). This is an Electron API. -
To turn on Gitter Next paste
document.cookie='gitter_staging=staged;domain=.gitter.im;path=/;expires=' + new Date(Date.now() + 31536000000).toUTCString()into the console of the new DevTools window. This one-liner is from Gitter Support article. -
You may need to restart Franz after that. Enjoy!
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>UnifiedBar</key> | |
| <dict> | |
| <key>DisclosureRequired</key> | |
| <string>ace440ac-b4f6-4b43-aade-02bba1589aef</string> | |
| <key>Enabled</key> | |
| <false/> |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>HKAtrialFibrillationDetectionOnboardingCompleted</key> | |
| <integer>1</integer> | |
| <key>HKElectrocardiogramOnboardingCompleted</key> | |
| <integer>3</integer> | |
| </dict> | |
| </plist> |
| #!/usr/bin/env bash | |
| # install docker | |
| # https://docs.docker.com/engine/installation/linux/ubuntulinux/ | |
| # install docker-compose | |
| # https://docs.docker.com/compose/install/ | |
| # install letsencrypt | |
| # https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04 |
Представьте что у вас есть некий класс API, который вы хотите использовать. Но вместо того чтобы всегда и везде писать
api.method(args) вы хотите просто писать use_dsl { method(args) } внутри вашего обьекта.
Имея следующие классы, соответственно, API и его клиента реализуйте метод use_dsl так, чтобы получить такой вот результат:
client = Client.new(ThirdPartyAPI.new)
client.run_local_variable
# Output:
I've been asked a few times over the last few months to put together a full write-up of the Git workflow we use at RichRelevance (and at Precog before), since I have referenced it in passing quite a few times in tweets and in person. The workflow is appreciably different from GitFlow and its derivatives, and thus it brings with it a different set of tradeoffs and optimizations. To that end, it would probably be helpful to go over exactly what workflow benefits I find to be beneficial or even necessary.
- Two developers working on independent features must never be blocked by each other
- No code freeze! Ever! For any reason!
- A developer must be able to base derivative work on another developer's work, without waiting for any third party
- Two developers working on inter-dependent features (or even the same feature) must be able to do so without interference from (or interfering with) any other parties
- Developers must be able to work on multiple features simultaneously, or at lea
| #!/usr/bin/env ruby | |
| require 'net/http' | |
| def convert_currency(from_curr, to_curr) | |
| doc = Net::HTTP.get('www.google.com', "/finance/converter?a=1&from=#{from_curr}&to=#{to_curr}") | |
| regexp = Regexp.new("(\\d+\\.{0,1}\\d*)\\s+#{to_curr}") | |
| regexp.match doc | |
| $1.to_f | |
| end |
| require 'net/ssh' | |
| #set :ssh_options, :verbose => :debug | |
| set :user, 'labuser' | |
| set :repo_url, "ssh://eti@localhost:9000/#{fetch(:application)}.git" | |
| $gateway_ssh = {} | |
| namespace :ssh do | |
| task :git_start do | |
| on roles(:all) do | |
| hostname = host.hostname.to_s |
| ;; put this into profiles.clj in ~/.lein folder | |
| {:user {:jvm-opts ^:replace ["-Xmx6G" | |
| "-XX:-OmitStackTraceInFastThrow"] | |
| :repl-options {:timeout 180000} | |
| :plugins [[cider/cider-nrepl "0.49.0"] | |
| [refactor-nrepl "3.10.0"] | |
| [jonase/eastwood "0.3.14"] | |
| [lein-ancient "1.0.0-RC3"] | |
| [lein-try "0.4.3"] | |
| [lein-cloverage "1.0.13"] |
The purpose of design is to allow you to do design later, and it's primary goal is to reduce the cost of change.
- Single Responsibility Principle: a class should have only a single responsibility
- Open-Closed Principle: Software entities should be open for extension, but closed for modification (inherit instead of modifying existing classes).
- Liskov Substitution: Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
- Interface Segregation: Many client-specific interfaces are better than one general-purpose interface.