Texture atlas overlap in glyphs when rendering, result in ghost-boxed characters

Contour Terminal version
<IP_ADDRESS>91
Installer source
Github: CI actions
Operating System
Ubuntu 20.04
Architecture
x86-64
Other Software
(Irrelevant.)
Steps to reproduce

echo "%"
The % looks reasonably okay, but there is a faint | at the right side:

echo "&"
The "belly" of the & gets rendered into the %'s space, resulting in a broken looking glyph:

:warning: N.b.: This only appears on "normal" zoom level. If I do nine (9) "zoom in" actions (Ctrl + MouseWheelUp) the effect is barely noticeable:

However, after doing another (that is, in total, ten) zoom ins, the full vertical bars come back:

Restoring to default zoom (Ctrl+0) restores the visuals seen in step 4.zoom-ins
Expected Behavior
Characters do not expect each others' rendering.
Actual Behavior
Ugly glyphs.
Additional notes
profile:
  master:
    font:
      size: 12
      dpi_scale: 1.0
      render_mode: lcd
      regular:
        family: "JetBrainsMono Nerd Font"

[2023-02-09 10:15:19.663721] [gui.display] TerminalWindow.resizeEvent: size 200x100 (200x100)
[2023-02-09 10:15:19.670078] [gui.display] initializeGL: size=179x100, scale=1
[2023-02-09 10:15:19.670157] [gui.display] Assigning session to terminal widget: shell=/bin/zsh, terminalSize=80x24, fontSize=12pt, contentScale=1
[2023-02-09 10:15:19.710613] [gui.display] Loading vertex shader: :/contour/display/shaders/text.vert
[2023-02-09 10:15:19.713248] [gui.display] Loading fragment shader: :/contour/display/shaders/text.frag
[2023-02-09 10:15:19.714026] [gui.display] Loading vertex shader: :/contour/display/shaders/background_image.vert
[2023-02-09 10:15:19.714070] [gui.display] Loading fragment shader: :/contour/display/shaders/background_image.frag
[2023-02-09 10:15:19.714458] [gui.display] Loading vertex shader: :/contour/display/shaders/background.vert
[2023-02-09 10:15:19.714479] [gui.display] Loading fragment shader: :/contour/display/shaders/background.frag
[2023-02-09 10:15:19.715027] [gui.display] configureAtlas: 1024x2048 RGBA
[2023-02-09 10:15:19.801055] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:19.801235] [gui.display] Blur: Loading shader source :/contour/display/shaders/blur_gaussian.frag
[2023-02-09 10:15:19.802315] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:19.802400] [gui.display] Blur: Loading shader source :/contour/display/shaders/dual_kawase_up.frag
[2023-02-09 10:15:19.802958] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:19.802994] [gui.display] Blur: Loading shader source :/contour/display/shaders/dual_kawase_down.frag
[2023-02-09 10:15:19.931259] [gui.display] Blur: Gaussian run performance: 0.226s CPU.
[2023-02-09 10:15:19.943315] [gui.display] Background image from disk: 3840x2160 RGBA
[2023-02-09 10:15:19.959257] [gui.display] [FYI] Build type          : RelWithDebInfo
[2023-02-09 10:15:19.959291] [gui.display] [FYI] Application PID     : 17300
[2023-02-09 10:15:19.959293] [gui.display] [FYI] OpenGL type         : OpenGL
[2023-02-09 10:15:19.959302] [gui.display] [FYI] OpenGL renderer     : Mesa Intel(R) Xe Graphics (TGL GT2)
[2023-02-09 10:15:19.959308] [gui.display] [FYI] Qt platform         : xcb
[2023-02-09 10:15:19.959319] [gui.display] [FYI] OpenGL version      : 4.6
[2023-02-09 10:15:19.959330] [gui.display] [FYI] Content scaling     : 1
[2023-02-09 10:15:19.959336] [gui.display] [FYI] GLSL version        : 4.60 (460, 450, 440, 430, 420, 410, 400, 330, 150, 140, 130, 120, 320 es, 310 es, 300 es, 100)
[2023-02-09 10:15:19.959367] [gui.display] [FYI] Refresh rate        : 59 Hz
[2023-02-09 10:15:19.959370] [gui.display] [FYI] Screen size         : 1920x1080
[2023-02-09 10:15:19.959375] [gui.display] [FYI] Logical DPI         : 96x96
[2023-02-09 10:15:19.959383] [gui.display] [FYI] Physical DPI        : 142x141
[2023-02-09 10:15:19.959386] [gui.display] [FYI] Device pixel ratio  : 1
[2023-02-09 10:15:19.959397] [gui.display] [FYI] Content scale       : 1
[2023-02-09 10:15:19.959406] [gui.display] [FYI] Font DPI            : 96x96 (96x96)
[2023-02-09 10:15:19.959409] [gui.display] [FYI] Font size           : 12pt (16 px)
[2023-02-09 10:15:19.959411] [gui.display] [FYI] Cell size           : 10x22 px
[2023-02-09 10:15:19.959414] [gui.display] [FYI] Page size           : 80x24
[2023-02-09 10:15:19.959416] [gui.display] [FYI] Font baseline       : 5 px
[2023-02-09 10:15:19.959418] [gui.display] [FYI] Underline position  : 3 px
[2023-02-09 10:15:19.959421] [gui.display] [FYI] Underline thickness : 1 px
[2023-02-09 10:15:20.039373] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:20.039560] [gui.display] Blur: Loading shader source :/contour/display/shaders/blur_gaussian.frag
[2023-02-09 10:15:20.040294] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:20.040353] [gui.display] Blur: Loading shader source :/contour/display/shaders/dual_kawase_up.frag
[2023-02-09 10:15:20.040712] [gui.display] Blur: Loading shader source :/contour/display/shaders/simple.vert
[2023-02-09 10:15:20.040739] [gui.display] Blur: Loading shader source :/contour/display/shaders/dual_kawase_down.frag
[2023-02-09 10:15:20.139597] [gui.display] Blur: Gaussian run performance: 0.193s CPU.
[2023-02-09 10:15:20.146300] [gui.display] Background image from disk: 3840x2160 RGBA
[2023-02-09 10:15:20.160054] [gui.display] TerminalWindow.resizeEvent: size 821x528 (821x528)
[2023-02-09 10:15:20.161423] [gui.display] Resizing view to 800x528 virtual (800x528 actual).
[2023-02-09 10:15:20.161689] [gui.display] GL configure atlas: 1024x2048 RGBA GL texture Id 4
[2023-02-09 10:15:20.176440] [gui.display] Resizing view to 800x528 virtual (800x528 actual).
[2023-02-09 10:15:20.193589] [gui.display] Screen changed.

Texture atlas with only rendering %:

Texture atlas after rendering the &:

culprit is this function
https://github.com/contour-terminal/contour/blob/2d490c86cbd52ff25250a71a130eb226ba21d8ac/src/vtrasterizer/TextRenderer.cpp#L358
Info from debug on cutting sizes
Cutting off oversized RGB tile from 11x13 down to 10x21.

oh very nice catch @Yaraslaut. the question is how do we want to fix this.
we could add a 1px padding in between the texture atlas tiles. I think I have no better idea as of right now.

11x13 down to 10x21

okay, horizontally from 11 down to 10 makes sense. this might be the reason why it was triggered anyways. but 13 to 21 looks like THE bug here? hmmm 🤔

oh very nice catch @Yaraslaut. the question is how do we want to fix this.
we could add a 1px padding in between the texture atlas tiles. I think I have no better idea as of right now.

11x13 down to 10x21

okay, horizontally from 11 down to 10 makes sense. this might be the reason why it was triggered anyways. but 13 to 21 looks like THE bug here? hmmm 🤔

I tried disabling this thing and didn't notice any changes, so I wonder why this is required in the first place? Shouldn't harfbuzz create properly aligned buffer ?

you mean FreeType. yeah, but some glyphs are wider, some are tinner (horizontally and vertically). The glyphs that are horizontally wider, must be cut down to avoid accidentally writing into a tile in the texture atlas that belong to a different bitmap.
On the other hand, we have the tile splitting functionality that e.g. is used to still render programming ligatures correctly - so why do we end up cutting in that function in the first place. 🤔

Agree, adding 1 px sound like a good idea, since i noticed that disabling this function does not solve the problem completely


docs(guidelines): added the guidelines for pr title convention

Related Issue

Info about the related issue

Closes: #75
Describe the changes you've made
I have added the guidelines to be followed for naming PRs in the contributing.md file.
Type of change
Documentation updation.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Enhancement in the existing features
[ ] Other

Mention any unusual behaviour of your code (Write NA if not)
Any unusual behaviour of your code
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[x] My changes generate no new warnings.
[x] I have verified/tested my code by running it locally.

Files Added/Modified
contributing.md
Screenshots / Videos / Gif

Additional Info (optional)
Any additional information you want to give

@apeksha235 I have added the contributing guidelines.
Please let me know if there are any changes!
Thanks!


Pylint

Add file init.py for correctly work pylint. No such file or directory: 'model_zoo/__init__.py' (parse-error). Also add .pylintrc file and add your settings in it.

Also, fix your code style


From print to logging

Converted print calls to logging.
Criteria for the levels:

By default, they use logger.info.
If the message was prefixed with Warning or was part of a check, it uses logger.warning.
If the print call is part of a if verbose: block, they use logger.debug.

Todo

[ ] Remove if verbose lines and replace with a logger.setLevel call.
[ ] Provide handlers and formatters as necessary.

Why does CI fail here? Simply because so much of the code changes?

I don't fully understand the difference between codecov/{patch,projecŧ}:
From the codecov docs:

The codecov/project status measures overall project coverage and compares it against the base of the pull request or parent commit.

The codecov/patch status only measures lines adjusted in the pull request or single commit, if the commit is not in a pull request. This status provides an indication on how well the pull request is tested.

Maybe this example is useful. What I understand from that description is that I must have introduced changes that are not being tested (?), but I can't honestly see why or how.

