@ev in #patchbay-dev
Re: %SPm+qoqzh

@gb Ready until tomorrow at 3:25pm.

@gb in #patchbay-dev
Re: %SPm+qoqzh

Yup. That happened. You laughing at the whole thing was water enough. Maybe a trickle but water enough. Back to the code! You ready?

@ev in #patchbay-dev
Re: %SPm+qoqzh

master splinter just needed to pour some water on @gb's browser, as it started some sort of live video feed without her permission and just kept talking and talking about 'entrepreneurship' and 'influencers'.

@dominic in #patchbay-dev
Re: %SPm+qoqzh

It generally happens when I'm using chromium, and usually looking at something stupid.

@Kas voted > `free | head -n 2 | tail -n 1 | awk '{print(($4+$7)/$2)}'` `free | awk '
@ev in #patchbay-dev
Re: %SPm+qoqzh

@dominic does master splinter pour cold water on %minbase?

@dominic in #patchbay-dev
Re: %SPm+qoqzh

I'm really enjoying running this kill script.
When chrome randomly closes it's like having master splinter pour a bucket of cold water on you.
Why was I looking at that anyway?

@Kas voted [@kas](@dBQlwh9Gtr3i5YMOGtIOKtGNVepeu+nyb6KGl1vtOcM=.ed25519) Your script d
@Kas in #patchbay-dev
Re: %SPm+qoqzh

@ezdiy,

go all the way, and use a cgroup!

That is an area I haven't touched yet, and it certain looks like it has potentials. Thanks for bringing it to my attention!

@cellular in #patchbay-dev
Re: %SPm+qoqzh

free | head -n 2 | tail -n 1 | awk '{print(($4+$7)/$2)}'

free | awk 'NR==2 {print(($4+$7)/$2)}'

:neckbeard:

@dominic in #patchbay-dev
Re: %SPm+qoqzh

Nice side effect of this script is you also get a tab amnesty. If I forgot what was open it can't have been too important!

@Kas in #patchbay-dev
Re: %SPm+qoqzh

For single apps, the easiest could be to use a wrapping script that set various ulimit values. When I use this method I usually give the script the same name as the original app and then put in earlier in $PATH. E.g.,

#!/bin/bash
# This is ~/.local/bin/chromium

# restrict total cpu time to 1 hour
ulimit -t 3600
# restrict rss size to 1 GB
ulimit -m $((1 << 20))
# see ‘help ulimit’ for more knobs

exec /usr/bin/chromium "${@}"

# eof

There are also more general approaches. This one is meant to be run by cron every minute: http://blog.endpoint.com/2012/08/automatically-kill-process-using-too.html

@cellular voted [@kas](@dBQlwh9Gtr3i5YMOGtIOKtGNVepeu+nyb6KGl1vtOcM=.ed25519) Your script d
@dominic in #patchbay-dev
Re: %SPm+qoqzh

@ezdiy thanks! I didn't know about cgroups! I'll update my script for cached, too.

@mixxx dug [@ev](@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519) it's a spinnin in #patchbay-dev
@dominic in #patchbay-dev
Re: %SPm+qoqzh

@cel okay I made this one: %killfree it's pretty crude, but i'm gonna test it. Kill chromium, firefox, and electron when memory usage gets to 70% (started at 90% but got stuck in swappsville without the script working, maybe that was just debugging, anyway this is about saving time so don't wanna waste too much time debugging it)

@cellular in #patchbay-dev
Re: %SPm+qoqzh

@dominic nice, i'll try that

@cellular in #patchbay-dev
Re: %SPm+qoqzh

happens to me lots too. i thought about making a program to kill -9 whatever process is using the most memory, but never got around to it. maybe i'll give a BSD another try one of these days

@Kas voted # Why linux VMM sucks so much When system enters swap trashing spiral - ty
@dominic in #patchbay-dev
Re: %SPm+qoqzh

@ev it's a spinning disk. Not gonna upgrade that it would go too fast, and I'd get lazy and flume would become slow.

@CustomDesigned dug [@Dominic](@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519) Task mana in #patchbay-dev
@Mikey in #patchbay-dev
Re: %SPm+qoqzh

@Dominic remember %Hv2USdQ...?

@dominic in #patchbay-dev
Re: %SPm+qoqzh

@ezdiy but why can windows have ctrl-alt-delete bring up the task manager and that seems to mostly work? (tbh, I have barely touched windows for a decade, though)

@cellular voted # Why linux VMM sucks so much When system enters swap trashing spiral - ty
@mixxx dug [@dominic](@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519) cool! I' in #patchbay-dev
@noffle voted [@ev](@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519) it's a spinnin
@dominic in #patchbay-dev
Re: %SPm+qoqzh

that might work (would have to mess around setting up a keyboard shortcut) but that is treating the symptom not the disease. When it really gets stuck, I can't even move the mouse, completely unresponsive. If I could tell it not to prioritize one process so much that the window manager gets completely blocked? then I could still kill the program normally?

@ezdiy in #patchbay-dev
Re: %SPm+qoqzh

@kas Your script doesn't prevent the swap trashing problem, because it's not process group aware (chrome by itself is process group of tabs). It would also kill about 1/3 of webpages which eat up 1GB of VM innocently, as a matter of normal operation (from perspective of ulimit, my current chrome session uses about 70GB RAM). However if you have the luxury of having launch wrapper, go all the way, and use a cgroup!

On boot, create the memhog pen, and shove all your memhogs there:

cgcreate -g memory:/memhogs`
echo $((4096*1048576)) > /sys/fs/cgroup/memory/memhogs/memory.limit_in_bytes
echo $((512*1048576)) > /sys/fs/cgroup/memory/memhogs/memory.memsw.limit_in_bytes

