Contribute to Open Source. Search issue labels to find the right project for you!

Is "ERROR net/identi.." expected in the echo example?

libp2p/go-libp2p

Seems that the example is missing a step to set up the Peerstore.

» ./echo -l 10000
18:03:57.436 WARNI     swarm2: Listener not given PrivateKey, so WILL NOT SECURE conns. swarm_listen.go:83
2017/08/19 18:03:57 I am /ip4/127.0.0.1/tcp/10000/ipfs/QmRkeDhr87iNDhFCqfzZ5r2nWvV56vnXK7sPnLJRQDQrt3
2017/08/19 18:03:57 Now run "./echo -l 10001 -d /ip4/127.0.0.1/tcp/10000/ipfs/QmRkeDhr87iNDhFCqfzZ5r2nWvV56vnXK7sPnLJRQDQrt3" on a different terminal
2017/08/19 18:03:57 listening for connections
18:04:19.184 WARNI       conn: listener %s listening INSECURELY!<Listener <peer.ID RkeDhr> /ip4/127.0.0.1/tcp/10000> listen.go:100
2017/08/19 18:04:19 Got a new stream!
2017/08/19 18:04:19 read: Hello, world!

18:04:19.185 ERROR net/identi: did not have own public key in Peerstore id.go:179
Updated 19/08/2017 22:23 1 Comments

`WAGTAILAPI_LIMIT_MAX = None` not working

wagtail/wagtail

According to the note at http://docs.wagtail.io/en/v1.11.1/advanced_topics/api/v2/usage.html#pagination, it should be possible to set WAGTAILAPI_LIMIT_MAX = None to disable the upper bound on the ?limit parameter on API responses. However, according to https://stackoverflow.com/questions/45680293/wagtail-cms-apiv2-pagination-not-showing-numbers-or-next-previous?noredirect=1#comment78319332_45680293 this fails with the error: TypeError at /api/v2/pages/ unorderable types: NoneType() < int().

Need to confirm that this is indeed the case, and apply a fix (with test coverage).

Updated 18/08/2017 21:29 2 Comments

Please accept :se as a synonym for :set

neomutt/neomutt

This is a minor item, but a very regularly encountered pain point for me.

Vim accepts commands starting with a colon, just like mutt does. However, vim allows abbreviating commands using any unambiguous prefix. In particular, you can write :se instead of :set. I regularly find myself typing this in mutt and expecting it to work (e.g. :se mime_forward=yes), only to get an error, and have to go back and change it to :set.

I don’t know if mutt should in general move to accepting unambiguous prefixes, but please consider accepting :se in particular as a synonym for :set.

Updated 09/08/2017 11:27 5 Comments

Test with JS-IPFS

ipfs/py-ipfs-api

Since JS-IPFS has (mostly) feature-parity with Go-IPFS we should probably look into testing the client library with that daemon implementation as well.

Steps to be done:

  • [ ] Fire up an JS-IPFS instance and run the py-ipfs-api test suite, then report what happend
  • [ ] Fix any issues encountered (including skipping tests for features not present)
  • [ ] Add CI-testing for Python 2.7 and the latest Python 3.X
Updated 03/08/2017 13:51

Tagged actions on collapsed threads don't work

neomutt/neomutt

Note: This bug exists in upstream Mutt, too.

Working example: - View mail in the index - Emails are threaded: set sort=threads - All threads are open (not collapsed) - Tag one thread: <tag-thread> - Perform an action, e.g. <tag-prefix><flag-message>

Result: - All the emails in the thread are now flagged

Broken example: - View mail in the index - Emails are threaded: set sort=threads - All threads are closed (collapsed) - Tag one thread: <tag-thread> This correctly tags all the emails in the thread - Perform an action, e.g. <tag-prefix><flag-message>

Result: - Only the root email is flagged

Related to #687 /cc @ahmedelgabri

Updated 08/08/2017 08:11 8 Comments

Expose attributes to config

ZURASTA/sherbet

Allow certain attributes to be configured. Such as the key sizes, timeout length, etc.

