hostess some times errors out and wipes out the hosts file

the following command, and similar commands that have errors will wipe out /etc/hosts forever:
 hostess add 1 12

panic: runtime error: index out of range

goroutine 1 [running]:
github.com/cbednarski/hostess.Hostlist.Less(0xc20806c600, 0x16, 0x20, 0x1, 0x0, 0xb)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/hostlist.go:78 +0x53e
github.com/cbednarski/hostess.(*Hostlist).Less(0xc20801e040, 0x1, 0x0, 0xb)
	<autogenerated>:2 +0xb5
sort.doPivot(0x380c90, 0xc20801e040, 0x0, 0x16, 0xc20801e040, 0xc91a)
	/usr/local/Cellar/go/1.4.2/libexec/src/sort/sort.go:127 +0x1d4
sort.quickSort(0x380c90, 0xc20801e040, 0x0, 0x16, 0x9)
	/usr/local/Cellar/go/1.4.2/libexec/src/sort/sort.go:173 +0xa9
sort.Sort(0x380c90, 0xc20801e040)
	/usr/local/Cellar/go/1.4.2/libexec/src/sort/sort.go:200 +0x7b
github.com/cbednarski/hostess.(*Hostlist).Sort(0xc20800a850)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/hostlist.go:140 +0x6c
github.com/cbednarski/hostess.(*Hostlist).Format(0xc20800a850, 0x0, 0x0, 0x0)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/hostlist.go:376 +0x5a
github.com/cbednarski/hostess.(*Hostfile).Format(0xc20800a840, 0x0, 0x0, 0x0)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/hostfile.go:170 +0x4f
github.com/cbednarski/hostess.(*Hostfile).Save(0xc20800a840, 0x0, 0x0)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/hostfile.go:182 +0xc6
github.com/cbednarski/hostess.MaybeSaveHostFile(0xc208064500, 0xc20800a840)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/commands.go:69 +0x17a
github.com/cbednarski/hostess.Add(0xc208064500)
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/commands.go:109 +0x371
github.com/codegangsta/cli.Command.Run(0x1eae70, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x211870, 0x1c, 0x0, ...)
	/Users/lucas.caro/gocode/src/github.com/codegangsta/cli/command.go:174 +0x1403
github.com/codegangsta/cli.(*App).Run(0xc208064280, 0xc20800a000, 0x4, 0x4, 0x0, 0x0)
	/Users/lucas.caro/gocode/src/github.com/codegangsta/cli/app.go:187 +0x1221
main.main()
	/Users/lucas.caro/gocode/src/github.com/cbednarski/hostess/cmd/hostess/hostess.go:117 +0x9b9

goroutine 2 [runnable]:
runtime.forcegchelper()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/proc.go:90
runtime.goexit()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/asm_amd64.s:2232 +0x1

goroutine 3 [runnable]:
runtime.bgsweep()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/mgc0.go:82
runtime.goexit()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/asm_amd64.s:2232 +0x1

goroutine 4 [runnable]:
runtime.runfinq()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/malloc.go:712
runtime.goexit()
	/usr/local/Cellar/go/1.4.2/libexec/src/runtime/asm_amd64.s:2232 +0x1

@lucascaro, you have the same error with ls command?

Thanks for the report. The corresponding GC thread may be a hint here, but it's odd that this only happens sometimes. Can you share any extra details here about how to make this happen consistently?
The fix for wiping out the hosts file is to write the contents to a temp file first and then move it, since move is an atomic operation (at least on *nix). On windows I don't think this can be prevented.
It also looks like I will need to add some input validation.

Sorry, this command will cause the error consistently. I wrote the title
before I remembered how to repro
On Wed, Oct 26, 2016, 11:55 AM Chris Bednarski<EMAIL_ADDRESS>wrote:

Thanks for the report. The corresponding GC thread may be a hint here, but
it's odd that this only happens sometimes. Can you share any extra
details here about how to make this happen consistently?
The fix for wiping out the hosts file is to write the contents to a temp
file first and then move it, since move is an atomic operation (at least on
*nix). On windows I don't think this can be prevented.
It also looks like I will need to add some input validation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cbednarski/hostess/issues/23#issuecomment-256443776,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP9ExC7uDtSTj6b7o8rReYPLZlTZjSOks5q36IigaJpZM4KhZST
.

Thanks for clarifying! I will check this out soon.


Update HFA return value section of ARM64 ABI docs

@sigatrev : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@sigatrev : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@corob-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@corob-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


[3.6][Bug] type auto-set for "tinyint" is "active" which is not a existed type

Bug report
What I did:
I have a column which type is tinyint(boolean),
And I use auto-set on CrudController
What I expected to happen:
The column should be treat as checkbox
What happened:
The type of this column is active, which is not existed on current version.
What I've already tried to fix it:
Edit "AutoSet.php", replace "active" to checkbox
Backpack, Laravel, PHP, DB version:
Backpack 3.6.31
Laravel 5.8
PHP 7.3.9
MySQL 5.7.24

Totally! Thank you @fzhantw , details inside your PR.


STM32: add as a new target

@areusch
This small pull request aims at adding the STM32 as a new target to a set of TVM targets.

@stoa shall we progress this one as well? i think it needs some lint fixes and perhaps a rebase.

@areusch
Hello, Andrew
Yes. If you agree it is ready to become a PR, I fix the issues and publish ?

@stoa yep it looks ok to merge to me, it just needs the rebase and lint fixing.

@areusch
Made lint checks and rebased. Please review.
cheers
Arthur

@stoa this looks ready to go when Jenkins is happy with it. I retriggered it to see if it will pass now.

@areusch
Hello, Andrew
It seems that the CI failed on some doc issues that look not related to this PR.
Can you double-check ?

@stoa agreed, i retriggered it. we were having some network flakiness last week, hopefully it's gone now.

ah--i think you need to sync the PR and re-run
docker/bash.sh ci_cpu tests/lint/git-clang-format.sh -i
sorry for this--the version of git-clang-format has changed i believe since the last commit here.

@areusch
Hello, Andrew
Seems to pass now.

thanks @stoa and sorry this took so long!


Missing validation on adding special characters only for Emails or User Name