What's the difference between .info and .debug?  I think that in general, the verbosity results can be fairly useful, so if people see them as "debugging" they might not look at the them much.  I would rather have a lot of information be on, with the capability to turn it off, than the other way around.
Of course, that might simply be a matter of setting the logger state to have debug = True.

Logging works by setting message "levels". These are the default values:
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0

Libraries only "emit" messages with a level label. It's up to applications to set the threshold level to "publish" (write to stdout, log file, whatever) these messages. Recommended behavior is usually warning and above. When verbosity is increased, we lower the threshold to info and above. Even more verbosity can be achieved by lowering it to debug and above.
We need to decide how important these messages and label them accordingly, but I am not familiar enough with the code to infer this.

Got it!  I can todo that task, but it might take a bit of time.
Hmm. Maybe the fastest way forward is to set everything that was sent directly to stdout w/o any error messaging to logging.info, and then add an issue for me to go back and adjust appropriately.

By "without any error" you also mean "warnings"?

By "without any error" you also mean "warnings"?

Yes, exactly this.

I'll go ahead and merge.


poll_intervall is a misspelling

poll_intervall should be spelled poll_interval (but leave the old one for compatibility!)

Hello, if you make a PR for this (with tests) we would be happy to review it, thanks!


Update Tool Not working

I get the following error message when attempting to update the Driver Automation Tool using the About\Update tool feature.
/Snip
You cannot call a method on a null-valued expression.
At line:17143 char:5

...             $OSBuild = ($WindowsBuildHashTable.Item("$OSBuild")).Spli ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : InvokeMethodOnNull

Start-Process : This command cannot be run due to the error: The system cannot find the file specified.
At line:4909 char:3

    Start-Process -FilePath (Join-Path $(Get-ScriptDirectory) -Ch ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

/end snip
I can see from ProcMon that it is attempting to execute Update-DriverAutomationTool.exe, but that is not found. I also verified that I am running 7.1.9 and it still says there is a newer version.

Can reproduce. Here's the error code snippet with a bit better formatting:
At line:4909 char:3
+         Start-Process -FilePath (Join-Path $(Get-ScriptDirectory) -Ch ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

Start-Process : This command cannot be run due to the error: The system cannot find the file specified.

Hi,
Update Tool functionality has never worked for us to my knowledge (Same error). We update the tool with use of the publicated .exe files.
Version:       7.1.9
Build Date:  2022-09-21
Start-Process : This command cannot be run due to the error: The system cannot find the file specified.
At line:4909 char:3

    Start-Process -FilePath (Join-Path $(Get-ScriptDirectory) -Ch ...

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand


How to use multiple chooser?

hi,
if i create multiple Chooser how can i use that. suppose,
from django.db import models

from wagtailmodelchooser import register_model_chooser, Chooser

class City(models.Model):
    name = models.CharField(max_length=255)
    capital = models.BooleanField()

    def __str__(self):
        # The ``str()`` of your model will be used in the chooser
        return self.name

@register_model_chooser
class CityChooser(Chooser):
    model = City
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.GET.get('capital'):
            qs = qs.filter(capital=request.GET.get('capital') == '0')

        return qs

@register_model_chooser
class CityChooserAll(Chooser):
    model = City
    def get_queryset(self, request):
        return City.objects.all()

if i want to use one of these chooser how can i define that?
in my case it always choose the last one.
thanks

At the moment you can only register one chooser per model, they're registered using the model as a key, that's why you're only getting the last one. It's undocumented but you can probably use the register_filter method to do what you need. I didn't write it and it's been a few years since I used it but you could do something like this:
from django.db import models
from wagtail.core.models import Page
from wagtailmodelchooser.edit_handlers import ModelChooserPanel
from wagtailmodelchooser import register_filter

from project.cities.models import City

def custom_filter(queryset):
   return queryset.filter(a=x)

register_filter(City, 'custom_filter_name', custom_filter)

class PageAll(Page):
     city = models.ForeignKey(City, ...)

    content_panels = Page.content_panels + [
        # This will be the city instances as defined by your @register_model_chooser
        ModelChooserPanel('city')
    ]

class PageFiltered(Page):
    city = models.ForeignKey(City, ...)

    content_panels = Page.content_panels + [
        # This queryset will be filtered by custom_filter
        ModelChooserPanel('city', filter='custom_filter_name')
    ]


Server 2012 support

Microsoft have changed the registry keys they use for controlling Windows Update in 2012. Found a post on ServerFault detailing the new location: http://serverfault.com/a/506341/1733
Will try the new registry keys and return with my findings.

Fixed in 0.1.0


cpu: Remove SLC bit restraint for GPU tester

This reverts gem5#133, the temporary work-around for gem5#131, allowing both SLC and GLC atomic requests to be made in the GPU tester.
The underlying issues behind gem5#131 have been resolved by gem5#367 and gem5#397.

@mattsinc @abmerop The issues which were causing the ruby random tester to fail have been resolved, so #133 can be reverted. I've run the random tester for both write-back and write-through L2s.

Looks like you need a change ID... If you did not make any local git add's you can do git commit --amend, close editor, and it should add one

@abmerop
Added, thanks!.
It looks like the pre-commit install command on the contributing page doesn't install hooks for commit-msg (which is what the Change-ID hook uses).

@abmerop
Added, thanks!.
It looks like the pre-commit install command on the contributing page doesn't install hooks for commit-msg (which is what the Change-ID hook uses).

Yeah, unfortunately one has to install it seperately.

This reverts #133, the temporary work-around for #131, allowing both SLC and GLC atomic requests to be made in the GPU tester.
The underlying issues behind #131 have been resolved by #367 and #397.

@DanKouch you will also need to update this "message" box to include the commit ID as I believe this is what shows up in the git commit log.

Seems like the tests were run before adding the ChangeID?  If so, updating the branch to head of develop may kick them off again?

Seems like the tests were run before adding the ChangeID? If so, updating the branch to head of develop may kick them off again?

Nevermind, with the updates I see now the ChangeID failure is gone (but @DanKouch will need to update to head of develop eventually).


Error deploying Hetzner Cloud Controller Manager

I just launched the script and it fails on the deploying Hetzner Cloud Controller Manager step:
Deploying Hetzner Cloud Controller Manager...
error: unable to read URL "https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/latest/download/ccm-networks.yaml", server reported 404 Not Found, status code=404
Failed to deploy Cloud Controller Manager:
error: unable to read URL "https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/latest/download/ccm-networks.yaml", server reported 404 Not Found, status code=404

That path is hardcoded :/
hetzner-k3s shouldn't use the latest version at all, it should be configurable.

I have it on my list to make it configurable when I have some time.

I am finally having time to work on the project this weekend. As for this issue, not sure what happened when you opened it because I am unable to reproduce it. The file can be downloaded and creating clusters works just fine, so perhaps it was something temporary with Github.
I was planning on making the version of the CCM customizable in the configuration but the latest version works fine with all the recent versions of k3s, and even in the version matrix you can see in the page you linked to the manifest for the various versions is the same except for 1.23, but the latest manifest works fine with 1.23.
So for the time being I am keeping the latest CCM version by default until something changes in the CCM versioning.

The problem was that the file was absent from the release assets. It would help the next time it happens to be able to configure it, for example with the previous version.


[FEATURE] SuperKnokback

the player flies much further away

stop suggesting nonsense modules anymore i think this is impossible
and it's not a 1.8 hvh client

this aint fdp client

yall less spam report that nigga lel

the player flies much further away

U can use speed with velocity mode on or long jump with velocity mode on

i remember seeing this in a 1.8 client and it worked, with a single hit the player took like double the knockback, but it was like 5 years ago AND in 1.8, it should be patched by now OR just doesn't work in 1.9+ i guess

This could probably be done in a similar way bowkiller is done, I might add it as a feature to criticals but it is kinda useless.

nvm it wont


showing temperature condition  is very urgent

This is possible but requires the bios to support certain functionality. See the CPU temp branch.


Code VBA

Hello,
I have a small question for which I can not find the solution and given that you are a specialist in Excel VBA.
I would like to automatically generate this table in VBA in the active sheet.
I have the problem to generate the columns B, D, F, H, J, L, N and P based on the previous column on the same line.
In short, what is the function that I must use starting from for example: line 18 column M to have the character ╥.
Cells(18,14).value = ???? based on cells(18,13) which is worth 210
Table de caractères.xls

CODE PAGE 437 (IBM PC)
Here is the file that I would like to create from a blank sheet in VBA.
Thanks

@DidierHardy
LibStringTools.Decode(s, cpIBM437) where s is one or more characters

What Cristian suggested works.
You can create a table similar to the one your have from scratch using LibStringTools very easily for any codepage. The following is a proof of concept for IBM437:
Sub WriteCodePageCharTableToWorksheet()
    Const MAX_ROWS As Long = 32
    Dim cp As Long
    Dim row As Long:  row = 1
    Dim cols As Long: cols = 2
    Dim arr As Variant
    ReDim arr(1 To MAX_ROWS, 1 To cols)

    For cp = 1 To 256
        arr(row, cols - 1) = cp
        arr(row, cols) = Decode(ChrU(cp), cpibm437)
        If cp Mod MAX_ROWS = 0 Then
            row = 1
            cols = cols + 2
            ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
        Else
            row = row + 1
        End If
    Next cp

    ArrayToRange arr, Sheet1.Cells(1, 1)
End Sub

'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
                              ByVal rng As Excel.Range) As Range
    Const methodName As String = "ArrayToRange"
    Const MAX_DIMENSION As Long = 60 'VB limit
    If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
        & ". Only arrays are supported."
    Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
    Dim errSource As String:      errSource = Err.Source 'restore before exiting
    Dim errDescription As String: errDescription = Err.Description
    On Error GoTo FinalDimension
    Dim arrDim As Long
    For arrDim = 1 To MAX_DIMENSION
        Dim t As Long: t = UBound(arr, arrDim)
    Next arrDim
FinalDimension:
    arrDim = arrDim - 1
    On Error GoTo 0
    If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
        & "array. Only 1 and 2 dimensional arrays are supported."
    Err.Number = errNumber
    Err.Source = errSource
    Err.Description = errDescription

    Dim fixedArr As Variant
    Dim i As Long
    If arrDim = 1 Then
        ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
        For i = LBound(arr) To UBound(arr)
            fixedArr(i, 1) = arr(i)
        Next i
        If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
            Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
        rng.Value = fixedArr
    Else
        If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
            Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
        If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
            Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
        rng.Value = arr
    End If
    Set ArrayToRange = rng
End Function

You will notice, however, that the first 32 characters look different in your example file. This is because your example file doesn't actually contain the control characters in the cells but rather the unicode representation of the symbols CP437 uses as visual representation of these codepoints.
There are some fonts that display the real control characters accordingly however. If you take the output of the code I provided and change the font for column B to "Terminal", you will see the same symbols present in your example file.

Many thanks for the information
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le mardi 5 novembre 2024 à 11:56:52 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Hi @DidierHardy,
What Cristian suggested works.
You can create a table similar to the one your have from scratch using LibStringTools very easily for any codepage. The following is a proof of concept for IBM437:
Sub WriteCodePageCharTableToWorksheet()
Const MAX_ROWS As Long = 32
Dim cp As Long
Dim row As Long:  row = 1
Dim cols As Long: cols = 2
Dim arr As Variant
ReDim arr(1 To MAX_ROWS, 1 To cols)
For cp = 1 To 256
    arr(row, cols - 1) = cp
    arr(row, cols) = Decode(ChrU(cp), cpibm437)
    If cp Mod MAX_ROWS = 0 Then
        row = 1
        cols = cols + 2
        ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
    Else
        row = row + 1
    End If
Next cp

ArrayToRange arr, Sheet1.Cells(1, 1)

End Sub
'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
ByVal rng As Excel.Range) As Range
Const methodName As String = "ArrayToRange"
Const MAX_DIMENSION As Long = 60 'VB limit
If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
& ". Only arrays are supported."
Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
Dim errSource As String:      errSource = Err.Source 'restore before exiting
Dim errDescription As String: errDescription = Err.Description
On Error GoTo FinalDimension
Dim arrDim As Long
For arrDim = 1 To MAX_DIMENSION
Dim t As Long: t = UBound(arr, arrDim)
Next arrDim
FinalDimension:
arrDim = arrDim - 1
On Error GoTo 0
If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
& "array. Only 1 and 2 dimensional arrays are supported."
Err.Number = errNumber
Err.Source = errSource
Err.Description = errDescription
Dim fixedArr As Variant
Dim i As Long
If arrDim = 1 Then
    ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
    For i = LBound(arr) To UBound(arr)
        fixedArr(i, 1) = arr(i)
    Next i
    If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
        Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
    rng.Value = fixedArr
Else
    If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
        Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
    If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
        Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
    rng.Value = arr
End If
Set ArrayToRange = rng

End Function
You will notice, however, that the first 32 characters look different in your example file. This is because your example file doesn't actually contain the control characters in the cells but rather the unicode representation of the symbols CP437 uses as visual representation of these codepoints.
There are some fonts that display the real control characters accordingly however. If you take the output of the code I provided and change the font for column B to "Terminal", you will see the same symbols present in your example file.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Many thanks for the information
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le mardi 5 novembre 2024 à 10:17:26 UTC+1, Cristian Buse<EMAIL_ADDRESS>a écrit :

@DidierHardy
LibStringTools.Decode(s, cpIBM437) where s is one or more characters
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hello,Is it possible to provide me with the "Terminal" font because I can't find it so that I can do the full test?For characters from 33 to 255 it works well.Thanks
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le mardi 5 novembre 2024 à 11:56:52 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Hi @DidierHardy,
What Cristian suggested works.
You can create a table similar to the one your have from scratch using LibStringTools very easily for any codepage. The following is a proof of concept for IBM437:
Sub WriteCodePageCharTableToWorksheet()
Const MAX_ROWS As Long = 32
Dim cp As Long
Dim row As Long:  row = 1
Dim cols As Long: cols = 2
Dim arr As Variant
ReDim arr(1 To MAX_ROWS, 1 To cols)
For cp = 1 To 256
    arr(row, cols - 1) = cp
    arr(row, cols) = Decode(ChrU(cp), cpibm437)
    If cp Mod MAX_ROWS = 0 Then
        row = 1
        cols = cols + 2
        ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
    Else
        row = row + 1
    End If
Next cp

ArrayToRange arr, Sheet1.Cells(1, 1)

End Sub
'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
ByVal rng As Excel.Range) As Range
Const methodName As String = "ArrayToRange"
Const MAX_DIMENSION As Long = 60 'VB limit
If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
& ". Only arrays are supported."
Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
Dim errSource As String:      errSource = Err.Source 'restore before exiting
Dim errDescription As String: errDescription = Err.Description
On Error GoTo FinalDimension
Dim arrDim As Long
For arrDim = 1 To MAX_DIMENSION
Dim t As Long: t = UBound(arr, arrDim)
Next arrDim
FinalDimension:
arrDim = arrDim - 1
On Error GoTo 0
If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
& "array. Only 1 and 2 dimensional arrays are supported."
Err.Number = errNumber
Err.Source = errSource
Err.Description = errDescription
Dim fixedArr As Variant
Dim i As Long
If arrDim = 1 Then
    ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
    For i = LBound(arr) To UBound(arr)
        fixedArr(i, 1) = arr(i)
    Next i
    If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
        Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
    rng.Value = fixedArr
