text:
robotskirt is no longer supported and breaking?

When I forked the repo and ran npm install I get the below error. I opened an issue on the roboskirt repo and got a response recommending using hoedown.
Do you get the same error? And/Or have a work around?
I am running node v0.12.0, not sure if that is an issue?
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:85:43: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
inline void CheckArguments(int min, const v8::Arguments& args) {
                                          ^~~~~~~~~~~~~
                                          v8::internal::Arguments
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:86:11: error: member access into incomplete type 'const v8::internal::Arguments'
  if (args.Length() < min)
          ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: forward declaration of 'v8::internal::Arguments'
class Arguments;
      ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:87:38: error: 'New' is a private member of 'v8::PersistentBase<v8::Value>'
    throw v8::Persistent<v8::Value>::New(v8::Exception::RangeError(v8::String::New("Not enough arguments.")));
                                     ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:572:23: note: declared private here
  V8_INLINE static T* New(Isolate* isolate, T* that);
                      ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:87:80: error: no member named 'New' in 'v8::String'
    throw v8::Persistent<v8::Value>::New(v8::Exception::RangeError(v8::String::New("Not enough arguments.")));
                                                                   ~~~~~~~~~~~~^
../src/v8u.hpp:187:37: error: 'New' is a private member of 'v8::PersistentBase<v8::Value>'
  return v8::Persistent<v8::Value>::New(handle);
                                    ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:572:23: note: declared private here
  V8_INLINE static T* New(Isolate* isolate, T* that);
                      ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:187:47: error: too few arguments to function call, expected 2, have 1
  return v8::Persistent<v8::Value>::New(handle);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:572:3: note: 'New' declared here
  V8_INLINE static T* New(Isolate* isolate, T* that);
  ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8config.h:289:20: note: expanded from macro 'V8_INLINE'
# define V8_INLINE inline __attribute__((always_inline))
                   ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:225:34: error: too few arguments to function call, expected 2, have 1
  return v8::Integer::New(integer);
         ~~~~~~~~~~~~~~~~        ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:2012:3: note: 'New' declared here
  static Local<Integer> New(Isolate* isolate, int32_t value);
  ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:229:46: error: too few arguments to function call, expected 2, have 1
  return v8::Integer::NewFromUnsigned(integer);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~        ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:2013:3: note: 'NewFromUnsigned' declared here
  static Local<Integer> NewFromUnsigned(Isolate* isolate, uint32_t value);
  ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:233:22: error: no member named 'New' in 'v8::String'
  return v8::String::New(data);
         ~~~~~~~~~~~~^
../src/v8u.hpp:237:22: error: no member named 'New' in 'v8::String'
  return v8::String::New(str.data(), str.length());
         ~~~~~~~~~~~~^
../src/v8u.hpp:241:22: error: no member named 'NewSymbol' in 'v8::String'
  return v8::String::NewSymbol(data);
         ~~~~~~~~~~~~^
../src/v8u.hpp:245:26: error: too few arguments to function call, single argument 'isolate' was not specified
  return v8::Object::New();
         ~~~~~~~~~~~~~~~ ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:2388:3: note: 'New' declared here
  static Local<Object> New(Isolate* isolate);
  ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:253:1: error: no member named 'New' in 'v8::String'
__V8_ERROR_CTOR()
^~~~~~~~~~~~~~~~~
../src/v8u.hpp:250:50: note: expanded from macro '__V8_ERROR_CTOR'
  return v8::Exception::ERROR##Error(v8::String::New(msg));                    \
                                     ~~~~~~~~~~~~^
../src/v8u.hpp:254:1: error: no member named 'New' in 'v8::String'
__V8_ERROR_CTOR(Range)
^~~~~~~~~~~~~~~~~~~~~~
../src/v8u.hpp:250:50: note: expanded from macro '__V8_ERROR_CTOR'
  return v8::Exception::ERROR##Error(v8::String::New(msg));                    \
                                     ~~~~~~~~~~~~^
../src/v8u.hpp:255:1: error: no member named 'New' in 'v8::String'
__V8_ERROR_CTOR(Reference)
^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/v8u.hpp:250:50: note: expanded from macro '__V8_ERROR_CTOR'
  return v8::Exception::ERROR##Error(v8::String::New(msg));                    \
                                     ~~~~~~~~~~~~^
../src/v8u.hpp:256:1: error: no member named 'New' in 'v8::String'
__V8_ERROR_CTOR(Syntax)
^~~~~~~~~~~~~~~~~~~~~~~
../src/v8u.hpp:250:50: note: expanded from macro '__V8_ERROR_CTOR'
  return v8::Exception::ERROR##Error(v8::String::New(msg));                    \
                                     ~~~~~~~~~~~~^
../src/v8u.hpp:257:1: error: no member named 'New' in 'v8::String'
__V8_ERROR_CTOR(Type)
^~~~~~~~~~~~~~~~~~~~~
../src/v8u.hpp:250:50: note: expanded from macro '__V8_ERROR_CTOR'
  return v8::Exception::ERROR##Error(v8::String::New(msg));                    \
                                     ~~~~~~~~~~~~^
../src/v8u.hpp:260:32: error: too few arguments to function call, expected 2, have 1
  return v8::Number::New(number);
         ~~~~~~~~~~~~~~~       ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:1999:3: note: 'New' declared here
  static Local<Number> New(Isolate* isolate, double value);
  ^
In file included from ../src/robotskirt.cc:1:
../src/v8u.hpp:264:34: error: too few arguments to function call, expected 2, have 1
  return v8::Boolean::New(boolean);
         ~~~~~~~~~~~~~~~~        ^
/Users/bdoug/.node-gyp/0.12.0/deps/v8/include/v8.h:6194:1: note: 'New' declared here
Handle<Boolean> Boolean::New(Isolate* isolate, bool value) {
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/robotskirt/src/robotskirt.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Darwin 14.4.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/bdoug/Desktop/marked/node_modules/robotskirt
gyp ERR! node -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Darwin 14.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.1
npm ERR! code ELIFECYCLE

npm ERR! robotskirt@2.7.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the robotskirt@2.7.1 install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the robotskirt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls robotskirt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/bdoug/Desktop/marked/npm-debug.log

It looks like robotskirt doesn't use nan.h now that were in an era of a new v8 api. I'll remove it from the devDependencies for now.

authors: brianllamar chjj

repo: chjj/marked


text:
not is windows but macos

$ agent:init-instance
Exception: variable $platform:windows not found
Traceback:
  /Users/tom/.local/share/elvish/lib/github.com/chlorm/elvish-ssh/agent.elv, line 124:
        if (not $platform:windows) {
  [tty 8], line 1:
    agent:init-instance

shouldbe is-windows?

@gretel  It should be a little closer to being in a working state now, I fixed some of they more obvious issues I found.

@gretel It should be a little closer to being in a working state now, I fixed some of they more obvious issues I found.

thanks! but 😄
$ agent:init-instance
Exception: Cache directory does not exist, session not initialized
Traceback:
  /Users/tom/.local/share/elvish/lib/github.com/chlorm/elvish-ssh/agent.elv, line 81:
            fail 'Cache directory does not exist, session not initialized'
  /Users/tom/.local/share/elvish/lib/github.com/chlorm/elvish-ssh/agent.elv, line 134:
        cache-read
  [tty 40], line 1:
    agent:init-instance

btw, README.md should have epm:install instead of :imstall.

You have to call agent:init-session once per user login session.  It sets up the XDG_RUNTIME_DIR/agent-auto directory which agent:init-instance reads from.

source: gharchive/issue

authors: codyopel gretel

repo: chlorm/elvish-ssh

license_type: permissive

license_source: github-api


text:
Walletconnect is not suitable for integration by vite ES modules environment

Problem
Vite is ES module only. There are many codes in Walletconnect that rely on node builtins or others.
Reproduce
checkout branch issue#3
Run yarn dev for demo

index.ts:19
I don't know where this file comes from.
@walletconnect/socket-transport/src/index.ts
Could not load content for http://localhost:3000/@fs/Users/***/Desktop/vue-dapp/node_modules/@walletconnect/socket-transport/src/index.ts (HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE)

Code
The problem is import @walletconnect/web3-provider. If remove this line, it works.
import WalletConnectProvider from '@walletconnect/web3-provider'

export function useWalletconnect() {
  async function getProvider() {
    //  Create WalletConnect Provider
    const provider = new WalletConnectProvider({
      infuraId: '27e484dcd9e3efcfd25a83a78777cdf1',
    })

    //  Enable session (triggers QR Code modal)
    await provider.enable()

    return provider
  }

vite.config.js add below can solve the problem,
// https://github.com/vitejs/vite/issues/2782#issuecomment-810226342
  define: {
    global: JSON.stringify({}),
  },

but there is new problem...

https://github.com/vitejs/vite/issues/2782

some resource:

https://github.com/vitejs/vite/discussions/3126
https://github.com/vitejs/vite/issues/792
https://www.npmjs.com/package/buffer (not works)

How about building the library with vue-cli?

https://stackoverflow.com/questions/68935115/can-vue-cli-build-a-library-for-vue-3

Viable Solution
<script src="https://cdn.jsdelivr.net/npm/@walletconnect/web3-provider@1.6.5/dist/umd/index.min.js"></script>
refer: e791bec808a05fa0992eda934e5641fb095f22b6

Vue3 (head of your index.html)
    <script type="module">
      import { Buffer } from "buffer";
      import EventEmitter from "events";

      window.Buffer = Buffer;
      window.EventEmitter = EventEmitter;
    </script>

( "process.env": process.env, in define in vite.config.js)

Thanks, it solved the problem! With react and vitejs it was giving this bug, but with this everything is fixed

authors: Fy- chnejohnson pauloreis7

repo: chnejohnson/vue-dapp

license: MIT


text:
Automatically load wallet if its been previously connected.

As title says, Ive been testing out this module but found an issue that i cant seem to figure out.
When you connect your wallet to the app, if you refresh the app doesnt reload the wallet details and you have to press connect again.
Is there a way to automatically reconnect the wallet if its connected already?
I also dont want it to be invasive. If the user hasnt connected I dont want to force metamask to connect as soon as the user visits the app.

Hi @JABirchall thanks for the suggestion.
Currently I'm doing it manually, but we can think about extend that to became an optional init parameter.

const connectors: any = [
    new MetaMaskConnector({
        appUrl: window.location.href,
    }),
    new WalletConnectConnector({
        qrcode: true,
        rpc: Object.values(supportedChains).reduce((acc, cur) => ({ ...acc, [cur.chainId]: cur.rpcUrls[0] }), {}),
    }),
];

const { connectWith } = useWallet();
const web3 = window.ethereum as any;

if (web3.selectedAddress) {
    connectWith(connectors[0])
}

@re2005
I have tried something like that but my component fully loads before ethereum is even on the window.
I did find a hacky solution,
provider.value?.once('connect', _ => {
  if (!provider.value?.provider.isMetaMask) return;
  const e = (window as any).ethereum;
  const interval = setInterval(_ => {
    if(e.selectedAddress !== null) {
      connectWith(connectors[0])
      clearInterval(interval)
    }
  }, 200)
  setTimeout(_ => clearInterval(interval), 5000);
})

This works for the most part.

Yes, you will have some timing issues.
If you just wait 100ms before checking for the window.ethereum  it's already enough.
function sleep(ms: number) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

await sleep(100);
const w = window.ethereum as any;

if (w && w.selectedAddress) {
...

Will investigate the possibility to add it as a initial option.

Excuse me, I also wonder such function and I use  above and it seems work,I could get the ethereum address and balance of ETH, but for example when I try to get the balance of some contract, singer or provider is invalid, we know, it need a singer or provider before we start contract, code like this:
const web3 = window.ethereum as any;
const { wallet, connectWith } = useWallet()
const { address, balance, chainId, isActivated, dnsAlias, signer } = useEthers()
if (localStorage.getItem('token') != null && web3.selectedAddress) {
connectWith(connectors[0]).then(() => {
console.log(wallet.status) //connected
signer.value.connect(wallet.provider)
})
}
it shows error: Uncaught (in promise) Error: cannot alter JSON-RPC Signer connection (operation="connect", code=UNSUPPORTED_OPERATION, version=providers/5.7.1)
get balance of some contract token is below:
let contract = new ethers.Contract(
import.meta.env.VITE_CONTRACT_ADDRESS,
import.meta.env.VITE_CONTRACT_ABI,
signer.value
)
contract.balanceOf(address.value).then(res => {
onChainToken.value = Number(res) / Math.pow(10, 18)
})
I wonder how to get the signer valid, thank you guys! lol

Hi @YCL686 can you please provide a valid git repository with the reproduction code ? Without that is not possible to properly help you.

@YCL686 Why you do this signer.value.connect(wallet.provider)?
The signer.value is null before the wallet is connected. So if you want to make sure the signer.value has value, you can write the code in the onActivated() hook like
const { onActivated, onChanged } = useEthersHooks()

onActivated(({ signer, provider }) => {
  console.log(signer)
})

@YCL686 @re2005 I tried to implement the feature https://github.com/chnejohnson/vue-dapp/commit/5ad43f82a49745cef33708b37c60ea8bca97f5f4 though it only checks metamask provider once. Please help me review the code and make sure it meets your needs. Thanks

@chnejohnson this is really awesome feature, thank you. Let me test it and give you some feedback.

@chnejohnson Works nicely locally.
What do you think about something optional when initialising the plugin?
app.use(VueDapp, {
  autoconnect: true,
  networks: {
    80001: {
      chainId: ethers.utils.hexValue(80001),
      blockExplorerUrls: ['https://mumbai.polygonscan.com/'],
      chainName: 'Mumbai',
      rpcUrls: ['https://rpc-mumbai.maticvigil.com/'],
       nativeCurrency: {
        name: 'Mumbai',
        decimals: 18,
        symbol: 'MATIC',
    },
  },
})

@re2005 Cool, it's better. I have updated it in this optional way. Please help me to check, thanks 33aa82a38adf3ccdad137d26992b9a9c6adf11c6

@chnejohnson Please check my comments

@re2005 fixed 2f9432bd430ddc4f8c98456a526430530190770b

@chnejohnson Tested and is working really nicely! I had a small comment. Good to go! 🚀

Important to mention is a breaking change, since the network options now will be inside netwrks key.


text:
Add templates for creating Chocolatey and NuGet packages

Description
We should add nuspec templates that can be used for creating both a Chocolatey extension package, and to create an internal NuGet package we can consume in other projects.
Why Is It Needed
Doesn't make sense not to have it.
Related Issues and Tickets
N/A
Acceptance Tests

Running build script creates a Chocolatey package
Running build script creates a NuGet package

Done Checklist

[x] Add template for a Chocolatey Package
[x] Add template for a NuGet Package
[x] Enable option to create packages in Cake Recipe

:tada: This issue has been resolved in version 0.1.0 :tada:
The release is available on:

GitHub Release
Chocolatey Package

Your GitReleaseManager bot :package: :rocket:


text:
Explain why there are no packages in remote views

As a follow up to this issue it would be good to provide some text when

[x] first going to a remote source, to explain why there are no packages displayed
[x] when searching a remote source and no packages are found
[x] when searching a local source and no packages are found

Part of this has been completed, and merged into the develop branch.  Now, when initially opening a remote source and the Prevent Preload feature is enabled, a user will see the following:

@punker76 has now added a message when there are no packages found when searching:
https://user-images.githubusercontent.com/658431/78460887-10c1e980-76c5-11ea-8fd7-9d6a9a1ea5ec.gif

@punker76 I have re-opened this issue, as I believe we will need to add the same empty item data template to the local source, when searching for packages there.  I would like to take a stab at this, as I "think" I should be able to use what you have implemented in the remote source as a guide for what to do in the remote source.

I am happy to say that @punker76 was able to complete the remaining work, which added a similar empty item template to the local source view, which you can see here:

Which means that this can now be closed out.

I am going to remove this issue from the 0.18.0 milestone, as the main scope of work was done in this issue: https://github.com/chocolatey/ChocolateyGUI/issues/706 and therefore already covered in the generated release notes.

repo: chocolatey/ChocolateyGUI


text:
(virtualbox) Is failing the verifier

The latest version of virtualbox is currently failing the verifier, had a quick look at the gist and could not see any reason it should fail:
https://gist.github.com/1f9fb17975c2d5e947d9fb99cd3d48f9
Opening this, as I don't have the possibility myself to look into this until earliest next week.

Perhaps exempt ? Clearly package installs.

While the package definitely installs, I can't add an exemption until I know the reason why the automated test environment reports it as a failure.
It could be a bug in the test environment, in choco, or maybe even something completely different.
Until I know, I won't be adding any exemption for it.

I've been up and down now trying to figure out the issue with why the virtualbox package is failing, I'm unable to figure out the reason.
Everything I've tested so far have succeeded without any problems, the only thing left is to figure out if this may be caused by an unknown bug in the verifier.

I just added an exemption for the virtualbox package, we'll need to revisit the problem of the failing verifier at some point in the future.
As such, let us keep this issue open

This may help?
2017-11-06 14:21:58,237 16444 [INFO ] - VirtualBox Extension Pack Personal Use and Evaluation License (PUEL)
2017-11-06 14:21:58,242 16444 [INFO ] -
2017-11-06 14:21:58,242 16444 [INFO ] - License version 10, 20 July 2017
2017-11-06 14:21:58,247 16444 [INFO ] -
2017-11-06 14:21:58,247 16444 [INFO ] - PLEASE READ THE FOLLOWING ORACLE VM VIRTUALBOX EXTENSION PACK PERSONAL
2017-11-06 14:21:58,252 16444 [INFO ] - USE AND EVALUATION LICENSE CAREFULLY BEFORE DOWNLOADING OR USING THE
2017-11-06 14:21:58,252 16444 [INFO ] - ORACLE SOFTWARE. THESE TERMS AND CONDITIONS CONSTITUTE A LEGAL AGREEMENT
2017-11-06 14:21:58,257 16444 [INFO ] - BETWEEN YOU AND ORACLE.
2017-11-06 14:21:58,257 16444 [INFO ] -
2017-11-06 14:21:58,262 16444 [INFO ] - ORACLE AMERICA, INC. ("ORACLE") IS WILLING TO LICENSE THE PRODUCT DEFINED
2017-11-06 14:21:58,267 16444 [INFO ] - IN SECTION 1 BELOW ONLY ON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS
2017-11-06 14:21:58,272 16444 [INFO ] - CONTAINED IN THIS VIRTUALBOX EXTENSION PACK PERSONAL USE AND EVALUATION
2017-11-06 14:21:58,272 16444 [INFO ] - LICENSE AGREEMENT ("AGREEMENT").
2017-11-06 14:21:58,277 16444 [INFO ] -
2017-11-06 14:21:58,277 16444 [INFO ] - IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF AN ENTITY (RATHER THAN
2017-11-06 14:21:58,282 16444 [INFO ] - AS AN INDIVIDUAL HUMAN BEING), YOU REPRESENT THAT YOU HAVE THE APPROPRIATE
2017-11-06 14:21:58,282 16444 [INFO ] - AUTHORITY TO ACCEPT THESE TERMS AND CONDITIONS ON BEHALF OF SUCH ENTITY.
2017-11-06 14:21:58,287 16444 [INFO ] -
2017-11-06 14:21:58,287 16444 [INFO ] - 1 SUBJECT OF AGREEMENT. This Agreement governs your use of the binary
2017-11-06 14:21:58,292 16444 [INFO ] - software package called "Oracle VM VirtualBox Extension Pack" (the
2017-11-06 14:21:58,292 16444 [INFO ] - "Product"), which contains a set of additional features for "Oracle
2017-11-06 14:21:58,297 16444 [INFO ] - VM VirtualBox" that enhance the operation of multiple virtual machines
2017-11-06 14:21:58,297 16444 [INFO ] - ("Guest Computers") on a single physical computer ("Host Computer"). The
2017-11-06 14:21:58,302 16444 [INFO ] - Product consists of executable files in machine code, script files,
2017-11-06 14:21:58,302 16444 [INFO ] - data files, and all documentation and updates provided to You by Oracle.
2017-11-06 14:21:58,307 16444 [INFO ] -
2017-11-06 14:21:58,307 16444 [INFO ] - 2 GRANT OF LICENSE. Oracle grants you a personal, non-exclusive,
2017-11-06 14:21:58,312 16444 [INFO ] - non-transferable, limited license without fees to reproduce, install,
2017-11-06 14:21:58,312 16444 [INFO ] - execute, and use internally the Product on Host Computers for
2017-11-06 14:21:58,312 16444 [INFO ] - your Personal Use, Educational Use, or Evaluation. "Personal Use"
2017-11-06 14:21:58,317 16444 [INFO ] - is noncommercial use solely by the person downloading the Product
2017-11-06 14:21:58,317 16444 [INFO ] - from Oracle on a single Host Computer, provided that no more than one
2017-11-06 14:21:58,322 16444 [INFO ] - client or remote computer is connected to that Host Computer and that
2017-11-06 14:21:58,327 16444 [INFO ] - client or remote computer is used solely to remotely view the Guest
2017-11-06 14:21:58,327 16444 [INFO ] - Computer(s). "Educational Use" is any use by teachers or students in
2017-11-06 14:21:58,327 16444 [INFO ] - an academic institution (schools, colleges and universities) as part of
2017-11-06 14:21:58,332 16444 [INFO ] - the institution's educational curriculum. "Evaluation" means testing the
2017-11-06 14:21:58,332 16444 [INFO ] - Product for up to thirty (30) days; after expiry of that term, you are
2017-11-06 14:21:58,337 16444 [INFO ] - no longer permitted to use the Product. Personal Use and/or Educational
2017-11-06 14:21:58,337 16444 [INFO ] - Use expressly exclude any use of the Product for commercial purposes or
2017-11-06 14:21:58,342 16444 [INFO ] - to operate, run, or act on behalf of or for the benefit of a business,
2017-11-06 14:21:58,342 16444 [INFO ] - organization, governmental organization, or educational institution.
2017-11-06 14:21:58,347 16444 [INFO ] -
2017-11-06 14:21:58,347 16444 [INFO ] - Oracle reserves all rights not expressly granted in this license.
2017-11-06 14:21:58,352 16444 [INFO ] -
2017-11-06 14:21:58,352 16444 [INFO ] - 3 RESTRICTIONS AND RESERVATION OF RIGHTS.
2017-11-06 14:21:58,357 16444 [INFO ] -
2017-11-06 14:21:58,357 16444 [INFO ] - (1) The Product and copies thereof provided to you under this Agreement
2017-11-06 14:21:58,362 16444 [INFO ] - are copyrighted and licensed, not sold, to you by Oracle.
2017-11-06 14:21:58,362 16444 [INFO ] -
2017-11-06 14:21:58,367 16444 [INFO ] - (2) You may not do any of the following: (a) modify any part of the
2017-11-06 14:21:58,367 16444 [INFO ] - Product, except to the extent allowed in the documentation accompanying
2017-11-06 14:21:58,372 16444 [INFO ] - the Product; (b) rent, lease, lend, re-distribute, or encumber the
2017-11-06 14:21:58,377 16444 [INFO ] - Product; (c) remove or alter any proprietary legends or notices contained
2017-11-06 14:21:58,377 16444 [INFO ] - in the Product; or (d) decompile, or reverse engineer the Product
2017-11-06 14:21:58,377 16444 [INFO ] - (except to the extent permitted by applicable law).
2017-11-06 14:21:58,382 16444 [INFO ] -
2017-11-06 14:21:58,382 16444 [INFO ] - (3) The Product is not designed, licensed or intended for use in the
2017-11-06 14:21:58,382 16444 [INFO ] - design, construction, operation or maintenance of any nuclear facility
2017-11-06 14:21:58,387 16444 [INFO ] - and Oracle and its licensors disclaim any express or implied warranty
2017-11-06 14:21:58,392 16444 [INFO ] - of fitness for such uses.
2017-11-06 14:21:58,392 16444 [INFO ] -
2017-11-06 14:21:58,392 16444 [INFO ] - (4) No right, title or interest in or to any trademark, service mark, logo
2017-11-06 14:21:58,397 16444 [INFO ] - or trade name of Oracle or its licensors is granted under this Agreement.
2017-11-06 14:21:58,397 16444 [INFO ] -
2017-11-06 14:21:58,402 16444 [INFO ] - 4 TERMINATION. The Agreement is effective on the date you receive the
2017-11-06 14:21:58,402 16444 [INFO ] - Product and remains effective until terminated. Your rights under this
2017-11-06 14:21:58,407 16444 [INFO ] - Agreement will terminate immediately without notice from Oracle if
2017-11-06 14:21:58,407 16444 [INFO ] - you materially breach it or take any action in derogation of Oracle's
2017-11-06 14:21:58,412 16444 [INFO ] - and/or its licensors' rights to the Product. Oracle may terminate this
2017-11-06 14:21:58,412 16444 [INFO ] - Agreement immediately should any part of the Product become or in Oracle's
2017-11-06 14:21:58,417 16444 [INFO ] - reasonable opinion likely to become the subject of a claim of intellectual
2017-11-06 14:21:58,417 16444 [INFO ] - property infringement or trade secret misappropriation. Upon termination,
2017-11-06 14:21:58,417 16444 [INFO ] - you will cease use of and destroy all copies of the Product under your
2017-11-06 14:21:58,422 16444 [INFO ] - control and confirm compliance in writing to Oracle. Sections 3-9,
2017-11-06 14:21:58,427 16444 [INFO ] - inclusive, will survive termination of the Agreement.
2017-11-06 14:21:58,427 16444 [INFO ] -
2017-11-06 14:21:58,427 16444 [INFO ] - 5 DISCLAIMER OF WARRANTY. TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW,
2017-11-06 14:21:58,432 16444 [INFO ] - ORACLE PROVIDES THE PRODUCT "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
2017-11-06 14:21:58,432 16444 [INFO ] - EXPRESS OR IMPLIED. WITHOUT LIMITING THE FOREGOING, ORACLE SPECIFICALLY
2017-11-06 14:21:58,437 16444 [INFO ] - DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
2017-11-06 14:21:58,437 16444 [INFO ] - PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. The entire risk as
2017-11-06 14:21:58,442 16444 [INFO ] - to the quality and performance of the Product is with you. Should it
2017-11-06 14:21:58,442 16444 [INFO ] - prove defective, you assume the cost of all necessary servicing, repair,
2017-11-06 14:21:58,447 16444 [INFO ] - or correction.
2017-11-06 14:21:58,447 16444 [INFO ] -
2017-11-06 14:21:58,452 16444 [INFO ] - 6 LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW,
2017-11-06 14:21:58,452 16444 [INFO ] - IN NO EVENT WILL ORACLE OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,
2017-11-06 14:21:58,457 16444 [INFO ] - PROFIT, DATA, OR DATA USE, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL,
2017-11-06 14:21:58,462 16444 [INFO ] - INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY
2017-11-06 14:21:58,462 16444 [INFO ] - OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO
2017-11-06 14:21:58,467 16444 [INFO ] - USE THE PRODUCT, EVEN IF ORACLE HAS BEEN ADVISED OF THE POSSIBILITY OF
2017-11-06 14:21:58,467 16444 [INFO ] - SUCH DAMAGES. In no event will Oracle's liability to you, whether in
2017-11-06 14:21:58,467 16444 [INFO ] - contract, tort (including negligence), or otherwise, exceed the amount
2017-11-06 14:21:58,472 16444 [INFO ] - paid by you for the Product under this Agreement.
2017-11-06 14:21:58,472 16444 [INFO ] -
2017-11-06 14:21:58,477 16444 [INFO ] - 7 SEPARATELY LICENSED THIRD PARTY TECHNOLOGY. The Product may contain
2017-11-06 14:21:58,477 16444 [INFO ] - or require the use of third party technology that is provided with
2017-11-06 14:21:58,482 16444 [INFO ] - the Product. Oracle may provide certain notices to you in the Product's
2017-11-06 14:21:58,482 16444 [INFO ] - documentation, readmes or notice files in connection with such third party
2017-11-06 14:21:58,487 16444 [INFO ] - technology. Third party technology will be licensed to you either under
2017-11-06 14:21:58,487 16444 [INFO ] - the terms of this Agreement or, if specified in the documentation, readmes
2017-11-06 14:21:58,487 16444 [INFO ] - or notice files, under Separate Terms. Your rights to use Separately
2017-11-06 14:21:58,492 16444 [INFO ] - Licensed Third Party Technology under Separate Terms are not restricted
2017-11-06 14:21:58,492 16444 [INFO ] - in any way by this Agreement. However, for clarity, notwithstanding the
2017-11-06 14:21:58,497 16444 [INFO ] - existence of a notice, third party technology that is not Separately
2017-11-06 14:21:58,497 16444 [INFO ] - Licensed Third Party Technology shall be deemed part of the Product and
2017-11-06 14:21:58,502 16444 [INFO ] - is licensed to You under the terms of this Agreement. "Separate Terms"
2017-11-06 14:21:58,502 16444 [INFO ] - refers to separate license terms that are specified in the Product's
2017-11-06 14:21:58,507 16444 [INFO ] - documentation, readmes or notice files and that apply to Separately
2017-11-06 14:21:58,507 16444 [INFO ] - Licensed Third Party Technology. "Separately Licensed Third Party
2017-11-06 14:21:58,512 16444 [INFO ] - Technology" refers to third party technology that is licensed under
2017-11-06 14:21:58,512 16444 [INFO ] - Separate Terms and not under the terms of this Agreement.
2017-11-06 14:21:58,517 16444 [INFO ] -
2017-11-06 14:21:58,517 16444 [INFO ] - 8 EXPORT. Export laws and regulations of the United States and any other
2017-11-06 14:21:58,517 16444 [INFO ] - relevant local export laws and regulations apply to the Product. You
2017-11-06 14:21:58,522 16444 [INFO ] - agree that such export laws govern your use of the Product (including
2017-11-06 14:21:58,522 16444 [INFO ] - technical data) provided under this Agreement, and you agree to comply
2017-11-06 14:21:58,527 16444 [INFO ] - with all such export laws and regulations (including "deemed export" and
2017-11-06 14:21:58,527 16444 [INFO ] - "deemed re-export" regulations). You agree that no data, information,
2017-11-06 14:21:58,532 16444 [INFO ] - and/or Product (or direct product thereof) will be exported, directly or
2017-11-06 14:21:58,532 16444 [INFO ] - indirectly, in violation of these laws, or will be used for any purpose
2017-11-06 14:21:58,537 16444 [INFO ] - prohibited by these laws including, without limitation, nuclear, chemical,
2017-11-06 14:21:58,537 16444 [INFO ] - or biological weapons proliferation, or development of missile technology.
2017-11-06 14:21:58,542 16444 [INFO ] -
2017-11-06 14:21:58,547 16444 [INFO ] - 9 U.S. GOVERNMENT END USERS. Oracle programs, including the Product,
2017-11-06 14:21:58,547 16444 [INFO ] - any operating system, integrated software, any programs installed on
2017-11-06 14:21:58,552 16444 [INFO ] - hardware, and/or documentation, delivered to U.S. Government end users
2017-11-06 14:21:58,557 16444 [INFO ] - are "commercial computer software" pursuant to the applicable Federal
2017-11-06 14:21:58,557 16444 [INFO ] - Acquisition Regulation and agency-specific supplemental regulations. As
2017-11-06 14:21:58,562 16444 [INFO ] - such, use, duplication, disclosure, modification, and adaptation of
2017-11-06 14:21:58,562 16444 [INFO ] - the programs, including any operating system, integrated software,
2017-11-06 14:21:58,567 16444 [INFO ] - any programs installed on the hardware, and/or documentation, shall
2017-11-06 14:21:58,572 16444 [INFO ] - be subject to license terms and license restrictions applicable to the
2017-11-06 14:21:58,572 16444 [INFO ] - programs. No other rights are granted to the U.S. Government.
2017-11-06 14:21:58,577 16444 [INFO ] -
2017-11-06 14:21:58,577 16444 [INFO ] - 10 MISCELLANEOUS. This Agreement is the entire agreement between you
2017-11-06 14:21:58,582 16444 [INFO ] - and Oracle relating to its subject matter. It supersedes all prior or
2017-11-06 14:21:58,582 16444 [INFO ] - contemporaneous oral or written communications, proposals, representations
2017-11-06 14:21:59,685 16444 [INFO ] - 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2017-11-06 14:21:59,690 16444 [INFO ] - and warranties and prevails over any conflicting or additional terms
2017-11-06 14:21:59,690 16444 [INFO ] - of any quote, order, acknowledgment, or other communication between
2017-11-06 14:21:59,690 16444 [INFO ] - the parties relating to its subject matter during the term of this
2017-11-06 14:21:59,696 16444 [INFO ] - Agreement. No modification of this Agreement will be binding, unless in
2017-11-06 14:21:59,696 16444 [INFO ] - writing and signed by an authorized representative of each party. If any
2017-11-06 14:21:59,700 16444 [INFO ] - provision of this Agreement is held to be unenforceable, this Agreement
2017-11-06 14:21:59,700 16444 [INFO ] - will remain in effect with the provision omitted, unless omission would
2017-11-06 14:21:59,705 16444 [INFO ] - frustrate the intent of the parties, in which case this Agreement will
2017-11-06 14:21:59,705 16444 [INFO ] - immediately terminate. This Agreement is governed by the laws of the
2017-11-06 14:21:59,705 16444 [INFO ] - State of California, USA, and you and Oracle agree to submit to the
2017-11-06 14:21:59,710 16444 [INFO ] - exclusive jurisdiction of, and venue in, the courts of San Francisco
2017-11-06 14:21:59,710 16444 [INFO ] - or Santa Clara counties in California in any dispute arising out of or
2017-11-06 14:21:59,715 16444 [INFO ] - relating to this Agreement.
2017-11-06 14:21:59,720 16444 [INFO ] -
2017-11-06 14:21:59,720 16444 [INFO ] - Do you agree to these license terms and conditions (y/n)?
2017-11-06 14:21:59,725 16444 [INFO ] - License accepted. For batch installaltion add
2017-11-06 14:21:59,725 16444 [INFO ] - --accept-license=b674970f720eb020ad18926a9268607089cc1703908696d24a04aa870f34c8e8
2017-11-06 14:21:59,730 16444 [INFO ] - to the VBoxManage command line.
2017-11-06 14:21:59,730 16444 [INFO ] -
2017-11-06 14:21:59,735 16444 [INFO ] - Successfully installed "Oracle VM VirtualBox Extension Pack".

Closing this as I dont see a point and it passed the lifetime.

authors: AdmiringWorm ferventcoder majkinetor

repo: chocolatey/chocolatey-coreteampackages

license_source: bigquery


text:
New Package: AOMEI partition manager Standard and Light

These autopackages work fine except that the download target needs some regex processing. Hence Ketarin will fail because it doesn't have the direct download link.
Someone willing to fix this?

This package needs sources. I cannot find a download location for these files that doesn't work with hashes and stuff.

Original author hosts files for crawling sites to update, but they are 1990 slow.
For now, there is no other choice.

source: gharchive/pull-request


text:
Test merge queue with empty commit

Description
Part of #828
Developers certificate of origin

[X] I certify that this contribution is covered by the MIT license as defined in our LICENSE and adheres to the Developer Certificate of Origin.

Codecov Report

Merging #830 (b98adcc) into main (ba41c67) will increase coverage by 15.57%.
The diff coverage is n/a.

Additional details and impacted files

authors: codecov-commenter hmacdope

repo: choderalab/asapdiscovery


text:
Fixes small name typo

+1 for the docs!

Whoops! Sorry about that.
If you want to set RTD Theme with this PR as well

authors: Lnaden dgasmith

repo: choderalab/cookiecutter-compchem


text:
Instructions on loading local model

Add instructions in the deployment section when loading a local model from a serialized .pt file. When using it for inference it needs to run the .eval method to set the model to evaluation mode, before doing predictions.
Resolves #182

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@6229a3e). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files

authors: codecov-commenter ijpulidos

repo: choderalab/espaloma


text:
[DNM] hack to allow undefined stero when mapping

Wanted to have this bounce off our CI to make sure this doesn't cause problems elsewhere.

See https://github.com/choderalab/perses/issues/1161 for more details

@ijpulidos has a PR coming in that will do this in a cleaner way.

repo: choderalab/perses

license: mit


text:
[WIP] Stability improvements to BAR

I'm trying to make some stability improvements to address #185.
The current BAR code seems pretty complicated.  Not quite sure what it is doing anymore, so it may take me a bit of time to slog through and find the issues.

Is this ready to be tested on the problematic dataset?

I have a test script (locally) to test the problematic dataset, but I haven't yet found which part of the code causes the instability.  The code has now grown past my ability to easily comprehend what it does, so this will take some time.

I wonder if it makes sense to deprecate the public-facing BAR and tell users to use MBAR instead.  We could keep the BAR code as a reference for unit tests of 2-state MBAR.

I think other people will need the BAR functionality for a variety of purposes:

it should be far more robust than MBAR
comparison tests
lots of codes still don't support multistate energy computation

If we do want to reduce complexity, we should have BAR use a call to MBAR internally, but I don't think we should deprecate the external BAR interface.

I'm happy to defer to you on this.  I only mentioned this because I personally haven't touched the BAR code and you also seem to find parts of it unfamiliar.

Does anyone know who wrote the current BAR code, and what the various weird options are?  Was this @mrshirts?
I'm tempted to eliminate these options to maximize robustness and our ability to support the code.

I originally wrote it a while ago.  I did a lot of things to make it very
fast and to catch a lot of weird errors that people would notice -- BAR
tends to fail in weird ways when the distributions do not have any real
overlap.  I will take some time tonight to comment things.
For example, one speedup was to use false-position (zeroing a function)
instead of self-consistent iteration, which is converges usually in 5-6
iterations to high precision, instead of many, and is a closed method, so
doesn't diverge (as long as no overflow). I also have bisection in there
which  was used to test; in theory, that could be removed (although maybe I
left it in for some reason?)
The "iterated solution" option is so that one can use the "unoptimized"
BAR, which is the transition matrix estimator for the free energies.  It
just does a single evaluation.
On Wed, May 27, 2015 at 12:24 PM, John Chodera notifications@github.com
wrote:

Does anyone know who wrote the current BAR code, and what the various
weird options are? Was this @mrshirts https://github.com/mrshirts?
I'm tempted to eliminate these options to maximize robustness and our
ability to support the code.
—
Reply to this email directly or view it on GitHub
https://github.com/choderalab/pymbar/pull/186#issuecomment-105984367.

More than commenting is needed---I think this BAR code needs to be massively restructured if we want to keep it.
Can you justify keeping any specific features?  If not, I think we should rip it out and just have it call MBAR internally.

Can you justify keeping any specific features? If not, I think we should
rip it out and just have it call MBAR internally.

Well, I just stated why false position vs. self-consistent iteration --
better convergence and speed.  Do we need it?  It was useful in the past,
don't know if it is now. Could it be that bisection is fast enough?
Possibly.
I also stated why the 'iteration' didn't work.
Why don't I look at the data set, and you not worry about the BAR code?
There are other things you can be doing right now that you'll get more
value out of.

More than commenting is needed---I think this BAR code needs to be
massively restructured if we want to keep it.

If we can solve this particular convergence issue, then this seems like a
low yield investment -- there is 'needs' and 'would be nice'. Writing the
MBAR paper would be better.

If you want to keep the contents, I'll cede the fixing of #185 to you, @mrshirts.
Merging this change (which doesn't fix #185, but fixes another problem I spotted).

Just to weigh in on this - I don't currently have examples on hand, but we
have occasionally run into instances where we get something different out
of BAR and MBAR and in my view this alone is enough of an argument to NOT
just have BAR call MBAR. (My recollection is that we've seen it in both
directions, so sometimes MBAR giving something "better" and sometimes BAR
giving something "better"). Obviously these type of cases ought to be sort
of extreme examples/pathological in some sense, but...
On Wed, May 27, 2015 at 9:10 AM, John Chodera notifications@github.com
wrote:

I think other people will need the BAR functionality for a variety of
purposes:

it should be far more robust than MBAR
comparison tests
lots of codes still don't support multistate energy computation

If we do want to reduce complexity, we should have BAR use a call to MBAR
internally, but I don't think we should deprecate the external BAR
interface.
—
Reply to this email directly or view it on GitHub
https://github.com/choderalab/pymbar/pull/186#issuecomment-105980368.

--
David Mobley
Associate Professor
Department of Pharmaceutical Sciences
Department of Chemistry
3134B Natural Sciences I
University of California, Irvine
Irvine, CA 92697
dmobley@uci.edu
work (949) 824-6383
cell (949) 385-2436

Please let us know when you see differences between MBAR and BAR, @davidlmobley!  We can't fix issues if we don't have examples...

I'll certainly try to if I run across it again. Though to clarify - the
case I was talking about is actually NOT quite a case where a difference is
a problem. I'm talking about a case where I feed additional data into
MBAR (evaluations at additional lambda values other than just neighbors)
whereas I only put the pairwise data into BAR. So it's not clear that the
two ought to agree, since the data going in is different. So probably not
as clear cut as I originally made it sound.
On Wed, May 27, 2015 at 10:38 AM, John Chodera notifications@github.com
wrote:

Please let us know when you see differences between MBAR and BAR,
@davidlmobley https://github.com/davidlmobley! We can't fix issues if
we don't have examples...
—
Reply to this email directly or view it on GitHub
https://github.com/choderalab/pymbar/pull/186#issuecomment-106007520.

--
David Mobley
dmobley@gmail.com
949-385-2436

I'm talking about a case where I feed additional data into MBAR (evaluations at additional lambda values other than just neighbors) whereas I only put the pairwise data into BAR.

Ah, OK.  Nevermind, then---there's no reason these should necessarily agree, especially for poorly sampled systems.  I thought you ha meant you fed the same two-state data into both and got significantly different results.

MBAR -for just 2 states- should be exactly the same thing as BAR.  If it's
not, then we need to fix this.  MBAR for more than 2 states could of course
be
I think John was referring to BAR just being a wrapper for MBAR with just
two states, not for not using MBAR at all.
On Wed, May 27, 2015 at 1:35 PM, David L. Mobley notifications@github.com
wrote:

Just to weigh in on this - I don't currently have examples on hand, but we
have occasionally run into instances where we get something different out
of BAR and MBAR and in my view this alone is enough of an argument to NOT
just have BAR call MBAR. (My recollection is that we've seen it in both
directions, so sometimes MBAR giving something "better" and sometimes BAR
giving something "better"). Obviously these type of cases ought to be sort
of extreme examples/pathological in some sense, but...
On Wed, May 27, 2015 at 9:10 AM, John Chodera notifications@github.com
wrote:

I think other people will need the BAR functionality for a variety of
purposes:

it should be far more robust than MBAR
comparison tests
lots of codes still don't support multistate energy computation

If we do want to reduce complexity, we should have BAR use a call to MBAR
internally, but I don't think we should deprecate the external BAR
interface.
—
Reply to this email directly or view it on GitHub
https://github.com/choderalab/pymbar/pull/186#issuecomment-105980368.

--
David Mobley
Associate Professor
Department of Pharmaceutical Sciences
Department of Chemistry
3134B Natural Sciences I
University of California, Irvine
Irvine, CA 92697
dmobley@uci.edu
work (949) 824-6383
cell (949) 385-2436
—
Reply to this email directly or view it on GitHub
https://github.com/choderalab/pymbar/pull/186#issuecomment-106006743.

BTW, this particular change is fine to go in.  The reason it wasn't noticed is that this only gets triggered if the free energy is EXACTLY zero so that a relative error can't be computed, and I think even then the logic works most times (will do a check for relative_error < tolerance, which both 10**-15 and -5 are).

authors: davidlmobley jchodera kyleabeauchamp mrshirts

repo: choderalab/pymbar


text:
[WIP] speeding up sampler

The sampler is slow. See issue https://github.com/choderalab/torsionfit/issues/23
structure.createSystem(param) is the slowest step. It's already cached for each updated param.  What I am trying  to do is to cache the system and context for the structure, and use updateParametersInContext for each updated param  instead of calling structure.createSystem(param)
It's not working yet. Instead of using Parmed's structure.createSystem(param), I parameterize the structure with the updated param, then create OpenMM: :PeriodicTorsionForce with structure.omm_diehdral_force. I use this force to updateParametersInContext(self.context)
I am probably doing it wrong or missing something because I am getting the following error:
```Exception: getImplInContext: This Force is not present in the Context``

In order for force.updateParametersInContext(context) to work, the force object you are calling this function for must be present in the System object that the context was created from.  If you create a new force object using omm_dihedral_force(), this isn't true.
What you will need to do is to first copy the parameters from the new force to the old force, then call updateParametersInContext() for the old force that was present in the System object the context was created from.

You probably also want to add a sanity check to make sure that the torsion atoms still match up between the old and new torsion forces.  If these get reordered, things will get crazy.

I was chatting with @gregoryross about speeding up the evaluation of energy with the new parameters and this is what we thought would be more efficient than evaluating the entire energy of the system:

First evaluate the contribution to the potential energy of each force using ParmEd's energy_decomposition_system function.
store the energy for each force in a vector
write a function that evaluates only the torsion force. This should be fast with numpy. Or if it's not fast enough, we can try numba or cython to speed it up.

This will then be easy to extend for other parameters that we will want to sample in the future.

We could definitely evaluate just the torsion forces outside of OpenMM, but we lose a great deal of generality by doing so.  For this purpose, it may be fine, however---we are only sampling the torsion terms for a well-defined Fourier series. But when we eventually want to combine this approach with Bayesian forcefield parameterization for other terms, they will also be changing during the sampling procedure, and it helps to have the generality of OpenMM-computed forces.

What you will need to do is to first copy the parameters from the new force to the old force, then call updateParametersInContext() for the old force that was present in the System object the context was created from.

What would be the fastest way to do this? From looking at the system, I can remove the force and the new force I created. Is this the best way to do this?
Another thing we can do to speed up the energy evaluation is by splitting the Force object into groups and only evaluating the PeriodicTorsionForce.
I still think the approach here https://github.com/choderalab/torsionfit/pull/25#issuecomment-201392322 will be faster. We will lose generality for the Non-bonded forces, but aren't all the bonded forces well defined functions? So we wouldn't lose generality there.

What you will need to do is to first copy the parameters from the new force to the old force, then call updateParametersInContext() for the old force that was present in the System object the context was created from.

I did this but it didn't speed up the sampling. Now the slow step is load_parameters.

@swails may have some idea about how to speed that part up.
Another possibility is, as you suggested earlier, just create a separate system and parameter set that only has torsions.  You can use the full system without torsions to compute the (static) contribution to the energy from all other parameters, and then only sample over the torsion-relevant force term and parameters.  That might speed everything up.

I did this but it didn't speed up the sampling. Now the slow step is load_parameters.

I suspect this is the reason it's so slow.  Every time you call load_parameters, it makes a deep copy of the entire parameter set before assigning them.  If your parameter set is large (and you don't use many of the parameters), then this can get pretty expensive, especially if it's supposed to be high-throughput.
This is done for safety.  load_parameters assigns types via references, and these references are used to "compress" the type list that is assigned for each parameter.  So if you didn't do that copy, then any time you modified the original parameter set, it would silently modify the references in the Structure list_types as well, which is surprising behavior.
However, if you have this in the back of your mind and design a strategy where this behavior won't affect you, then you can probably comment-out the _copy(parmset) line and achieve a massive speed-up.  Some alternative approaches are

Only copy the parameters we actually plan on using.  This may still be slow, and would take a little work to avoid making duplicate parameters for every single term in the system (which would balloon the size of an Amber prmtop file, for instance).
Work with a copy of the parameter set that only has the set of parameters you are actually using for your system so that the deep copy is much faster.

Of 1 and 2, I'd opt for 2 since it doesn't require any code changes and may very well be faster than 1.  To do this, create a Structure, call load_parameters on it once at the beginning with the whole parameter set, then do
params = pmd.charmm.CharmmParameterSet.from_structure(struct)

That is the new parameter set that contains only the parameters used in your particular molecule.  If you just stick with using this set of parameters, it should hopefully speed things up significantly.
If the above suggestion doesn't work, then you'll really have to use cProfile to get a much finer picture of where the performance bottlenecks are.  Optimizing without a profiler is madness! :).  And cProfile is very easy to use:
bash$ python -m cProfile your_script.py <arguments>

Work with a copy of the parameter set that only has the set of parameters you are actually using for your system so that the deep copy is much faster.

Thanks @swails! This fix gave me a 10X speedup!

Wow! Nice! Is the performance acceptable now, or still too slow?

Wow! Nice! Is the performance acceptable now, or still too slow?

It's OK for a small data set, but it still becomes very slow when the data set (molecules and parameters) increase. After the PR is merged, I'll work on parallelizing the energy evaluation.

This is done for safety. load_parameters assigns types via references, and these references are used to "compress" the type list that is assigned for each parameter. So if you didn't do that copy, then any time you modified the original parameter set, it would silently modify the references in the Structure list_types as well, which is surprising behavior.

@swails, this behavior is actually something I want. Right now I update the parameterSet and then reparameterize the structure with load_parameters. But if I get rid of the copy, I can avoid doing this and just keep on updating the original parameterSet. This will speed up the sampler a lot because right now load_parameters is still the bottleneck. Can we add an option to load_parameters not to copy ParameterSet?

Sure. Just default it to True

Actually first to me a favor and profile at how much of a difference does it really make?
I'm not against the idea. I just want an idea of the cost of this operation.

OK. Sure.

This is a profile of one sample MCMC step
copy_torsion calls structure.load_parameters with the sub parameterSet.
In this output, _copy(paramset) is not commented out.
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
1    0.000    0.000    5.546    5.546 /Users/sternc1/anaconda/lib/python2.7/site-packages/pymc/MCMC.py:199(sample)
156    0.052    0.000    4.022    0.026 /Users/sternc1/anaconda/lib/python2.7/site-packages/torsionfit-0+untagged.214.g8b51808.dirty-py2.7.egg/torsionfit/TorsionScanSet.py:188(copy_torsions)
158    0.108    0.001    1.750    0.011 /Users/sternc1/anaconda/lib/python2.7/site-packages/ParmEd-2.4.4-py2.7-macosx-10.5-x86_64.egg/parmed/charmm/psf.py:453(load_parameters)

with copy commented out
ncalls  tottime  percall  cumtime  percall filename
1    0.000    0.000    4.578    4.578 /Users/sternc1/anaconda/lib/python2.7/site-packages/pymc/MCMC.py:199(sample)
147    0.045    0.000    3.176    0.022 /Users/sternc1/anaconda/lib/python2.7/site-packages/torsionfit-0+untagged.214.g8b51808.dirty-py2.7.egg/torsionfit/TorsionScanSet.py:188(copy_torsions)
149    0.095    0.001    0.260    0.002 /Users/sternc1/anaconda/lib/python2.7/site-packages/ParmEd-2.4.4-py2.7-macosx-10.5-x86_64.egg/parmed/charmm/psf.py:453(load_parameters)

Here I'm not loading parameters when updating parameters. I'm relying on the 'silent' change so I only create the new force new_force = structure.omm_dihedral_force() to copy into the torsions force in the system
ncalls  tottime  percall  cumtime  percall filename
1    0.000    0.000    4.033    4.033 /Users/sternc1/anaconda/lib/python2.7/site-packages/pymc/MCMC.py:199(sample)
137    0.041    0.000    2.721    0.020 /Users/sternc1/anaconda/lib/python2.7/site-packages/torsionfit-0+untagged.214.g8b51808.dirty-py2.7.egg/torsionfit/TorsionScanSet.py:188(copy_torsions)
2    0.001    0.001    0.004    0.002 /Users/sternc1/anaconda/lib/python2.7/site-packages/ParmEd-2.4.4-py2.7-macosx-10.5-x86_64.egg/parmed/charmm/psf.py:453(load_parameters)

Looking at this output, I'm not really sure why ncalls to copy_torsion is changing...

I see.  Yea, that's a pretty substantial time savings.  Go ahead and submit a PR for it (make sure you bump the version up a level for this).

I'm getting this travis error and I'm not sure why it's happening. This happens when test_torsionFitModel.py tries to set up the pymc model. It fails at self.mm_energy.min()
All the tests pass on my computer. At first I thought it was a numpy version problem. But I tried changing that and I'm still getting the same error.
======================================================================
ERROR: Failure: ValueError (zero-size array to reduction operation minimum which has no identity)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/torsionfit/tests/test_torsionFitModel.py", line 30, in <module>
    model = TorsionFitModel(param, stream, frag, platform=platform)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/torsionfit/TorsionFitModel.py", line 101, in __init__
    def mm_energy(pymc_parameters=self.pymc_parameters, param=param):
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/InstantiationDecorators.py", line 250, in deterministic
    return instantiate_n(__func__)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/InstantiationDecorators.py", line 243, in instantiate_n
    return Deterministic(parents=parents, **kwds)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/PyMCObjects.py", line 443, in __init__
    verbose=verbose)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/Node.py", line 214, in __init__
    Node.__init__(self, doc, name, parents, cache_depth, verbose=verbose)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/Node.py", line 129, in __init__
    self.parents = parents
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/Node.py", line 147, in _set_parents
    self.gen_lazy_function()
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/pymc/PyMCObjects.py", line 454, in gen_lazy_function
    self._value.force_compute()
  File "LazyFunction.pyx", line 257, in pymc.LazyFunction.LazyFunction.force_compute (pymc/LazyFunction.c:2409)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/torsionfit/TorsionFitModel.py", line 106, in mm_energy
    platform=self.platform)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/torsionfit/TorsionScanSet.py", line 252, in compute_energy
    self.mm_energy -= self.mm_energy.min() + Quantity(value=float(offset.value), unit=kilojoules_per_mole)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/simtk/unit/quantity.py", line 560, in min
    mymin = self._value.min(*args, **kwargs)
  File "/Users/travis/miniconda/envs/_test/lib/python2.7/site-packages/numpy/core/_methods.py", line 29, in _amin
    return umr_minimum(a, axis, None, out, keepdims)
ValueError: zero-size array to reduction operation minimum which has no identity

Thanks!  I'll see if I can debug in a separate PR.

authors: ChayaSt jchodera swails

repo: choderalab/torsionfit


text:
🛑 startupskku is down

In 14acb00, startupskku (http://startup.skku.edu) was down:

HTTP code: 0
Response time: 0 ms

Resolved: startupskku is back up in ff919db after 10 hours, 4 minutes.

repo: choi-spaceflo/uptime-status


text:
Add a release

Dude thank you for this code =)
Is it possible for you to tag a release with a version to your repo?
I am creating pisi packages (for PisiLinux ) and i need a download from github.
Cya!

Just tagged as v0.1. Thanks for the interest!

repo: chokepoint/CryptHook


text:
[Bug]: Conflict with the latest lualine

Bug Description
the position of lualine changes from the bottom to the top
my config
local M = {}

-- 延迟加载
M.recoderConfig = function()
	local recoder = try_require("recorder")
	if recoder == nil then
		return
	end

	local lualine = try_require("lualine")
	if lualine == nil then
		return
	end

	recoder.setup({
		mapping = {
			startStopRecording = "q",
			playMacro = "Q",
		},
	})

	local lualineZ = lualine.get_config().sections.lualine_z or {}
	local lualineY = lualine.get_config().sections.lualine_y or {}
	table.insert(lualineZ, { recoder.recordingStatus })
	table.insert(lualineY, { recoder.displaySlots })

	lualine.setup({
		tabline = {
			lualine_y = lualineY,
			lualine_z = lualineZ,
		},
	})
end

return M

Relevant Screenshot
https://github.com/chrisgrieser/nvim-recorder/assets/50194671/661131a8-8467-4ccb-be67-92f31e104dff
To Reproduce
Reproduction steps

Install the latest lualine and nvim-recoder
press q, q
switch another buffer

neovim version
$ lvim --version
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1703358377

Make sure you have done the following

[X] I have updated to the latest version of the plugin.

As far as I can tell, that is an issue related to lualine and not this plugin. The plugin does not do anything special in its statusline components that works differently from dozens of other plugins that offer statusline components.
Using the tabline is generally a bit error-prone, since depending on your lualine- and tab config, the tabline may disappear/change. I'd try using the statusline or the winbar. If that does not help, I recommend opening an issue at the lualine repo.

authors: chrisgrieser edte

repo: chrisgrieser/nvim-recorder