And in your wrapper script:
exec cgexec -g memory:myGroup chromium

Setting up cgroup properly can pretty much fix most of these issues, the only downside is that it's not an automatic heuristic in kernel - something in user space needs to spell out rules for all the usual suspects, and even then you occasionaly get something you didn't anticipate (typically, terminal children are unrestricted, and you run node.js some script and bam...).

There are bunch of things which can manage cgroup automatically (cgmanager...), I have no idea how useful those are.

On BSD, there's rctl which can roughly accomplish the same, but is somewhat trickier to use memoryuse+vmemoryuse+swapuse can induce trashing instead, if you're not careful!

@Dominic Your idea is good (when running low on memory, kill all the usual suspects), but you need to count cached as free:

free | head -n 2 | tail -n 1 | awk '{print(($4+$7)/$2)}'

Otherwise something as simple as writing a large file quickly will kill your browsers.

Alternatively you can just drop the caches, echo 1 > /proc/sys/vm/drop_caches before you try the killing. This will slow the system down for a little while because everything is in writebcack/refetched, but is surprisingly still worth it because Linux swapd shows such exceptionally poor judgement about which pages to keep hot under pressure - it's kicking of wrong pages from cache in large part contributes to the page trashing problem in the first place.

@dominic in #patchbay-dev
Re: %SPm+qoqzh

@Matt confirmed. All the names have appeared within 10 seconds, and the CPU has settled (using timeline feature) after 15. patchbay@7 is even better now too. But still not as good as minbay!

@ev I'm on a (second-hand) thinkpad x201. But it's about the same specs as yours. However, if I don't keep a eye on memory use that fills up and if it starts swapping it becomes so unresponsive it's quicker to power cycle it. I can't even get to a terminal to kill chromium or electron (the usual suspects). At least windows had ctrl-alt-delete. I don't really know how to fix this. I'm currently just keeping top running an checking memory use occasionally.

@noffle in #patchbay-dev
Re: %SPm+qoqzh

However, if I don't keep a eye on memory use that fills up and if it starts swapping it becomes so unresponsive it's quicker to power cycle it. I can't even get to a terminal to kill chromium or electron (the usual suspects).

@Dominic I keep having this happen on my x140e. I bet binding a hotkey to pkill -9 chromium would save me in 90% of cases!

@nichoth dug [@ev](@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519) it's a spinnin in #patchbay-dev
@ezdiy dug [@ezdiy](@rFgDtlYiyymSD4U96Av3pIil8xBj6afLXr87caoqAyo=.ed25519) but why can in #patchbay-dev
@coffee dug Patchquery? Did I write some code in my sleep again? in #patchbay-dev
@ezdiy in #patchbay-dev
Re: %SPm+qoqzh

@Dominic Task manager (well, that whole session) is more or less mlocked().

In addtition, NT VMM is derived from BSD, which doesn't starve the system equally under pressure, but it makes meaningful picks. In particular, NT kernel estimates RSS limits per process, and only past that threshold it starts swapping. This mechanism is much finer granularity than VM limits - vm can be any size, and it doesn't say anything about RSS the process actually needs.

Back in the day when RAM was fairly expensive, people ran busy BSD lamp servers mostly because it did so much better job than linux under memory pressure. This edge is kind of lost with current RAM sizes.

It should be noted that modern linux implements sensible active memory set scheduler, but only as a cgroup - it's all explicit, AFAIK, no sensible heuristics dealing the limits to reduce runaway swapping exist.

@neftaly in #patchbay-dev
Re: %SPm+qoqzh

Can you xkill from awesome?

@ezdiy in #patchbay-dev
Re: %SPm+qoqzh

Why linux VMM sucks so much

When system enters swap trashing spiral - typically some ill conceived buffering where the delays induces the offender proccess to touch even MORE memory, in a runaway spiral, everything gets paged out of memory and almost all processes spend time waiting on disk io.

kill -9 of the offending is not that helpful because:

  • you don't even have a way to issue that command. All already running processes are starved for RSS, and you think you can just spawn a new one willy nilly?
  • bunch of other, smaller processes enter mini-version of the runaway fibrilation of their own, where they queue a lot of pageins/outs IO because their RSS becomes too small for what they need.

Worst of all, once kernel sends off all the pages in dozens of idle processes to IO because javascript decided to ruin your day, this operation needs to finish, even if it becomes superfluous (ie memory is freed elsewhere).

So the only real recourse is:

  • kill offender as well a whole bunch of stuff and hope it will ease RSS pressure enough to stop the cascade
  • hope the victims don't have deep IO queue submitted because that makes the kill far less effective
  • do it from kernel, or something similiarly mlock()ed

That's what Alt+prtscr+k is for. It's a key for "kill X, everything in it, except tmux and make system responsive again". Most of the time anyway.


