Apollo 5.0 : Perception module keeps crashing

Describe the bug
In Apollo 5.0, Perception module keeps crashing and car drives erratically.
The issue is very similar to  #184,  #232, #9857,  #632, #232, #184, #206, #4233, #6916 and many more .
Here's a Youtube video I made on this issue :  'https://www.youtube.com/watch?v=w2SHCZkFSA4'
To Reproduce
Steps to reproduce the behavior:

Go to 'https://github.com/lgsvl/apollo-5.0#launching-apollo-alongside-the-simulator'
Follow the steps mentioned to start Dreamview and  bridge with lgsvl
Selected Car : Lincoln2017MKZ(Apollo 5.0)
Selected Map : San Francisco

Expected behavior
In dreamview, as well as in lgsvl, the car should drive autonomously to the chosen destination .
Youtube Video of expected behaviour : https://www.youtube.com/watch?reload=9&v=19eo9ZffCKQ&feature=youtu.be
**System Description

NVIDIA Driver v: 435.21
CUDA Version: 10.1
GPU(2) : RTX 2080
OS: Ubuntu 18.04

Additional context
LGSVL simulation seems to be using a lot of CPU resources, so I capped it using #cpulimit -e simulator -l 30

You're using an old version of LGSVL simulator. could you try out the latest version.

Hi @ntutangyun . Thanks for your response.
May I ask what made you conclude that I am using an old version of lgsvl ? Was it something in the screenshots that I attached ?
I think lgsvl throws an error called ''Invalid Out of Date Asset Bundle'' :

@Avps1 sorry my mistake. I saw the expected behavior video, in which the lgsvl simulator version was quite old.

I think lgsvl throws an error called ''Invalid Out of Date Asset Bundle'' : '(lgsvl/simulator#659)' if an older version of Vehicle or environment is used.
I can assure you that its not the case here, because I downloaded the most recent asset bundle for Borregas Ave env and the LIncoln 2017 vehicle, from the link mentioned in lgsvl/simulator#659 , with the issue still persisting.

That's right.
Could you put your CPU and Memory Specs.
I'm using Intel Core i7-6850K, 6 cores, 12 threads. Still when I run the full lgsvl + apollo 5.0 stack, the CPUs are almost fully occupied. This is might due to the large amount of data communication between lgsvl and Apollo Cyber RT (particularly the cameras and lidar sensors).
I've checked your recorded video. according to my experiences, the frequencies of the sensor messages are way too low. In my computer, the messages are sent about 5 - 10 times higher frequency than yours.
I guess that's probably the issue for the perception ?

Hi @ntutangyun. That could definitely be it. If the low frequency of sensor messages is indeed the reason for the Perception modules crashing, could you suggest a workaround for this? WOuld it be better if I run Apollo in 1 pc and lgsvl in another ?

@Avps1 Yes, it would be much better if you run them separately.

Hi, my CPU configurations are similar to @ntutangyun.
Running Apollo and lgsvl in 2 separate PCs still didnt give the desired result - The perception module is still crashing for GTX 2080 , which brings me to my next question - Is GTX 2080 officially supported by Apollo? I read in a lot of places that it isnt, but I dont know the current status.

@Avps1 I've also seen information like GTX 2080 is not supported yet previously. like here, here and here.
I'm using two GTX 1080 TI SLI, and the LGSVL + Apollo stack works fine.

Thanks @ntutangyun , I close the issue then, on the conclusion that the module crashes occur because RTX 2080 is not officially supported.
However, may I ask you to kindly look into this new issue that I raised : https://github.com/ApolloAuto/apollo/issues/10882
Its about Apollo 5.0 not driving autonomously in GTX 1080 . Thanks in advance.

Hi @ntutangyun , can you please tell me how many CPU cores you have in  your GTX 1080 PC?

@Avps1 can you please tell me your PC configuration where you have successfully run apollo with lg simulator?
Thanks!

@Avps1 hi sorry for late reply.  I'm using Intel Core i7-6850K CPU @ 3.60GHz. 6 cores 12 threads.
My GPU is two GTX 1080 TI (SLI)

@Avps1 can you please tell me your PC configuration where you have successfully run apollo with lg simulator?
Thanks!

Hey!
So my configuration is as follows :
Ubuntu 18.04
CUDA 10.2
Intel i5-4 cores
GPU(s) - 2 GTX 1080
Nvidia Drivers - v: 435.21
Note : Using the right GPU made all the difference.
Also, dont forget to press the "scroll-UP" button in lgsvl. The car wont start driving autonomously in DreamView without it.

@Avps1 wrote:

I close the issue then, on the conclusion that the module crashes occur because RTX 2080 is not officially supported.

Please note that the LGSVL changes have been merged into Apollo master which should include support for the RTX 2080. We will be publishing a document describing how to set this up but you can start by cloning apollo master and building it. If this is useful we can post a link to the updated documentation as soon as it is available.

@Avps1 can you please tell me your PC configuration where you have successfully run apollo with lg simulator?
Thanks!

Hey!
So my configuration is as follows :
Ubuntu 18.04
CUDA 10.2
Intel i5-4 cores
GPU(s) - 2 GTX 1080
Nvidia Drivers - v: 435.21
Note : Using the right GPU made all the difference.
Also, dont forget to press the "scroll-UP" button in lgsvl. The car wont start driving autonomously in DreamView without it.

Hello. I am not completely sure but I may be having a similar issue to yours. Could you just clarify to me what is the "scroll-up" button in LGSVL and how to press it? Thank you!

@Avps1 can you please tell me your PC configuration where you have successfully run apollo with lg simulator?
Thanks!

Hey!
So my configuration is as follows :
Ubuntu 18.04
CUDA 10.2
Intel i5-4 cores
GPU(s) - 2 GTX 1080
Nvidia Drivers - v: 435.21
Note : Using the right GPU made all the difference.
Also, dont forget to press the "scroll-UP" button in lgsvl. The car wont start driving autonomously in DreamView without it.

Hello. I am not completely sure but I may be having a similar issue to yours. Could you just clarify to me what is the "scroll-up" button in LGSVL and how to press it? Thank you!

Hi,
I dont understand the question. A snapshot might be helpful.
KInd Regards

Also, dont forget to press the "scroll-UP" button in lgsvl. The car wont start driving autonomously in DreamView without it.

I'm not exactly sure what was meant by this. In the simulator window you might need to press the "play" button at the bottom of the screen to begin the simulation before sensor data will be sent to Apollo's cyber bridge.
As for other keyboard controls, none should be needed unless you have inadvertently activated the parking brake or shifted the car out of gear. Keyboard controls are documented here.


Reduce deepcopy

Address https://github.com/yebai/Turing.jl/issues/237
Also fix https://github.com/yebai/Turing.jl/issues/245
Almost done. But I also want to implement a cache of gradient  - we can actually cache some of the gradient for leapfrog. The gradient used in NUTS is especially low-efficient because our leapfrog also re-compute grad in the beginning and the recursion of NUTS calls the leapfrog by only 1 step each time:

The way our trick to cache gradient inside leapfrog makes the number of computing gradient to be t+1
Calling leapfrog only one-step each time means the number to be 1 + 1, and calling t times 1-step leapfrog means 2t

I think it's fine to just cache the gradient by a dictionary inside spl.info?

