Bollinger trade

Looks like strategy Bollinger does NOT trading, at least there no output while manual/paper. it is ok while SIM is ruining.
When parameter manual/paper, looks like the no watch on market, no any output console each on period(1m, 5m, etc).

this.option('min_periods', 'min. number of history periods', Number, 52)

this line is missing in Bollinger strategy.

I cant see where this strategy uses the parameter.
i agree that its one of the essential parameters of zenbot, but why should the strategy claim a usage of it, if it does not?
With min_periods you p.e. control the size of your preroll dataset. so if bolliger size is on default (which is 20) and you dont have a min_period of 20 you will actually need 20 live periods before bollinger can be calculated.
If you have set it to 20 the first live period will be the first which can be calculated.
But thats not a problem of the strategy itself, its more a missing "default" parameter of zenbot, so a misconfiguration in that case.
if another strategy also uses min_periods (for some reason) you have a proper default value, and everything works.

Dear issue reporter,
We have slightly changed our github issue policy and would now kindly request folks that have questions that they ask them in our zenbot subreddit.
You can find it here: https://reddit.com/r/zenbot
This issue will be closed, but if you disagree with your ticket being marked as a question feel free to leave a comment defending your case.
Thanks for contributing time and effort!
Greetings,
🤖


Update tailwind.config.ts

adding custom fonts

👷 Deploy Preview for famous-marshmallow-cfbd61 processing.

Name
Link

🔨 Latest commit
807ba6d51115091a7bd003111bbbae40a82b5f57

🔍 Latest deploy log
https://app.netlify.com/sites/famous-marshmallow-cfbd61/deploys/64dadf651b974b000885b90a


Fixes AddPackage STA thread bug #51

should I apply the same pattern for the other Run Commands?

Yes


Clang

Coverage decreased (-65.1%) to 0.0% when pulling cb9762a9fa134dc322e53e4677c8b66f310a3de1 on Clang into 4a5fe7a6a47b7883c3f35870ef24accb42716640 on master.


export default is not a function

Bug report

What is the current behavior?
I have a legacy project written in CommonJS, so I had to bundle and transpile this project in combination with Babel. Almost everything works fine, except a few import statements from the package '@turf'.
My project consists of .js (CommonJS) files and .mjs files (ECMAscript 6). This interoperability works good for the most part, but when I import import center from '@turf/center'; in one of my .mjs files, I get this error:
center_ is not a function
When I look at the bundled code I see this:
// EXTERNAL MODULE: external "@turf/center"
var center_ = __webpack_require__("@turf/center");

But when I console.log the center_ variable, I see that it exports a default function. But in the code it's trying to access this function like so:
center_(boundingBoxPolygon);
Which does not work, and raises the "center_ is not a function" error.
If the current behavior is a bug, please provide the steps to reproduce.

Create a project with CommonJS files
Add .mjs (ECMAscript) files to that project
import an ECMAscript library into an .mjs file
Bundle and transpile the code with babel
Run the bundle

What is the expected behavior?
That the library gets imported and automatically uses the default export. Instead of trying to invoke the returned object.

Other relevant information:
webpack version:  ^5.74.0
Node.js version: v20.11.1
Operating System: macOS
Additional tools: None
Webpack config file
const path = require('path');
const nodeExternals = require('webpack-node-externals');

module.exports = {
	target: 'node',
	externals: [nodeExternals()],
	devtool: 'source-map',
	entry: {
		'server': './src/server/index.js',
		'server.prod': './server.prod.js',
	},
	output: {
		path: path.resolve(process.cwd(), 'dist', 'server'), // Output directory
		filename: '[name].js',
		libraryTarget: 'commonjs2',
	},
	optimization: {
		moduleIds: 'named',
		minimize: false,
	},
	module: {
		rules: [
			{
				test: /\.(mjs|js)$/,
				use: {
					loader: 'babel-loader',
					options: {
						presets: [['@babel/preset-env'], ['@babel/preset-react']],
						plugins: [['@babel/transform-runtime']],
					},
				},
				exclude: /node_modules/,
			},
		],
	},
	resolve: {
		extensions: ['.mjs', '.js', '...'],
	},
};