"Proper" way to do this is disabling overcommit and setting relatively small swap. But it's not really an option because the problem is not VM by itself, but linux RSS suckage. You can however tune overcommit ratio to strike the balance where runaway swapping becomes rare because the offender gets killed by OOM first, while still having wiggle room of moderate swapping.

@ev in #patchbay-dev
Re: %SPm+qoqzh

@dominic I'm not using swap memory over here. I wonder if your hard drive is slow (is it an ssd?) or it could be damage? My Thinkpad has an ssd, so that speeds things up a bit.

@Matt in #patchbay-dev
Re: %SPm+qoqzh

Ah, thanks @cel!

Good catches! Will update.

@Matt dug @mmckegg i think you could use `pull.unique()` for the `alreadyEmitted` stu in #patchbay-dev
@ev in #patchbay-dev
Re: %SPm+qoqzh

@dominic cool!

I'm running %minbase / %minbay on a Thinkpad S431 with 4 gigs of ram. That's not necessarily a slow computer, I just want to keep things fast and it's easy to notice with top when a program is running up memory. Now that flume is merged the whole sbot/minbase stack seems to be running fast and lite.

minbase.png

@Matt in #patchbay-dev
Re: %SPm+qoqzh

Speaking of performance, I just completely rewrote Patchwork's rollup system to use a standard stream (with no windowing) using some ssb-backlinks trickery:

https://github.com/ssbc/patchcore/blob/master/feed/pull/rollup.js

I am now also caching the recent channels and using ssb-backlinks for mentions.

Load time has decreased by.. uh.. quite a lot! So snappy!

Next up, I want to rewrite message view to use ssb-backlinks.

@cellular in #patchbay-dev
Re: %SPm+qoqzh

@mmckegg i think you could use pull.unique() for the alreadyEmitted stuff. e.g.:

    return pull(
      pull.map((msg) => api.message.sync.root(msg) || msg.key),
      pull.unique()
    )

also, i think there is a typo in comparing rootMessage.key === rootMessage.key in AddReplies

@cellular voted Speaking of performance, I just completely rewrote Patchwork's rollup syste
@cellular in #patchbay-dev
Re: %SPm+qoqzh

@dominic i am using dillo.

a fair comparison might be to run patchfoo server in electron too.
server.js

mentions in patchfoo are done by using a @name mention and then entering the id in the text field for the name that appears after pressing preview. it will be pre-filled with an id if an id was mapped to that name recently. maybe now that there is ssb-about i will try making use of that to assist with picking the id.

@mixxx in #patchbay-dev
Re: %SPm+qoqzh

you solved it, the answer ! now you just need to find where you put it

@mixxx dug Patchquery? Did I write some code in my sleep again? in #patchbay-dev
@dominic in #patchbay-dev
Re: %SPm+qoqzh

raw ssb-client, heaps 10 mb:

require('ssb-client')(function (err, sbot) {
  sbot.whoami(function (err, who) {
    var pre = document.createElement('pre')
    pre.textContent = JSON.stringify(who)
    document.body.appendChild(pre)
  })
})

there is actually quite a lot going on here, shs, muxrpc, etc. If this just used http it would be closer to 5mb I guess (patchfoo style)

@mixxx dug Okay! applying the same technique to patchbay@7 lopping off bits to see how in #patchbay-dev
@ansuz in #patchbay-dev
Re: %SPm+qoqzh

Patchquery? Did I write some code in my sleep again?

@dominic in #patchbay-dev
Re: %SPm+qoqzh

okay, I couldn't figure out how to mention @cel correctly. But, maybe @ansuz's patchquery will solve those things?

@dominic in #patchbay-dev
Re: %SPm+qoqzh

Hmm... but since patchfoo uses zero javascript it only loads 5.6 mb (again, running in electron for a fair comparson) @cel what browser do you use?

@dominic in #patchbay-dev
Re: %SPm+qoqzh

Tried patchwork - it weighs in at 97 mb heap, basically the same as patchbay@7, they both depend on patchcore so I'd expect them to be about the same.

@dominic in #patchbay-dev
Re: %SPm+qoqzh

I tested %minbay and it lives up to it's name because stock minbay only loads a 22mb heap! (am running in electron for a fair comparison)

It doesn't use a tabs across the top either, and the side panel shinks... so it's mostly viable on a narrow screen already. if the side pane could be collapsed then even better.

@ev what sort of computer are you running this on? (and how much ram, etc?)

@dominic in #patchbay-dev
Re: %SPm+qoqzh

Okay! applying the same technique to patchbay@7 lopping off bits to see how light it can get. Removed patch-hub, patch-gatherings, ssb-horcrux, ssb-context (these didn't make much difference, but also don't show anything at first load) then parts of patchcore: contacts/obs about/obs channels/obs (just returned before they did their queries) and I got it down to 31 mb! There isn't much left, but there is still enough to write this message.

@dominic in #patchbay-dev

patchbay@6 perf

Hmm, did some more performance experiments!
Patchbay@6 loads only 30mb of heap, but if I disable /private and /notifications tabs, only 20! Disabling names and avatars maybe shaves another mb off that. Not loading the /public gets you down to around 15 and a empty electron app still loads 5. So patchbay load@6 is pretty damn light!