Describe the bug
No 'Validation' message appears when we add only "Arithmetic characters" or Special characters in "User name/Email" field and click on 'check'.
(eg. *-+=^   or  #$%@ )
To Reproduce
Steps to reproduce the behavior:
1.Open App on Device
2. Click on "Account" icon
3. Enter User name/Email in "Username or Email" text field.
Note: Password should be only  "Arithmetic characters" or Special characters.
(eg. *-+=^   or  #$%@ )
4. Click on "Check" button.(at top right corner)
Expected behavior
Validation message should be appear when we click on the "Check" button. it should not allow '' "Arithmetic char" or Special char in "User name/Email" field.
**Screenshots **

Device: iphone 6 (11.2) , Android s6 (7.0)

Why not though, it could be a very secure user account IMO


[Fix]: handle anonymous functions

Fixes #2728.

I'm no expert in eslint, but is the check actually correct? I think an anonymous function could also be considered to be a stateless component.
I was thinking of something like
      if (
        node.type === 'FunctionDeclaration'
        && (node.id == null || isFirstLetterCapitalized(node.id.name))
        && utils.isReturningJSXOrNull(node)
      ) {

I'm no expert in eslint, but is the check actually correct? I think an anonymous function could also be considered to be a stateless component.
I was thinking of something like
      if (
        node.type === 'FunctionDeclaration'
        && (node.id == null || isFirstLetterCapitalized(node.id.name))
        && utils.isReturningJSXOrNull(node)
      ) {

As I read it, the code underneath will handle that case. It checks the variable that the anonymous function is being stored into.

Thanks! This does need a regression test first.

@odinho Since you made this PR from a fork that you don't own (whereby instead of odinho) I can't merge this. Can you please add me to https://github.com/whereby/eslint-plugin-react so I can force push to the PR branch?

@odinho Since you made this PR from a fork that you don't own (whereby instead of odinho) I can't merge this yet. Can you please add me to https://github.com/whereby/eslint-plugin-react so I can force push to the PR branch?

Oup. Why do I keep forgetting that this restriction exists. I've added you now :facepalm:

This indeed will solve #2728 but then components defined this way won't be recognized:
export default function () {
  return
Hello World

}

I think a better check would be:
if (
        node.type === 'FunctionDeclaration'
        && (!node.id || isFirstLetterCapitalized(node.id.name)) // skip first letter check if the node.id doesn't exists
        && utils.isReturningJSXOrNull(node)
) {

@jzabala thanks, i've added a test case and your suggested fix.


PostgreSQLSchemaManager doesn't find views columns

Hi,
The project i'm working on is using lodata for our postgres views, and it seems like it stoped working some time ago.
I went through the code to see what changed from our side, and it seems that the only thing that changed was that we've updated lodata to newer version.
After investigating why it is not working i've noticed that PostgreSQLSchemaManager -> selectTableColumns method is trying to find columns of provided table name, but because it's not a table, but a view - it doesn't find them.
Are you willing to add this functionality back ?
The query that's been built when trying to find columns data:
SELECT            a.attnum,                   quote_ident(a.attname) AS field,                   t.typname AS type,                   format_type(a.atttypid, a.atttypmod) AS complete_type,                   (SELECT tc.collcollate FROM pg_catalog.pg_collation tc WHERE tc.oid = a.attcollation) AS collation,                   (SELECT t1.typname FROM pg_catalog.pg_type t1 WHERE t1.oid = t.typbasetype) AS domain_type,                   (SELECT format_type(t2.typbasetype, t2.typtypmod) FROM                       pg_catalog.pg_type t2 WHERE t2.typtype = 'd' AND t2.oid = a.atttypid) AS domain_complete_type,                   a.attnotnull AS isnotnull,                   (SELECT 't'                    FROM pg_index                    WHERE c.oid = pg_index.indrelid                      AND pg_index.indkey[0] = a.attnum                      AND pg_index.indisprimary = 't'                   ) AS pri,                   (SELECT pg_get_expr(adbin, adrelid)                    FROM pg_attrdef                    WHERE c.oid = pg_attrdef.adrelid                      AND pg_attrdef.adnum=a.attnum                   ) AS default,                   (SELECT pg_description.description                    FROM pg_description WHERE pg_description.objoid = c.oid AND a.attnum = pg_description.objsubid                   ) AS comment FROM pg_attribute a, pg_class c, pg_type t, pg_namespace n WHERE a.attnum > 0 AND a.attrelid = c.oid AND a.atttypid = t.oid AND n.oid = c.relnamespace AND c.relkind = 'r' AND c.relname = 'users_view' AND n.nspname = ANY(current_schemas(false)) AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast') ORDER BY a.attnum

Hi @nepigu, yes views are supposed to work. Do you get a discovery error, or just an entity set that doesn't appear to have any properties?

Hi @27pchrisl, no, i don't get an error, but entity set has the only property which i set manually - id.  Please see screenshots attached with both working and not working examples.
Not working, view:

Working, table:

Another Q (I'm trying to create a breaking test case) - are you using discovery via an Eloquent model, or using SQLEntitySet directly? Could you provide the code that creates the set? Thanks!

I'm using SQLEntitySet, as views do not have eloquent models. Heres the code:
`$entityType = new EntityType('view_name');
$entityType->addDeclaredProperty('id', Type::string());
$entityType->setKey($entityType->getProperty('id'));
        $set = (new SQLEntitySet('view_name', $entityType))
            ->setTable('view_name')
            ->discoverProperties();
        Lodata::add($set);`

Hi, I need some more information about how the view is created.
If I create a really simple table named passengers with id and name columns, and then define the view as:
create view airview as (select id, name from passengers), then the "id" and "name" columns of the view are correctly identified.
Is there a simple reproduction you can send over? Thanks!

Hi, I've tried your query to create a new view, and the result is the same - i'm still getting only ids as a response.

We're using lodata 5.18, laravel 9.23 and php 8.0.22
The views are created exactly the same as in your example

Hi, it turns out this is due to https://github.com/doctrine/dbal/issues/5671
Lodata depends on doctrine/dbal:^3, so this update to DBAL 3.4 has been pulled in and has the behaviour change you are experiencing.
Based on the info in that ticket it doesn't sound like the maintainers are going to bring back the old behaviour, so I suggest either locking the DBAL version in your app to ~3.3.0 or manually entering the types into the Lodata EntityType.


[AutoDiff] Add negative test for TF-922.

TF-922: adjoint value type mismatch assertion failure during direct adjoint
accumulation in pullback generation.

Note: I'll soon start investigating this issue.

@swift-ci Please test tensorflow


How to build phalcon

Hello,
how can i build phalcon in order to update only files located in /builds/64bits/ ?
i dont use native php version, so i need to update the files in this directory only. But i dont know how :)
Thanks

This repository is only intended to support Zephir, you can better use the forum for questions like this: https://forum.phalconphp.com/


Create new SQL view which is connected by default to the active database

Is your feature request related to a problem? Please describe.
I created new view for SQL (1, 4), but can not execute entered SQL
Describe the solution you'd like
I would like to have new view with a connection (2) to currently active database (3).
If there is more then one active connections, then fill (2) by the database connection where my cursor is, eg. (3).

DBeaver associate new script with a connection under focus.

If such scenario doesn't work for you, please record a video showing your case.
Not sure we want to automatically associate a new script with any opened connection. Could you clarify the reason of such request?

Hello @KES777,
DBeaver would show "N/A" if your connection was not yet established. Are you sure this is not the case? Do you see any progress in the bottom right corner of DBeaver window?

Ok. Today I installed new OS and installed fresh copy of DBeaver.
I created first connection, PG driver was successfully downloaded and when I created new SQL tab active datasource was setup as expected.
After this I created second connection, connected to second database. I selected schema at second connection and created new SQL tab to run a query.

But active datasource is PG. I expect MSSQL, because current active database is MSSQL. (See on screen)
DBeaver version is 23.1.0

I reproduced the issue somehow:
0. Check Show all databases setting

Select dvdrental database as default
Put the selection to some schema from other database
Create new SQL Editor
See that the new editor's catalog and schema are defaults - dvdrental and public


[Stdlib][Build] Fix the standard library build for fully static Linux.

Mostly this just means adding Musl as a module dependency of various things and making sure that we build things for swift_static even if SWIFT_BUILD_STATIC_STDLIB isn't enabled.
There's also a slight difference in the declaration of memcmp(); musl's declaration is more like the one we have on Darwin.
rdar://123508245

This sits on top of #71847.

It's just this one changeset that needs reviewing here. The other changes come from upstream PRs that are being reviewed by others and that have already been updated, so please don't waste time looking at those.

@swift-ci Please smoke test


GCHandle like API for pinning span/memory

Today we have TryGetPointer but it's not safe to use unless you're using native memory or you pinned the underlying buffer. A safer API for pinning and unpinned outside of lexical scope and across async calls is needed. Maybe this should only be on memory and not span (though there might be cases for the latter).
/cc @jkotas @KrzysztofCwalina @mjp41

I think it should be something like:
struct PinnedMemoryHandle
{
     void Alloc<T>(Memory<T> memory);
     void Free();
     void * PinnedPointer { get; }
}

The usage pattern is same as GCHandle.

I like an API like @jkotas is proposing.  I think it makes sense, and helps me understand the correct usage of TryGetPointer.  Does this mean that TryGetArray would go away, and we would do the relevant GCHandle for pinning in Memory?

Would it be nicer for Memory to return one of these structs?
PinnedMemoryHandle Memory<T>.GetPinnedMemoryHandle()

struct PinnedMemoryHandle {
    void Free();
    IntPtr GetPinnedPtr()
}

Possibly, using IDisposable?

I think it should support IDisposable like
https://github.com/Drawaes/Leto/blob/master/src/Leto.Tls13/Internal/PointerFromMemory.cs
But obviously natively

These are "no copy" structs holding unmanaged resource. You have to be careful about not creating multiple copies,  disposing one copy, and still accessing other copy. It is different from the usual IDispose contract where calling dispose multiple times is fine, and it does not matter on which copy.
The shape of GCHandle APIs encourages the right behavior of never creating copies, and makes it clear to people that it is not an ordinary IDisposable type.
So this is an API design question whether we like GCHandle prior art for this, or whether we would prefer something else.

https://github.com/Drawaes/Leto/blob/master/src/Leto.Tls13/Internal/PointerFromMemory.cs

This is class. I agree that if this was a class, the IDisposable would be fine for it. However, my proposal is a struct to avoid heap allocations.

My problem with the gchandle approach is the "clutter" in the code.. having to try finally vs a using. I understand the issues around dual release and maybe They are insurmountable but I think the using block is a neater approach. I think there is already a solid foundation of if you access an already disposed item you are likely to het an exception.

I know that is a class it's more as an example of the API that would be nice... it's also able to reset so u can pool

The question is what does that class being proposed give you over an extension method that returns a GCHandle?

@Drawaes TryGetPointer as it is currently being used is also for unmanaged memory, this would give a way to hook into preventing that unmanaged memory going away.
So for the use case @davidfowl pointed me at, the API is often used across an Async call, so the using syntax is less important.
[UvWriteReq](https://github.com/dotnet/corefxlab/blob/cd413fcfb1c63e26de2d7bf70969c8d5df3797e3/src/System.IO.Pipelines.Networking.Libuv/Interop/UvWriteReq.cs#L103
Ideally, the call back could then free the handles associated with TryGetPointer (that don't currently exist).

Okay that is different to the use case I had in mind which is more like
https://github.com/Drawaes/Leto/blob/master/src/Leto.Tls13/BulkCipher/OpenSsl11/AeadBulkCipherInstance.cs#L115

That code would change to look like this:
foreach (var memory in buffer.AsReadableBuffer())
{
    if (memory.Length == 0)
    {
        continue;
    }
    var span = memory.Span;
    var length = span.Length;
    fixed (byte* ptr = &span.DangersGetPinnableReference())
    {
        var inPtr = (IntPtr)ptr;
        ThrowOnError(EVP_CipherUpdate(_ctx, inPtr, ref outLength, inPtr, length));
        buffer.Advance(outLength);
    }
}

In that case, ignore previous comments re the wait struct.

@pdeligia did this

#1290 only works on memory and the Create method is internal which means the only way to use it is through it's constructor which takes a pointer!  This means it does not allow the pinning of ether Span or Memory without unsafe.

This means it does not allow the pinning of ether Span or Memory without unsafe.

Whether you're using a void* or an IntPtr, it's equally unsafe, it just happens that the latter doesn't require the C# unsafe keyword.

Yes, they are equally unsafe, however use of the unsafe keyword puts restrictions on where the code can run. Whereas IntPtr does not.
I've found that Memory has a Pin() method which would do exactly what I need except I need it for Span.
Seeing as this issue says memory/span and the solution only does memory and not span. Then this issue was not actually resolved.

Seeing as this issue says memory/span and the solution only does memory and not span. Then this issue was not actually solved.

You can directly pin a span, e.g.
fixed (byte* ptr = span) { … }

There's no need for any additional API to do so (you can also use its GetPinnableReference method directly and pin via the resulting ref, or MemoryMarshal.GetReference and do the same).  Memory can live on the heap, and thus you need a GCHandle-like API that allows for pinning it with a scope beyond that of the stack; that's not the case with span.

Yes but that code uses pointers, so requires the unsafe keyword, which restricts where the code can run.

unsafe keyword which means your code can only be used in full trust environment

Pointer-like operations with IntPtr were prohibited in partial trust environments as well.
Also, note that partial trust is not a thing with .NET anymore. It was never supported in .NET Core, and it was officially deprecated in .NET Framework as well: https://docs.microsoft.com/en-us/dotnet/framework/misc/code-access-security-basics

Thank jkotas,
What about mono/xamarin environments? If they are fine, then I'm OK with unsafe.
If this is the case why do we still have compiler warnings about unsafe in dotnet core. Why do we still need to build with /unsafe etc if this makes no difference.

What about mono/xamarin environments?

Yes, they are fine.

If this is the case why do we still have compiler warnings about unsafe in dotnet core.

The unsafe `code is still less desirable than safe code. The compiler warnings, etc. make it less convenient to write unsafe code.

Good to know. Thanks for the patent replies.


Version v0.9

We need to merge this into the master in order to do a final v0.9.0 release after RC1 is tested

@cryptoquick I am not tracking rand version, so its update is a coincidence. Do you have any idea what requires rand 0.7 and how that requirement can be raised?

@cryptoquick I am not tracking rand version, so its update is a coincidence. Do you have any idea what requires rand 0.7 and how that requirement can be raised?

Looks like it's used by a version of ed25519-dalek, according to the output of cargo tree:
cargo tree -i -p<EMAIL_ADDRESS>rand v0.7.3
└── ed25519-dalek v1.0.1
    └── strict_encoding v0.8.1
        ├── aluvm v0.7.0
        │   └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        ├── bitcoin_hd v0.8.1
        │   ├── bitcoin_onchain v0.8.1
        │   │   ├── bp-seals v0.8.0
        │   │   │   └── bp-core v0.8.0
        │   │   │       └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        │   │   ├── descriptor-wallet v0.8.2
        │   │   │   └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        │   │   └── psbt v0.8.4
        │   │       └── descriptor-wallet v0.8.2 (*)
        │   ├── descriptor-wallet v0.8.2 (*)
        │   ├── descriptors v0.8.0
        │   │   ├── bitcoin_onchain v0.8.1 (*)
        │   │   └── psbt v0.8.4 (*)
        │   └── psbt v0.8.4 (*)
        ├── bitcoin_onchain v0.8.1 (*)
        ├── bitcoin_scripts v0.8.2
        │   ├── bp-dbc v0.8.0
        │   │   ├── bp-core v0.8.0 (*)
        │   │   └── bp-seals v0.8.0 (*)
        │   ├── descriptor-wallet v0.8.2 (*)
        │   ├── descriptors v0.8.0 (*)
        │   ├── lightning_encoding v0.8.0
        │   │   └── lnpbp_chain v0.8.0
        │   │       └── lnpbp v0.8.0
        │   │           └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        │   └── psbt v0.8.4 (*)
        ├── bp-core v0.8.0 (*)
        ├── bp-dbc v0.8.0 (*)
        ├── bp-seals v0.8.0 (*)
        ├── commit_verify v0.8.0
        │   ├── bp-core v0.8.0 (*)
        │   ├── bp-dbc v0.8.0 (*)
        │   ├── bp-seals v0.8.0 (*)
        │   ├── psbt v0.8.4 (*)
        │   └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        ├── descriptor-wallet v0.8.2 (*)
        ├── descriptors v0.8.0 (*)
        ├── lightning_encoding v0.8.0 (*)
        ├── lnpbp_bech32 v0.8.0
        │   ├── bp-seals v0.8.0 (*)
        │   └── lnpbp v0.8.0 (*)
        ├── lnpbp_chain v0.8.0 (*)
        ├── psbt v0.8.4 (*)
        ├── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        ├── slip132 v0.8.0
        │   ├── bitcoin_hd v0.8.1 (*)
        │   └── descriptor-wallet v0.8.2 (*)
        ├── stens v0.7.1
        │   └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)
        └── strict_encoding_test v0.8.0
            [dev-dependencies]
            └── rgb-core v0.8.0 (/home/hunter/Projects/bitcoinhackers/rgb-org/rgb-core)

Unfortunately, the dalek crates are unmaintained and annoying to replace.

@cryptoquick I see that zebra depends on dalek as well. I had used ed25519-compact recently and it is very small, zero dependencies and well-maintained. Let's switch to it. I think I can do it in v0.9, and for that reason we can go RC2 if needed

I actually do not think we need ed25519 in LNP/BP stack at all. It is a legacy from the time RGB had specific state in the schema, where one of the options were adwards keys and sigs for smart contracts which will use them (like PGP-type RGB22 contracts). Today, with typed data, that is not used anymore. Another use was support by AluVM, again for the contracts needing them - but that doesn't need to get into strict encoding and expose rand. Finally, it is used in identity apps like lnpbp_identity, but that is not in the RGB upstream dependencies.

RC2 is out with rand bumped to 0.8.5.
@cryptoquick pls let me know does this unlock WASM build. I'd really like it to happen in v0.9. Regarding AluVM, I was not able to get rid of dalek dependency there (requires rewrite of all ed25519 operation implementation), but since we do not enable that instruction set in RGB Core anyway, it was not a problem for v0.9 - dalek dependency does not propagate here. I'll deal with dalek in AluVM in v0.10, and than we will enable that curve in RGB contracts.

Oh wow, that a all makes sense. Do you think you'll depend on ed25519-compact in AluVM for RGB22?
I'll be sure to test out WASM builds when we go to upgrade bitmask-core to use 0.9.

Do you think you'll depend on ed25519-compact in AluVM for RGB22?
Yes

I'll be sure to test out WASM builds when we go to upgrade bitmask-core to use 0.9.
Do you depend there on RGB Node - or on RGB Core directly?

We only depend on rgb-std and rgb-core. We also depend on rgb20, but I think that's scheduled to be deprecated?
See:
https://github.com/diba-io/bitmask-core/blob/42dc3fad86c8a2b0a8d290950744fb10c07742b0/Cargo.toml#L89-L94

Cool. And yes, rgb20 is scheduled to be deprecated, but this can happen only in v0.10 when interfaces will arrive


Nothing happens

Nothing happens when I click Add Blog or Crawl. I've entered the URL: https://www.tumblr.com/blog/lostin[...]
https://www.tumblr.com/likes/by/lostin[...]
I'm running Windows 10 and have the latest version of Tumblthree.
In settings I specified a download location on the general tab but otherwise made no changes from the default settings.
On connection tab I changed the concurrent blogs to 2 and gave my login credentials.
I made no changes to the blog or external tabs.
I have followed the instructions in the Application Usage section exactly but nothing happens when I click Add Blog or Crawl. Everything stays blank.

Fixed....I think! Apparently, you have to link the two urls together with no spaces for anything to happen.

Well, I did succeed in getting the blog to appear at the top left. However, it truncates the name of my blog in the url area to https://www.tumblr.com/blog/lost and never makes any progress in downloading.
Also, Add Blog and Crawl are not clickable if I only enter: https://www.tumblr.com/blog/lostinadarkdream in the enter URL area.
To get it to work I had to add it like this:
https://www.tumblr.com/blog/lostinadarkdreamhttps://www.tumblr.com/liked/by/lostinadarkdreamhttps://www.tumblr.com/blog/lostinadarkdream
Any help with this would be greatly appreciated.

Thanks for your quick response! Adding them that way seemed to help but
they don't seem to be making any progress. I guess I'll just wait and see
what happens.
Thanks again!
On Fri, Dec 7, 2018 at 11:27 AM Johannes Meyer zum Alten Borgloh <
<EMAIL_ADDRESS>wrote:

Enter:
https://lostinadarkdream.tumblr.com/
or
https://www.tumblr.com/dashboard/blog/lostinadarkdream
both should work. You can select my post (or one of the urls) and copy to
the clipboard (ctrl-c), TumblThree will add it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/johanneszab/TumblThree/issues/316#issuecomment-445304960,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ark_2eNAdCyd1cfvMqzhU3s38OIw0aXkks5u2qT1gaJpZM4ZIy-i
.

I don't think waiting is the right approach.
You've added the blog to the queue and clicked the 'Crawl' button? Check the Details pane (right side) if there is a reasonable selection of options after selecting your blog in the manager on the left side.

Here's what I see:
[image: 2018-12-07_11-37-11.png]
On Fri, Dec 7, 2018 at 11:36 AM Johannes Meyer zum Alten Borgloh <
<EMAIL_ADDRESS>wrote:

I don't think waiting is the right approach.
You've added the blog to the queue and clicked the 'Crawl' button? Check
the Details pane (right side) if there is a reasonable selection of options
after selecting your blog in the manager on the left side.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/johanneszab/TumblThree/issues/316#issuecomment-445307554,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ark_2a7FMETnNtB-4qXJpf6vqyokvoWIks5u2qcZgaJpZM4ZIy-i
.

And, yes. I did click the crawl button.
Aislin Gerow
Texas Premier Realty
817-471-7454
Information About Brokerage Services:
https://www.dropbox.com/s/bdzes48he1cwa13/IABS_TPR.pdf?dl=0
On Fri, Dec 7, 2018 at 11:36 AM Johannes Meyer zum Alten Borgloh <
<EMAIL_ADDRESS>wrote:

I don't think waiting is the right approach.
You've added the blog to the queue and clicked the 'Crawl' button? Check
the Details pane (right side) if there is a reasonable selection of options
after selecting your blog in the manager on the left side.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/johanneszab/TumblThree/issues/316#issuecomment-445307554,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ark_2a7FMETnNtB-4qXJpf6vqyokvoWIks5u2qcZgaJpZM4ZIy-i
.

For anyone (like me) who might need this, the correct URL will be in this format:
https://lostinadarkdream.tumblr.com/ OR
https://www.tumblr.com/dashboard/blog/lostinadarkdream OR
https://www.tumblr.com/liked/by/lostinadarkdream

It's been running for a few days and progress is still at zero. Please advise.

i have win 10, and the same issue.
i am not sure what solved it, but i selected my blog in the upper left.
hit crawl. got nothing.
then went to right side, selected all the "number of posts"...like images, videos etc.
hit crawl. got nothing.
browsed for "my download location" (still on right side)
hit crawl. got nothing.
selected blog on left side.
hit add to queue.
started to download! :) (click on queue in upper right will show each file as it is working on downloading it.
i hope this helps others.
to Johanneszab. thank you! this is a life saver....about to save 7? years of my blog.....
Best regards,
Brett


Define CLI params

Overview of the parameters that need to be implemented in the zarp-cli.
The concept is that the only mandatory ones are the sample inputs (in all their possible formats: paths, filenames, tables, sra codes, etc)

Category/Group
Option
Comment
Level

Sample files
--sample-name
Useful to have meaningful name in results and to tell apart multilane samples
Main wrapper

--fq1 or positional argument
str (path) or [list] in case of multilane
Main wrapper

--fq2 or positional argument
str (path) or [list] in case of multilane
Main wrapper

--sample-table <samples.tsv> or positional argument
This will contain all the sample related features
Main wrapper

--sra   or positional argument
Search SRA? GEO?
SRA wrapper /GEO

--sample-path or positional argument
Take all samples from specified folder.In that case we should force user to use specific extensions for mate1 mate2, no multilanes will be allowed

Output directory
--out-dir
Output directory where intermediate files (e.g. config), results and reports will be generated
optional

HTSinfer
--htsinfer
Organism, Orientation, Adapters? (only 3p supported for now)

Sample features (contained in samples table if provided)
--mate1-direction
Overwrite --infer or check if compatible with --inferSalmon naming compatibility  forpaired-single, sense antisense combinations
HTSinfer?

--mate2-direction

--fq1-5p

--fq1-3p
HTSinfer support

--fq2-5p

--fq2-3p

--fragment-length-mean

--fragment-length-sd

--organism
Overwrite --infer or check if compatible with --inferIf different organisms are used, trigger a warning that this affects the analysis steps
HTSinfer

--trim-polya
default False

--gtf
Path or API fetch
Resources wrapper

--genome
Path or API fetch
Resources wrapper

Mapping
--multimappers
100 (for STAR)
Main wrapper

--soft-clip
['EndToEnd', 'Local']Default: EndToEnd
Main wrapper

--pass-mode
["None", "Basic"]Default
Main wrapper

Snakemake execution
--keep-temp: default False
keep temporary folders or not
Main wrapper

--dry-run
Run up to step11 of zarp-app

CPUs
--cores

Main wrapper

Execution libraries
--use-singularity with--singularity-args

Main wrapper

--use-conda

Main wrapper

Execution environments
--cluster --local
cluster.json or (https://github.com/snakemake-profiles)For inferring execution parameters
Main wrapper

Reports
--no-report
Get both reports by default
Main wrapper

--run-description

Main wrapper

--run-identifier

--logo
Keep zavolab ones as default, if they are specified replace them.
Main wrapper

--url
Keep zavolab ones as default, if they are specified replace them.
Main wrapper

--author

Main wrapper

--author-email

--snakemake-report

Main wrapper

Config
--init
Always set to True if ~/.zarp/defaults.yaml is not available, otherwise default is False
Main wrapper

Better to have this separately in the config/cli.py

Just some comments/opinions (I might add on to these later):

I think FASTQ files should be passed as positional parameters only (so no --fq1, --fq2, --sra, etc.)
I would not implement sample-path (better named --sample-directory), at least for now, because it cannot be implemented cleanly without some assumptions on sample names and there is relatively little added value (using positional arguments for passing files, one could just do zarp /path/to/my/sample/dir/*fq, which is more powerful because it doesn't need those assumptions on sample names); more importantly, for paired-end libraries things get really messy, unless a completely arbitrary naming scheme is assumed and enforced for mate files; and finding mates automatically with, e.g., pairwise checks with HTSinfer is not feasible with more than a few files because of the increasing number of combinations

I have built the models based on the table in the issue description, but incorporating my suggestions from the comment above in this file. Would be good if people could have a look at my suggestions as well as the derived models ASAP, so that @mkatsanto can update the CLI params table and start implementing argument parser and I can add documentation and validations to the models.

Some sample specific parameters have been eliminated. See:

https://git.scicore.unibas.ch/zavolan_group/pipelines/zarp/-/issues/158
https://git.scicore.unibas.ch/zavolan_group/pipelines/zarp/-/issues/160 in ZARP.
Should propagate these changes here.

Note that HTSinfer will now be called in ZARP itself, so HTSinfer-specific parameters may have to be reinterpreted (might still make sense to use them and pass them to ZARP, but this needs some thinking)

To make clearer, how ZARP-cli is supposed to work, this would be the basic usage:
# zarp local single-end library
zarp my_single_end_sample.fastq.gz

# zarp local paired-end library
zarp my_first_mate.fastq.gz,my_second_mate.fastq.gz

# zarp multiple local libraries
zarp my_single_end_sample.fastq.gz my_first_mate.fastq.gz,my_second_mate.fastq.gz

# zarp library stored on SRA
zarp SRR10690190

# zarp both local and remote (SRA) libraries
zarp my_single_end_sample.fastq.gz SRR10690190

# zarp sample with non-default public resources
zarp -g GRCh38.100 SRR10690190

# zarp multiple samples in batch mode
zarp -t my_sample_table

# zarp everything at once
zarp \
    -t my_sample_table \
    -t my_other_sample_table \
    my_single_end_sample.fastq.gz \
    my_first_mate.fastq.gz,my_second_mate.fastq.gz \
    SRR10690190

And some ideas for future features:
# zarp sample and automatically push results RO-Crate to Zenodo
zarp --publish my_single_end_sample.fastq.gz

# zarp samples described in a LabKey table
zarp -t labkey:my_labkey_table


I want to train your code with my custom data

Hello, I'm interested in your research.
I want to try your code with my custom dataset.
As you mentioned, I was trying to follow the way of Arah, but,
https://github.com/taconite/arah-release/issues/6
above link says  "For multi-view capture, I think you need to follow neural body and easymocap guidelines".
Can I ask if you followed this instrucrtion, or used openpose, SPIN, MODNet?

Hi, thank you for your interest. I did not test on custom dataset myself, but since I'm using the same data format with ARAH, following their guideline should work.
I think it depends on your data capture setup to choose which method to use. If your custom dataset is captured in a calibrated lab setting then you can follow NeuralBody guidelines, otherwise for casual capture you can run off-the-shelf regressors on the video. Hope it helps

Hello, I really want to run the monocular video I shot or downloaded from the Internet on your project, but I have encountered great difficulties in converting the data set into an acceptable format for the project, and the required parameters are too many and difficult to understand. Could you give me some suggestions on how to convert the following data set into an operational form? I use the PARE（https://github.com/mkocabas/PARE） method, and I can get the following results for monocular video input:
pred_cam (n_frames, 3)          # weak perspective camera parameters in cropped image space (s,tx,ty)
orig_cam (n_frames, 4)          # weak perspective camera parameters in original image space (sx,sy,tx,ty)
verts (n_frames, 6890, 3)       # SMPL mesh vertices
pose (n_frames, 72)             # SMPL pose parameters
betas (n_frames, 10)            # SMPL body shape parameters
joints3d (n_frames, 49, 3)      # SMPL 3D joints
joints2d (n_frames, 21, 3)      # 2D keypoint detections by STAF if pose tracking enabled otherwise None
bboxes (n_frames, 4)            # bbox detections (cx,cy,w,h)
frame_ids (n_frames,)           # frame ids in which subject with tracking id #1 appears
smpl_joints2d (n_frames, 49, 2) # SMPL 2D joints
I wonder if these parameters meet the needs of the project. If it can be transformed smoothly, it may become a stable Pipeline to generate custom datasets？Thank you :)

Especially the camera parameters, I don't know how to get the K D R T of the camera parameters correctly. My custom dataset can be regarded as obtained by a monocular static camera. Can these parameters be calculated by the above data?

Hi, @rorrewang
I'm currently trying to test this model with my custom datasets, and also having great difficulties.
I also have monocluar video data just like you. So, I have some questions on, how you are trying to run this model.

Did you create your own data loader for you dataset?
It seems like you have to create your own config.yaml file for you own dataset. Did you create one?
How are you going to make it work by using an independent preprocessing method so that goes well with this model?
Thank you for your time.... I'm trying to preprocess with InstantAvatar and make it work with this model...

Hi, @rorrewang I'm currently trying to test this model with my custom datasets, and also having great difficulties. I also have monocluar video data just like you. So, I have some questions on, how you are trying to run this model.

Did you create your own data loader for you dataset?
It seems like you have to create your own config.yaml file for you own dataset. Did you create one?
How are you going to make it work by using an independent preprocessing method so that goes well with this model?

Thank you for your time.... I'm trying to preprocess with InstantAvatar and make it work with this model...

I'm glad to know that our tasks seem very close. I'd like to help you, but I haven't found a stable method at present. If it goes well, I'll tell you how to run it, or wait for author to give us some suggestions ... @mikeqzy

Hello, I really want to run the monocular video I shot or downloaded from the Internet on your project, but I have encountered great difficulties in converting the data set into an acceptable format for the project, and the required parameters are too many and difficult to understand. Could you give me some suggestions on how to convert the following data set into an operational form? I use the PARE（ https://github.com/mkocabas/PARE ） method, and I can get the following results for monocular video input: pred_cam (n_frames, 3) # weak perspective camera parameters in cropped image space (s,tx,ty) orig_cam (n_frames, 4) # weak perspective camera parameters in original image space (sx,sy,tx,ty) verts (n_frames, 6890, 3) # SMPL mesh vertices pose (n_frames, 72) # SMPL pose parameters betas (n_frames, 10) # SMPL body shape parameters joints3d (n_frames, 49, 3) # SMPL 3D joints joints2d (n_frames, 21, 3) # 2D keypoint detections by STAF if pose tracking enabled otherwise None bboxes (n_frames, 4) # bbox detections (cx,cy,w,h) frame_ids (n_frames,) # frame ids in which subject with tracking id #1 appears smpl_joints2d (n_frames, 49, 2) # SMPL 2D joints I wonder if these parameters meet the needs of the project. If it can be transformed smoothly, it may become a stable Pipeline to generate custom datasets？Thank you :)

Hi, I am very pleased to see someone doing the same work as me, and currently I am also working hard to implement this project using my own dataset. This is the result I obtained from reading the. npz file of the preprocessed ZJUMoCap dataset for each frame. I hope this can be helpful to you. Also, I hope you can contact me after making some progress. Thank you for your help

Hello, I really want to run the monocular video I shot or downloaded from the Internet on your project, but I have encountered great difficulties in converting the data set into an acceptable format for the project, and the required parameters are too many and difficult to understand. Could you give me some suggestions on how to convert the following data set into an operational form? I use the PARE（ https://github.com/mkocabas/PARE ） method, and I can get the following results for monocular video input: pred_cam (n_frames, 3) # weak perspective camera parameters in cropped image space (s,tx,ty) orig_cam (n_frames, 4) # weak perspective camera parameters in original image space (sx,sy,tx,ty) verts (n_frames, 6890, 3) # SMPL mesh vertices pose (n_frames, 72) # SMPL pose parameters betas (n_frames, 10) # SMPL body shape parameters joints3d (n_frames, 49, 3) # SMPL 3D joints joints2d (n_frames, 21, 3) # 2D keypoint detections by STAF if pose tracking enabled otherwise None bboxes (n_frames, 4) # bbox detections (cx,cy,w,h) frame_ids (n_frames,) # frame ids in which subject with tracking id #1 appears smpl_joints2d (n_frames, 49, 2) # SMPL 2D joints I wonder if these parameters meet the needs of the project. If it can be transformed smoothly, it may become a stable Pipeline to generate custom datasets？Thank you :)

Hi @rorrewang ,
I'm not familiar with the output format of PARE, but here's my guess for the camera parameter:

You can derive the intrinsic matrix K from orig_cam
The distortion matrix D should be set as all-zeros
The extrinsics R is identity matrix and T is zero

You can run some check by projecting the SMPL vertices onto the image plane with the camera parameters above and see if it aligns with the image.
Besides, I think you'll also need foreground masks for the human, possibly with MODNet.

请问现在有应用自己数据集的方法了吗

Is there a way to handle your own dataset at the moment?

Hi @rorrewang , @mikeqzy , I'm trying to test this method on my self-capture videos from different angles. Were you able to train the human on self-capture videos? If so, let me know how you preprocessed the videos.

I have been able to train the method on custom videos. Given a self-captured videos, you can follow the following steps:

run SAMv2 to get segmentation masks
run mmhuman3D to get SMPL meshes. The method I used is PARE.
preprocess the results from step 2 into ARAH formats.
modify the config files and train 3dgs-avatar.
You can refer to my scripts for step 1, 2, 3 and change the data directories accordingly.
Hope it helps.

I have been able to train the method on custom videos. Given a self-captured video, you can follow these steps:

run SAMv2 to get segmentation masks.
run mmhuman3D to get SMPL meshes. The method I used is PARE.
preprocess the results from step 2 into ARAH formats.
modify the config files and train 3dgs-avatar.

You can refer to my scripts for step 1, 2, 3 and change the data directories and prompt points of the first frame (in step 1) accordingly. Hope it helps.

Thank you Xiyi for providing the scripts!


adaptive_newton_step()

I propose to split adaptive_newton_step() in algorithms.jl into separate pieces, i.e put armijo_rule() and the loop of Newton-iterations into separate functions (which can then be reused elsewhere).

Personally, I would keep it that way for now. We can also change it later, if we need it elsewhere.


More helpful error when "checkBucketReadAccess" fails

It is sometimes the case that bucket access can lose synchrony with workspace access. For example, sometimes creating a workspaces created in a new billing project introduces a lag in access syncing. We should show a helpful error check in this case.
In FireCloud we call checkBucketReadAccess API when you first enter a workspace, and show a helpful error if the check fails. We should do the same as an error toast message (similar to other failed calls). Get error text from the FC code. FireCloud also disables the launch analysis button.
AC

toast notification displayed if checkBucketReadAccess API check fails.
run analysis button disabled if checkBucketReadAccess API check fails.

Dependencies - None
Open Questions- None
Any hard Deadlines?
Soft deadline end of May
Is this noteworthy? Does Comms need to know?
Not noteworthy

Closed via https://github.com/DataBiosphere/terra-ui/pull/1580


obj.matrix_local != (child_of_parent.matrix_world @ obj.matrix_world) ?

Hi! In the book it's mentioned that obj.matrix_local contains the local location, rotation, and scale of an object, omitting
the transformation inherited by the parent object but not the one resulting from constraints. Haven't used this matrix before and end up putting some experiments to understand it.
Doesn't it mean that matrix_local should should be equal to matrix_basis (contains the local location, rotation, and scale of an object before it is transformed by object constraints) multiplied by constraints matrix? Assuming matrix_world = parent @ matrix_local and matrix_local = constraints @ matrix_basis.
Here's the short example to reproduce this. With my understanding I expected it to print True at the end, perhaps I'm missing something in understanding matrix_local.
import bpy
import numpy as np

same = lambda x, y: np.allclose(x, y, atol=10e-5)

bpy.ops.mesh.primitive_cube_add(location=(13, 0, 0))
bpy.ops.mesh.primitive_cube_add(location=(23, 14, 0))

obj = bpy.data.objects["Cube"]
obj.location = (10, 0, 0)
obj.rotation_euler = (0.5,0.5,0.5)

parent = bpy.data.objects["Cube.001"]
parent.name = "Parent"
parent.rotation_euler = (1,1,1)

child_of_parent = bpy.data.objects["Cube.002"]
child_of_parent.name = "Child Of Parent"
parent.rotation_euler = (1.33,1.33,1.33)

obj.parent = parent
obj.matrix_parent_inverse.identity()
constraint = obj.constraints.new(type="CHILD_OF")
constraint.target = child_of_parent
constraint.inverse_matrix.identity()
bpy.context.view_layer.update()

print(same(obj.matrix_local, child_of_parent.matrix_world @ obj.matrix_basis)) # False

Hi,
this is an interesting topic, I hope that elaborating on your example can help a bit. There are two tricky points to keep in mind:

a constraint overwrites matrix_local, and it doesn't necessarily take matrix_basis into account. For instance Copy Transforms ignores matrix_basis entirely. So matrix_local != constraints @ matrix_basis
a constraint acts on matrix_local, but the object hierarchy is still in place, so the following is True, wether constraints are involved or not.

print(same(obj.matrix_world, parent.matrix_world @ obj.matrix_local))  # True
matrix_local is changed so that the result of parent.matrix_world @ obj.matrix_local satisfies the condition of the constraint.
Child of is designed so that obj is subject to both the transformations coming from its hierarchy (parent) and from its target (child_of_parent). On top of that, obj can be moved, rotated and scaled locally: these channels are stored in matrix_basis.
This is a World-Space constraint, it's goal is for obj.matrix_world to satisfy:
print(same(obj.matrix_world, child_of_parent.matrix_world @ parent.matrix_world @ obj.matrix_basis))  # True
In other words
parent.matrix_world @ obj.matrix_local = child_of_parent.matrix_world @ parent.matrix_world @ obj.matrix_basis
If those were scalars we could just divide by parent.matrix_world and find obj.matrix_local, but matrices are different and instead we premultiply by parent.matrix_world.inverted() on both sides.
It's tricky if one thinks of numbers, but keeping in mind that
parent.matrix_world.inverted() @ parent.matrix_world = identity
makes more immediate how come the transformation
parent.matrix_world.inverted() @ parent.matrix_world @ obj.matrix_local = parent.matrix_world.inverted() @ child_of_parent.matrix_world @ parent.matrix_world @ obj.matrix_basis
is the formula for computing the matrix_local enforced by Child of: obj.matrix_local is the only term remaining on the left. You can see how adding this line to your script prints "True"
print(same(obj.matrix_local, parent.matrix_world.inverted() @ child_of_parent.matrix_world @ parent.matrix_world @ obj.matrix_basis))  # True
Please let me know if this reply answers to your question, congratulations on your progress!
p.

Thank you, appreciate the detailed explanation!
The main takeaways for me:

child of constraint matrix applied last, I assumed it was parent @ constraints @ basis, when actually it is constraints @ parent @ basis
matrix_local is not necessarily used in final world matrix calculation directly and it's derived later by multiplying matrix_world by parent's inverse parent.matrix_world.inverted() @ obj.matrix_world.


[AutoRelease] t2-devopsinfrastructure-2024-10-17-.7431(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/5622
Recording test fail, detailed info is in pipeline log(search keyword FAILED)!!!
https://dev.azure.com/azure-sdk/internal/_build?definitionId=6975

issue link:https://github.com/Azure/sdk-release-request/issues/5622


collection of renames for 2.0

This is supposed to become a crowd-sourced random collection of renames in SwiftNIO for the 2.0 release. Please just add something like

[ ] rename FooBar(bar: Bar) to FooBar(_ bar: Bar)

again, CC'ing some folks @helje5 / @tanner0101 / @ianpartridge / @pushkarnk / @MrMage / @tachyonics / @airspeedswift / @moiseev / @kjessup / @normanmaurer / @Lukasa / @Joannis . Please name your small pet peeves here :)

[ ] rename ctx to context

What’s the motivation for changing port numbers to Int? Aren’t they always unsigned 16-bit integers?

[ ]  rename ctx to context

What’s the motivation for changing port numbers to Int? Aren’t they always unsigned 16-bit integers?

it's Swift convention to always use Int for everything (at least in public API) because it makes interoperability work much better. See for example Array's var count: Int even though clearly it's never negative...

Makes sense, thanks!

On 27. Nov 2018, at 12:11, Johannes Weiss<EMAIL_ADDRESS>wrote:
rename ctx to context
What’s the motivation for changing port numbers to Int? Aren’t they always unsigned 16-bit integers?
it's Swift convention to always use Int for everything (at least in public API) because it makes interoperability work much better. See for example Array's var count: Int even though clearly it's never negative...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

[ ] new*Promise to make*Promise as of the Swift API guidelines: "Begin names of factory methods with “make”, e.g. x.makeIterator()"

Do you want to tackle https://github.com/apple/swift-nio/pull/602 in 2.0 too?

@ianpartridge absolutely! thanks for reminding me

closing because mostly done apart from the work already filed as #483


Plugin vs CommandLineState for the New Shell

Question: Should the new Shell target the old shell, or the Plugin API?
Answer from @xich:
My hope is that the new shell clarifies what functionality belongs on
the 'server' side, and what belongs on the 'client' side. Everything
on the server side would get pushed down into the PluginM layer, if it
isn't there already, and CLM/CommandLineState/etc would be discarded.
For instance, I expect the proof stack to be pushed down into PluginM,
but the pretty-printer settings will probably move over to the client
side.
So, short answer: yes. I would think the new shell would target
PluginM directly, with the caveat that some functionality that is
currently in the CLM/CommandLineState layer probably needs to move
down into PluginM.
The main thing the CLM layer does right now is manage whether the user
is targeting the program or targeting a lemma with commands. I really
think the proof stack needs to be moved into the Kernel, with an
appropriate API exposed to target it instead of the underlying program
when desired, but you may find keeping it in PluginM is better. It's
really a matter of how 'first-class' lemmas should be... right now
they are kind of bolted-on to the command-line interface, which I
think is bad.

Principle: The Plugin DSL can change the ASTs, but style options are in the environment, and not the DSL.

The things that need done, in order, are

Add version of display that returns a DocH.
Split the PrettyPrinter Options into PrettyPrinter and RendererOptions.
Add pretty printer options, and Handle for error messages, to the Plugin Reader.
Move proof machinery down into the plugin.
Refactor the type of performTypedEffectH to target the Plugin.


feat: modal stacking

#295  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @kylemcd and the rest of your teammates on  Graphite


IntelliJ plugin "Goctl" should support resolve import api file elements

describe in https://github.com/zeromicro/go-zero/issues/2494

Is there any update? Same issue for goctl-vscode plugin.


Consider not listening on <IP_ADDRESS>

The documentation recommends that you bind your dev server to <IP_ADDRESS>. Listening on <IP_ADDRESS> means that the development environment is available on all interfaces. If a user's development machine has a public IP address, that means that they'll be accidentally exposing their development environment to the public. Tools like Shodan make it easy to scan the entire IPv4 address space for a given tool.
Many MongoDB users accidentally exposed the contents of their database for the longest time for the same reason, this has led to e.g. the personal information of 80 million Mexicans being dumped. http://www.tothenew.com/blog/is-your-mongodb-publicly-accessible/

Really important, never use <IP_ADDRESS> if the computer is public reachable.

Note that MongoDB instances that listen on <IP_ADDRESS> are currently being taken over & held for ransom
http://arstechnica.co.uk/security/2017/01/more-than-10000-online-databases-taken-hostage-by-ransomware-attackers/

PRs raised to fix in the skeleton and on the website.

I am going to close this then.


Access to parent namespace

First: tlaw is awesome! I created https://github.com/marcandre/libraries_io with it and had a blast.
One frustration was that I couldn't find a way from an APIPath (Namespace or Endpoint) to access the parent Namespace. Is there one?
If not, would you consider adding one?

What particular use cases do you have in mind?
Of course, any justifiable feature that has a use-case should be considered to be added :)

General use-case: writing linear code instead of recursive code to traverse the API tree.
For example imagine a method traverse(restrict_to = nil) that would recursively yield self and all children (or only namespaces / endpoints). Right now it is kind of useless as given an endpoint, we have no way of getting the hierarchy back, but if we had parent, then traverse would be awesome.
My particular use-case was to generate link_docs for each endpoint. I ended up writing a recursive function, but had I had traverse, parent, I could have rather written:
LibrariesIO::API.traverse(:endpoints) do |endpoint|
  endpoint.docs_link ||= endpoint_doc(endpoint.parent.symbol, endpoint.symbol)
end

# instead of
class << LibrariesIO::API
  def setup_all_doc(prefix = nil, base = self)
    base.endpoints.values.each do |endpoint|
      endpoint.docs_link ||= endpoint_doc(prefix, endpoint.symbol)
    end
    base.namespaces.values.each do |namespace|
      setup_all_doc(namespace.symbol, namespace)
    end
  end
  setup_all_doc
end

Another case was me wanting to output a list of endpoints for my readme.
I would have preferred writing:
LibrariesIO::API.traverse(:endpoints) do |endpoint|
  call_sequence = lineage.map(&:call_sequence).join('.')
  puts "* [#{call_sequence}](#{endpoint.docs_link})"
end

# instead of
def gen_doc(namespace, prefix = '')
  namespace.endpoints.each do |_key, endpoint|
    puts "* [#{prefix}.#{endpoint.call_sequence}](#{endpoint.docs_link})"
  end
  namespace.namespaces.each do |_key, sub|
    gen_doc(sub, "#{prefix}.#{sub.call_sequence}")
  end
end
gen_doc(LibrariesIO::API, 'api')

where APIPath.lineage returns [TopLevelAPI, ..., parent.parent, parent, self].
I'd be glad to propose a PR for lineage and traverse, but parent didn't seem obvious to implement at first sight.

Actually, this makes me realize I can easily write a traverse that yields the full lineage and achieve what I want:
API.traverse(:endpoints) do |*lineage|
  endpoint, parent, = lineage.reverse
  ...
end

Still, this would be nice to have built-in, so let me know :smile:

Yeah, totally makes sense to me!
(I also notice that in fact, the two cases of "list everything for README" and "add templated doc link to every endpoint" are totally sane to have as a TLAW features... Though, I am not sure how they could look :))

Cool. If you can add #parent, I'd be glad to provide PRs for traverse, lineage and a method to output a markdown list of endpoints with doclinks (this is what it looks like for my gem).
Also maybe docs_links could accept a block? (Or maybe it already does, like I was happily surprised to see that default arguments can be blocks)

Another usecase I'm encountering today with Libraries.io's API. I'd like to have
api.platform(:foo).search(...) be an alias for api.search(..., platform: :foo). With parent I could do it reasonably simply. Still not too sure how to access the parameter :foo, and the codebase between the official release and the current master is very different so I'll wait.


[WIP] Load Test user creation flow

Issue: #111

[ ] Tick here to confirm that you have run RunCodeFormatter.ps1

Description:
Check if test user already exist before trying to create it

@navalev,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Ready for merge


Allow start_methods other than fork on MultiprocessParallelUpdater

If a cuda context is created before running MultiprocessParallelUpdater it should fail.
multiprocessing.set_start_mode('spawn') avoids the cuda context duplication on the worker processes even if we have performed cuda operations on the main thread such as getting the number of available GPUs.
#7309 is related.

Now that #8549 has been merged this has been rebased and added support for forkserver as a multiprocess start method.
@toslunar can I get a review please? 😇

The PR itself looks good, but could you change its title to clarify the change makes the usage more permissive, e.g. "Allow start_methods other than fork on MultiprocessParallelUpdater"?

Jenkins, test this please.

Thanks!🙇

Jenkins CI test (for commit 20686998c643b3f3f20fb9d4c0aaffe12b9f6ea3, target branch master) succeeded!


Auto show JS/TS suggestions after new

Feature request
In a js/ts file, type out:
class Foo {}

new |

Where you have just finished typing new followed by a space. At this point we should automatically show suggestions. You currently have to trigger them manually

Closing as JS is more flexible than C# in this regard. Any expression can appear in this position


LND Mainnet

After transfering the block and chainstate folder on WinSCP im running into this issue.

i was able to find and reupload 8000 files

then I can not find the last 479 files but bitcoin core on desktop with txindex is fully synced but is missing these 479 files
sudo tail -f /home/bitcoin/.bitcoin/debug.log
2018-11-20T16:42:20Z Opening LevelDB in /home/bitcoin/.bitcoin/blocks/index
2018-11-20T16:42:20Z Fatal LevelDB error: Corruption: 479 missing files; e.g.: /home/bitcoin/      .bitcoin/blocks/index/133569.ldb
2018-11-20T16:42:20Z You can use -debug=leveldb to get more complete diagnostic messages
2018-11-20T16:42:20Z Fatal LevelDB error: Corruption: 479 missing files; e.g.: /home/bitcoin/      .bitcoin/blocks/index/133569.ldb
2018-11-20T16:42:20Z : Error opening block database.
Please restart with -reindex or -reindex-chainstate to recover.
2018-11-20T16:42:20Z Aborted block database rebuild. Exiting.
2018-11-20T16:42:20Z Shutdown: In progress...
2018-11-20T16:42:20Z scheduler thread interrupt
2018-11-20T16:42:20Z Shutdown: done
2018-11-20T16:43:20Z
2018-11-20T16:43:20Z Bitcoin Core version v<IP_ADDRESS> (release build)
2018-11-20T16:43:20Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1       -> setting -whitelistrelay=1
2018-11-20T16:43:20Z Assuming ancestors of block<PHONE_NUMBER>000000002e63058c023a9a1de233554f28      c7b21380b6c9003f36a8 have valid signatures.
2018-11-20T16:43:20Z Setting nMinimumChainWork=0000000000000000000000000000000000000000028822      fef1c230963535a90d
2018-11-20T16:43:20Z Using the 'standard' SHA256 implementation
2018-11-20T16:43:20Z Default data directory /home/bitcoin/.bitcoin
2018-11-20T16:43:20Z Using data directory /home/bitcoin/.bitcoin
2018-11-20T16:43:20Z Using config file /home/bitcoin/.bitcoin/bitcoin.conf
2018-11-20T16:43:20Z Using at most 40 automatic connections (1024 file descriptors available)
2018-11-20T16:43:20Z Using 16 MiB out of 32/2 requested for signature cache, able to store 52      4288 elements
2018-11-20T16:43:20Z Using 16 MiB out of 32/2 requested for script execution cache, able to s      tore 524288 elements
2018-11-20T16:43:20Z Using 4 threads for script verification
2018-11-20T16:43:21Z scheduler thread start
2018-11-20T16:43:21Z HTTP: creating work queue of depth 16
2018-11-20T16:43:21Z Config options rpcuser and rpcpassword will soon be deprecated. Locally-      run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. P      lease see share/rpcauth for rpcauth auth generation.
2018-11-20T16:43:21Z HTTP: starting 4 worker threads
2018-11-20T16:43:21Z Using wallet directory /home/bitcoin/.bitcoin
2018-11-20T16:43:21Z init message: Verifying wallet(s)...
2018-11-20T16:43:21Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
2018-11-20T16:43:21Z Using wallet wallet.dat
2018-11-20T16:43:21Z BerkeleyEnvironment::Open: LogDir=/home/bitcoin/.bitcoin/database ErrorF      ile=/home/bitcoin/.bitcoin/db.log
2018-11-20T16:43:21Z Cache configuration:
2018-11-20T16:43:21Z * Using 2.0MiB for block index database
2018-11-20T16:43:21Z * Using 12.2MiB for transaction index database
2018-11-20T16:43:21Z * Using 8.0MiB for chain state database
2018-11-20T16:43:21Z * Using 77.8MiB for in-memory UTXO set (plus up to 47.7MiB of unused mem      pool space)
2018-11-20T16:43:21Z init message: Loading block index...
2018-11-20T16:43:21Z Opening LevelDB in /home/bitcoin/.bitcoin/blocks/index
2018-11-20T16:43:21Z Fatal LevelDB error: Corruption: 479 missing files; e.g.: /home/bitcoin/      .bitcoin/blocks/index/133569.ldb
2018-11-20T16:43:21Z You can use -debug=leveldb to get more complete diagnostic messages
2018-11-20T16:43:21Z Fatal LevelDB error: Corruption: 479 missing files; e.g.: /home/bitcoin/      .bitcoin/blocks/index/133569.ldb
2018-11-20T16:43:21Z : Error opening block database.
Please restart with -reindex or -reindex-chainstate to recover.
2018-11-20T16:43:21Z Aborted block database rebuild. Exiting.
2018-11-20T16:43:21Z Shutdown: In progress...
2018-11-20T16:43:21Z scheduler thread interrupt
2018-11-20T16:43:21Z Shutdown: done
2018-11-20T16:44:21Z

The bitcoind on the pi is running a level db debug log rite now
Also with -reindex -chainstate
The bitcoind on the pi keeps resetting I made it up too 480000 then went back to 220000
and still cant recover the 400 missing files

I wouldn't reindex the chain directly on the Pi, that can take months.
The most promising way forward is probably to resync your Bitcoin Core program on your regular computer with txindex=1 from scratch again, making sure that all data files are present, and moving them via WinSCP to the Pi.
I never ran into the issue that Bitcoin Core is missing files, but is still running. Do you have an idea how they disappeared on your computer?

Thanks for the reply, I did few thing that could of lead to the missing files! First I downloaded bitcoin core to an external hard drive so I could utilize Option 2:
Use existing hard disk with NTFS
If you want to use your existing hard disk that already contains the bitcoin mainnet blockchain, you
can simply mount it as is:
Identify the partition and note the UUID at the left (eg. “12345678”) and verify the FSTYPE (should be
“ntfs”)
$ sudo lsblk -o UUID,NAME,FSTYPE,SIZE,LABEL,MODEL
$ sudo apt-get install ntfs-3g
Open the file “/etc/fstab” in the Nano text editor and add the following line, but use the “UUID” noted
above, save and exit
$ sudo nano /etc/fstab
UUID=12345678 /mnt/hdd ntfs defaults,auto,umask=002,gid=bitcoin,users,rw 0 0
Please note that we mounted using umask=002,gid=bitcoin, which gives only the user “bitcoin” write
access. User “admin” can only read and must use sudo when writing to the disk.
However this did not workout, then I checked your updated instructions and realized you removed that option. Probably because it wasn't working properly. So I transferred bitcoin core to my desktop and used the mounting option 1: which seems to be only option now! After everything was transferred, I formatted & mounted the external. Then I used winscp to transfer.

Got this message with a new bitcoin core install never seen it before, hopefully this does the trick!

In theory, the NTFS option works, but it lead to so many issues that I removed it.
If you have a running Bitcoin Core version (with txindex=1) on your regular computer, you should be able to copy the blockchain data to the external Pi hdd with WinSCP just fine. Let me know how it works out.

Hej @Freefromchainz, were you able to fix this issue?

Hey there for mean time we are working with https://github.com/PierreRochard/node-launcher/releases/ but since this is a desktop solution which isn't energy efficient we are going to revisit the raspibolt in January! you can close this issue! take care happy holidays!

Thanks, same to you! 👨🚀👍


Syntax highlighting sometimes depends on semicolons

TypeScript syntax highlighting sometimes breaks when semicolons are omitted.  Attached are two screenshots and example code that produces the error.  Presently GitHub syntax highlighting for TypeScript produces the same error.
Note the highlighting for both the word "statuses" and the string literal "started".
Without Semicolon:
export class StatusSelector {
  @Output() select = new EventEmitter()
  statuses = ["started", "completed"]
}

With Semicolon:
export class StatusSelector {
  @Output() select = new EventEmitter();
  statuses = ["started", "completed"]
}

Edit: Revised screenshots

Same thing happens for me after every @-keyword (@Input, @Output etc.).
How it looks like:

how I think it should look:

Please raise here : https://github.com/Microsoft/TypeScript-TmLanguage/issues :rose:
Docs https://github.com/TypeStrong/atom-typescript/blob/master/docs/grammar.md#cson-grammar


Fixed error when proxy_url is None.

A recently added change (https://github.com/apache/libcloud/commit/3fa2e1b4f70ed472ba39c74322915412f2d44f36) contains an error when proxy_url is None. This small change fixes it.

You were completely right :)

lgtm, but I'm not a committer so someone else will need to review it.

Thanks.
LGTM, +1

On a related note - it might also be a good idea (improvement) to throw in set_http_proxy method if the provided url is None / not valid.


feature request version/0 predicate

Hi,
I have a feature request. When working with Tau Prolog I would like to know which version I am working with. There is a quasi standard that a Prolog system provides a predicate version/0. At least I find 3 Prolog systems that do that:
SWI-Prolog has it:

YAP Prolog has it:

My system has it:

But how should this be done in Tau Prolog. Does it have write/1 and nl/0 already somehow?
Bye

Yes. Tau Prolog already has all the I/O standard predicates, for both browsers and Node.js, so we can add that predicate. Meanwhile, you can type pl.version in the terminal to see the current version.


Bug?

In the Google API client library for PHP, using the $client->authenticate($code) method seems to poorly format the request body, causing as error Array ( [error] => invalid_request [error_description] => Could not determine client ID from request. ) but when I make a POST request to the API directly at 'https://www.googleapis.com/oauth2/v4/token' (Got this from src/Google/Client Line 43), with the body being:

code

client_id

client_secret

redirect_uri

grant_type

It now works and responds with
{
"access_token": "secret string",
"expires_in": 3600,
"refresh_token": "secret string",
"token_type": "Bearer"
}

Please supply a complete code sample that is not working and describe the behavior you are expecting.

I'm getting what sounds like the same behavior as @Chijioke1 using this code.
$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->setRedirectUri('z');
$client->setAccessType("offline");
$client->setIncludeGrantedScopes(true);
$token = $client->fetchAccessTokenWithAuthCode($code); // this is invalid: "Could not determine client ID from request."

The client_secret.json file is my oAuth 2.0 client secret file downloaded from https://console.developers.google.com/apis/credentials and looks something like this (but without newlines/spacing):
{
	"web": {
		"client_id": "x.apps.googleusercontent.com",
		"project_id": "y",
		"auth_uri": "https://accounts.google.com/o/oauth2/auth",
		"token_uri": "https://accounts.google.com/o/oauth2/token",
		"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
		"redirect_uris": ["z"],
		"javascript_origins": ["http://localhost"]
	}
}

x, y, and z are replacements for legitimate values, BTW

@nikosolihin It looks like authenticate is sort of just an alias for fetchAccessTokenWithAuthCode, no?
https://github.com/google/google-api-php-client/blob/master/src/Google/Client.php#L167
public function authenticate($code)
  {
    return $this->fetchAccessTokenWithAuthCode($code);
  }

@nikosolihin Does your client secret JSON file look like mine: with all of the values nested within that 'web' property?
I'm curious if maybe I'm using the wrong secret file...like maybe I should use the service JSON file that has no nesting and has the "type": "service_account", property.

@wadewadewadewadewadewade Ah, I see. Yes, in that case fetchAccessTokenWithAuthCode and authenticate are interchangeable.
My secret looks exactly like yours except that it has the key "client_secret". I was using an older secret before which was missing this key (similar situation like yours). Regenerating a new secret seems to bring it back.

@nikosolihin OK, I think I figured out an important part of this issue here. My Web Application for Client oAuth was auto-generated by Google when I was working on a previous version of the app I'm working on. It looks like the client_secret.json file for auto-generated Clients doesn't contain the "client_secret" property!
So now that I manually generated an oAuth 2.0 client ID i get past that client_id error, But now I'm getting a unauthorized_client error I need to sort out. I'll figure that out tho.
But it seems like auto-generated oAuth 2.0 client JSON files not including the same properties as manually-generated ones is a Google developer's console bug...
Thanks for the help, @nikosolihin !

It looks like a member of our great community answered your questions. Thanks Community! Please add a comment if you have any more questions and we can reopen this issue.


Views should clip

Seems to me that it should at least be an option for a View to clip all output.
IOW, this would be so much slicker if the sub window (a FrameView) clipped the Labels.

Note the Dim.Fills:

Everything that is off-limits should be clipped. Really annoying effect :-)

I agree, it should be done.   Up until now, I have been working on the assumption that all views would do the right thing, but as this shows, it is easy to forget.

Even in the Window view all the off-limits should be clipped.

This should not have been automatically closed. Here's another repro:
Use MessageBoxes scenario` to reproduce:

Note the code specifies Width = 5 but the control width actually requires 8 (5 + ( ) ).
var styleRadioGroup = new RadioGroup (new [] { "_Query", "_Error" } ) {
	X = Pos.Right (label) + 1,
	Y = Pos.Top (label),
	Width = 5, // BUGBUG: This should cause clipping!
};
frame.Add (styleRadioGroup);

Clicking in "( ) Q" or "( ) E" works. Clicking on "uery" or ("rror") does not.
This is likely a dupe of #399, but

I don't want to jinx it but I think i finally fixed ALL clipping issues. It's like pushing sand uphill.
I did it in such a way that most views will not have to think about clipping themselves. Some, like ScrollView that intentionally have child windows that are larger than this.Bounds need to take care of it, but everyone else gets it for free.
PR coming soon...

That's right. You already got there. ScrollView is an example of this. As long as each container properly accommodates theirs childrens within its limits, the top-level has its work facilitated.  I think so.

I was wrong and my PR (#580), did not actually fix clipping correctly.
New PR coming tomorrow.

Don't forget that you also have to clipping the subviews of the containers, namely the ScrollView and ProgressBar.

The best way would be View would be responsible for calling AddRune and AddStr. To do this, it is necessary to divert the entire call to Driver.AddRune and Driver.AddStr to View.AddRune and View.AddStr and then the View  will be responsible for calling Driver.AddRune and Driver.AddStr, respectively.

Fixed!


Request: add option to import this as a dependency

As the title says...

Hi @AndroidDeveloperLB
Understood, we will look into adding this functionality.
Thanks

@NVentimiglia Why close this? I don't see on the main page a mention of how to import it using a simple dependency...


Add find_observables method

Request Type
Feature Request
Problem Description
Add a find_observable method to allow searching for observables, cross cases.

I found that get_case_observables can be used, but it requires a case.
        # Append the custom query if specified
        if "query" in attributes:
            criteria = And(parent_criteria, attributes["query"])
        else:
            criteria = parent_criteria
        data = {
            "query": criteria
        }

Can we make case_id optional? Or should we implement a find_observables?

In general, I think that adding find_observables methods is needed, because it could be helpful in many use cases.


AutoGrade Container: MVP Container Input/Output Example

As a professor, I need to see a working example of input from AutoTest into my AutoGrade container and output from my AutoGrade container back into AutoTest, so that I understand how AutoTest interfaces with my AutoGrade container.
Input Requirements:

Show example inputs that the instructor has to develop their business logic with.
/assn directory checked out to code.
CHMOD requirements.

Output Requirements:

Working report.json file.
CHMOD requirements.

Documentation Requirements:

Maintain a checklist to implement the input and output specifications.
Ensure that the specifications above show the source of the input and end location of the output.
Show entities that build up the Classy system (VM, Classy, AutoGrade containers, Docker daemon, etc.)
Show /output directory tree contents
Declare /assn directory with definition of checked out commit ready to grade.
Container is guaranteed to pass.
UID Mac/Linux compatibility explanation.

Branch: feature/input-output-autograder-example

Notes:
Location of Output assets:

/staff/report.json when exit code is NOT 0 (exits for any error reason) and NOT -1 (timeout)
/staff/stdio.txt any time a container runs.

*** Still looking for where the container input is actually entered and how to access it***
/**
 * Primary data structure that the course container is invoked with.
 */
export interface ContainerInput {
    delivId: string; // Specifies what delivId the Grader should execute against.
    target: CommitTarget; // Details about the push event that led to this request.
    containerConfig: AutoTestConfig; // Container configuration details.
}

/**
 * Primary data structure that is returned by a Grader.
 */
export interface ContainerOutput {
    timestamp: number; // time when complete
    report: GradeReport;
    postbackOnComplete: boolean;
    state: ContainerState;
    custom: {};
    // Used to retrieve attachments for the particular grading run.
    graderTaskId: string;
}

Update: Did not include the UID Mac/Linux compatibility explanation requirement, as it is irrelevant. It seems more important to mention the root ownership 644 filesystem permissions to to new files copied into a Docker container. This new information superseded the UID requirement.

Basic grader repo found at https://github.com/ubccpsctech/autograder_io_basic_example instead of this repository, instructor manual found in Confluence under Instructor AutoGrade Creation Manual, technical staff manual found in Confluence under Technical Staff Instructions - AutoGrade Container Creation.


[bug] pf-button slotted svg broken docs or missing API?

Description of the issue

The first pf-button link variant should display a slotted svg by the docs. However, the slot API for this does not exist.  Is this broken docs or broken button API?
 * @slot icon
 *       Contains the button's icon or state indicator, e.g. a spinner.

https://patternflyelements.com/components/button/

Figured it out with other examples.  The slot="icon" is no longer part of the API.  The docs should reflect that.  Removing the @slot icon from jsdoc.


Not installing, npm error

Tried ember install ember-bootstrap-datetimepicker and I get:
shasum check failed for /tmp/npm-27982-cf052115/registry.npmjs.org/ember-bootstrap-datetimepicker/-/ember-bootstrap-datetimepicker-0.6.0.tgz
Expected: 7bbe4cbf7b0e843d2d331a78af2075f38a6f1c0b
Actual:   d113a802b1007efd5a0d691b1f53a6c84fdab59d
From:     https://registry.npmjs.org/ember-bootstrap-datetimepicker/-/ember-bootstrap-datetimepicker-0.6.0.tgz
Error: shasum check failed for /tmp/npm-27982-cf052115/registry.npmjs.org/ember-bootstrap-datetimepicker/-/ember-bootstrap-datetimepicker-0.6.0.tgz
Expected: 7bbe4cbf7b0e843d2d331a78af2075f38a6f1c0b
Actual:   d113a802b1007efd5a0d691b1f53a6c84fdab59d
From:     https://registry.npmjs.org/ember-bootstrap-datetimepicker/-/ember-bootstrap-datetimepicker-0.6.0.tgz
    at /var/www/diezpe/diezpe-dashboard/node_modules/ember-cli/node_modules/npm/node_modules/sha/index.js:38:8

I can reproduce this.  @claudiocro can you republish

I released 1.0.1.


Crash on incoming GCM notification due to dependency conflict

What version of React Native are you running?  0.42.0
What version of react-native-twilio-programmable-voice are you running? 0.4.0
What device are you using? (e.g iOS9 emulator, Android 6 device)?  Android emulator
Is your app running in foreground, background or not running? Foreground
Is there any relevant message in the log?  Crashes when receiving GCM notifications during an incoming call due to a version conflict between play-services-gcm and firebase.   Following the example in the README and using version 10.2.0 will cause a conflict when firebase libs used in this library are a different version.
Stack trace:
03-14 22:06:04.534  6015  6015 D AndroidRuntime: Shutting down VM
03-14 22:06:04.535  6015  6015 E AndroidRuntime: FATAL EXCEPTION: main
03-14 22:06:04.535  6015  6015 E AndroidRuntime: Process: com.twilio.voice.quickstart, PID: 6015
03-14 22:06:04.535  6015  6015 E AndroidRuntime: java.lang.NoSuchMethodError: No static method zzaaj()Lcom/google/firebase/iid/zzg; in class Lcom/google/firebase/iid/zzg; or its super classes (declaration of 'com.google.firebase.iid.zzg' appears in /data/app/com.twilio.voice.quickstart-1/base.apk)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at com.google.firebase.messaging.FirebaseMessagingService.zzF(Unknown Source)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at com.google.firebase.iid.zzb.onStartCommand(Unknown Source)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3010)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.app.ActivityThread.-wrap17(ActivityThread.java)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1442)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:148)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5417)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
03-14 22:06:04.535  6015  6015 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

This is fixed by setting play-services-gcm to the same minor version number as used in the library.
    compile ('com.google.android.gms:play-services-gcm:10.0.+') {
        force = true;
    }

@BTBurke thanks for reporting.
I will amend the README to advise about this issue (or you can do it if you wish to open a PR)
Perhaps having the library using 10.+ rather than 10.0.+ could allow it, but I am not too keen on referring to a broad range of library versions.
I am not sure why your log message starts with Process: com.twilio.voice.quickstart ... that should not be the case, do you know why? Is your app including both this library and the Twilio native one?

I was only using the the react-native version but I was following the Twilio quickstart example closely and I had set up my GCM notifications to align with com.twilio.voice.quickstart.  I was also using the example python server they reference in the quickstart.   I renamed my package to that to work with my google-services.json.  I'm not sure if that is required, but I was getting some compilation errors because the package name was different.
It took me quite a bit of trial and error to get everything to compile and work.  I'll go ahead and fork it and update the README with a bit more information to get people pointed in the right direction.

You can use any server you want, that won't impact the client.
The package name of you App must match the one inside google-services.json, but the GCM service in the manifest must be
<service android:name="com.hoxfon.react.TwilioVoice.gcm.GCMRegistrationService" />

otherwise the library's code will not be used to handle call notifications.
At the end you should not have any trace of com.twilio.voice.quickstart, because that package should not get included and compiled
Does it make sense?

Makes sense.  Let me take a look at mine and make sure it's set up correctly.  I'm getting GCM notifications and able to accept the call so I believe it's working.  Before changing the play-services-gcm version the app was crashing on each incoming notification.


[WIP] Win32 support

Add initial WMI instrumentation of Windows hosts
Bundle a Traveling Ruby binary that is Windows native
Packaging scripts to create an .exe for installing the instrumentation tools
Install monitoring as a Windows service
Uninstall de-registers Windows service
On metric flush, after sending data, synchronously ensures send then disconnects connection

Only VMs tested so far: IE11 Win 7 VM image from modern.ie.
Dependencies: brew install makensis
To build new installer: rake package:win32
TODO:

[ ] Make the yaml config file generated for windows use windows line ends (\r\n) so the file can be edited in notepad.
[ ] Make service show up as "Instrumental Tools" instead of "instrumental_tools" in the services tab of "Component Services", and give it a description.
[ ] Review use of nssm and .bat file as means of starting application
[ ] Port custom script executor to Windows
[ ] Ensure permissions on install are least privileged
[ ] Uninstall removes installed files
[ ] Integration w/ kitchenci, if possible
[ ] Integrate hotpatch of Agent EAGAIN no-op into core Instrumental agent
[ ] Ensure updated Traveling Ruby does not cause new issues on *nix builds
[ ] Port kitchenci testing to use local builds of packages as well as testing the remote package fetch
[ ] Installer accepts parameters for baking in config values ( GUI and headless )
[ ] Only accept arguments for the platform you are on ( don't advertise "run as user" unless that works on Win32 )
[ ] Optional: Ensure tools level prefix can be specified via command line

Do you have a link to any handy vbox windows servers images, by chance?

Yeah, I grabbed the VM I was using from modern.ie

Updated PR description with links to modern IE, testing notes, and how to reproduce installer

Cool. I ran across http://www.sysprobs.com/download-windows-server-2012-r2-vhd-on-virtualbox-vmware-workstation, also. Gonna give the thing a whirl on windows server since it usually differs slightly from windows desktop. So much download.

Gonna need something in the README for users to follow.

Haven't tracked it down yet, other than it seems like an issue with a file in thor from the trace, but seeing:
cp vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/spec/fixtures/path with spaces instrumental-tools_1.0.0_win32/lib/app/vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/spec/fixtures
cp: vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/spec/fixtures/path: No such file or directory
cp: with: No such file or directory
cp: spaces: No such file or directory
rake aborted!
Command failed with status (1): [cp vendor/bundle/ruby/2.1.0/gems/thor-0.19...]
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/file_utils.rb:66:in `block in create_shell_runner'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/file_utils.rb:57:in `call'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/file_utils.rb:57:in `sh'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/file_utils_ext.rb:37:in `sh'
/Users/joel/projects/instrumental_tools/Rakefile:288:in `block in create_directory_bundle'
/Users/joel/projects/instrumental_tools/Rakefile:284:in `each'
/Users/joel/projects/instrumental_tools/Rakefile:284:in `create_directory_bundle'
/Users/joel/projects/instrumental_tools/Rakefile:150:in `block (4 levels) in <top (required)>'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/joel/.rbenv/versions/2.1.3/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:201:in `block in invoke_prerequisites'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in `each'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:199:in `invoke_prerequisites'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:178:in `block in invoke_with_call_chain'
/Users/joel/.rbenv/versions/2.1.3/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/bin/rake:23:in `load'
/Users/joel/projects/instrumental_tools/vendor/bundle/ruby/2.1.0/bin/rake:23:in `<main>'
Tasks: TOP => package:win32 => package:win32:package

when trying to make the package. Will dig in more later if you don't have any ideas why.

re: that giant stack trace: the script doesn't play well with installing bundled gems to a project-local directory.

Cool, I was wondering on the stack trace. For the cp commands should probably be quoting the arguments, I guess?

Yeah, the various things that are doing file system management probably need escaping.  My first attempt to fix this included escaping various things, and then I realized the .rbenv thing and re-installed my bundle in system gems instead of project local.

After discussion w/ @mediocretes and @spacetc62 , decided best approach for services is likely create a thin C# shim that we compile w/ Mono to act as the process host for the batch script that starts the process. Likely this will be very similar to nssm, but will allow us to avoid having a third party dep for such a simple action.

Don't we then have a third party dep for mono?

On the build side, not the execution side.

Installed on vbox instance. Setup new project in instrumental. Copied api key into yaml file. Restarted instrumental_tools service. Metrics!
https://instrumentalapp.com/graphs/3835

You already knew this, but this is working!

Thought: it would be cool to do a notice/increment for instance/machine reboots

Ooh, that could pretty nice. I would think just even sending up whatever system level uptime is supported on any platform is a thing we could do without having to maintain the system state ourselves.

I was trying to also get a "length of time to reboot" metric, which is a thing I cared about a lot in windows, since most updates required a full reboot. Less important in linux world. Uptime would be a nice middle ground between no data and crazy amounts of data and state.

This is now ready for review. The Agent changes are in the Agent pull request:
https://github.com/expectedbehavior/instrumental_agent/pull/45

After merge I will update version numbers and do release tasks.

When building, got this:
You can only 'bundle install' using Ruby 2.1, because that's what Traveling Ruby uses.
I'll go install 2.1, but you may need to add a ruby version file to this project.

Done

Shortcut to a build if you don't want to bother building the whole chain but just want to try this on Windows:
https://s3.amazonaws.com/instrumental-tools/1.0.0/instrumental-tools_1.0.0_win32.exe

Built this on my mactop and installed it on my windesk.  I checked "yes custom scripts" but had to manually create that directory and then restart the service.
It looks like the traces end up in the event log one event per line of backtrace, which is really annoying.
I had to run lodctr /r to fix a problem with my local WMI namespace, and then invoke the names of several elder gods.  Do you know how hard it is to invoke names in alphabetical order when the names themselves are written with the glyphs of unknowable madness.
Wait, no, unicode.  That's just unicode.  My bad.
One complete lap of the error looks like this:
Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:311:in block in start_connection_worker' Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:348:in run_worker_loop'
Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:348:in loop' Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:351:in block in run_worker_loop'
Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:296:in test_connection' Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	C:/Program Files (x86)/Instrumental Tools/lib/vendor/ruby/2.1.0/gems/instrumental_agent-0.12.7/lib/instrumental/agent.rb:296:in read_nonblock'
Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	E, [2015-07-15T19:03:01.598190 #7788] ERROR -- : Exception occurred: A non-blocking socket operation could not be completed immediately. - read would block
Error	7/15/2015 7:03:01 PM	Instrument Server	0	None	E, [2015-07-15T19:03:01.311174 #7788] ERROR -- : disconnected, 1 failures in a row, reconnect in 0.0...
Ideas?

Yeah, that was my bad. I had a hotpatch for Instrumental Agent that I removed in the cleanup tasks for this PR, but it's necessary in order for the agent to work on Windows. I reintroduced the patch for the time being, and will remove when the secure protocol PR on Agent gets merged.
I also made the installer create the scripts directory, and defaulted hostname to your actual hostname as opposed to "HostName".

Also very agreed on the annoyance of line by line in the Event Viewer. Unfortunately the System.Diagnostics.Process only supports pulling line by line data received events from the underlying process' stdout and stderr afa I could find; it may sound funny given everything else going on in this branch, but building an async log buffering bit felt like I might be crossing a line.

Behold!
https://instrumentalapp.com/graphs/new?resolution=60&duration=3600&start=0&show_labels=true&graph[stacked]=false&graph[continuous]=false&graph[metrics][]=Unicron.cpu.in_use&graph[metrics][]=Unicron.memory.free_percent&graph[metrics][]=Unicron.swap.Total.free_percent&project_id=41

( :+1: )

( Note that I'm going to hold on shipping this until https://github.com/expectedbehavior/instrumental_agent/pull/45 is cleared )