HMC on LDA before cache was 429s (https://travis-ci.org/yebai/Turing.jl/jobs/231713149) and after is 369s (https://travis-ci.org/yebai/Turing.jl/jobs/231726143).

218s after setting chunksize to 60 (https://travis-ci.org/yebai/Turing.jl/jobs/231734804)

I think it's fine to just cache the gradient by a dictionary inside spl.info?

Yes, we can do that first.

I think appveyor fails because the cache dict uses Vector{Dual} as keys, and somehow win32 doesn't support it. Will fix it tomorrow.

UPDATE:
Collecting 1000 samples using HMCDA for LDA takes 58.7 seconds now.

@yebai I guess I will leave the vectorization of assume for future. The reason is that the vectorization is only make things faster if all of reconstruct vectorize link and invlink are vectorized, where the vectorization of link and invlink seems to be tricky for SimplexDistribution (for LDA).
Shall we merge this PR then?

Another related issue I was stuck is the convention of matrix, i.e. default functions all treat thing as matrix and we now write things as vector of vector because of our chain interface issue (https://github.com/yebai/Turing.jl/issues/207).

Can we merge this to master?


JSON data submitted isn't as expected

Hey there - thanks for sharing this code! I've been testing it and see that the form submission looks like this:
<EMAIL_ADDRESS>"}

however, this looks invalid and I'd have expected it to be like:
<EMAIL_ADDRESS>
Is the submitted JSON I am getting in the expected format?
Do you know how to adapt to strip the last : " ?

Yeah, I can look into it. Do you have a simple code example to reproduce issue?

sorry - was an error on my end. got it resolved now. thanks :-)


[Bug]: export * as Foo from "./foo" doesn't work when containing file and ./foo/index.ts are entry points

What does the bug relate to?

[X] Plugin's core
[ ] Debugger

Describe the bug
Minimal repro here - https://github.com/hwallis93/plugin-entry-shaking-bug-repro/
Say I've got a repo where a barrel file does export * as Hello from "./hello" where ./hello/index.ts is another barrel file, where both barrel files are shaken by EntryShakingPlugin, then Hello is removed entirely at build time, even if it's used. This causes errors when trying to call functions it contains
E.g. for this directory structure:
.
├── index.html
├── package.json
├── src
│   ├── lib
│   │   ├── hello
│   │   │   ├── hello.ts
│   │   │   └── index.ts
│   │   └── index.ts
│   └── main.ts
├── tsconfig.json
└── vite.config.mjs

lib/index.ts contains:
export * as Hello from "./hello"

and lib/hello/index.ts contains
export {helloWorld} from "./hello"

then main.ts can't consume Hello:
import {Hello} from "./lib"

// This errors because Hello is not defined
Hello.helloWorld()

To Reproduce

Clone minimal repro
Run npm install then npx vite
Note in the console that Hello.helloWorld is not a function
Comment out the EntryShakingPlugin in vite.config.mjs
Note that the error is gone and the code works

Vite version
5.4.1
Additional context
No response

Hey! Thank you for that straight-forward repro, it was really helpful. Cross-entries should be supported but it turns out there's an issue when dealing with wildcards across different entries.  Right now, whenever this plugin encounters a wildcard import from another entry, it returns a reformatted import * from '{path/to/other/entry}'; it doesn't take that other entry's analysis into account, meaning it tries to import entities from cleaned up entries. Such cleaned-up entries may not expose these entities anymore, resulting in a unresolvable entity. That's your scenario.

I import an entity from an entry file which wildcard-imports it from another entry file

Wildcards are a bit tricky but they're supposed to be supported and I think this could be easily fixed by recursively calling resolveImportedEntities whenever this scenario is encountered.  This scenario is already clearly identified by the importDefault && name === '*' condition within the resolveImportedCircularEntities function.  Your issue could be fixed a couple different ways but resolving final imports at runtime instead of analaysis-time  looks better because it prevents overburdening the analysis time with entities that - in the end - may even not be used. So I'd rather go for a sort of JIT approach. I'll setup a hotfix for this, but I feel like there might still be some uncovered edge case because, once again, wildcards are a bit tricky

I've released 0.5.0 that should address this issue. Feel free to re-open if needed :)

Amazing thanks, I'll try it out tomorrow


[GDNative] Node properties are not loaded from scene file.

Godot version:
master ea0e73f3c
Issue description:
Properties of GDNative Node (registered from editor plugin, and added to scene) are not loaded from scene file correctly.
If property record in .tscn file is located before script = ... (editor saves scene like this) it is not set correctly when scene is loaded.
If property is manually moved to be after script = ... it is loaded correctly (until scene is saved in editor next time).
Property value is NOT loaded:
[node name="TestNode" type="Node" parent="." index="0"]
test_value = 800
script = ExtResource( 1 )
__meta__ = {
"_editor_icon": ExtResource( 2 )
}

Property value IS loaded:
[node name="TestNode" type="Node" parent="." index="0"]
script = ExtResource( 1 )
test_value = 800
__meta__ = {
"_editor_icon": ExtResource( 2 )
}

Steps to reproduce:
Add GDNative Node to scene.
Set property value in editor.
Save project.
Re-open project in editor (Property value is not set to saved value).
Minimal reproduction project:
TestProject.zip
Includes: project, plugin, gdnative source, binary libs (macOS, Windows 64-bit, Linux 64-bit).

Related to #17672. I think NativeScriptInstance::get_property_list just needs to sort script properties to after script like GDScript does, but I still can't figure out how exactly this is done for GDScript...

Fixed via #18119.


Proof reading Readme, Step0, Step1

Looks good @diraulo. Had one small comment only. Please review and I'll merge it in. :-)

@tochman it's done


Historical crashes with OOM on SQL join query

Affected Version
21.1
Description
SELECT "field1", "field2", "subquery_count", Count(*) as "count"
FROM datamodel
LEFT JOIN (
  SELECT "field1" as "subquery_field", Count(*) as "subquery_count"
  FROM datamodel
  WHERE ("field1", "field2") IN (('a1, 'a2'), ('b1, 'b2'), {more_values})
  AND {various_other_filters}
  GROUP BY 1
) ON "subquery_field"="field1"
WHERE ("field1", "field2") IN (('a1, 'a2'), ('b1, 'b2'), {more_values})
AND {various_other_filters}
GROUP BY 1,2,3

The issue appears to crop up whenever we have a query with a LEFT JOIN and the ("field1", "field2") IN (('a1, 'a2'), ('b1, 'b2'), {more_values}) has more than 16 pairs of values on the right side. It does matter if the values on the right side are unique, i.e. if a1=b1=c1 for every pair, then the crash does not happen (likely runs a more optimal query plan in that case).  The query will take a long time and will eventually crash the historical, even sometimes if you cancel the query well before the OOM is hit.  It's a bit surprising that it happens at all, because the total amount of data the subquery would return should be pretty small.
cluster is 2 historicals, 2 routers, 1 broker
broker settings:
    - name: DRUID_XMX
      value: 4g
    - name: DRUID_XMS
      value: 4g
    - name: DRUID_MAXDIRECTMEMORYSIZE
      value: 3g
    - name: JAVA_OPTS
      value: -XX:+UseG1GC -XX:+ExitOnOutOfMemoryError
    - name: druid_broker_http_numConnections
      value: "25"
    - name: druid_broker_http_maxQueuedBytes
      value: "10000000"
    - name: druid_server_http_numThreads
      value: "30"
    - name: druid_plaintextPort
      value: "8082"
    - name: druid_broker_cache_useCache
      value: "false"
    - name: druid_broker_cache_populateCache
      value: "false"
    - name: druid_processing_buffer_sizeBytes
      value: "524288000"
    - name: druid_processing_numThreads
      value: "3"
    - name: druid_processing_numMergeBuffers
      value: "2"
    - name: druid_sql_enable
      value: "true"

historical settings:
    - name: DRUID_XMX
      value: 9g
    - name: DRUID_XMS
      value: 9g
    - name: DRUID_MAXDIRECTMEMORYSIZE
      value: 7g
    - name: JAVA_OPTS
      value: -XX:+UseG1GC -XX:+ExitOnOutOfMemoryError
    - name: druid_server_http_numThreads
      value: "60"
    - name: druid_plaintextPort
      value: "8083"
    - name: druid_processing_numThreads
      value: "8"
    - name: druid_processing_numMergeBuffers
      value: "2"
    - name: druid_processing_buffer_sizeBytes
      value: "524288000"
    - name: druid_segmentCache_locations
      value: '[{"maxSize":2199023255552,"path":"var/druid/segment-cache"}]'
    - name: druid_segmentCache_numLoadingThreads
      value: "12"
    - name: druid_segmentCache_lazyLoadOnStart
      value: "true"
    - name: druid_server_maxSize
      value: "2199023255552"
    - name: druid_historical_cache_useCache
      value: "true"
    - name: druid_historical_cache_populateCache
      value: "true"
    - name: druid_cache_sizeInBytes
      value: "1073741824"
    - name: druid_monitoring_monitors
      value: '["org.apache.druid.java.util.metrics.JvmMonitor","org.apache.druid.server.metrics.QueryCountStatsMonitor","org.apache.druid.server.metrics.HistoricalMetricsMonitor","org.apache.druid.client.cache.CacheMonitor"]'
  - name: druid_query_groupBy_maxOnDiskStorage
    value: "10737418240"

plugins:
druid-aws-common
org.apache.druid.common.aws.AWSModule
0.21.1
druid-gcp-common
org.apache.druid.common.gcp.GcpModule
0.21.1
postgresql-metadata-storage
org.apache.druid.metadata.storage.postgresql.PostgreSQLMetadataStorageModule
0.21.1
druid-kafka-indexing-service
org.apache.druid.indexing.kafka.KafkaIndexTaskModule
0.21.1
druid-histogram
org.apache.druid.query.aggregation.histogram.ApproximateHistogramDruidModule
0.21.1
druid-datasketches
org.apache.druid.query.aggregation.datasketches.theta.SketchModule
0.21.1
druid-datasketches
org.apache.druid.query.aggregation.datasketches.theta.oldapi.OldApiSketchModule
0.21.1
druid-datasketches
org.apache.druid.query.aggregation.datasketches.quantiles.DoublesSketchModule
0.21.1
druid-datasketches
org.apache.druid.query.aggregation.datasketches.tuple.ArrayOfDoublesSketchModule
0.21.1
druid-datasketches
org.apache.druid.query.aggregation.datasketches.hll.HllSketchModule
0.21.1
druid-lookups-cached-global
org.apache.druid.server.lookup.namespace.NamespaceExtractionModule
0.21.1
druid-hdfs-storage
org.apache.druid.storage.hdfs.HdfsStorageDruidModule
0.21.1
druid-stats
org.apache.druid.query.aggregation.stats.DruidStatsModule
0.21.1
statsd-emitter
org.apache.druid.emitter.statsd.StatsDEmitterModule
0.21.1
druid-processing
org.apache.druid.guice.BloomFilterExtensionModule
0.21.1

Any more configuration / details worth sharing?

@cheezman34 : Thanks for reporting the issue! I think the issue is because of a filter explosion that happens in one of the join optimizations if the number of OR filters in the query is big-ish (as you observed). The filter you have in the query : ("field1", "field2") IN (('a1, 'a2'), ('b1, 'b2'), {more_values}) gets rewritten as (("field1" = 'a1' AND 'field2' = 'a2') OR ("field1" = 'b1' AND 'field2' = 'b2') ...)
Can you try your query with disabling enableJoinFilterPushDown and useFilterCNF query context flags? I believe that should fix the OOM in historical. I'm working on a fix which avoid this filter explosion and will put it up very soon

Those context flags do appear to fix the problem.


Add caching and total room score tracking for multiplayer playlist item statistics

[x] Depends on https://github.com/ppy/osu/pull/29099

Still testing this, but it passes CI and seems like it'll work (lol).

Reviews should be applied.


Counting Sort

Contributing with Counting Sort, for it was not in the Repo.

@all-contributors please add @iamKushGupta for his code


Add videos from VU RDS pages

Few years ago, VU RDM colleagues contributed to short animations explaining RDM principles and tools available.
These videos should be added to the handbook

Add here https://rdm.vu.nl/topics/research-data-management.html RDM: How, What and Why? https://www.youtube.com/watch?v=Dw_bwegR76I
Should be part of this guide https://rdm.vu.nl/guides/data-lifecycle.html but this guide first needs to become topics, see #216 RDM: Tools and Storage https://www.youtube.com/watch?v=-AaSNZzL_KQ
Yoda should be part of #92 How to: Yoda
https://www.youtube.com/watch?v=N67v2v62Qn0&t=1s

Thanks @Karvovskaya 🙌 I opened a PR in #229, and given that you already mentioned the video for Yoda in its own issue, I think we can move forward to include these videos now and refine the work based on the other outstanding issues. 👍


Try fixing error on production

This is a strange one. I think your original code should work unless production is running an old version of Ruby.
:+1: to shipping this either way, though.


Bugged frames

I've been training an agent for the first round of the marLo competition which works fine most of the time but some of the times just round around in a circle. After saving the observation from these episodes and looking at them I discovered that during these episodes the observations are bugged and frozen (couple of examples below).

When this bug occurs (10-15% of the episodes) all of the frames during that episode will look identical and warped like this, which understandably confuses the agent. However when looking at the Minecraft game window everything looks fine. I've also noted that there is a spike in memory usage whenever this bug appears.
Below is a minimal example to replicate it:
import marlo
from skimage import io
import numpy as np

client_pool = [('<IP_ADDRESS>', 10000)]
join_tokens = marlo.make('MarLo-FindTheGoal-v0',
                          params={
                            "client_pool": client_pool
                          })
# As this is a single agent scenario,
# there will just be a single token
assert len(join_tokens) == 1
join_token = join_tokens[0]

env = marlo.init(join_token)

nr_bugged = 0
run = 0
while True:
    steps = 0
    bugged = False
    observation = env.reset()
    while steps < 20: # The frames bug right away after reset so no need to go further
        _action = env.action_space.sample()
        obs, reward, done, info = env.step(_action)
        if steps > 3: # First couple of frames are equal due to loading
            if np.all(obs == old_obs):
                io.imsave('bugged_frame_%d_%d.png' % (run, steps), obs)
                bugged = True
        old_obs = obs
        steps += 1
    run += 1
    nr_bugged += bugged
    print('Completed %d run(s), %d of which were bugged (%.2f%%)'
          % (run, nr_bugged, (nr_bugged/run)*100))
env.close()

I've noticed that the frames are more often bugged after the first reset and then it becomes slightly more uncommon the more episodes are run. So while it might not affect training too much (although I suspect still quite a bit) I wonder if this bug is also present on the evaluator that's used for the leaderboard? In that case it could heavily impact the scores.
I'm using the latest master branch of marLo. I've also tried adding some time.sleep before/after every action in case it was some sync issue but that doesn't seem to help.

I'm on Ubuntu 16.04. But yes it does seem to be a memory issue because I can't reproduce it on servers with more memory. On my laptop (where I originally encountered this problem) I normally have ~2-3GB memory to spare when running everything and most of the episodes are fine but during these episodes I guess it has trouble allocating some memory and crashes like this. Thanks for looking into it.


Panic in log

Bug description
Panic in log
How to reproduce it?
Testing node failure and cluster rebalance, no straight instructions to reproduce
Expected behavior
No panic
Screenshots
If applicable, add screenshots to help explain your problem.
Library Version:

Go-Akt version: 2.10.1
Go version: 1.23

Additional context
node3-1  | {"level":"error","ts":"2024-12-20T14:01:40Z","msg":"failed to synchronize peer=(<IP_ADDRESS>:3320): failed to sync peer=(<IP_ADDRESS>:3320) request: deadline exceeded"}
node3-1  | {"level":"panic","ts":"2024-12-20T14:01:40Z","msg":"failed to sync peer=(<IP_ADDRESS>:3320) request: deadline exceeded"}
node3-1  | panic: failed to sync peer=(<IP_ADDRESS>:3320) request: deadline exceeded
node3-1  |
node3-1  | goroutine 90 [running]:
node3-1  | go.uber.org/zap/zapcore.CheckWriteAction.OnWrite(0x0?, 0xc0001d48d0?, {0x0?, 0x0?, 0xc0001a2c00?})
node3-1  | 	/go/pkg/mod/go.uber.org/zap@v1.27.0/zapcore/entry.go:196 +0x54
node3-1  | go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc000201110, {0x0, 0x0, 0x0})
node3-1  | 	/go/pkg/mod/go.uber.org/zap@v1.27.0/zapcore/entry.go:262 +0x24e
node3-1  | go.uber.org/zap.(*Logger).Panic(0xc0002bc200?, {0xc00023c140?, 0x1?}, {0x0, 0x0, 0x0})
node3-1  | 	/go/pkg/mod/go.uber.org/zap@v1.27.0/logger.go:285 +0x51
node3-1  | github.com/tochemey/goakt/v2/log.(*Log).Panic(0xc0000f0880, {0xc0002bc200?, 0x13a5e20?, 0xc0002e3180?})
node3-1  | 	/go/pkg/mod/github.com/tochemey/goakt/v2@v2.10.1/log/log.go:139 +0x76
node3-1  | github.com/tochemey/goakt/v2/actors.(*actorSystem).replicationLoop(0xc0000ef1e0)
node3-1  | 	/go/pkg/mod/github.com/tochemey/goakt/v2@v2.10.1/actors/actor_system.go:1360 +0x178
node3-1  | created by github.com/tochemey/goakt/v2/actors.(*actorSystem).enableClustering in goroutine 1
node3-1  | 	/go/pkg/mod/github.com/tochemey/goakt/v2@v2.10.1/actors/actor_system.go:1300 +0xa45

@webfrank this is not a bug. peer synchronization failed and the expected behavior is to panic. This is expected. There is a context deadline issue.

@webfrank this happens when we are replicating an actor in the cluster and it fails https://github.com/Tochemey/goakt/blob/main/actors/actor_system.go#L1360


[PRO] - Dark Mode - Select2 dropdown is transparent

Hi,
I felt this medium would help my issue get highlighted as I was not getting a response through the pro support channel (Request ID - 3315).
Version: 3.2.0
Theme: Dark Mode
Forms -> Advanced -> Select2 (Choose any select2 dropdown)
This is was it looks like:

This issue is also replicable on your live demo here: https://coreui.io/demo/3.1.0/dark/#forms/advanced-forms.html

@shubhamranjan did support ever address your issue?  I've been having a difficult time getting a response as well to an issue with dark mode (also the PRO version).

@abunch - I eventually got a reply via email and they did deploy a fix but yeah, a delayed response.


Fix determination of push type for empty notifications with badge 0

Without this change, it is impossible to send an empty notification that just sets the app badge to 0 (removes the badge). If notification.badge is 0, then APNsClient.send_notification_async will calculate the push type as background, which will not update the badge number. The solution is to compare notification.badge explicitly to None.

@cassidylaidlaw Thanks for contribution.
Btw, send_notification_async()/send_notification_batch() has param push_type to override this inferring. Dunno why it's not exposed in send_notification() method, I'll fix it in next release

Thanks for merging!


How to split a complex workflow

I read your pseudocode about workflow, and I found that after receiving a task (AgentMsg), the workflow has two processing methods:

Find a corresponding role to handle the task
All roles process the task separately and combine the results

In reality, many complex tasks need to be completed through division of labor and cooperation, that is, there will be a leader who splits tasks into smaller subtasks and performs them synchronously. This working mode is not found directly in workflow.
After thinking about it, there are roughly two scenarios where tasks need to be split:

Tasks require characters with different skills to complete

Based on the current design, these roles can be constructed in the workflow, and this task can be assigned to all the roles in the workflow to handle it separately. These roles understand and decompose the task, and only deal with the part within their own responsibilities. Finally, each The processing results of roles are combined to become the final result.

A single role has limited capabilities (for LLM, mainly context length?), tasks require many characters with the same skills to complete

Based on the current design, a two-level workflow can be designed. The first level constructs a role and assigns the task to the role. The role understands and splits it into a task list, and delivers the task list to the sub-workflow. The sub-workflow receives the task list. Finally, only the first subtask that has not been completed is processed, and then the status of the subtasks in the task list is modified, and a new sub-workflow is started again until all subtasks in the task list are completed.
flow chart:
graph TB
    subgraph "Workflow(leader)"
        ReceiveMsg["msg = pop_msg()"]-->SplitTask["task_list = leader_role.split_task(msg)"]-->SendToExecutor["result = send(executor_workflow)"]
        WaitResult["result = wait_result()"]
    end

    SendToExecutor.->ReceiveTaskList

    subgraph "Workflow(executor)"
        ReceiveTaskList["task_list = pop_msg()"]-->ExecuteNextTask["result = executor_role.execute(task_list)"]-->IsFinished{"is_finished(result)"}--no-->ReceiveTaskList
        IsFinished--yes-->PostResult["post_result(result)"]
    end

    PostResult.->WaitResult

For the second scenario, it is a bit like a recursive structure, which is more difficult to understand. If you can directly provide a general split mode, it will be more friendly to developers. If you want to achieve this, you may need to introduce a special role (leader ). The general process is as follows:
if self. leader is not None:
     result = await _process_msg(msg, self. leader)
     task_list = split_tasks(result);
     task_result_list = []

     for task in task_list:
         msg = result + ". please execute this task:" + task
         role = self.input_filter.select(msg)
         task_result = await _process_msg(msg, role)
         task_result_list += task_result

     result = self._merge_msg_result(task_result_list)

     chatsession.append_post(result)

In addition, is the process of merging results also an intelligent process of summarization, and does this also require a role to handle?

I believe we're on the same page. The essence of constructing a team (workflow) composed of AI Agents to decompose complex problems is to confront and solve the enduring fact of the LLM Token Limit. You can see in the current design (src/aios_kernel/workflow.py) that it already includes the process of roles breaking down tasks into sub-workflows and merging them.
I consider this a fundamental requirement, so there's no need to define a role called "Leader" at the base level. However, I also predict that within workflows built on OpenDAN, there will undoubtedly be a frequently used role named "Leader" equipped with a set of sophisticated prompts.
As always, I appreciate your thoughts and feedback on this matter. Let's continue to collaborate to make our project a success.


miscellaneous fixes to building and packaging on ELx

I needed to get tac_plus to work on EL9.
I compile on EL6, EL7 and EL9. I made SysV/systemd scripts follow the OS and same with tcp wrappers.
Hope it is useful.

I'll merge this, but FYI these days tac_prod is packaged in EPEL 8 and EPEL 9 upstream, see https://src.fedoraproject.org/rpms/tacacs


Add RTOS & Manual Mode (And Other Things)

There are now three modes: normal, manual, & RTOS. RTOS mode uses an RTOS queue and task for servicing incoming messages. Manual mode is similar to normal mode except you must transmit your own ACKs with Transmit_Raw (Not yet implemented).
Other Changes:

Removed CANQueueItem type as it wasn't fun to use.
The CAN queue now sources its message buffer from the user, allowing the user to decide how much memory to allocate to the queue.
Removed notify_of_acks, as manual mode now fills this niche.
Added an RTOS task for handling messages in RTOS mode.
Added some asserts for function parameters. Though, I haven't done them all.
Added assert.h.
Added IGNORE_FAIL macro for documenting dismissal of errors.
Moved all processing of messages, including acknowledgement and searching the TxCache outside the CAN ISR. This is to keep the ISR as short as possible. Note, this means that messages won't be acknowledged until they are processed via Poll_Events or the message task.

Closes #32 #3 #8.

Left to do:

[ ] Document API changes in the Wiki
[ ] Consider the alternative approaches from #32 for acknowledging messages (e.g. Process_Acks).
[ ] Reduce ifdef's and overall complexity if possible.


Qt WebEngine Support

Would be nice to get this at some point!
https://doc.qt.io/qt-5/qtwebengine-index.html

I'll look into that. Shouldn't be hard to add.

Was this ever added?

Not yet.

+1 teary eyes

+1 teary eyes

Why no support? IS anyone working on it orr?


Needs-release GH label failed to trigger release

What happened?
https://github.com/pulumi/pulumi-akamai/pull/524 - this failed to trigger a release after merging
Example
.
Output of pulumi about
.
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

The original run of the master build shows a status of Cancelled. This means that the "Tag Release id labeled as needs-release" job never ran.
Apparently it also means that we did not get a p1 alert because Cancelled does not mean Failed.

I believe this is a recent GitHub Actions issue and has been resolved since. The timeline adds up.
https://github.com/orgs/community/discussions/126539

Thank you to @VenelinMartinov for manually releasing the affected providers.
Also of note: Cleaning up the needs-release/x label did not work on the manually triggered release because it was looking for a commit not on that branch.
I've cleaned up the labels on both repositories. I've also verified that there are no other needs-release/x labels assigned to me as reviewer recently, so I have high confidence that this was fixed by GitHub.
I'm going to close this issue as resolved but have opened https://github.com/pulumi/home/issues/3456 to track if it happens again. I don't believe this is high priority at this time.


Add explore control tabOverride at the section level

CATEGORY

[x] Bug Fix
[ ] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY
https://github.com/apache/incubator-superset/pull/9440 unintentionally moved the "Options" section for Big Number chart to the "Customize" tab.
This is because ControlPanelsContainer checks whether a section needs to display in the Data tab by checking whether any of the control in that section must trigger new queries when updated (renderTrigger: false) or has tabOverride = data. But it uses the config in the shared controls file, and assumes the control configs passed along are names of the shared controls, and could be used to look up the shared control from controls.jsx. However, when these controls are refactored into custom configs, they become objects and ControlPanelsContainer then fails to find the shared control, hence the renderTrigger and tabOverride info.
Ideally this tabOverride option should probably be at the section level.
A bigger refactor is need to let ControlPanelsContainer always read from parsed control configs (instead of the control keys). This PR is just a quick fix.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before
The "Options" section is displayed in the "Customize" tab.

After
The "Options" section is displayed in the "Data" tab like before.

TEST PLAN

Check any big number chart with trendlines.

ADDITIONAL INFORMATION

[ ] Has associated issue:
[x] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS
@rusackas @michellethomas

Thanks for fixing this!

Thanks for catching this AND for fixing it! I'll keep an eye out for this in the future.


Support for key/value store

Hi Chris, just a suggestion, since seaweed is a key/value blob store, is it possible (or roadmap) to add API for it to store key / value pairs?

This would be a different project.

I mean this is out of scope. The detailed implementation is very different.

Thanks for the quick reply.


Support for Cocoapods

Hi,
Can you add support for cocoapods?
Thanks.

I don't use it anymore, but I'm open to contributions :)


