text:
Raytracing Example

We will work on getting a serialized Mitusba scene to display, and be rendered with:

High Performance
Correct BRDF + Material
Global sunlight
~Reinhard Tonemapping Operator (ACES optional extra)~
~AA / Denoising (TSSAA, SVGF, or something else)~
~Raytraced Shadows (RR 2.0, or own solution for OpenGL)~
Second Bounce (Importance sampled specular)

Division of Work (very rough, missing issues):

@devshgraphicsprogramming : Supervision, #206, #165, #7, #162, #148
@Crisspl : #351, #130, #119, #173, #151, #227, #280, #298
@Przemog1 : #241, #215, #207, #53, #208, #85

New division of labour:
@devshgraphicsprogramming : Supervision, #162, #148, #119
@Crisspl : get the video namespace operational, create BSDFs for loaded Mistuba Meshes, #280, #173, #298,
@AnastaZIuk: #351, #241, #215, #207, #85, #384

The transforms will be on the GPU
An allocator will give each IDummyTransformationSceneNode a UUID (offset) into a buffer holding the values updated by a compute shader.
Input

Double Buffered (CPU and GPU) dynamic read_only buffer of relative transforms as 3x 4 component vector.
Separate Buffer of uint (or uvec2) containing absolute offsets to parents (parent ID), with special dead value indicating no parent. Perhaps some flags (like the ready flag).

Output

GPU-only buffer that contains view-independent resultant values + maybe a ready_flag

Related to #119
Special Considerations
Use Timothy Lottes method of hierarchical raytracing, instead of launching N dispatches per N hierarchy levels, just recompute if parent not ready. Pseudocode
// method number 1 - save on registers, do duplicate work
mat4x3 absoluteTForm = rel_tform[selfID];
uint parentID = parent_array[selfID];
for (; not_ready(parentID); parentID=parent_array[parentID])
{
   absoluteTForm = rel_tform[parentID]*absoluteTForm;
}
abs_tform[selfID] = abs_tform[parentID]*absoluteTForm;
set_ready(selfID);
#ifdef NEED_BARRIER
appropriateBarrier();
#endif

// method number 2 - spend registers
// explore up to first ready node
assert(MAX_HIERARCHY_LEN>1u);
uint nodeID[MAX_HIERARCHY_LEN];
nodeID[0] = selfID;
uint firstReady=0u;
while (firstReady<(MAX_HIERARCHY_LEN-1u))
{
   nodeID[++firstReady] = parent_array[nodeID[firstReady]];
   if (is_ready(nodeID[firstReady]))
      break;
}
// compute transforms
mat4x3 absoluteTForm = abs_tform[nodeID[firstReady]];
for (int i=firstReady-1u; i>=0; i--)
{
   uint thisID = nodeID[i];
   abs_tform[thisID] = absoluteTForm *= rel_tform[thisID];
#ifndef NEED_BARRIER
   set_ready(thisID);
#endif
}
#ifdef NEED_BARRIER
appropriateBarrier();
for (int i=firstReady-1u; i>=0; i--)
   set_ready(nodeID[i]);
#endif

