feature: TODO with numbers

Did you check the docs?

[X] I have read all the todo-comments.nvim docs

Is your feature request related to a problem? Please describe.
no
Describe the solution you'd like
I often use TODO labels with numbers, like TODO 1 :  TODO 2 :. I'm not sure whether the keywords support regular expressions, but if so I can do that with something like TODO \d+ : to match all TODO with numbers.
Besides, it'll be nice if the jumpings to next or previous TODO are numbers-aware. For example, I have many TODO 2 and many TODO 3, and TODOs with the same number indicate some common goals, then I can jump to next TODO 2 with something like jump_next_same_number()
And of course you can populate these things to other labels.
Describe alternatives you've considered
no
Additional context
No response

For the TODO labels with numbers, you could try to do something like this in your config setup:
        config = function()
            require("todo-comments").setup {
                highlight = {
                    pattern = [[.*<(KEYWORDS)\s*\d+\s*:]],
                },
            }
        end

Does this help?

Thanks. I missed the highlight config. But can I ask what is the < in the pattern? Special charaters?
And I think numbers should be highlighted with keywords, too. I tried [[.*<(KEYWORDS\s*\d+)\s*:]] but it didn't match.

Actually, I'm not sure what is the <.
Make sure that the (KEYWORDS) is unchanged, the pattern that you provided has (KEYWORDS\s*\d+). The correct configuration should give you something like this:

After some grep in the source code, I found < is the special character for "beginning of word" in vim, since they add \v before the pattern configured.
In your screenshot, only TODO and spaces around it have an fg-bg-inverted highlight, but I'd like to include the numbers, too. The parentheses should be a submatch that will have an inverted bg, since the code:
https://github.com/folke/todo-comments.nvim/blob/8febc60a76feefd8203077ef78b6a262ea1a41f9/lua/todo-comments/highlight.lua#L34-L54
Possible config is:
    highlight = {
        pattern = [[.*<((KEYWORDS)\s*\d+)\s*:]],
        keyword = 'bg',
    },

This plugin will replace KEYWORDS into something like FIX|TODO|INFO, so we need an extra pair of parentheses around KEYWORDS, just like the above config.
However it will not work again, because present implementation uses keywords without numbers to index your config:
https://github.com/folke/todo-comments.nvim/blob/8febc60a76feefd8203077ef78b6a262ea1a41f9/lua/todo-comments/highlight.lua#L199
So even if we matched the right thing in highlight.pattern config, it will not be in keywords config.
So I think it's not something that can be accomplished by a pattern. Needs an extra feature.

Ooh, now I get it. I'm sorry for my misinterpretation of your problem...

I have a similar format insofaras there's data attached to the keyword before the : delimiter, like this:
// TODO(author@example.com): The message

It would be very nice to be able to highlight the (...) part differently from the keyword and the text that follows.  Additionally, it would be very nice to have this data show in a dedicated column in Telescope, but I think that's a different issue.

I would also like to have something like TODO(name or scope): highlighted with the part in parens.

I ended up poking apart the code and figured out why I couldn't get it working
Only the 'keyword' part of the pattern is highlighted. However, you can't extend the keyword part of the pattern, since it will then fail to look up highlighting information.
I finally got it working like so:
    {
        'folke/todo-comments.nvim',
        dependencies = { 'nvim-lua/plenary.nvim' },
        opts = {
            signs = false,
            highlight = {
                pattern = [[.*<(%(KEYWORDS)%(\(.{-1,}\))?):]]
            }
        },
        config = function(_, opts)
            require('todo-comments').setup(opts)

            -- todo-comments.config.keywords is the list of keyword aliases.
            -- It is used to map from the matched pattern to one of the highlight group names.
            -- Add a custom __index that fuzzy matches against the KEYWORD(...) pattern
            local o = require('todo-comments.config')
            setmetatable(o.keywords, { __index = function(t, k)
                local kw = vim.fn.matchstr(k, [[^\w\+]])
                if kw == '' then
                    return nil
                else
                    return rawget(t, kw)
                end
            end})
        end
    },

I also needed to change https://github.com/folke/todo-comments.nvim/blob/bca0e00644c22a3eecedce703c0db080dd6bdc55/lua/todo-comments/highlight.lua#L50 to local start = str:find(kw, 0, true) to prevent the matched text from being interpreted as a lua pattern by string.find, since it treats the ( and ) characters specially.
With that, it finally works and highlights proper:

This is all pretty accursed as you can imagine. Maybe @folke has a suggestion for how this could be made into a proper feature based on this?

I've opened a pull request implementing this feature (#255). If you'd like to try it out, you can use the following lazy.nvim spec:
{
  -- https://github.com/folke/todo-comments.nvim/pull/255
  'LunarLambda/todo-comments.nvim',
  branch = 'enhanced-matching',
  dependencies = { 'nvim-lua/plenary.nvim' },
  opts = {
    highlight = {
      pattern = {
        -- NOTE(xyz):
        [[.*<(%(KEYWORDS)%(\(.{-1,}\))?):]],
        -- TODO 123:
        [[.*<(%(KEYWORDS)%(\s+\d+)?):]],
      }
    }
  },
}

I hadn't seen #180. It's matching logic is more fuzzy, For example, it assumes the pattern ends with a single character that shouldn't be highlighted (e.g. :) and it looks like it might highlight extra whitespace too?
My PR maintains the fact only the first capture group of the pattern is highlighted.

Can your PR also match the trailing colon to be highlighted?

It does if you use the "wide" highlighting (default configuration), see the screenshot in https://github.com/folke/todo-comments.nvim/issues/185#issuecomment-1972101975

move the : inside the capturing group of the pattern, and use the non-wide highlighting

It's ok. No need to provide an example. I was just interested if it could be done and your explanation is perfectly comprehensive. Looking forward to your PR getting merged :smile:


Disable enable_spectator_access setting for limited plan realms.

First commit disables the setting in frontend for limited plan realms.
Second commit adds code to set the setting to False on changing plan to limited.

Fixes:  https://chat.zulip.org/#narrow/stream/9-issues/topic/Web-public.20streams

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

@alya thoughts on the visual design? It's a bit unfortunate that it's not 100% obvious from page structure that the upgrade tip only applies to the one disabled setting on the next line. I could imagine instead skipping the upgrade tip and just having that be a thing that we discuss clearly on the linked /help/ page.

Thanks for working on this @sahil839! I posted a fairly detailed batch of comments.

Left a couple of comments. Also a couple of points -

We do not change the setting if we are disabling them for other settings which are not allowed on limited plans like message retention, etc.
Also, do we want to reset the setting value to the value that was before we disabled the setting when upgrading again from limited plan.

Sorry, can you explain in more detail what you mean about other settings?
I guess this is a bit tricky. I noticed that in the screenshot the checkbox is greyed out but checked. Would that be interpreted as the setting being "off", or as it being "on" and impossible to turn off?
Anyway, maybe a more detailed explanation of how message retention, etc. works would help. :)

@alya thoughts on the visual design? It's a bit unfortunate that it's not 100% obvious from page structure that the upgrade tip only applies to the one disabled setting on the next line. I could imagine instead skipping the upgrade tip and just having that be a thing that we discuss clearly on the linked /help/ page.

Mm, I didn't feel like it was especially confusing when playing with the PR earlier. Maybe we could change the text to "Setting available on Zulip Cloud Standard..." to try to clarify the scope?
I think having the banner there is better than relegating the info to /help.

Updated the PR -

Call do_set_realm_property in do_change_realm_plan_type to change enable_spectator_access.
Added assertion statements in do_create_realm to test both the cases where plan_type is explicitly passed as limited and when no value of plan_type is passed and we assume limited plan if settings.BILLING_ENABLED is True.
Extended test_fetch_raw_message_spectator test to check the case where a limited plan realm has enable_spectator_access as True. Do we want to add code to the view function to not allow setting enable_spectator_access as True on limited realms?

Still holding off for the change to either change the banner text or something else to mention clearly that this banner is only for that setting.

Left a couple of comments. Also a couple of points -

We do not change the setting if we are disabling them for other settings which are not allowed on limited plans like message retention, etc.
Also, do we want to reset the setting value to the value that was before we disabled the setting when upgrading again from limited plan.

Sorry, can you explain in more detail what you mean about other settings?
I guess this is a bit tricky. I noticed that in the screenshot the checkbox is greyed out but checked. Would that be interpreted as the setting being "off", or as it being "on" and impossible to turn off?
Anyway, maybe a more detailed explanation of how message retention, etc. works would help. :)

Ohh,the screenshot above was outdated, I have updated the screenshot, since we set the setting to False in server on downgrading the plan.
And regarding the message retention setting, suppose initally the realm is on Standard plan and realm message retention setting is set to some x number of days. Then if realm is downgraded to Limited plan, the setting is disabled in the UI but value still remain that x number of days and we do not change it again to the default value of forever like we are doing for spectator access setting.

Ah, got it, thanks!
Yeah, OK, it's not perfect, but I think the simplest approach is to err on the side of making sure an org doesn't accidentally expose any data. You wouldn't want to be surprised by web-public streams being turned on if your org stopped paying for Zulip Standard a year ago and you've forgotten all about this feature.
So I would say let's go with what I believe you have -- disabling the setting when the org is downgraded, and keeping it disabled when you upgrade again.
@timabbott does that seem reasonable?

So I would say let's go with what I believe you have -- disabling the setting when the org is downgraded, and keeping it disabled when you upgrade again.

That sounds correct to me.

Do we want to add code to the view function to not allow setting enable_spectator_access as True on limited realms?

Yeah, that would probably be the most consistent thing to do. It can be a follow-up this week.

And regarding the message retention setting, suppose initially the realm is on Standard plan and realm message retention setting is set to some x number of days. Then if realm is downgraded to Limited plan, the setting is disabled in the UI but value still remain that x number of days and we do not change it again to the default value of forever like we are doing for spectator access setting.

Because this setting is custom configuration for each stream as well as the realm as a whole, it'd be fairly annoying to restore whatever you'd configured when upgrading again. So I'd prefer to not automatically do something here.