Improve sql timeout error message

closes #511
When a DB timeout error arises caused by our limits system, the user should be aware of the actual error reason. Currently, the API responses with a cryptic 429 http error:
{
    "error": [
        "You are over platform's limits. Please contact us to know more details."
    ],
    "context": "limit",
    "detail": "datasource"
}

This PR simply adds  SQL query timeout expired error. to the error message. This way, we don't break current users implementations (hello frontenders!):
{
    "error": [
        "You are over platform's limits. Please contact us to know more details. SQL query timeout expired error."
    ],
    "context": "limit",
    "detail": "datasource"
}

Or reversing the first sentence:

SQL query timeout error: you are over the platform limits. Refactor your query before running again or contact CARTO support for more details.

I've tried to not break any current integrations. Some of them rely on the message to identify the error (wrong on our part, we should provide an error code for that). For example, a lot of our own tests broke when changing the message.
I also like the @andy-esch message proposal.
@ivanmalagon Do you frontenders use this message in order to identify the error?

^^^ @rubenmoya

I've tried to not break any current integrations. Some of them rely on the message to identify the error (wrong on our part, we should provide an error code for that). For example, a lot of our own tests broke when changing the message.

Apart from out test, what do we break if we change the error's message?. Don't hesitate to change accordingly the message in our test.