Else
    If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
        Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
    If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
        Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
    rng.Value = arr
End If
Set ArrayToRange = rng

End Function
You will notice, however, that the first 32 characters look different in your example file. This is because your example file doesn't actually contain the control characters in the cells but rather the unicode representation of the symbols CP437 uses as visual representation of these codepoints.
There are some fonts that display the real control characters accordingly however. If you take the output of the code I provided and change the font for column B to "Terminal", you will see the same symbols present in your example file.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Just type it into the font field manually, it was pre installed on my system, I think it should be available.

ThanksI thought it needed the "Terminal" font.It works.Great thanks
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le mardi 5 novembre 2024 à 12:52:16 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Just type it into the font field manually, it was pre installed on my system, I think it should be available.
image.png (view on web)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hello,
However, if I compare the contents of cell column B of the "Original Character Code" sheet and the contents of cell column H31 compared to the contents of the "Character Code" sheet with the same cells, we do not see the same content.
In addition, I cannot reproduce the same format as the "Original Character Code" sheet in the new sheet. However, if I do "reproduce formatting", there I obtain the same visual for the identical contents.
Do you have any idea?
Thanks
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le mardi 5 novembre 2024 à 12:52:16 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Just type it into the font field manually, it was pre installed on my system, I think it should be available.
image.png (view on web)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hi @DidierHardy, sorry for the late reply.
You do not see the same character codes because the actual characters/the cells' data differ.
In your example file, the cells B1 to B32 don't actually contain strings with the codepoints 1 to 32. Instead, they contain the Unicode codepoints representing the symbols that codepage IBM437 uses to represent non-printable characters.
In a way, the macro's output is more correct, but these special characters are just annoying to display because they were not intended for displaying when the codepage was devised. Now they can only be displayed using certain fonts like the "Terminal" font I mentioned earlier.
If you want the codepoints from your example worksheet instead, then you need to do that manually. However, keep in mind that these are not the "real" cp437 codepoint equivalent unicode codepoints.
LibStringTools can also help you to do this much easier by leveraging the HexToString function, for example like this:
Option Explicit

Private Function CharCp437(codepoint As Long) As String
    Dim cHex As String
'No indentation because otherwise max line length for the VBE would be exceeded!
'This string contains a hex representation of all the codepoints provided in the
'example excel file
cHex = "0x3A263B2665266626632660262220D825CB25D925422640266A266B263C26BA25C42595213C20B600A700AC25A82191219321922190211F229421B225BC252000210022002300240025002600280029002A0092252C002D002E0030003100320033003400350036003700380039003A003B003C003D003E003F0040004100420043004400450046004700480049004A004B004C004D004E004F0050005100520053005400550056005700580059005A005B005C005D005E005F0060006100620063006400650066006700680049006A006B006C006D006E006F0070007100720073007400750076007700780079007A007B007C007D007E000223C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C500C900E600C600F400F600F200FB00F900FF00D600DC00A200A300A500A7209201E100ED00F300FA00F100D100AA00BA00BF001023AC00BD00BC00A100AB00BB009125922593250225242561256225562555256325512557255D255C255B251025142534252C251C2500253C255E255F255A25542569256625602550256C25672568256425652559255825522553256B256A2518250C25882584258C2590258025B103DF009303C003A303C303B500C403A6039803A903B4031E22C603B50329226122B1006522642220232123F7004822B0001922B7001A227F20B200A025A000"
    Static chars As String
    If LenB(chars) = 0 Then
        chars = HexToString(cHex)
    End If
    If codepoint = 0 Then CharCp437 = vbNullChar: Exit Function

    CharCp437 = Mid(chars, codepoint, 1)
End Function

Sub WriteCodePageCharTableToWorksheet()
    Const MAX_ROWS As Long = 32
    Dim cp As Long
    Dim row As Long:  row = 1
    Dim cols As Long: cols = 2
    Dim arr As Variant
    ReDim arr(1 To MAX_ROWS, 1 To cols)

    For cp = 1 To 256
        arr(row, cols - 1) = cp
        'Use the custom function instead here
        arr(row, cols) = CharCp437(cp) ' Decode(ChrU(cp), cpibm437)
        If cp Mod MAX_ROWS = 0 Then
            row = 1
            cols = cols + 2
            ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
        Else
            row = row + 1
        End If
    Next cp

    ArrayToRange arr, Sheet1.Cells(1, 1)
End Sub