@jeremy subscribed to channel #patchbay-dev
@millette subscribed to channel #patchbay-dev
@jolyon subscribed to channel #patchbay-dev
@Helder subscribed to channel #patchbay-dev
@jonathan dug Okay, I often have the problem of not beeing able to check in regularly whi in #patchbay-dev
@Kevin Kelley subscribed to channel #patchbay-dev
@ross subscribed to channel #patchbay-dev
@Cam Johnson subscribed to channel #patchbay-dev
@Aljoscha subscribed to channel #patchbay-dev
@Max Badran subscribed to channel #patchbay-dev
@winmix in #patchbay-dev
Re: %RtlBEg1JZ

hey @cryptix I've been super busy last few days, but looking forward to checking this out at #art~hack trmw night !

(cc @Piet )

@winmix in #patchbay-dev
Re: %RtlBEg1JZ

got to run to work, but would love to support you integrating into Patchbay.
check out how some of the pages work in app/html/pages - the router might need to live somewhere else soon, but it's a nice place to start reading.
ssb-horcrux can show you how easy it is to loop in.
We;re trying to follow a pattern where we mirror the folder stuctures you're merging into. - depject is then conceptually like merging repos over the top of each other in your head

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

shocked how time is flying...

finally got around to take a look into the new filter code and get a better understanding of how to structure this after looking into the different obs-thingys in patchcore.

I'll try to make a rip-off of contact.obs and make a page to create/add/remove, than just have a dropdown on the filter to select which one you want.

@mixxx in #patchbay-dev
Re: %RtlBEg1JZ