@turf/center/index.d.ts
`import { BBox, Id, AllGeoJSON, Feature, Point, Properties } from "@turf/helpers";
/**
 * Takes a {@link Feature} or {@link FeatureCollection} and returns the absolute center point of all features.
 *
 * @name center
 * @param {GeoJSON} geojson GeoJSON to be centered
 * @param {Object} [options={}] Optional parameters
 * @param {Object} [options.properties={}] Translate GeoJSON Properties to Point
 * @param {Object} [options.bbox={}] Translate GeoJSON BBox to Point
 * @param {Object} [options.id={}] Translate GeoJSON Id to Point
 * @returns {Feature<Point>} a Point feature at the absolute center point of all input features
 * @example
 * var features = turf.points([
 *   [-97.522259, 35.4691],
 *   [-97.502754, 35.463455],
 *   [-97.508269, 35.463245]
 * ]);
 *
 * var center = turf.center(features);
 *
 * //addToMap
 * var addToMap = [features, center]
 * center.properties['marker-size'] = 'large';
 * center.properties['marker-color'] = '#000';
 */
declare function center<P = Properties>(geojson: AllGeoJSON, options?: {
    properties?: P;
    bbox?: BBox;
    id?: Id;
}): Feature<Point, P>;
export default center;

Probably related to:
https://github.com/webpack/webpack/issues/7973

Please use this option to solve your problem - https://github.com/liady/webpack-node-externals?tab=readme-ov-file#optionsimporttype-commonjs, and use the right type for @turf/center, I can provide more help if you provide reproducible test repo


i have a problem

i'm sorry because i ask this, but i need to.
i'm new with nodejs.
i have followed your guide, setting up test folder,  used it but i got a problem.
the problem is always same everytime i tried to run it at CentOS  7, CentOS 6, and also ubuntu.
i have tried to switch my node version, at last i switched it to 0.12 and it gave me error.
/home/lemkova/steam/node_modules/dota2/test/index.js:178
bot.logOn(logOnDetails);
^
TypeError: undefined is not a function
at Object. (/home/lemkova/steam/node_modules/dota2/test/index.js:178:5)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
so, any idea what i have to do?
sorry for my english if it was bad.

I think it maybe a node version problem. I am trying to roll back my node to v0.10.x. I will update information about it when completed.

You should read this

'Note: only Node.js v0.12 and io.js v2.x are supported.'
so, should i use Node v0.12 and io.js v2.x ?

okay, i have tried to use node version 0.10.x but gave me error
node_module_register undefined
and i also have searched on google and found out that
The node_module_register internal API was added to Node.js in v0.11.11
but when i tried to use v0.11.11 or above gave me same error
bot.logOn(logOnDetails);
^
TypeError: undefined is not a function

Had the same problem, it is because node-steam has released a new version 1.0.0 which changes the logOn method, you have to change the package.json so the node-steam is below 1.0.0.

@graceda @trainingday01 the example file in node-dota2 is out-dated. You can refer to the node-steam login sample file to login to steam network

thanks for your help guys. it worked


Error when function return function

first, i'm so sorry, my english is poor,
var me = { name:"zhi"};  me.getName = function(){    var that = this;     return function(){         console.log(that.name);    };  }   // **Missing semicolon. console log TypeError; but,jshint not warning**  (me.getName())();

JSHint doesn't know if you want to invoke the function (IIFE) or if you meant to have two distinct statements.

@nicolo-ribaudo is on the right track, although the runtime error is actually
due to the invocation of the argument (not the invocation of the return value):
var a = function() {}
(a());

It's tempting to consider solutions that allow JSHint to determine the value of
variables at runtime, but I think that the reduced test case makes that feature
seem much simpler than it really is.
Regardless, the underlying issue is that there is a line break that looks
like the end of a statement, but which actually has no effect on program
execution. A few months ago, I noticed that W014 seems to be implemented for
exactly this purpose, but its current message ("Bad line breaking before
'{a}'.") is too vague to be sure. I've submitted gh-3030 to address that. If
that lands, then we can discuss issuing that warning here.


the possibility of i18n

well, a text which can't be translated into other languages is not a good text.

Thanks for that!


Add API documentation to our CI

Just a few comments to document our own Dagger functions.

Nice nice, thanks!


[cxx-interop] Prevent "header not found" errors on Linux when tbb is not installed

libstdc++9 has a dependency on the tbb package, which is not bundled with Ubuntu as of 20.04: <execution> includes <pstl/parallel_backend_tbb.h> which tries to include <tbb/blocked_range.h>.
This results in compiler errors when someone is trying to use the C++ stdlib from Swift:
/usr/include/c++/9/pstl/parallel_backend_tbb.h:19:10: error: 'tbb/blocked_range.h' file not found

Let's only include <execution> if tbb headers are available.
rdar://102151194

this is really hacky but sure xD

Yeah, I think the fact that the stdlib depends on a package that might not be installed is quite terrible, I couldn't come up with a better way to work around it.


feat: 2.3.1

Switch master to 2.3.1
Merge after https://github.com/asyncapi/jasyncapi-idea-plugin/pull/38

During ./gradlew :buildPlugin:
> Task :initializeIntelliJPlugin
[gradle-intellij-plugin :initializeIntelliJPlugin] Gradle IntelliJ Plugin is outdated: 1.15.0. Update `org.jetbrains.intellij` to: 1.16.1

> Task :patchPluginXml

> Task :verifyPluginConfiguration
[gradle-intellij-plugin :verifyPluginConfiguration] The following plugin configuration issues were found:
- The 'since-build' property is lower than the target IntelliJ Platform major version: 223 < 231.
- The dependency on the Kotlin Standard Library (stdlib) is automatically added when using the Gradle Kotlin plugin and may conflict with the version provided with the IntelliJ Platform, see: https://jb.gg/intellij-platform-kotlin-stdlib
See: https://jb.gg/intellij-platform-versions

> Task :processResources

> Task :compileKotlin
w: file:///<dir>/jasyncapi-idea-plugin/src/main/kotlin/com/asyncapi/plugin/idea/extensions/inspection/AsyncAPIJsonSchemaInspection.kt:32:31 Parameter 'isOnTheFly' is never used
w: file:///<dir>/jasyncapi-idea-plugin/src/main/kotlin/com/asyncapi/plugin/idea/extensions/inspection/AsyncAPIYamlSchemaInspection.kt:33:31 Parameter 'isOnTheFly' is never used

Also, three warnings:
> Task :buildSearchableOptions
CompileCommand: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend bool exclude = true
2023-12-06 13:10:05,477 [   3433]   WARN - #c.i.o.v.n.p.l.VfsLog - VFS Log version differs from the implementation version: log null vs implementation -43
2023-12-06 13:10:05,601 [   3557]   WARN - #c.j.p.PluginClassPathRuntimeCustomizer - There was more than one class loaded in Projector Plugin classloader - this is likely a bug!
2023-12-06 13:10:09,913 [   7869]   WARN - #c.i.u.j.JBCefApp - JCEF is manually disabled in headless env via 'ide.browser.jcef.headless.enabled=false'


refactor: simplify memory trait design

This PR replaced Memory trait's Register generic type by associated type, which simplifed the fn parameter and removed some dynamic dispatches, for example:
https://github.com/nervosnetwork/ckb-vm/blob/3a4484b0472193c29329560c0d461096b4352e17/src/memory/mod.rs#L64
We can move fn set_dirty and check_permission to Memory trait as a default implementation after this PR.

rebased with develop to resolve conflict, please review again, thanks


Relative paths does not load in some scenarios

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[x] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the [development checklist][dev-checklist]
[ ] The code compiles without warnings (code quality chek)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

Codecov Report

Merging #634 (329a74b) into dev (ea9e6ed) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##              dev     #634   +/-   ##
=======================================
  Coverage   80.12%   80.13%
=======================================
  Files         111      111
  Lines        2903     2904    +1
  Branches      308      308
=======================================
+ Hits         2326     2327    +1
  Misses        450      450
  Partials      127      127

Flag
Coverage Δ

unittests
80.13% <100.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...n.AppModel/Internal/Compiler/SyntaxTreeResolver.cs
100.00% <100.00%> (ø)

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 ea9e6ed...329a74b. Read the comment docs.


Firewall

Add firewall

@OsamaAbuOshaibah  You need to fix naming conventions.
Used naming conventions in Python and on this project:

Variables and Functions: Use lowercase letters and underscores to separate words. For example, my_variable or my_function().
Constants: Use all uppercase letters and underscores to separate words. For example, MY_CONSTANT.
Classes: Use CamelCase (capitalizing the first letter of each word) to name classes. For example, MyClass.
Modules: Use lowercase letters and underscores to separate words. For example, my_module.
Private variables and functions: Use a single underscore prefix before the name. For example, _my_private_variable or
_my_private_function.
Protected variables and functions: Use a double underscore prefix before the name. For example, __my_protected_variable or __my_protected_function.

merge the firewall branch to IPv18/NOCD


error opening whatsapp using search

Microsoft PowerToys version
"0.59.0"
Running as admin

[ ] Yes

Area(s) with issue?
General
Steps to reproduce
when i perss alt+space bar the master search opens and i starts to navigate to whatsapp its showing can't start whatsapp UWP.
✔ Expected Behavior
whatsApp is not opening and showing this error
❌ Actual Behavior
Version: <IP_ADDRESS>
OS Version: Microsoft Windows NT 10.0.22000.0
IntPtr Length: 8
x64: True
Date: 30-08-2022 10:13:49 AM
Exception:
System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'shell:AppsFolder\5319275A.WhatsAppDesktop_cv1g1gvanyjgm!WhatsAppDesktop' with working directory 'C:\Program Files\PowerToys'. The system cannot find the file specified.
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at Microsoft.Plugin.Program.Programs.UWPApplication.<>c__DisplayClass61_0.b__0(ActionContext _)
at PowerLauncher.ViewModel.ResultViewModel.<>c__DisplayClass32_0.b__0(Object _)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Other Software
No response

Hello and thanks for your message. First; can you update to the latest version? Second; a new version is to be expected within a week or so. Let us know if updating improved anything. /needinfo


Implement word-wrap in TextArea

Especially of LLM responses. May be able to prompt it with max width, instead.

@mentatbot TextAreas do not currently support word-wrapping. I want you to implement word-wrapping so that if a word in a line would be out of the TextArea's visible area then that line wraps onto the next visible line. Ensure that cursor movement with
the arrow keys, etc. still works correctly. Pay attention to TextArea and to TextEditBuffer.


Add support for menu bar actions

A kitematic menubar is now present within the OSX menu, allowing a user to close the kitematic window and still have access to the containers created.
Menu Actions are:

Settings (main container settings window)
Start/Stop (depending on the current status)
Restart

ps: the menu icon should be updated to a black & white color.
Signed-off-by: FrenchBen<EMAIL_ADDRESS>

:100: . Make sure the icon supports low opacity. El Capitan will have an even more transparent menu bar during certain states.

Haha nice. This is pretty cool!

@Elesant Do you think you could provide an updated icon for this plz? :D

Put on the back-burner for now


Adjusting translation as discussed

Adjusting as stated in https://github.com/reactjs/pt-BR.reactjs.org/pull/10#discussion_r255284564

Looking good!
I'll wait for a consensus among the members about whether we should translate internal links or not.

@fjoshuajr re link translation I created https://github.com/reactjs/pt-BR.reactjs.org/issues/42. I guess we're good to go with this one


We already have top and bottom.

omg lol

It can be simplified with generalize but I was so lazy.

It may not yet be possible to use generalize for this purpose, because of the need to "re-fold" a decoded function type into the universe.


Another way to find emails

Link to the package repo + https://www.nymeria.io/blog/how-to-manually-find-email-addresses-for-github-users so that if an author has committed to that repo, we use their commits to find their email address.
Related to #55

in hindsight we probably should only link to the package repo DESCRIPTION file
as the other method generates a few wrong email addresses.

so e.g. for https://github.com/ropensci/magick one would link https://github.com/ropensci/magick/blob/master/DESCRIPTION for author1 and author-others as often email addresses are stored in there so the table user would only need some copy-pasting.


VisualStudio Template - Added ignore for Paket dependency manager

Added ignore as recomended in http://fsprojects.github.io/Paket/getting-started.html

That link explains it all nicely. Thanks!


Can't connect to gateway

It just isn't working.
Maybe i forgot to configure something?

I'm having the same problem...

Same here, I have no idea what to do to fix this.


virtio-gpu-gl-device not working with new v4.1.15 release

Describe the issue
Since the new release 4.1.15 the virtio-gpu-gl-device prevents all VMs from booting. Happens in OpenGL and METAL setting. Looks like the display doesn't get initialized.
It works with the virtio-gpu-gl-pci setting.
Configuration

UTM Version: 4.1.5
macOS Version: 13.1
Mac Chip: M1 Pro

Has virtio-gpu-gl-device ever worked?

As far as I remember yes with 4.0.9. I did a lot of testing and selected every option at least once with Windows/Linux.
It is not an issue thats problematic, since I always use the gpu-pci one.

Maybe it’s a change in QEMU 7.2 because you’re not supposed to use that (it’s an internal device). I’ll actually remove this from the list in the future.

OK I'll close this.

According to my backup the Windows 7 VM used the virtio-ramfb-gl device. I will try to roll back to 4.0.9 and see if it'll boot.


KAFKA-9806: __consumer_offsets is not created under insufficient ACLs

Fixing KAFKA-9806 bug: the __consumer_offsets topic gets created when a consumer try to consume on a new cluster for the first time. If there aren't sufficient cluster-level ACLs, FindCoordinator request succeed, anche __consumer_offsets gets created in zk, but subsequent UpdateMetadata and LeaderAndIsr requests fail, putting the offsets topic in a bad state. When this happens, it is not possible to consume even after updating ACLs (5a).
This PR aims to introduce a new check before creating the __consumer_offsets topic, so that it does not get created if there aren't sufficient ACLs.
This change was tested by following the steps reported in KAFKA-9806, and verifying that it is possible to consume after the code change (5b). Eg:

Create a topic
Set insufficient cluster level ACLs. Which precise ACL does not matter as long as ClusterAction initiated by administrative messages between brokers is denied.
Consume on the topic -> this request will fail with unauthorized errors on the client side as well
Remove ACLs or set ACLs to allow inter-broker communication
5a. (Before code change) Produce/consume on topic. Consumer won't be able to read any data.
5b. (After code change) Produce/consume on topic. Consumer are able to read data.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Thanks for finding this issue.
Unfortunately, you certainly can't add a new permission requirement to an existing RPC without breaking compatibility.  So the current solution in the PR will not work.  However, you should be able to have the broker create the topic using its own principal rather than the caller's.  Basically the equivalent of a doAs block (I forget how we do this exactly, but we do have some way of doing it).


ANR

If copying the same file to same destionation with
@Override
            public void onConflict(@NotNull DocumentFile destinationFile, @NotNull FileCallback.FileConflictAction action) {
                action.confirmResolution(ConflictResolution.REPLACE);
            }

the app tombstones
Works only the first time...

Can you put the stacktrace here?

I'll put the commit in this PR https://github.com/fm-sys/snapdrop-android/pull/76
Its not a stacktrace, it just freezes and then tombstones...

Did you call moveFileTo() from the main thread? If you look into the source code, it should be invoked from the background thread. moveFileTo() is annotated by @WorkerThread.

intresting, yea i did, where should i call it, via Worker?

It is up to your app architecture. You can use java.lang.Thread, RxJava, or ExecutorService.

Its strange, no i removed the onconflict, the frist 5 files (same file) worked just fine, but then i get CANNOT_CREATE_FILE_IN_TARGET
https://github.com/fm-sys/snapdrop-android/pull/76

Can you jump into this code? Check if it is called via breakpoint.

If it is called, this means the Android system cannot delete the existed file in the destination.

no i didnt add onConflict, but it might be solved now that i added ExecutorService, have to test a bit more, sorry for being annoying, i didnt get that i had to use async...

wait a sec, it still happens sometimes, i'll add some breakpoints

The breakpoints somehow dont work, if i rename the file it works again... 🤷

Can you breakpoint all lines that contain CANNOT_CREATE_FILE_IN_TARGET in DocumentFileUtils? Let's see which line is triggered.

its somehow compiled, i cant...

Put your breakpoint here. Let's see whether it is triggered:

nope

What about this line? Let's test it with breakpoint.

Thats only called in onCompleted so that cant be it, i think the breakpoints are jusrt not working in the library..

Yes, I know. But can you put a breakpoint there?

 You need to add it to make the breakpoint works.

oh no it does now i was just running the app instead of debug
its this one
private fun DocumentFile.createTargetFile(
    context: Context,
    targetFolder: DocumentFile,
    newFilenameInTargetPath: String?,
    callback: FileCallback
): DocumentFile? {
    val targetFile = targetFolder.makeFile(context, newFilenameInTargetPath ?: name.orEmpty(), type)
    if (targetFile == null) {
        callback.onFailed(FileCallback.ErrorCode.CANNOT_CREATE_FILE_IN_TARGET)
    }
    return targetFile
}

I've found the root cause. The fixes will be on v0.5.3.

Awesome, looking forward to Test it :)

Can you try 0.5.3-SNAPSHOT version?

Still persisting  unfortunately , i'll debug again if its the same breakpoint

investigated further
this is the issue
if (isRawFile) {
        // RawDocumentFile does not avoid duplicate file name, but TreeDocumentFile does.
        return DocumentFile.fromFile(toRawFile()?.makeFile(cleanName, mimeType) ?: return null)
    }

the issue is further down at isRawFile -> File(uri.path ?: return null)

Can you refresh your dependency? I've released the snapshot again. Follow this instruction to refresh snapshots: https://stackoverflow.com/a/62085606/3922207

i dont know is this the latest?
It doesnt work as of now

It seems to have something to do with the filename, as changing it makes it work, i dont know, also i'm on Android 11, maybe the persissions have something to do with it also? If you like can get the fork and test it yourself if that makes it easier https://github.com/ueen/snapdrop-android/tree/patch-7
Steps to reproduce

install debug app
open https://snapdrop.net/
send files (small pictures, the same repeatedly), the first few should work
restart or reinstall app and try to send the same files, sometimes it should stop working (you see that in the log and that the snackbar isnt displayed after saving the file in the app)

Hope this was comprehensible, i can also test if theres a new snapshot, but maybe you can figure out the issue this way more easily :)

Or maybe this is an issue of multithreading? I read somewhere only one thread can access the filesystem at a time, you can look at the implementation, I just execute on ExecutorService executor = Executors.newSingleThreadExecutor();

Found the root cause. You did not ask users to grant URI permissions for read & write access. Read: https://github.com/anggrayudi/SimpleStorage#request-storage-access

To make it work on Android 10+ without requesting URI permissions, you have to use MediaFile like this:

Update the snapshot to try this new moveFileTo().

Thanks, I'll try, this just makes no sense to me, when you need permissions and when you do not... 🙈

Somehow it really hard to update the snapshot for me, meaning i cant do it, i was just wondering, cant you somehow to this internally in createDownload?
In onCompleted if have this now (looks better in kotlin i'm sure)
Uri uri = null;

                if (file instanceof MediaFile) {
                    MediaFile mediaFile = (MediaFile) file;
                    uri = mediaFile.getUri();
                } else if (file instanceof DocumentFile) {
                    DocumentFile documentFile = (DocumentFile) file;
                    uri = DocumentFileUtils.isRawFile(documentFile) ?

What is your expectation?

To use only one moveFileTo, if possible

To use only one moveFileTo

It's not possible, because the way we handle DocumentFile and MediaFile are very different.

    public void copyTempToDownloads(JavaScriptInterface.FileHeader fileHeader) {

        executor.execute(() -> {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                MediaFile newFile = MediaStoreCompat.createDownload(this, new FileDescription(fileHeader.name,"",fileHeader.mime), true);
                if (newFile != null) {
                    DocumentFileUtils.moveFileTo(DocumentFile.fromFile(fileHeader.path), this, newFile, fileCallback(fileHeader));
                }
            } else {
                DocumentFileUtils.moveFileTo(DocumentFile.fromFile(fileHeader.path), this, Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileHeader.name, fileCallback(fileHeader));
            }

        });

    }

    private FileCallback fileCallback(JavaScriptInterface.FileHeader fileHeader) {
        return new FileCallback() {
            @Override
            public void onFailed(@NotNull FileCallback.ErrorCode errorCode) {
                Log.d("SimpleStorage", errorCode.toString());
                //UI Thread
                handler.post(() -> Toast.makeText(MainActivity.this, errorCode.toString(), Toast.LENGTH_SHORT).show());
            }

            @Override
            public void onCompleted(@NotNull Object file) {
                Uri uri = null;

                if (file instanceof MediaFile) {
                    MediaFile mediaFile = (MediaFile) file;
                    uri = mediaFile.getUri();
                } else if (file instanceof DocumentFile) {
                    DocumentFile documentFile = (DocumentFile) file;
                    uri = DocumentFileUtils.isRawFile(documentFile) ? FileProvider.getUriForFile(MainActivity.this, getApplicationContext().getPackageName() + ".provider", DocumentFileUtils.toRawFile(documentFile)) : documentFile.getUri();
                }

                Uri finalUri = uri;
                //UI Thread
                handler.post(() -> fileDownloadedIntent(finalUri, fileHeader));

            }
        };
    }

still crashes on newFile with
    android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: files._data (code 2067 SQLITE_CONSTRAINT_UNIQUE[2067])
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:178)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
        at android.content.ContentProviderProxy.insert(ContentProviderNative.java:549)
        at android.content.ContentResolver.insert(ContentResolver.java:2152)
        at android.content.ContentResolver.insert(ContentResolver.java:2114)
        at com.anggrayudi.storage.media.MediaStoreCompat.createMedia(MediaStoreCompat.kt:128)
        at com.anggrayudi.storage.media.MediaStoreCompat.createDownload(MediaStoreCompat.kt:36)
        at com.fmsys.snapdrop.MainActivity.lambda$copyTempToDownloads$3$MainActivity(MainActivity.java:528)
        at com.fmsys.snapdrop.-$$Lambda$MainActivity$KJqT4INiI293_-FC4fqu2v9dCdE.run(Unknown Source:4)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

renaming them works, its not about the permissions, its something else, i also tried to unistall an reinstall the app

actually its just specific filenames that dont work

I found something, this only happens if i send/save the file, delete it in the filemanager app (Samsung default) and then send another file with the same filename!!

Did you encounter anything like this before?

Can you reproduce it? https://github.com/fm-sys/snapdrop-android/pull/76

send file from pc https://snapdrop.net/
save in app
go to filemanager
delete file in downloads folder
open app and send file again

apk https://github.com/fm-sys/snapdrop-android/suites/2613901505/artifacts/57251951

Can you reproduce it? fm-sys/snapdrop-android#76

send file from pc https://snapdrop.net/
save in app
go to filemanager
delete file in downloads folder
open app and send file again

apk https://github.com/fm-sys/snapdrop-android/suites/2613901505/artifacts/57251951

Did not happened after I add this check into MediaStoreCompat:
if (existingMedia?.openInputStream()?.use { it.available() == 0 } == true) {

Update your snapshots again. BTW, what's your OS version?

Tested on Android 10:

Redmi Note 7
Samsung A21

Have Samsung A40 Android 11

Please test on different devices with Android 11, e.g. Xiaomi or Oppo.

Have Samsung A40 Android 11

have no other devices, only samsung, but i guess the A40 is a popular device so if it doesnt work, its no real use, i'll test with ne new snapshot again, wait a sec

So i can confirm it works finally! great work, thank you very much, the handling storage is really no fun, did you get a chance to look at the other issue with php?

DocumentFileUtils.moveFileTo(DocumentFile.fromFile(fileHeader.getTempFile()), this, Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileDescription, fileCallback(fileHeader));
Has the send-delete-send issue with CANNOT_CREATE_FILE_IN_TARGET

Can you add this magic line if (existingMedia?.openInputStream()?.use { it.available() == 0 } == true) { to the regular moveFileTo without MediaFile but with fileDescription as well (see above)?

What is your purpose by adding if (existingMedia?.openInputStream()?.use { it.available() == 0 } == true) {?

I think the problem is in FileExt
return try {
        File(parent, autoIncrementFileName(fullFileName)).let { if (it.createNewFile()) it else null }
    } catch (e: IOException) {
        null
    }

createNewFile - false if the named file already exists https://developer.android.com/reference/java/io/File#createNewFile()
The file somehow presists after it is deleted in the filemanager (maybe as an empty reference or something)
So a solution would be to rename like image-1.jpg or check (if possible) if this is a empty reference

https://stackoverflow.com/questions/53048049/file-createnewfile-always-returns-false-even-if-the-file-is-newly-created

Added this check on the latest snapshot, please try.

Tested on Redmi Note 4 (Android 7). Worked.

Still no luck on Android 11, can you maybe make isFile and length vars so i can debug with breakpoints?

it length is 0 and isFile is also false, createNewFile is also false, this makes no sense...

The difference is in createNewFile, if i rename the file and send again it returns true, a deleted file returns false...

IDK whether this is a bug on Android 11. Can you send me the result of the following code, according to your device?
        val downloadFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
        val downloads = DocumentFileCompat.fromPublicFolder(this, PublicDirectory.DOWNLOADS, requiresWriteAccess = true)
        Log.d(TAG, downloads.isRawFile)
        Log.d(TAG, downloads.canRead())
        Log.d(TAG, downloads.canWrite())
        Log.d(TAG, SimpleStorage.hasStoragePermission(this))
        Log.d(TAG, Environment.isExternalStorageManager(downloadFile))
        Log.d(TAG, SimpleStorage.hasStorageAccess(this, downloadFile.absolutePath, true))

or can you just (check length == 0 && !exists) and then return it?

 val downloadFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
        val downloads = DocumentFileCompat.fromPublicFolder(this, PublicDirectory.DOWNLOADS, requiresWriteAccess = true)
        Log.d(TAG, downloads.isRawFile) `true`
        Log.d(TAG, downloads.canRead()) `true`
        Log.d(TAG, downloads.canWrite()) `true`
        Log.d(TAG, SimpleStorage.hasStoragePermission(this)) `true`
        Log.d(TAG, Environment.isExternalStorageManager(downloadFile)) `false`
        Log.d(TAG, SimpleStorage.hasStorageAccess(this, downloadFile.absolutePath, true)) `false`

I dont think this is a permission issue, if i rename the file it works, its somehow an issue of File and createNewFile if a file with the same filename was deleted in the directory before

Thanks. I've found the bug. downloads.canWrite() should false because it is a raw file (java.io.File) and Environment.isExternalStorageManager(downloadFile) returns false. downloads.canWrite() is buggy on some devices. I think we should not rely on it. I'll add the fixes.
Can you report downloads.canWrite() to Google while I'm fixing this bug?

I should also mention that ScopedStorage is ignored in the manifest of the SnapDrop app, it's really strange that I can write without permission at all

But how does this relate to createNewFile? That's where the null is returned...

But how does this relate to createNewFile?

That's because Environment.isExternalStorageManager(downloadFile) returns false, so you don't have full disk access, thus you cannot create files properly. Read: https://developer.android.com/reference/android/os/Environment#isExternalStorageManager(java.io.File)
You can create files without problem if isExternalStorageManager() returns true.

But I can create files without a problem!
Only is I delete them I can't write another file with the same filename!

Added this check on the latest snapshot, please try.

Can you change this to (createNewFile || (length == 0 && !exists)) so I can test something?

Current problem you're facing because isExternalStorageManager() returns false. Let's see after I add the fixes.
Please avoid using java.io.File if isExternalStorageManager() returns false, because it will lead to another bug.

Can you change this to (createNewFile || (length == 0 && !exists)) so I can test something?

length() always zero if the file does not exist. So it is useless.

Got a reply on SO https://stackoverflow.com/questions/67332280/android-file-createnewfile-false-but-exists-also-false/67332774#67332774 don't know if this helps

As stated from SO:

Mostly on an Android 11 device if the file exists() but you cannot File.list() it and not read or write it then the MediaStore still has an entry for the file.

autoIncrementFileName() rely on File.list(), but because File.list() returns empty list, thus creating files is impossible. Try requesting full disk access, and File.list() will return non-empty file list. Follow this instruction: https://developer.android.com/training/data-storage/manage-all-files

Ok then I'll use MediaFile for 10+ because I don't really need full disk access, only to add a file to downloads...

Is this an issue below API 10?

Which issue? I think we have many issues on this thread. 😅

Haha, no the main issue https://github.com/anggrayudi/SimpleStorage/issues/24#issuecomment-829346410

Also when will 0.5.3 be released? :)


Add V4 class for Opple 4 button remote

Latest model of Aqara Opple 4 button remote has different device signature to previous versions.
Added RemoteB486OPCN01V4 with help from @MattWestb
Tested and verified with 2 units brought in September.

Codecov Report

Merging #1138 (01cea79) into dev (10dbcc4) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev    #1138      +/-   ##
==========================================
+ Coverage   80.12%   80.14%   +0.01%
==========================================
  Files         197      197
  Lines        5409     5413       +4
==========================================
+ Hits         4334     4338       +4
  Misses       1075     1075

Impacted Files
Coverage Δ

zhaquirks/xiaomi/aqara/opple_remote.py
88.18% <100.00%> (+0.38%)
:arrow_up:

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 10dbcc4...01cea79. Read the comment docs.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 80.14%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
4338

Relevant Lines:
5413

💛  - Coveralls


Update vscode-extension-telemetry to 0.18

https://www.npmjs.com/package/vscode-extension-telemetry/v/0.0.18

Merged.


Awesome project... Can it work with LIVE streams of .ts URL's?

Please tell me if this would work out of the box for IPTV live streaming video.
Thanks
HB

Probably. I don't think they're using B-Frames either.


does not work just like error

Script version
What version is the script on eg 2.9 , 3.1 ect
Describe the bug
A clear and concise description of what the bug is.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots or a video to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Check out 3.3, This should now be fixed.
(Closed as you did not fill out the issues template)


glTF skinning

As a creator I want to have the bone weights inside my glTF model applied.

Hey team! Please add your planning poker estimate with ZenHub @Kryptos-FR @satendrapalsingh @sinkingsugar


Allow the edge route global to work with url query params

Brief Description
The route global for edge is very handy, but currently the second parameter, where you pass in parameters that get added on to the route, only work if the parameters have been defined on the route. I propose that we modify this behaviour so that the route get's checked first, and if no matches are found for the parameter it get's turned into a query string and appended to the URL.
Sample Code

Login

// routes.js

Route.get('/auth/log-in', 'AuthController.login')

The url should end up as `http://mysite.com/auth/log-in?ref=footer

