-
Open Franz DevTools. They don't have a UI for that but support team told me that
Ctrl+Alt+Shift+Fn+Up
will do it on Mac laptops. I assumeCtrl+Alt+Shift+PgUp
shold work elsewhere. -
Franz is an Electron app. All chat windows are
WebView
elements 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.