@cryptix PM me if you'd like to talk filter stuff over a call sometime. I'm pretty busy at the moment so higher bandwidth suits me (also notifications in bay only see @-mentions :(

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

The one thing I found magical was: calling creating multiple Scroller()s and it just interleaves the feeds on it's own.. is it supposed to work like that or am I just lucky? (cc @dominic )

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

thanks! will try that out and nag if I hit a wall.. :-P

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

i also had the idea to use the thread lists as a save/restore of open tabs.

@mixxx in #patchbay-dev
Re: %RtlBEg1JZ

uhhh, the way pull-scroll works is that it injects content into the content containers, which is how that's magically working.

Another perhaps terrible idea is that you could implement hypertabs there .. you could then have different tabs for the different lists. I think it would look a bit ugly though

@mixxx in #patchbay-dev
Re: %RtlBEg1JZ

hey @cryptix @matt and I had a look at this just now. Looking interesting.

Our main piece of advice is to use mutant to help seperate the query logic and the view logic.

Mutant gives you the ability to make an object-like or array-like things that you can add to during a drain.
Once you've got these objects set up (above the query), you just trust they will be filled in and use them in your view.

This would make it easy to have :

  • a dropdown / menu bar with links to activate specific lists
  • a way to collect stuff related to a specific list and then display it.

Matt recommends checking out fee.obs.thread in patchcore as an exemplar.

@interfect subscribed to channel #patchbay-dev
@radsocks69 subscribed to channel #patchbay-dev
@Toady in #patchbay-dev
Re: %RtlBEg1JZ

currently i envision some sort of dropdown.. but i have no idea how to remove the scrollers i already put on the page... :-S halp

It would be nicer to have a clickable link on a type: ..-list to open that list in a new tab. Let's see if can retrofitt the git-ssb-style of opening repos like this in the new depject.

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

re removal UI: putting in the buttons and making it post a correct message is easy but i'm not sure I can make it act in realtime without some mutant logic... cc @matt

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

Okay... There is a very rough first stab in the listFilterz branch on %patchbay.

TODO:

  • find a way to switch between lists
    currently i envision some sort of dropdown.. but i have no idea how to remove the scrollers i already put on the page... :-S halp
  • add key UI
    the autocomplete box from the search would be nice for this (have to find it)
  • remove key UI
    some sort of [X] box next to the names (easy)
  • create list UI
    not sure where this would live yet. (easy)
  • remove 'rm'ed keys from the list
    right now it fetches all the items there were added to a list but doesn't remove the delete ones (layzness/easy/low prio)
@Toady in #patchbay-dev
Re: %RtlBEg1JZ

I created a one-off manualy with echo {..} | sbot publish . to get started.

Now let's see if I remember enough depject to make a view for custom message types...

@Toady in #patchbay-dev
Re: %RtlBEg1JZ

cool! i'll dig a litle but first some sleep cycles...

maybe make this one-off for starters and see later if there is something like ssb-dynset to extract? I feel like makeing modules upfront is digging a whole prematurely but maybe just have not enough exp with that.. DogInLabcoat.jpg

@Toady in #patchbay-dev

Okay, I often have the problem of not beeing able to check in regularly which leads to backing out of conversations that I'd actually like to keep up with...

To relive this situation a little I prupose to add a feature where you create lists to filter the firehose. One type of list could contain authors (to check what your local group has been up to, or these group of gophers, you get the idea...). Another type of list could be threads to track. I just wouldn't conflate the types.. wouldn't be very useful in the UI but your usecase may vary.

Anticipating multi-device-cypherspace and because it's more fun, I want to track these lists on ssb directly. @keks helped me a little with the crdt-magic. Here are the msg types we brewed up:

  • { type:list, op:init}
    creates a new list,%kinit. similar to how git-ssb repos are created. To name these, i'd use the about types we already have.

  • { type:list, op:add, list: %kInit, v: "auther/thread key" }
    adds a thing to the created list, pretty easy

  • { type:list, op:del, list:%kInit, k:%kAdd}
    to delete a thing you tombstone the add message, not the key. this way you can add and delete things more than once! :3

Finally you just have to query for add messages without a matching delete to get the current state of the list. VIOLA!

what I now need is a little bit of help/feedback/examples with structuring this into node packages. Personally I'd integrate the UI for it into %patchbay.

Also: you could wrap these messages into PMs to yourself to nor reveal whom you stalk even more than by following them... :P

Also2: it would be nice to to be able to make these messages with a static key that you later can reveal to a friend to share a list, maybe even edit it together?

@Kubuxu in #patchbay-dev

Is this channel active? I have booted patchwork again after 3 months and most channels are stuck with messages 3 months old. I have pub connection and everything.

@cellular in #patchbay-dev

patchbay style changes looking very nice. great work everyone

@Apostolis in #patchbay-dev

When you reference a user, the list that pops up is white on the selected name and grey on the others. Given that the background is white, one can confuse the grey option as the selected one if there are only two options.

@mixxx in #patchbay-dev
Re: %dqr4lxHZR

The profile page is on the list of things that sorely need updating. I'm working on the network page atm.

Maybe tell me what you want and I'll make sure and see if I can fold it into the design. (that's assuming you're happy to wait for me to execute it)

@Toady in #patchbay-dev

re porting ferment-like self-description (from last call):

@mixmix: maybe I'm missing something but afaict the about_refactor only added type:about description:... rendering to the feeds so that these messages (like %lIdK6up... and %W2mn5IR...) look nicer on the feed. No viewer on the profile page, no edit/input mechanic.

I will try to add my view and edit code to api.avatar_edit although I dislike the complexity in it of juggling around which fields were actually changed into a single update post but it shouldn't compicate things that much more...

@yetAnotherLiteCryptix in #patchbay-dev
Re: %oXp1dKgtn

okay, I guess I found it in tabs.js (search_box and it's callback).

I might get by with an additional argument to screen_view...

Other ideas very welcome.

@yetAnotherLiteCryptix in #patchbay-dev
Re: %oXp1dKgtn

or.. how does the search activate it's results view

@yetAnotherLiteCryptix in #patchbay-dev

Is there a way to pass additional arguments to screen_view?

for instance:

  • I want to open something like the thread viewer but want to pass some arguments to filter it.
  • I want to send the user to the /private tab but also populate it with a couple of IDs
@saintaquinas in #patchbay-dev
Re: %Idb8szPfo

Yeah I guess I did, can't recall honestly, but I will try and be more careful about that in the future. Thanks for the heads up! Btw Merry Christmas!

@cellular in #patchbay-dev
Re: %yvxGlh9Nm

@cryptop reverse and limit should work with query. there are examples of doing so in patchbay, anyway.

@cryptop in #patchbay-dev
Re: %yvxGlh9Nm

in my mind, it feels more efficient to filter for the messages that I want to processes before hand and with logt i'd also have to skip a lot of unrelated messages.

the counting is just a trick to bypass the missing reverse && n==1.

@cryptop in #patchbay-dev
Re: %yvxGlh9Nm

oh well, coffee didn't kick in yet.. right.. you also can't do this for the contact messages..

so you just stream contacts in reverse until you got everything you had on your list? hmmm

@cryptop in #patchbay-dev
Re: %yvxGlh9Nm

hmm.. if ssb-query had reverse and limit:1 this would work but I also need to filter the messages by two other values in the content. ie:

{
  "type": "fnord",
  "topic": "%keyA",
  "pick": "%keyB",
  "active": true/false
}

and logt/messagesByType only can filte by the top message key..

I can work with my solution for now.

@Mikey in #patchbay-dev
Re: %yvxGlh9Nm

@cryptop

i thought only the most recent value takes precedence. as in, if you made a bunch of contact following: true messages to follow someone, and then you made a single contact following: false for that same someone, you'd have "unfollowed" them.

also once @dominic's flumedb upgrade comes into scuttlebot stable, i understand we should be able to do queries like this using flumedb-reduce, which will be much more efficient.

@saintaquinas in #patchbay-dev
Re: %Idb8szPfo

ohh sorry did not realize that I was doing that!

@cryptop in #patchbay-dev

Is there a special query trick to see the current state of a toggable link?
(ie contact following:true)

so far I queried them all and than counted the true and false values respectivly.

@Toady in #patchbay-dev
Re: %Idb8szPfo

@saintaquinas not your personal fault, more of a software bug/annoyance. I guess the UI didn't update so you told it to follow again?

@ev in #patchbay-dev
Re: %yvxGlh9Nm

@cryptop When I did pinnable posts in sdash, I just queried back until I found a message with the type 'pinned' and then returned the first message linked in the 'pinned' post.

@ev in #patchbay-dev
Re: %RfITb5EkW

@cel I'm running %lite-client

@cellular in #patchbay-dev
Re: %RfITb5EkW

@ev we could be using it differently somehow.

i'm adding an additional confirm() dialog right before feed.add gets called, so hopefully i'll catch this before it happens again

@ev in #patchbay-dev
Re: %RfITb5EkW

@cel I haven't had this happen yet and I think I'm running the same lite-client/ssb-ws/sbot stack as you.

@cellular in #patchbay-dev
Re: %RfITb5EkW

the message i published had msg.value.contents.recps

@dominic in #patchbay-dev
Re: %RfITb5EkW

hmm, okay, if it has recips field, then it should be encrypted automatically. did the message have a recips field

@Mikey subscribed to channel #patchbay-dev
@cellular in #patchbay-dev

patchbay made another one of my private posts public. i'm not sure what to do about this. i haven't seen this happen with anyone else, so it probably has something to with that i'm running it as a lite client with the same key as my local sbot

@ev in #patchbay-dev
Re: %Idb8szPfo

@saintaquinas Why are you following the same feeds 3-5 times?

@ev in #patchbay-dev
Re: %Idb8szPfo

@cryptix Yeah, an even more compressed view would be ideal.

'bay has a build step npm run build that needs to be run to update the bundle.js that is loaded into electro. Right now you have to run the command every time you do a pull.

@Toady in #patchbay-dev
Re: %Idb8szPfo

hmm.. mix' adjustment makes it better but it still takes a lot of space when new users go on a follow spree.

follows.png

also: my 'bay was up2date but it somehow didn't refresh/load/build the css?

@ev in #patchbay-dev
Re: %Idb8szPfo

@cryptix Also update your 'bay, we've had @mixmix's mini-posts for awhile now.

@Mikey in #patchbay-dev
Re: %Idb8szPfo

patchwork-next does this:

patchwork-next-collecting-follows.png

@Toady in #patchbay-dev

would like to see these follows coallaced into a single post:

saintfollow.png

i.e. a followed q, w, x, y and z

@ev in #patchbay-dev
Re: %AFph0IJgw

@cel Yeah, I was thinking having an easy way to switch the network key and identity in the client would be useful for me and others.

Right now I have https://pub.evbogue.com/ open in one tab and file:///home/ev/bay/build/index.html open in another tab.

@ev in #patchbay-dev
Re: %AFph0IJgw

@ansuz facebogue is something one of the first people said when they first visited https://pub.evbogue.com/

https://pub.evbogue.com/ is an alt-ssb network that I set up as an experiment to see if I can create an alternative to Slack available from my domain. See: https://evbogue.com/altslack/

@dvn subscribed to channel #patchbay-dev
@cellular in #patchbay-dev
Re: %AFph0IJgw

@ansuz

it's on https://evbogue.com/

@ansuz in #patchbay-dev
Re: %AFph0IJgw

facebogue? :smile:

@cellular in #patchbay-dev

Runinng a local testnet for patchbay is great for development. Reload is quicker. Also, I can connect to facebogue from my local httpd, thanks to CORS (and @ev)

So now I am running 3 localhost httpds on different ports serving patchbay, one for mainnet, one testnet, and one facebogue. Maybe in the future we will be able to do this by having a menu for switching the remote & key

@cellular in #patchbay-dev

suggest-box 2.2.3 makes our search suggestions on the right side of the screen not get clipped by the viewport

https://github.com/pfrazee/suggest-box/pull/14

@kyrias in #patchbay-dev
Re: %YJwfqQH+q

(Err, I can't grammar it seems.)

@kyrias in #patchbay-dev
Re: %YJwfqQH+q

Mmm, fair enough. I sort of wish the name UI that patchwork have, especially it showing who has published which name for said node.

@kyrias in #patchbay-dev
Re: %YJwfqQH+q

I did specify one myself though, which is why it's so strange.

@Matt subscribed to channel #patchbay-dev
@Matt in #patchbay-dev
Re: %YJwfqQH+q

@ev @kyrias Think it just uses the most common name unless you have specified one yourself. Not really idea IMO.

@ev in #patchbay-dev
Re: %YJwfqQH+q

@kyrias I'm pretty sure there's a bug in the name calculation algorithm in Patchbay. It's been there for a bit.

@kyrias in #patchbay-dev

Hmm, @LCWejxZ... still shows up as kyrias in patchbay for me, even though I've made both that feed and my feed identify it as kyrias-defunct. Is it just weirdly bugged, or...?

@_kyrias in #patchbay-dev

Hmm, if I click the checkbox to see the raw message on a "followed" message, the date and checkbox disappears so can't uncheck it.

@dominic in #patchbay-dev
Re: %ivVHMpVr2

Also, for mobile, we want to have disappearing tabs, that can then appear fullscreen. So, switching to horizontal mode is halfway to that.

@dominic in #patchbay-dev
Re: %ivVHMpVr2

I think I'm gonna change hypertabs to officially also support a sidetabs layout, and switch between them. It makes more sense when you are using it in a browser, because you already have browser tabs along the top.

@mixxx in #patchbay-dev
Re: %ivVHMpVr2

skinning and integrating etherium are two quite different projects right?

What did you have in mind for etherium? Keen on understanding whether it's a general idea you're still exploring or have some specific directions in mind

@magician11 in #patchbay-dev
Re: %ivVHMpVr2

@Dominic @ev I think @xstt is more interested in generally skinning patchbay, and having a focus on integrating key functionality like Ethereum as the backend.

So I don't think that mockup I sent would have to be pixel perfect. That design came from changing the look of patchwork while keeping an almost identical layout so the changes would be entirely CSS focused.

@dominic in #patchbay-dev
Re: %ivVHMpVr2

@ev maybe would should have a button to switch between showing them along top or side then?

@ev in #patchbay-dev
Re: %ivVHMpVr2

@dominic This row view definitely gives you a ton more space for tabs, if you want to have 30-40 of them open at once.

@dominic in #patchbay-dev
Re: %ivVHMpVr2

it will be surprisingly easy to turn the tabs into side-tabs.
you'll just have to switch some .column classes for .row classes.

just changing stuff in the inspector I got this

screenshot_patchbay-sidetabs.png

@ev in #patchbay-dev
Re: %ivVHMpVr2

@magician11 Cool. The left column seems to be similar to the hypertabs nav in Patchbay, but in Patchbay Hypertabs is at the top of the window. Maybe you can style it down the side? But it's designed to work at the top so I'm not sure how good that'd look.

There's no channel widget built for Patchbay yet, but /channels would be a cool module to have.

I find myself opening and closing the columns all of thetime, and less stagnant as they are in Patchwork.

For example, try opening /theme /network and try a search ?patchbay all at the same time.

@magician11 in #patchbay-dev
Re: %ivVHMpVr2

They want to create something like this https://slack-files.com/T04CZRLQM-F1SA0U477-0e83180425

I like flexbox :smile:

@ev in #patchbay-dev
Re: %ivVHMpVr2

@magician11 Patchbay has columns, it just doesn't show them by default. Try shift-clicking on /private and /notifications to open three columns.

Make sure you're on the latest master for @dominic changes to hypertabs.

The columns use flexbox to automagically align themselves to the width of the page. Take a look at modules/message to see the divs that are generated to make this work.

For a new column layout you'd probably want to make it a new patchbay module.

What do you want to put in the newer columns?

@magician11 in #patchbay-dev

Any tips/docs on where to start editing the theme for patchbay? I understand how to edit the css (style.css). But what about adding some columns say? We want to create something similar to patchwork in design.

@tha_flowmaster in #patchbay-dev
Re: %qHncxK0lv

Now do it from the middle of that other thread where the topic changed and move the tail along with the selected comment.

@ev in #patchbay-dev

[Forked from %fUxBNl6...]

@bobhaugen

"take this thread from some selected comment and make it into a new thread in this other channel"

Fork?

@Du5t in #patchbay-dev
Re: %czXzBnk0P

oh ok, so this is part of the larger blob/meta-format discussion? i'll use mentions for now then. thanks!

@Du5t in #patchbay-dev

@knowing-nose @rainbro would it be possible to get a blessed snippet of code that parses ssb message text and produces mentions, links, etc? almost done with ssb spaceship, but i want to make sure it's equal parity. whatever is in the existing codebase is fine too, i just want to get an explicit pointer

@cellular in #patchbay-dev
Re: %czXzBnk0P

@dust

ssb-mentions can be used for this:

var Mentions = require('ssb-mentions')

var mentions = Mentions(value.text)
if (mentions.length) value.mentions = mentions

this is what patchbay and git-ssb use. however, it relies on the ssb links being in the markdown - it does not parse plain @name mentions like patchwork does. so either the composer should have a way to auto-complete @name to [@name](@feed_id), or ssb-mentions could be updated to handle @name mentions, or users can manually type in the feed ids.

relevant issue on git-ssb-web: %cNpmYq5...

also if you want the mention links to include more data like file size and mime type for attachments, that can be added manually (patchbay and patchwork do this)

@ev in #patchbay-dev
Re: %DxCZBKwyn

@flexliv Does it work if you npm install browselectrify?

@flexliv in #patchbay-dev

Trying to install on OSX but getting this error in "npm run build":

Failed at the patchbay@2.5.2 build script 'node build.js > modules/_index.js && mkdir -p build && browselectrify index.js > build/bundle.js'

@dangerousbeans in #patchbay-dev

Not Logged In Mode

It'd be neat if people/bots just loading up the site without any invite yet could have read only access of what a pub can see.

This would mean content could be search indexed and people could get an idea of the discussion before joining in.

@Dominic you were saying there was a way of setting this up on the pub? o.O

@gb in #patchbay-dev
Re: %yAjXnTkZL

@cryptüx second this; I do the same thing

@the_linker in #patchbay-dev
Re: %yAjXnTkZL

also: if we use electron, can we make the tabs like native browser tabs and have the current mode as a stub for the liteclient?

not sure that is even a thing it provies but while i like the hacking esteem it feels really nasty right now. reordering/splitting in multiple windows is also a thing i'd like to do at some point.

same goes for the hover menu that hides behind the status indicator. I can't get to the items before they hide again.... :-/

@the_linker in #patchbay-dev

Can we have a warning/confirm dialog for closing the electron window? I killed it numerous times because my brain thought ctrl+w would close a tab here, too.

@the_linker in #patchbay-dev
Re: %gUz7vtlrx

I was missing the ctrl-enter part.

Yea, me too :) it workzz!!

@ev in #patchbay-dev
Re: %gUz7vtlrx

@dominic Thanks, got it! I was missing the ctrl-enter part.

@dominic in #patchbay-dev
Re: %gUz7vtlrx
 [
   {$filter: {
      value: { //git-update's by ev
        author: "@8Qee0I/DwI5DHSCi3p5fsl6FyLGArrnDz3ox9qZr5Qc=.ed25519", 
        content: {type: "git-update"}
      }
    }}
  ]

and then to run the query, hit ctrl-enter, it doesn't support reverse or limit options yet unfortunately though

@ev in #patchbay-dev
Re: %gUz7vtlrx

@dominic Example input? I tried a $filter query and it said 'okay', but then nothing happened.

@dominic in #patchbay-dev
Re: %gUz7vtlrx

it's a https://github.com/dominictarr/map-filter-reduce query,
hmm, okay so what might help is a set of example queries

I have that at
https://github.com/dominictarr/ssb-links
but I'm planning to do the ssb-links querys via ssb-query (so that there is only one query interface)

I tested that query in the interface, so it ought to work - maybe you need to update your ssb-query?

@the_linker in #patchbay-dev

@dominic: can you give us a primer on how to use the /query tab?

I tried to use the json object from @ev's git-update question but it only says okay under the textarea and does nothing.. :[

@ev in #patchbay-dev

The only CSS thing I want to figure out, but can't seem to, is how to keep private messages from getting a vertical scrollbar when you've opened a split(/public,/private,/notifications) tab in Patchbay.

For some reason /private always seems to open to 600px for me.

@dangerousbeans in #patchbay-dev
Re: %q9gp3i2pm

Me too, I fee like now to get a good picture of what's going on I need to look at both patchwork and patchbay

@ev in #patchbay-dev
Re: %dqptFqdfW

Or click the status indicator for network information?

@the_linker in #patchbay-dev

I'd like to have a /stats tab to debug blobs replication and network connections.

@Toady in #patchbay-dev

I really like having the individual replies back (not just at the end of thread) but sometimes it is hard to see new messages in a long thread/tedious to follow without a collapsing tree ui.

@crypthiggs in #patchbay-dev

I'd like to suggest graph tooling if somebody is feeling an itch to hack on something ssb related. Especially (1) is getting more and more interesting.

@dangerousbeans in #patchbay-dev
Re: %2kcz1BT6j

Oh yeah I see this guy also often

@Toady in #patchbay-dev
Re: %JoV+ZMK04

(as ref for future arrivals: %gAI1h6D...)

@Toady in #patchbay-dev
Re: %JoV+ZMK04

@dominic I hope I can sink a couple of hours into this tomorrow. I've you have a bit of insight here, this would be very helpful.

@the_linker in #patchbay-dev

re https://github.com/dominictarr/patchbay/pull/51#issuecomment-234851407:

you could still include something in other compilations by linking to the blob, and referencing the source (or use backlinks to show it also appears in these other collections)

Hmm.. I honestly haven't played enough with ssb-links but map/reducing individual tracks from this style of objects into playlists etc sounds icky, no?

I also liked the selfcontainedness of the fat approach but I have no idea how to get petname-ish editing of metadata into that... Re-posting the hole thing as an overwrite-update?

Also: How would I collaborate on that? The sparse approach (I thought) makes it easier for other people to add cover images or reviews or pick other names for things.. but maybe I'm just growing infinite post-spaghetti here...

I'm guessing you made the files manually (since you left some json files there) I guess next step is a tool to create a set for you. A command line tool is still progress.

Yup, the first ones I drafted by hand and did cat file.json | sbot publish.. The later ones, I created with pubit, a small tool that converts the _meta.xml and _files.xml of the archive.org backups into ssb posts.

Oh, and a playlist queue thing ;)

hehe.. yea.. I'll try to look up how you did the split and see how I can anchor something down on the page. Got a bit hold up on my forky mcforkface action..

my policy for patchbay is gonna be merge everything I can (I don't want to have repeat of editable-posts debacle) until I can't stand it anymore and then implement the ideas I have for on-the-fly plugins (it should be fairly straightforward to port any patchbay plugin to that)

<3

(cc @Dominic for notificationzz)

@gb in #patchbay-dev

Received this error twice today, so including for reference:

 Tray: [Getter] }
(node:12669) Warning: Possible EventEmitter memory leak detected. 11 data listeners added. Use emitter.setMaxListeners() to increase limit
(node:12669) Warning: Possible EventEmitter memory leak detected. 11 process.stdout listeners added. Use emitter.setMaxListeners() to increase limit
(node:12669) Warning: Possible EventEmitter memory leak detected. 11 process.stderr listeners added. Use emitter.setMaxListeners() to increase limit
@dominic in #patchbay-dev
Re: %o1AwHa58h

hmm, hitting escape should probably take you out of the text area.

@cellular in #patchbay-dev
Re: %o1AwHa58h

on >= v1.1.2, press key x (while not focused on a text area)

@ev in #patchbay-dev

Now that #21 Firefox is merged, what are the instructions for getting Patchbay into Firefox?

@ev in #patchbay-dev

Patchbay question: once I open a tab, how can I close it?