RUSTSEC-2021-0060: aes-soft has been merged into the aes crate

aes-soft has been merged into the aes crate

Details

Status
unmaintained

Package
aes-soft

Version
0.6.4

URL
https://github.com/RustCrypto/block-ciphers/pull/200

Date
2021-04-29

Please use the aes crate going forward. The new repository location is at:
<https://github.com/RustCrypto/block-ciphers/tree/master/aes>
AES-NI is now autodetected at runtime on i686/x86-64 platforms.
If AES-NI is not present, the aes crate will fallback to a constant-time
portable software implementation.
To force the use of a constant-time portable implementation on these platforms,
even if AES-NI is available, use the new force-soft feature of the aes
crate to disable autodetection.
See advisory page for additional details.

Closing as I can't find this dependency in the app.


[WIP] Add form validation (using redux-form)

Very early WIP to get some validation similar to:

[x] Bootstrap redux-form
[x] Review props of existing fields to embed redux-form ones
[x] Add a validation prop to all component handling its own validation
[x] Allow to validate a field according to other record fields
[ ] Update example app to use better validation
[ ] Write some documentation about form validation

Validation is now working. For instance, with the following <Edit /> component:
<Edit title={PostTitle} validation={{
        title: { required: true },
        teaser: { required: true },
        average_note: { min: 0, max: 5 },
        body: { custom: (value, record) => {
            if (value === record.teaser) {
                return 'Body and teaser should be different.';
            }

            return '';
        }}
    }} {...props}>

We got the following form:

Switching to RFR. We can now embed validation on <Input /> directly, like:
<Create {...props}>
    <TextInput label="Title" source="title" validation={{ required: true }} />
    <TextInput label="Teaser" source="teaser" validation={{ required: true }} />
    <TextInput label="Average note" source="average_note" validation={{ min: 0, max: 5 }}/>
</Create>

Or still in the <Create /> or <Edit /> components:
<Create
    {...props}
    validation={{
        title: { required: true },
        teaser: { required: true },
        average_note: { min: 0, max: 5 },
    }}
>
    <TextInput label="Title" source="title" />
    <TextInput label="Teaser" source="teaser" options={{ multiLine: true }} />
    <TextInput label="Average note" source="average_note" />
</Create>


Nitro for Germany

Source
https://horizon.tv
Channels
<channel id="NitroGermany.de"><display-name>Nitro Germany</display-name><icon src="https://ocdn.eu/ptv2-images-transforms/1/VGnkrdsb2dvLW1pZ3JhdGVkL25pdHJvLmpwZ5KVAmQAwsOVAgAowsM"/><url>https://horizon.tv</url></channel>
Notes
No response

NitroGermany.de is not a valid TVG-ID. It has changed to Nitro.de


Suggestions with no user input

It would be great to have a blankSearch option to enable the display of the typeahead menu. If true, the suggestion menu should open when the user's focus is on the input box, even with no input yet. This will be helpful to show initial suggestions/recommendations.

This functionality already exists and is documented here: https://typeahead.js.org/examples/#default-suggestions

Thanks for helping!


Support Terraform?

To generally support cloud infrastructure, a tool like Terraform can automatically manage cloud resources. It might be useful to allow a terraform configuration/plan to be given to VCI for wider cloud support.
However, if someone knows how to use terraform, they could just use it directly.

This no longer seems like a useful construct. If someone already knows Terraform, they probably don't need the aid of this package.


[pulsar-client] Support receiverQueueRefillThreshold configuration.

org.apache.pulsar.client.impl.ConsumerImpl#receiverQueueRefillThreshold
       this.receiverQueueRefillThreshold = conf.getReceiverQueueSize() / 2;
Currently the configuration is fixed, do you consider letting the user decide?

@mingyifei
Why do you want to change this threshold ?

I can control how often it initiates a pull request to the broker

I can control how often it initiates a pull request to the broker

This value is determined by the consumption rate. If the consumption is very slow, it may be better to configure it to 0.7-0.9. 0.5 may be a compromise

I wonder whether different value has better performance. You'd better give more reason to make the value configurable. @mingyifei

This config option no longer exists. Closed as stale.


Pin DeepSpeed until patch

Yet another deepspeed release that broke things, this time though we can't install it on our main runners so we need to pin until a fix is released so PR CI can pass.
w.r.t: https://github.com/microsoft/DeepSpeed/issues/4984

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Autorest Regen Preview to 3.0.0-alpha.20230629.4 by Chun Yu from refs/pull/3479/head

Triggered from https://github.com/Azure/autorest.csharp/pull/3479

API change check
API changes are not detected in this pull request.


hint about stack space

I suggest adding a hint somewhere in the book that in this environment, threads have very limited stack space. So you may often encounter stack overflow problems. The stack size can be specified in this way:
thread::Builder::new().stack_size(4096).spawn(|| {
    // do something
})?;

Just starting the training and I found I needed to increase the system event task's stack size to get any the hardware-check example to work, otherwise I saw this error:
***ERROR*** A stack overflow in task sys_evt has been detected.

I added this line to sdkconfig.defaults after eventually finding this documentation:
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=9216

It took me a while to piece this together so some hints for new users in the training materials themselves would be helpful for the next person struggling with this issue.

to

Just starting the training and I found I needed to increase the system event task's stack size to get any the hardware-check example to work, otherwise I saw this error:
***ERROR*** A stack overflow in task sys_evt has been detected.

I added this line to sdkconfig.defaults after eventually finding this documentation:
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=9216

It took me a while to piece this together so some hints for new users in the training materials themselves would be helpful for the next person struggling with this issue.

Which devkit were you using?

@SergioGasquez I apologize I'm not sure how to answer your question , but here are the contents of the config files that hopefully include the info you're looking for:
cat .cargo/config.toml
[build]
target = "xtensa-esp32-espidf"

[target.xtensa-esp32-espidf]
linker = "ldproxy"
runner = "espflash --monitor"
# Future - necessary for the experimental "native build" of esp-idf-sys with ESP32C3
# See also https://github.com/ivmarkov/embuild/issues/16
rustflags = ["-C", "default-linker-libraries"]

[unstable]
build-std = ["std", "panic_abort"]
build-std-features = ["panic_immediate_abort"]

[env]
# Enables the esp-idf-sys "native" build feature (`cargo build --features native`) to build against ESP-IDF (v4.4.4)
ESP_IDF_VERSION = { value = "tag:v4.4.4" }

# These configurations will pick up your custom "sdkconfig.release", "sdkconfig.debug" or "sdkconfig.defaults[.*]" files
# that you might put in the root of the project
# The easiest way to generate a full "sdkconfig[.release|debug]" configuration (as opposed to manually enabling only the necessary flags via "sdkconfig.defaults[.*]"
# is by running "cargo pio espidf menuconfig" (that is, if using the pio builder)
#ESP_IDF_SDKCONFIG = { value = "./sdkconfig.release", relative = true }
#ESP_IDF_SDKCONFIG = { value = "./sdkconfig.debug", relative = true }
ESP_IDF_SDKCONFIG_DEFAULTS = { value = "./sdkconfig.defaults", relative = true }
# ESP-IDF will be installed in ~/.espressif so it can be reused across the different examples.
# See also https://github.com/esp-rs/esp-idf-sys#esp_idf_tools_install_dir-esp_idf_tools_install_dir
ESP_IDF_TOOLS_INSTALL_DIR = { value = "global" }

cat rust-toolchain.toml
[toolchain]
channel = "esp"

I see you are using an ESP32, do you know the name of the development board that you are using?

Yes! It is a FireBeetle 2 from DFRobot.


Bug: Map bounds are incorrectly calculated, causing visible tiles to not load

First of all, thank you for this amazing project!
The issue is simple: the map view wrapper around the Leaflet map seems to be calculating the bounds of the canvas incorrectly.
If you try to scroll down (i.e. move south), then you quickly enter a gray region where the tiles have not yet loaded.
These tiles will never load until you scroll further down (indicating that they initially do not get requested).

This issue seems to be connected to how Leaflet works. The same issue is present in React Leaflet too. I tried applying the fix mentioned in the accepted answer, but the issue still persists.

Thanks @ShreyashKore .
What I did instead, is port over the desktop map implementation to wasm, by changing the caching decorator and the downloader decorator (the only two classes with JVM dependencies or coroutine dependencies not working on wasm). And it works surprisingly well. Thus I do not see a need to use the Leaflet on web anymore; do you have any input here or do you see any reservations? It only increases my static size by 0.3 MB.
The parts that needed changing were (note: the caching part was quickly done for proof-of-concept, but is likely not ideal, as it just stores encoded strings in local storage):
decorateWithDistinctDownloader:
private sealed interface Message<K, T> {
    class DownloadComplete<K, T>(val key: K, val result: T) : Message<K, T>
    class DownloadFail<K, T>(val key: K, val exception: Throwable) : Message<K, T>
}

fun <K, T> ContentRepository<K, T>.decorateWithDistinctDownloader(
    scope: CoroutineScope
): ContentRepository<K, T> {
    val origin = this
    val mutex = Mutex()
    val mapKeyToRequests: MutableMap<K, MutableList<CompletableDeferred<T>>> = mutableMapOf()

    return object : ContentRepository<K, T> {
        override suspend fun loadContent(key: K): T {
            val deferred = CompletableDeferred<T>()
            val isRequestNew: Boolean

            mutex.withLock {
                isRequestNew = mapKeyToRequests.getOrPut(key) { mutableListOf() }.isEmpty()
                mapKeyToRequests[key]!!.add(deferred)
            }

            if (isRequestNew) {
                scope.launch {
                    val result = try {
                        val res = origin.loadContent(key)
                        Message.DownloadComplete(key, res)
                    } catch (e: Throwable) {
                        Message.DownloadFail(key, e)
                    }

                    mutex.withLock {
                        mapKeyToRequests[key]?.let { requests ->
                            when (result) {
                                is Message.DownloadComplete -> {
                                    requests.forEach { it.complete(result.result) }
                                }
                                is Message.DownloadFail -> {
                                    requests.forEach { it.completeExceptionally(result.exception) }
                                }
                            }
                            mapKeyToRequests.remove(key)
                        }
                    }
                }
            }
            return deferred.await()
        }
    }
}