'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
                              ByVal rng As Excel.Range) As Range
    Const methodName As String = "ArrayToRange"
    Const MAX_DIMENSION As Long = 60 'VB limit
    If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
        & ". Only arrays are supported."
    Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
    Dim errSource As String:      errSource = Err.Source 'restore before exiting
    Dim errDescription As String: errDescription = Err.Description
    On Error GoTo FinalDimension
    Dim arrDim As Long
    For arrDim = 1 To MAX_DIMENSION
        Dim t As Long: t = UBound(arr, arrDim)
    Next arrDim
FinalDimension:
    arrDim = arrDim - 1
    On Error GoTo 0
    If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
        & "array. Only 1 and 2 dimensional arrays are supported."
    Err.Number = errNumber
    Err.Source = errSource
    Err.Description = errDescription

    Dim fixedArr As Variant
    Dim i As Long
    If arrDim = 1 Then
        ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
        For i = LBound(arr) To UBound(arr)
            fixedArr(i, 1) = arr(i)
        Next i
        If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
            Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
        rng.Value = fixedArr
    Else
        If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
            Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
        If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
            Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
        rng.Value = arr
    End If
    Set ArrayToRange = rng
End Function

Thank you very much. This is exactly what I wanted.
$HARDY @.***BELGIUMPsave nature, please do not print this mail unless you really need to
Le lundi 11 novembre 2024 à 14:31:43 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Hi @DidierHardy, sorry for the late reply.
You do not see the same character codes because the actual characters/the cells' data differ.
In your example file, the cells B1 to B32 don't actually contain strings with the codepoints 1 to 32. Instead, they contain the Unicode codepoints representing the symbols that codepage IBM437 uses to represent non-printable characters.
In a way, the macro's output is more correct, but these special characters are just annoying to display because they were not intended for displaying when the codepage was devised. Now they can only be displayed using certain fonts like the "Terminal" font I mentioned earlier.
If you want the codepoints from your example worksheet instead, then you need to do that manually. However, keep in mind that these are not the "real" cp437 codepoint equivalent unicode codepoints.
LibStringTools can also help you to do this much easier by leveraging the HexToString function, for example like this:
Option Explicit
Private Function CharCp437(codepoint As Long) As String
Dim cHex As String
'No indentation because otherwise max line length for the VBE would be exceeded!
'This string contains a hex representation of all the codepoints provided in the
'example excel file
cHex = "0x3A263B2665266626632660262220D825CB25D925422640266A266B263C26BA25C42595213C20B600A700AC25A82191219321922190211F229421B225BC252000210022002300240025002600280029002A0092252C002D002E0030003100320033003400350036003700380039003A003B003C003D003E003F0040004100420043004400450046004700480049004A004B004C004D004E004F0050005100520053005400550056005700580059005A005B005C005D005E005F0060006100620063006400650066006700680049006A006B006C006D006E006F0070007100720073007400750076007700780079007A007B007C007D007E000223C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C500C900E600C600F400F600F200FB00F900FF00D600DC00A200A300A500A7209201E100ED00F300FA00F100D100AA00BA00BF001023AC00BD00BC00A100AB00BB009125922593250225242561256225562555256325512557255D255C255B251025142534252C251C2500253C255E255F255A25542569256625602550256C25672568256425652559255825522553256B256A2518250C25882584258C2590258025B103DF009303C003A303C303B500C403A6039803A903B4031E22C603B50329226122B1006522642220232123F7004822B0001922B7001A227F20B200A025A000"
Static chars As String
If LenB(chars) = 0 Then
chars = HexToString(cHex)
End If
If codepoint = 0 Then CharCp437 = vbNullChar: Exit Function
CharCp437 = Mid(chars, codepoint, 1)

End Function
Sub WriteCodePageCharTableToWorksheet()
Const MAX_ROWS As Long = 32
Dim cp As Long
Dim row As Long:  row = 1
Dim cols As Long: cols = 2
Dim arr As Variant
ReDim arr(1 To MAX_ROWS, 1 To cols)
For cp = 1 To 256
    arr(row, cols - 1) = cp
    'Use the custom function instead here
    arr(row, cols) = CharCp437(cp) ' Decode(ChrU(cp), cpibm437)
    If cp Mod MAX_ROWS = 0 Then
        row = 1
        cols = cols + 2
        ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
    Else
        row = row + 1
    End If
Next cp

ArrayToRange arr, Sheet1.Cells(1, 1)

End Sub
'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
ByVal rng As Excel.Range) As Range
Const methodName As String = "ArrayToRange"
Const MAX_DIMENSION As Long = 60 'VB limit
If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
& ". Only arrays are supported."
Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
Dim errSource As String:      errSource = Err.Source 'restore before exiting
Dim errDescription As String: errDescription = Err.Description
On Error GoTo FinalDimension
Dim arrDim As Long
For arrDim = 1 To MAX_DIMENSION
Dim t As Long: t = UBound(arr, arrDim)
Next arrDim
FinalDimension:
arrDim = arrDim - 1
On Error GoTo 0
If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
& "array. Only 1 and 2 dimensional arrays are supported."
Err.Number = errNumber
Err.Source = errSource
Err.Description = errDescription
Dim fixedArr As Variant
Dim i As Long
If arrDim = 1 Then
    ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
    For i = LBound(arr) To UBound(arr)
        fixedArr(i, 1) = arr(i)
    Next i
    If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
        Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
    rng.Value = fixedArr
Else
    If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
        Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
    If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
        Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
    rng.Value = arr
End If
Set ArrayToRange = rng

End Function
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

I found an error. I will try to analyze why!! These are the 2 values framed in red.
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le lundi 11 novembre 2024 à 14:31:43 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Hi @DidierHardy, sorry for the late reply.
You do not see the same character codes because the actual characters/the cells' data differ.
In your example file, the cells B1 to B32 don't actually contain strings with the codepoints 1 to 32. Instead, they contain the Unicode codepoints representing the symbols that codepage IBM437 uses to represent non-printable characters.
In a way, the macro's output is more correct, but these special characters are just annoying to display because they were not intended for displaying when the codepage was devised. Now they can only be displayed using certain fonts like the "Terminal" font I mentioned earlier.
If you want the codepoints from your example worksheet instead, then you need to do that manually. However, keep in mind that these are not the "real" cp437 codepoint equivalent unicode codepoints.
LibStringTools can also help you to do this much easier by leveraging the HexToString function, for example like this:
Option Explicit
Private Function CharCp437(codepoint As Long) As String
Dim cHex As String
'No indentation because otherwise max line length for the VBE would be exceeded!
'This string contains a hex representation of all the codepoints provided in the
'example excel file
cHex = "0x3A263B2665266626632660262220D825CB25D925422640266A266B263C26BA25C42595213C20B600A700AC25A82191219321922190211F229421B225BC252000210022002300240025002600280029002A0092252C002D002E0030003100320033003400350036003700380039003A003B003C003D003E003F0040004100420043004400450046004700480049004A004B004C004D004E004F0050005100520053005400550056005700580059005A005B005C005D005E005F0060006100620063006400650066006700680049006A006B006C006D006E006F0070007100720073007400750076007700780079007A007B007C007D007E000223C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C500C900E600C600F400F600F200FB00F900FF00D600DC00A200A300A500A7209201E100ED00F300FA00F100D100AA00BA00BF001023AC00BD00BC00A100AB00BB009125922593250225242561256225562555256325512557255D255C255B251025142534252C251C2500253C255E255F255A25542569256625602550256C25672568256425652559255825522553256B256A2518250C25882584258C2590258025B103DF009303C003A303C303B500C403A6039803A903B4031E22C603B50329226122B1006522642220232123F7004822B0001922B7001A227F20B200A025A000"
Static chars As String
If LenB(chars) = 0 Then
chars = HexToString(cHex)
End If
If codepoint = 0 Then CharCp437 = vbNullChar: Exit Function
CharCp437 = Mid(chars, codepoint, 1)

End Function
Sub WriteCodePageCharTableToWorksheet()
Const MAX_ROWS As Long = 32
Dim cp As Long
Dim row As Long:  row = 1
Dim cols As Long: cols = 2
Dim arr As Variant
ReDim arr(1 To MAX_ROWS, 1 To cols)
For cp = 1 To 256
    arr(row, cols - 1) = cp
    'Use the custom function instead here
    arr(row, cols) = CharCp437(cp) ' Decode(ChrU(cp), cpibm437)
    If cp Mod MAX_ROWS = 0 Then
        row = 1
        cols = cols + 2
        ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
    Else
        row = row + 1
    End If
Next cp

ArrayToRange arr, Sheet1.Cells(1, 1)

End Sub
'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
ByVal rng As Excel.Range) As Range
Const methodName As String = "ArrayToRange"
Const MAX_DIMENSION As Long = 60 'VB limit
If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
& ". Only arrays are supported."
Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
Dim errSource As String:      errSource = Err.Source 'restore before exiting
Dim errDescription As String: errDescription = Err.Description
On Error GoTo FinalDimension
Dim arrDim As Long
For arrDim = 1 To MAX_DIMENSION
Dim t As Long: t = UBound(arr, arrDim)
Next arrDim
FinalDimension:
arrDim = arrDim - 1
On Error GoTo 0
If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
& "array. Only 1 and 2 dimensional arrays are supported."
Err.Number = errNumber
Err.Source = errSource
Err.Description = errDescription
Dim fixedArr As Variant
Dim i As Long
If arrDim = 1 Then
    ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
    For i = LBound(arr) To UBound(arr)
        fixedArr(i, 1) = arr(i)
    Next i
    If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
        Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
    rng.Value = fixedArr
Else
    If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
        Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
    If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
        Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
    rng.Value = arr
End If
Set ArrayToRange = rng

End Function
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

I can not see the values you marked red. Try commenting directly on GitHub and not by replying to the email.
I built the hex string by concatenating all the values from the respective cells in your example Workbook and then using the StringToHex function from LibStringTools on the resulting string in order to be able to embed the string in the source code.
For converting the string back to the original string the code from my previous comment uses HexToString. Alternatively you could use EscapeUnicode and UnescapeUnicode instead.
I hope this helps.