That's too much magic, for query string you can simply pass qs key and an object next to it.
route('AuthController.login', { qs: { ref: 'footer'  } })

@thetutlage that needs to be documented then. I couldn't figure it out for the life of me.

Nope, I didn't said that it's implemented, I said the implementation should follow the given pattern

Ahhh ok. Well I can update the PR to reflect that then.

Closing since a PR is open.


Updated for 8-18

We need to increment the version of vapor/tls once they publish a new release as well. However, there are some problems right now with COpenSSL on Mac. Otherwise, this works on linux just fine (and on my machine, with COpenSSL hacked to work)
https://github.com/vapor/tls/pull/8

Woot. I'm starting to make my way up Vapor's deps as we speak.

I believe this should work after https://github.com/vapor/tls/pull/9 gets merged.

vapor/tls is merged, so this is ready

👍

https://github.com/czechboy0/SecretSocks/releases/tag/0.6.0


Handling of unwind operations for PE/COFF unwinding in libunwindstack

This is the first part to add native PE/COFF unwinding in
libunwindstack, and adds handling of all required unwind operations.
Documentation of the unwind operations can be found here:
https://docs.microsoft.com/en-us/cpp/build/exception-handling-x64?view=msvc-170
Chained operations, as described in the above documentation, are
critical for correct unwinding, but implementation is deferred to one
of the next changes, as this change already ended up quite large.
Unit testing is added to cover all operations, failure cases, and some
mixed cases with multiple operations. For testing, a call frame and the
corresponding unwind info is built so that we can verify that registers
are restored with the right values as read from the call frame on the
stack.
Tested: Unit tests.
Bug: http://b/194768602