decorateWithDiskCache:

interface CacheDir {
    fun ensureExists()

    fun dirExists(): Boolean

    fun resolve(path: String): CacheFile
}

interface CacheFile {
    fun readBytes(): ByteArray?
    fun writeBytes(bytes: ByteArray)
}

object WebCacheImpl {
    // TODO: Finalize implementation: move to something other than localStorage?
    fun create(dirName: String): CacheDir {
        window.localStorage.clear()
        return object : CacheDir {
            override fun ensureExists() {
                // Nothing to do here?
            }

            override fun dirExists(): Boolean {
                return true // Nothing to check here?
            }

            override fun resolve(path: String): CacheFile {

                val string = window.localStorage.getItem(path)?.takeIf { it.isNotBlank() }
                return WebCacheFileImpl(contentString = string, key = path)
            }

        }
    }
}

@OptIn(ExperimentalEncodingApi::class)
class WebCacheFileImpl(val contentString: String?, val key: String): CacheFile {
    override fun readBytes(): ByteArray? {
        println("Attempting to read string with len ${contentString?.length}: $contentString")
        return contentString?.let { it.decodeBase64Bytes().also { println("read is ${it.encodeBase64()}") } }
    }

    override fun writeBytes(bytes: ByteArray) {
        println("Writing under key $key: ${bytes.encodeBase64()}")
        window.localStorage.setItem(key, bytes.encodeBase64())
    }
}

fun ContentRepository<Tile, ByteArray>.decorateWithDiskCache(
    backgroundScope: CoroutineScope,
    cacheDir: CacheDir,
): ContentRepository<Tile, ByteArray> {

    class FileSystemLock

    val origin = this
    val locksCount = 100
    val locks = Array(locksCount) { FileSystemLock() }

    fun getLock(key: Tile) = locks[key.hashCode() % locksCount]

    return object : ContentRepository<Tile, ByteArray> {
        init {
            cacheDir.ensureExists()
        }

        override suspend fun loadContent(key: Tile): ByteArray {
            if (!cacheDir.dirExists()) {
                return origin.loadContent(key)
            }
            val file = with(key) {
                cacheDir.resolve("tile-$zoom-$x-$y.png")
            }

            val fromCache: ByteArray? = synchronized(getLock(key)) {
                file.readBytes()
            }

            val result = if (fromCache != null) {
                fromCache
            } else {
                println("Cache miss for $key")
                val image = origin.loadContent(key)
                backgroundScope.launch {
                    synchronized(getLock(key)) {
                        // save to cacheDir
                        file.writeBytes(image)
                    }
                }
                image
            }
            return result
        }
    }
}

One thing to note is that this issue resolves automatically once you resize the window. Could it be that Leaflet is still using stale dimension values from the first layout?
https://github.com/ShreyashKore/wonderous_compose/assets/46917404/28d8fc1f-145b-4f2f-a31e-ece6c5337550

That is a good idea. I will need to look into the desktop MapView code in depth to provide any feedback (I had simply copy pasted that from the Compose repository :P).
Also, In my opinion, this screen should use platform-specific components, to showcase Compose's interoperability features. Any idea how we can fix this issue while keeping Leaflet?

First of all, thank you for this amazing project!
The issue is simple: the map view wrapper around the Leaflet map seems to be calculating the bounds of the canvas incorrectly.
If you try to scroll down (i.e. move south), then you quickly enter a gray region where the tiles have not yet loaded. These tiles will never load until you scroll further down (indicating that they initially do not get requested).

And thanks for your kind words! I am happy that u r finding Wonderous helpful. I am planning to add more features in it. Feel free to share ur thoughts!

Ported in https://github.com/ShreyashKore/wonderous_compose/pull/19 - Thx @oblakr24


Exclude test output from npm package

The npm package for this module currently contains a 712 kB testling output file:
<EMAIL_ADDRESS>Would it be possible to add it to .gitignore?

Sure, that seems reasonable, since it can be reproduced easily if needed with an npm run command, and it's not required to run the tests.


Changing the mode from draw_circle to simple_select on event onTouchEnd throws an error

When the user draws a circle, after the shape is created the mode needs to be changed to simple select, but instead an error is thrown:
Console error

The code is trying to access Constants.modes.SIMPLE_SELECT

Constant modes doesn't contain property with key SIMPLE_SELECT - it's in lower case.

Hi, this works for me in the demo. Select draw_circle in the mode select, draw a circle, the mode switches back to simple_select.
Can you debug what's specific in your setup?

your demo throws this error with any interaction after initial draw:get_features_and_set_cursor.js:14 Uncaught TypeError: Cannot read properties of undefined (reading 'indexOf')
at N (get_features_and_set_cursor.js:14:18)
at i.mouseup (events.js:63:20)
at Ct.fire (evented.js:119:26)
at i.fire (setup.js:53:24)
at Oo.mouseup (map_event.js:38:19)
at gr.handleEvent (handler_manager.js:325:58)

Hi, I think I'm running into a similar issue. I've tried the demo as well in Chrome, Firefox, and Safari, and on Linux and MacOS. The demo for me shows non-geodesic lines whenever a mode that's not the draw_circle is selected:

The object also has an extra field which is "undefined".
In this code: https://github.com/zakjan/mapbox-gl-draw-geodesic/blob/master/src/modes/index.js#L11-L22 what is happening when I step through the browser's debugger is patchDrawLineString(modes[Constants.modes.DRAW_LINE_STRING]) calls the patch function with undefined presumably because Constants.modes.DRAW_LINE_STRING is undefined.

Hi, the root cause was in incorrect reading existing mapbox-gl-draw modes after upgrading to mapbox-gl-draw 1.4.3. Fixed in https://github.com/zakjan/mapbox-gl-draw-geodesic/commit/f6ca244aa973160c69941ae4850e8d86771ec8d1 and released as 2.3.1. Could you try it?

Hi this fix seems to work for me, thanks! I figured it was something better than my hardcoded solution but I'm not as familiar with the mapbox library.


{BUG} /usr/bin/env: 'bash\r': No such file or directory

After building the docker image and running it.
docker run -p 8000:9000 --rm panja:latest
it's giving an error
/usr/bin/env: 'bash\r': No such file or directory

As mentioned on another thread  https://github.com/exaco/laravel-octane-dockerfile/issues/4
I've updated ENTRYPOINT
CMD ["/usr/bin/supervisord","-c","/etc/supervisor/conf.d/supervisord.app.conf"]

and it worked!
but for some reason. it's giving a new error

`In StreamHandler.php line 216:
There is no existing directory at "/www/wwwroot/newpanja.test/storage/logs"
and it could not be created: Permission denied`

but the file does exist inside docker.

Please run ls -la in storage/logs and send the output.

The /usr/bin/env: 'bash\r': No such file or directory is about OS line endings. You should remove \r chars. If you are using VSCode, open the entrypoint.sh and all other bash files and change the end of line sequence to LF and rebuild the image.

Thank you @smortexa that does fix the issue.

do you know why storage/logs it's taking the local directory of my server in instead of /var/www/html

Did you change the WORKDIR in the Dockefile?

Nope

Sorry I missed Change directory to your Laravel project
lemme try to rebuild the image again!

this error is already mentioned on  https://github.com/exaco/laravel-octane-dockerfile/issues/3

As you have mentioned to remove --no-dev from the composer. it does work but octane stopped working.
Could not open input file: artisan

Thank you @smortexa it works.
i think it's best if we can pass WORKDIR via  --build-arg  what do you think?

IMO, It's OK what is it.


fix small spelling error #891

fixes #891

Thanks!! We have a new contributor!

haha, you can hardly call this a contribution ;)


!>(STREAMs!) Manchester United vs Leicester City LIVE FreE 10. 11. 2024

Leicester City vs Manchester United live stream: English Premier League 2024 prediction, TV channel, how to watch, start time, odds Manchester United vs Leicester City : How to watch, schedule, live stream info, game time, TV channel
Manchester United v Leicester City live score and video online live stream starts on 10 November 2024 at 10:45 time in English Premier League - Rugby Union. English Premier League 2024 leaders Leicester City travel to Ellis Park, Johannesburg on Saturday with manager Mikel Arteta bidding to extend a surprising undefeated run away to Manchester United.
The Gunners won on each of their last two visits to west Melbourne in the top flight without particularly imposing themselves on their opposition, this time it may well be different for a side who have established themselves as a surprising early season contender for major honors.
Event details:
NAME: Leicester City vs Manchester United
DATE: 10 Nov 2024
TIME: 12:30 UTC .
VENUE: Stadium MK in Milton Keynes, Buckinghamshire United Kingdom
Manchester United, meanwhile, have work to do if they are to drag Leicester City into the battle for top four, rather than the title. Lose on Saturday and they will trail their rivals by 31 points, a sizeable gap to make up even with two-thirds of the season left to go.
Here is how you can watch the match and what you need to know: Manchester United and Leicester City are meeting up for their first leg of the season at 8.45 PM AEDT, 9.45 PM NZT on Saturday at Ellis Park, Johannesburg. The teams split their matchups last year, with Manchester United winning the first 2-0 on the road and Leicester City taking the second 4-2. Manchester United are taking on Melbourne rivals Leicester City at Ellis Park, Johannesburg as the Blues aim to close the 31-point gap between the two clubs in the English Premier League 2024 Saturday, 29 July 2024.
Manchester United had been going along nicely under Graham Potter until a chastening defeat at his former club Leicester City last weekend, and now face two tricky matches – against Leicester City and Manchester United – before the English Premier League break. The Gunners are looking to reach the English Premier League on top of the table and got back on track last weekend with a 5-0 win over Leicester City, having slipped to a 1-1 draw at Leicester City in their previous match. Leicester City won both of the past two corresponding fixtures away at Manchester United, earing a 4-2 victory last season Saturday, 29 July 2024.
Leicester City live comments Leicester City v Manchester United tv usa Leicester City vs Manchester United today Leicester City vs Manchester United line up Leicester City tv live stream free onlined