Hello,In reality, the value 39 and 47 do not return a character in the cell. And suddenly, there is a shift. For example, the open parenthesis that is located next to the value 39 should be at the level of the value 40. And then, at the level of the value 47, it does not return anything and suddenly here we have a shift of 2 values.I do not know if I express myself correctly.Here is the table that we should have.It is like the value 32, we do not see the character.
But thank you
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le lundi 11 novembre 2024 à 19:35:02 UTC+1, Didier Hardy<EMAIL_ADDRESS>a écrit :

I found an error. I will try to analyze why!! These are the 2 values framed in red.
$HARDY @.***Psave nature, please do not print this mail unless you really need to
Le lundi 11 novembre 2024 à 14:31:43 UTC+1, Guido Witt-Dörring<EMAIL_ADDRESS>a écrit :

Hi @DidierHardy, sorry for the late reply.
You do not see the same character codes because the actual characters/the cells' data differ.
In your example file, the cells B1 to B32 don't actually contain strings with the codepoints 1 to 32. Instead, they contain the Unicode codepoints representing the symbols that codepage IBM437 uses to represent non-printable characters.
In a way, the macro's output is more correct, but these special characters are just annoying to display because they were not intended for displaying when the codepage was devised. Now they can only be displayed using certain fonts like the "Terminal" font I mentioned earlier.
If you want the codepoints from your example worksheet instead, then you need to do that manually. However, keep in mind that these are not the "real" cp437 codepoint equivalent unicode codepoints.
LibStringTools can also help you to do this much easier by leveraging the HexToString function, for example like this:
Option Explicit
Private Function CharCp437(codepoint As Long) As String
Dim cHex As String
'No indentation because otherwise max line length for the VBE would be exceeded!
'This string contains a hex representation of all the codepoints provided in the
'example excel file
cHex = "0x3A263B2665266626632660262220D825CB25D925422640266A266B263C26BA25C42595213C20B600A700AC25A82191219321922190211F229421B225BC252000210022002300240025002600280029002A0092252C002D002E0030003100320033003400350036003700380039003A003B003C003D003E003F0040004100420043004400450046004700480049004A004B004C004D004E004F0050005100520053005400550056005700580059005A005B005C005D005E005F0060006100620063006400650066006700680049006A006B006C006D006E006F0070007100720073007400750076007700780079007A007B007C007D007E000223C700FC00E900E200E400E000E500E700EA00EB00E800EF00EE00EC00C400C500C900E600C600F400F600F200FB00F900FF00D600DC00A200A300A500A7209201E100ED00F300FA00F100D100AA00BA00BF001023AC00BD00BC00A100AB00BB009125922593250225242561256225562555256325512557255D255C255B251025142534252C251C2500253C255E255F255A25542569256625602550256C25672568256425652559255825522553256B256A2518250C25882584258C2590258025B103DF009303C003A303C303B500C403A6039803A903B4031E22C603B50329226122B1006522642220232123F7004822B0001922B7001A227F20B200A025A000"
Static chars As String
If LenB(chars) = 0 Then
chars = HexToString(cHex)
End If
If codepoint = 0 Then CharCp437 = vbNullChar: Exit Function
CharCp437 = Mid(chars, codepoint, 1)

End Function
Sub WriteCodePageCharTableToWorksheet()
Const MAX_ROWS As Long = 32
Dim cp As Long
Dim row As Long:  row = 1
Dim cols As Long: cols = 2
Dim arr As Variant
ReDim arr(1 To MAX_ROWS, 1 To cols)
For cp = 1 To 256
    arr(row, cols - 1) = cp
    'Use the custom function instead here
    arr(row, cols) = CharCp437(cp) ' Decode(ChrU(cp), cpibm437)
    If cp Mod MAX_ROWS = 0 Then
        row = 1
        cols = cols + 2
        ReDim Preserve arr(1 To MAX_ROWS, 1 To cols)
    Else
        row = row + 1
    End If
Next cp

ArrayToRange arr, Sheet1.Cells(1, 1)

End Sub
'Writes an array to a range. If input array is one dimensional, converts
'it to a two dimensional array to write it as column instead of row.
'If the passed range is smaller than the passed array, the range will
'automatically be resized to fit the entire array.
'Returns the used range.
Private Function ArrayToRange(ByRef arr As Variant, _
ByVal rng As Excel.Range) As Range
Const methodName As String = "ArrayToRange"
Const MAX_DIMENSION As Long = 60 'VB limit
If IsEmpty(arr) Then Err.Raise 5, methodName, "Invalid input" _
& ". Only arrays are supported."
Dim errNumber As Long:        errNumber = Err.Number 'Save error status to
Dim errSource As String:      errSource = Err.Source 'restore before exiting
Dim errDescription As String: errDescription = Err.Description
On Error GoTo FinalDimension
Dim arrDim As Long
For arrDim = 1 To MAX_DIMENSION
Dim t As Long: t = UBound(arr, arrDim)
Next arrDim
FinalDimension:
arrDim = arrDim - 1
On Error GoTo 0
If arrDim < 1 Or arrDim > 2 Then Err.Raise 5, methodName, "Invalid input " _
& "array. Only 1 and 2 dimensional arrays are supported."
Err.Number = errNumber
Err.Source = errSource
Err.Description = errDescription
Dim fixedArr As Variant
Dim i As Long
If arrDim = 1 Then
    ReDim fixedArr(LBound(arr) To UBound(arr), 1 To 1)
    For i = LBound(arr) To UBound(arr)
        fixedArr(i, 1) = arr(i)
    Next i
    If rng.Rows.Count < UBound(arr) - LBound(arr) + 1 Then _
        Set rng = rng.Resize(UBound(arr) - LBound(arr) + 1)
    rng.Value = fixedArr
Else
    If rng.Rows.Count < UBound(arr, 1) - LBound(arr, 1) + 1 Then _
        Set rng = rng.Resize(UBound(arr, 1) - LBound(arr, 1) + 1)
    If rng.Columns.Count < UBound(arr, 2) - LBound(arr, 2) + 1 Then _
        Set rng = rng.Resize(, UBound(arr, 2) - LBound(arr, 2) + 1)
    rng.Value = arr
End If
Set ArrayToRange = rng

End Function
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Dennie view blog entry

Description
Open the pull request to ensure that it is being made against development.
Screen shots or GIFs of UI changes
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Part of a feature.
[ ] Refactor (non-breaking change which does not add functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Testing-

Checklist

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[ ] added new dependencies
[ ] added tests
[ ] updated documentation
[ ] Looks good on large screens
[ ] Looks good on mobile

Organization

[x] Have you linked this pull request to a project ticket?

Review

[ ] Is this a work in progress?
[x] Is this ready to be reviewed?
[x] Have you added two reviewers to this pull request?

Please add screen shots and a description of your work

Please fix merge conflicts on your branch before review

I created a desktop only component of the Blog display page following the specs of the design file and using placeholder images and lorem ipsum text for display.


Remove moot version property from bower.json

Per bower/bower.json-spec@a325da3
Also their maintainer says they probably won't ever use it: http://stackoverflow.com/questions/24844901/bowers-bower-json-file-version-property

Sent from Windows Mail
From: Kevin Kirsche
Sent: Thursday, June 11, 2015 7:53 PM
To: digitalBush/jquery.maskedinput
Per bower/bower.json-spec@a325da3
Also their maintainer says they probably won't ever use it: http://stackoverflow.com/questions/24844901/bowers-bower-json-file-version-property
You can view, comment on, or merge this pull request online at:
https://github.com/digitalBush/jquery.maskedinput/pull/321
Commit Summary
Remove moot version property from bower.json
File Changes
M bower.json (1)
Patch Links:
https://github.com/digitalBush/jquery.maskedinput/pull/321.patch
https://github.com/digitalBush/jquery.maskedinput/pull/321.diff
—
Reply to this email directly or view it on GitHub.

Blank response

Intended to be used in the future when Bower gets a real registry where you can publish actual packages, but for now just leave it out.

If they intend to use it, is there any harm in leaving it?

As stated above: Also their maintainer says they probably won't ever use it: http://stackoverflow.com/questions/24844901/bowers-bower-json-file-version-property

Alright, works for me.

Thanks for helping keep things tidy around here! :)


Add unit test that demonstrates non-blocking timeout for HystrixCommand.queue()

Replaces #515.  This now works after #579.

Hystrix-pull-requests #251 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » Hystrix » Hystrix-pull-requests #12 SUCCESS
This pull request looks good


CDN link broken

Version info
Milligram: Latest (From CDN)
Other (e.g. normalize.css, node.js, npm, bower, browser, operating system) (if applicable):
Test case
Using the link from the "Getting started" page: cdn.rawgit.com/milligram/milligram/master/dist/milligram.min.css, it's a 404.
Steps to reproduce

Install Milligram via CDN links in the getting started guide
Observe that Milligram CSS is a 404

Expected behavior
A 200 followed by the CSS for milligram
Actual behavior
A 404
It looks like /dist was removed from this repo some time ago but rawgit.com only finally purged it from cache. I'm not sure when since this is on a site I don't look at much, maybe within the last month.
For CDNs, rawgit.com is also going away. The rawgit.com page lists some alternatives.