AFAIK in Carto.js we're using this RegEx to check the error type, so the new message should work too.

Apart from our test, what do we break if we change the error's message?. Don't hesitate to change accordingly the message in our test.

For example the carto.js integration
I assume that a lot of users use these error messages as error codes via a regex.
I propose this message based on @andy-esch that honors carto.js regex:
You are over platform's limits: SQL query timeout error. Refactor your query before running again or contact CARTO support for more details.

I'm looking forward the global error refactoring 😄

Should we improve the rate limit message too?

🙏 update NEWS.md before merging!

With the proposed new error in the PR we won't have any problem. Our regex to categorize the error checks if the message starts with You're over platform...
If in the future the message doesn't start with that text, we should change our regex, but it's OK right now with the changed error text.


Chrome view scrolling issue

When I book a ticket or edit a category in Chrome from MAC, and the category box or ticket box that comes up is longer than the bottom of my screen (so i can't see save button) if I scroll down with the bar on the right hand side, the Cateogry window then disappears and doesn't save...
Thought it was just my browser - Amira and Marina are having the same problem, not on a mac but still on chrome.
If I use arrow keys or zoom out it is fine... weird - but I think will put some people off.

I@m a bit confused about what you mean, could you add a screenshot?

cancel all that, turns out it's already been fixed in the upstream package reactstrap/reactstrap#1097.
Fixed by simply upgrading.

In which case it is what it is and we leave it. Bring on the two finger scroll….
From: Samuel Colvin<EMAIL_ADDRESS>Reply-To: samuelcolvin/nosht<EMAIL_ADDRESS>Date: Wednesday, 26 September 2018 at 18:22
To: samuelcolvin/nosht<EMAIL_ADDRESS>Cc: Rose Lukas<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [samuelcolvin/nosht] Chrome view scrolling issue (#130)
Oh, I see what you mean. I'm afraid this is a bug with the way bootstrap 4 modals work, I don't really see how I can fix it.
Does anyone actually scroll by dragging the scrollbar? Surely everyone uses the mouse week or two-finger scroll?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/samuelcolvin/nosht/issues/130#issuecomment-424800647, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AncwIzdpa66gSO7yqo4BwsIjceF8wjQNks5ue7fqgaJpZM4W7DRQ.

Fabulous!
From: Samuel Colvin<EMAIL_ADDRESS>Reply-To: samuelcolvin/nosht<EMAIL_ADDRESS>Date: Wednesday, 26 September 2018 at 18:37
To: samuelcolvin/nosht<EMAIL_ADDRESS>Cc: Rose Lukas<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [samuelcolvin/nosht] Chrome view scrolling issue (#130)
cancel all that, turns out it's already been fixed in the upstream package reactstrap/reactstrap#1097https://github.com/reactstrap/reactstrap/issues/1097.
Fixed by simply upgrading.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/samuelcolvin/nosht/issues/130#issuecomment-424805077, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AncwI1Zcw7yUFmaCgimd3neBPpQMKkJKks5ue7s_gaJpZM4W7DRQ.


NO-CODE GRAPHIC/LOGO DESIGNING for Favicon

Designing A no-code Logo optimized for TechOS Bell's favicon
Must in The PR:

Brainstorm designs That Describe the brand
Pick Versatile Color Options
Decent and Professional design

Name - TechOS Bell
Tagline - Not that ordinary community!
Description - A growing non-profit tech community for programmers and non-coders alike! Yes, you read that right, you do not have to be a developer or a programmer to join yet another cool community!
Note -

THIS PR WON'T BE ASSIGNED but ALL THE VALID PRs will be accepted.
Most creative and relatable Designs will be applied to the site design

Rules -

Must Follow all the steps from Instructions
PR should be added in this file
Most efficient contributions gets automatically listed here
The logo MUST BE UNIQUE

Suggestions - Tacos bell / bell w technology / random decent design etc.

Hi @fykaa I am not a designer not into it what you suggest should i try this or not?

Given that you are not a designer, I feel you should avoid investing time and energy to this issue because it will not benefit your work or resume. You may still contribute your prototype, ideas, views and suggestions in a PR if you want! Thank you so much for your interest!

Hi! I have experience in art and would like to help contribute. Should I post various working progress here and see if you approve before finalizing?

@fykaa

here's the first draft I'm thinking of.
A robot holding a bell that's technologized? Well have technology elements and sort of in a giving gesture since you mention how important a community your is so I though it would be perfect? Any critiques?


Support featured images.

Hello @amyquispe, @mikkot, @kylehg,
Please review the following commits I made in branch 'chad-support-featured-images'.
c88e9826ca1f56eff62062105d872ff292c6f1ee (2016-04-21 19:45:07 -0400)
Support featured images.
Fixes https://github.com/Medium/medium-wordpress-plugin/issues/74
R=@amyquispe
R=@mikkot
R=@kylehg

LGTM


M3-5075: Rework payment method panel for multiple payment methods

Status
Ready for review, but plan to merge after #7676
Description

Uses Feature Flag where needed
Add copy about Google Pay now being an option
Use new GET /account/payment-methods endpoint to populate payment method rows
Uses new PaymentMethodRow component
Adds Drawer for adding new payment methods
Adds mock for GET /account/payment-methods

How to test
View /account/billing and view the page with the Google Pay feature flag both on and off. Ensure items listed above are solid.

@johnwcallahan and also, sorry for the weird hot fix and develop merges... that was not intentional 😕

Going to address some styling issues in the upcoming days...


VoltDB Binding with offsite server - An illegal reflective access operation has occurred

For me the VoltDB binding works fine, until I specify a server by IP address that is not localhost.
voltdb.properties
recordcount=10000
operationcount=10000
voltdb.servers=[offsite_ip_address]
threadcount=1
maxexecutiontime=300

$ bin/ycsb.sh load voltdb -P workloads/workloada -P voltdb.properties
ycsb@ycsb:~/ycsb-0.17.0$ bin/ycsb.sh load voltdb -P workloads/workloada -P voltdb.properties
/usr/bin/java  -classpath /home/ycsb/ycsb-0.17.0/conf:/home/ycsb/ycsb-0.17.0/lib/HdrHistogram-2.1.4.jar:/home/ycsb/ycsb-0.17.0/lib/core-0.17.0.jar:/home/ycsb/ycsb-0.17.0/lib/htrace-core4-4.1.0-incubating.jar:/home/ycsb/ycsb-0.17.0/lib/jackson-core-asl-1.9.4.jar:/home/ycsb/ycsb-0.17.0/lib/jackson-mapper-asl-1.9.4.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/log4j-api-2.7.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/log4j-core-2.7.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/log4j-slf4j-impl-2.7.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/slf4j-api-1.7.28.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/voltdb-binding-0.17.0.jar:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/voltdbclient-9.1.1.jar site.ycsb.Client -load -db site.ycsb.db.voltdb.VoltClient4 -P workloads/workloada -P voltdb.properties
Command line: -load -db site.ycsb.db.voltdb.VoltClient4 -P workloads/workloada -P voltdb.properties
YCSB Client 0.17.0

Loading workload...
Starting test.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Maximum execution time specified as: 300 secs
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by io.netty_voltpatches.NinjaKeySet (file:/home/ycsb/ycsb-0.17.0/voltdb-binding/lib/voltdbclient-9.1.1.jar) to field sun.nio.ch.SelectorImpl.selectedKeys
WARNING: Please consider reporting this to the maintainers of io.netty_voltpatches.NinjaKeySet
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Maximum time elapsed. Requesting stop for the workload.
Stop requested for workload. Now Joining!
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
Still waiting for thread Thread-1 to complete. Workload status: true
^C

I made this issue in error. The reflective access is just a warning and not an error, and it shows up even when using localhost. The problem with my benchmark was that I forwarded port 8080 and non 21212.

Thanks for following up!


Motor proposal interface implementation

Closing, this PR went of course in trying to implement motor as modules. Harder then expected.


type-definitions: fix has() for TypeScript 2.9

I'm not sure this is the right fix, but it is a fix.  TypeScript
2.9 (in RC, due out soon AIUI) has a breaking change around keyof:

TypeScript 2.9 changes the behavior of keyof to factor in both unique symbols as well as numeric literal types. (announcement)

This PR fixes things, but I'm not sure of compatability with <= 2.8?
Happy to revise or look into this further.

Any news? :)

@leebyron - Can you this merged? There is now a problem with using the immutable library with Typescript.

Ran into this issue today

@zcr1 Like many others. We'll really appreciate a merge here :)

It looks like I've run into this issue as well as I posted on Stack Overflow.
What's the holdup on merging this PR? Is there we can do in the community to help?

For my issue setting "skipLibCheck": true in tsconfig.json solves this fwiw.

Made a new PR with the proper fix: https://github.com/facebook/immutable-js/pull/1571.

Made a PR for a better fix: https://github.com/facebook/immutable-js/pull/1571.

When will this be released?

I was able to work around this using "skipLibCheck": true, but it's really inconvenient to keep that config because it means that all .d.ts files have their errors completely ignored, not just third-party definition files. It would be great to get a new release that includes a fix for this.


fix: test not found on windows with micromatch 3

Summary
Fixes https://github.com/facebook/jest/issues/6546 .
From micromatch docs ->

when forward slashes are defined in a glob pattern, the resulting regular expression will match windows or POSIX path separators just fine.

Test plan
Same config as in referenced issue work fine with this fix
yarn test
yarn run v1.8.0-20180601.1611
$ jest
 PASS  tests/unit/components/passwordValidation.spec.js
 PASS  tests/unit/components/paymentForm.spec.js
 PASS  tests/unit/pages/index.spec.js
 PASS  tests/unit/components/loginForm.spec.js
 PASS  tests/unit/pages/signup.spec.js (5.426s)

Test Suites: 5 passed, 5 total
Tests:       14 passed, 14 total
Snapshots:   0 total
Time:        8.644s
Ran all test suites.
Done in 10.40s.

Thanks for the PR! Mind adding a test as well?

We have a helper doing something similar in jest-config:
https://github.com/facebook/jest/blob/c6512ad1b32a5d22aab9937300aa61aa87f76a27/packages/jest-config/src/utils.js#L58-L59

@SimenB there is already tests that was able to catch this problem, but they are disabled on windows
https://github.com/facebook/jest/blob/master/packages/jest-cli/src/__tests__/search_source.test.js#L28
I have checked it and there only 1 test fails on windows ( last one with /foo/bar/prefix path ). But there other test that fail without this fix and work with it. So tests exists but they all disabled due to one test.
@thymikee ye, i saw, and there also similar thing in jest-regex-util, but not exactly same.

@aldarund feel free to wrap this test single test in process.platform === 'win32' check

Codecov Report

Merging #6650 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #6650      +/-   ##
==========================================
- Coverage   63.73%   63.73%   -0.01%
==========================================
  Files         235      235
  Lines        8938     8932       -6
  Branches        3        4       +1
==========================================
- Hits         5697     5693       -4
+ Misses       3240     3238       -2
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-cli/src/search_source.js
45.13% <100%> (ø)
:arrow_up:

packages/jest-cli/src/test_scheduler.js
37.89% <0%> (-0.45%)
:arrow_down:

packages/jest-haste-map/src/index.js
96.33% <0%> (-0.02%)
:arrow_down:

.../src/legacy_code_todo_rewrite/jest_adapter_init.js
0% <0%> (ø)
:arrow_up:

packages/jest-worker/src/worker.js
92.18% <0%> (ø)
:arrow_up:

packages/jest-util/src/create_process_object.js
100% <0%> (ø)
:arrow_up:

packages/jest-cli/src/watch.js
79.02% <0%> (ø)
:arrow_up:

packages/jest-jasmine2/src/setup_jest_globals.js
0% <0%> (ø)
:arrow_up:

packages/jest-each/src/index.js
77.77% <0%> (ø)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 664681a...9568fa4. Read the comment docs.

@SimenB done

@mjesun this might be worth a patch release

We've switched back to micromatch 2. Is this still necessary?

It activates a test we currently skip on windows, so I think it's worth landing regardless. We should also upgrade to micromatch 3 for jest 24 anyways

@aldarund mind rebasing this?

@SimenB done. but as i see test dont work on win with micromatch 2

We'll land micromatch as soon as v4 is released, we can probably get this test in at the same time 🙂


Stream Processor - Timezone support for Siddhi Incremental Aggregation

Description:
Need a feature to select the Incremental Aggregation timezone. By default the Incremental Aggregation happens GMT basis.

This was addressed in https://github.com/siddhi-io/siddhi/issues/1638


About the training accuracy.

Hi, Hanting Chen,
I tried the same training setting (Poly LR schedule with 0.9 power; 400 epochs; 256 batch size), and I can only get 89.16% accuracy when training resnet20 on CIFAR-10, while the reported accuracy is 91.84%.
Could you provide more training details and help to explain the gap? thanks.

Do you use the full gradient and adaptive learning rate?

Yes, full gradient as Equ. 5 shows, adaptive learning rate as Equ. 12-13.

I found that you use the poly LR schedule on CIFAR dataset, should I change to cosin LR schedule, I think that cannot incur 2% accuracy drop, is that any other setting I miss here?

Yes, the learning rate cannot incur 2% accuracy drop. I think there may be some mistake on your code. Do you use the same architecture with our code?

Your open source architecture only support for inference. For training, I have tried both python version and cuda version for acceleration as you suggested. Both of them show the similar results on resnet20. So I do not think there is bug on code, otherwise I cannot get 89.% accuracy.
Could you show the optimizer, LR setting and data augmentation etc training setting? I think that might be the reason, thanks!

Data prepare and optimizer is same as https://github.com/kuangliu/pytorch-cifar/blob/master/mai
We use the cosine LR with 0.1 as initial learning rate and 0 as final learning rate.

Hi, Haoran,
Could you please release your training codes? I find it very hard to reproduce the experimental results.

Hi, Haoran,
Could you please release your training codes? I find it very hard to reproduce the experimental results.

Hi, I can not reproduce addernet with the similar accuracy reported in paper, instead resnet34 on imagenet is only 64.8% in my side, but the reported resnet18 can achieve 67%.


[Feat]: Add a LinkedIn share button in the About page

What feature?
Under GSSOC'23

I have an idea of adding a LinkedIn share button in the sidebar of the About page.
The LinkedIn Share Button is the easiest way to remind and encourage users to post and share your website on LinkedIn.

Add screenshots
Example:

Code of Conduct

[X] I agree to follow this project's Code of Conduct

assign me this issue

hey @JasonDsouza212, Can you please assign me this issue so that I can get the work done!

hey @JasonDsouza212, Can you please assign me this issue so that I can get the work done!

Hey @JasonDsouza212. I see that it’s been a while since this issue has been solved. Can I be assigned to it?

is this issue still open? i want to work on it.

@JasonDsouza212


Objective C version

Hi, please  Objective C version?

Thanks

I don't think I got it.
Would you like an objC version of the framework ?

Yes, I would like(need) a version obj-c.
I have little experience with swift
(sorry my English, I use translator)

I'm afraid I won't be able to help you.
I have no experience in obj-c.
Anyway if someone wants to make a port of the framework in objc I'd be happy to help :)

@Eccelor "UILabel+Card.h" file is missing so cannot use cardHighlight


[Meta] Pull requests descriptions are often ignored

I've noticed after reviewing many pull requests that the pull request name and the description aren't getting updated and also largely being ignored by maintainers (including myself).
As our squash merge rules default to putting the pull request title as the commit title and the description into the commit body it seems like we might be leaving a large number of unuseful and ugly commits into our codebase.
While there is an aesthetic component, this also creates confusion around the intention of pull requests requiring context and make them harder to approach.
Examples:
Commit: https://github.com/opensearch-project/security/commit/bd084c89baff0312a1b11b961e8b850b68e83829

[Triage] Thank you for pointing this off @peternied. It seems like we will want to make a determination on how to handle this. We could be more strict in requiring the description. Or we can remove it entirely. Or something any in-between...
We will formally triage this next week after this raising the issue.

[Triage] No clear plan for how to go from here, closing it out.


Design Schema service

Schema service will provide Ember UI with a set of schemas from which the UI could build and display metadata forms. THe order of the schema to be displayed should be somehow indicated by the service.

https://docs.google.com/document/d/1Ki6HUYsEkKPduungp5gHmr7T_YrQUiaTipjorcSnf4s/edit#

done


Score @-mention results

cc @cecileboucheron this adds scoring to suggestions
scoring hierarchy:
Username and fullname starting with filter
--> Username starting with filter
----> Fullname starting with filter
------> Username or fullname including filter
r? @keybase/react-hackers

🎉


Proxy configuration getting replicated to Gateway

Bug Description
We came across an unexpected bug last week in our production cluster. We are still trying to replicate and figuring out the root cause of the issue.
I would be happy to list down the possible configuration as directed, but I would quote the series of events that happened.
Our istiod setup is placed in istio-system namespace in kubernetes using istioctl.
We have application specific namespace, let us call this as demo.
We have our ingress-gateway setup up in demo namespace where we are running a micro-service with istio-proxy injected.
The ingress-gateway was set with requestCpu as 10 and limit as 12 on a 16 core cluster.
istio-proxy is setup using pod annotations with request cpu as 2 and limit as 4 using istio annotations. The concurrency was set using proxy.istio.io/config: "concurrency: 0".
Now we wanted to test if increasing the concurrency of istio proxy would give us some advantage. So for setting this up, we took a dump of one of the pods and brought up another pod (not using deployment) and changed the configuration to use
proxy.istio.io/config: "concurrency: 4"
This was supposed to be the control bucket of our experiment. But to our surprise, another pod of ingress-gateway that came up because of auto-scaling after bringing this pod also copied this configuration and came up with concurrency: 4 which affected our traffic and auto-scaling logic a lot.
This is because when all the ingress-gateway pods restarted they all came up with concurrency: 4 on a 16 core machine. The HPA was set to use 80% of the CPU but on a 16 core machine the concurrency 4 means usage of only 25% of the CPU and hence the ingress-gateway pods stopped auto-scaling thus impacting our production traffic.
As per our investigation, we also asked ourselves few questions which I am listing down here and the answer too.
Q. Did we change the concurrency in some previous configuration which led to this?
A. No we didn't change any configuration in ingress-gateway setup.

As we can see from the above image, a pod came as a result of auto-scaling at 2:35 (starting of the graph) and it started using all the 10 cores as expected.
The changes we did (of bringing a standalone pod), was done at around 2:51-55 AM (not shown in the graph) but as per logs.
Thereafter we can see that the pod that came at around 3:30 AM was using 4 cores only.
Q. How can you say that you didn't change any configuration in the gateway setup, during this time period?
A. This is because if you see the deployment id of the pod that came at 3:30 AM is same as of the pods that were running before 3:30 AM. If we would have made configuration changes before this time, it would have changed the deployment id 6589f7f755
Q. How can you say, this was not a manually spawned pod?
A. If you see the image below, we can see that the old pods with the same deployment id are using 10 cores, while the new pods that are coming up after 3:30 AM are coming up with concurrency 4.

We did actually made a change in our setup somewhere around 15:50 where all the pods were restarted, but the change was just to remove the request limits from the ingress-gateway pods. But this restarted old pods and the new pods that came up were using 4 cores. But since we didn't deliberately made the concurrency change of 4 cores in gateway we were clueless of what happened suddenly.
Q. How serious is this issue?
A. This to me seems like a critical issue, if this is actually a bug with istio setup. Because one of the purposes of kubernetes / containers is that we get what we expect. If the things would have changed between the deployment id, it would have still made some sense, but with the same deployment id if there are some changes with the configuration which has not been deliberately done this makes the system fragile and non predictable.
Another thing to note here is that even if this is the default way how istio works like may be using defaults, then behaviour of one staging / test pod can affect the production traffic at large scale which may again be a risky bet to play.
Q. How can you ensure that the configuration did actually change, may be the new pods are just using 4 cores by the traffic being redirected to them?
A. Before posting this, we did an analysis of our cloud provider logs ourselves. It may not be possible for me to add the full information here, since this would expose our organisation full kubernetes config, but I can post the parts of the same.
This is the configuration of the pod that came at 3:30 AM

This is the snippet of the configuration of the pod that came at around 2:30 AM

Configuration change done in the pod done at around 2:51 AM

I hope all the above configuration, images and information will help the istio team to look into the issue. I would be happy to provider more information if possible.
I tried to replicate the issue on my local with a test setup, but I couldn't. There are so many environment differences, like the app is different, istio version is different (since I am using M1 Mac I am using 1.16.alpha version on my local), while in production I am using 1.14.3. Hence I was not able to replicate still I am trying to check if I can, I will post on that.
Version
$ kubectl version --short
Client Version: v1.21.1
Server Version: v1.21.12-gke.2200

Istio Version: 1.14.3

### Additional Information

_No response_

### Affected product area

- [ ] Docs
- [ ] Installation
- [X] Networking
- [X] Performance and Scalability
- [ ] Extensions and Telemetry
- [ ] Security
- [X] Test and Release
- [ ] User Experience
- [ ] Developer Infrastructure
- [ ] Upgrade
- [ ] Multi Cluster
- [ ] Virtual Machine
- [ ] Control Plane Revisions

### Is this the right place to submit this?

- [X] This is not a security vulnerability
- [X] This is not a question about how to use Istio

There was some bug where this was mutating a global variable iirc. Will need to check if it's in 1.14.3

Thanks @howardjohn for letting me know this (I have been pulling my hair for quite a while)
Let me know if there is any issue or merge request with respect to this.
Also is it possible for istio to change the environment variables without a new deployment just by annotations.
One side note is that we are using istio-operator.

I can reproduce. Doesn't seem fixed on master. Thanks for the report

Thanks @howardjohn for confirmation, saves us a lot of time.


Oak v0.1

This is the Pull Request I am going to review

Hi @sanastas, thank you for this work. It looks not ready for merging yet, but I'll take a look.
Before that, I wonder what's your plan about opening the source code of Oak you noted here. Also which license are you thinking to use?

Hi @kaijianding ,
You have a valid point about this translation to TimeAndDims. We saw the existence of this dictionary, however we believe it is better to postpone dealing with this translation after we merge Oak to Druid. As you can see already now the pool request is big and there is no need to make it any bigger.
Currently we concentrate on the keys that are TimeAndDims, and their creation remains as it was before Oak.
Generally it should be beneficial to take the dictionary off-heap, however we postpone this and currently disregard this translation.

@sanastas I see. hope this pr be merged soon


I can't install MyProfile

Hello,
Im trying to install MyProfile but i can't because results an error.
EDIT: Now i downloded this files with fixed MariaDB error but I still can not

i have the same issue yet i found no way to fix this

@Skadro @liicna #84 should fix the issue. If you can't wait for the pull, you can make the change I made in myprofileutils.class.php.


Support for multiple -t arguments

Support multiple -t arguments which we discuss in #70. Im not sure if it should be in --help. I think string is preferred way.

We want to switch pkg to using https://github.com/zeit/arg


devel branch crush on APPENDDUP

backtrace.log
Oops, it's with -O2, will create one with -O0 in 2-3 hours.

backtrace.log
Oops, it's with -O2, will create one with -O0 in 2-3 hours.

-Og is enough in most cases but runs much faster.
Nonetheless, current backtrace is enough.
More precisely, it is already clear that backtrace will not help, since the problem happened earlier, i.e. I need to look for a way to reproduce bug through simple tests.

Hypothetically, we can try enabling internal audit.
But in your scenarios (and volumes), it may take weeks for the test to reach the bug.
If you have a persistent dataset and a reproducible sequence of operations, we can use an audit-enabled build, but turn audit on immediately before the transaction in which error occurs.
However, it is desirable for me to have a lean testcase based on the current "test framework" to include it in CI.
So I will try to reproduce the problem (i.e. find a testcase) at least today and over the weekend.

mdbx_chk didn't find errors that db. loading of very similar (but not totally same) data to empty db - passed successfully. will collect full dataset tonight, then will try to reduce it.

mdbx_chk didn't find errors that db. loading of very similar (but not totally same) data to empty db - passed successfully. will collect full dataset tonight, then will try to reduce it.

This is the expected behavior because an erroneous transaction was not committed (cannot be committed).

here data set 14Gb (42Gb): http://<IP_ADDRESS>/alex_full.log.gz
smaller data sets don't reproduce problem

FYI: Something more broken in last devel (just did git pull), 1 test in our project failed - but test is complex and i didn’t understand yet what’s wrong (it looks like cursor returned too short value - shorter than anything i put to DBI. But not 100% sure yet).

On today's devel my test passed

I still don't know if there was a problem/error, what caused it, or if anything was fixed.
So I'll continue working with the tests and your test data.

Некоторые методы и результаты проверок (кроме доработок и прогона mdbx_test):

Ваши "логи" я преобразовал в текстовый дамп BerkeleyDB, формат которого исторически используется в mdbx_dump и mdbx_load.

VERSION=3
geometry=l268435456,c268435456,u25769803776,s268435456,g268435456
mapsize=756375552
maxreaders=120
format=bytevalue
database=TBL0001
type=btree
db_pagesize=4096
duplicates=1
dupsort=1
HEADER=END

$ (cat HEADER && gzip -d < alex_full.log.gz | sed 's/^\([0-9a-f]\+\),\([0-9a-f]\+\)$/ \1\n \2/g' && echo DATA=END) | lz4 > src.dump.lz4

Этот дамп я загрузил в новую БД посредством mdbx_load.
Технически при этом используются аналогичные вашим операции добавления данных через курсор.

$ lz4 -d < src.dump.lz4 | ./mdbx_load -an proba.db

После этого получил её дамп, посчитал sha256-дайджест и сравнил с исходным:

$ ./mdbx_dump -a proba.db | tail -n +4 | sha256sum
mdbx_dump v0.9.1-60
Running for proba.db...
ac8a2c7f9acc2201a4c1fc64829aed476821dbfb4c5685e12a422939c80efb09  -

$ lz4 -d < src.dump.lz4 | tail -n +4 | sha256sum
ac8a2c7f9acc2201a4c1fc64829aed476821dbfb4c5685e12a422939c80efb09 -

Прослойка tail -n +4 здесь нужна чтобы отрезать строки заголовка зависящие от размера БД, который после загрузки данных определяется самими данными.
Соответственно, при равенстве дайджестов можно надеяться на совпадение исходных данных и содержимого БД.
На всякий:
$ sha256sum alex_full.log.gz
	0cc400fbeda306d89c4e68aa120a2b5983624e0874578699e33914f9a4a0ae5c  alex_full.log.gz

Это для текущей ветки devel.
Чуть позже попробую по git reflog проверить предыдущие версии, чтобы понять была ли проблема и каким коммитом она исправлена.

So, I didn't found trouble at commits: faddc71eace1088f077a022a235cd097ef0c21c2, ca2ecf2289d8d2e60016b1d349f62eff537e76b6, 2120e396fcb93190bf8b10f51780b1574b18ae2f, 112ce742f501ee31190fda1060b6356f437fcef3, etc (afa264b6, 44b1a3bc).
However, there is space for human error.
So, feed me the commit where you had problems, if there is such information.

Thank, very useful guide on how to get and share mdbx dumps. Only problem - i can't use mdbx_dump if APPEND_DUP returned error (because last key - where error happened - not written into db).
Let me run again that script which failed on last devel (next time I will add commit hash into messages): faddc71eace1088f077a022a235cd097ef0c21c2

Reproduced on faddc71 problem with MDBX_CORRUPTED after APPEND_DUP (of that data which I sent you into DB which was not empty, but DBI was empty):
Do I need send you full dump of db?

Reproduced on faddc71 problem with MDBX_CORRUPTED after APPEND_DUP (of that data which I sent you into DB which was not empty, but DBI was empty):
Do I need send you full dump of db?

I need a way to reproduce the problem.
So in general "yes", I would prefer to get a specific DB in its entirety (not just a dump), if this will reproduce the problem.

Please, let us and you deal with the problem, even if it requires some effort.

yes, i'm working on sharing that db file... (I broken my VPN setup, re-creating it now).

Good news: i've succeed to reproduce problem without original DB (only on alex_full.log).
To do so:

put data only by APPENDDUP (without APPEND)
⁃ don't do intermediate commits (only 1 commit at the end, but script stops earlier).

mdbx_load - does intermediate commits and can't reproduce (when I do intermediate commits - problem also doesn't reproduce).


Error on app startup

Hello
I added the plugin to my cordova project and get  the following error before the deviceready event
Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null
at pluginInit (plugins/cordova-plugin-googlemaps/www/pluginInit.js:72)
at plugins/cordova-plugin-googlemaps/www/plugin-loader-for-android_ios.js:13
at build (cordova.js:51)
at require (cordova.js:66)
at localRequire (cordova.js:47)
at Object.exports.mapModules (cordova.js:1504)
at cordova.js:1304
at Channel.f (cordova.js:689)
at Channel.fire (cordova.js:842)
at cordova.js:1296
The app is Angular JS if that matters.
Any ideas?
Thanks
Andy

This is a duplicate of 2452.


Links to Win10 Lab files are incorrect

"Win 10 lab environment" currently links to the below, which is an older version of the lab:
https://download.microsoft.com/download/3/3/a/33a3c7d7-b393-4f78-9b90-2d5eb7fd98e8/Win10_21H1_lab.zip
"Win 10 lab guides" links to the newer lab environment, not the guides/docs:
https://download.microsoft.com/download/2/9/9/29952cdb-b98d-4f9b-9d6e-9fb49644b0a0/Win10_21H1_Lab_05.12.zip

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 21195f1c-0f99-502b-c6e7-a87d35237a81
Version Independent ID: 1848a7e1-4919-8e28-27ea-cfdbef125609
Content: Windows and Office 365 deployment lab kit - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/modern-desktop-deployment-and-management-lab.md
Service: o365-solutions
GitHub Login: @cdmm12
Microsoft Alias: aaroncz

@MaxXyzzy Thank you for your feedback. The guides for the new lab are available here -https://download.microsoft.com/download/8/5/e/85e007b0-1f3e-460c-bd0a-5a8c6ec490b5/Win10_21H2_guides.zip
The same has been updated in the document.
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @MaxXyzzy Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Enhance Reports for Scenarios: side-by-side plus delta views

Reports with Scenarios should allow not only side-by-side comparison between the calculated figures Vs best estimate, but also checking what is the difference (delta) among scenario and best estimate. Both these views are the target of this ticket.

This ticket can be closed as the PR #202 has been successfully completed.


[1.9.5 RC7] Freezing without error message

I don't know if this problem is a known one but I noticed that the bot is freezing sometimes without any error indicating what's wrong.
When I'm leaving the server in the evening which let's the bot pause the current song everything is fine. The next day when I'm joining the server again I'm automatically joining the voice channel which I left the evening before.
Now the bot wants to continue the song but no sound is played. Also the green indication around the avatar isn't there. Switching debugging to on doesn't produce any error outputs or so on. The last entry on the terminal is:
[config:autopause] Pausing (from leaving the server in the evening)
[config:autopause] Unpausing (rejoining the next day)

I've noticed the same problem after playing a few songs :/ Sad becuse it works great otherwise!

This should be fixed now.


testing: write e2e tests for sound page

Did b121b65782bae59affbf00e479d7a291c513771f take care of this, or was it not comprehensive enough?

Not comprehensive enough. I'll update the description to indicate what tests we should have


Fix empty messages to account for filtering

This issue is in the product/ux phase and is not ready for engineering work, though as always, comments are welcome.
Overview
Currently, the empty state pattern is "Create the first <object> to get started!". This is misleading if a user has a filter applied and needs to be adjusted accordingly.

this work has been deprioritized.


(fix) - invalidate null link

Summary
There was an issue in invalidation when a link was null, this lead to the cache invalidating a record instead of the link since we were checking for a truthy value rather than just undefined.
Fixes: https://github.com/FormidableLabs/urql/issues/693
Set of changes

Change link check to !== undefined so we account for null

Thanks for the expedition here! Is there any chance of releasing a patch with this?

@olistic I’ll get to releasing this tomorrow 👍 in the meantime you should be able to test this using CodeSandbox CI which publishes temporary packages per PR

Thank you @kitten, this is a great tip! 🚀

@olistic this has now been released 🌟


[BUG] down arrow blocking alt text for links

Environment
Self-Hosted (Docker)
Version
1.8.0
Describe the problem
On hovering over an item on the dashboard, the alt-text pops up. There is a down arrow symbol blocking part of the text. This occurs on all alt-text popups.

Additional info
No response
Please tick the boxes

[X] You are using a supported version of Dashy (check the first two digits of the version number)
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

Thanks for that, and the clear description + screenshot. That is indeed a bug, and I'll get a fix done and pushed this weekend :)

Fixed in #234 which will be released sometime this evening, in version 1.8.1.
Tooltip arrows are now in the correct place, and the status indicator + opening method no longer overlap. Made a couple other improvements to the tooltip at the same time, so it should now look something like this:

Thanks for raising, and feel free to reach out if you need any more support,
Cheers, Alicia :)