dfgr

hggh

cbbcbb cc cbc


Question about FID-k

Hi authors,
Again, I really appreciate you for sharing your codes.
I would like to ask a question about FID-k.
As written in your paper, FID-k means the FID is computed after blurring all the images by a Gaussian filter with radius k.
In the sentence, what is the value of sigma for the Gaussian filter? (sigma is the hyperparameter about torchvision.transforms.GaussianBlur which is described in https://pytorch.org/vision/stable/generated/torchvision.transforms.GaussianBlur.html )

Or, could you share the code for measuring FID-k not FID-0?

I think I followed some previous work (not sure which one exactly), use
$\sigma=\sqrt{(((k*2+1)^2 - 1)/12)}$
and
T.GaussianBlur(kernel_size=(1+2k, 1+2k), sigma= $\sigma$ )

Thank you for answering!


qt: Give PrivateSend separate instances of SendCoinsDialog + CCoinControl

Prior to this PR there are (imo) flaws in the behaviour of the PrivateSend tab.

If you enter an address, label, add a recipient, do whatever in the normal Send tab its also reflected in
the PrivateSend tab
If you select fully mixed coins in the Send tab's CoinControl they are also selected
in the PrivateSend tab if you switch over.
If you select non-fully mixed coins in the Send tab's CoinControl you
get a warning when switching over to PrivateSend tab due to non-fully
mixed coins selected in CoinControl.

With giving the private send tab separate instances of SendCoinsDialog and CCoinControl they are independent from each other which just makes more sense imo and by doing this the points above are solved. I would say this just better reflects the actual behaviour of a tab.

Needs rebase

Rebased!


V0.1

Refer to http://www.comp.nus.edu.sg/~cs2103/AY1617S2/contents/handbook.html#handbook-project-v01
Edit about us and README
Grading: To consider this milestone as reached, you should have all V0.0 deliverables completed and the two documents mentioned above updated.

Done


Investigate performance issues of Web UI

The WebUI probably needs some overhaul and investigation of performance bottlenecks.
I strongly assume that the issue is not hardware.
TODO:

[ ] Find out where potential bottlenecks occur (probably wrong timeouts): Web UI, Server or Plotter?
[ ] Is there any issue related to slow DB queries?

@romain-jacob could you please tell me where exactly the issues occur? I do see that the status messages come in too slowly. Potentially this needs some re-engineering of the protocol - especially concerning timeouts.

Just everything is slow. The plotter (so, Dash) is fine, but the rest of the GUI lags a lot, and I don't manage to get the IPs of the clients. It looks like things just time out. Data still comes in fine and I can see the clients registered in the database, so that's alright.

Yes, that's most likely the culprit. Still though, I'm a bit surprised that things timed out already. There are so many clients... no sure why it takes so long to get a reply from the client.

I've just restarted mmserver on the VM and see that autopower 16 always re registers. There could be an issue either with this device or the server.

Another thing could be that the clients are hanging somewhere in the management thread.

I have the feeling that this needs some testing with an actual setup.

I think, I pinned the issue down: 10 workers for gRPC aren't enough for that many clients:
https://github.com/nsg-ethz/autopower/blob/1911af784f3ebd97050e28a316931f3fd56d8f28/server/server.py#L573
I've set the number higher on the server and now it should work. Not the best solution, but it should work for now.

I don't get what the problem you mention about autopower16. Looks fine to me.
On the other hand, I observed twice now some clients that used to be registered and that lost their connection to the server (autopower9 for a long time, and I just lost autopower8 last night). I'm not sure what happens there (and I can't SSH into those since they are behind a NAT). That should be looked at more closely eventually, but that's the wrong issue for this...

Oh, I see what you are saying with 16 now. Looks like it keeps registering new measurements... strange

autopower16 also constantly registers with the server. If you run cli.py on the server, you'll see what I mean. You'll get messages saying that the client re registered.

I'll try rebooting 16 and see if that fixes it.

Bottleneck 1:
Password verification for management clients. Authentication needs some rethinking
Bottleneck 2: (Probably)
Streaming in registerClient(). According to https://grpc.io/docs/guides/performance/#python Python is slow for streaming RPCs. This is python specific.
I think it makes sense to discuss if we should rewrite the server in C++ too (I am slightly in favor of doing so). It makes sense for scalability reasons. The servers' code is not that large.

I'm not against it. Since the client is already in C++, that would make sense. I don't have a good sense for the amount of work that would represent though.

Writing it down here to make sure I don't forget:
Right now it seems we poll every client as soon as the managementUI is opened. That's quite wasteful and unnecessary. Let's talk about it.

--> Only display DB related info, no status requests.

I had another thought about the data upload speedup and the acking strategy. I think that - if we ack after writing into the DB and not commit, ack, send ack off, but rather write everything into the DB, ack everything, send ack off to client we always have the potential of acks.
However, if we also introduce an index for the ack_id and server_measurement_id on the server, it should be fairly fast. The index could introduce something like a hash table lookup which would work in ~ O(1)

Okay. As I said, I don't understand this process well enough to have an opinion at the moment. You can try something out you think is promising and we can test what happens with the two clients that are currently as ZhdK

Ok. I've now implemented the suggestion - with duplicate checks in SQL: https://github.com/nsg-ethz/autopower/commit/a9d6f1497fcdd2b4a8eb4a9a82b9d96e25547706
I could not produce duplicates and the client side DB table correctly sets the was_uploaded flag. Also the upload is way faster now. I believe that this should be good now.
Still, it's worth a test e.g. as you suggested.

After some more investigation, the main performance bottleneck is the check if a client is authorized as management client. This slows down management requests.
We need to have a way to only allow management clients to issue requests to "dangerous" functions such as starting/stopping measurements.
The question is, if we can verify the connection instead of each call.

Do you understand why this check takes so long? Shouldn't it be "just" one RTT between the client and the server?

The password verification is designed to be slow. This is done to avoid brute force attacks if the hash would be leaked.
We don't really have this issue.
We however need a way to authenticate management clients vs. normal clients. So the implementation needs to be different.

Adding some more thoughts and research:
I think it’s worth moving away from the password hashing approach to JWT tokens. I‘ll try to switch to them in future.

I believe this is now fixed. We're now using JWT tokens with shared secrets. Since every management client has its own shared secret (and for now it's stored at one place only), I believe it's reasonably secure and way faster.


Store data about raffles?

tb_raffle
id, primary_key=True, autoincrement=True
winner_user_id, int, foreign key to tb_user.id, nullable=False, index=True
points, int, nullable=False

tb_raffle_participant
raffle_id, primary_key=True, autoincrement=False, foreign key to tb_raffle.id
user_id, int, primary_key=True, autoincrement=False, foreign key to tb_user.id

I start so many raffles, i'm not sure if you have enough space on your server for this.

Due to pajbot being moved into maintenance mode I'm closing this feature request.


Cache the results of permuteColumn()

I was poking around with the ParityGenerator today, and after doing some profiling, I realized that a huge percentage of the time was spent in permuteColumn(). Since the results of permuteColumn() will always be the same for a given combination of steps, and since there's only going to be, at most, 16 different sets of permutations for dance-single, we can save quite a bit of time by just caching these results.
Running it on Airtraveler.ssc with the default settings:
without cache: 25216ms
with cache: 11701ms

Oh wow, so maybe you can just disregard this, it seems the performance in Firefox is about 10x worse than Chrome.


nixos/stubby: clearer wording for upstreamServers

Indicate that upstreamServers actually replaces defaults instead of adding to default.

Motivation for this change
Was not clear whether it would add to existing upstreams or replace them. It replaces them.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

Thank you for your contribution.


Homebrew install fails

brew install kumo
==> Downloading https://search.maven.org/remotecontent?filepath=com/kennycason/k
curl: (22) The requested URL returned error: 504 Gateway Time-out
Error: An exception occurred within a child process:
DownloadError: Failed to download resource "kumo"
Download failed: https://search.maven.org/remotecontent?filepath=com/kennycason/kumo-cli/1.17/kumo-cli-1.17.jar

@eramire2 I'll check it out. it used to work. :)
I just did a quick search and see that version 1.17 is released to maven central: https://search.maven.org/artifact/com.kennycason/kumo-core/1.22/jar
The Download failed url you posted also resolves for me: https://search.maven.org/remotecontent?filepath=com/kennycason/kumo-cli/1.17/kumo-cli-1.17.jar
I'll check out the script.

I'll be checking this out again today as i release a new version.


Fix warnings

Fixes the following warnings:
tests/test_cell_collection.py: 52 warnings
  /home/eleftherios/Projects/BBP/VOXCELL/voxcell/.tox/py3/lib/python3.10/site-packages/voxcell/cell_collection.py:76: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead
    is_cat_str = (pd.api.types.is_categorical_dtype(series) and

and
tests/test_voxel_data.py::test_volume
  /home/eleftherios/Projects/BBP/VOXCELL/voxcell/.tox/py3/lib/python3.10/site-packages/voxcell/voxel_data.py:249: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
    return self.count(values) * self.voxel_volume

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@abb931d). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #27   +/-   ##
=======================================
  Coverage        ?   94.22%
=======================================
  Files           ?       13
  Lines           ?      987
  Branches        ?        0
=======================================
  Hits            ?      930
  Misses          ?       57
  Partials        ?        0

Flag
Coverage Δ

pytest
94.22% <0.00%> (?)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Group Template Data View

Hey Guys,
I've brought this idea up before in meetings, but thought I'd put it in here just for the sake of documentation. I think it would be a good idea to have the previous values still viewable in the quick entry 'Group' pages for in process tanks. Using the example of tank day or brand, I feel like most people would want to see these previous values just for the sake of continuity. Might help someone not mistakenly enter data on the wrong tank or enter a piece of data that makes no sense.