It looks like the dist folder was removed in this commit on June 1.
@cjpatoilo is there any chance you might consider restoring the dist folder with the (minified and unminified) CSS source at some point in the future? (For what it's worth, this also broke our ability to update milligram automatically at dropin-minimal-css.)

@swalberg @dohliam
Please, can you review this pull request https://github.com/milligram/milligram/pull/251

@cjpatoilo Thanks so much for the quick fix! It's great to have the compiled CSS available again. :+1:

Thank you! Looking forward to seeing this merged!

@swalberg @dohliam it's my pleasure to rollback the Rawgit support. So, I just didn't know that there was this problem. I love Rawgit and @rgrove made the huge work.

@swalberg @dohliam all done! Now I will close this issue and if you have any questions, please, feel free to reopen this issue or open a new one.


Add boolean panel

The goal is being able to show boolean state of a variable in a noticeable way.
The suggestion it to add a "boolean tab", in which you can drag boolean variables, and they'll show as a LED (on/off) with the var name.
A rectangular green led would be sufficient for simplicity, and efficient arrangement when you drag in multiple booleans.

You can currently drag out a series of boolean options to the line graph or table, which are also capable of showing the full history of the values instead of a single sample. What is the use case for this feature not covered by those options? (Keeping in mind that AdvantageScope is not a driver dashboard).

Some stuff are just much easier to debug/analyze when they're clearly visible and pops out.

For the next release, many values (including booleans) will be displayed in the sidebar as shown below. Does this cover your intended use case? I think a more customizable indicator interface is probably out of scope, and better suited for other tools like Shuffleboard, Elastic, or FRC Web Components. Of course, the line graph/table views are also available for deeper analysis.

That's cute thanks for sharing, I think the minimum effort that will cover the intended use case is to put this same indicator for booleans also in the table interface.

v3.0.0-beta-7 adds color indicators to booleans in the table interface, which appears to cover this use case.


Allow JWS online checks to be modified at runtime

Hi, we are looking into having more control over when online checks are used in the SignedDataVerifier. Currently theres no way for us to enable/disable it at runtime and if we wanted to be able to do so we would need to create 2 instances of it with different enableOnlineChecks values at creation.
Wondering if we can add a setter for the enableOnlineChecks field in the SignedDataVerifier?

SignedDataVerifier is designed to be created a locked with a specific function, in this case I would recommend making two signed data verifiers if needed


Handle http response errors during upoad.

part of PIE-2813
Fix uploader so it will throw a runtime error if backend does not return 2xx.
This will result in a log message if any upload fails.

I'm not super keen on this, since it will cause people's builds to fail if the upload API is down. I always thought of the test collectors as a best-effort service.
What do you think about making this a configuration option so people could turn it on if they so wished?
How does this behaviour compare to the other collectors? Do they raise an issue if the data cannot be sent?

I'm not super keen on this, since it will cause people's builds to fail if the upload API is down. I always thought of the test collectors as a best-effort service.

@wooly and @nprizal
It won't fail people's build. Our uploader has logic capturing the error.
It was just previously, the error reporting was never working, so we were completely in the dark about what happen in the collector.

@zhming0 ah yep I see it now, sorry for the noise!

@gchan I added some tests. 👍🏿


Old status data sticks around until restart

Using Uchiwa-0.12.1 on Sensu 0.20.3.
A few times lately, Uchiwa as been displaying stale data.
For example, it was just recently reporting that it hadn't received a keepalive for a server.
I had brought the server back online, but it still kept the event.
I tried resolving the event - It stayed.
I tried deleting the client.. When the client was re-created, the alert was still there.
I then restarted uchiwa, and the alert disappeared for good.
For now, I'm scheduling a uchiwa restart via cron, but I figured I'd pass along my experience.

Hi @e1ven
Unfortunately I'm unable to reproduce this issue. If you are still facing this problem, could you try to verify the Sensu API in order to see if the event is also present there? Also, make sure to check your browser console and the Uchiwa logs.
Thanks

Could this be related to https://github.com/sensu/uchiwa-web/pull/85 ? We had similar symptom but the issue was that uchiwa wasn't unable to connect to the backend (interface lost wifi but nothing was apparent from the uchiwa interface)

@ROunofF's theory makes sense to me as to what happened.
I haven't seen this recur, and didn't save the logs from Nov when it happened
Since so much of the webpage runs client-side, it will appear to be working well.
I can click on new pages, and view events, without ever realizing that it can't talk to the uchiwa server.
My guess is that I had VPN issues or similar at the time, which prevented connections to the uchiwa server. Since so much was automatically cached client-side, it wasn't apparent where the problem was.
We should probably give some sort of obvious alert when we can't contact the uchiwa server, but I'd guess that was the original cause. Thanks.

Starting with 0.13.0, a proper error message is displayed when the client-side JS can't contact the Uchiwa backend!


load checkpoint from URL

Let's enable loading weights from a URL directly
Option 1:
Automate it with our current API
Trainer.load_from_checkpoint('http://')

Option 2:
Have a separate method
Trainer.load_from_checkpoint_at_url('http://')

Resources
We can use this under the hood:
(https://pytorch.org/docs/stable/hub.html#torch.hub.load_state_dict_from_url)
Any thoughts on which one is better?
@PyTorchLightning/core-contributors

I recently had to implement a similar functionality and I found this library very useful: https://github.com/RaRe-Technologies/smart_open. It handles various protocols other than http(s) like s3 with a very simple interface like python’s default file open. Thought you might be interested.

slight preference for option 1

@yukw777 nice. want to submit a PR?

@williamFalcon yeah i can give it a shot. I just read the code of load_state_dict_from_url and it seems like we don't really need to use smart_open for this, so I'll proceed without that. I also prefer Option 1.
A few questions:

Should we provide a default directory to which we'd download the checkpoints? If so, where?
What's your recommendation on writing tests for this? It'd be simplest to have a test checkpoint file uploaded somewhere and just download that...

Maybe we'll also use torch cache for that? Since after all it's still a PyTorch model? Or do we want to create yet another cache?


Fix serialization

Codecov Report

Merging #1 into master will not change coverage.
The diff coverage is 66.66%.

@@           Coverage Diff           @@
##           master       #1   +/-   ##
=======================================
  Coverage   96.95%   96.95%
=======================================
  Files          23       23
  Lines         787      787
=======================================
  Hits          763      763
  Misses         24       24

Impacted Files
Coverage Δ

annotypes/version.py
0% <0%> (ø)
:arrow_up:

annotypes/_serializable.py
95.89% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG] Snowpack can't build (resolve) dependencies across multiple workspaces

Bug Report Quick Checklist

[x] I am on the latest version of Snowpack & all plugins.
[x] I use package manager yarn berry
[x] I run Snowpack on OS Mac
[x] I run Snowpack on Node.js v14.15.4

Describe the bug
Snowpack can't resolve dependencies from multiple yarn workspaces at the same time. Imagine this scenario with two workspaces one and two:
/project
 - package.json
 - /one
   - package.json
 - /two
   - package.json

The workspace one imports snowpack and some other dependencies (react, styled-components, debug...) to build the main web application (for example a storybook like project).
The workspace two has stories / components that import some additional dependencies.
The issue is I can't make snowpack to correctly mount both one and two source folder and their dependencies. I can set root to workspace one but then it can't resolve deps in two and vice versa.
The errors says something like this:
Error: Package "foo" not found. Have you installed it?

To Reproduce
Minimal repro.
git clone git@github.com:tajo/snowpack-berry.git
cd snowpack-berry
yarn install
cd two
yarn dev

getting this error
snowpack

▼ Console

[snowpack] ! building dependencies...
[snowpack] (node:41367) UnhandledPromiseRejectionWarning: Error: Package "canvas-confetti" not found. Have you installed it?
    at Object.resolveEntrypoint (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:48676:15)
    at resolveWebDependency (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:48983:29)
    at Object.install (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:49094:36)
    at Object.run (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:49313:37)
    at installDependencies (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:50824:46)
    at async Object.prepare (/Users/vojtech/Projects/snowpack-berry/.yarn/cache/snowpack-npm-3.0.13-04dbc965f7-5ed74e2fb0.zip/node_modules/snowpack/lib/index.js:50879:35)
    at async startServer (/Users/vojte

You can change ./one/run.js root to __dirname and get this error instead
...
Package "emojisplosion" not found. Have you installed it?
...

Expected behavior
I tried multiple other root and workspaceRoot settings but nothing seems to be working? Is there some way to be able mount folder across workspaces?

I guess what's happening is resolveDependencyManifest and underlying resolve need to set correct baseDir (which is root in our case and you can pick only one root). The fix could be being able to set mount specific roots?

Weighing on this issue, also using multiple workspaces (yarn) in the same monorepo.

@tajo I don't think the solution is to have multiple roots but rather a relative resolution. Here's an example: Package A & B are in a mono-repo and both use a different version of a dependency. If Package A imports Package B which uses a different version of a dependency that snowpack finds first in Package A's root, there can/will be conflicts and issues.

So it means snow-pack does not support yarn2 (berry) with monorepo. =\


Invalid file, or file has unsupported features

The attached file raises such an error. Here the code to reproduce it:
library(tidyverse)
df <- tibble(x=1:10)
write_rds(df, 'tmp.rds', compress='gz')

while this one works
library(tidyverse)
df <- tibble(x=as.integer(c(1,2,3,4,5,6,7,8,9,10)))
write_rds(df, 'tmp.rds', compress='gz')

While the error message is different it looks similar to #29
tmp.rds.zip
referenced from here

This file also looks like it contains a PSEUDO_SXP_ALTREP structure so it is likely the same underlying issue as #34 and #29.

The error can be also obtained if trying to save a simple numeric base R vector, meaning it does not depend on objects created by external Rlibraries (assuming the underlying issue is the same). That also means at the moment dataframes created with new versions of R are not readeable in with libradata:
code and sample file:
vec <- 1:10
df <- data.frame(vec)
save(df, file = "simple.Rdata")

simple.Rdata.zip

Please try https://github.com/WizardMac/librdata/commit/27b1e13e0178275b6995dbbb41959ff0cdd2a68e
It appears that R is storing just the sequence information (10, 1, 1) rather than the actual numbers. With this ALTREP stuff it looks we will have a lot more work adding support for various internal R functions. I will keep track of them in individual issues.

all of the sample files here look good now!
Not closing the issue as I am not sure if you want to keep it open or not.


(noob question) I'm wondering how to specify tcp connections for minecraft server or http for local dev apps?

I'm thinking this would have to be some cmd line flag such as ngrok's version:
ngrok http 8080

or in the case of my Minecraft server....
ngrok tcp 25565

onionpipe isn't designed to be ngrok compatible. It can sort-of function like ngrok, but keep in mind that onionpipe routes traffic over the Tor network as hidden services. This doesn't depend on centralized hosting or a SaaS (like ngrok) but it does mean that your network performance will be determined by that of the Tor network.
This may or may not be acceptable for your use case.
The README has some example commands. For a persistent onion address, you could do something like this:
onionpipe 8000~80@minecraft 25565@minecraft

Which will use (or create) a persistent onion address with a private key named "minecraft". Local port 8000 will be mapped to :80, and local port 25565 will be exposed on the same port :25565.
You'll have to read the log output to get the onion address, like this:
⬢ [c@toolbox onionpipe]$ ./onionpipe 8000~80@minecraft 25565@minecraft
2024/12/19 11:08:34 starting tor...
<IP_ADDRESS>:8000 => hp64zg2kegxjr6xinw4ofs7kb2kdv25qw2zfoxgosf44ipgw5nqqzlqd.onion:80
<IP_ADDRESS>:25565 => hp64zg2kegxjr6xinw4ofs7kb2kdv25qw2zfoxgosf44ipgw5nqqzlqd.onion:25565

press Ctrl-C to exit

Once you've run the above, you can view or administer the "minecraft" hidden service with onionpipe service subcommands, like this:
⬢ [c@toolbox onionpipe]$ ./onionpipe service list
{
  "minecraft": {
    "address": "hp64zg2kegxjr6xinw4ofs7kb2kdv25qw2zfoxgosf44ipgw5nqq"
  }
}

Now, to actually connect to that minecraft server from another host, on that other machine, the player would need to either have a minecraft client that is capable of connecting to Tor (unlikely), or they'd need to route your minecraft server to a local port, like this:
onionpipe hp64zg2kegxjr6xinw4ofs7kb2kdv25qw2zfoxgosf44ipgw5nqqzlqd.onion:25565

That will open a local port to the minecraft server on localhost:25565, which a vanilla minecraft client could then connect to.


fix(sharded): SSUBSCRIBE smessageBuffer memory leak (#528)

This is a proposed fix for #528.
This pull request introduces a change to the sharded adapter's SSUBSCRIBE logic: Previously, for each dynamic channel/room, a unique listener was added to the client's smessageBuffer. This approach led to a large number of listeners (resulting in MaxListenersExceededWarning), especially in scenarios with many dynamic channels. Further, listeners were not being removed when unsubscribing, leading to a memory leak.
The new implementation replaces the multiple listeners with a single smessageBuffer listener. This listener is registered once and handles all dynamic channels by maintaining specific channel handlers in a Map. Listeners are added to this Map in SSUBSCRIBE and removed from the Map in SUNSUBSCRIBE.
Thanks for your review! 🙏

@RoccoC awesome, thanks :+1:


Is there a way to test multiple status responses?

I would like to write a test that says any status between 200 and 300 is valid and anything else is invalid. However, since fetch-mock expects a response, is there a way for fetchMock to test a range of status codes?
Here's my sample code
    beforeEach(() => {
        mockResponseData = { 'blah' : 'blah' }
        mockResponse = new window.Response(JSON.stringify(mockResponseData), {
          status: 200,
          headers: {
            'Content-type': 'application/json'
          }
        })

        fetchMock.post('/login', mockResponse)
      })

    it('Should be successful',() => {
       // some check goes here to check that the response is successful,
       // but it will be the same check for all status codes between 200 - 299
      //  so how do we do this with fetch-mock?
    })

You would need to write your own code to iterate through all the status codes, running a test for each.


[#804] feat(mysql): Support mysql table properties.

What changes were proposed in this pull request?
Support mysql table properties.
Why are the changes needed?
Fix: #804
Does this PR introduce any user-facing change?
Add mysql properties support.
How was this patch tested?
UT/IT

could you explain the reason why add ENGINE, DEFAULT CHARSET, COLLATE  and AUTO_INCREMENT  to Mysql table properties meta to be managed by Gravitino.

do you support change table properies or remove table properties ?

could you explain the reason why add ENGINE, DEFAULT CHARSET, COLLATE  and AUTO_INCREMENT  to Mysql table properties meta to be managed by Gravitino.

It's solely because these four attributes are common and frequently used values in production.

I don't see a strong reason, especially for DEFAULT CHARSET COLLATE

e

 Not supported

seems we should support change table properites ?

I failed to retrive the properies from JDBC drivers, but instead of querying data from internal system table, I prefer to use SHOW TABLE STATUS WHERE Name = 'xx' to get the properties, seems more maintanable.

It's okay for me and have not further comments.

@FANNG1 @yuqi1129  you can go ahead if you feel OK.
Besides, we need to also update the doc @Clearvive


Added a new button animated using Javascript(Jquery)

This PR is made in response to issue #54 .

Thank you for your contribution. 🤩


Amplitude estimation without inverse QFT and controlled Q-operators

Summary
I added a notebook of "SimpleIntegral_AEwoPE.ipynb".
This notebook contains experiments for performing amplitude estimation without inverse Quantum Fourier Transform (QFT) and controlled Q-operators (aka., Grover operators). It is known that without QFT and such controlled operators, the number of two-qubit gates (e.g., CNOT gates) required for running amplitude estimation can be reduced, and hence may be more appropriate to run quantum algorithms on Noisy Intermediate Scale Quantum (NISQ) devices.
Details and comments

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.tomoki seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @tanakatomoki, this looks great. Can you please sign the CLA with your github account so that I can merge? Thanks

I took mistake my accounts settings. So, I will try pull request again.


Fade Culling

Is there an example scene or script demonstrating faded culling without a harsh edge?  So that when you move through an object it has a gradient transparency along the culling edge?

We don't currently but I bet @Cameron-Micka might be able to add this to his list if it does not exist.

This is a simple as a material checkbox with an upcoming shader change coming to the MRTK (which will also include an example scene!). You can read more about the proposed changes here.

Fixed via #1743, which added the Assets/MixedRealityToolkit-Examples/StandardShader/Scenes/MaterialGallery.unity scene with examples of how to implement this feature.


Number formatting on EM Custom Fields (Decimal Points)

Overview
HL: I'm no longer seeing decimal points in number of workers, but I uploaded another numeric field as a custom field for an embedded map and it has a decimal point. There were not decimal points in the data I uploaded. This is happening in multiple numeric fields. This is a showstopper because when I try to search by that data point as part of the custom functionality, it won't come up unless I add a decimal point.
Expected Behavior
When a custom field is entered as a number format, convert to text to remove number-specific formatting (e.g. ".0")
Steps to Reproduce

enter number data as custom field in EM (without a decimal point)
search by number data without adding the decimal point
search will not return a match unless decimal point is added

Demo
Columbia has paid for this functionality and it needs to work:
https://drive.google.com/file/d/1OWWnOldARQhEE16DTnFGSLi4iKQtHilv/view?usp=sharing
Additional context
cc: @hlennett @katieashaw

You can see the Embedded Map in this account: https://staging.openapparel.org/dashboard/lists/?contributor=872


Upgrade Couchbase Server.app to v4.0.0

Tested locally, so SHA checksum issues should be sorted.
Sorry about all the back and forth, @victorpopkov.
Thanks!

Could you please squash your commits?

Thank you for the contribution. It needed some fixes, so they were made in 6bdb6dbd60bad4c6aba9eadd20dd95ab5d74baeb. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.


Add ability to view treasury-export-file and audit-report for closed reporting periods

Current State
When a reporting period is closed partners do not have access to the audit report or the treasury export file.
Ideal State
A partner is able to navigate to any prior quarter and retrieve the last audit-report and treasury-export that was generated prior to the reporting period being closed.
Open questions

Is it OK to show just the last audit-report that was generated? Or do we want to generate a new audit report when the button is pressed for a closed reporting period? This may cause inconsistencies.

@jcomeau1  - whatever was last generated/produced is more than acceptable. This is literally what went to treasury so from an audit perspective there's no difference. Ensures that subsequent changes do not impact the actual data.

Same as #1133 please review the comments in the other ticket as well and incorporate them.

@as1729 went through this code over the weekend. Still working through some test cases, but should have this done this week.

@jcomeau1 / @as1729 please confirm the below is what is expected:

A few questions before completing this ticket.

The original ticket mentions saving a copy of the report once the reporting period is closed. Do we still want to do that? We could add columns to the reporting_periods table for reach report, or we can store it as a separate table, or use some sort of naming scheme.
Do we want to change the filename to indicate this is a report for an older reporting period? Currently, the name format is audit-report--.xlsx. As a few options, we can keep this as the default for current reporting period, and add something like quarterly-x to historic reports. Thoughts?

Changed this a bit so that only the download buttons show on the closed reporting periods. This also means that for the non-admins, the closed reporting period page looks identical.
Non-Admin

Admin

@as1729 to get a review on the PR.

Next steps:
From partners answer the following question:

What should happen for periods prior to the current 2024-Q2 reporting period?

Is it sufficient to re-generate the report with old upload files? Or should we remove this functionality entirely?

What should happen moving forward beginning the 2024-Q3 reporting period?

Is it OK to save these audit report and treasury reports moving forward? Is it sufficient to save the last-generated file or is there a specific file we need to save?

For Engineering:

Implications of storing these reports long-term
What should happen to the current feature as it is?

Should we feature flag it ahead of the next release?

If its simple enough then sure.

Should we rollback just the front-end parts?

Since the backend now has added flexibility the functionality is hidden for the user.


1D Convolutions: Hardcoded code strings

Bug Report
Description
A few code strings in this chapter are not backed by the implementation dependent code under code/.
Changing these to rely on the language specific implementation will improve consistency with the other code (for example if length() is not a function in another language).
Screenshots
The aforementioned strings have been marked up here:

For Algorithm Archive Developers

[ ] The bug can be reproduced
[ ] The bug can be fixed (if not, please explain why not in a comment below)
[ ] There is a timeline to fix the bug
[ ] The bug has been fixed (Please link the PR)

I don't really know how to solve this issue. We could have a language method at the start of the file that allows us to create html variables or something that we then slot in to the text?
So like
{% method %}
{% sample lang="jl" %}
    set variables to i, j, k
{% common %}
    Set variables to some other name
{% endmethod %}

Sorry it's hand-wavey. Still thinking about it!

Honestly, I would probably change the test to say something like:

Finally, as we mentioned before, it is possible to center bounded convolutions by changing the location where we calculate the each point along the filter. This can be done by offsetting the filter signal

Because depending on the language, that line you reference may look vastly different. I'm working on a Haskell version and it's not there at all.

To be honest, it said that originally, then I changed it due to feedback. I am happy to change it back


update lang/zh-cn/lang.php

translation.
keep sync with lang/en/lang.php.

Good work as always @buuug7!


can not import in Comfyui

is there anyone fix this error?

What version of comfy was this created for?  2.3 or the new one 2.4 ? If you created for the latest version 2.4, how to put onnx. Please review the requirements for the torch version as well. Thank you.

git lfs pull

git lfs 拉取

具体是应该怎么做呢，我也遇到了相同的问题


Provide the fundamentals for creating strategies for resolving tenancy

Not created specs yet, I want to know whether this is an ok approach before I create specs for it.

Something weird with the pull-request system today...


Stop working after system error

After any system errors, the app stops working and the input filed is lost
http://joxi.ru/E2pb6qGsBEBawr

What version are you using?

Should work in the latest one.

I’ve used <IP_ADDRESS> version
Thanks for fixing :-)
App is awesome, but if it could split display as well as iterm horizontally and vertically it would be very cool!
Thanks.

2 июля 2016 г., в 0:28, Volodymyr Shatskyi<EMAIL_ADDRESS>написал(а):
What version are you using?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/shockone/black-screen/issues/547#issuecomment-230051198, or mute the thread https://github.com/notifications/unsubscribe/AHgjbYIIEe7MNlYBx30i4-4iTabaSB6Vks5qRYaFgaJpZM4JDK2t.


Automatically Save Bash History

https://stackoverflow.com/a/26028519/461834

strace -f -e trace=openat bash
/etc/bash.bashrc
/etc/zsh/zshrc

Probably all we care about is bash.

We have a few clear options:

Add PROMPT_COMMAND="history -a" to /etc/bash.bashrc
Add the environment variable to the Dockerfile

The above are image-specific, which we are trying to move away from.

Add the environment variable to launching the container
Add the environment variable to entering with ssh

Another option is to add it straight to /etc/skel/.bashrc. This is probably the best option, because we always get our home directory, and we're trying to change default behavior of data being saved to the home directory. The issue is home directories that already exist. We will need our sysadmin script, or whatever, that can modify /home/hacker/.bashrc with our changes, or maybe just go through in 1 single pass and update all user's /home/hacker/.bashrc.

I think /etc/bash.bashrc is the way. It should run /opt/pwn.colllege/bash.bashrc, and we do the logic there. We can also add logic for on first terminal challenge motd, etc there.


Azure /mnt

Azure appears to mount directly to /mnt which is "interesting"
Need to review mount detection and folder placement for stuff that isn't running an internal disk only.
Currently users can create a folder in /mnt with a name before l&f and it will install there and symlink back to ~/harmony

My current folder, named "harmony_db_0" does come before the "lost+found" folder alphabetically, but script still stops and won't progress. I'll re-do the mount with something earlier in the alphabet. Hope I'm interpreting what you mean by "a name before "l&f".

v1.0.1 today looks for only folders that are mount points in /mnt now, no more worries about having other folders as well.
If you have multiple mounts there, i'll have to find a way to deal with that in an upcoming update.


Long string causes compose area to change width in Markdown Editor

For Bug Reports

BookStack Version 0.20.0
PHP Version: 7.0.25-0ubuntu<IP_ADDRESS>
MySQL Version: MariaDB 10.1.20

Expected Behavior
When adding a long string in the compose area of the Markdown Editor the width of the preview pane doesn't change.
Current Behavior
The width of the preview pane changes when adding a long string.
Steps to Reproduce

Set Bookstack to Markdown Mode in Settings
Create or edit a page
Add a very long line, for example:

loooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnnggggloooooonnnnggggstriiiiinnngggg

I just opened #716 as a potential fix for this issue.

Thank you @BackwardSpy for your pull request on this one.


Library Cannot Parse JSON File It Wrote

Description
I used the JSON library to "pretty-print" a JSON file.  I then read that JSON file into a character array variable and the parser terminated on error.  This has happened with several JSON files; I am submitting a minimal example.
Reproduction steps
I created the following file named "minimal.json" using Notepad++ on Windows.  It contains four lines, including a blank last line:
{
"LABEL": 0.0
}
I then wrote the attached C++ program and built it using Cygwin.
g++ -g -DLINUX -Ijson/single_include json_test.cpp
I ran the executable with no command line inputs so that it read "minimal.json" and wrote "min_output.json".  I then renamed "min_output.json" to "minimal_BadChar.json" and ran the program again, this time with a command line argument so that it read this file.  The parser terminated on error with a message about an invalid input.
minimal.json
minimal_badChar.json
json_test.cpp.txt
Expected vs. actual results
I would expect the code to be able to read a file that it wrote.
Minimal code example
See files attached earlier.

Error messages
terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_3::detail::parse_error'
  what():  [json.exception.parse_error.101] parse error at line 4, column 1: syntax error while parsing value - invalid literal; last read: '0.0<U+000A>}<U+000A>'; expected end of input

Compiler and operating system
Cyrwin g++ 11.3.0
Library version
3.11.3
Validation

[ ] The bug also occurs if the latest version from the develop branch is used.
[ ] I can successfully compile and run the unit tests.

try this
https://gofile.io/d/yMHabA
select the desired compiler in the installer

Looks like you wrote the string in ASCII mode so it was written with newlines as \r\n and then read it in binary mode, so the \r was kept.

I have the same error and cannot fix for now.
The solution proposed do not fix the bug.

error message :
terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_3::detail::parse_error'
what():  [json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON
in my cpp
void handleBible::jsonBibile()
{
std::ifstream file("bible_ut8.json");
json data = json::parse(file);

}
and my json :
bible_ut8.json
I have also tried with other simple json file but the error still the same.
I save bible_ut8.json with encoding utf8
I am using cmake to build and I am on ubuntu 22.10
Thank you

Please make sure you call the program in the right directory - That is, make sure that the file is actually opened before trying to parse it.

parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON

You are opening a file without a path.  Your working directory is probably not what you think it is.

To work around the bug, I simply ran the string through a loop looking for the offending non-printing characters and changing them to blank spaces.
With the “diff” utilities at my disposal (TortoiseGit and WinDiff) the files looked identical.  Notepad++ on Windows wouldn’t show the non-printing characters either.
From: Musshca Badinga @.>
Sent: Tuesday, October 1, 2024 10:11 AM
To: nlohmann/json @.>
Cc:
Subject: [Non-DoD Source] Re: [nlohmann/json] Library Cannot Parse JSON File It Wrote (Issue #4448)
I have the same error and cannot fix for now.
The solution proposed do not fix the bug.
—
Reply to this email directly, view it on GitHubhttps://github.com/nlohmann/json/issues/4448#issuecomment-2386276051, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BLAPTQZ2XW64ZIVY3LGUS4TZZK3QVAVCNFSM6AAAAABNUJE73WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBWGI3TMMBVGE.
You are receiving this because you authored the thread.Message ID: @.***>

Thank you, It was a path problem


Add Subscribe/newsletter feature

We ned to add a feature where they can subscribe to a newsletter with updates about new gigs. It will be an daily update for the subscriber.

To schedule these periodic emails at a consistent time, something like cronjobs must be employed to call whatever send-subscripton-code will be eventually written. I don't know if DreamHost's regular web hosting plans support cronjobs.
A system like WordPress' fake cron would not work due to it only being run when a user visits a GigCentral page, instead of taking independent action at pre-programmed intervals like a real cronjob.


Fix AttributeError in filter_log_events

An AttributeError would be thrown if the interleaved parameter was
passed.

Awesome. Thanks and welcome to Moto!


[WebToolsE2E][Aspire] There is no intellisense of 'RunAsXXX' and 'AsXXX', but has intellisense of 'PublishAsXXX'.

REGRESSION INFO: New feature on Aspire 8.0 Preview 4
INSTALL STEPS

Clean machine: Win11 x64 23h2 ENU
Install 17.10.0 Preview 2.0 [34701.141.d17.10] (Includes Aspire 8.0.0-preview.4.24129.7)
Apply NuGet Feeds

REPRO STEPS

New Project > .NET Aspire Starter Application > .NET 8.0 > check 'Use Redis for caching (requires Docker)' > create
Open Program.cs of AppHost project, type '.As' behind the 'AddRedis("redis")'

ACTUAL
The intellisense only contains 'PublishAsXXX', doesn't contain 'RunAsXXX' or 'AsXXX'

EXPECTED
Should contain 'RunAsXXX' and 'AsXXX' in the intellisense

There’s
PublishAsConnectionString
PublishAsContainer
then in the azure packages
(Publish)AsAzureRedis
(PublishAs)AzurePostgresFlexibleServer
(PublishAs)AzureSql
RunAsEmulator for cosmos and azure storage
This is by design


Settings module

Settings module reading keybindings etc. from ini-file.

Settings module has now been added.


mkinitcpio-firmware

please add the aur package mkinitcpio-firmware to remove the missing firmware lines

But why? You're adding extra firmware that isn't needed. The warning's are harmless, see the wiki: https://wiki.archlinux.org/title/Mkinitcpio#Possibly_missing_firmware_for_module_XXXX