Why one-stage performs better?

Hi, @traveller59 ,Nice work!
One question that I am confused is your recently updated "car.fhd.onestage.config", I notice that it just use one stage RPN instead of the original 2/3 stages. Except that I didn't find any other differences. So why does one-stage RPN even perform better than your original RPNV2? That's confusing,  I cannot figure it out.
Thanks!

This is speculative but in 2D imagery, objects further from the sensor appear much smaller in the image, and so feature pyramids or many differently-strided feature maps (1x, 2x, ..., 16x) can help provide a "multi-scale" representation. This may not be necessary in LIDAR since the 3D geometry is respected: objects further from the Velodyne sensor appear no smaller in the point cloud since there is no perspective projection. (Of course objects far away are still hard to detect since they are much more sparsely populated with LIDAR points).

@jhultman ,Thx, so do you think multi-scale will do no help to improve the accuracy in LIDAR-based 3D detection?

@shuluoshu I'm not sure. The downsampling in the later stages yield an inflated receptive field which could make the feature maps more "context-aware." And if you're training a multiclass model on categories of very different sizes, you will of course encounter scale problems even though LIDAR is natively 3D.

@jhultman when i  python create_data.py create_kitti_info_file -data_path=/home/yzg/research/ljh/second/kittidata
error occurred：
File "/home/yzg/anaconda2/envs/py36/lib/python3.6/ctypes/init.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: /home/yzg/anaconda2/envs/py36/lib/python3.6/site-packages/spconv/libspconv.so: undefined symbol: _ZN3c106Symbol14fromQualStringERKSs