Thanks @CurtisSunriver. Hoping we can chat this week about this more and prioritize this one. Are you using @CurtisSunriver  or @c49nelson moving forward?

The Sunriver one is where it is all funneled to
Get Outlook for iOShttps://aka.ms/o0ukef
[cid:SBC_BADGE_REVERSE_c1ef99ba-fe7e-4fd8-ad29-78186105a9ba.png]
Curtis Nelson
Lead Brewer
www.sunriverbrewingcompany.comhttp://www.sunriverbrewingcompany.com

From: bfaivre<EMAIL_ADDRESS>Sent: Wednesday, September 9, 2020 5:54:03 PM
To: DeschutesBrewery/brewerypi<EMAIL_ADDRESS>Cc: Curtis Nelson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [DeschutesBrewery/brewerypi] Group Template Data View (#253)
Thanks @CurtisSunriverhttps://github.com/CurtisSunriver. Hoping we can chat this week about this more and prioritize this one. Are you using @CurtisSunriverhttps://github.com/CurtisSunriver or @c49nelsonhttps://github.com/c49nelson moving forward?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/DeschutesBrewery/brewerypi/issues/253#issuecomment-689904027, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQW4JMEES5H5VB3HBXKYIDDSFAPSXANCNFSM4QIY2I4A.

OK - good to know. This is a duplicate to #251. I'm going to close this issue out, but reference in in #251.


Refactor join.go

Move non-join related functions out of join.go
Signed-ff-by: Janki Chhatbar<EMAIL_ADDRESS>

Seems good to me, please wait for release tag before we merge this. Let's make it part of 0.4.0

This can go in now..


Add Django Content

@marcoroth
I am a Django developer and maintainer of django-turbo-helper, which is turbo helper for Django.
Inspired by "turbo_power-rails", I just added some custom actions to the project, so Django developer can also use morph, turbo_frame_reload and other actions in Django, with the same way "turbo_power-rails" does.
Here is the source code https://github.com/rails-inspire-django/django-turbo-helper/blob/main/src/turbo_helper/turbo_power.py if you are interested.
I want to add the link to the doc of this project, to tell people this project can also work in Django, and I am sure many Django developers will like it. 👍
If you think this is good to go, please let me know and I will create PR in a bit.
Thanks for your great work on this project.

Hey @michael-yin, this is great!
Please feel free to add something to README to also mention the Django project. It would also be great to have something on https://hotwire.io about it down the road.


rust linter

https://github.com/adsharma/py2many/issues/266 slipped in because clippy isnt being run.
When I was adding linters, I didnt find an easy way to run clippy on a single file. c.f. https://github.com/rust-lang/rust-clippy/issues/5613
Maybe there is some other linter we might use.
Otherwise we need to create a Cargo.toml, etc to make cargo happy to run clippy on the single file.

https://github.com/rust-lang/rust-clippy#as-a-rustc-replacement-clippy-driver looks like it might work

Or we could have a static single Cargo.toml for all of the bins in tests/expected/.rs and use https://github.com/actions-rs/clippy-check

Closed by https://github.com/adsharma/py2many/pull/269


[CLI]: Too many files created in ~./local/share/wandb/artifacts/staging, causes DiskQuotaError

Describe the bug

A few dozen online WandB runs generate hundreds of thousands of files in ~./local/share/wandb/artifacts/staging. This triggers a DiskQuotaError, and training fails. Taken together, the actual number of individual media items being logged by all the runs would be at most a few hundred.
Running in offline mode appears to resolve the issue, though I haven't tried syncing yet.

Additional Files
No response
Environment
WandB version: 0.16.0+computecanada
OS: CentOS Linux v7
Python version: 3.11
Versions of relevant libraries:
Additional Context
This is significant because a few dozen runs can generate hundreds of thousands of files. On my cluster environment, this is enough to trigger a DiskQuotaError and make WandB effectively unusable. It's possible that using the compute node itself as the staging directory could work, but this isn't a good solution to the problem as if the job times out before finishing, then (I assume) any unsynced results would be lost.
I believe there are a number of possibly related issues:

https://github.com/wandb/wandb/issues/4535
https://github.com/wandb/wandb/issues/5055
https://community.wandb.ai/t/wandb-artifact-cache-directory-fills-up-the-home-directory/5224/3

Updating from WandB 16.0 to the latest version is currently impossible due to the packages offered on the cluster.

Hey @tristanengst,
Thanks so much for sharing this and sorry to hear you are running into issues here.
Happy to hear that running online worked initially.
In terms of getting you back on track -- if this is related to disk/ storage and artifacts as your cache file path suggests you should be able to clear this between runs with:
wandb artifact cache cleanup 0GB

Referenced in our docs here
Look forward to hearing back from you.

Hey @tristanengst,
I am checking in to see if the above has given you the functionality needed for your use case. Please let us know if you require further assistance and if not would you object to me closing this out for you?

Hi @tristanengst , since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!

The above works.


Implement gRPC support in Ballerina

Purpose

This feature introduces gRPC support in Ballerina such that it supports following,

Ballerina gRPC service should support all RPC types.
Ballerina Developer able to create gRPC service using Ballerina (code first approach) and the corresponding proto contract is generated at compile time automatically. Additionally, the developer has an option to create client connection at service compile time.(currently, it is done using annotation attribute “generateClientConnector” in server config) like below.
Generating client connector from service definition.
Supports defining message using supported primitive type and struct type.

Goals

Implementation of the v0.9 Ballerina gRPC support.
Resolves #4349

Approach

This feature implements the gRPC support spec:https://docs.google.com/document/d/17fwT4WK8OfV538WVSJT-_vSAPzkFn0mmM2ZgnaILVq

Release note

In the current ballerina supports implementing REST services over http. But gRPC services are proved to be faster than REST services because it is based on http/2 and protobuf 3 and it is binary. We are supporting gRPC  following, from onward Ballerina v0.9

Ballerina gRPC service should support all RPC types.
Ballerina Developer should be able to create gRPC service from either contract first approach or code first approach.

Documentation

From a user experience point of view, they will write gRPC services and connectors as same as HTTP and able to  get faster transport than REST services because. More details about the gRPC protocol are available in v0.9 of the spec: https://docs.google.com/document/d/17fwT4WK8OfV538WVSJT-_vSAPzkFn0mmM2ZgnaILVq

Automation tests

Unit tests

Yes

Integration tests

Yes

Samples

Unary Non Blocking Stub
Unary Blocking Stub
Server Streaming
Client Streaming
Bi-Directional Streaming

Closing since this was implemented and merged as part of another PR.


[Bug] [oracle-cdc] oracle cdc will lose data during the snapshot to incremental process

Search before asking

[X] I searched in the issues and found nothing similar.

Flink version
flink 1.13.5
Flink CDC version
flink 2.4.1
Database and its version
oracle 11g
Minimal reproduce step

Create a oracle table
Insert some data before synchronizing data
Write data to oracle continuously
Start sync task using the the following flink sql

CREATE TABLE `oracle_table`(
    PRIMARY KEY (`ID`) NOT ENFORCED,
   `ID` NUMBER(11),
   `NAME` STRING,
   `AGE` NUMBER(3)
) WITH (
   'connector' = 'oracle-cdc',
   'hostname' = 'localhost',
   'username' = 'flinkuser',
   'password' = '******',
   'database-name' = 'XE',
   'schema-name' = 'FLINKUSER',
   'table-name' = 'FLINKUSER.STUDENT',
   'debezium.database.tablename.case.insensitive' = 'false',
   'debezium.log.mining.strategy' = 'online_catalog',
   'debezium.log.mining.continuous.mine' = 'true',
   'port' = '1521',
   'scan.startup.mode' = 'initial'
);

CREATE TABLE `mysql_table`(
    PRIMARY KEY (`ID`) NOT ENFORCED,
   `ID` INT,
   `NAME` STRING,
   `AGE` INT
) WITH (
   'connector' = 'jdbc',
   'url' = 'jdbc:mysql://localhost:3306',
   'username' = 'user',
   'password' = '******',
   'table-name' = 'student'
);
INSERT INTO mysql_table SELECT ID,NAME,AGE  FROM oracle_table;

What did you expect to see?
Oracle cdc can fully synchronize the existing data of Oracle database tables and then incrementally synchronize the new data without data loss.
What did you see instead?
I found that the target table data is always less than the source table data. I further found that the data in the full snapshot phase was synchronized to the target table, but part of the redo log data generated in the full snapshot phase was not synchronized to the target table.
Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

@yunqingmoswu Had fixed in Release 3.0.1, Please update and retry.


Check that methods of Table update the schema properly

At best, the existing tests of the methods that return a new Table check whether this new Table has the correct data. We must also ensure that its schema is correct. This needs more tests.

Should be done after #98.

There should be a dedicated test for testing that the schema has been set up properly for a new Table.
This could be done in a new test, or inside of tests/safeds/data/tabular/containers/table/test_column_names.py (which currently seems to be responsible for testing the Table constructor method).

:tada: This issue has been resolved in version 0.13.0 :tada:
The release is available on:

v0.13.0
GitHub release

Your semantic-release bot :package::rocket:


python3-matplotlib - does not work

pi@raspberrypi:~/raspi-sump $ sudo apt-get install python3-matplotlib
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python3-matplotlib is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'python3-matplotlib' has no installation candidate

What Raspbian version are you running?

when I try to run it I get this:
pi@raspberrypi:~/raspi-sump/logs $ rsump.py &
[1] 1058
pi@raspberrypi:~/raspi-sump/logs $ Traceback (most recent call last):
File "/usr/local/bin/rsump.py", line 27, in
reading.water_depth()
File "/usr/local/lib/python3.5/dist-packages/raspisump/reading.py", line 70, in water_depth
log.log_reading(water_depth)
File "/usr/local/lib/python3.5/dist-packages/raspisump/log.py", line 19, in log_reading
csv_file = open(filename, 'a')
PermissionError: [Errno 13] Permission denied: '/home/pi/raspi-sump/csv/waterlevel-20180417.csv'

Sorry I have been very busy in my personal life lately and have not had much chance to look at anything.
The error is saying that there is a permission error in the csv folder.  Are there any files at all in that folder?
Do you even have a csv folder?
ls -al /home/pi/raspi-sump
ls -al /home/pi/raspi-sump/csv
I would like to see the contents of these folders, If you can run these two commands that would be helpful.

Thanks for helping.  Here is the results of those two queries.
pi@raspberrypi:~ $ ls -al /home/pi/raspi-sump
total 44
drwxr-xr-x  9 pi root 4096 Apr 17 22:26 .
drwxr-xr-x 18 pi pi   4096 Apr 17 22:17 ..
drwxr-xr-x  2 pi root 4096 Apr 17 18:37 charts
drwxr-xr-x  2 pi root 4096 Apr 17 18:37 cron
drwxr-xr-x  2 pi root 4096 Apr 19 00:01 csv
drwxr-xr-x  2 pi root 4096 Apr 17 18:37 docs
drwxr-xr-x  2 pi root 4096 Apr 17 20:32 logs
-rw-r--r--  1 pi root 4955 Apr 17 21:31 raspisump.conf
drwxr-xr-x  2 pi root 4096 Apr 17 18:38 sample_config
drwxr-xr-x  4 pi root 4096 Apr 17 18:37 web
pi@raspberrypi:~ $ ls -al /home/pi/raspi-sump/csv
total 44
drwxr-xr-x 2 pi   root  4096 Apr 19 00:01 .
drwxr-xr-x 9 pi   root  4096 Apr 17 22:26 ..
-rw-r--r-- 1 pi   root    80 Jan 23 00:19 README.md
-rw-r--r-- 1 root root   286 Apr 17 22:26 waterlevel-20180417.csv
-rw-r--r-- 1 pi   pi   14976 Apr 18 23:59 waterlevel-20180418.csv
-rw-r--r-- 1 pi   pi    8398 Apr 19 13:29 waterlevel-20180419.csv
pi@raspberrypi:~ $

I did open up the csv for today and this is the output in ssh.
00:01:05,7.3
00:02:05,7.5
00:03:05,7.5
00:04:05,7.5
00:06:05,7.5
00:07:05,7.5
00:08:05,7.3
00:09:05,7.3
00:11:05,7.4
00:12:05,7.4
00:13:05,7.4
00:14:05,7.6
00:16:06,7.4
00:17:05,7.6
00:18:05,7.6
00:19:05,7.6
00:21:05,7.8
00:22:05,7.8
00:23:05,7.8
00:24:05,7.6
00:26:05,7.8
00:27:05,7.8
00:28:05,7.5
00:29:06,7.6
00:31:05,7.6
00:32:06,7.5
00:33:05,7.6
00:34:05,7.6
00:36:05,7.5
00:37:05,7.5
00:38:05,7.5
00:39:05,7.5
00:41:05,7.6
00:42:05,7.7
00:43:05,7.6
00:44:05,7.7
00:46:05,7.6
00:47:05,7.9
But when I go to the IP for it the browser does not display a chart.  it only shows a broken image link.

The charts directory is empty.  only has readme.md

I reran these and it seems matplotlib and numpy is installed but get the above error
pi@raspberrypi:~ $ sudo apt-get install python3-matplotlib
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-matplotlib is already the newest version (2.0.0+dfsg1-2).
The following packages were automatically installed and are no longer required:
librtimulib-dev librtimulib-utils librtimulib7 python-rtimulib
python-sense-hat python3-rtimulib
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~ $ sudo apt-get install python3-numpy
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-numpy is already the newest version (1:1.12.1-3).
The following packages were automatically installed and are no longer required:
librtimulib-dev librtimulib-utils librtimulib7 python-rtimulib
python-sense-hat python3-rtimulib
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~ $

As a sanity check... can you do the following and post results?
$ python3

import numpy as np
print (np.version)
print (np.path)

import matplotlib as mat
print (mat.version)
print (mat.path)

For example, here are my results:
$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170124] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> print (np.__version__)
1.12.1
>>> print (np.__path__)
['/usr/lib/python3/dist-packages/numpy']
>>>
>>> import matplotlib as mat
>>> print (mat.__version__)
2.0.0
>>> print (mat.__path__)
['/usr/lib/python3/dist-packages/matplotlib']
>>>