To make adding and removing nodes fast, we can let go of the requirement that each hierarchy level sit in contiguous area of memory (don't have to shift everything when adding and removing instances - like Skinning Manager, unlike Instanced Mesh). However it would make everything faster if generally the higher level nodes had lower value indices.
There shall be a scene::IGPUTransformManager which shall run once per frame, after all relative transforms have been updated.
For CPU operations that need to know absolute transforms, a similar approach to method 2 could be used on the CPU (with a separate backing buffer, a NAN absolute transform could signal unreadyness).
When relative transforms update, the change needs to be propagated to the GPU-side buffer, then all children transforms must be marked as "not-ready" . Ideally a compute shader should scatter the updated values (avoid a buffer copy of redundant ranges).
Questions

Does the flag buffer and the absolute transform buffer need to be volatile or coherent ?
3x vec4 SoA or 1x mat4x3 AoS SSBO for best bandwidth?
TBO vs read_only SSBO for best perf?

Extensions for Skinning and GPU-side animation
// rel_tform is read_write
// parent_array is now read_only + restrict and stores an animation pointer
// animation_frame is read_only + restrict
// last_animation_frame is coherent + restrict

bool requiresUpdate(in uint selfID)
{
   return last_animation_frame[selfID]!=animation_frame[selfID];
}
void setNotRequireUpdate(in uint selfID)
{
   last_animation_frame[selfID] = animation_frame[selfID];
}

mat4x3 getRelativeTransform(in uint selfID)
{
   if (isSkinned)
   {
      mat4x3 rel = getAnim();
      rel_tform[selfID] = rel;
      return rel;
   }
   else
      return rel_tform[selfID];
}

uint nodeID[MAX_HIERARCHY_LEN];
nodeID[0] = selfID;
int firstReady=0u;
while (firstReady<MAX_HIERARCHY_LEN-1)
{
   if (requiresUpdate(nodeID[firstReady]))
      break;
   nodeID[++firstReady] = parent_array[nodeID[firstReady]];
}
// compute transforms
if (firstReady!=0)
{
   mat4x3 absoluteTForm = abs_tform[nodeID[firstReady]];
   for (int i=firstReady-1; i>=0; i--)
   {
      uint thisID = nodeID[i];
      abs_tform[thisID] = absoluteTForm *= getRelativeTransform(thisID);
   }
   memoryBarrierBuffer();
   for (int i=firstReady-1; i>=0; i--)
      setNotRequireUpdate(nodeID[i]);

   aux[nodeID[0]] = computeAuxData(absoluteTForm);
}

Ideal GPU Driven Rendering
Without any culling at all the command buffer would look like this
bindPipeline(pipeline[0]);
bindIndirectBuffer(indirectdrawbuffer[0]);
if (supported)
   bindIndirectBuffer(indirectparameterbuffer[0]);
bindDescriptors(N,descriptors[0]);
if (supported)
   multiDrawIndirect(MODE,TYPE,drawBufferOffset[0],indirectParameterOffset[0],maxDraws,stride[0]);
else
   multiDrawIndirect(MODE,TYPE,drawBufferOffset[0],maxDraws,stride[0]);
...

Each MDI call is either:
typedef  struct {
        uint  count;
        uint  instanceCount;
        uint  first;
        uint  baseInstance;
    } DrawArraysIndirectCommand;

or
typedef  struct {
        uint  count;
        uint  instanceCount;
        uint  firstIndex;
        uint  baseVertex;
        uint  baseInstance;
    } DrawElementsIndirectCommand;

MultiDraw, Bindless and Deferred Friendly shading
#ifdef ARB_shader_draw_parameters
restrict read_only buffer IDBuffer
{
   uvec2 globalInstanceID[];
};
#else
in uvec2 instance_mesh_IDs; // fake with gl_BaseInstance = gl_DrawID+pushConstants.BaseDraw
#endif

void main()
{
...
#ifdef ARB_shader_draw_parameters
uvec2 instance_mesh_IDs = globalInstanceID[gl_DrawID+pushConstants.BaseDraw];
#endif
...
}

Can we settle on a single uint for instance_mesh_IDs ?
If we reserve N (N==meshCount) mesh-instance datas together with the per-instance data when allocating, it might be fine.

Camera/Renderpass
void CameraOrRenderpassOrSomething::enqueDraw(IGPUMeshBuffer* mb, ISceneNode::node_id* nodeIDs)
{
   if (mb->getPipeline()!=commands.getCurrentPipeline())
   {
      commands.bindPipeline(mb->getPipeline());
      commands.flushMDI();
   }
   if (mb->getDescriptorSet()!=commands.getDescriptorSet(3u))
   {
      commands.bindDescriptorSet(mb->getPipeline()->getLayout(), 3,1, &mb->getDescriptorSet());
      commands.flushMDI();
   }

   for (uint32_t i=0u; i<mb->getInstanceCount(); i++)
   renderpassData.emplace_back({
      nodeIDs[i],
      mb->getMeshID(i),
      this->getCameraID(),
      this->getLocalID(mb->getMeshID(i))
   });

   static uint32_t globalDrawCount = 0u;
   commands.setPushConstants(0u,sizeof(uint32_t), &globalDrawCount);
   globalDrawCount += mb->getInstanceCount();

   if (mb->getIndexType()==EIT_UNKNOWN)
      commands.add_arrays({mb->getIndexCount(),mb->getInstanceCount(),mb->getBaseVertex(),globalDrawCount});
   else
      commands.add_elements({mb->getIndexCount(),mb->getInstanceCount(),mb->getIndexOffset()/sizeof(type),mb->getBaseVertex(),globalDrawCount});
}

Buffers

(restrict coherent) Node Parent link list +  last and current animation frame + global armature keyframe list ID
(restrict read_only) Node Relative Transform + Per-Node Data for Transform Computation
(restrict coherent) Node Absolute Transform
(restrict read_only) Armature bone keyframe lists struct {uint count; uint offsetToKeyframeData; float timestamp[];};
(restrict read_only) Skinning Animation for all Armature Parts (can have separate keyframe lists per bone)
(optional restrict write_only) Node Auxilary Data that can be computed in the transform shader

First and second buffer can be merged together probably.

(restrict read_only) MultiDrawIndirect Input buffer for all command buffers from all renderpasses
(restrict coherent) MultiDrawIndirect Output buffer for all command buffers from all renderpasses
(restrict write_only) MultiDrawIndirect Output buffer to clear
(restrict coherent) Indirect Parameter Buffer to keep count of MultiDrawIndirect counts
(restrict read_only) Buffer that maps gl_GlobalInvocationIndex to (cameraIndex/viewIndex,parameterIndex,drawIndex,instanceIndex,objectID,meshBufferID,uniqueDrawInstanceID) implicitly or explicitly
(restrict write_only) Buffer that holds important per-uniqueDrawInstanceID data such as the fully concatenated projection, view and inverse matrices (at least 192 bytes per draw).

CameraID is to get the view and projection matrices (plus other global stuff).
ParameterIndex can retrieve per-pipeline things.
ObjectID (pseudo-nodeID) is to get the absolute world transformation.
MeshBufferID is to get the bounding box and any other data necessary for culling.
uniqueDrawInstanceID obtains the output index for successfully computed data.
Observations
Need following flags for our Culling Manager:

USE_INDIRECT_PARAMETERS whether to use gl_DrawID and a parameter buffer
DYNAMIC_COMMAND_BUFFER whether to re-record the command buffer
DOWNLOAD_RESULTS (requires DYNAMIC_COMMAND_BUFFER) whether to download the culling results and skip some pipeline binds and draws

This shall be a 1 million draw-call-equivalent capable system.
Extensions
Could set-up an extra parameter/query to forego updating absolute transforms and animations if we know self and all children nodes will not be visible for certain.

Overview and Order of New Rendering
Animate and BoundingBox Update
Scene Node hierarchies are updated, new bounding boxes are updated (with atomics if not for self) and old bounding boxes are cleared.
Per View Draw Cull
After cameras/views enqueue the meshbuffers to their command buffers to be drawn later, compute shader modifies multi-draw indirect argument and parameter buffers.
Skinning and Triangle Culling
Optional skinning is performed in world space, then triangle broadcast followed by per-view transform and culling. Need to check if the parent node bounding box of the drawcall was visible for any view at all.

Assign InvocationIDs so that whole workgroup has the same Coarse ID

Triangle and cluster culling should be outside the scope of the raytracing example.

Allow for Per-View-Draw cull etc. for multiple views, but not needing all the drawcalls for a view (opens up better scheduling).

see https://github.com/buildaworldnet/IrrlichtBAW/issues/119#issuecomment-598330860

We have something that works nicely.

repo: buildaworldnet/IrrlichtBAW


text:
Remove xcodeproj.archived_bundles_allowed

We can now default this to the correct value, and projects can change that in their .bazelrc or xcodeproj.bazelrc file.

@jpsim Tagged you since I know Envoy Mobile had to use archived_bundles_allowed = True, so I wanted to make sure this new process works for your use case.

source: gharchive/pull-request

license: MIT

license_type: permissive

license_source: github-api


text:
chore(travis.yml): removes redundant pyenv call

Description
Previously the TravisCI default images were based on Ubuntu Trusty and had Python 2.7 enabled by default. The AWS CLI we use requires Python 3.x, so we used pyenv to
switch to that version. Recently this step has begun failing our builds with the following error: pyenv: version '3.6' not installed. However, TravisCI has changed
the default images to Ubuntu Xenial and that now [uses Python 3.6.7 by default](https://docs.tr
avis-ci.com/user/reference/xenial#python-support) so the use of pyenv is now redundant anyway. This commit therefore removes that call and, in doing so, hopefully fix
es the deployment step as well.

:tada: This PR is included in version 3.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: buildit-dev james-nash

repo: buildit/gravity-ui-web


text:
Prevent data race between channel close and send

The agent tests encountered a data race here. Concurrently closing and sending on the same channel is racy.
While I'm here, slightly simplify the rest of Proxy.Close.

Post-approval tweak: I forgot to actually set p.closed = true - added that.

repo: buildkite/bintest


text:
Kekurangan Langkah Install pada Panduan Cara Deploy VPS Ubuntu Server (Apache)

Deskripsi
Pada task ini kita ingin menambahkan kekurangan langkah deploy buku masjid di VPS Ubuntu Server. Sekaligus menambahkan link youtube tutorial video dari mas @musaamin: https://www.youtube.com/watch?v=EBgldM3Erus
Checklist

[x] Tambahkan langkah menjalankan perintah php artisan key:generate setelah langkah Copy file .env pada halaman panduan https://bukumasjid.com/docs/deployment/vps-ubuntu-server
[ ] Tambahkan video youtube https://www.youtube.com/watch?v=EBgldM3Erus bagian paling atas sebagai tutorial video deploy buku masjid pada VPS.

Progress
Kekurangan langkah installnya sudah ditambahkan oleh mas @musaamin di PR #64.
Selanjutnya
Mas Musa Amin rencana mau buat ulang video tutorialnya, jika sudah ada video terbaru, kita muat di halaman panduan ini.

Video yang baru di https://www.youtube.com/watch?v=JYfRzlYLgM8
Perlu juga ditambahkan perintah membuka file .env nano .env

Alhamdulillah, siap mas @musaamin saya tambahkan video di halamannya.

Progress

Saya coba tambahkan video youtube, tetapi terkendala error Content Security Policy (screenshot terlampir)
Coba update header untuk tambah URL, tapi belum berhasil (05dcd5a).

Screenshot

Next TODO

Masih mencari solusi lain agar video youtube bisa dimainkan di web (secara embed).
Jika tidak bisa, mungkin diberikan link ke video youtubenya saja.

Progress

Alhamdulillah sudah berhasil memasang youtube video pada halaman artikel secara embed setelah ditambahkan content security policy (73b13ae)

Link Panduan:
https://bukumasjid.com/docs/deployment/vps-ubuntu-server/#install-mariadb
Screenshot:

Issue ini bisa kita close. Sekali lagi terima kasih kontribusinya mas @musaamin.

source: gharchive/issue

authors: musaamin nafiesl

repo: buku-masjid/docs


text:
🛑 GOTO Parking is down

In db93626, GOTO Parking (https://gotoparking.ro) was down:

HTTP code: 503
Response time: 925 ms

Resolved: GOTO Parking is back up in 9d25962.

repo: buligadragos/UpTime


text:
Cold install tries writing Atomic gem to system Ruby directory

When trying to deploy cold I get the following error:
$ bundle install --path=/<app-path>/shared/bundle --without development test
Unfortunately, a fatal error has occurred. Please see the Bundler troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': Permission denied @ dir_s_mkdir - /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/atomic-1.1.15 (Errno::EACCES)
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:224:in `block (2 levels) in mkdir_p'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:222:in `reverse_each'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:222:in `block in mkdir_p'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:208:in `each'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:210:in `write_gem_make_out'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:132:in `build_error'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:171:in `rescue in build_extension'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:156:in `build_extension'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:198:in `block in build_extensions'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `each'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `build_extensions'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:1436:in `block in build_extensions'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/user_interaction.rb:45:in `use_ui'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:1434:in `build_extensions'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/stub_specification.rb:60:in `build_extensions'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:925:in `block in find_inactive_by_path'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:924:in `each'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:924:in `find'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb:924:in `find_inactive_by_path'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems.rb:185:in `try_activate'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendor/net/http/persistent.rb:12:in `<top (required)>'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendored_persistent.rb:3:in `<top (required)>'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/fetcher.rb:1:in `<top (required)>'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/cli/install.rb:70:in `run'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/cli.rb:146:in `install'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendor/thor/command.rb:27:in `run'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendor/thor.rb:363:in `dispatch'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/vendor/thor/base.rb:440:in `start'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/cli.rb:9:in `start'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/bin/bundle:20:in `block in <top (required)>'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
    from /opt/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/bin/bundle:20:in `<top (required)>'
    from /usr/local/bin/bundle:23:in `load'
    from /usr/local/bin/bundle:23:in `<main>'

I originally had this with 1.5.3, but even after upgrading to 1.6.2 I got the same. I installed the atomic gem manually (sudo gem install atomic -v 1.1.15), and after that everything else worked fine.
Why is Bundler trying to install this gem there?
Bundler version 1.6.2
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux](installed from source)
Ubuntu 12.04.4 LTS

Failed to reproduce this, closing due to age.

authors: lucaspiller segiddins

repo: bundler/bundler


text:
[FIX] skip bundler gem when warning when an explicitly updated spec d…

…oes not get a newer version (618c09b59d1318958c23b1b0031c68c93186851a)
Thanks so much for the contribution!
To make reviewing this PR a bit easier, please fill out answers to the following questions.
What was the end-user problem that led to this PR?
The problem was when running bundle update --group xxx
What was your diagnosis of the problem?
My diagnosis was that bundler was taken into consideration and fails the updating process
What is your fix for the problem, implemented in this PR?
My fix is to skip bundler when checking whether to warn when an explicitly updated spec does not get a newer version
Why did you choose this fix out of the possible options?
I chose this fix because it is a rather new code (added in v1.16.0) and it is rather simple and doesn't require lots of changes in code. Another option would be to revert the lines added between 1.15.4 and 16.0.0 altogether. Up to the maintainers to decide.

Thanks for opening a pull request, we will need a test for this change to make sure we don't regress in the future.

Looks good with an added test case!

Thanks @segiddins any plans to merge any time soon?

@oded-zahavi This still requires a test and this also needs to rebase with master before we merge.

Imho it shouldn't have passed previous CI because the bug was actually
inserted in 0.16.0. Working like a charm in 0.15.4
Anyways - Should I write tests of should it pass your tests?
On Thu, Nov 16, 2017 at 9:54 PM, Colby Swandale notifications@github.com
wrote:

@oded-zahavi https://github.com/oded-zahavi This still requires a test
and this also needs to rebase with master before we merge.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bundler/bundler/pull/6155#issuecomment-345043438, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ARMa1ROjepRPMzKbFV0q1qJqLI3MgK1Kks5s3JLbgaJpZM4QUseX
.

Yes, please add a test so we don't regress in the future

ping @oded-zahavi

authors: colby-swandale oded-zahavi segiddins


text:
Update rubocop version and update files to be inline with new cops

Update rubocop and remove deprecated cop
related to https://github.com/bundler/gemstash/pull/198

@olleolleolle want to give it a look?

2.4.1 failed 😱

@bundler/bundlerbot +1

@olleolleolle is just @bundlerbot r+

@bundlerbot r+

authors: bronzdoc olleolleolle

repo: bundler/gemstash

license: mit

license_source: bigquery


text:
Fix resolution issues with the MacOS tray icon

Using the template icons in dc3841163ab7a58e257188a86acfe412ed4afa6c

repo: bunqCommunity/bunqDesktop


text:
🛑 doubledouble is down

In 43289f6, doubledouble (https://doubledouble.top/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: doubledouble is back up in 1a9c5f1 after 9 minutes.


text:
Background wihout image

When i use this library without background image i can not set text in all direction i mean when i move text near top,bottom edges it is automatically scrolling that text to center how can i solve this issue.Please help me to get out from this.

This is the expected behaviour of the library. Whenever we drag the View outside the image boundary. It will move it to the centre.

@DroidMagician you could achieve what you want creating a empty bitmap like so:
val emptyBitmap = Bitmap.createBitmap(editor_main.width, editor_main.height, Bitmap.Config.ARGB_8888)
photoEditorView?.source?.setImageBitmap(emptyBitmap)
I'm using this on our app and it's working perfectly.

@DroidMagician Will this solve your problem? if so, try to close the issue.
Thanks

authors: DroidMagician Sulfkain burhanrashid52


text:
Fixing pt-BR typo

The current phrase is sounding kinda weird: xx% people using this browser
Changed to make phrase sound more natural: xx% of people use this browser
This change sounds pretty meh when reading above in English, but in Portuguese it feels much more natural.

Thank you ;)

authors: alexandre-works kazzkiq

repo: burocratik/outdated-browser


text:
Allow user to look for a tag within the search bar

Our search should allow user to find a tag from the trending list, or a custom one.

@pareshUD when a user searches for something, it searches within all 3 categories - tags, users, posts

@jm90m can you check this please?

authors: bonustrack jm90m pareshUD

repo: busyorg/busy


text:
Reverse proxy through linuxserver/swag with subdomain rather than subfolder

Not sure if this is a bug or a feature request (I suspect the later)...
I'm trying to reverse proxy wetty through linuxserver/swag.  The container works fine locally at ip:3000/wetty.  I add it to my swag network, I then create a wetty.subdomain.conf file (see below), restart swag, then restart wetty... but then I just get what looks like a windows explorer window that says "reconnecting" over and over till I close the tab.  I suspect this is because I can't add the /wetty to the end of the $upstream port in the subdomain.conf file.  I'm assuming this would work fine on subfolder, but my preference is to use subdomains.
Any suggestion would be greatly appreciated.  Edit:  I'm not sure why the below split into 3 sections, but it's all there.  If you'd like to look at it w/o the weird formatting, here's a pastebin of the file.  https://pastebin.com/AvVurN3i
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name wetty.*;

include /config/nginx/ssl.conf;

client_max_body_size 0;

# enable for ldap auth, fill in ldap details in ldap.conf
#include /config/nginx/ldap.conf;

# enable for Authelia
#include /config/nginx/authelia-server.conf;

location / {
    # enable the next two lines for http auth
    #auth_basic "Restricted";
    #auth_basic_user_file /config/nginx/.htpasswd;

    # enable the next two lines for ldap auth
    #auth_request /auth;
    #error_page 401 =200 /login;

    # enable for Authelia
    #include /config/nginx/authelia-location.conf;

    include /config/nginx/proxy.conf;
    resolver 127.0.0.11 valid=30s;
    set $upstream_app 192.168.1.166;
    set $upstream_port 3000;
    set $upstream_proto http;
    proxy_pass $upstream_proto://$upstream_app:$upstream_port/wetty;
    access_log off;
}

}

Well I ain't no expert, but...
Have you considered running wetty with '--base /' and then using the proxy_pass without /wetty in it?
Because... wetty expects all its' requests to come with /wetty/ prefix, and builds its' paths according to it. But when you map / to /wetty in Nginx, essentially when user goes to / it is forwarded to /wetty so the app starts to load (as the right HTML is sent to the client), but then when the app asks for /wetty/whatever, your config, IMO, actually makes it go to /wetty/wetty/whatever from the wetty service perspective.
If you do want the /wetty/ in your URLs (though it doesn't make sense to me if you gave it a unique hostname instead...), I think the proper way to reverse-proxy this in Nginx would be to use 'location /wetty' to redirect to the proxy_pass you've chosen, and then have another 'location = /' that would have a single redirect directive to redirect people who hit the / URL into /wetty/
Hope this helps...

@shimile assessment sounds correct please report back if it helps

I moved on to another solution, but just happened to see this and never saw the answer that was posted until a few minutes ago.  I didn't notice the -b switch I could use when I tried this the first time.
docker run --restart=always --name=wetty -p 3000:3000 wettyoss/wetty --ssh-host=192.168.1.166 -b
Seems to have done the trick and I can reverse proxy through swag w/ the subdomain.conf I posted above.
Thanks!

Thanks

authors: butlerx ken8521 shimile

repo: butlerx/wetty


text:
add support for before_schedule and after_schedule hooks

Behaves very much like the before_enqueue and after_enqueue hooks in Resque 1.19.1 (still not tagged):

before hooks can block scheduling of the job by returning false
after hooks are only run if the job was scheduled

Interesting.
A couple things:

Can you port the test to a context like the other ones?
Remove the puts in the tests.
Instead of hitting redis directly in the test, it might be cleaner to use the existing Resque interface to the delayed queue.
Update the README (under the Delayed Jobs section) to describe the hooks.

I'll respond in order:

Only one of the others uses context (scheduler_args_test.rb), the rest use the format I used. I'll gladly port it if you wish, but I was attempting to adhere to the project's existing tests.
Done.
Done.
Done.

Yeah.  I just ported the rest yesterday :).  I totally understand why you did it the way you did it.  You might want to merge from master.

Ah! No wonder I didn't catch that :)
I ported my tests to use context
Anything else?

No, I think it looks good.

authors: bvandenbos yaauie

repo: bvandenbos/resque-scheduler


text:
🛑 Sai Gardens Community Hall is down

In c19743a, Sai Gardens Community Hall (https://cloud.tymly.in/status/1073) was down:

HTTP code: 521
Response time: 20227 ms

Resolved: Sai Gardens Community Hall is back up in 5e707b0.

repo: bvenkysubbu/tymlymonitor


text:
🛑 SMR Vinay Cascade A Block is down

In 5fc969d, SMR Vinay Cascade A Block (https://cloud.tymly.in/status/1094) was down:

HTTP code: 521
Response time: 20232 ms

Resolved: SMR Vinay Cascade A Block is back up in c7c921d.


text:
🛑 PSR Aster 3 E Block is down

In 961207f, PSR Aster 3 E Block (https://cloud.tymly.in/status/1064) was down:

HTTP code: 0
Response time: 0 ms

Resolved: PSR Aster 3 E Block is back up in ff58c91.


text:
🛑 White Breeze 1 is down

In ed03b93, White Breeze 1 (https://cloud.tymly.in/status/1096) was down:

HTTP code: 0
Response time: 0 ms

Resolved: White Breeze 1 is back up in 30d50aa.


text:
🛑 Sterling Ascentia Tower 5 is down

In 1f649af, Sterling Ascentia Tower 5 (https://cloud.tymly.in/status/1143) was down:

HTTP code: 521
Response time: 20244 ms

Resolved: Sterling Ascentia Tower 5 is back up in 4696cd7.


text:
🛑 Sterling Shalom F Block is down

In a68c42c, Sterling Shalom F Block (https://cloud.tymly.in/status/1013) was down:

HTTP code: 521
Response time: 234 ms

Resolved: Sterling Shalom F Block is back up in c3ad9f5.


text:
🛑 Mahaveer Varna B1 is down

In 33e16b1, Mahaveer Varna B1 (https://cloud.tymly.in/status/1085) was down:

HTTP code: 521
Response time: 20245 ms

Resolved: Mahaveer Varna B1 is back up in b47e46d.


text:
🛑 SMR Vinay Cascade A Block is down

In 03f90e3, SMR Vinay Cascade A Block (https://cloud.tymly.in/status/1094) was down:

HTTP code: 521
Response time: 20225 ms

Resolved: SMR Vinay Cascade A Block is back up in bd2b140.


text:
🛑 Sai Gardens Community Hall is down

In ad1f3d0, Sai Gardens Community Hall (https://cloud.tymly.in/status/1073) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Sai Gardens Community Hall is back up in 2868194.


text:
🛑 Prakruthi Villas Sarjapura is down

In 4b885af, Prakruthi Villas Sarjapura (https://cloud.tymly.in/status/1058) was down:

HTTP code: 521
Response time: 20221 ms

Resolved: Prakruthi Villas Sarjapura is back up in cc02a13.


text:
🛑 Nitesh Flushing Meadows Block A is down

In b52d88b, Nitesh Flushing Meadows Block A (https://cloud.tymly.in/status/1053) was down:

HTTP code: 521
Response time: 241 ms

Resolved: Nitesh Flushing Meadows Block A is back up in 4b56149.


text:
🛑 Amrutha Sarovar is down

In 9cafb07, Amrutha Sarovar (https://cloud.tymly.in/status/1016) was down:

HTTP code: 521
Response time: 3639 ms

Resolved: Amrutha Sarovar is back up in 7578b76.


text:
🛑 Mahaveer Varna B3 is down

In 4053783, Mahaveer Varna B3 (https://cloud.tymly.in/status/1086) was down:

HTTP code: 521
Response time: 20232 ms

Resolved: Mahaveer Varna B3 is back up in 64b5e85.


text:
🛑 SMD Altezz Block B Basement is down

In ecf8408, SMD Altezz Block B Basement (https://cloud.tymly.in/status/1204) was down:

HTTP code: 521
Response time: 248 ms

Resolved: SMD Altezz Block B Basement is back up in 3629acd.


text:
🛑 SMR Vinay Cascade B Block is down

In a7de29a, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 242 ms

Resolved: SMR Vinay Cascade B Block is back up in 0557437.


text:
🛑 Urban Greens is down

In a381051, Urban Greens (https://cloud.tymly.in/status/1046) was down:

HTTP code: 521
Response time: 237 ms

Resolved: Urban Greens is back up in 4e47333.


text:
🛑 Dasta Concerto Clubhouse Gym is down

In 6e0a81a, Dasta Concerto Clubhouse Gym (https://cloud.tymly.in/status/1189) was down:

HTTP code: 521
Response time: 20232 ms

Resolved: Dasta Concerto Clubhouse Gym is back up in 0dd67c9.


text:
🛑 Trifecta Esplanade F Block is down

In bd2e8e0, Trifecta Esplanade F Block (https://cloud.tymly.in/status/1159) was down:

HTTP code: 521
Response time: 20237 ms

Resolved: Trifecta Esplanade F Block is back up in 3f74d75.


text:
🛑 VBHC Serene Town D Block is down

In cb30022, VBHC Serene Town D Block (https://cloud.tymly.in/status/1131) was down:

HTTP code: 521
Response time: 218 ms

Resolved: VBHC Serene Town D Block is back up in b9bf9f5.


text:
🛑 Sterling Shalom E Block is down

In be60a90, Sterling Shalom E Block (https://cloud.tymly.in/status/1070) was down:

HTTP code: 521
Response time: 20215 ms

Resolved: Sterling Shalom E Block is back up in e86ff8a.


text:
🛑 Dasta Concerto Clubhouse Gym is down

In fa2be73, Dasta Concerto Clubhouse Gym (https://cloud.tymly.in/status/1189) was down:

HTTP code: 521
Response time: 20258 ms

Resolved: Dasta Concerto Clubhouse Gym is back up in 4ae27a6.


text:
🛑 SMD Altezz Block B is down

In f0bd860, SMD Altezz Block B (https://cloud.tymly.in/status/1176) was down:

HTTP code: 521
Response time: 20221 ms

Resolved: SMD Altezz Block B is back up in a8718a1.


text:
🛑 SMD Altezz Block C is down

In d046eac, SMD Altezz Block C (https://cloud.tymly.in/status/1177) was down:

HTTP code: 521
Response time: 20278 ms

Resolved: SMD Altezz Block C is back up in bf5924c.


text:
🛑 Mahaveer Varna B3 is down

In f7d0243, Mahaveer Varna B3 (https://cloud.tymly.in/status/1086) was down:

HTTP code: 521
Response time: 20261 ms

Resolved: Mahaveer Varna B3 is back up in a2cd912.


text:
🛑 VBHC Serene Town B Block is down

In e030cf9, VBHC Serene Town B Block (https://cloud.tymly.in/status/1130) was down:

HTTP code: 0
Response time: 0 ms

Resolved: VBHC Serene Town B Block is back up in 37ff35d after 890 days, 23 hours, 41 minutes.


text:
🛑 Sai Gardens Community Hall is down

In c3c0986, Sai Gardens Community Hall (https://cloud.tymly.in/status/1073) was down:

HTTP code: 521
Response time: 20203 ms

Resolved: Sai Gardens Community Hall is back up in 2fc963b.


text:
allow false over stop channel to continue

This is running quite well on my own project.
It lets one send false to the stop channel to see if a stream is currently running without killing it, while still being able to send true to the stop channel to kill it:
select {
  stop <- false:
    // is alive, didn't kill
    // queue playback
  default:
    // is dead
    // start playback
}

and
select {
  stop <- true:
    // was alive, killed
    // start playback
  default:
    // is dead
    // start playback
}

This is very useful if you want to create a queue or the like and not override a current stream with new requests.
If anyone is interested in a full working queue using this, ping me and I can send you some snippets. My example is too integrated in my own project to copy/paste alone.

This repo is only meant to be an introductory example on how to do this.  I don't want to add or change any features or how it works.  I'd recommend making a fork or your own version of this code and then applying this to that for your use.

authors: bwmarrin korvyr

repo: bwmarrin/dgvoice


text:
Fails to install package with local replace directives and multiple modules

bingo version output:
v0.9
go version output:
go version go1.21.5 darwin/arm64
What happened:
Tried to install the latest po-lint package with bingo get -v -l github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest.
What you expected to happen:
To have po-lint installable, even though it has a few replace clauses.
How to reproduce it (as minimally and precisely as possible):
bingo get -v -l github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest
Logs (use bingo get -v <thing you do> for verbose output):
Click to see lots of logs!
getting target github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest (module  )
exec 'go mod init -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint-e.tmp.mod _'
exec 'go get -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint-e.tmp.mod -d github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest'
exec 'go env GOMODCACHE'
resolveInGoModCache: /Users/doolivei/go/pkg/mod/cache/download/github.com/prometheus-operator/prometheus-operator/cmd/po-lint/@v directory does not exists
resolveInGoModCache: /Users/doolivei/go/pkg/mod/cache/download/github.com/prometheus-operator/prometheus-operator/cmd/@v directory does not exists
resolveInGoModCache: Found /Users/doolivei/go/pkg/mod/cache/download/github.com/prometheus-operator/prometheus-operator/@v directory
exec 'go env GOPATH'
exec 'go mod init -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint.tmp.mod _'
exec 'go list -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint.tmp.mod -mod=mod -f={{.Name}} github.com/prometheus-operator/prometheus-operator/cmd/po-lint'
Error: get: po-lint.mod: getting github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest: install: : go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1alpha1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1beta1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/operator imports
	github.com/prometheus-operator/prometheus-operator/pkg/informers imports
	github.com/prometheus-operator/prometheus-operator/pkg/client/informers/externalversions: github.com/prometheus-operator/prometheus-operator/pkg/client@v0.70.0: replacement directory ./pkg/client does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/operator imports
	github.com/prometheus-operator/prometheus-operator/pkg/informers imports
	github.com/prometheus-operator/prometheus-operator/pkg/client/versioned: github.com/prometheus-operator/prometheus-operator/pkg/client@v0.70.0: replacement directory ./pkg/client does not exist
: error while running command 'go get -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint.tmp.mod -d github.com/prometheus-operator/prometheus-operator/cmd/po-lint@v0.70.0'; err: exit status 1
Usage:
  bingo get [flags] [<package or binary>[@version1 or none,version2,version3...]]

Examples:
bingo get github.com/fatih/faillint
bingo get github.com/fatih/faillint@latest
bingo get github.com/fatih/faillint@v1.5.0
bingo get github.com/fatih/faillint@v1.1.0,v1.5.0
bingo get github.com/fatih/faillint@none // this will be deleted

Options:
      --go string       Path to the go command. (default "go")
  -h, --help            help for get
      --insecure        Use -insecure flag when using 'go get'
  -l, --link            If enabled, bingo will also create soft link called <tool> that links to the current <tool>-<version> binary.
                        Use Variables.mk and variables.env if you want to be sure that what you are invoking is what is pinned.
  -n, --name string     The -n flag instructs to get binary and name it with given name instead of default,
                        so the last element of package directory. Allowed characters [A-z0-9._-]. If -n is used and no package/binary is specified,
                        bingo get will return error. If -n is used with existing binary name, copy of this binary will be done. Cannot be used with -r
  -r, --rename string   The -r flag instructs to get existing binary and rename it with given name. Allowed characters [A-z0-9._-].
                        If -r is used and no package/binary is specified or non existing binary name is used, bingo will return error. Cannot be used with -n.
  -t, --timeout uint    The maximum time (in minutes) to wait for each go command before killing it.
                        Set this flag to 0 to indefinitely wait on them. (default 5)

Global Flags:
  -m, --moddir string   Directory where separate modules for each binary will be maintained.
                        Feel free to commit this directory to your VCS to bond binary versions to your project code.
                        If the directory does not exist bingo logs and assumes a fresh project. (default ".bingo")
  -v, --verbose         Print more

get: po-lint.mod: getting github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest: install: : go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1alpha1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1beta1: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring@v0.70.0: replacement directory ./pkg/apis/monitoring does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/operator imports
	github.com/prometheus-operator/prometheus-operator/pkg/informers imports
	github.com/prometheus-operator/prometheus-operator/pkg/client/informers/externalversions: github.com/prometheus-operator/prometheus-operator/pkg/client@v0.70.0: replacement directory ./pkg/client does not exist
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint imports
	github.com/prometheus-operator/prometheus-operator/pkg/admission imports
	github.com/prometheus-operator/prometheus-operator/pkg/operator imports
	github.com/prometheus-operator/prometheus-operator/pkg/informers imports
	github.com/prometheus-operator/prometheus-operator/pkg/client/versioned: github.com/prometheus-operator/prometheus-operator/pkg/client@v0.70.0: replacement directory ./pkg/client does not exist
: error while running command 'go get -modfile=/Users/doolivei/code/obsctl-reloader-rules-checker/.bingo/po-lint.tmp.mod -d github.com/prometheus-operator/prometheus-operator/cmd/po-lint@v0.70.0'; err: exit status 1

Anything else we need to know:
The replace clauses in po-lint are replacing external packages with ones that are local to the po-lint repo. These packages are within other Go modules that live in the same repo (github.com/prometheus-operator/prometheus-operator/pkg/client and github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring).

Hmm, I think go install also fails if the module being installed has replace/exclude directives,
$ go install github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest
go: downloading github.com/prometheus-operator/prometheus-operator v0.70.0
go: github.com/prometheus-operator/prometheus-operator/cmd/po-lint@latest (in github.com/prometheus-operator/prometheus-operator@v0.70.0):
	The go.mod file for the module providing named packages contains one or
	more replace directives. It must not contain directives that would cause
	it to be interpreted differently than if it were the main module.

So then isn't it expected that bingo would also not be able to install it either? Or am I missing something? 🤔

@saswatamcode Bingo's README says it doesn't care about these directives:

Works with all buildable Go projects, including pre Go modules and complex projects with complex directives like replace, retract or exclude statements. (e.g Prometheus)

Ack, you're right!

Can you add those replace directives in po-lint.mod after failed bingo get? I think they should be done automatically, but that might have failed for some reason?

authors: bwplotka douglascamata saswatamcode

repo: bwplotka/bingo


text:
upgrading to 5.0.0 all Script/Program Devices now Fail

As above, when running with the 5.0.0 Jar all my devices which are using Script blocks to (mostly) execute Python scripts.
everything was fine on the last version.
I can see this in the logs which looks suspect:

WARN
Error reading the file: data\group.db - Does not exist or is not readable. continuing...
com.bwssystems.HABridge.dao.GroupRepository

That is just a warning telling you there is no group file as you haven't set them up.
As far as the script issues, I assume you are using the exec function to call a local script. Turn on debug for com.bwssystems.HABRidge.plugins.exec and post your log.

Any update?

Check your antivirus. You may need to add an exclusion for the Ha-bridge folder

Sorry, been on vacation.
I did not change any anti virus settings, however after putting 5.1.0 on, everything is working again.
Not sure what it was in 5.0.0 that broke it.

authors: bwssytems merlin051 tuicemen

repo: bwssytems/ha-bridge


text:
code: -18, message: "No wallet is loaded"

Hi there, I have Bitcoin core v.0.21 already synced and tried to watch some address with --address or xpub with --xpub but in any case I got:
Error: JSON-RPC error: RPC error response: RpcError { code: -18, message: "No wallet is loaded. Load a wallet using loadwallet or create a new one with createwallet. (Note: A default wallet is no longer automatically created)", data: None }
Every configuration is default, am I doing something wrong?

Closing for now, please report back if you're still having issues.

error code: -4
error message:
Wallet file verification failed. SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another instance of Bitcoin Core?
I tried to loadwallet, but it reports the above issue. | I use pruned node.

authors: maxidev shesek sohrubh

repo: bwt-dev/bwt


text:
Please update lodash to 4.x

Lodash 4.x support IE9+ as well.

@hh9527 thanks for the suggestion! upgrading to lodash 4.x isn't a priority for me but if you'd like to submit a PR, I'd happily accept it.

repo: byronmwong/react-flexbox-layout


text:
Don't re-capture backtraces when propagating traps through host frames

This fixes some accidentally quadratic code where we would re-capture a Wasm
stack trace (takes O(n) time) every time we propagated a trap through a host
frame back to Wasm (can happen O(n) times). And O(n) * O(n) = O(n^2), of
course. Whoops. After this commit, it trapping with a call stack that is n
frames deep of Wasm-to-host-to-Wasm calls just captures a single backtrace and
is therefore just a proper O(n) time operation, as it is intended to be.
Now we explicitly track whether we need to capture a Wasm backtrace or not when
raising a trap. This unfortunately isn't as straightforward as one might hope,
however, because of the split between wasmtime::Trap and
wasmtime_runtime::Trap. We need to decide whether or not to capture a Wasm
backtrace inside wasmtime_runtime but in order to determine whether to do that
or not we need to reflect on the anyhow::Error and see if it is a
wasmtime::Trap that already has a backtrace or not. This can't be done the
straightforward way because it would introduce a cyclic dependency between the
wasmtime and wasmtime-runtime crates. We can't merge those two Trap
types-- at least not without effectively merging the whole wasmtime and
wasmtime-runtime crates together, which would be a good idea in a perfect
world but would be a ton of ocean boiling from where we currently are --
because wasmtime::Trap does symbolication of stack traces which relies on
module registration information data that resides inside the wasmtime crate
and therefore can't be moved into wasmtime-runtime. We resolve this problem by
adding a boolean to wasmtime_runtime::raise_user_trap that controls whether we
should capture a Wasm backtrace or not, and then determine whether we need a
backtrace or not at each of that function's call sites, which are in wasmtime
and therefore can do the reflection to determine whether the user trap already
has a backtrace or not. Phew!
Fixes #5037

Difference in benchmark results after the third commit:

host-wasm-frames-traps/20
                        time:   [9.1573 µs 9.2173 µs 9.2943 µs]
                        thrpt:  [2.1519 Melem/s 2.1698 Melem/s 2.1840 Melem/s]
                 change:
                        time:   [-71.950% -71.263% -70.647%] (p = 0.00 < 0.05)
                        thrpt:  [+240.68% +247.98% +256.50%]
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) high mild
  6 (6.00%) high severe
host-wasm-frames-traps/40
                        time:   [17.594 µs 17.679 µs 17.777 µs]
                        thrpt:  [2.2500 Melem/s 2.2626 Melem/s 2.2735 Melem/s]
                 change:
                        time:   [-82.311% -82.060% -81.828%] (p = 0.00 < 0.05)
                        thrpt:  [+450.31% +457.42% +465.32%]
                        Performance has improved.
Found 21 outliers among 100 measurements (21.00%)
  12 (12.00%) low severe
  2 (2.00%) low mild
  3 (3.00%) high mild
  4 (4.00%) high severe
host-wasm-frames-traps/60
                        time:   [24.421 µs 24.825 µs 25.198 µs]
                        thrpt:  [2.3812 Melem/s 2.4169 Melem/s 2.4569 Melem/s]
                 change:
                        time:   [-87.209% -86.980% -86.694%] (p = 0.00 < 0.05)
                        thrpt:  [+651.54% +668.05% +681.82%]
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  2 (2.00%) high mild
  1 (1.00%) high severe
host-wasm-frames-traps/80
                        time:   [30.406 µs 30.660 µs 31.073 µs]
                        thrpt:  [2.5746 Melem/s 2.6092 Melem/s 2.6311 Melem/s]
                 change:
                        time:   [-90.168% -90.023% -89.849%] (p = 0.00 < 0.05)
                        thrpt:  [+885.12% +902.27% +917.09%]
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
host-wasm-frames-traps/100
                        time:   [41.574 µs 41.822 µs 42.132 µs]
                        thrpt:  [2.3735 Melem/s 2.3911 Melem/s 2.4053 Melem/s]
                 change:
                        time:   [-91.218% -91.097% -90.974%] (p = 0.00 < 0.05)
                        thrpt:  [+1007.9% +1023.2% +1038.7%]
                        Performance has improved.
Found 18 outliers among 100 measurements (18.00%)
  7 (7.00%) high mild
  11 (11.00%) high severe
host-wasm-frames-traps/120
                        time:   [50.096 µs 50.518 µs 51.109 µs]
                        thrpt:  [2.3479 Melem/s 2.3754 Melem/s 2.3954 Melem/s]
                 change:
                        time:   [-92.489% -92.372% -92.261%] (p = 0.00 < 0.05)
                        thrpt:  [+1192.2% +1211.0% +1231.3%]
                        Performance has improved.
Found 15 outliers among 100 measurements (15.00%)
  9 (9.00%) high mild
  6 (6.00%) high severe
host-wasm-frames-traps/140
                        time:   [57.252 µs 57.426 µs 57.624 µs]
                        thrpt:  [2.4295 Melem/s 2.4379 Melem/s 2.4453 Melem/s]
                 change:
                        time:   [-93.581% -93.502% -93.423%] (p = 0.00 < 0.05)
                        thrpt:  [+1420.4% +1438.8% +1457.9%]
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  6 (6.00%) high mild
  7 (7.00%) high severe
host-wasm-frames-traps/160
                        time:   [68.391 µs 70.340 µs 72.333 µs]
                        thrpt:  [2.2120 Melem/s 2.2747 Melem/s 2.3395 Melem/s]
                 change:
                        time:   [-94.214% -94.064% -93.903%] (p = 0.00 < 0.05)
                        thrpt:  [+1540.2% +1584.6% +1628.4%]
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  6 (6.00%) high mild
  8 (8.00%) high severe
host-wasm-frames-traps/180
                        time:   [76.005 µs 77.580 µs 79.369 µs]
                        thrpt:  [2.2679 Melem/s 2.3202 Melem/s 2.3683 Melem/s]
                 change:
                        time:   [-95.074% -94.871% -94.668%] (p = 0.00 < 0.05)
                        thrpt:  [+1775.4% +1849.9% +1930.2%]
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  6 (6.00%) high mild
  5 (5.00%) high severe
host-wasm-frames-traps/200
                        time:   [90.825 µs 94.718 µs 98.745 µs]
                        thrpt:  [2.0254 Melem/s 2.1115 Melem/s 2.2020 Melem/s]
                 change:
                        time:   [-95.291% -95.072% -94.844%] (p = 0.00 < 0.05)
                        thrpt:  [+1839.6% +1929.0% +2023.4%]
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  6 (6.00%) high mild
  7 (7.00%) high severe

Thanks for looking into this! Unfortunately, no difference. I tested it here: https://github.com/filecoin-project/ref-fvm/commit/4242e722dfc99e3b5153080be96d2c21f3413dbb (looks like I got the patches correct).
I'll put a reproducer together by next week (have a few deadlines this week).

@Stebalien to be clear, enabling backtraces will always have some overhead that is proportional to how many frames are on the stack (capturing the stack is O(frames)) so we shouldn't expect that performance is identical when backtraces are enabled and when they disabled. But comparing performance with this PR vs without this PR should ideally show a marked improvement in performance.
Are you seeing identical performance with this patch applied vs without?
If so, how is the trap being triggered? Is it an unreachable in Wasm, an out-of-bounds memory operation, a host function returning Err(wasmtime::Trap::new(...)), or something else?
(Reproducer would still be appreciated, once you have the cycles.)

Are you seeing identical performance with this patch applied vs without?

Within the margin of error, yes. Basically, this test is 300-400x slower with backtraces enabled.

Is it an unreachable in Wasm, an out-of-bounds memory operation, a host function returning Err(wasmtime::Trap::new(...)), or something else?

The host is returning a Trap from a syscall. Specifically:

Host returns a Trap.
Host handles the Trap on the other side of the func.call.
Host returns to the next wasm instance up the stack.
The next wasm instance calls back into the host (asking the host to "abort").
The host returns another trap, go back to step 2.

In other words:

Host -> Wasm -> Host -> Wasm ... (1000x) ... -> Host (traps) [Z]
Wasm [W] <- Host [X] <- (Wasm [Y] skipped) <- Host (traps) [Z].
Wasm [W] -> Host (traps) [X].
Wasm [U] <- Host [V] <- (Wasm [W] skipped) <- Host (traps) [X].

And so on... Two steps backwards, one step forward, two steps backward, all the way to the top.

(Reproducer would still be appreciated, once you have the cycles.)

I'll also do a bit of profiling myself as well.

The host is returning a Trap from a syscall. Specifically:

Host returns a Trap.
Host handles the Trap on the other side of the func.call.
Host returns to the next wasm instance up the stack.
The next wasm instance calls back into the host (asking the host to "abort").
The host returns another trap, go back to step 2.

To clarify, does this mean that for a stack of depth N, there are N traps?
The "quadratic slowdown with backtraces" behavior is completely expected then, from first principles, I think: you're taking N traps, and they have cost 1, 2, 3, ... N frames/levels deep. I don't think there's anything we could do to make this not be quadratic, short of some sort of magical lazily-expanding constant-time stack capture (which we can't do because we don't keep the stack around after the trap fires).

There's one trap at each level. If these stack traces cover the entire rust stack, not just the wasm module handling the trap, that would make sense.
In that case, would the wasmtime team consider keeping the ability to disable backtraces?

I think it would make sense to add an optional max number of frames captured in a backtrace, which can be set to zero to completely disable backtraces. Then we can limit the cost of a backtrace from O(frames) to some user-chosen acceptable constant overhead.
Going to go ahead and merge this PR and file a new issue for that config option. I'll cc you on it, @Stebalien.

I think it would make sense to add an optional max number of frames captured in a backtrace, which can be set to zero to completely disable backtraces. Then we can limit the cost of a backtrace from O(frames) to some user-chosen acceptable constant overhead.

#5052

authors: Stebalien cfallin fitzgen

repo: bytecodealliance/wasmtime


text:
Core dumped without AVX2 instructiom (VM instance)

Yes, I know that sonic-cpp relies on the AVX2 instruction, for most VM instance, especially the cloud VMs, there's no AVX2 supported yet. But why the simdjson works normally? Can you fall back to sse/sse2 if no AVX2?
❯ ./build/benchmark/bench
[1]    2624172 illegal hardware instruction (core dumped)  ./build/benchmark/bench

CPU flags
❯ cat  /proc/cpuinfo | grep flags | uniq

flags		: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm pti

You can compile your program using any architecture， but it will coredump when platform doesn't support such architecture。
SSE/NEON will be supported in future.

Fixed it. sonic-cpp has supported only sse. https://github.com/bytedance/sonic-cpp/pull/56

repo: bytedance/sonic-cpp


text:
🛑 Wodemo的一楼 is down

In 8cf8c5f, Wodemo的一楼 (https://bywhite.wodemo.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wodemo的一楼 is back up in 5438082.


text:
🛑 Wodemo的一楼 is down

In 5002de1, Wodemo的一楼 (https://bywhite.wodemo.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wodemo的一楼 is back up in 1cb4c01.


text:
Enhance default-message-card.tmpl to prevent json parse errors

Log errors from json.Compact call for usability

This change is able to handle newline, single quote etc in the received payload. Example:
      "status": "firing",
      "labels": {
        "account_id": "xxx",
        "alertname": "EndpointDown",
        "environment": "dev",
        "instance": "xxxx",
        "job": "blackbox_URL_Monitor",
        "pod": "xxx",
        "region": "us-west-2",
        "severity": "Low"
      },
      "annotations": {
        "description": "'Endpoint \t \n **'ADDDDDD'** xxxxxx",
        "summary": "Endpoint xxxxx"
      },
      "startsAt": "2019-12-03T15:13:20.729714813Z",
      "endsAt": "0001-01-01T00:00:00Z",
      "generatorURL": "xxxxxxxxx"
  }

@AnandDevan thank you for this PR, fiiinally I was able to go through it. Looks good, just one small comment.

authors: AnandDevan Knappek

repo: bzon/prometheus-msteams


text:
syscall.SYS_IOCTL is not portable

syscall.SYS_IOCTL is not available on some platforms (like Solaris).  Use unix.IoctlGetWinsize instead.

Bump?

Sorry for late reply. LGTM! Thank you for your contribution.

authors: andy-js c-bata

repo: c-bata/go-prompt


text:
Daylight Savings Time Bug

Got an argument error :erlang.send_after error in execution_broadcaster.ex during daylight savings time.  Seems like the time -576462949368 is very far off during DST.
I'm on v 2.2.3.
22:59:00.055 [error] GenServer XXX.Scheduler.ExecutorSupervisor terminating
** (ArgumentError) argument error
    :erlang.send_after(-576462949368, #PID<0.1335.0>, :execute, [abs: true])
    (quantum) lib/quantum/execution_broadcaster.ex:189: Quantum.ExecutionBroadcaster.reset_timer/1
    (quantum) lib/quantum/execution_broadcaster.ex:87: Quantum.ExecutionBroadcaster.handle_info/2
    (gen_stage) lib/gen_stage.ex:2170: GenStage.noreply_callback/3
    (stdlib) gen_server.erl:616: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:686: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Last message: {:DOWN, #Reference<0.508715723.3840147458.49069>, :process, #PID<0.1335.0>, {:badarg, [{:erlang, :send_after, [-576462949368, #PID<0.1335.0>, :execute, [abs: true]], []}, {Quantum.ExecutionBroadcaster, :reset_timer, 1, [file: 'lib/quantum/execution_broadcaster.ex', line: 189]}, {Quantum.ExecutionBroadcaster, :handle_info, 2, [file: 'lib/quantum/execution_broadcaster.ex', line: 87]}, {GenStage, :noreply_callback, 3, [file: 'lib/gen_stage.ex', line: 2170]}, {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 616]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 686]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 247]}]}}
State: %ConsumerSupervisor{args: {XXX.Scheduler.ExecutionBroadcaster, XXX.Scheduler.Task.Supervisor, XXX.Scheduler.TaskRegistry}, children: %{}, max_restarts: 3, max_seconds: 5, mod: Quantum.ExecutorSupervisor, name: XXX.Scheduler.ExecutorSupervisor, producers: %{}, restarting: 0, restarts: [], strategy: :one_for_one, template: {Quantum.Executor, {Quantum.Executor, :start_link, [{XXX.Scheduler.Task.Supervisor, XXX.Scheduler.TaskRegistry}]}, :temporary, 5000, :worker, []}}

@weixiyen Thanks for reporting. Which timezone have you configured?

I think that the problem is caused by the line https://github.com/c-rack/quantum-elixir/blob/51f30540a491c8fcdcb221c8d75540894ff6e6cc/lib/quantum/execution_broadcaster.ex#L197
I‘ll work on a fix for the problem tomorrow.

👍

I could not yet reproduce the problem. I'll keep you posted.

Just to follow up on the timezone question it was "America/New_York"

I'm able to reproduce the issue now. I need to find the exact cause to find the issue.
If a job in a local timezone jumps over an hour the issue will occur.
The only fix right now is to use UTC in the jobs. I'm going to fix the issue before the DST ends in Europe (on Sunday).
If you have jobs that are running in a TZ in Europe, please follow this issue and update as soon as the fix is out.

The problem seems to be created in the function ExecutionBroadcaster.add_job_to_state.
Given a job in the timezone Europe/Zurich:

Executor (UTC) Time is 2018-03-25 00:59:01
Local Time in Europe/Zurich is 2018-03-25 01:59:01
crontab calculates the next execution date to be 2018-03-25 02:00:00

This time does not exist. It should be 2018-03-25 03:00:00

UTC Execution Time of that job is 2018-03-25 00:00:00

This date is in the past
Quantum enters Infinite Loop

A solution needs to consist of two parts:

If ExecutionBroadcaster.add_to_state is given a schedule date in the past, an error should be raised. (To prevent Infinite Loops)
Fix dates given by crontab (Crontab only operates with NaiveDateTime)

Does someone have an idea how to solve 2? (Mabye @lau)
This is the function that needs to be patched for 2:
defp add_job_to_state(
       %Job{schedule: schedule, timezone: timezone, name: name} = job,
       %{time: time} = state
     ) do

  case Scheduler.get_next_run_date(schedule, DateLibrary.to_tz!(time, timezone)) do
    {:ok, date} ->
      add_to_state(state, DateLibrary.to_utc!(date, timezone), job)

    _ ->
      Logger.warn("""
      Invalid Schedule #{inspect(schedule)} provided for job #{inspect(name)}.
      No matching dates found. The job was removed.
      """)

      state
  end
rescue
  e in JobInPastError ->
    stacktrace = System.stacktrace
    reraise(e, stacktrace)
  error ->
    Logger.error(
      "Invalid Timezone #{inspect(timezone)} provided for job #{inspect(name)}.",
      job: job,
      error: error
    )

    state
end

@weixiyen Would you be willing to try to reproduce the error with the PR #323 ?

Will be released with #324

authors: c-rack maennchen weixiyen

repo: c-rack/quantum-elixir


text:
Force-fetch magnet url feature added

This param brings the ability to force fetch all the magnet urls which are not available for some item by default.

@c0dysharma Please give an NPM package release as well. Thanks


text:
🛑 www.zisk.eu is down

In af4dba1, www.zisk.eu (https://www.zisk.eu/sk/Home.alej) was down:

HTTP code: 403
Response time: 978 ms

Resolved: www.zisk.eu is back up in c043c1b.


text:
🛑 www.tinytoe.sk is down

In bdc2323, www.tinytoe.sk (https://www.tinytoe.sk/) was down:

HTTP code: 403
Response time: 514 ms

Resolved: www.tinytoe.sk is back up in 28f10e9.


text:
Can not upload single files to scan

Scan8 currently only allows for the upload of folders, and not single files. When attempting to upload a single file.

Hey @Madushan98 ,i would like to work on this issue!


text:
FEATURE: LOGO FOR THE WEBSITE

A logo on the left top of a website is a must for any website nowadays.
So I can create a logo and add it to the top left of all the pages of the website.
kindlly assign me this issue under hacktoberfest and I can make various logo designs using canva and after the approval I can add it in the website on all pages.

Hey @Rishav9911  This time we have decided to go without a logo on Navbar !! but if you have a better design !! Please work and share the ss at the time of creating PR

Hey there @c4coderandcreator , I created some basic logos according to the styling for the website. Does any of it look acceptable or you could tell me some basic idea of how you would like the logo to be so I could modify it and implement the changes.

last and 2nd last looks good !! just try playing with colors so that it matches with the website !! keep these logo in a folder while pushing the file

I appreciate your effort @Rishav9911

I am really gald to contribute @c4coderandcreator . I tried some designs , does any of it looks acceptable or do i try some different logos or colour combinations ? kindly review.

2nd last is good try changing that image from square to circle shape !! you can do it via code or you can edit the original image !!

I have tried to implement the suggested changes. kindly review it @c4coderandcreator . If you are satisfied kindly allow me to open the PR.

match the Flavour Fusion text below the logo with font family we have used on website !!

I have submitted the PR as per suggestions kindly review it @c4coderandcreator


text:
enable_hid.service failed

Service failed with this errors after reboot:
raspberrypi systemd[1]: Started Enable HID.
raspberrypi enable_hid.sh[422]: /usr/bin/enable_hid.sh: line 20: configs/c.1/MaxPower: No such file or directory
raspberrypi enable_hid.sh[422]: ln: target 'configs/c.1/' is not a directory: No such file or directory
raspberrypi enable_hid.sh[422]: ls: write error: Device or resource busyt
Then i tried:
systemctl restart enable_hid.service
After this command, again failure with this error:
raspberrypi enable_hid.sh[520]: ls: write error: Device or resource busy

Hi,
Thanks for the report, i have made some cleanup recently… and i have made a mistake.
Should be fixed in the latest commit.


text:
Fix Pre-Prediction

PrePrediction was broken since the introduction of send-side entity mapping.
That's because:
client spawns predicted E1 and replicates it to server.
server spawns E2 and maintains mapping E2<>E1 and replicates it to client
client spawns confirmed E3 and maintains mapping E2<>E3.

With sender-side mapping, updates related to E2 would be mapped to E1 before being sent.
This PR fixes this problem, and it also works in host-server mode and with hierarchy.
Also fixes:

the replication_groups example was failing because of a erroneous check in the protocol
the connect/disconnect systems were running twice (both the normal and the host-server versions were running)
the server doesn't replicate Spawns to the entity that first spawned an entity.

My solution was to do:

spawn E1-predicted on client with PrePredicted
on client, an observer detects the addition of PrePredicted and spawns Confirmed E2
on server, as soon as the PrePredicted entity is received (into a server entity E3), we transfer authority back to server, and we update the mapping so that the server has E3<>E2 mapping.

The issue is that the client.ReplicationReceiver.local_entities is not updated correctly since the server doesn't spawn E2 normally...
Maybe a solution would be to keep what was done before with a slight adjustement:

client spawns E1 with PrePredicted and replicates to server. As soon as the message is sent, PrePredicted is removed.
server spawns E2 and has a mapping from E2<>E1.

NEW: we manually remove the E2<>E1 mapping so that server messages about E2 aren't converted to E1

server replicates E2 to client. Client creates E3 with PrePredicted (and maintains E3<>E2 mapping). Using PrePredicted, client does the prediction mapping between E3 and E1

repo: cBournhonesque/lightyear


text:
Print the current version

Maybe, something like:
antibody --version

what do you think?

Hi @oieduardorabelo ,
this is done already, try antibody version.
$ antibody version
v0.1.0


text:
Feature Request: Add a Windows install option

TLDR
Include a windows OS section in the list of installs
Overview
I think having this utility available on windows would be great for a lot of devs. myself included, I think a lot of devs out there do the meat of their dev work on a linux box, but the home OS on their local machine is windows (whether company mandated or some other reason).
Potential Solutions

Include this executable in varyious package managers (winget, chocolatey, scoop)
script out installing the executable and adding it to either a user's PATH or as an alias in their Powershell profile.

I'd love to contribute to this project by resolving this request.

I should probably set that up at some point, yes

I've installed it on my windows box, would you accept a pull request if I added powershell script in markdown format to add to the readme? I'm happy to add any tests you'd request (ie powershell pester test) to validate install is done properly

next release will be on winget


text:
Spell Addition Through Party Editor Is Bugged

Using the spell editor in Party Editor, you can only make the level 9 spells of a character's spellbook At Will abilities, you can't add them to the spellbook normally.

In addition, not sure if this is related or not, but after adding spells to a character through the Party Editor, my character now has only three level 8 spells occupying every level slot (she's a spontaneous caster).

Fixed various issues with spell editing in 1.1.13.  Please file a new bug for new issues found.

repo: cabarius/ToyBox


text:
ops should install needed modules when picked from opselect (and are also core-ops)

current Ops.Standalone.Osc ops do not load npms, when simply picket from opselect, currently needs patch reload

do not error, show button to reload patch if node_modules missing


text:
🛑 CBTB Coffee House Shop is down

In a6b825c, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1052 ms

Resolved: CBTB Coffee House Shop is back up in 0362125.

repo: cachetech/service-status


text:
🛑 CBTB Coffee House Shop is down

In e020715, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1075 ms

Resolved: CBTB Coffee House Shop is back up in eb364c3.


text:
🛑 CBTB Coffee House Shop is down

In 61dc19c, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1110 ms

Resolved: CBTB Coffee House Shop is back up in ffa762a after 12 minutes.


text:
dividerPainter doesn't grow when touched when Axis.horizontal

When using a dividerPainter with Axis.vertical, touching the divider causes the divider to 'grow' to the highlightedSize - this is correct behaviour.
When doing the same with Axis.horizontal, the divider doesn't grow until it is dragged.

Hi @4bSolutionsLLP!
Sorry for the delay. :disappointed:
I was unable to reproduce the issue using DividerPainters.grooved1 or DividerPainters.grooved2
Could you add some sample code?

Hi Carlos - this is the code @4bSolutionsLLP is referring to...
We have a page with 2 MultiSplitViewThemes - 1 for portrait, 1 for landscape as follows:
  Widget _portraitSplitLayout(BuildContext context) {
    // set up multi split view
    MultiSplitViewController _multiSplitViewControllerPortrait =
        MultiSplitViewController(
      areas: [
        Area(
            weight: global
                .mvMultiSplitSavedWeightPortrait, // default size for top area
            minimalWeight: 0.25 // minimum 25% size for top area
            ),
        Area(
          minimalWeight: 0.25, // minimum 25% size for bottom area
        ),
      ],
    );

    MultiSplitView _multiSplitViewPortrait = MultiSplitView(
      axis: Axis.vertical,
      children: [
        _scrollingCardView(),
        _map(),
      ],
      controller: _multiSplitViewControllerPortrait,
      onWeightChange: () {
        global.mvMultiSplitSavedWeightPortrait =
            _multiSplitViewControllerPortrait.areas[0].weight;
      },
    );

    MultiSplitViewTheme _multiSplitViewThemePortrait = MultiSplitViewTheme(
      child: _multiSplitViewPortrait,
      data: MultiSplitViewThemeData(
        dividerThickness: 25,
        dividerPainter: DividerPainters.grooved1(
          color: Colors.grey[500],
          highlightedColor: Colors.grey[500],
          size: 30,
          highlightedSize: 90,
          thickness: 5,
        ),
      ),
    );

    return Expanded(
      // portrait layout
      child: Column(
        children: [
          Expanded(
            child: _multiSplitViewThemePortrait,
          ),
        ],
      ),
    );
  }

...and...
  Widget _landscapeSplitLayout(BuildContext context) {
    // set up multi split view
    MultiSplitViewController _multiSplitViewControllerLandscape =
        MultiSplitViewController(
      areas: [
        Area(
          weight: global
              .mvMultiSplitSavedWeightLandscape, // default size for top area
          minimalWeight: 0.25, // minimum 25% size for left area
        ),
        Area(
          minimalWeight: 0.25, // minimum 25% size for right area
        ),
      ],
    );

    MultiSplitView _multiSplitViewLandscape = MultiSplitView(
      axis: Axis.horizontal,
      children: [
        _scrollingCardView(),
        _map(),
      ],
      controller: _multiSplitViewControllerLandscape,
      onWeightChange: () {
        global.mvMultiSplitSavedWeightLandscape =
            _multiSplitViewControllerLandscape.areas[0].weight;
      },
    );

    MultiSplitViewTheme _multiSplitViewThemeLandscape = MultiSplitViewTheme(
      child: _multiSplitViewLandscape,
      data: MultiSplitViewThemeData(
        dividerThickness: 25,
        dividerPainter: DividerPainters.grooved1(
          color: Colors.grey[500],
          highlightedColor: Colors.grey[500],
          size: 30,
          highlightedSize: 90,
          thickness: 5,
        ),
      ),
    );

    return Expanded(
      // portrait layout
      child: Column(
        children: [
          Expanded(
            child: _multiSplitViewThemeLandscape,
          ),
        ],
      ),
    );
  }

Then the page build() method has an element:
MediaQuery.of(context).orientation == Orientation.portrait
                    ? _portraitSplitLayout(context)
                    : _landscapeSplitLayout(context),

So when the device is portrait, _multiSplitViewPortrait is used (Axis.vertical), and in landscape, _multiSplitViewLandscape is used (Axis.horizontal).  If you then long press the splitController without dragging, the controller grows in portait (Axis.vertical) from 30 to 90, but doesn't grow in landscape (Axis.horizontal) until you start to drag.

Hi @summitcomputing !
I removed non-existing methods to have this example testable and compilable, ok?
I keep my packages focused on Desktops and I hadn't noticed this behavior. I tested it on my cell phone and as expected, it was even worse. The animation did not start on either one. :smile:
It was expected because I used only the onEnter and onExit events internally. I'll think about how it will be for mobile. I don't know if longPress will work because it can take a long time.
import 'package:flutter/material.dart';
import 'package:multi_split_view/multi_split_view.dart';

void main() => runApp(MultiSplitViewExampleApp());

class MultiSplitViewExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Example(),
    );
  }
}

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  double mvMultiSplitSavedWeightPortrait = .3;
  double mvMultiSplitSavedWeightLandscape = .3;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: MediaQuery.of(context).orientation == Orientation.portrait
            ? _portraitSplitLayout(context)
            : _landscapeSplitLayout(context));
  }

  Widget _portraitSplitLayout(BuildContext context) {
    // set up multi split view
    MultiSplitViewController _multiSplitViewControllerPortrait =
        MultiSplitViewController(
      areas: [
        Area(
            weight: mvMultiSplitSavedWeightPortrait,
            // default size for top area
            minimalWeight: 0.25 // minimum 25% size for top area
            ),
        Area(
          minimalWeight: 0.25, // minimum 25% size for bottom area
        ),
      ],
    );

    MultiSplitView _multiSplitViewPortrait = MultiSplitView(
      axis: Axis.vertical,
      children: [
        _scrollingCardView(),
        _map(),
      ],
      controller: _multiSplitViewControllerPortrait,
      onWeightChange: () {
        mvMultiSplitSavedWeightPortrait =
            _multiSplitViewControllerPortrait.areas[0].weight!;
      },
    );

    MultiSplitViewTheme _multiSplitViewThemePortrait = MultiSplitViewTheme(
      child: _multiSplitViewPortrait,
      data: MultiSplitViewThemeData(
        dividerThickness: 25,
        dividerPainter: DividerPainters.grooved1(
          color: Colors.grey[500]!,
          highlightedColor: Colors.grey[500],
          size: 30,
          highlightedSize: 90,
          thickness: 5,
        ),
      ),
    );

    return _multiSplitViewThemePortrait;
  }

  Widget _landscapeSplitLayout(BuildContext context) {
    // set up multi split view
    MultiSplitViewController _multiSplitViewControllerLandscape =
        MultiSplitViewController(
      areas: [
        Area(
          weight: mvMultiSplitSavedWeightLandscape, // default size for top area
          minimalWeight: 0.25, // minimum 25% size for left area
        ),
        Area(
          minimalWeight: 0.25, // minimum 25% size for right area
        ),
      ],
    );

    MultiSplitView _multiSplitViewLandscape = MultiSplitView(
      axis: Axis.horizontal,
      children: [
        _scrollingCardView(),
        _map(),
      ],
      controller: _multiSplitViewControllerLandscape,
      onWeightChange: () {
        mvMultiSplitSavedWeightLandscape =
            _multiSplitViewControllerLandscape.areas[0].weight!;
      },
    );

    MultiSplitViewTheme _multiSplitViewThemeLandscape = MultiSplitViewTheme(
      child: _multiSplitViewLandscape,
      data: MultiSplitViewThemeData(
        dividerThickness: 25,
        dividerPainter: DividerPainters.grooved1(
          color: Colors.grey[500]!,
          highlightedColor: Colors.grey[500],
          size: 30,
          highlightedSize: 90,
          thickness: 5,
        ),
      ),
    );

    return _multiSplitViewThemeLandscape;
  }

  Widget _scrollingCardView() {
    return Container(
        child: Center(child: Text('scrollingCardView')), color: Colors.blue);
  }

  Widget _map() {
    return Container(child: Center(child: Text('map')), color: Colors.yellow);
  }
}

Thanks for testing, and glad you could reproduce the behaviour. It definitely only seems to affect the landscape (Axis.horizontal) behaviour here, but if you can fix it for your scenario, it should work here too.

I believe that version 2.3.0 will solve your problem. If you need anything, let me know.

Hi, We have updated to v2.3.0 and whilst it now understands a long-press in portrait and landscape, it actually breaks things. The issue is that when you long-press, the line indicator correctly increases in size to show that we are in "drag mode", however, after about a second of pressing, the indicator returns to normal size and ceases to be draggable,
Thanks
Ian
On 09/02/2023 23:06:28, Carlos Eduardo Leite de Andrade @.> wrote:
I believe that version 2.3.0 will solve your problem. If you need anything, let me know.
—
Reply to this email directly, view it on GitHub [https://github.com/caduandrade/multi_split_view/issues/38#issuecomment-1424956683], or unsubscribe [https://github.com/notifications/unsubscribe-auth/AQDXTEV3HVEN7QBKAK457KDWWVZ7HANCNFSM6AAAAAATQURYWQ].
You are receiving this because you were mentioned.Message ID: @.>

Hi @4bSolutionsLLP!
It shouldn't be happening. In the end, I didn't use longPress. I used the following events that theoretically would be the most correct to not have this problem reported by you:

onVerticalDragDown
onVerticalDragStart
onVerticalDragUpdate
onVerticalDragEnd
onVerticalDragCancel
onHorizontalDragDown
onHorizontalDragStart
onHorizontalDragUpdate
onHorizontalDragEnd
onHorizontalDragCancel

dragDown is the equivalent of "press" but without the timeout. Interrupting the press without moving will trigger dragCancel.
I tested it on 2 different Androids. Unfortunately, I only have these two phones.
I used Flutter 3.7.1 and 3.7.3.
Could you test using the code I posted above? It's complete. Just copy, place, and run.
Are you using iOS or Android?


text:
Game freezes upon clicking "World Preview" in game menu. [1.20.1]

What happened?
Tested on both Fabric 0.15.7 and Quilt 0.23.1 with no other mods.
The main preview while creating a world works just fine, but the in-world preview reliably causes the game to freeze (but not crash).
Minecraft Version
1.20.1
Modloader (Fabric/Forge)
Fabric/Quilt
World-Preview Version
1.2.0
Minecraft Logs
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_1255.method_18859(class_1255.java:156)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_4093.method_18859(class_4093.java:23)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_1255.method_16075(class_1255.java:130)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_1255.method_5383(class_1255.java:115)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_310.method_1523(class_310.java:1175)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.class_310.method_1514(class_310.java:802)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.minecraft.client.main.Main.main(Main.java:250)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:87)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:130)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
[14:57:13] [Render thread/INFO]: [STDERR]: Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 9: minecraft:overworld-8-87553.zip
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.nio.file.Path.resolve(Path.java:515)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at caeruleusTait.world.preview.client.gui.screens.InGamePreviewScreen.loadPreviewStorage(InGamePreviewScreen.java:115)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at caeruleusTait.world.preview.backend.WorkManager.postChangeWorldGenState(WorkManager.java:138)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at caeruleusTait.world.preview.client.gui.screens.PreviewContainer.updateSettings_real(PreviewContainer.java:470)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at caeruleusTait.world.preview.client.gui.screens.PreviewContainer.lambda$updateSettings$21(PreviewContainer.java:355)
[14:57:13] [Render thread/INFO]: [STDERR]: 	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718)
[14:57:13] [Render thread/INFO]: [STDERR]: 	... 14 more```

Thanks for reporting. Should be fixed with the 1.2.1 version.

authors: Arrowpuppet caeruleusDraconis

repo: caeruleusDraconis/world-preview