Apologies for the rather long change. I hope it's okay as a lot of code lines are boiler-plate code in the unit tests, but please let me know if I should break this down in smaller pieces.

@danielfenner @beckerhe Thanks for the quick review, I think I've addressed all comments.


Routing Error

I just installed the gem, and restarted rails, when I click on the "Add Video" in the page editor, I get this error:
Routing Error
refinery/videos/insert
Try running rake routes for more information on available routes.
I am mounting RefineryCMS at routes.rb like this:
mount Refinery::Core::Engine, :at => '/cms'
My admin page:
http://<IP_ADDRESS>:3000/cms/refinery
Notice that
http://<IP_ADDRESS>:3000/cms/refinery/videos/insert
works fine, but the video link (http://<IP_ADDRESS>:3000/refinery/videos/insert ) at the editor missing the 'cms' where Refinery is mounted .. how can I solve this?
Thanks.

As of refinerycms >=4.0.2 you could use config/initializers/refinery/core.rb for that, e.g.
# Specify a different Refinery::Core::Engine mount path than the default of "/".
# Make sure you clear the `tmp/cache` directory after changing this setting.
config.mounted_path = "/cms"


test: Test functional Relations

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


MF in BP ontology

GO:0052054
negative regulation by symbiont of host peptidase activity
Any process in which an organism stops, prevents, or reduces the frequency, rate or extent of host protease activity, the catalysis of the hydrolysis of peptide bonds in a protein. The host is defined as the larger of the organisms involved in a symbiotic interaction.
this should be GO:0004866  endopeptidase inhibitor activity
has one annotation
https://www.uniprot.org/uniprot/Q6PQH2
(this  IDA annotation could just be moved to the appropriate function term, currently provided by a KW mapping)

from comment
Secreted effector that interacts with and inhibits the pathogenesis-related P69B subtilisin-like serine protease of host tomato (PubMed:15096512). Inhibition of host proteases by a pathogen extracellular protease inhibitor forms a specific type of defense-counterdefense mechanism between plants and microbial pathogens (PubMed:15096512).1 Publication
the process should be
GO:0140415    effector-mediated modulation of host defenses by symbiont

This applies to the whole branch -     GO:0052148  modulation by symbiont of host catalytic activity or even  GO:0052055
modulation by symbiont of host molecular function
Maybe we can look at this together on a future call ?

Yes.
At PHI-base we have been annotating these as:
x inhibitor activity involved_in effector-mediated blah (usually immune but sometimes other processes)

Ah I see that is what I said above...

We need to review the entire branch, GO:0052055 modulation by symbiont of host molecular function
this, but that involves reviewing the virus keywords
@pmasson55 - can you help ?

Discussing with @pmasson55
The Keywords have a hierarchy, for example like this part:

Inhibition of host interferon signaling pathway by virus (KW-1114)

mapped to GO suppression by virus of host type I interferon-mediated signaling pathway [ GO:0039502 ]

children include:

Inhibition of host STAT1 by virus (KW-1105)  -> mapped to 'suppression by virus of host STAT1 activity [ GO:0039563 ]'

Inhibition of host STAT2 by virus (KW-1106) -> mapped to 'suppression by virus of host STAT2 activity [ GO:0039564 ]'

Inhibition of host TYK2 by virus

Modulation of host PP1 activity by virus
etc

Note that mappings to parent terms are applied to each entry, so that an entry with KW-1105 will get both GO:0039563 and GO:0039502

We could change the mapping for the 'inhibitors of activity', like KW-1105, to 'transcription factor inhibitor activity', however if we do that we loose which transcription factor is inhibited when we do mappings (we can capture those are extensions and inputs in P2GO and GO-CAMs, but any propagations loose it).

We could nevertheless move the terms to MF, for example 'STAT1 transcription factor inhibitor activity' - however our guidelines state that we don't want to capture gene products in the term.

@cmungall @ValWood @thomaspd
thoughts ?
Thanks, Pascale

@pgaudet  I think this has been done by another route?

Right ! Closed in #21740
Thanks


what about bloomer

hi, have you think about implement bloomer?

No, I haven't really considered that, since there are other features that need to be implemented first, like pagination and search. Next, I'll be adding pagination to the blog posts.


What does it mean if not all bodies in my nav panel show up on EDScout?

What determines which it shows and leaves out?

https://eddb.io/system/90

By design. in an already-discovered system, it just highlights the valuable ones (anything over 500k).


Feat: allow deployer tags to look at HEAD^ for TEST and PROD

New deployer triggers work for comparing PRs to main, but will require non-db components to be replaced on main merge.  Supporting a comparison against HEAD^ would allow for similar functionality.  Look for the cleanest way to implement.

It's safer to compare new vs deployed container images.  We will focus on that instead.


fixed issues in package.json

Added the repository and updated the format of license in package.json.

Thank you for the commit!


Fix company property types

What to do
The property types for the company model seems to be incorrect. This fixes them.
Background
For unclear reasons Hubspot uses strings for basically everything.
Here is an example for a response from them to confirm this:
"{\"id\":\"15278289572\",\"properties\":{\"about_us\":null,\"address\":\"Am Mainufer\",\"address2\":null,\"annualrevenue\":null,\"city\":\"Frankfurt\",\"closedate\":null,\"country\":null,\"createdate\":\"2023-03-24T09:21:14.582Z\",\"days_to_close\":null,\"description\":null,\"domain\":\"piedpiper.finn.com\",\"engagements_last_meeting_booked\":null,\"engagements_last_meeting_booked_campaign\":null,\"engagements_last_meeting_booked_medium\":null,\"engagements_last_meeting_booked_source\":null,\"facebook_company_page\":null,\"facebookfans\":null,\"first_contact_createdate\":\"2020-10-17T15:04:23.187Z\",\"first_conversion_date\":\"2022-02-21T17:34:56.897Z\",\"first_conversion_event_name\":\"b2b: B2B Form\",\"first_deal_created_date\":\"2023-03-24T09:35:15.784Z\",\"founded_year\":null,\"googleplus_page\":null,\"hs_analytics_first_timestamp\":\"2020-10-17T15:04:23.176Z\",\"hs_analytics_first_touch_converting_campaign\":null,\"hs_analytics_first_visit_timestamp\":\"2022-02-22T13:39:05.891Z\",\"hs_analytics_last_timestamp\":\"2023-11-30T15:58:37.552Z\",\"hs_analytics_last_touch_converting_campaign\":null,\"hs_analytics_last_visit_timestamp\":\"2023-11-30T15:58:37.552Z\",\"hs_analytics_latest_source\":\"DIRECT_TRAFFIC\",\"hs_analytics_latest_source_data_1\":\"www.finn.com/de-de\",\"hs_analytics_latest_source_data_2\":\"\",\"hs_analytics_latest_source_timestamp\":\"2023-11-30T15:58:37.552Z\",\"hs_analytics_num_page_views\":\"4803\",\"hs_analytics_num_visits\":\"615\",\"hs_analytics_source\":\"OFFLINE\",\"hs_analytics_source_data_1\":\"SALES\",\"hs_analytics_source_data_2\":\"EMAIL_INTEGRATION\",\"hs_created_by_user_id\":\"25543598\",\"hs_createdate\":null,\"hs_ideal_customer_profile\":null,\"hs_is_target_account\":null,\"hs_last_booked_meeting_date\":\"2022-09-12T08:30:00Z\",\"hs_last_logged_call_date\":null,\"hs_last_open_task_date\":\"2023-04-13T06:00:00Z\",\"hs_last_sales_activity_timestamp\":null,\"hs_lastmodifieddate\":\"2023-12-07T15:36:30.343Z\",\"hs_lead_status\":null,\"hs_merged_object_ids\":null,\"hs_num_blockers\":\"0\",\"hs_num_child_companies\":\"0\",\"hs_num_contacts_with_buying_roles\":\"0\",\"hs_num_decision_makers\":\"0\",\"hs_num_open_deals\":\"2\",\"hs_object_id\":\"15278289572\",\"hs_parent_company_id\":\"\",\"hs_total_deal_value\":\"\",\"hubspot_owner_assigneddate\":\"2023-12-01T10:03:04.047Z\",\"hubspot_owner_id\":\"107981110\",\"hubspot_team_id\":\"586140\",\"industry\":null,\"is_public\":null,\"lifecyclestage\":\"lead\",\"linkedin_company_page\":null,\"linkedinbio\":null,\"name\":\"Pied Piper\",\"notes_last_contacted\":\"2023-10-10T11:44:00.592Z\",\"notes_last_updated\":\"2023-10-10T11:44:00.592Z\",\"notes_next_activity_date\":\"\",\"num_associated_contacts\":\"49\",\"num_associated_deals\":\"8\",\"num_contacted_notes\":\"27\",\"num_conversion_events\":\"53\",\"numberofemployees\":null,\"phone\":\"+4917634194402\",\"recent_conversion_date\":\"2023-10-16T13:29:33.228Z\",\"recent_conversion_event_name\":\"PDP: Coming Soon: Deal Creation Form\",\"recent_deal_amount\":null,\"recent_deal_close_date\":\"\",\"state\":null,\"timezone\":null,\"total_money_raised\":null,\"total_revenue\":\"\",\"twitterbio\":null,\"twitterfollowers\":null,\"twitterhandle\":null,\"type\":null,\"web_technologies\":null,\"website\":\"piedpiper.finn.com\",\"zip\":\"60321\"},\"createdAt\":\"2023-03-24T09:21:14.582Z\",\"updatedAt\":\"2023-12-07T15:36:30.343Z\",\"archived\":false}"
Acceptance criteria
It's possible to request Companies data from the CRM endpoints.

Im very sorry, I got confused with the github UI. I meant to open a separate PR for commit 6f6b2450a4c970ea168bbfeb6015bb49e5cc3678 but I somehow added it to this PR. Im not really sure how I can fix that. I attempted to rebase and force push to this PR but failed.
Shall I close and reopen two separate PRs?

Oh man! I also only noticed now that company_model.go was generated 🤦
Looking at the generator code it seems that it expects a CSV as input. Not sure where the discrepancy comes from but I seem to be getting a different type from the API (see response above) than was in the CSV used for the generator.

Digging some more I realise that the CSV that is exported "lies" about the data type because e.g. HubspotObjectID is clearly returned as a string by the API. My guess is that number in Hubspot is some number type that gets converted to string when encoded as json.

Hi, @joidegn !
Thank you for reporting. Please give us some time as we investigate and decide on a policy.
When generating the model, you may need to make changes such as using HsStr even for Number fields.
There is no problem with creating a new pull request, so I will leave it up to you :)