For instance some of the different contact implementations generate their keys differently. Currently the email implementation (email.ex#L220) generates a base64 string of 32 bytes of random data, while the mobile implementation (mobile.ex#L211) generates a random 6 digit string. These key generators should be overrideable/customizeable, so a user of this service can choose what kinds of keys should be generated for their specific use case.

The same should be done for timeout lengths and anything else that would be reasonable to have exposed to the config script.

Updated 27/07/2017 00:59

Country business details

ZURASTA/gingerbread_house

All stripe supported businesses are listed below, refer to https://stripe.com/docs/connect/required-verification-information for required information.

Countries

  • [ ] Austria (AT)
  • [x] Australia (AU)
  • [ ] Belgium (BE)
  • [ ] Canada (CA)
  • [ ] Switzerland (CH)
  • [ ] Germany (DE)
  • [ ] Denmark (DK)
  • [ ] Spain (ES)
  • [ ] Finland (FI)
  • [ ] France (FR)
  • [ ] United Kingdom (GB)
  • [ ] Hong Kong (HK)
  • [ ] Ireland (IE)
  • [ ] Italy (IT)
  • [ ] Japan (JP)
  • [ ] Luxembourg (LU)
  • [ ] Netherlands (NL)
  • [ ] Norway (NO)
  • [ ] New Zealand (NZ)
  • [ ] Portugal (PT)
  • [ ] Sweden (SE)
  • [ ] Singapore (SG)
  • [ ] United States (US)
Updated 28/07/2017 21:08

Create test suite

ZURASTA/Food-Data

Create a test suite to check for validity of the project. It should make sure the directory layout and data is structured and formatted correctly, naming conventions are followed, no redundant duplicate data, all required fields are supplied, etc.

This will be used by contributors to make sure their data is correct. Possibly structure it so they can test specific files (e.g. only their changes, in order to save time as the project gets bigger).

Updated 27/07/2017 00:54

Implement the `jsipfs ping` command

ipfs/js-ipfs

Following: https://github.com/ipfs/js-ipfs/pull/925/files

We want to support the same command that go-ipfs supports: jsipfs ping.

From go-ipfs: ``` » ipfs ping –help USAGE ipfs ping <peer ID>… - Send echo request packets to IPFS hosts.

SYNOPSIS ipfs ping [–count=<count> | -n] [–] <peer ID>…

ARGUMENTS

<peer ID>… - ID of peer to be pinged.

OPTIONS

-n, –count int - Number of ping messages to send. Default: 10.

DESCRIPTION

‘ipfs ping’ is a tool to test sending data to other nodes. It finds nodes via the routing system, sends pings, waits for pongs, and prints out round- trip latency information. ```

Updated 27/07/2017 06:17

Provide more information when running `--init`

sonarwhal/sonar

From https://github.com/sonarwhal/sonar/pull/358#discussion_r125529863:

We could improve already the question here and briefly explain what a connector is. Maybe add a description for each one? Something similar to:

What connector do you want to load the content of the website? * cdp (you will need to have chrome installed) * jsdom (will use jsdom, no additional installation required)


See also: https://github.com/sonarwhal/sonar/issues/326#issue-238851829

Updated 11/08/2017 08:09 1 Comments

Help us curate our Youtube channel

ipfs/community

We’ve been producing a lot of great content together as a community for the last 3 years, however, as time passes it becomes harder and harder to find it!

After todays demos, I thought it would be great to have several playlists of the videos we upload, but also the ones that get published in other channels about IPFS.

Now you can find playlists for Demos, Talks, Interviews and more at https://www.youtube.com/channel/UCdjsUXJ3QawK4O5L1kqqsew/playlists

image

Help us curate these lists by adding to this issue, urls of videos that are missing.

Thanks!

Updated 14/08/2017 21:12 6 Comments

Regarding file retrieval

ipfs/js-ipfs-api

I am trying to add and retrieve file…I am using ipfs-api along with truffle.

I am using FileReader to read the content.Based on the content generate hash and store the hash in blockchain.

     var ipfsAPI = require('ipfs-api');
      myFunction:function(){
              var file = document.getElementById("fileForUpload").files[0];
                        ipfs.files.add(new Buffer(file), function (err, res){                      
                                  if(err || !res) return console.error("ipfs add error", err, res);
                                  else{
                                               console.log(res);
                                               res.forEach(function(text) {
                                                             console.log('successfully stored', text.hash);
                                                             textaddress=text.hash;
                                                             console.log(textaddress);                          
                                                             SimpleStorage.deployed().then(function(instance) {
                                                                         console.log("Initializing set function");
                                                                          instance.set(textaddress,{from: account, gas: 3000000, value: web3.toWei(1, 'ether')})
                                                                               .then(function(v){
                                                                                             console.log(v);
                                                                                             console.log("Function  set Executed");                               

                                                                              });

                                                         }).catch(function(e) {
                                                                                  console.log(e);
                                                         });  

                                            });
                              }

                });


        }

Then trying to retrieve hash from blockchain and using retrieved hash , print content in javascript console.And I have to display it in html.How can it be possible?

          secondFunction:function(){

                 SimpleStorage.deployed().then(function(instance) {
                            instance.getvalue({from: account, gas: 3000000, value: web3.toWei(1, 'ether')})
                                  .then(function(v){
                                           console.log(v);
                                           console.log("Function  get Executed");
                                           var test = instance.LOG_TextIPFS({from: account});
                                           console.log(test);
                                           test.watch(function(err, result) {
                                                        if (err) {
                                                                      console.log(err);
                                                                       return;
                                                         }
                                                         console.log(result.args.storeddata);
                                                          hash=result.args.storeddata;
                                                          console.log("hash "+ hash);
                                                          ipfs.files.cat(hash, function (err, stream) {
                                                           var res = '';
                                                           stream.on('data',function (chunk) {
                                                                          res += chunk.toString();
                                                            });
                                                            stream.on('error', function (err) {
                                                                          console.error('Oh nooo', err) ;   
                                                             });
                                                             stream.on('end', function () {
                                                                           console.log('Got:', res);
                                                              });

                                                               });

                                       });

                               }); 

}

How can I see the added file in frontend??

Updated 23/07/2017 00:33 2 Comments

Documentation for different parts

ipfs/py-ipfs-api

I see that the simple writeup is only for connecting to daemon and adding a file.

Please add for -How to list all the files added with different methods -How to get a specific file with multiple ways -Explain the different parts of the id() result

Without this, the usability is insufficient.

Updated 23/06/2017 19:50 2 Comments

Refactor worksWithLocalFiles config for rules

sonarwhal/sonar

Right now rules have a property worksWithLocalFiles that if set to false will not execute if the resource uses the file:// protocol. I think we should refactor and abstract the protocol. Right now there are a few rules that will not work if the resource is a data url (content-type,disallow-headers, etc.). I think it should be something like doesntApplyTo: ['file:', 'data:'] or a better name.

Updated 13/06/2017 18:25 1 Comments

Simplify context.report

sonarwhal/sonar

Right now the signature looks like: js await context.report(resource, element, message, location, severity);

I think that severity can be removed because it is already in context and I don’t see a reason to change it in a rule. location we’ll have to do a bit more of research to make sure it is not used elsewhere.

@MicrosoftEdge/sonar-devs thoughts?

Updated 20/06/2017 13:32 3 Comments

Change Difference type in CountOf to return a Maybe

haskell-foundation/foundation

we should only have CountOf that are positive, and the only way to create negative count of would be using the (-) operation. By having (-) returning a Maybe CountOf, we prevent most negative count bug.

also having this we can replace the code that uses (-) on CountOf which is usually :

if n >= m
    then ..ok,we have element to remove.. now the size is n - m..
    else ..do_something_not_enough_data..

into something that is safer by construction:

case n - m of
    Nothing -> ..do_something_not_enough_data
    Just newSize -> ...remove_something_and_then_newSize...
Updated 10/06/2017 13:19 1 Comments

integrate external patches

neomutt/neomutt

Here’s a list of patches I’ve found, which are not already integrated in neomutt.


Some Lists:

  • https://github.com/hihellobolke/mutt-extra/tree/master/mutt-patched
  • https://dev.mutt.org/trac/wiki/PatchList
Updated 29/06/2017 11:53 4 Comments

Can we add one more option?

jshjohnson/Choices

Right now choices have an option to prepend something to the value of the added options. That is great but will not distinguish be cases between programmatically added options or manually added items. In our use case we need to prepend something to the value only for manually added items. So the request is to add one more option, e.g. ‘prependUserAddedValue: null` which will prepend something to the value only for manually added items.

The use case is demonstrated here: https://github.com/joomla/joomla-cms/pull/15919

@jshjohnson let me know if this is something that you’ll consider merging, so I can come up with a PR

Updated 25/05/2017 22:40 3 Comments

Focal point fails for large images

wagtail/wagtail

Issue Summary

Focal point not working for large images (1000px +).

Steps to Reproduce

  1. Upload image with size larger than 1000px.
  2. Start editing this image.
  3. Add focal point
  4. Save.

Expected result:

Image focal point is saved.

Actual result:

Error appears: The image could not be saved due to errors.

This error occurs with wagtail 1.9. It is working with Wagtail 1.6 and django 1.9 . Any idea how to fix this?

Technical details

  • Python version: 3.5.3
  • Django version: 1.10.7
  • Wagtail version: 1.9
  • Browser version: Chrome 57
Updated 28/06/2017 10:13 2 Comments

base32 is broken

multiformats/js-multibase

It seems base-x is not working as well as we thought it would. Probably other bases are broken as well

Todo:

  • Write more extensive tests
  • Fix encoding

Failing example for base32

const raw = new Buffer('1220120f6af601d46e10b2d2e11ed71c55d25f3042c22501e41d1246e7a1e9d3d8ec', 'hex')
const expected = 'bciqbed3k6ya5i3qqwljochwxdrk5exzqilbckapedujenz5b5hj5r3a'
const actual = 'bjcaeqpnl3advdoccznfyi624oflus7gbbmejib4qorerxhuhu5hwhm'

cc @diasdavid

Updated 20/06/2017 17:36 3 Comments

Snippet / Modeladmin / settings forms should use `validation_error` helper

wagtail/wagtail

See #3440, which introduces a new validation_error helper to ensure that validation errors on the page edit form - both field-specific, and non-field errors - are displayed appropriately. After this is merged, we should update the other admin views that work with user-defined forms so that they’re also using this helper:

  • snippets
  • ModelAdmin
  • wagtail.contrib.settings

As part of this task, we should make sure that validation error handling is covered by unit tests - i.e. for each of these modules, there should be at least one test similar to https://github.com/wagtail/wagtail/pull/3440/files#diff-509186d17133395aafeb7c62930e9881R3964 which posts an invalid form and confirms that the form is redisplayed with the expected error message included. (There’s no need to go through all permutations of field and non-field errors, since that’s already covered by #3440.)

Updated 23/05/2017 20:56 6 Comments

Connecting to running daemon with wrong ID makes daemon start listening on address with wrong ID

ipfs/js-ipfs

I’m running on js-ipfs node in the browser and one daemon in nodejs. If I connect from the browser to the nodejs daemon with ipfs.swarm.connect but the ID part of the multiaddr is wrong, it’ll start listening on that address…

Reproduce

  1. Run jsipfs daemon
  2. Run jsipfs id, output:
{
  "id": "QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
  "publicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUoAkSt6vtv2ZkC3maLnBGnA1OMNnSW/FsFnfhT+zQMy9A4YkePGigpNQsiI9yKMoeacBqZsNCDIGqebc5FquMLRRPN/GBJZz7tTT3uZo1aVBFcCiQapbGB56SYkxBFIyLFAlzJ3Ee8rGINvl7+iUZBirV9VylQXvGU3IRYe6zQR0Et/J5QjLIF3j5wylEm5SvN8//nGaecd0GwX5dYe3RawMlPIm+vCN+fIy1MpQQyT33IuM1iEEXzRsNzHeZ2GlWMrTQNjmKdFk4G/p/fVxxN45RpW0BDB9Em89JB9NHP2it4meg2Ao/QOfugFjtt4lHYML1KZvX/aqO8db6wN8pAgMBAAE=",
  "addresses": [
    "/ip4/0.0.0.0/tcp/9999/ws/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
    "/ip4/127.0.0.1/tcp/4002/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
    "/ip4/192.168.1.128/tcp/4002/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt"
  ],
  "agentVersion": "js-ipfs",
  "protocolVersion": "9000"
}
  1. connect from browser node with wrong id:
ipfs.swarm.connect('/ip4/0.0.0.0/tcp/9999/ws/ipfs/QmSGmyZtL3BPLxkF9yyaitLsotvratuqeWq1UR8V9BDXcV')
  1. run jsipfs id again, output:
{
  "id": "QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
  "publicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUoAkSt6vtv2ZkC3maLnBGnA1OMNnSW/FsFnfhT+zQMy9A4YkePGigpNQsiI9yKMoeacBqZsNCDIGqebc5FquMLRRPN/GBJZz7tTT3uZo1aVBFcCiQapbGB56SYkxBFIyLFAlzJ3Ee8rGINvl7+iUZBirV9VylQXvGU3IRYe6zQR0Et/J5QjLIF3j5wylEm5SvN8//nGaecd0GwX5dYe3RawMlPIm+vCN+fIy1MpQQyT33IuM1iEEXzRsNzHeZ2GlWMrTQNjmKdFk4G/p/fVxxN45RpW0BDB9Em89JB9NHP2it4meg2Ao/QOfugFjtt4lHYML1KZvX/aqO8db6wN8pAgMBAAE=",
  "addresses": [
    "/ip4/0.0.0.0/tcp/9999/ws/ipfs/QmSGmyZtL3BPLxkF9yyaitLsotvratuqeWq1UR8V9BDXcV",
    "/ip4/0.0.0.0/tcp/9999/ws/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
    "/ip4/127.0.0.1/tcp/4002/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt",
    "/ip4/192.168.1.128/tcp/4002/ipfs/QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt"
  ],
  "agentVersion": "js-ipfs",
  "protocolVersion": "9000"
}

Now it’s listening on /ip4/0.0.0.0/tcp/9999/ws/ipfs/QmSGmyZtL3BPLxkF9yyaitLsotvratuqeWq1UR8V9BDXcV even though the daemons ID is QmVabaitA7SyHTWgY4Bhtc7JfAzMXWeXqBMT93teDic4nt

Updated 20/06/2017 17:36 1 Comments

set plus-equals, minus-equals

neomutt/neomutt
  • Task: Change NeoMutt to allow += and -= to change variables

Some of Vim’s variables are lists and they allow the user to add/delete items using the syntax:

set variable += apple
set variable -= banana

Change NeoMutt to be like Vim.

  • Task: Add a new variable type of “letter-list”

Some of Vim’s variables are collections of characters (a letter list). Create a new variable type to support this sort of list, then extend the += and -= to work with them.

This issue will be very helpful in solving: https://github.com/neomutt/neomutt/pull/202

Updated 20/07/2017 09:51

Create a new variable $net_folder_format

neomutt/neomutt

$folder_format is used for both local file/dirs and network mailboxes, such as IMAP. If you have multiple mailboxes, some local, some remote, then

I’d like you to introduce a new variable $net_folder_format If the mailbox is remote and this variable is set, then use it to format the folder information. If the variable isn’t set, then default to $folder_format

Local mailboxes use $folder_format as normal.


Easy tasks would be perfect for someone new to NeoMutt. You won’t need to write lots of code, and you won’t need any previous knowledge of the NeoMutt code. Obviously, you will need to be able to write C code :-)

Easy tasks also come with a mentor – a NeoMutt project member – who will help you learn what you need to complete the work.

If you’re interested in having a go, leave a comment or speak to us in our IRC channel: #neomutt on irc.freenode.net

Thank you :heart:

Updated 08/06/2017 12:39 5 Comments

Add test-utils

ipfs/js-ipfs-repo

Currently the setup and teardown of a repo with pre populated data is copy and pasted over most js-ipfs repos. To fix this add - repo.load('path-to-repo', cb) which does - in the browser: https://github.com/ipfs/js-ipfs-repo/blob/master/test/browser.js#L24-L48 - in node: https://github.com/ipfs/js-ipfs-repo/blob/master/test/node.js#L18-L21 - repo.delete(cb) which does - in the browser: https://github.com/ipfs/js-ipfs-repo/blob/master/test/browser.js#L13-L19 - in node: https://github.com/ipfs/js-ipfs-repo/blob/master/test/node.js#L25-L28

Updated 03/07/2017 19:18 5 Comments

Hit >80% code coverage on all libp2p packages

libp2p/go-libp2p

Similar to https://github.com/ipfs/go-ipfs/issues/3053 we want to have really good test coverage on libp2p. Its the core on which ipfs and other future applications rest, and if libp2p doesn’t work, the apps on top of it don’t stand much of a chance. Here is a list of all the libp2p package (in this repo and outside of this repo) that we need to have coverage for: - [ ] github.com/ipfs/go-libp2p/p2p/discovery - [ ] github.com/ipfs/go-libp2p/p2p/host - [ ] github.com/ipfs/go-libp2p/p2p/host/basic - [ ] github.com/ipfs/go-libp2p/p2p/host/routed - [ ] github.com/ipfs/go-libp2p/p2p/metrics - [ ] github.com/ipfs/go-libp2p/p2p/metrics/conn - [ ] github.com/ipfs/go-libp2p/p2p/metrics/stream - [ ] github.com/ipfs/go-libp2p/p2p/nat - [ ] github.com/ipfs/go-libp2p/p2p/net - [ ] github.com/ipfs/go-libp2p/p2p/net/conn - [ ] github.com/ipfs/go-libp2p/p2p/net/conreq - [ ] github.com/ipfs/go-libp2p/p2p/net/filter - [ ] github.com/ipfs/go-libp2p/p2p/net/mock - [ ] github.com/ipfs/go-libp2p/p2p/net/swarm - [ ] github.com/ipfs/go-libp2p/p2p/net/swarm/addr - [ ] github.com/ipfs/go-libp2p/p2p/protocol - [ ] github.com/ipfs/go-libp2p/p2p/protocol/identify - [ ] github.com/ipfs/go-libp2p/p2p/protocol/ping - [ ] github.com/ipfs/go-libp2p/p2p/protocol/relay - [ ] github.com/ipfs/go-libp2p/p2p/test/backpressure - [ ] github.com/ipfs/go-libp2p/p2p/test/reconnects - [ ] github.com/ipfs/go-libp2p/p2p/test/util - [ ] github.com/ipfs/go-libp2p/testutil - [ ] github.com/ipfs/go-libp2p/testutil/ci - [ ] github.com/ipfs/go-libp2p/testutil/ci/jenkins - [ ] github.com/ipfs/go-libp2p/testutil/ci/travis - [ ] github.com/ipfs/go-libp2p-peerstore - [ ] github.com/ipfs/go-libp2p-peer - [ ] github.com/ipfs/go-libp2p-loggables - [ ] github.com/ipfs/go-libp2p-crypto - [ ] github.com/ipfs/go-libp2p-secio - [ ] github.com/ipfs/go-libp2p-transport

Updated 19/08/2017 17:08 9 Comments

Redirect to Form landing page

wagtail/wagtail

Per the comment in source, it would be better to redirect to the form success page instead of rendering it on post.

A simple way to achieve that without needing to worry about adjusting url routes and such would be to use a query param… “/foo-form/?success”.

If https://github.com/torchbox/wagtail/issues/2833 is accepted, the FormSubmission instance id or randomized token could be passed as well so it can be fetched and passed to the template.

If security is a concern around putting the id/token in url and leaking data to malicious users, it shouldn’t be very difficult to use session data for verifying the user created the FormSubmission data or raising http404.

– edit –

Forgot to mention another practical use for the query param (or unique url but more complicated with wagtail page routing) is it makes conversion tracking simple because you can simply check destination instead of needed developer to trigger an analytics event specific to the submission.

Updated 16/06/2017 18:26 3 Comments

BUG: Invalid module.json causes module page error.

humhub/humhub

Suggest: check json of a module before loading it into the module list.

Stack dump:

Exception
Invalid Parameter – yii\base\InvalidParamException

Syntax error.
1. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/helpers/BaseJson.php at line 123
114115116117118119120121122123124125126127128129130131132 
        $availableErrors = [];
        foreach (static::$jsonErrorMessages as $const => $message) {
            if (defined($const)) {
                $availableErrors[constant($const)] = $message;
            }
        }

        if (isset($availableErrors[$lastError])) {
            throw new InvalidParamException($availableErrors[$lastError], $lastError);
        }

        throw new InvalidParamException('Unknown JSON encoding/decoding error.');
    }

    /**
     * Pre-processes the data before sending it to `json_encode()`.
     * @param mixed $data the data to be processed
     * @param array $expressions collection of JavaScript expressions
2. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/helpers/BaseJson.php at line 97 – yii\helpers\BaseJson::handleJsonError(4)
3. in {app_path}/{app_name}.dev/protected/humhub/components/Module.php at line 220 – yii\helpers\BaseJson::decode('{ "id": "connections", "...')
214215216217218219220221222223224225226    {
        if ($this->_moduleInfo != null) {
            return $this->_moduleInfo;
        }

        $moduleJson = file_get_contents($this->getBasePath() . DIRECTORY_SEPARATOR . 'module.json');
        return \yii\helpers\Json::decode($moduleJson);
    }

    /**
     * This method is called after an update is performed.
     * You may extend it with your own update process.
     */
4. in {app_path}/{app_name}.dev/protected/humhub/components/Module.php at line 43 – humhub\components\Module::getModuleInfo()
37383940414243444546474849     * Returns modules name provided by module.json file
     *
     * @return string Name
     */
    public function getName()
    {
        $info = $this->getModuleInfo();

        if ($info['name']) {
            return $info['name'];
        }
        return $this->getId();
    }
5. in {app_path}/{app_name}.dev/protected/humhub/modules/admin/views/module/list.php at line 26 – humhub\components\Module::getName()
20212223242526272829303132            <div class="media">
                <img class="media-object img-rounded pull-left" data-src="holder.js/64x64" alt="64x64"
                     style="width: 64px; height: 64px;"
                     src="<?php echo $module->getImage(); ?>">

                <div class="media-body">
                    <h4 class="media-heading"><?php echo $module->getName(); ?>
                        <small>
                            <?php if (Yii::$app->hasModule($module->id)) : ?>
                                <span class="label label-success"><?php echo Yii::t('AdminModule.module_list', 'Activated'); ?></span>
                            <?php endif; ?>
                        </small>
                    </h4>
6. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/View.php at line 325 – require('{app_path}/{app_name}.de...')
7. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/View.php at line 247 – yii\base\View::renderPhpFile('{app_path}/{app_name}.de...', ['installedModules' => ['enterprise' => humhub\modules\enterprise\Module, 'activity-feed-populator' => {app_name}\modules\activityFeedPopulator\Module, 'candidate-search' => {app_name}\modules\CandidateSearch\Module, 'company' => {app_name}\modules\company\Module, ...]])
8. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/View.php at line 149 – yii\base\View::renderFile('{app_path}/{app_name}.de...', ['installedModules' => ['enterprise' => humhub\modules\enterprise\Module, 'activity-feed-populator' => {app_name}\modules\activityFeedPopulator\Module, 'candidate-search' => {app_name}\modules\CandidateSearch\Module, 'company' => {app_name}\modules\company\Module, ...]], humhub\modules\admin\controllers\ModuleController)
9. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/Controller.php at line 378 – yii\base\View::render('list', ['installedModules' => ['enterprise' => humhub\modules\enterprise\Module, 'activity-feed-populator' => {app_name}\modules\activityFeedPopulator\Module, 'candidate-search' => {app_name}\modules\CandidateSearch\Module, 'company' => {app_name}\modules\company\Module, ...]], humhub\modules\admin\controllers\ModuleController)
10. in {app_path}/{app_name}.dev/protected/humhub/modules/admin/controllers/ModuleController.php at line 39 – yii\base\Controller::render('list', ['installedModules' => ['enterprise' => humhub\modules\enterprise\Module, 'activity-feed-populator' => {app_name}\modules\activityFeedPopulator\Module, 'candidate-search' => {app_name}\modules\CandidateSearch\Module, 'company' => {app_name}\modules\company\Module, ...]])
33343536373839404142434445        return $this->redirect(['/admin/module/list']);
    }

    public function actionList()
    {
        $installedModules = Yii::$app->moduleManager->getModules();
        return $this->render('list', array('installedModules' => $installedModules));
    }

    /**
     * Enables a module
     *
     * @throws CHttpException
11. humhub\modules\admin\controllers\ModuleController::actionList()
12. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/InlineAction.php at line 55 – call_user_func_array([humhub\modules\admin\controllers\ModuleController, 'actionList'], [])
13. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/Controller.php at line 154 – yii\base\InlineAction::runWithParams([])
14. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/Module.php at line 454 – yii\base\Controller::runAction('list', [])
15. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/web/Application.php at line 84 – yii\base\Module::runAction('admin/module/list', [])
16. in {app_path}/{app_name}.dev/protected/vendor/yiisoft/yii2/base/Application.php at line 375 – yii\web\Application::handleRequest(humhub\components\Request)
17. in {app_path}/{app_name}.dev/index.php at line 29 – yii\base\Application::run()
23242526272829 
    // TF app includes
    (is_readable(__DIR__ . '/protected/{app_name}/config/common.php')) ? require(__DIR__ . '/protected/{app_name}/config/common.php') : [],
    (is_readable(__DIR__ . '/protected/{app_name}/config/web.php')) ? require(__DIR__ . '/protected/{app_name}/config/web.php') : []
);

(new humhub\components\Application($config))->run();
 $_COOKIE = [
    '_csrf' => 'dc7dd0cf2e9c05a5207f0cb45af3e0ef80266e35e92b6ed57b2da01c4aaf126da:2:{i:0;s:5:"_csrf";i:1;s:32:"HcPnEqfKzwYjbxIJI6Z5_gNcp19fTyDg";}',
    'pm_getting-started-panel' => 'expanded',
    'PHPSESSID' => '01nnm8vbkh7dm473knuq369ev5',
    'XDEBUG_SESSION' => 'PHPSTORM',
    '_gat' => '1',
    '_ga' => 'GA1.2.114447230.1464119152',
    '_identity' => '51e7dd7c1797086025f47429586c4b272a37453d639fb9d281bea24f7e13b478a:2:{i:0;s:9:"_identity";i:1;s:50:"[1,"81b48895-c098-441c-9468-183aac30f74d",2592000]";}',
];

$_SESSION = [
    '__flash' => [],
    '__id' => 1,
    'company_id' => '4',
];
Yii Framework
2016-05-25, 10:36:44

nginx/1.6.3
Yii Framework/2.0.8
2.0.8 PHP 5.6.20 Status 500 Route admin/module/list Log 62 1 Time 1,123 ms Memory 20.641 MB DB 16 22 ms

screen shot 2016-05-25 at 10 37 29

Updated 04/07/2017 06:08 2 Comments

Extreme resource usage & hanging

ipfs/go-ipfs

Using IPFS master, d48cd56 Context: I have about 7 GB of pinned files, about ~100kb each. (The ipfs blocks directory is 18GB in size), migrated from IPFS 0.3 to 0.4.

ipfs cat of a short text file I added just before doesn’t seem to terminate after a few minutes of continuously reading ~400MB/s from an SSD where the IPFS blocks are stored.

I also noticed, that with smaller sized local ipfs block dirs (7 GB), freshly created on 0.4, ipfs cat does succeed, but after about ~5 seconds of full CPU usage. (it succeeds possibly because all the just added 7GB of data is cached in memory)

Seems like either a serious bug or a performance problem.

Question: Does IPFS use a trie for accessing/indexing hashes? If not, it definitely should.

Updated 11/07/2017 16:34 3 Comments

[Request] Automatically uppercase Gcode parameters where it makes sense

foosel/OctoPrint

I’m not sure if this is an issue or not, but I found that if you type a gcode command with no arguments into the terminal page, it works whether the letter is upper or lower-case(g28 and G28 both work). Commands with multiple arguments only work if each letter is uppercase. (M280 P0 S150 works, m280 p0 s150 does not).

I noticed that if I use a different host program, such as Repetier host, upper and lower case both work.

1. What were you doing? Sending mixed-case gcode through the terminal page

2. What did you expect to happen? The printer would execute the gcode

3. What happened instead? The printer did not execute gcode which had more than 0 arguments and was mixed case

4. Branch & Commit or Version of OctoPrint: 1.2.4 (master branch) via OctoPi

5. Printer model & used firmware incl. version (if applicable - always include if unsure): Folger Technologies RepRap Kossel running Marlin firmware

6. Browser and Version of Browser, Operating System running Browser (if applicable - always include if unsure): Windows 8.1x64 using Chrome 44.0.2403.155 m

7. Link to octoprint.log on gist.github.com or pastebin.com (ALWAYS INCLUDE AND DO NOT TRUNCATE): see http://pastebin.com/8xhwukWV

8. Link to contents of terminal tab or serial.log on gist.github.com or pastebin.com (if applicable - always include if unsure or reporting communication issues AND DO NOT TRUNCATE): See terminal tab, specifically lines 36-58 http://pastebin.com/KKS8xkd7

9. Link to contents of Javascript console in the browser on gist.github.com or pastebin.com or alternatively a screenshot (if applicable - always include if unsure or reporting UI issues):

10. Screenshot(s) showing the problem (if applicable - always include if unsure or reporting UI issues):

I have read the FAQ.

Updated 27/07/2017 08:36 11 Comments

HTTP API root

ipfs/go-ipfs

HTTP API root (e.g. http://localhost:5001/) should show a listing with links to: - /webui - show locally installed, trusted apps. (right now only webui) - list the URL to the api: /api/v0/<command>?arg=<args>&<flags>

thanks @dominictarr

Updated 28/07/2017 23:47 12 Comments

The `dag` and `files` distinction

ipfs/go-ipfs

One complicating piece for the user is the distinction of ipfs and ipfs unix. right now ipfs {add, cat, ls} conflate the two. And there may be a future where different datastructures can be mounted to expose things differently.

Overall, we need to go through the codebase and: - [ ] clearly distinguish merkledag and unixfs uses - [ ] when we make tour clearly talk about this - [ ] optimize flow with usability in mind, but not at the cost of expressivity (what you can do) or confusion (is it easy to understand what is going on)

NOTE: the following is speculative. these mount examples are a lot of work and not in our near future. They’re just an example of how the different models work

note well what each of these commands does!!

> ipfs block mount blocks/
> cat blocks/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv
+
" Sfl ∂ÎJ8J_gÃH5è"p·¥E}ÜBR–˶™–bar+
" Ä€úU3:?∂,∫€X3T∑ùrtÌ(Fl|≠˝üõbazr+
" ïôbz¢≥UglàÃ∂€`fl˘d8-ÚàÊ°”o°É©foo


# like `ipfs object get`
> ipfs dag mount dag/
> ls dag/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv
bar
baz/
foo
> cat dag/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv/.ipfs-object
{
  "Links": [
    {
      "Name": "bar",
      "Hash": "QmTz3oc4gdpRMKP2sdGUPZTAGRngqjsi99BPoztyP53JMM",
      "Size": 12
    },
    {
      "Name": "baz",
      "Hash": "QmX1ebVUtfY11ZCpVmqyE5mDoN62SpLd8eLPpg5GGV1ABt",
      "Size": 114
    },
    {
      "Name": "foo",
      "Hash": "QmYNmQKp6SuaVrpgWRsPTgCQCnpxUYGq76YEKBXuj2N4H6",
      "Size": 12
    }
  ],
  "Data": "CAE="
}
> cat dag/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv/.ipfs-data
CAE=

# like `ipfs {cat, ls}` currently work
> ipfs unix mount unix/
> cat unix/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv
> ls unix/QmNtpA5TBNqHrKf3cLQ1AiUKXiE4JmUodbG5gXrajg8wdv
bar
baz/
foo

# 
> ipfs-bitcoin mount bitcoin/
> ls bitcoin/
HEAD
> ls bitcoin/HEAD
parent/
proof-of-work
transactions/
> ls bitcoin/HEAD/transaction/0/inputs
1LaxoTrQy51LnB289VmoSAgN6J6UrJbfL9
> ls bitcoin/HEAD/transaction/0/outputs
1QFbx3bKA8LABAGEaSe7EiP9JCxe2j4fN7
1taxinvBLwDAb1tjyTYzhcyb1fNKfivAB
1FTgzPJCbpCWYfF6VxPdmCMPUDBfygut2h
1DffZcvcQue3gn15G9tTshu2Y9YkzEZE2f
1HCFDzKx94uwtnvjJEXBZP12dseiNDK6if
> cat bitcoin/HEAD/transaction/0/full
input 1LaxoTrQy51LnB289VmoSAgN6J6UrJbfL9
output 1QFbx3bKA8LABAGEaSe7EiP9JCxe2j4fN7
output 1taxinvBLwDAb1tjyTYzhcyb1fNKfivAB
output 1FTgzPJCbpCWYfF6VxPdmCMPUDBfygut2h
output 1DffZcvcQue3gn15G9tTshu2Y9YkzEZE2f
output 1HCFDzKx94uwtnvjJEXBZP12dseiNDK6if
Updated 02/08/2017 23:47 8 Comments

Fork me on GitHub