@jhultman when i python create_data.py create_kitti_info_file -data_path=/home/yzg/research/ljh/second/kittidata
error occurred：
File "/home/yzg/anaconda2/envs/py36/lib/python3.6/ctypes/init.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: /home/yzg/anaconda2/envs/py36/lib/python3.6/site-packages/spconv/libspconv.so: undefined symbol: _ZN3c106Symbol14fromQualStringERKSs

this error is probably because the environment changed, the environment you used now is not the environment you use to compile spconv ,remove spconv and rebuild it can solve the problem

@jhultman when i python create_data.py create_kitti_info_file -data_path=/home/yzg/research/ljh/second/kittidata
error occurred：
File "/home/yzg/anaconda2/envs/py36/lib/python3.6/ctypes/init.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: /home/yzg/anaconda2/envs/py36/lib/python3.6/site-packages/spconv/libspconv.so: undefined symbol: _ZN3c106Symbol14fromQualStringERKSs

did u find a solution for this , I'm experiencing the same problem.

@jhultman when i python create_data.py create_kitti_info_file -data_path=/home/yzg/research/ljh/second/kittidata
error occurred：
File "/home/yzg/anaconda2/envs/py36/lib/python3.6/ctypes/init.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: /home/yzg/anaconda2/envs/py36/lib/python3.6/site-packages/spconv/libspconv.so: undefined symbol: _ZN3c106Symbol14fromQualStringERKSs