setup.py should live in the root folder

Ok, it will work when it's in the /src folder, it's just bad style.

Thanks!


Small typo in README

Examples and Gallary
These are some awesome exmaples shared by tabby.nvim users! Also welcome to share your own!

Oh, thank you for your intention, I'll fix this in the next feature.


movie theme error messages

clicking the button when not active is a good place for the movie theme errors

Screenshot to clarify which button, please?


invalid IP address: 'cloudflare': ParseAddr("cloudflare"): unable to parse IP

heya, I'm building this with:
FROM caddy:builder AS builder

RUN xcaddy build \
	--with github.com/WeidiDeng/caddy-cloudflare-ip

FROM caddy:latest

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

But am getting this error when launching:
invalid IP address: 'cloudflare': ParseAddr("cloudflare"): unable to parse IP

Thsi is my Caddifile
{
	servers {
		trusted_proxies static <IP_ADDRESS> cloudflare {
			interval 12h
			timeout 15s
		}
	}
}

Try putting cloudflare before static (or even repeating the trusted_proxies option for both modules if that doesn't work). cloudflare in your current Caddyfile is parsed as an IP address, according to the Caddy documentation: https://caddyserver.com/docs/caddyfile/options#trusted-proxies

To merge two lists of IPs (cloudflare + static), you should use https://github.com/fvbommel/caddy-combine-ip-ranges which can take more than one IP source plugin.

lovely, thank you!

lovely, thank you!


Assign support for std::array

Moving ticket from trac to github: https://svn.boost.org/trac10/ticket/8238
For compilers that support std::array, can support be added to boost::assign for std::array at least with the same capabilities matching boost::array?
For example, list_of works with boost::array, but not std::array.

AMDG
On 10/13/2018 08:36 AM, James E. King III wrote:

Moving ticket from trac to github: https://svn.boost.org/trac10/ticket/8238
For compilers that support std::array, can support be added to boost::assign for std::array at least with the same capabilities matching boost::array?
For example, list_of works with boost::array, but not std::array.

Why are we spending so much effort on Boost.Assign?
It's obsolete in C++11, because of initializer lists.
In Christ,
Steven Watanabe

Just going through the motions of cleaning up the backlog.
Due to the sheer number of issues in the CMT repositories
(mostly stuck in trac) when I don't have a simple answer to
something, I'd rather get an opinion on it.  This keeps experts
from having to deal with mundane backlog cleanup activities
and at the same time helps educate myself and others, so
everyone wins.
I agree with you given the recent discussions about C++03
support on the mailing list.  I'm happy to close something
like this as "wontfix" with these reasons, but it's nice to close
the loop with folks who took the time to submit an issue in
the first place.

AMDG
On 10/13/2018 09:04 AM, James E. King III wrote:

Just going through the motions of cleaning up the backlog.
Due to the sheer number of issues in the CMT repositories
(mostly stuck in trac) when I don't have a simple answer to
something, I'd rather get an opinion on it.  This keeps experts
from having to deal with mundane backlog cleanup activities
and at the same time helps educate myself and others, so
everyone wins.
I agree with you given the recent discussions about C++03
support on the mailing list.  I'm happy to close something
like this as "wontfix" with these reasons, but it's nice to close
the loop with folks who took the time to submit an issue in
the first place.

It depends on the ticket.  std::array is a C++11
feature, so I don't see any point in adding support
for it.  In #22, on the other hand, std::list was
always supposed to work, so the failure is a regression.
In Christ,
Steven Watanabe


Allow for empty sets in AFS

Version info
Angular: 4.3.6
Firebase: 4.5.0
AngularFire: 5.0.0-rc.1
Other (e.g. Ionic/Cordova, Node, browser, operating system):
How to reproduce these conditions
https://stackblitz.com/edit/angularfire-db-api-fbad9p
Steps to set up and reproduce
Select filters which would reduce to empty set (e.g, large + blue).
Expected behavior
Empty set would be returned from valueChanges()
Actual behavior
valueChanges() is not updated

Same would be nice for snapshotChanges() as well.

It was released in ^5.0.0-rc.2?
Because seems like empty sets still not being returned from valueChanges()
I have the following code
public userExists(email: string): Observable<boolean> {
    return this.afDb.list('/clients', ref =>
      ref.orderByChild('email').equalTo(email))
      .valueChanges()
      .map((users: User[]) => users.length > 0);
  }

When my query should return an empty array, the map / observables is not fired.

hmmm, is this the realtime db? i've mostly been focused on the firestore side

If so, can you open a new issue?

@jamesdaniels yeah, it is. I've openned the issue #1220

Should snapshotChanges also work? When I hit conditions that produce zero results, the list is not cleared, but displays the old results. This is due to the .snapshotChanges() never being called.
I can fix it by having .snapshotChanges().startWith([]).map(snapshots => {, but then there's a double call everytime there's data.
I have code like this:
return this.firestore.collection<Invoice>('invoices/9/invoices', ref => {

  const direction = sort.direction == 'asc' ? 'asc' : 'desc'
  let q: firebase.firestore.Query = ref.orderBy(sort.active, direction)

  if (state && state != InvoiceState.all) {
    q = q.where('state', '==', state)
  }

  if (page.pageIndex > 0 && page.pageIndex - 1 in this.lastVisible) {
    return q.startAfter(this.lastVisible[page.pageIndex - 1]).limit(limitSize)
  } else {
    return q.limit(limitSize)
  }

}).snapshotChanges().startWith([]).map(snapshots => {
  if (snapshots.length == limitSize) {
    this.rowCountSubject.next(Number.MAX_SAFE_INTEGER)
    snapshots.pop()
  } else {
    this.rowCountSubject.next(this.lastPageSize * page.pageIndex + snapshots.length)
  }
  if (snapshots.length > 0) {
    this.lastVisible[page.pageIndex] = snapshots[snapshots.length-1].payload.doc
  }
  const invoices: Invoice[] = []
  for (const snapshot of snapshots) {
    const $key = snapshot.payload.doc.id
    const data = { $key, ...snapshot.payload.doc.data() } as Invoice
    invoices.push(data)
  }
  return invoices
}).map(invoices => {
  const data = this.filterAndMap(invoices)
  return data
})

@jamesdaniels dropping you a message cause this issue is already closed. See previous comment.


Authorization fields in Configuration have no effect

STR:

Set up a Nomad cluster with ACL enforcement enabled.

Create a token with permissions adequate to list jobs. (I used the bootstrap token for this.) Make a note of the secret ID.

Set up a request as follows:
let configuration = Configuration {
  bearer_access_token: Some("your secret ID here".into()),
  ..Configuration::default()
};

let jobs = get_jobs(&configuration, None, None, None, None, None).await?;
println!("{jobs:#?}");

Expected:

The program will print a list of jobs, using Rust's default Debug formatter.

Actual:

Nomad returns a 403 Forbidden response.
Looking at the HTTP traffic with a proxy, it appears that the token is not actually sent in the request.

A little digging in jobs_api.rs suggests that the various auth fields, including bearer_access_token, basic_auth, oauth_access_token, and api_key are entirely ignored. Am I missing something?

It is possible to work around this by customizing the reqwest::Client used for the requests. Note that this will blindly send your auth token to anything the client happens to talk to, however, which isn't great if the client is shared with other services or if the URL used isn't carefully controlled:
        let mut nomad_token_header = HeaderValue::from_str(&self.nomad_token)?;
        nomad_token_header.set_sensitive(true);

        let mut auth_headers = HeaderMap::new();
        auth_headers.append("X-Nomad-Token", nomad_token_header);

        let client = ClientBuilder::new()
            .default_headers(auth_headers)
            .build()?;

        let configuration = Configuration {
            client,
            /* … */
        }

Hey @ojacobson! Apologies for the slow response. I'm deprecating this repo in favor of the official Rust client here.


Strange behaviour when deploying lambda without API Gateway resources (following Zappa Example)

I am trying to deploy simple lambda app without API Gateway resource by following the Zappa Example (https://github.com/Miserlou/Zappa/tree/master/example).
Have been seeing weird [issue|bug|feature] in steps 5 and 7 below:
Here are the steps to reproduce:

Copy *.py and *.json to my local venv
$ aws configure
edit zappa_settings.json to suit my configuration (eg. s3_bucket, aws_region, profile_name)
skip Deploy WSGI app
$ zappa deploy dev_event -> first run encountered the following errors:
... botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:ap-southeast-1:964351812810:function:dev-event-zappa-test-dev-event
...botocore.errorfactory.InvalidParameterValueException: An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda.
$ zappa deploy dev_event -> second run deployed successfully (strange, as nothing changed)
$ zappa tail shows that the app.lambda_handler function is invoked every 1 minute. This is strange as I have not yet issued $zappa schedule dev_event

Any logical explanation for the above? Thanks

I did further tests and would like to add the following for strange behaviours in steps 5 and 6...
First time running $ zappa deploy will fail if the IAM role is not yet created (by deploy).
Second time running $ zappa deploy is ok because the IAM role is already created (by first deploy).
This suggests a race condition in the zappa deploy logic.


Error while creating a model

I try to create a model using the next command:
php artisan domain:make:model -m Book Author
and I got this error
File does not exist at path my-laravel-path/vendor/phpsquad/domain-maker/src/Console/stubs/model.stub
I also wish you add  Database/migratations and resources/views folders inside the domain folder as well
thanks in advance

Set default stub path form model. Should be working now. Let me know if it's still giving you trouble after updating.

fixed


breaks on control sequences in folder/file name

Reproduce with:
git clone https://github.com/matu3ba/chepa/tree/cdbc5cc3574aa38f7604a77d57745f854d8ef783
cd chepa
zig build tfgen
cd test_folders && rm -fr base_perf && rm -fr control_sequences
cd control_sequences
fd -t f | zf

output:
>
./f_
./f_
./f_
./f_
./f_
./f_
./f_
./f_
./f_
./f_

Picture related

Either 1. check this with a perf/complexity cost or 2. document the behavior

Hi! Sorry I haven't had the time to look into this yet. It's on my todo list for this week, thank you for the reminder!

As I mentioned in the other issue, sorry for not getting to this for nearly a year! I appreciate your checking that zf handles crazy cases.
I think this is a case where zf just won't be bothered to handle the unusual excape characters. I don't think many people would even consider this to be a use case. I'll document this and then close the issue.

Actually, I think this issue serves as good enough documentation. If many people come asking, I'll update the readme.


Help: ... Healthcheck error causes permanent unhealthy container state

TLDR: Describe your issue in a one liner here

Is this urgent?

[ ] Yes
[x] No

What VPN service provider are you using?

[ ] PIA
[ ] Mullvad
[x] Windscribe
[ ] Surfshark

What's the version of the program?
Running version latest built on 2020-06-04T01:53:16Z (commit 900fa26)

What are you using to run the container?

[x] Docker run
[ ] Docker Compose
[ ] Kubernetes
[ ] Docker stack
[ ] Docker swarm
[ ] Podman
[ ] Other:

Extra information
Using Windscribe VPN, the healthcheck reports different IPs for public and private and causes a permanent healthcheck failure.  Seems to be a recent docker image build, didn't happen a few days ago.

Logs:
Status | unhealthy
Status |  unhealthy
Failure count | 18
Last output | Public IP address <IP_ADDRESS>yx does not match VPN ip address <IP_ADDRESS>yz on file
Host OS:
Debian

Hello and thanks for reporting this 🥇
This is related to this PR discussion.
Let's see how it goes now. The healthcheck now compares your public ip address with all the ip addresses in the openvpn configuration file (/etc/openvpn/config.ovpn), not just on the one obtained at start. Depending on that, I will adapt the code to update the ip address correctly in the /ip file and in the logs, if it ever changes.

Hello and thanks for reporting this 🥇
This is related to this PR discussion.
Let's see how it goes now. The healthcheck now compares your public ip address with all the ip addresses in the openvpn configuration file (/etc/openvpn/config.ovpn), not just on the one obtained at start. Depending on that, I will adapt the code to update the ip address correctly in the /ip file and in the logs, if it ever changes.

/etc/openvpn/config.ovpn = /etc/openvpn/target.ovpn ?

Oops thanks Frepke

not urgent, container seems to still work well.
Running version latest built on 2020-06-04T22:14:44Z (commit f6a2aac)
Public IP address <IP_ADDRESS>xy does not match any of the VPN ip addresses
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443,
<IP_ADDRESS> 443

Hello djaydev and @Frepke
First of all, I forgot to remove the port number 443, sorry about that.
But it seems your actual public IP address <IP_ADDRESS>xy is different than any of the VPN server IP addresses in the openvpn configuration file. My explanation would be that the publicly exposed VPN servers act as gateways to more vpn servers. In this case, it's hard if not impossible to predict the ip address you should have reliably.
On the other hand, on my part, running the container (pia, romania) and then:

docker exec gluetun cat /ip gives <IP_ADDRESS>
docker exec gluetun ip route gives  (other lines...)<IP_ADDRESS> via <IP_ADDRESS> dev eth0(other lines)
docker exec gluetun wget -qO- https://ipinfo.io/ip gives <IP_ADDRESS>

Can you please try the 3 commands above after starting a container to see if it gives you the same public IP address? I'm trying to figure out if your public address is different from the start of changes after some time.

I would also need to change the writing/updating of the ip status file /ip and the TARGET_IP logic if it turns out they are wrong/ineffective 🤔 depending on your answers.

cat /ip
<IP_ADDRESS>/
ip route
(other lines...)
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
(other lines...)
wget -qO- https://ipinfo.io/ip
<IP_ADDRESS>

1. `docker exec gluetun cat /ip` gives `<IP_ADDRESS>`

2. `docker exec gluetun ip route` gives  `(other lines...)<IP_ADDRESS> via <IP_ADDRESS> dev eth0(other lines)`

3. `docker exec gluetun wget -qO- https://ipinfo.io/ip` gives `<IP_ADDRESS>`

Ok thanks guys! So these are vpn gateways, but at least it changes at start.
For now I get your vpn ip address using the ip routes (so no need to call any ip echo website) but that seems to be just the vpn gateway ip, not your actual public ip address.
I'll change the code such that it gets your public IP address from an ip echo service website at start, writes it to /ip (and logs it) instead of using the ip routes, and the healthcheck should then work as it is.
I'll message back here once this is done so you can test it out (probably for a few days, to check if you ip ever changes?).
Thanks again!

Hello again, so I added changes to do what I described, let me know if it's still unhealthy for you.
In the logs it should now show at start
Gateway VPN IP address: 86.105.25.xx
Public IP address is 86.105.25.xx

For me it's the same, I would be curious if it's different for you. Thanks!

Gateway VPN IP address: <IP_ADDRESS>
Public IP address is <IP_ADDRESS>
The container is healthy as always 😄, but now it runs visible in a healthy state (docker inspect --format "{{json .State.Health }}" gluetun | jq).

Great :+1: Let's see if it stays healthy, I'm curious if the IP address ever changes behind the scenes (=without openvpn restarting).

Mine changes ip address even without openvpn reconnecting. I will remove the ip address check, probably just fallback to resolving github.com in order to verify the connection is still up.


VSCode Oso extension not published on open-vsx

It would be nice to have the VSCode Oso extension published on open-vsx to make it easier for users like myself who don't have access to Microsoft Marketplace (using the code-oss flavor).
Thanks!

Hi @fairingrey! Thanks for opening an issue, and thanks for letting us know -- I hadn't heard about open-vsx before. Sounds like a great project.

Hey @samscott89 . FYI: Gitpod isn't allowed by Microsoft to use Microsoft Marketplace, so without this being published to open-vsx my team can't use the extension.
Docs from Gitpod about this limitation: https://www.gitpod.io/docs/ides-and-editors/vscode-extensions#:~:text=If you cannot,maintained by Microsoft.

If a future reader needs to get this extension working in Gitpod, here is the line we added to our custom Docker image Dockerfile:
# Build and package the Oso VS Code extension
RUN npm install --global yarn wasm-pack && cd /tmp/ && git clone --depth=1 https://github.com/osohq/oso/ \
  && cd oso/ && make CARGO_FLAGS=--release rust-build wasm-build \
  && cd polar-language-server && make CARGO_FLAGS=--release build && cd .. \
  && cd vscode/oso/ && npm install && yarn package \
  && mv oso.vsix ~/
# To install the Oso extension, add this task to .gitpod.yml:
# before: (gp await-port 23000 && code --install-extension ~/oso.vsix) & disown; exit

Hey @fairingrey & @ramonsnir, we're going to look into getting the extension published on open-vsx within the next couple of weeks. Myself or @vrama628 will keep you apprised!

Hi @fairingrey and @ramonsnir, thanks for bearing with us! The latest version of our VSCode extension is now published on Open VSX at https://open-vsx.org/extension/osohq/oso .


[Event Request] New parameter sender: Page Navigate in event OnFindRecordsOnAfterSetSource, in function FindRecords page 344 Navigate

Hello.
Need add new parameter sender: Page Navigate in event OnFindRecordsOnAfterSetSource, in function FindRecords page 344 Navigate
Function:
  local procedure FindRecords()
  var
      DocType2: Text[100];
      DocNo2: Code[20];
      SourceType2: Integer;
      SourceNo2: Code[20];
      PostingDate: Date;
      IsSourceUpdated: Boolean;
      HideDialog: Boolean;
  begin
      OnBeforeFindRecords(HideDialog);
      if not HideDialog then
          Window.Open(Text002);
      Reset;
      DeleteAll();
      "Entry No." := 0;

      FindPostedDocuments;
      FindLedgerEntries;

      OnAfterNavigateFindRecords(Rec, DocNoFilter, PostingDateFilter);
      DocExists := FindFirst;

      SetSource(0D, '', '', 0, '');
      if DocExists then begin
          if (NoOfRecords(DATABASE::"Cust. Ledger Entry") + NoOfRecords(DATABASE::"Vendor Ledger Entry") <= 1) and
             (GetDocumentCount <= 1)
          then begin
              SetSourceForService;
              SetSourceForSales;
              SetSourceForPurchase;
              SetSourceForServiceDoc;

              IsSourceUpdated := false;
              OnFindRecordsOnAfterSetSource(
                Rec, PostingDate, DocType2, DocNo2, SourceType2, SourceNo2, DocNoFilter, PostingDateFilter, IsSourceUpdated);
  ..................................................................................................
  end;

Signature:
[IntegrationEvent(true, false)]
local procedure OnFindRecordsOnAfterSetSource(var DocumentEntry: Record "Document Entry"; var PostingDate: Date; var DocType2: Text[100]; var DocNo: Code[20]; var SourceType2: Integer; var SourceNo: Code[20]; var DocNoFilter: Text; var PostingDateFilter: Text; var IsHandled: Boolean)
begin
end;

Version of AL Language: 6.1.397164
Business Central Version: 17 cu3

Please always put the full detailed signature of the requested events.
You help us implementing the requests faster when your request contains AL code copied from VSCode instead of screenshots.
Please put the code surrounding the place, where you expect a new event call, as a text not as a screenshot.
It helps us finding the right place quickly if you put enough code to identify the unique place.
Please add [Event Request] prefix to the title if you requesting for a new event or for a modification in the existing event.

Please always put the full detailed signature of the requested events.
You help us implementing the requests faster when your request contains AL code copied from VSCode instead of screenshots.
Please put the code surrounding the place, where you expect a new event call, as a text not as a screenshot.
It helps us finding the right place quickly if you put enough code to identify the unique place.
Please add [Event Request] prefix to the title if you requesting for a new event or for a modification in the existing event.

Done.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


added logic to append the script to existing pre-commit

Also removed the overwrite functionality and for loop from script
#5

Thanks for the PR @mehulgohil!
I regret to say that I got some things wrong, both in the specification for the Github issue and in our conversation on Gitter. I apologize for not giving this more thought before you put in the work for this PR.

Things I got wrong

We should not remove the option to overwrite existing pre-commit hooks. In same cases, the user may want to overwrite the existing pre-commit hook. Appending into perpetuity is likely to cause duplication, and makes for a bad default mode.
There should be an option to append env-sample-sync's pre-commit script to any existing pre-commit script
There should be an option to cancel installation (neither overwrite or append)

In other words, the user should be presented the following options:

A pre-commit hook already exists. Would you like to cancel [c], overwrite [o], or append [a] the existing pre-commit hook script? [a, c, o]:

To handle appending, I think we should have a single pre-commit script that is templatized to handle all scenarios.
The template
var preCommitScriptTemplate = `{{if .Appending}}
{{ .OldPreCommitScript }}
{{else}}
#!/usr/bin/env bash
{{end}}
# File generated by env-sample-sync https://github.com/acaloiaro/env-sample-sync

ARGS=({{ .Args }})

exec $(dirname -- "${BASH_SOURCE[0]}")/{{ .PreCommitHooksDir }}/0-env-sample-sync "${ARGS[@]}"
`

Now when we're "Executing" or rendering the template, we pass it the user's decision about whether they would like to append to the existing script, and the existing script's contents if the user has chosen to append:
err = tmpl.Execute(buff, map[string]string{
			"Args":               args,
			"PreCommitHooksDir":  hooksScriptDirName,
                        "Appending":          doAppend, // a boolean representing whether the user chose to append
                        "OldPreCommitScript": oldPreCommitContents, // the string contents of the old pre-commit script that we're appending to
})

Let me know what you think, and again, sorry for the change in spec.

Committed with required changes


NFS5 Track converter?

I saw some post in issues section regarding this, and although there seem to be some talk about it I have not seen any actual converters or converted tracks?
So yeah not an issue but rather me asking a question about this.

Hi @TheBorn . I was able to convert tracks to obj with some minor issues for an attempt to remake NFSPU using UE4. Contact me<EMAIL_ADDRESS>if you are still looking for a converter.

hello!
the born along with some other people already made a converter for NFSPU


Basic/Advanced Item Filter

Is there an existing issue for this?

[X] I did not find any existing issues.

Current Behavior
when placing another item above an existing item in these filters, the old item in the filter is placed on the customer's mouse
Expected Behavior
the item in the filter, as it is a "ghost", should just disappear, making room for the new item on the client's mouse, but this does not happen, which causes the dupe since when setting the filter the first time the item is not consumed, which is expected, however when replacing by clicking on an item the item on the mouse is replaced by the item in the filter
How to Test

Open the filter with the right click
Place an item
take the item you want to duplicate and click on the item in the filter
ready

Local Environment
- **Operating System**: Ubuntu 22.04.4 LTS (amd64) version "5.15.0-118-generic"
- **Java version**: 21
- **Minecraft Version**: 1.20.1
- **Version**: 6.1.8-beta-all
- **Other Mods**: full modpack https://www.curseforge.com/minecraft/modpacks/infinity-nexus-sky

Any Additional Information?
No response

this been report already https://github.com/Team-EnderIO/EnderIO/issues/769


add_* methods accept file paths / urls to data

🚀 Feature
As we start adding more fileIO should our napari.view_* methods and viewer.add_* methods start accepting paths and lists of paths to data as well as the data objects themselves.
We'd use the same machinery for fileIO from the dropdown menu, but now someone could leverage that functionality from a script.
napari.view_image('path_to_astro.png', rgb=True)

Would be pretty cool (note that this file IO would not go inside the Image Model files it would get called from inside the viewer file, keeping our models clean). I really like that this would unify fileIO for each of our layer types with its layer type, and it then makes it more clear where to add fileIO functionality when you add a layer type, and simplify our dropdown menu / drag and drop functionality as they only now need to be responsible to providing the correct path / list of paths to the correct add_* method and the rest will get handled from inside that method exactly the same regardless of where the data came from.
This will also make it really easy to support viewing of remote datasets, for example I want to be able to run
napari.view_image('s3://my_bucket/path_to_image.zarr', colormap='red)

to just view my remote data on s3. We can then also keep track of this path and that the data was remote so that we serialize the viewer we just save this path, so if I send you the serialized .napari file it will be really small and you can just open it and see exactly what I saw, which is what was requested in #234 and will be pretty cool functionality for people working with remote data.
What are your thoughts on this @jni?

I'm not super in love with this idea... In the end in scikit-image we found that allowing the same parameter to take lots of different types is generally a bad idea, as it leads to a lot of increased complexity, and consequent brittleness. When we do want to do this for convenience, I think it's best to contain it, so I would try to keep all this magic within io.magic_read.
So, I'd need to be convinced that the benefits outweigh the long-term maintenance costs, which are substantial.
The viewer serialization application is very cool, but I wonder if it can be implemented in some less magical way, e.g. layer.data_path = path (Which is what you would do internally anyway I believe...?

Ok, I appreciate your concerns about the complexity and maintenance burden - for example right now with all our existing layer types it is fairly unambiguous if a string is an image array or a file path, but as soon as we have a text layer is that a string that is the string of text we want to display, or is it a path to a csv file of text that we want to display. Or maybe even in the image case someone has an image as a string of bytes that needs to be converted etc.
However, I still really like the idea of being able to add data from files for all our different layers in one line, and I still like having the file IO for each layer live within that layer.
How would this work as an api
napari.view_image(path='path_to_my_data.png)
viewer.add_image(path='s3://my_bucket/my_image.zarr')
viewer.add_shapes(path='path_to_my_shapes.csv')

where we now for the user to use the keyword argument path (at which point they should no longer provide the unnamed data argument, and we through an error if they do)
How does @royerloic feel about all this?

i really like the path option -- agree it would be nice to have this, but agree with @jni 's concerns, so that seems like a clean solution!

I second @freeman-lab! Great solution, @sofroniewn! :clap:

how would this work as an api

Well, the first line is a syntax error, but other than that, genius! :joy:

I approve. Very nice approach. I see no issues.

Support has now been provided for images and will be rolled out to other layer types as appropriate. We still might want to add chaching with dask where appropriate. We also might want to unify fileIO from the CLI, and we might need to still expose some more of the magic_imread keyword args

we still have to extend support to our other layer types, but as the basics are now in I will close this issue


Create a Halo 2 verifier primitive in Plutus Core

Writing a CIP

It appears that this is not feasible to do, due to the instability of the Halo 2 API. Closing for this reason.


ERROR: No port specified, check IDE menus.  - although serial monitor connects successfully

Hi @earlephilhower, thank you for the work on this plugin. I did use it successfully before. Currently, however, I am facing issues connecting to the board. The error message does not give me a clue.
LittleFS Filesystem Uploader

ERROR: No port specified, check IDE menus.

The port (COM7) is specified in "Tools > Port" in the Arduino IDE. And in fact Serial Monitor can connect and display messages successfully. (For the upload attempts I detached the Serial Monitor as I read it cannot be used concurrently.) This should show that the port is specified correctly and works.
What else could be checked? Which (other) IDE menu might be referred to by the error message? Maybe the error message can be enhanced.
Thank you in advance for your assistance.
-slowjoe

Environment:

Windows 10
Arduino IDE

Version: 2.2.1
Date: 2023-08-31T14:35:44.802Z
CLI Version: 0.34.0

Board: LOLIN(WEMOS) D1 mini (clone)

the same problem. Helps only restart IDE and try again

I see this occasionally too. It happens when I have two IDE windows open and I am switching between the two. For some reason, the IDE stops sharing the port with the extension.
When this happens, I need to close all IDE windows, and open the only one I want to do the upload with. Then it works.

why would this be closed as an issue, when this is clearly a bug which isn't fixed? I mean at least the error would need to be catched correly and then tell the actual issue.

Same here. Now I needed to reload my whole PC for it to finally work, as the bug was still present even after reinstalling LittleFS

Still there on LittleFS Filesystem Uploader v1.3.0 and Arduino IDE 2.3.3
Restarting the IDE worked for a while.
Now, even restarting the computer does not work.


Graceful, Automatic Expired Key Handling

Overview
Manually updating the key yet again this morning really bothered me, so I figured I'd take a look at how the key is stored by MakeMKV, and look around on the forums to see what others came up with. Turns out it's stored plaintext in $HOME/.MakeMKV/settings.conf and looks like this:
app_Key = "<beta_key>"

So scraping and storing the key is now handled by scripts/update_key.sh.
Actually leveraging the new script was another matter entirely, and required unsnarling the monolithic mess that has been in there since the beginning of the upstream project.

The logic to run the shell commands and handle exceptions that arose existed in 5 different places (three of those instances were exact duplicates of ~18 lines). Those 3 duplicates have now been moved into the function run_makemkv(cmd), which takes a shell command. No more chunks of duplicated code making makemkv() hard to read.

I fixed the error handilng. subprocess.run() doesn't actually throw the subprocess.CalledProcessError that the code tries to catch unless it looks like subprocess.run(..., check=True). So I standardized that as well, and now the exceptions properly catch all non-zero error codes (more on this later).

I have completely discarded handling the exception thrown when MakeMKV errors out on an expired key once arm enters the command crafting logic. Instead, the first thing makemkv() does is call the new prep_mkv(job) function. It takes the current job and runs makemkvcon info job.devpath. Normally this doesn't do anything, and provides no use.
But, after the expiration of the key (regardless of what time of day MakeMKV's servers stop recognizing the previous month's key), it errors out with error code 253. The neat part is that doing this here allows us to handle key expiration in one place, well before entry into sensitive logic. So now we've gone from 5 locations needing handling for key expiration to 1.
Once error code 253 is caught it calls the new update_key() function which runs scripts/update_key.sh and throws a RuntimeError that kills the job if it encounters an error during execution. Once update_key() has successfully returned, then the exception handling tries running makemkvcon info job.devpath again. For some weird reason, a successful run of that command has a return code of 10, so the handling throws an exception and kills the job on any non-zero return code that is not 10.
Once the second run of makemkvcon info job.devpath is completed successfully, the exception handling returns without propagating the exception. Logging documents several steps of this process, and the rip continues as if nothing happened.

Exceptions. By this point I had half a dozen instances or the same three lines of code that made up the entirety of the except body of the except block. So I moved that logic into a custom exception: MakeMkvRuntimeException. It takes the subprocess.CalledProcessError variable and uses that to craft a useful message. So everything looking like this:
except subprocess.CalledProcessError as error_name:
    err = f'{MAKE_MKV_FAILED} {error_name.returncode} ({error_name.output})'
    logging.error(err)
    raise RuntimeError

Becomes this:
except subprocess.CalledProcessError as error_name:
    raise MakeMkvRuntimeError(error_name)

Overall, this makes the code cleaner, more concise, and significantly easier to read. In particular, makemkv() has gone from an enormous 161 SLoC to 101 SLoC. Additionally, all of the new functions, exception class, and docstrings for them all only increases the total size of ripper/makemkv.py by 2 SLoC!
Changelog

Added new Exception to ripper/makekmv.py: MakeMkvRuntimeError
Added new functions to ripper/makekmv.py: prep_makemkv(), update_key(),  run_make()
Streamlined logic in makemkv()
Exception handling is now actually occurring
Added graceful handling of expired beta keys, reduced the number of locations where this case needs to be tested from 5 to 1
Added scripts/update_key.sh to scrape and store the latest beta key
Updated all install scripts to set permissions for update_key.sh during install
Added docstring documentation to all new functions and classes

Notes

I've tested this with DVDs, but I'll post the results of my Blu-ray test in the morning
To test the graceful key update, delete $HOME/.MakeMKV/settings.conf (for me it was /home/arm/.MakeMKV/settings.conf). All of the logging for this functionality is INFO level
This PR obviates the need for #113, and solves the issue for #105. Merging this PR would allow for closing both
This PR obviates the need to create GitHub Actions to build new containers each month, even if no code has changed

Next Steps

Personally, I think when paired with #116 this creates a great point to go ahead and release v2.6.0. I am planning to do so in my own fork once this is merged
Each of the manual installation guides in the wiki need to be updated to have sudo chmod +x /opt/arm/scripts/update_key.sh following the sudo chmod +x /opt/arm/scripts/arm_wrapper.sh

Logs
Attached is the log from my dvd test run:
POINT_BREAK_164679631972.log
KIKIS_DELIVERY_SERVICE_BD_164694558691.log

Added log for successful Blu-ray test

Any ETA on a merge or response? Multiple tests against Blu-ray and DVD disks have been successful

This means that https://github.com/1337-server/automatic-ripping-machine/blob/v2_devel/arm/ripper/getkeys.py should probably be in line for removal.
Could you bump the VERSION number up ?
Thanks, and great work!

That getkeys is actually for the UHD key hashes, not the MakeMKV Beta Key. I have reverted that removal, and bumped the version number as requested. It's good to merge.

Lemme know when v2.6.0 has been tagged and released


fix: change lualine terminal mode to insert mode

Lualine terminal mode fallback to normal mode as default.
This commit change default terminal mode to insert mode.
Related issue: nvim-lualine/lualine.nvim#989 nvim-lualine/lualine.nvim#912

thank you!


Security 2024 Updated security.txt Metric

Updated custom metric for https://github.com/HTTPArchive/almanac.httparchive.org/issues/3604
Description of the changes:
Update the parsing of .well-known/security.txt to take all new defined fields into account, save undefined/future/custom fields and a basic parsing of whether the file is valid (required fields exist and no field that is only allowed to occur once occurs more than once).

Test websites:

https://example.com/
https://securitytxt.org/
https://facebook.com/
https://slack.com

This feels quite verbose when so many fields are empty:

Can we only include the fields when they are present to reduce the storage and query size?

Don't know about the storage and query size of empty arrays. The keys are always the same so there might be some optimization possible.
However, I adapted the query to only keep non-empty fields. Hope that does not make the query more complex.

        "/.well-known/security.txt": {
            "found": false,
            "data": {
                "status": 404,
                "redirected": false,
                "url": "https://example.com/.well-known/security.txt",
                "signed": false,
                "other": [
                    [
                        "background-color",
                        "#f0f0f2;"
                    ],
                    [
                        "margin",
                        "0;"
                    ],
                    [
                        "padding",
                        "0;"
                    ],

Is not great, as the inline CSS is detected as Other directives.
I now also save the content-type (MUST be text/plain according to the spec but unclear if all sites follow the spec, there are probably quite some sites that do not set any content-type header 🤔)
Additionally, I only save the data is the status is of type ok (r.ok has to be true).
This fixes the case of example.com which returns an HTML document with status 404, however sites that return their landing page or similar at /.well-known/security.txt with a 200 status code would still be parsed.
Unsure, how to best handle such cases without introducing false negatives.

@tunetheweb Can this be merged before the crawl starts tomorrow?
As written above there might still be a a very small number of sites with incorrect "other" values.
However, I think this does not pose a major problem:

Such sites (Return an OK status code and show a non-security.txt file that contains lines that match our regex) should be rare and would only be a couple of text entries in an array -> no storage issues expected
We save the content-type and maybe we can filter out incorrect sites using that
All other entries except for "Other" will be correct.
For "Other" the main analysis will probably be which other values occurred the most often, which is not affected by this problem


Module does not exist in the module map or in these directories: please help!!

Please help! I have tried everything:
Deleting node modules, updating react native, clear cache...
{
"name": "tech",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1"
},
"devDependencies": {
"babel-jest": "20.0.3",
"babel-preset-react-native": "2.0.0",
"jest": "20.0.4",
"react-test-renderer": "16.0.0-alpha.12"
},
"jest": {
"preset": "react-native"
}
}

Can you provide more information?

@JanaTrajkovska which module? Please enable chrome debugging and post error from chrome console here. Thx!

Loading dependency graph, done.
Bundling index.android.js
Analysing...(node:5812) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): UnableToResolveError: Unable to resolve module .src/app from C:\Users\Jana\Desktop\ReactNative\tech\index.android.js: Module does not exist in the module map or in these directories:
C:\Users\Jana\Desktop\ReactNative\tech\node_modules.src

try to change .src to ./src

@JakeDoe now when I change that, this error showed up:
Bundling index.android.js
Transforming modules  ▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░  11.1% (1/3)...(node:5772) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 34): UnableToResolveError: Unable to resolve module react/lib/LinkedStateMixin from C:\Users\Jana\Desktop\ReactNative\tech\node_modules\react-native\Libraries\react-native\react-native.js: Module does not exist in the module map or in these directories:
C:\Users\Jana\Desktop\ReactNative\tech\node_modules\react-native\node_modules\react\lib
,   C:\Users\Jana\Desktop\ReactNative\tech\node_modules\react\lib

I have created new project and change .src to ./src and it worked!
Thank you very much @JakeDoe :)

I'll close this as it has been resolved.

@facebook-github-bot resolved

@facebook-github-bot answered

I solved this problem by deleting an import MyModule from '../MyModule' attempt, while the package was not declared in the package.json (useless package...)


Containerize the application

It would be neat if could run the code inside a Docker container.

App is dockerized inside This PR