pi@raspberrypi:~ $ python -V
Python 2.7.13
pi@raspberrypi:~ $ python -c "import numpy; print(numpy.version.version)"
1.12.1
I don't know the correct commands to get the other stuff.

Cool... so there is one difference with matplotlib version.
Please also post the results for "python" (instead of 'python3').

pi@raspberrypi:~ $ python
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import numpy as np
print (np.version)
1.12.1
print (np.path)
['/usr/lib/python2.7/dist-packages/numpy']
import matplotlib as mat
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named matplotlib

thanks - did all those step but the last errors out.
pi@raspberrypi:~ $ rm -rf /home/pi/.config/matplotlib
pi@raspberrypi:~ $ rm -rf /home/pi/.cache/matplotlib
pi@raspberrypi:~ $ sudo rm -rf /usr/local/lib/python3.5/dist-packages/matplotlibpi@raspberrypi:~ $ sudo apt-get install python3-matplotlib
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-matplotlib is already the newest version (2.0.0+dfsg1-2).
The following packages were automatically installed and are no longer required:
librtimulib-dev librtimulib-utils librtimulib7 python-rtimulib
python-sense-hat python3-rtimulib
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~ $ dir
Desktop    Downloads  Pictures  python_games  Templates
Documents  Music      Public    raspi-sump    Videos
pi@raspberrypi:~ $ cd raspi-sump
pi@raspberrypi:~/raspi-sump $ sudo python setup.py install
python: can't open file 'setup.py': [Errno 2] No such file or directory
pi@raspberrypi:~/raspi-sump $

Ok. I reran the chart rsumpchart.py and rebooted and now the chart shows.   the time is off but I think I fixed it so starting tomorrow I believe I will have accurate times with the reading levels.

the only thing that is throwing me off is the chart numbers.

It shows from 2 to 9 inches.   My sensor is 21" above the bottom of the pit.   so does this mean it's reading a fluctuation of 2 to 9 inches of water in the sump?
Unit of measure.  You may choose to use metric or imperial measurements.
The unit variable must be set as metric or imperial and is case sensitive.
Any other setting will cause an error.
unit = imperial
critical_water_level is the water level in the sump pit at which point an
email alert should be triggered.
If unit = metric then critical_water_level = centimeters
If unit = imperial then critical_water_level = inches
critical_water_level = 12
The pit_depth is the distance between the sensor and the bottom of the
sump pit.
Like critical_water_level, enter centimeters for metric and inches for
imperial
pit_depth = 21
rsump.py should be run with a cron job.  However cron is limited to
1 minute as its minimum interval. If you need to monitor the sump level
more frequently you can set reading_interval to the desired time in seconds.
Default is 0 meaning only one reading will occur and the program will exit.
If set to 0 call the script with a cron job and select your interval there.
If setting to a value other than 0 you should run rsumpmonitor.py from a cron
job at a regularly interval to monitor the health of the rsump.py process.
rsumpmonitor.py is part of the raspisump software.  See documentation for
details.
reading_interval = 0
The temperature variable will adjust the speed of sound to reflect
the normal temperature of your basement.
If unit = metric then enter the temperature in Degrees Celcius.
If unit = imperial then enter the temperature in Degrees Fahrenheit.
temperature = 66
Raspi-Sump can also be used in situations where you would want to check if
the water_level is too low. Sump pits are concerned with high water levels
but a drinking water cistern would require an alert when it is low.  For that
reason you can set the following value to 'low'.  Leave this value as is unless
you specifically want alerts when the water drops below a certain level.
alert_when = high

Good deal - it's working.
In your photo, I would ignore the readings at "2". You are most likely getting reading anomalies.
This could all be affected by sensor position, how much space for sensor to take reading, etc.
If you look at it, you know it didn't go from 2 inches back up to over "8" that quick.
I would say water level gets to around 8.5 inches and pump is kicking on... drains pit to approx 4 inches.
You may have to play with the position of sensor. Wait a day, check graph, move if needed, etc.
But overall I think it looks good. I have never got mine to look as clean as the author's graph. But I can tell it's working and that's all I care about.
Your real reading is something like this:

Thanks for your help.... with the time correction it seems to be working as expected.  I just have the sensor taped over a hole that allows the power line for the pump to exit so not sure if it has a clear line of sight to the bottom.  I am not sure how wide the sensor reads so like you said may have to position it around.
I wish I could have gotten this installed without issue... not sure what I did wrong.

Thank you tonymontgomery for stepping in and answering.  For the chart, ya it really looks like interference on the sensor.  But usually it will show a higher waterlevel when it picks up the floating ball or something else.  This can be mitigated by sinking a tube into the pit and placing your sensor over the tube which focuses the sonar down and doesn't pick up all kinds of other garbage in the pit.
Glad you got it doing and sorry I could not spend more time troubleshooting with you.
Is everything now resolved?

Al - yes it seems to be working fine..... can you tell me more about the tube your speaking about?

So today I moved the sensor - now it has a direct line of sight to the pit and no obstructions.   Indoing so the sensor is now 18.5" from the bottom of the pit.... can I use 18.5 in the config or must it be a whole number?