did u find a solution for this , I'm experiencing the same problem.


: +blogs, lint blogs, date, time, excerpts

Error: YAML Exception reading /home/runner/work/blog/blog/_posts/2024-09-26-HereComesDaJudgePart1TrumpSneakyStrategy.md: (): did not find expected key while parsing a block mapping at line 2 column 1
Error: YAML Exception reading /home/runner/work/blog/blog/_posts/2024-10-08-ShitHereWeGoAgain.md: (): did not find expected key while parsing a block mapping at line 2 column 1
Error: YAML Exception reading /home/runner/work/blog/blog/_posts/2024-10-10-SharpiePrezTrumpAddedDickheadConeUncertainyDorian.md: (): could not find expected ':' while scanning a simple key at line 7 column 1


Unhelpful behavior when git-branchless init not performed.

Description of the bug
As I tried a macos build of my software, I forgot to run git-branchless init on the repo, and I was mistified for a moment as to why git-branchless was not working. Even got a crash:
❯ git-branchless smartlog
The application panicked (crashed).
Message:  A fatal error occurred:
   0: Could not find repository main branch

Location:
   /Users/gpopovitch/.cargo/registry/src/github.com-1ecc6299db9ec823/git-branchless-lib-0.3.12/src/git/repo.rs:404

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SPANTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   0: branchless::git::repo::get_main_branch_oid with self=<Git repository at: "/Users/gpopovitch/github/rippled/.git/">
      at /Users/gpopovitch/.cargo/registry/src/github.com-1ecc6299db9ec823/git-branchless-lib-0.3.12/src/git/repo.rs:412
   1: git_branchless::commands::smartlog::smartlog with effects=<Output fancy=true> git_run_info=<GitRunInfo path_to_git="git" working_directory="/Users/gpopovitch/github/rippled" env=not shown> options=SmartlogOptions { show_hidden_commits: false, only_show_branches: false }
      at /Users/gpopovitch/.cargo/registry/src/github.com-1ecc6299db9ec823/git-branchless-0.3.12/src/commands/smartlog.rs:533

Suggestion:
The main branch "master" could not be found in your repository

After doing a git-branchless init, all issues went away.
BTW I love git-branchless. This is what git should be :-).
Expected behavior
A friendly message, like Looks like you forgot to run "git-branchless init"
Actual behavior
~/github/rippled @22fa1f23 ?5 ❯ git-branchless sl
error: Found argument 'sl' which wasn't expected, or isn't valid in this context

USAGE:
    git-branchless [OPTIONS] <SUBCOMMAND>

For more information try --help
~/github/rippled @22fa1f23 ?5 ❯ git-branchless smartlog
The application panicked (crashed).
Message:  A fatal error occurred:
   0: Could not find repository main branch

Version of rustc
rustc 1.62.1 (e092d0b6b 2022-07-16)
Automated bug report
No response
Version of git-branchless
git-branchless 0.3.12
Version of git
git version 2.35.1

Hi @greg7mdp, thanks for reporting. This situation should definitely be improved. It's worth noting that some git-branchless commands should work even without having run git branchless init if it can infer your main branch, like git move.

When raising this error, we can check to see if init has been run, and, if not, include something in the error message suggesting to run it. We can infer that init has been run by checking to see if the config value branchless.core.mainBranch has a value or not. There might be a small amount of refactoring in config.rs to make that query.

This probably deserves its own issue if it's doable/well-received, but a possibly related feature that I'd love to see is a configuration option to lazily/automatically init the first time it's needed. Perhaps a branchless.core.autoInit or something of the sort. I'd set this globally in a heartbeat and it would save me from quite a number of errors related to not having run init yet!

@zachallaun feel free to open a separate issue. I don't personally plan to work on that in the near future, but I'd accept a PR implementing it.

I'm just starting to use git branchless, it seems excellent.
Could I ask — why the need to run git branchless init in each repo for commands like git sync? Assuming that refs/remotes/origin/HEAD is set, don't we already know the default branch?

Could I ask — why the need to run git branchless init in each repo for commands like git sync?

@max-sixty There are a lot of implicit dependencies in the rest of the code. For example:

We have to guess the main branch name at some point, as it may not be main/master locally, and we might need to explicitly prompt the user/save the result.
To merely know the structure of the commit graph, we have to run the DAG initialization procedure.
Generally speaking, we want to track the history of branch moves and commit rewrites so that they can be undone, which requires initializing the event log database and installing hooks.
If we fall back to on-disk rebases (rather than an in-memory rebase), then it requires that we have installed the post-rewrite hook for correctness reasons.

It's possible that certain commands under certain circumstances can run without explicit initialization, but it would be difficult to write the existing code in a way that can run without assuming that git branchless init has been run.

Assuming that refs/remotes/origin/HEAD is set, don't we already know the default branch?

There might be some metadata I'm not familiar with; how does refs/remotes/origin/HEAD tell us the local main branch? (Also, it assumes that origin is the remote that we want to sync from — for example, in a two-remote GitHub setup, one often has origin and upstream remotes, where upstream is the pull-remote and origin is the push-remote — although it wouldn't be unreasonable to assume that origin is the default remote in many cases).

It's possible that certain commands under certain circumstances can run without explicit initialization, but it would be difficult to write the existing code in a way that can run without assuming that git branchless init has been run.

Yes, this makes sense.
Plausibly the main thing I came here for is actually quite a small feature — update all my local branches based on any remote updates — such that the full operation does require the setup...

There might be some metadata I'm not familiar with; how does refs/remotes/origin/HEAD tell us the local main branch?

IIUC, refs/remotes/origin/HEAD is the default branch (i.e. HEAD) of the default remote (i.e. origin). Running git remote set-head origin -a will update it.

It would be really helpful if there was a way to completely disable git-branchless if init hasn't been run. I'm trying to get a shell working with Crane/Nix and as part of that some git repos are being pulled in the background, which git-branchless is choking on.

@tshakah not sure I understand; why is git-branchless invoked if it hasn't been initialized and you're not invoking it (presumably if the repos are in the background)?


Title: Flip a coin

Is your feature request related to a problem? Please describe.
Can be a great addition to js project
Describe the solution you'd like.
3D Transformations: Using CSS transform and perspective to create a realistic 3D flip effect.
Animations: Using CSS transitions to smoothly animate the coin flip.
Event Handling: Using JavaScript to handle user interactions and control the coin flip logic.
Describe alternatives you've considered.
We need to enhance our "Flip a Coin" project by adding a 3D flip effect. The current implementation should be modified to use CSS keyframe animations for a smoother and more controlled flip. This task involves HTML, CSS, and JavaScript changes.
Add any other context or screenshots about the feature request here.
No response

pls assign me these under GSSOC'24


Make backbone play nicer with NoSQL REST APIs

Backbone currently doesn't play nicely with NoSQL REST APIs, like MongoDB, because it rely's substantially on a specific format for the API.
This can all be overridden, but it results in a lot of boilerplate code. For MongoDB, you would use idAttribute to set something like the book name to as the main identifier, so the API would look like:
GET  /books/ .... collection.fetch();
POST /books/ .... collection.create();
GET  /books/:name ... model.fetch();
PUT  /books/:name ... model.save();
DEL  /books/:name ... model.destroy();

But since MongoDB uses a document attribute as the unique key, backbone will erroneously assume that isNew is false when trying to create a new entry on save:

If the model isNew, the save will be a "create" (HTTP POST), if the model already exists on the server, the save will be an "update" (HTTP PUT).

One solution is to pass in the request method (ie. post) manually on .save requests. But then the burden is on the coder to add extra boilerplate to figure out when to CREATE or UPDATE in any given view.
The easier solution to this is to override isNew under Backbone.Model with something that plays nicer with MongoDB. The problem creating all of this boilerplate is written in the comments for isNew:

A model is new if it has never been saved to the server, and lacks an id.

NoSQL databases like MongoDB don't rely on ids like RDMS solutions do. Thus it confuses a new document as an old one and issues a PUT request instead of POST, which requires either boilerplate on the .save calls, or overriding isNew somehow.
Backbone already is pretty unopinionated, but this is something that just feels a little to hacky to be considered clean. It should be able to support NoSQL better for this particular scenario.
My suggestion is to update the isNew method to return false if the model has not been synchronized with the server. Implicitly this would mean that the model is new. Or if backwards compatibility is an issue, have an option, such as emulateNoSQL, that will properly set up the API and isNew to play nicely with NoSQL database APIs.

im always using idAttribute: '_id' and never had an issue since, I don't really get the problem you are facing.

What @elgubenis said.

@elgubenis The '_id' attribute would need to be passed into the API calls. This works fine if it's just your app and not yours users that will be making API calls. But if you want to open up your API to users, this would make the API harder to use, because API calls would like ugly like this:
GET  /books/507f1f77bcf86cd799439011 ... model.fetch();
PUT  /books/507f1f77bcf86cd799439011 ... model.save();
DEL  /books/507f1f77bcf86cd799439011 ... model.destroy();

when, supposing each book would have a unique identifier such as a name, should ideally work like this:
GET  /books/Alice ... model.fetch();
PUT  /books/Alice ... model.save();
DEL  /books/Alice ... model.destroy();

@jridgewell This wasn't a question, this was a suggestion for Backbone to be less opinionated about how the API is structured for NoSQL APIs. You didn't even let me respond before closing this issue.

@Risto-Stevcev I think @jridgewell closed your question becouse backbone default using REST but if you want use GraphQL just rewrite Backbone.sync and you ready to go with NoSQL solution.
Simple version of Backbone.sync
Backbone.sync = function(method, model, options) {
  options || (options = {});

  switch (method) {
    case 'create':
    break;

    case 'update':
    break;

    case 'delete':
    break;

    case 'read':
    break;
  }
};

PS: I have done this for websokets its simple but powerfull.

@mr47 My suggestion (not a question) wasn't about how to not use REST, it was about how Backbone is relying headily on :id to do API requests. In particular, it doesn't work elegantly if the idAttribute is set to something else when doing .save. I wasn't asking a question, and I'm not looking to use Object Id, and I mentioned a very good reason why. My original post explains the issue.
I don't see the why this problem doesn't deserve consideration. AngularJS is agnostic about how the REST API is structured, and Backbone is almost agnostic by allowing you to set an idAttribute. I mentioned a problem with that approach by providing an example where it breaks down.

@Risto-Stevcev how i said before. Rethink you arhitecture. Id in DB world is unique identifier name - not.
If you want to do someting with it change the sync method, if not use @elgubenis solution.
There is no other options. If you try to find a way to do this - Rethink you arhitecture.

@mr47

Id in DB world is unique identifier name - not.

Actually anything that is a unique key in the DB is a unique identifier. And if that identifier makes the API easier to use than an id, then it should be used instead of an id. Why eat up the user's API request limit (and add additional load to the server), by having the user send an additional request to figure out an id for something, when they don't have to?
There are many real world, popular APIs that either do not use an id number as a unique identifier, or have an REST API that looks completely different than the one Backbone forces you into.
The answer shouldn't be "you need to rethink your architecture". Sometimes a different architecture makes sense, and sometimes the architecture isn't up to you. Backbone should be flexible enough to work with any kind of API structure without internally changing the REST API that Backbone relies on. To say that they all got it wrong because the Backbone REST API is the gold standard is frankly a little arrogant, elitist, and impractical.

This one isn't going to change, Backbone sync is designed for a REST architecture because it's absurdly common. If you want to use a an arbitrary identifier (name, in your case), just override isNew.

You work for Google right? tell me how you would write a model in Backbone for this Google+ REST API Endpoint:
listByActivity 	GET  /activities/activityId/people/collection 	List all of the people in the specified collection for a particular activity.
Backbone's expected REST API only supports one identifier per Model. This endpoint has two identifiers, activityId and collection. In AngularJS this is simple to do and in Backbone it's not and requires additional boilerplate. Almost every REST API you come across has at least one endpoint which is looking for two or more identifiers. Don't get me wrong, angular has it's own issues, but I think this makes my point clear.

That's a collection with an #url like: return `/activities/${this.activityId}/people/{$this.id}`;, which each person in this collection having their own url like /activities/.../people/.../${this.id}.

?. return '/activities/${this.activityId}/people/{$this.id}'; is not valid syntax in backbone. You can do something like that in angular:
var CreditCard = $resource('/user/:userId/card/:cardId',
 {userId:123, cardId:'@id'}, {
  charge: {method:'POST', params:{charge:true}}
 });

Backbone's expected REST API for collections looks like this (unless you want to add a considerable amount of additional wiring because your API doesn't match):
GET  /books/ .... collection.fetch();
POST /books/ .... collection.create();
GET  /books/1 ... model.fetch();
PUT  /books/1 ... model.save();
DEL  /books/1 ... model.destroy();

That was an ES6 template string...
var Collection = Backbone.Collection.extend({
  url() {
    return `/activities/${this.activityId}/people/{$this.id}`;
  }
});
var c = new Collection();
c.id = 'test';
c.activityId = '123';

var m = Collection.create({ ... });
m.url(); // => /activities/123/people/test/1

Ok, so you could do that and transpile ES6 using babel, or return '/activities/' + this.activityId + ... in ES5, but it still doesn't neatly match the backbone API structure if you look at the table. Why did you have collection as the main id instead of activityId? When in reality both for the unique identifier for a resource? Both are required to form a unique resource for a model, but backbone only allows one id for that. It's really not that uncommon to have two or more identifiers in an endpoint forming a unique resource.
And what about Moments? possibly a better example. Here's the CRUD for that:
insert 	POST  /people/userId/moments/collection 	Record a moment representing a user's action such as making a purchase or commenting on a blog. Writing moments involves specifying the type, which is a moment type, and posting that type of moment's required fields.
list 	GET  /people/userId/moments/collection 	List all of the moments that your app has written for the authenticated user.
remove 	DELETE  /moments/id 	Delete a moment that your app has written for the authenticated user.

Insert and list fits the backbone structure. But remove (DELETE) should be  /people/userId/moments/collection/momentId to match the backbone API structure, but it's /moments/id instead.
You might say it's close enough to fitting and that you could just get DELETE to fit that url structure. But what if you want to access a larger API, and the issue pops up constantly?  The GitHub, Wikimedia and Flickr APIs that I mentioned earlier don't fit anywhere near as neatly, and those are very mainstream APIs. Should the coder have to hack all of their backbone code to get them to fit its structure because it has a strong opinion about how APIs should look?
Like I mentioned initially, I'm not arguing that you can't find a way to make any API work with backbone, because you can override any of the methods. What I'm arguing is that it adds a bunch of extra boilerplate, and it should instead play nicer with any kind of API structure, because of reasons mentioned. Any extra boilerplate to backbone should only be there for specific use cases that aren't common in all applications.

Don't fight it, accept and learn. With the url method, idAttribute and overriding the sync method you have plenty of options to connect with all these rest-'flavors'. Never heard of such issues, because Backbone offers so many different ways to use rest backends.