Needs to be an integer, so no decimals.
-------- Original message --------From: spankurmonkey<EMAIL_ADDRESS>Date: 4/20/18  1:35 PM  (GMT-05:00) To: alaudet/raspi-sump<EMAIL_ADDRESS>Cc: Al Audet<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [alaudet/raspi-sump] python3-matplotlib - does not work (#26)
So today I moved the sensor - now it has a direct line of sight to the pit and no obstructions.   Indoing so the sensor is now 18.5" from the bottom of the pit.... can I use 18.5 in the config or must it be a whole number?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/alaudet/raspi-sump","title":"alaudet/raspi-sump","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/alaudet/raspi-sump"}},"updates":{"snippets":[{"icon":"PERSON","message":"@spankurmonkey in #26: So today I moved the sensor - now it has a direct line of sight to the pit and no obstructions.   Indoing so the sensor is now 18.5" from the bottom of the pit.... can I use 18.5 in the config or must it be a whole number?"}],"action":{"name":"View Issue","url":"https://github.com/alaudet/raspi-sump/issues/26#issuecomment-383168663"}}}

I changed it back to a integer -  question... if I use the tube will the artifact go away... here is my latest chart and this is with the sensor point down.. directly to water with no obstructions in the way.

Not sure what you mean by the artifact.    But you will not really know until you try.  Just setup something temporary with any cylinder on hand to test.  I have never actually done this but have had other users who reported success.
-------- Original message --------From: spankurmonkey<EMAIL_ADDRESS>Date: 4/20/18  3:11 PM  (GMT-05:00) To: alaudet/raspi-sump<EMAIL_ADDRESS>Cc: Al Audet<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [alaudet/raspi-sump] python3-matplotlib - does not work (#26)
I changed it back to a integer -  question... if I use the tube will the artifact go away... here is my latest chart and this is with the sensor point down.. directly to water with no obstructions in the way.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/alaudet/raspi-sump","title":"alaudet/raspi-sump","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/alaudet/raspi-sump"}},"updates":{"snippets":[{"icon":"PERSON","message":"@spankurmonkey in #26: I changed it back to a integer -  question... if I use the tube will the artifact go away... here is my latest chart and this is with the sensor point down.. directly to water with no obstructions in the way.\r\n\r\n"}],"action":{"name":"View Issue","url":"https://github.com/alaudet/raspi-sump/issues/26#issuecomment-383194146"}}}


5.8.29 tagged today breaks queue deserializing with Model::newCollection()

This change pull request #29196 breaks queued jobs using SerializesModels that expect a custom collection. The above changes return an EloquentCollection when unserialized regardless of the model overriding newCollection.
Example:
<?php

namespace App\Jobs;

use App\Models\Collections\PostsCollection;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class DoSomethingToPosts extends Job implements ShouldQueue
{
    use InteractsWithQueue, SerializesModels;

    public $posts;

    public function __construct(PostsCollection $posts)
    {
        $this->posts = $posts;
    }

    public function handle()
    {
        // This object is now \Illuminate\Database\Eloquent\Collection,
        // not a PostsCollection instance.
        $this->posts;
    }
}

Thanks @derekmd for the tips on this PR

Why aren’t we filtering the original collection instead? :thinking:


rootston: Don't let the wlr_output handle the fullscreen view in case…

… of layer-shell overlays
Otherwise the overlays will no tbe drawn.
Closes: #1300

Hi,
On Wed, Oct 17, 2018 at 07:11:44AM -0700, Drew DeVault wrote:

@SirCmpwn commented on this pull request.

In [1]rootston/output.c:

@@ -459,7 +459,8 @@ static void render_output(struct roots_output *output) {
output_box->y;
view_move(view, view_x, view_y);

          if (has_standalone_surface(view)) {

          if (has_standalone_surface(view) &&

                          wl_list_empty (&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY])) {

Extra space here

Too much glib recently. Fixed.

Thanks!


fix(Imports): :ambulance:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

6 of 6 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.9%) to 79.14%

Totals

Change from base Build<PHONE_NUMBER>:
-0.9%

Covered Lines:
1871

Relevant Lines:
2291

💛  - Coveralls


How do I access the email address of the user that reported the crash?

The HockeyApp crash reporter UI has a name and email field. I can’t find the email in the App Center UI.

Hi there! While we don't have this exactly replicated in App Center, we don't have means for user identification: https://docs.microsoft.com/en-us/appcenter/diagnostics/features#user-identification
Would this work for your use case?

Hi @schriftgestalt - App Center's user ID feature (linked by colleague above) should provide you the same functionality. Let us know if that works for you. Thanks!

What user id do you mean?

I don’t understand the text at the link. How should the user set its name? Hockeyapp would try to pre-fill the name and email (in their UI) and show that prominently. So I could get in contact.


Allow users to select alternate comp. het. index

Is your feature request related to a problem? Please describe.
Right now only the first affected child can be selected as the inde.
Describe the solution you'd like
This is important if we have more than two affected or also when there is no "affected" child. This becomes more important as people are using VarFish for more exotic use cases:

select any child as comp. het. index
for other children we allow the "carries" option (number of shared variants), values: 0/1/2 (default: 0)

This allows to select any child as comp. het. index. The other child can be forced to have at least 0/1/2 of the comp. het. variants shared with the parent. The "carries" option enforcement could be done both in SQL or later in Postgres.
Describe alternatives you've considered
N/A
Additional context
N/A

Possible in Vue.js UI


Required constraint should fail for empty groups

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.54%.  Consider uploading reports for the commit ffc484e to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main       #9      +/-   ##
============================================
+ Coverage     92.25%   92.54%   +0.28%
- Complexity      131      137       +6
============================================
  Files            15       15
  Lines           310      322      +12
  Branches         62       66       +4
============================================
+ Hits            286      298      +12
  Misses           16       16
  Partials          8        8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix GameWindow.IsActive and on-screen keyboard for Android

GameWindow.IsActive is always false on Android when AndroidGameWindow overrided Focused to be true.
https://github.com/ppy/osu-framework/blob/dd8d1136cb386aea8b7a6fe5db5af6dfd3458fb9/osu.Framework.Android/AndroidGameWindow.cs#L19
Overriding Focused property doesn't work for Android but do work for iOS:
https://github.com/ppy/osu-framework/blob/dd8d1136cb386aea8b7a6fe5db5af6dfd3458fb9/osu.Framework.iOS/IOSGameWindow.cs#L30
I guess it's because some events (used to update IsActive) never get raised on Android, like this one:
https://github.com/ppy/osu-framework/blob/dd8d1136cb386aea8b7a6fe5db5af6dfd3458fb9/osu.Framework/Platform/GameWindow.cs#L86
So I just make IsActive default to true on Android.

Resolved by:
https://github.com/ppy/osuTK/pull/50
https://github.com/ppy/osu-framework/pull/2454


Build.sh --with-packages UX is broken with a fresh source tarball

Snippet from https://github.com/dotnet/installer/blob/main/src/SourceBuild/tarball/content/build.sh#L123
if [ -d "$SCRIPT_ROOT/packages/archive" ]; then
  sourceBuiltArchive=`find $SCRIPT_ROOT/packages/archive -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz'`
  if [ -f "$SCRIPT_ROOT/packages/previously-source-built/PackageVersions.props" ]; then
    packageVersionsPath=$SCRIPT_ROOT/packages/previously-source-built/PackageVersions.props
  elif [ -f "$sourceBuiltArchive" ]; then
    tar -xzf "$sourceBuiltArchive" -C /tmp PackageVersions.props
    packageVersionsPath=/tmp/PackageVersions.props
  fi
elif [ -f "$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props" ]; then
  packageVersionsPath="$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR/PackageVersions.props"
fi

The problem with this logic is that the tarball comes with an empty $SCRIPT_ROOT/packages/archive directory.  This means the elif will not get executed when the --with-packages option is specified which sets $CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR.  To workaround this you must manually delete the $SCRIPT_ROOT/packages/archive directory or copy your previous packages into it and not use the --with-packages option.

When fixing, consider modifying CI to make use of the --with-packages option instead of this logic.

[Triage] When fixing, we should consider backporting to 6.0


compress large image

What steps will reproduce the problem?
1. If I compress large image (larger than 5000x5000), I have:
...
IDAT 8192 bytes 8 Kbytes
IDAT 8192 bytes 8 Kbytes
IDAT 6418 bytes 6 Kbytes
uncompress returned Z_BUF_ERROR

What is the expected output? What do you see instead?
Work

What version of the product are you using? On what operating system?
last version

Please provide any additional information below.
It's file larger than 5MB.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 18 Nov 2014 at 12:33

Can not reproduce with version as of today.
$ file ../large.png
../large.png: PNG image data, 6400 x 6400, 8-bit/color RGB, non-interlaced

$ ./zopflipng ../large.png ../smaller.png
Optimizing ../large.png
Filter strategy minimum sum: 104632128 bytes
Result is smaller
Input size: 105046118 (102584K)
Result size: 104632128 (102179K). Percentage of original: 99.606%


Character encoding problem

Attempt to use logstash-input-eventlog plugin 4.1.2 using a minimal logstash configuration file (see below) results to output where several field values consist of question marks in place of expected text. I'm assuming it's an encoding problem but I could be wrong of course. I experimented by setting a plain codec with different charset parameters for input plugin but that didn't help. I've been using logstash successfully on the same machine with the file input plugin.

Version: logstash 5.5.2, logstash-input-eventlog 4.1.2
Operating System: Windows Server 2008 SP1
Config File:

input {
eventlog {
type  => 'Win32-EventLog'
logfile  => 'Application'
}
}
output {
stdout { codec => json }
}

Sample Output, pretty-printed (this is information-level event generated by the system - I also tried creating events myself using eventcreate and the results were similar):

{
"TimeWritten": "2017-08-30T13:56:13.000Z",
"Category": 0,
"EventIdentifier": 902,
"TimeGenerated": "2017-08-30T13:56:13.000Z",
"User": null,
"EventType": "??????",
"SourceName": "??????????????????",
"message": "??????????????????????????????",
"type": "Win32-EventLog",
"Type": "??????",
"@timestamp": "2017-08-30T14:06:19.686Z",
"host": "censored",
"ComputerName": "??????????",
"InsertionStrings": [
"???????"
],
"@version": "1",
"RecordNumber": 110776,
"Logfile": "Application"
}
Steps to reproduce:

Run logstash with the given configuration
Use eventcreate to add new events to the event log.

Changing the charset worked for me
References:
https://github.com/logstash-plugins/logstash-input-eventlog/pull/34#issuecomment-239730167


Allow reordering (addressing) fields

It would be useful (also for enhancement request #8) to be able to address a string of bits to allow reordering data and overlapping data.
For example:
00 11 22 33 44 55 66
with
A:16h B:16h C:{16@8}h  D:{16@24}h
becomes:
A:0011 B:2233 C:1122 D:3344 ...
Continuation option 1. The 'current pointer' is always after the last bit ever read (as if by a max() function). Addressed access only pushes the pointer forward if it exceeds previously read data.
the above becomes:
A:0011 B:2233 C:1122 D:3344 A:5566 ...
Continuation option 2. The 'current pointer' should not be modified by an addressed field. Addressed field access just peeks into the data without modifying anything else.
the above becomes:
A:0011 B:2233 C:1122 D:3344 A:4455...
==Extras:==
<{16@24}h : The 16bit value starting bit 24 is interpreted little endian.
{16@-24}h : The 16bit value starting bit 24 before the current pointer.
{16@+24}h : The 16bit value starting bit 24 after the current pointer.

This would display bits out of order. I guess it could be useful but seems rather advanced. With multiple format lines you can already display selected pieces.
Also I prefer option 2, peeking at bits with a pointer shouldn'T disturb what's been consumed. I don't want any bits to disappear from output.
I guess a simple "set pointer" option shouldn't be hard to add. I.e. just the offset, so maybe:
{@24}<16h : The 16bit value starting bit 24 is interpreted little endian.
{-24}16h : The 16bit value starting bit 24 before the current pointer.
{+24}16h : The 16bit value starting bit 24 after the current pointer.

{} is length in the input so it's illogical to not use it as length in #8, so use [ ] or something to seek.


A way to enable animation between tab-views[ionic 1]

Finally!!
I found a way to enable animation when state changes between tab-views.
Actually the way is pretty clear, just add animation-css (I prefer animate.css ) on your <ion-view>
With animate.css  you can enable animation simply like this:
<ion-view class="animated zoomIn">
In this way, you can accomplish more complex animation with events like $ionicView.enter,  $ionicView.leave etc : simply listen these events and attach any css-animation to ion-view when certain event fires.
I know this may not be a regular way but I could find another one  :-( .
You can find an example on
http://codepen.io/sunao626/pen/kXQjVw
Hope you enjoy !!

Hello! Awesome animations! I would recommend posting about this in our forum. Since this is not really an issue with Ionic i will be closing this issue. Thanks for using Ionic!


add more test case for testing decorators

Fixes #39

Codecov Report
Attention: Patch coverage is 40.47619% with 25 lines in your changes are missing coverage. Please review.

Project coverage is 95.70%. Comparing base (8969933) to head (e252270).

Files
Patch %
Lines

tests/test_async_mockafka.py
40.47%
25 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #40      +/-   ##
==========================================
- Coverage   97.69%   95.70%   -1.99%
==========================================
  Files          31       32       +1
  Lines        1169     1211      +42
==========================================
+ Hits         1142     1159      +17
- Misses         27       52      +25

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[WIP] Support CSV file in DMatrix

We'd just need to expose the CSV parser in dmlc-core to the Python wrapper.
TODO: let user specify the column index containing the true label.

While it's not documented, CSVParser is already accessible via URI parameters, e.g.,
xgb.DMatrix('data.csv?format=csv&label_column=0')

Codecov Report

Merging #3137 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #3137   +/-   ##
=========================================
  Coverage     45.27%   45.27%
  Complexity      228      228
=========================================
  Files           166      166
  Lines         12776    12776
  Branches        466      466
=========================================
  Hits           5784     5784
  Misses         6800     6800
  Partials        192      192

Impacted Files
Coverage Δ
Complexity Δ

python-package/xgboost/core.py
81.1% <ø> (ø)
0 <0> (ø)
:arrow_down:

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 11bfa85...366107e. Read the comment docs.


feat: turn on exchange swapper 🥳

Description
Enables the exchange swapper in production (all environments), which is essentially the current swapper UI hooked up to the new, exchange API-ready architecture.
Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[x] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)
N/A
Risk
Massive 😬
However, this risk should already be mitigated through testing on juice.
Testing
The entire swapper needs a regression test (up to ops if this needs to be done again, and to what extend - it's already been tested on juice).
Engineering
☝
Operations
☝
Screenshots (if applicable)
N/A

Current dependencies on/for this PR:

develop

PR #4956   👈

This comment was auto-generated by Graphite.


prepare data crash on PlanetScene

prepare_data.py script is crashing on PlanetScene

setup_raw_daty.py is working!

does not contain tiles subdir!

Processing to h5 is crashing
h5 file and subdir is beeing created but not filled -

setup_raw_data
[2022-03-21T08:04:32.982+01:00] uc2.setup_raw_data.20200814_044132_1026.ee INFO: > Processing /isipd/projects/p_aicore_pf/initze/processing_training/slumps/input/20200814_044132_1026/20200814_044132_1026_ee_tmp.tif [1/1] : 0...10...20...30...40...50...60...70...80...90...100 - done.
[2022-03-21T08:04:41.930+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: Called `$CONDA_PREFIX/bin/gdalwarp -te 563637.0 8370723.0 577581.0 8381652.0 -tr 3.0 3.0 -r cubic -t_srs EPSG:32649 -co COMPRESS=DEFLATE /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/elevation.vrt /isipd/projects/p_aicore_pf/initze/processing_training/slumps/input/20200814_044132_1026/relative_elevation.tif`
[2022-03-21T08:04:41.931+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Creating output file that is 4648P x 3643L.
[2022-03-21T08:04:41.931+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Processing /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/elevation.vrt [1/1] : 0Using internal nodata values (e.g. 0) for image /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/elevation.vrt.
[2022-03-21T08:04:41.931+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Copying nodata values from source /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/elevation.vrt to destination /isipd/projects/p_aicore_pf/initze/processing_training/slumps/input/20200814_044132_1026/relative_elevation.tif.
[2022-03-21T08:04:41.931+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > ...10...20...30...40...50...60...70...80...90...100 - done.
[2022-03-21T08:04:52.225+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: Called `$CONDA_PREFIX/bin/gdalwarp -te 563637.0 8370723.0 577581.0 8381652.0 -tr 3.0 3.0 -r cubic -t_srs EPSG:32649 -co COMPRESS=DEFLATE /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/slope.vrt /isipd/projects/p_aicore_pf/initze/processing_training/slumps/input/20200814_044132_1026/slope.tif`
[2022-03-21T08:04:52.225+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Creating output file that is 4648P x 3643L.
[2022-03-21T08:04:52.225+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Processing /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/slope.vrt [1/1] : 0Using internal nodata values (e.g. 0) for image /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/slope.vrt.
[2022-03-21T08:04:52.225+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > Copying nodata values from source /isipd/projects/p_aicore_pf/initze/processing_training/slumps/auxiliary/ArcticDEM/slope.vrt to destination /isipd/projects/p_aicore_pf/initze/processing_training/slumps/input/20200814_044132_1026/slope.tif.
[2022-03-21T08:04:52.226+01:00] uc2.setup_raw_data.20200814_044132_1026.utils INFO: > ...10...20...30...40...50...60...70...80...90...100 - done.
[2022-03-21T08:05:01.706+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: rename: skipped
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: label: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: ndvi: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: tcvis: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: rel_dem: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: slope: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: mask: success
[2022-03-21T08:05:01.707+01:00] uc2.setup_raw_data.20200814_044132_1026 INFO: move: success

python prepare_data.py --data_dir $PROCESSING_DIR --tile_size 1024x1024 --tile_overlap 128;

tiles is being created
subdirs as well
h5 structure is created
then crash

joblib.externals.loky.process_executor._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 431, in _process_worker
    r = call_item()
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/externals/loky/process_executor.py", line 285, in __call__
    return self.fn(*self.args, **self.kwargs)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 595, in __call__
    return self.func(*args, **kwargs)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 263, in __call__
    for func, args, kwargs in self.items]
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 263, in <listcomp>
    for func, args, kwargs in self.items]
  File "prepare_data.py", line 215, in main_function
    with rio.open(mask_from_img(img)) as raster:
  File "prepare_data.py", line 80, in mask_from_img
    assert mask_path.exists()
AssertionError
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "prepare_data.py", line 302, in <module>
    Parallel(n_jobs=args.n_jobs)(delayed(main_function)(dataset, args, log_path) for dataset in datasets)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 1054, in __call__
    self.retrieve()
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 933, in retrieve
    self._output.extend(job.get(timeout=self.timeout))
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 542, in wrap_future_result
    return future.result(timeout=timeout)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/concurrent/futures/_base.py", line 435, in result
    return self.__get_result()
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
AssertionError

Traceback (most recent call last):
  File "prepare_data.py", line 302, in <module>
    Parallel(n_jobs=args.n_jobs)(delayed(main_function)(dataset, args, log_path) for dataset in datasets)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 1041, in __call__
    if self.dispatch_one_batch(iterator):
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 859, in dispatch_one_batch
    self._dispatch(tasks)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 777, in _dispatch
    job = self._backend.apply_async(batch, callback=cb)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 208, in apply_async
    result = ImmediateResult(func)
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 572, in __init__
    self.results = batch()
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 263, in __call__
    for func, args, kwargs in self.items]
  File "/home/pd/initze/anaconda3/envs/aicore/lib/python3.7/site-packages/joblib/parallel.py", line 263, in <listcomp>
    for func, args, kwargs in self.items]
  File "prepare_data.py", line 215, in main_function
    with rio.open(mask_from_img(img)) as raster:
  File "prepare_data.py", line 80, in mask_from_img
    assert mask_path.exists()
AssertionError


connect to to local cluster

Is it possible to connect to the cluster I am installed in through https://kubernetes.default ?
I tried that but keep getting 502
I am on eks and in #55 they say that they were able to connect locally but how?

Is it possible to connect to the cluster I am installed in through https://kubernetes.default ?
I tried that but keep getting 502
I am on eks and in #55 they say that they were able to connect locally but how?

We were able to connect to EKS deploying prometheus and grafana inside the EKS cluster.