text:
Range: when resetting the form value, the values of begin and end are not reseted.

When in single selection mode, if we reset the form value driving the selected date, then the value of selectedValue is correctly reseted in the SatCalendarBody component.
But in range mode, this is not the case: the values of begin and end in SatCalendarBody remain unchanged.
I think this is a bug.

How do you reset value?

I tried with both ngModel and formControl (respectively resetting the form by setting the model to null and with form.reset()) and I have the same problem.
But indeed, I made more tests and the problem happens only when I reset the form immediately after the dateChange event.
Wrapping the reset in a setTimeout(() => {...}, 0) solves the problem.
Moreover, this only happens when the closeAfterSelection option is false.
So perhaps it could be solved with a markForCheck somewhere but I don't know where.

Here is a sample to reproduce the bug:
import { Component } from '@angular/core';
import {FormBuilder, FormGroup} from "@angular/forms";

@Component({
  selector: 'app-root',
  template: `
      <form [formGroup]="form">
          <mat-form-field>
              <input matInput
                     placeholder="Choose a date"
                     [satDatepicker]="picker"
                     (dateChange)="dateChange($event)"
                     formControlName="date">
              <sat-datepicker #picker [rangeMode]="true"
                              [closeAfterSelection]="false">
              </sat-datepicker>
              <sat-datepicker-toggle matSuffix [for]="picker"></sat-datepicker-toggle>
          </mat-form-field>
      </form>
`,
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
    form: FormGroup;
    constructor(fb: FormBuilder) {
        this.form = fb.group({
            date: [{ begin: new Date(2018, 7, 5), end: new Date(2018, 7, 25) }]
        });
    }

    dateChange(event) {
        // Do some stuff
        this.form.reset();
    }

}

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.
Don't work this!

I tried in this mode but don't work same:
@ViewChild(SatCalendar, {static: true}) calendar: SatCalendar<Date>     this.calendar.beginDateSelected = false;     this.calendar.beginDate = null;     this.calendar.maxDate = null;     this.calendar.selected = null;     this.calendar.startAt = null; ;
So it's a BUG of library and must to be fix or insert new solution

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.
Don't work this!

I tried in this mode but don't work same:
@ViewChild(SatCalendar, {static: true}) calendar: SatCalendar<Date> this.calendar.beginDateSelected = false; this.calendar.beginDate = null; this.calendar.maxDate = null; this.calendar.selected = null; this.calendar.startAt = null; ;
So it's a BUG of library and must to be fix or insert new solution

You have to pass the values(beginDate and endDate) like below in sat-calender element
<sat-calendar
[beginDate]="calendar.beginDate"
[endDate] = "calendar.maxDate">

The my setup is:
The unser click one day and the week is selected (from Mondato to Sunday). When click other day of week this reset week and re-click day for select week.
The bug is when the user (after clicked the day and selected week) re-click the same day or day in week selected the saturn fire (beginDateSelectedChange) and this work badly.
Example StackBlitz
So i would reset range or send to set null beginDate

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.
Don't work this!

I tried in this mode but don't work same:
@ViewChild(SatCalendar, {static: true}) calendar: SatCalendar<Date> this.calendar.beginDateSelected = false; this.calendar.beginDate = null; this.calendar.maxDate = null; this.calendar.selected = null; this.calendar.startAt = null; ;
So it's a BUG of library and must to be fix or insert new solution

You have to pass the values(beginDate and endDate) like below in sat-calender element
<sat-calendar
[beginDate]="calendar.beginDate"
[endDate] = "calendar.maxDate">

The my setup is:
The user click one day and the week is selected (from Monday to Sunday). When click other day of week this reset week and re-click day for select week.
The bug is when the user (after clicked the day and selected week) re-click the same day or day in week selected, the saturn fire (beginDateSelectedChange) and this work badly.
Example StackBlitz
So i would reset range of days or send to set beginDate = null

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.
Don't work this!

I tried in this mode but don't work same:
@ViewChild(SatCalendar, {static: true}) calendar: SatCalendar<Date> this.calendar.beginDateSelected = false; this.calendar.beginDate = null; this.calendar.maxDate = null; this.calendar.selected = null; this.calendar.startAt = null; ;
So it's a BUG of library and must to be fix or insert new solution

You have to pass the values(beginDate and endDate) like below in sat-calender element
<sat-calendar
[beginDate]="calendar.beginDate"
[endDate] = "calendar.maxDate">

The my setup is:
The user click one day and the week is selected (from Monday to Sunday). When click other day of week this reset week and re-click day for select week.
The bug is when the user (after clicked the day and selected week) re-click the same day or day in week selected, the saturn fire (beginDateSelectedChange) and this work badly.
Example StackBlitz
So i would reset range of days or send to set beginDate = null
NOTE: i don't konow because stackblitz don't work with momentjs. So you must try in local for try work example

Any solution boys??

Hope, maybe it will help you, To reset i have tried like this, passing | assigning the [beginDate] and [endDate] value as null on sat-calendar.
Don't work this!

I tried in this mode but don't work same:
@ViewChild(SatCalendar, {static: true}) calendar: SatCalendar<Date> this.calendar.beginDateSelected = false; this.calendar.beginDate = null; this.calendar.maxDate = null; this.calendar.selected = null; this.calendar.startAt = null; ;
So it's a BUG of library and must to be fix or insert new solution

You have to pass the values(beginDate and endDate) like below in sat-calender element
<sat-calendar
[beginDate]="calendar.beginDate"
[endDate] = "calendar.maxDate">

The my setup is:
The user click one day and the week is selected (from Monday to Sunday). When click other day of week this reset week and re-click day for select week.
The bug is when the user (after clicked the day and selected week) re-click the same day or day in week selected, the saturn fire (beginDateSelectedChange) and this work badly.
Example StackBlitz
So i would reset range of days or send to set beginDate = null
NOTE: i don't konow because stackblitz don't work with momentjs. So you must try in local for try work example

EMPORANY SOLUTION:
I Added SCSS/CSS attributes on root style (style.scss)
`.mat-calendar-body-selected {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.mat-calendar-body-begin-range:not(.mat-calendar-body-end-range) {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.mat-calendar-body-end-range:not(.mat-calendar-body-begin-range) {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.mat-calendar-cell-semi-selected {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}`

authors: SaturnTeam Zacknero agiratech-kumaresanj sancaruso

repo: SaturnTeam/saturn-datepicker


text:
word文档合并字号格式丢失

主文档是主要为一些段落文字，子文档为图表（雷达图），合并之后主文档中的正文段落字号丢失，标题中的字号正常，正文中字体颜色正常。

需要可复现的单元测试。

Auto closed.

source: gharchive/issue

authors: Sayi kpcmcn

repo: Sayi/poi-tl

license_type: permissive

license_source: bigquery


text:
fix some bug

修复模拟器执行自定义门内存泄漏问题
add_noise可关闭checkgate为自定义门添加噪声
优化概率与counts计算

是不是可以加一个模拟器执行自定义门的测试用例，之前很少用这个功能所以一直没发现内存泄漏的问题

是不是可以加一个模拟器执行自定义门的测试用例，之前很少用这个功能所以一直没发现内存泄漏的问题

这个能测出来吗？要用特定工具吧

source: gharchive/pull-request

repo: ScQ-Cloud/pyquafu

license_source: github-api


text:
export not exporting all highlights

I'm suspicious that the export_highlight function is not giving me all my highlights.
I ran it recently and only received 82 total notes in Apple Notes. I have way more than that...
I think it has something to do with the generator or the API wrapper I'm using.
def export_highlights(
    updated_after: str = None, book_ids: str = None, token: str = None
) -> Generator[dict, None, None]:
    """Exports the highlights of books based on modification date and/or specific book IDs.

    This function iterates over pages of highlights fetched from the client service,
    filtering by update time and book IDs if provided, and yields each highlight.

    Parameters:
        updated_after (str, optional): The ISO 8601 date string to filter highlights
            that were updated after a certain date. Defaults to None.
        book_ids (str, optional): A comma-separated string of book IDs to filter
            highlights by specific books. Defaults to None.
        token (str): A Readwise API token. Default to None.

    Yields:
        dict: A dictionary representing a single book's highlight.
    """
    client = get_client(token)

    params = {}

    if updated_after:
        params["updatedAfter"] = updated_after
    if book_ids:
        params["ids"] = book_ids

    for data in client.get_pagination_limit_20("/export/", params=params):
        for book in data["results"]:
            yield book

The issue was in the API wrapper (pyreadwise) not requesting the next page in the pagination. Based on the API documentation, the /export/ endpoint uses the parameter pageCursor while the other endpoints like /highlights/ use page.
pageCursor – (Optional) A string returned by a previous request to this endpoint. Use it to get the next page of books/highlights if there are too many for one request.
page – specify the pagination counter.

I am deciding whether to create a pull request in the original API wrapper repo or write my own. I'm leaning toward making a pull request.

repo: Scarvy/readwise-to-apple-notes


text:
Multiple indices on same column are ignored when loading schema on Postgres

When adding a table index with the same column of a foreign key index created by schema_plus (i.e. two indices on the same column with different names), loading the schema will ignore the first index declared in the create_table block for the table.
[This is on OS X 10.9, Postgres 9.3.5 and Ruby 2.1.5]
I have a test Rails application you can use to reproduce the problem. Clone the repo on the index branch, create the database, and try loading and then dumping the schema. (I used rake db:drop db:create db:schema:load db:schema:dump.)
The following diff comes up:
diff --git a/db/schema.rb b/db/schema.rb
index c2bbaf7..2cdbfff 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -28,7 +28,6 @@ ActiveRecord::Schema.define(version: 20150115174027) do
     t.integer "airplane_id"
     t.integer "pilot_id"
     t.index ["airplane_id"], :name => "fk__airplanes_pilots_airplane_id"
-    t.index ["pilot_id"], :name => "fk__airplanes_pilots_pilot_id"
     t.index ["pilot_id"], :name => "index_airplanes_pilots_on_pilot_id", :unique => true
     t.foreign_key ["airplane_id"], "airplanes", ["id"], :on_update => :no_action, :on_delete => :no_action, :name => "fk_airplanes_pilots_airplane_id"
     t.foreign_key ["pilot_id"], "pilots", ["id"], :on_update => :no_action, :on_delete => :no_action, :name => "fk_airplanes_pilots_pilot_id"

If you manually change the order of the two indices on pilot_id, and load & dump the schema, then the diff becomes:
diff --git a/db/schema.rb b/db/schema.rb
index c2bbaf7..749bd9d 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -29,7 +29,6 @@ ActiveRecord::Schema.define(version: 20150115174027) do
     t.integer "pilot_id"
     t.index ["airplane_id"], :name => "fk__airplanes_pilots_airplane_id"
     t.index ["pilot_id"], :name => "fk__airplanes_pilots_pilot_id"
-    t.index ["pilot_id"], :name => "index_airplanes_pilots_on_pilot_id", :unique => true
     t.foreign_key ["airplane_id"], "airplanes", ["id"], :on_update => :no_action, :on_delete => :no_action, :name => "fk_airplanes_pilots_airplane_id"
     t.foreign_key ["pilot_id"], "pilots", ["id"], :on_update => :no_action, :on_delete => :no_action, :name => "fk_airplanes_pilots_pilot_id"
   end

:+1:, I have this issue too.
The expected schema_plus behavior for me is that the schema does not have a diff after loading and dumping.

@thmzlt thanks for (yet another!) detailed bug report.
This is arguably a bug in rails:  t.index only handles one index per column, see https://github.com/rails/rails/blob/4-1-stable/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb#L238. It's tickled by schema_plus though, because rails' schema dumper defines indexes using add_index outside the create_table block, whereas schema_plus tidies the dump by defining them using t.index.
That said, it's probably bad form to have two indexes on the same field anyway; the database will be doing extra unneeded work to maintain them both.  No?
The reason you're getting two is that in your migration
create_table :airplanes_pilots do |t|
   t.references :airplane
   t.references :pilot
end
add_index :airplanes_pilots, [:pilot_id], unique: true

schema_plus (by default) auto-creates an index for the foreign key constraint; and the add_index statement creates a second one.  In order to get just one index and have it be unique, you can do:
create_table :airplanes_pilots do |t|
   t.references :airplane
   t.references :pilot, index: { unique: true }    # or just index: :unique
end

I could fix the bug by having schema_plus dump the extra indexes for a column using add_index outside the block.  But since this seems like a bug only when doing something that probably shouldn't be done, and there's another way to achieve the result you want, I'm thinking I'll let this slide.

FWIW this is fixed in the schema_plus 2.0 prerelease, i.e. in the new schema_plus_indexes gem.

Thanks @ronen!

authors: fj ronen thmzlt

license: mit


text:
Update to enable DynamoDB

Added a more resilient response reader and changed DynamoDB to force HTTPS

Thanks for your contribution - after some testing I will tag a new release probably by end of this week.


text:
⚠ Jenkins Plugins Artifactory has degraded performance

In b8ee78e, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1230 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 37b41fe after 35 minutes.

repo: Schmitzis/Uptime

license: MIT


text:
Add a subscribe page

And make it conditionnal to the @labs activation?
Here's the documentation: https://themes.ghost.org/docs/subscribers

Subscription form in Casper: https://github.com/TryGhost/Casper/blob/master/post.hbs
https://github.com/TryGhost/Casper/blob/master/post.hbs#L75

repo: Schoewilliam/Stitch-Blue


text:
Cannot select prediction file to import (amfbrowser)

Hello,
I've just finished installing amf and amfbrowser and was able to generate predictions for an image using amf.
But when I run amfbrowser and try to select the prediction file, I cannot click on the OK button. I've tried clicking, selecting with Enter, and just about every other key on my keyboard.
My lab mate thinks it is because I am trying to run this on Windows 11. Do you know if there is any way to run this without downgrading to Windows 10? Alternatively I could try installing on a system with Linux.
What is your recommendation?
Thanks,
Robbie
University of Ottawa

Dear Robbie,
Thank you for your interest in AMFinder.
Unfortunately, I have never heard of such an issue, so I can only guess it is a compatibility problem between the graphical system and the OS. The best is to install AMFinder on a Linux machine (it could be a virtual machine). I am happy to help with the installation if needed.
Best regards,
Edouard

authors: EEvangelisti rob-ferg

repo: SchornacklabSLCU/amfinder


text:
55 Write mobility data

Changes and Information
Please briefly list the changes (main added features, changed items, or corrected bugs) made:

Save data about the commuters during mobility
Any Indices (or Groups of indices) can be chosen as input.  Additionally, the total number of commuters is saved
Additionally, it is possible to save only selected edges

If need be, add additional information and what the reviewer should look out for in particular:

This functionality should be used carefully because if we save to many compartments from the edges, theres a large amount of storage necessary

Merge Request - Guideline Checklist
Please check our git workflow. Use the draft feature if the Pull Request is not yet ready to review.
Checks by code author

[x] Every addressed issue is linked (use the "Closes #ISSUE" keyword below)
[x] New code adheres to coding guidelines
[x] No large data files have been added (files should in sum not exceed 100 KB, avoid PDFs, Word docs, etc.)
[x] Tests are added for new functionality and a local test run was successful (with and without OpenMP)
[x] Appropriate documentation for new functionality has been added (Doxygen in the code and Markdown files if necessary)
[x] Proper attention to licenses, especially no new third-party software with conflicting license has been added
[ ] (For ABM development) Checked benchmark results and ran and posted a local test above from before and after development to ensure performance is monitored.

Checks by code reviewer(s)

[ ] Corresponding issue(s) is/are linked and addressed
[ ] Code is clean of development artifacts (no deactivated or commented code lines, no debugging printouts, etc.)
[ ] Appropriate unit tests have been added, CI passes, code coverage and performance is acceptable (did not decrease)
[ ] No large data files added in the whole history of commits(files should in sum not exceed 100 KB, avoid PDFs, Word docs, etc.)
[ ] On merge, add 2-5 lines with the changes (main added features, changed items, or corrected bugs) to the merge-commit-message. This can be taken from the briefly-list-the-changes above (best case) or the separate commit messages (worst case).

Closes #55

Using the setup in our simulation with ~30.000 edges and 50 simulation days, the size of the Edges.h file is 135mb.

There is an inconsistency in our project between the use of the terms migrated and mobility. I would leave them here for now and edit this PR after merging so that we only use mobility.

repo: SciCompMod/memilio


text:
MuTect1

@MaxUlysse and @Sebastian-D pls have a look - it is a duplication of MuTect2 practically. On long term we have to refactor these into one, especially the collate part.

Looks good, I see the influences ;).
I am doing something similar with HaplotypeCaller, the collateFiles function is bothering me however as I need to change it for normals and I am not proficient at groovy, yet.

authors: Sebastian-D szilvajuhos

repo: SciLifeLab/CAW


text:
imt.savefig.py only saving images at 72 dpi

imt.image_file_postproc() in imt.savefig() is changing or resaving the dpi of figures to 72, when the original dpi could be much higher (e.g. 300).
Code snippet to recreate the issue:
import ImageMetaTag as imt
pathname = '/home/h01/ewarren/cylc-run/u-al685_TCbogus_highres/share/data/Plots/tcver/u-ck824_v_u-co412/FS_Central_Pressure_Bias.png'
img_tags = {'aggperiod': 'None',
'datatimes': 'QG',
'dates': 'None',
'fcrs': 'None',
'period': 'None',
'difference': 'None',
'grid': 'None',
'scales': 'None',
'stations': 'None',
'levels': 'None',
'params': 'None',
'truth': 'None',
'fields': 'Central Pressure',
'probbins': 'None',
'areas': 'Global',
'expid': 'u-ck824 Vs u-co412',
'plot type': 'Forecast',
'stats': 'Bias',
'thresh': 'None',
'tiletype': 'None',
'storm name': 'None'}
imt.image_file_postproc(pathname, img_tags=img_tags)
Example image (with a dpi of 100 before being passed through imt.image_file_postproc()):

branch: 137-imtsavefigpy-only-saving-images-at-72-dpi

authors: elliottwarren melissaebrooks

repo: SciTools-incubator/image-meta-tag


text:
ASV - Document Airspeed Velocity

ASV configuration and a basic benchmark are now part of Iris (#3526). Having completed some basic experiments with ASV against Iris master branch I have some recommended minimum detail that will be needed in our developer documentation testing page:

[x] A new top level section called Performance Benchmarking
[x] The fact we use ASV
[x] The benchmark directory and prefix syntax for tests
[x] The configuration file location and its implications (e.g. the fact it aligns with the requirements for Iris test, ASV will be using conda to manage the environments it creates, etc...)
[x] A standard run configuration that will be used for official benchmarking - currently asv run v2.0.0..master --skip-existing-commits. OR a Nox session that encodes the same thing; this would probably be preferable.

Closed by #4621

repo: SciTools/iris


text:
Iris API param not rendering

📚 Documentation

Whilst reviewing the dsocs for another task I noticed there are a few occurrences of :param: that is not rendering correctly due to alignment and maybe other syntax issues.

https://scitools-iris.readthedocs.io/en/latest/generated/api/iris/fileformats/pp.html?highlight=%3Aparam%3A#iris.fileformats.pp.save
https://scitools-iris.readthedocs.io/en/latest/generated/api/iris/fileformats/nimrod_load_rules.html?highlight=%3Aparam%3A#iris.fileformats.nimrod_load_rules.run
https://scitools-iris.readthedocs.io/en/latest/generated/api/iris/fileformats/dot.html?highlight=%3Aparam%3A#iris.fileformats.dot.save

There maybe other occurrences too, not dug any further.

I didn't even know that was supposed to be possible! Would be great if it worked 🙂

It definitely does work in many places.
For example : https://scitools-iris.readthedocs.io/en/latest/generated/api/iris/coords.html#iris.coords.CellMethod.method
which comes from : https://github.com/SciTools/iris/blob/main/lib/iris/coords.py#L2974-L2975
However, I'm seeing that some other things are not so happy..
Sphinx seems to have started putting two of these on one line sometimes. #4660
Which may or not be related..

The consistent thing between those examples is that they are formatted like
Args:
    * something - description

which is probably a few too many steps away from what napoleon expects. I would try:

removing the * list markers
removing the indentation
replacing the - with :

I have a branch primed to fix this issue but ideally want to use my read the docs test space to render them for all to see, thish is being used for another PR atm.  Will create the PR next week sometime.
Related to https://github.com/SciTools/iris/issues/3840.

Fixed by https://github.com/SciTools/iris/issues/3840.

authors: bsherratt pp-mo tkknight trexfeathers


text:
Remove obsolete import of iris.fileformats.dot

This explicit import should not be needed - the import is intended to be deferred.

Can't argue with that !

authors: pp-mo rhattersley


text:
whatsnew - branded section icons

🚀 Pull Request
Description
This PR adds icon branding to the whatsnew section headers.
Some of the icons align with those already chosen for the associated issues icon templates.
If and when #3850 is merged, I'll align the Announcements section appropriately.
To help reviewers, the rendered readthedocs changes of this PR are available:

latest whatsnew.
Contribution categories

Consult Iris pull request check list

Nice, we seem to have converted to the 'fun logo pack', which I am fully in favour of!

@trexfeathers Superb! Thanks :+1:

authors: bjlittle trexfeathers


text:
msiafterburner@4.6.5: Fix install

Closes #13579

[x] I have read the Contributing Guide.

/verify

repo: ScoopInstaller/Extras

license: Unlicense


text:
abricotine@1.1.4: Fix homepage, add EOL note

Fixes homepage

Closes #14346

[x] I have read the Contributing Guide.

/verify

authors: Gitoffthelawn aliesbelik


text:
systeminformer-nightly: Enhance pre_uninstall script

Relates to https://github.com/ScoopInstaller/Versions/pull/885#issuecomment-1418137949

[x] I have read the Contributing Guide.

/verify

repo: ScoopInstaller/Versions


text:
Crash on Fabric 1.20.1 for 1.4.4

The game crashes at the main menu in 1.20.1 (because music starts playing instantly). Version 1.4.3 worked fine, as does 1.4.4 on 1.20.2.
Mods:

Fabric API 0.90.0+1.20.1
Now Playing 1.4.4

crash-2023-10-13_19.20.38-client.txt

Sorry, looks like I mistagged that version. Use 1.4.3 for 1.20.1 and 1.4.4 for 1.20.2.

authors: Dantevg Scotsguy

repo: Scotsguy/now-playing


text:
577 - Refactor to remove ProfileProvider

Description
Previous work was put in place to mark the ProfileProvider as deprecated and to get round to removing it. This goes as close as we currently can to removing it by replacing it with a much simpler CurrentProfileCache. This is now set at data generation stage and is only consumed once in HierarchalFieldFixStrategy.
I subsequently tried to remove this dependency too but the change was too large and risky to do (see PR #624
Changes
Replaced ProfileProvider with CurrentProfileCache.
Adjusted field fix strategies to use CurrentProfileCache or ProfileFields where appropriate.
Issue
Resolves #577

This change appears to simply move the problem back one stage. It certainly removes the Guice imports in code but I'm not sure it provides any material change.
On the face of it the change should be focused around removing the profile dependency from the FixFieldStrategy or something to this effect. This would then allow for a complete change.
Also, the tree is a representation of the profile, albeit an unsymmetrical adaptation. There should still be sufficient information here to support analysis of the profile (by way of its tree representation) to provide the order of fields to fix.

authors: MattCline-SL sl-slaing

repo: ScottLogic/datahelix


text:
Signal Plot: Is vertical orientation possible?

This issue will explore feasibility of creating vertical signal plots. The signal plot type is one of the most complex, with many features that would have to be refactored (e.g., color by density) making this task very challenging. An alternative option is to create a new VerticalSignal plot type with minimal features.
Discussed in https://github.com/ScottPlot/ScottPlot/discussions/1184

Originally posted by gigios August  5, 2021
First of all I apologize if the question has already been asked, but I have not found it 😊
I'm investigating the functionality of the library to be able to draw a graph with thousands of values (signal).
My problem is that I need to show 10 charts with the sample rate in the Y axis and values in X.
Exists a simple way to do this with the Signal plot?
What I need is similar to this photo

I need to replicate a similar visualization in my wpf app with the possibility to scroll all the signals in vertical and, if there are more than 10 charts, scroll also in horizontal (but the scroll I think is not a problem).
A possible solution could be rotate the Wpf Plot Control of 90 degree, but in this way I need also to rotate the Axis labels.
Thanks for any suggestion.

I have added, in the discussion, a first test of a possible workaround in the Wpf application, where it's very easy to rotate controls. I have only some troubles on place the axis labels in the correct position, but this is probably a my problem because it's the first time I'm using the 'ScottPlot' 😊

With the WPF workaround (LayoutTransform\RotateTransform in xaml) and the last version of the ScottPlot I'm able to 'simulate' a vertical orientation for the signal plot 👍
Now there is only a small problem related the position of the axis label because are too close to the chart. This probably depends how the rotation is applied to the label text.
This is the WpfSample, where I have rotated the control in the xaml (90 degree) and also the Axis Y2.

Rotated ScottPlot Control

<DockPanel>
    <DockPanel.LayoutTransform>
        <RotateTransform
            CenterX="0.5"
            CenterY="0.5"
            Angle="90"/>
    </DockPanel.LayoutTransform>
    <ScottPlot:WpfPlot Name="WpfPlot1"/>
</DockPanel>

public MainWindow()
{
    InitializeComponent();

    WpfPlot1.Plot.AddSignal(ScottPlot.DataGen.Sin(51));
    WpfPlot1.Plot.AddSignal(ScottPlot.DataGen.Cos(51));

    // hide original vertical axis
    WpfPlot1.Plot.YAxis.Ticks(false);
    WpfPlot1.Plot.YAxis.Label("Title");

    // vertical axis (when rotated)
    WpfPlot1.Plot.XAxis.Ticks(true);
    WpfPlot1.Plot.XAxis.TickLabelStyle(rotation: 90);

    // horizontal axis (when rotated)
    WpfPlot1.Plot.YAxis2.Ticks(true);
    WpfPlot1.Plot.YAxis2.TickLabelStyle(rotation: 90);

    WpfPlot1.Render();
}

Perfect, thanks.
Do you think to release a new nuget update in a short time? Otherwise I will try to use directly the source code to do my additional tests 👍

Perfect, thanks.

Sure thing! I'm happy with the outcome here.

Do you think to release a new nuget update in a short time?

I'll make a NuGet release after I finish #1242 which I anticipate completing today or tomorrow 👍

>     // horizontal axis (when rotated)
>     WpfPlot1.Plot.YAxis2.Ticks(true);
>     WpfPlot1.Plot.YAxis2.TickLabelStyle(rotation: 90);

Its great that teh tick labels can be rotated, but unfortunately this leaves the title for YAxis2 (the new horizontal axis) upside down. Is there any means to rotate the axis titles?
My rotated implementation (left) compared with standard implementation (right):

Is there any means to rotate the axis titles?

Thanks for this question! Currently no, but it seems like an oversight. I created #1754 to address this deficiency and anticipate I can add this features in the next few days. I'll post updates on that issue page 👍

authors: gigios swharden zeticabrian

repo: ScottPlot/ScottPlot


text:
Legend cannot display Chinese（图例无法显示中文字符）

Issue: (Describe the bug here)
Legend cannot display Chinese（图例无法显示中文字符）
ScottPlot Version: (What NuGet package are you using?)
5.0.21
Code Sample: See http://scottplot.net/faq/repro/ for tips about creating reproducible code samples

        data_point list_PV { get; set; }
        data_point list_OV { get; set; }
        data_point list_SP { get; set; }
        List<Scatter> scatters { get; set; }
 public Form1()
 {
     InitializeComponent();
     labels = new List<Label>();
     Initialize();
 }
 void Initialize()
 {
     scatters=new List<Scatter>();
     list_PV = new data_point(1000);
     list_OV= new data_point(1000);
     list_SP= new data_point(1000);
     var x = formsPlot1.Plot.Add.Scatter(list_OV.Times, list_OV.DATA,new ScottPlot.Color(255,0,0));
     var www = Encoding.Default.GetBytes("杨");
     var str= Encoding.UTF8.GetString( Encoding.Convert(Encoding.Default, Encoding.UTF8, www));

     x.Label = str;
     scatters.Add(x);
     var y = formsPlot1.Plot.Add.Scatter(list_PV.Times, list_PV.DATA, new ScottPlot.Color(0, 0, 255));
     y.Label = "反 馈 值";
     scatters.Add(y);
     var z = formsPlot1.Plot.Add.Scatter(list_SP.Times, list_SP.DATA, new ScottPlot.Color(0, 255, 0));
     z.Label = "设 定 值";
     scatters.Add(y);

     formsPlot1.Plot.Axes.DateTimeTicksBottom();
     formsPlot1.Plot.ShowLegend(Alignment.UpperLeft);
 }
 public class data_point
 {
     public double[] DATA { get; set; }
     public DateTime[] Times { get; set; }
     public int num {  get; set; }

     public data_point(int len)
     {
         DATA = new double[len];
         Times = new DateTime[len];
         num = 0;
         for (int i = 0; i < len; i++)
         {
             DATA[i] = 0;
             Times[i]= DateTime.Now;
         }
     }
     public void Add(double data)
     {
         if (num == DATA.Length-1)
         {
             DATA[num]= data;
             Times[num]= DateTime.Now;
             num=0;
         }
         else
         {
             DATA[num] = data;
             Times[num] = DateTime.Now;
             num++;
         }
     }
 }

It seems that you need manually set Font.Name for Legend to fix it.
I'm using the first solution:
formsPlot1.Plot.Legend.Font.Name = SKFontManager.Default.MatchCharacter('汉').FamilyName;

or you don't want to call SKFontManager directly:
formsPlot1.Plot.Legend.Font.Name = Fonts.Detect("汉");

谢谢，问题解决了
Thank you, the problem has been resolved

authors: Milkitic Yangjunfengx


text:
Update and Change Calendar data

Dear
I want to update calendar data real time with script.
My data if change I could not update calendar data.
thanks

I apologize for the long silence! Can you provide an example of your code?

Like this heatmap-variant more than others because months are shown separately and it has a nice set of customization options.
But I have the same problem. Script:
function refresh()
{
  $('<my selector>').each( function() {
    /*$('#act' + $(this).html()).html('');*/
    $.ajax({
      url: '<script returning JSON>.php',
      type: 'GET',
      data: {
        year: $(this).html(),
        <name1>: $('input[name=<inputname1>]').val(),
        <name2>: $('input[name=<inputname2>]').val(),
      },
      dataType: 'json',

      success: function(result) {
        $('#act' + result.year).CalendarHeatmap(result.data, {
          lastMonth: 12,
          lastYear: result.year,
          /* more cosmetic options */
        });
      }
    });
  });
}

$(function() {
  refresh();
});

At page load, the heatmaps are rendered. There's a form with two input fields that also invoke 'refresh()' at the onchange event. I can see the Ajax calls returning the expected data, but the heatmaps aren't refreshed with the changed data sets. If I then reload the page (preserving form values), the updated heatmaps are rendered as yet.
If I enable the commented-out html('') call to clear the divs, the heatmaps are removed at onchange, but no new ones are rendered.
Could this be caused by the main "this.calendarHeatmap();" call being invoked only from the plugin's "init:" method?
Btw, in step 6 here, the tiles option with its values could be documented.

Thank you for the detailed description of the issue. I will try to update the plugin ASAP.
Regarding the link you have provided. I think the issue is that this service is not updating the Readme file. Please find everything documented including the tiles here.

That was encouraging to read -- any progress?
Even if my use of the heatmap plugin is only in a private, non-vital application, I'd love it if refreshing works as expected.

Hey mate - also was wondering about how to achieve updating of control with a different dataset. Do you have a workaround to achieve this ?
Thanks in advance

I found some time to work on the plugin and the functions to update the dates (data) and the options are available with the latest release (v.1.2.0) now.

I updated my application just now, and updateDates does the job. Thanks a lot!

I'm glad it is working for you now.

authors: SeBassTian23 Xymph excel-vba-course nouranianfar


text:
increased debug verbosity and adding node templates in optimizer output

The information of cloud resources was not included in the output information of the optimizer, only the names of the cloud resources.
This PR adds such information to the ADPs created by the optimizer.

lgtm

authors: andreaturli perezp

repo: SeaCloudsEU/SeaCloudsPlatform


text:
Feature/group management

Groups are expected by Deployer as a topology_template's child.

@szenzaro @MicheleGuerriero  please take a look to this commit. Probably, we could expect groups as a topology_template's child.

Current coverage is 32.17%

Merging #188 into master will increase coverage by +0.07% as of 8cb6bdf

@@            master    #188   diff @@
======================================
  Files          319     319
  Stmts        11676   11676
  Branches      1472    1472
  Methods          0       0
======================================
+ Hit           3749    3757     +8
+ Partial        387     384     -3
+ Missed        7540    7535     -5

Review entire Coverage Diff as of 8cb6bdf

Powered by Codecov. Updated on successful CI builds.

+1 for me

@kiuby88 : This branch has conflicts. Could you resolve this?

@rosogon sorry for the late response.
Rebased

I think this PR will make the monitoring-dam-generator-core module to not work since it changes the format of the input and my ADP parser will fail. If it is needed to be compliant with the TOSCA specification I can fix my parser, but I have some doubts this doesn't affect only me. @kiuby88 can you please help me in clarify how to handle this point?

@MicheleGuerriero We can talk on monday and I can make clear this change. I agree with you that this might not affect only you.
I would keep the PR open until we solve these issues.
@kiuby88

Stop using just Strings!

@kiuby88 please refactor
public static String generateDam(String adp, String monitorGenURL, String monitorGenPort, String slaGenURL) {

into something Object Oriented like
public DAM generateDAM(ADP adp)

where ADP is probably just a4c's Topology and DAM is Topology + Policies, I think.
Do you think it is feasible?

@kiuby88 I'm doing something similar like @andreaturli proposes with SeaCloudsApplicationData.java (in https://github.com/adriannieto/SeaCloudsPlatform/blob/feature/move-orchestration-from-js-to-java/dashboard/src/main/java/eu/seaclouds/platform/dashboard/model/SeaCloudsApplicationData.java just in case you want to take a look), I agree with @andreaturli but @szenzaro must agree on this, because maybe it will involve a lot of changes.

@MicheleGuerriero , I did not know that your component used groups. I am sorry.
I have moved groups migration to generateDam method.
Of course, it is a TEMPORAL solution.

I have solved issues 198 and 199 on this PR as a temporal solution. These issues should be fixed from AAM generation.

@szenzaro , could you take  a look?

We (UPI) agree on the updates by @kiuby88

Thanks a lot @jacopogiallo  and @andreaturli

authors: MicheleGuerriero adriannieto andreaturli codecov-io jacopogiallo kiuby88 perezp rosogon szenzaro


text:
有关GIT游戏论坛的问题

[url]https://bbs.gityx.com/forum.php?mod=viewthread&tid=566&highlight=evolve[/url]
这个帖子的内容还能发出来吗,因为已经无法回复了

控制台输入 下方内容后 回车
debug(exportGame);exportGame();undebug(exportGame);

然后触发断点后输入 下方内容并回车
game = t;

然后按F8 或者 蓝色小箭头 继续游戏。
提供一个自动满资源脚本：
autoMaxResource = setInterval(()=>{
for(var k in game.resource){
if(game.resource[k].max>0)game.resource[k].amount = game.resource[k].max;
}
},100)

//如果要暂停请执行下面的脚本 去掉开头的 //
//clearInterval(autoMaxResource)

[url]https://bbs.gityx.com/forum.php?mod=viewthread&tid=566&highlight=evolve[/url] 这个帖子的内容还能发出来吗,因为已经无法回复了

emmm 为什么会在这里问这个。。。

因为论坛已经不能回复了,哈哈哈哈

还有个问题,必须得等触发断点后才能输入后面的内容么.

repo: SeaLoong/BLRHH


text:
Option unwrap in CLI

Making a new issue since #153 got repurposed. With the --verbose flag introduced there, this is the output I'm getting:
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery::executor::real] SELECT "table_name", "user_defined_type_schema", "user_defined_type_name" FROM "information_schema"."tables" WHERE "table_schema" = $1 AND "table_type" = $2, Values([String(Some("public")), String(Some("BASE TABLE"))])
[2021-10-23T16:43:23Z INFO  sqlx::query] /* SQLx ping */; rows: 0, elapsed: 140.301µs
[2021-10-23T16:43:23Z INFO  sqlx::query] SELECT "table_name", "user_defined_type_schema", "user_defined_type_name" …; rows: 1, elapsed: 4.604ms

    SELECT
      "table_name",
      "user_defined_type_schema",
      "user_defined_type_name"
    FROM
      "information_schema"."tables"
    WHERE
      "table_schema" = $1
      AND "table_type" = $2

[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableQueryResult { table_name: "people", user_defined_type_schema: None, user_defined_type_name: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableInfo { name: "people", of_type: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery::executor::real] SELECT "column_name", "data_type", "column_default", "generation_expression", "is_nullable", "is_identity", "numeric_precision", "numeric_precision_radix", "numeric_scale", "character_maximum_length", "character_octet_length", "datetime_precision", "interval_type", "interval_precision" FROM "information_schema"."columns" WHERE "table_schema" = $1 AND "table_name" = $2, Values([String(Some("public")), String(Some("people"))])
[2021-10-23T16:43:23Z INFO  sqlx::query] /* SQLx ping */; rows: 0, elapsed: 208.231µs
[2021-10-23T16:43:23Z INFO  sqlx::query] SELECT "column_name", "data_type", "column_default", …; rows: 8, elapsed: 15.731ms

    SELECT
      "column_name",
      "data_type",
      "column_default",
      "generation_expression",
      "is_nullable",
      "is_identity",
      "numeric_precision",
      "numeric_precision_radix",
      "numeric_scale",
      "character_maximum_length",
      "character_octet_length",
      "datetime_precision",
      "interval_type",
      "interval_precision"
    FROM
      "information_schema"."columns"
    WHERE
      "table_schema" = $1
      AND "table_name" = $2

[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "id", column_type: "integer", column_default: Some("nextval('people_id_seq'::regclass)"), column_generated: None, is_nullable: "NO", is_identity: "NO", numeric_precision: Some(32), numeric_precision_radix: Some(2), numeric_scale: Some(0), character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "id", col_type: Integer, default: Some(ColumnExpression("nextval('people_id_seq'::regclass)")), generated: None, not_null: Some(NotNull), is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "wmbid", column_type: "character varying", column_default: None, column_generated: None, is_nullable: "YES", is_identity: "NO", numeric_precision: None, numeric_precision_radix: None, numeric_scale: None, character_maximum_length: Some(16), character_octet_length: Some(64), datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "wmbid", col_type: Varchar(StringAttr { length: Some(16) }), default: None, generated: None, not_null: None, is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "snowflake", column_type: "bigint", column_default: None, column_generated: None, is_nullable: "YES", is_identity: "NO", numeric_precision: Some(64), numeric_precision_radix: Some(2), numeric_scale: Some(0), character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "snowflake", col_type: BigInt, default: None, generated: None, not_null: None, is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "active", column_type: "boolean", column_default: None, column_generated: None, is_nullable: "NO", is_identity: "NO", numeric_precision: None, numeric_precision_radix: None, numeric_scale: None, character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "active", col_type: Boolean, default: None, generated: None, not_null: Some(NotNull), is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "data", column_type: "jsonb", column_default: None, column_generated: None, is_nullable: "YES", is_identity: "NO", numeric_precision: None, numeric_precision_radix: None, numeric_scale: None, character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "data", col_type: Unknown("jsonb"), default: None, generated: None, not_null: None, is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "version", column_type: "integer", column_default: None, column_generated: None, is_nullable: "NO", is_identity: "NO", numeric_precision: Some(32), numeric_precision_radix: Some(2), numeric_scale: Some(0), character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "version", col_type: Integer, default: None, generated: None, not_null: Some(NotNull), is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "apikey", column_type: "character varying", column_default: None, column_generated: None, is_nullable: "YES", is_identity: "NO", numeric_precision: None, numeric_precision_radix: None, numeric_scale: None, character_maximum_length: Some(25), character_octet_length: Some(100), datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "apikey", col_type: Varchar(StringAttr { length: Some(25) }), default: None, generated: None, not_null: None, is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnQueryResult { column_name: "discorddata", column_type: "jsonb", column_default: None, column_generated: None, is_nullable: "YES", is_identity: "NO", numeric_precision: None, numeric_precision_radix: None, numeric_scale: None, character_maximum_length: None, character_octet_length: None, datetime_precision: None, interval_type: None, interval_precision: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] ColumnInfo { name: "discorddata", col_type: Unknown("jsonb"), default: None, generated: None, not_null: None, is_identity: false }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery::executor::real] SELECT "table_constraints"."constraint_schema", "table_constraints"."constraint_name", "table_constraints"."table_schema", "table_constraints"."table_name", "table_constraints"."constraint_type", "table_constraints"."is_deferrable", "table_constraints"."initially_deferred", "check_constraints"."check_clause", "key_column_usage"."column_name", "key_column_usage"."ordinal_position", "key_column_usage"."position_in_unique_constraint", "referential_constraints_subquery"."unique_constraint_schema", "referential_constraints_subquery"."unique_constraint_name", "referential_constraints_subquery"."match_option", "referential_constraints_subquery"."update_rule", "referential_constraints_subquery"."delete_rule", "referential_constraints_subquery"."table_name", "referential_constraints_subquery"."column_name" FROM "information_schema"."table_constraints" LEFT JOIN "information_schema"."check_constraints" ON "table_constraints"."constraint_name" = "check_constraints"."constraint_name" LEFT JOIN "information_schema"."key_column_usage" ON "table_constraints"."constraint_name" = "key_column_usage"."constraint_name" LEFT JOIN (SELECT "referential_constraints"."constraint_name", "referential_constraints"."unique_constraint_schema", "referential_constraints"."unique_constraint_name", "referential_constraints"."match_option", "referential_constraints"."update_rule", "referential_constraints"."delete_rule", "key_column_usage"."table_name", "key_column_usage"."column_name" FROM "information_schema"."referential_constraints" LEFT JOIN "information_schema"."key_column_usage" ON "referential_constraints"."unique_constraint_name" = "key_column_usage"."constraint_name") AS "referential_constraints_subquery" ON "table_constraints"."constraint_name" = "referential_constraints_subquery"."constraint_name" WHERE "table_constraints"."table_schema" = $1 AND "table_constraints"."table_name" = $2 ORDER BY "table_constraints"."constraint_name" ASC, "key_column_usage"."ordinal_position" ASC, "referential_constraints_subquery"."unique_constraint_name" ASC, "referential_constraints_subquery"."constraint_name" ASC, Values([String(Some("public")), String(Some("people"))])
[2021-10-23T16:43:23Z INFO  sqlx::query] /* SQLx ping */; rows: 0, elapsed: 490.332µs
[2021-10-23T16:43:23Z INFO  sqlx::query] /* SQLx ping */; rows: 0, elapsed: 188.771µs
[2021-10-23T16:43:23Z INFO  sqlx::query] SELECT "table_constraints"."constraint_schema", "table_constraints"."constraint_name", "table_constraints"."table_schema", …; rows: 4, elapsed: 11.477ms

    SELECT
      "table_constraints"."constraint_schema",
      "table_constraints"."constraint_name",
      "table_constraints"."table_schema",
      "table_constraints"."table_name",
      "table_constraints"."constraint_type",
      "table_constraints"."is_deferrable",
      "table_constraints"."initially_deferred",
      "check_constraints"."check_clause",
      "key_column_usage"."column_name",
      "key_column_usage"."ordinal_position",
      "key_column_usage"."position_in_unique_constraint",
      "referential_constraints_subquery"."unique_constraint_schema",
      "referential_constraints_subquery"."unique_constraint_name",
      "referential_constraints_subquery"."match_option",
      "referential_constraints_subquery"."update_rule",
      "referential_constraints_subquery"."delete_rule",
      "referential_constraints_subquery"."table_name",
      "referential_constraints_subquery"."column_name"
    FROM
      "information_schema"."table_constraints"
      LEFT JOIN "information_schema"."check_constraints" ON "table_constraints"."constraint_name" = "check_constraints"."constraint_name"
      LEFT JOIN "information_schema"."key_column_usage" ON "table_constraints"."constraint_name" = "key_column_usage"."constraint_name"
      LEFT JOIN (
        SELECT
          "referential_constraints"."constraint_name",
          "referential_constraints"."unique_constraint_schema",
          "referential_constraints"."unique_constraint_name",
          "referential_constraints"."match_option",
          "referential_constraints"."update_rule",
          "referential_constraints"."delete_rule",
          "key_column_usage"."table_name",
          "key_column_usage"."column_name"
        FROM
          "information_schema"."referential_constraints"
          LEFT JOIN "information_schema"."key_column_usage" ON "referential_constraints"."unique_constraint_name" = "key_column_usage"."constraint_name"
      ) AS "referential_constraints_subquery" ON "table_constraints"."constraint_name" = "referential_constraints_subquery"."constraint_name"
    WHERE
      "table_constraints"."table_schema" = $1
      AND "table_constraints"."table_name" = $2
    ORDER BY
      "table_constraints"."constraint_name" ASC,
      "key_column_usage"."ordinal_position" ASC,
      "referential_constraints_subquery"."unique_constraint_name" ASC,
      "referential_constraints_subquery"."constraint_name" ASC

[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableConstraintsQueryResult { constraint_schema: "public", constraint_name: "2200_16389_1_not_null", table_schema: "public", table_name: "people", constraint_type: "CHECK", is_deferrable: "NO", initially_deferred: "NO", check_clause: None, column_name: None, ordinal_position: None, position_in_unique_constraint: None, unique_constraint_schema: None, unique_constraint_name: None, match_option: None, update_rule: None, delete_rule: None, referential_key_table_name: None, referential_key_column_name: None }
[2021-10-23T16:43:23Z INFO  sqlx::query] /* SQLx ping */; rows: 0, elapsed: 142.150µs
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableConstraintsQueryResult { constraint_schema: "public", constraint_name: "2200_16389_4_not_null", table_schema: "public", table_name: "people", constraint_type: "CHECK", is_deferrable: "NO", initially_deferred: "NO", check_clause: None, column_name: None, ordinal_position: None, position_in_unique_constraint: None, unique_constraint_schema: None, unique_constraint_name: None, match_option: None, update_rule: None, delete_rule: None, referential_key_table_name: None, referential_key_column_name: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableConstraintsQueryResult { constraint_schema: "public", constraint_name: "2200_16389_6_not_null", table_schema: "public", table_name: "people", constraint_type: "CHECK", is_deferrable: "NO", initially_deferred: "NO", check_clause: None, column_name: None, ordinal_position: None, position_in_unique_constraint: None, unique_constraint_schema: None, unique_constraint_name: None, match_option: None, update_rule: None, delete_rule: None, referential_key_table_name: None, referential_key_column_name: None }
[2021-10-23T16:43:23Z DEBUG sea_schema::postgres::discovery] TableConstraintsQueryResult { constraint_schema: "public", constraint_name: "people_pkey", table_schema: "public", table_name: "people", constraint_type: "PRIMARY KEY", is_deferrable: "NO", initially_deferred: "NO", check_clause: None, column_name: Some("id"), ordinal_position: Some(1), position_in_unique_constraint: None, unique_constraint_schema: None, unique_constraint_name: None, match_option: None, update_rule: None, delete_rule: None, referential_key_table_name: None, referential_key_column_name: None }
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /home/fenhl/.cargo/registry/src/github.com-1ecc6299db9ec823/sea-schema-0.2.9/src/postgres/parser/table_constraints.rs:39:47
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Please reopen if you still have problems

repo: SeaQL/sea-orm


text:
EOS-19656: Notify M0_NC_FAILED for motr configuration objects on server node failure

Description
Jira - EOS-19656
On server node failure notification, Hare needs to report M0_NC_FAILED for the corresponding motr configuration objects, viz: node, enclosure (post EOS-17599), controller, and drives to all the Motr processes including s3servers.
Solution
In broadcast_ha_states(), added a check for process failures.

fetch node from the failed process fid
fetch fids of all configuration objects
fetch node fid
fetch enclosure fid
fetch controller fid
append all states (fid: status) to HaNoteStruct notes

which is further notified to motr processes.
Note:  how to be sure that process failure is due to node failure?
We don't need to. Logically node failure and process failure will have the same effect.
If the node fails devices are not accessible, or even if the process fails we lose access to devices. Without ioservice, we cannot access the devices on that node so they are effectively failed.

@Shreya-18 Can you please re-phrase your first two commits (or probably squash them if they don't have a historical value per se)?

@Shreya-18 Can you please re-phrase your first two commits (or probably squash them if they don't have a historical value per se)?

Done, and rebased too

@Shreya-18 , @knekrasov , please resolve the comments if addressed to satisfaction.

@Shreya-18 , we need to make following changes,
diff --git a/hax/hax/handler.py b/hax/hax/handler.py
index d79a9ce..b5815f1 100644
--- a/hax/hax/handler.py
+++ b/hax/hax/handler.py
@@ -98,8 +98,6 @@ class ConsumerThread(StoppableThread):
                         # notifications, it may cause delay in cleanup
                         # activities.
                         continue
-                    else:
-                        current_status = ServiceHealth.STOPPED
                 if current_status == ServiceHealth.UNKNOWN:
                     # We got service status as UNKNOWN, that means hax was
                     # notified about process failure but hax couldn't
diff --git a/hax/hax/motr/__init__.py b/hax/hax/motr/__init__.py
index e6b7b33..ec58740 100644
--- a/hax/hax/motr/__init__.py
+++ b/hax/hax/motr/__init__.py
@@ -277,18 +277,13 @@ class Motr:
                 continue
             note = HaNoteStruct(st.fid.to_c(), ha_obj_state(st))
             notes.append(note)
-            notify_node = False
             if (st.fid.container == ObjT.PROCESS.value and
                     st.status == ServiceHealth.STOPPED):
                 notify_devices = False
                 # For process failure, we report failure for the corresponding
                 # node (enclosure) and CVGs.
-                notify_node = True
             notes += self._generate_sub_services(note, self.consul_util,
                                                  notify_devices)
-            if notify_node:
-                notes += self.notify_node_failure(note)
-
         if not notes:
             return []
         message_ids: List[MessageId] = self._ffi.ha_broadcast(
@@ -368,6 +363,7 @@ class Motr:
         service_notes = [HaNoteStruct(no_id=x.fid.to_c(), no_state=new_state)
                          for x in service_list]
         if notify_devices:
+            service_notes += self.notify_node_failure(note)
             service_notes += self._generate_sub_disks(note, service_list, cns)

         return service_notes

ctrl, node and enclosure failure notifications need to be sent in case the process status is FAILED.
And there's another change which was prohibiting FAILED status to be escalated. I have included both the changes in the patch.
Will post the details of degraded IO steps.

@Shreya-18 , we need to make following changes,
ctrl, node and enclosure failure notifications need to be sent in case the process status is FAILED.
And there's another change which was prohibiting FAILED status to be escalated. I have included both the changes in the patch.
Will post the details of degraded IO steps.

@mssawant I have a question
when a node goes down, what should be the service health of the failed node's processes -- stopped or failed?
My observations are when I reboot a node, we get notifications of the process's health as STOPPED.

@Shreya-18 , we need to make following changes,
diff --git a/hax/hax/handler.py b/hax/hax/handler.py
index d79a9ce..b5815f1 100644
--- a/hax/hax/handler.py
+++ b/hax/hax/handler.py
@@ -98,8 +98,6 @@ class ConsumerThread(StoppableThread):
                         # notifications, it may cause delay in cleanup
                         # activities.
                         continue
-                    else:
-                        current_status = ServiceHealth.STOPPED
                 if current_status == ServiceHealth.UNKNOWN:
                     # We got service status as UNKNOWN, that means hax was
                     # notified about process failure but hax couldn't
diff --git a/hax/hax/motr/__init__.py b/hax/hax/motr/__init__.py
index e6b7b33..ec58740 100644
--- a/hax/hax/motr/__init__.py
+++ b/hax/hax/motr/__init__.py
@@ -277,18 +277,13 @@ class Motr:
                 continue
             note = HaNoteStruct(st.fid.to_c(), ha_obj_state(st))
             notes.append(note)
-            notify_node = False
             if (st.fid.container == ObjT.PROCESS.value and
                     st.status == ServiceHealth.STOPPED):
                 notify_devices = False
                 # For process failure, we report failure for the corresponding
                 # node (enclosure) and CVGs.
-                notify_node = True
             notes += self._generate_sub_services(note, self.consul_util,
                                                  notify_devices)
-            if notify_node:
-                notes += self.notify_node_failure(note)
-
         if not notes:
             return []
         message_ids: List[MessageId] = self._ffi.ha_broadcast(
@@ -368,6 +363,7 @@ class Motr:
         service_notes = [HaNoteStruct(no_id=x.fid.to_c(), no_state=new_state)
                          for x in service_list]
         if notify_devices:
+            service_notes += self.notify_node_failure(note)
             service_notes += self._generate_sub_disks(note, service_list, cns)

         return service_notes

Done, updated the patch with changes.

@Shreya-18, the patch looks good, degraded IO was successful with a minor change to cfgen.
[root@ssc-vm-1623:root] m0client -l '10.230.250.51@tcp:12345:4:1' -H '10.230.250.51@tcp:12345:1:1' -p '<0x7000000000000001:0xb6>' -P '<0x7200000000000001:0x25>'
motr[119715]:  9930  ERROR  [conf/confc.c:557:m0_confc_init_wait]  <! rc=-110 confc=0x7f25a40086d0 confd_addr=10.230.250.53@tcp:12345:2:1
motr[119715]:  9930  ERROR  [conf/confc.c:557:m0_confc_init_wait]  <! rc=-110 confc=0x7f25a4009e50 confd_addr=10.230.250.48@tcp:12345:2:1
motr[119715]:  9a80   WARN  [conf/rconfc.c:2419:rconfc_quorum_is_possible]  No chance left to reach the quorum
motr[119715]:  9bd0  ERROR  [conf/rconfc.c:2571:rconfc_version_elected]  <! rc=-71 re-election started
m0client >>write 1048680 /root/read_1048680_1 4096 200 50
m0client >>motr[119715]:  1380  ERROR  [pool/pool_machine.c:472:spare_usage_arr_update]  <7600000000000001:70>: No free spare space slot is found, this pool version is in DUD state; event_index=16 event_state=2
motr[119715]:  1380  ERROR  [pool/pool_machine.c:472:spare_usage_arr_update]  <7600000000000001:70>: No free spare space slot is found, this pool version is in DUD state; event_index=17 event_state=2
motr[119715]:  a890  ERROR  [rpc/frmops.c:474:item_done]  packet 0x7f25e00540b0, item 0x7f25e0053b40[36] failed with ri_error=-5
motr[119715]:  a890  ERROR  [rpc/frmops.c:474:item_done]  packet 0x7f25e00540b0, item 0x7f25e0053b40[38] failed with ri_error=-5

Help:
touch   OBJ_ID
write   OBJ_ID SRC_FILE BLOCK_SIZE BLOCK_COUNT BLOCKS_PER_IO UPDATE_FLAG OFFSET
read    OBJ_ID DEST_FILE BLOCK_SIZE BLOCK_COUNT BLOCKS_PER_IO
delete  OBJ_ID
help
quit
m0client >>read 1048680 /root/read_1048680_node_fail_degraded 4096 200 50
motr[119715]:  16d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  16d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  16d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  16d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  1790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  1790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  1a80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f26380ed250 rc=-125
motr[119715]:  1a80  ERROR  [io_req_fop.c:210:io_bottom_half]  ioo=0x14f5d00 from=10.230.250.48@tcp:12345:2:2 rc=-125 ti_rc=-125 @<4300001100000000:100068>
motr[119715]:  1a80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f26380eb6b0 rc=-125
motr[119715]:  1950   WARN  [io_req.c:1484:ioreq_dgmode_read]  Process failed parity groups in dgmode/read ioo=0x14f5d00 dgmap_nr=18
motr[119715]:  36d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  36d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  36d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  36d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  3790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  3790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  3a80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f2624047f40 rc=-125
motr[119715]:  3a80  ERROR  [io_req_fop.c:210:io_bottom_half]  ioo=0x14f5d00 from=10.230.250.48@tcp:12345:2:2 rc=-125 ti_rc=-125 @<4300001100000000:100068>
motr[119715]:  3a80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f2624046660 rc=-125
motr[119715]:  3950   WARN  [io_req.c:1484:ioreq_dgmode_read]  Process failed parity groups in dgmode/read ioo=0x14f5d00 dgmap_nr=17
motr[119715]:  e6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  e6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  e6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  e6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  e790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  e790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  ea80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f261c0612c0 rc=-125
motr[119715]:  ea80  ERROR  [io_req_fop.c:210:io_bottom_half]  ioo=0x14f5d00 from=10.230.250.48@tcp:12345:2:2 rc=-125 ti_rc=-125 @<4300001100000000:100068>
motr[119715]:  ea80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f261c05ee30 rc=-125
motr[119715]:  e950   WARN  [io_req.c:1484:ioreq_dgmode_read]  Process failed parity groups in dgmode/read ioo=0x14f5d00 dgmap_nr=18
motr[119715]:  c6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  c6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  c6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  c6d0  ERROR  [rpc/session.c:578:m0_rpc_session_validate]  <! rc=-125 Cancelled session
motr[119715]:  c790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  c790  ERROR  [rpc/rpc.c:126:m0_rpc__post_locked]  <! rc=-125
motr[119715]:  ca80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f261405cc30 rc=-125
motr[119715]:  ca80  ERROR  [io_req_fop.c:210:io_bottom_half]  ioo=0x14f5d00 from=10.230.250.48@tcp:12345:2:2 rc=-125 ti_rc=-125 @<4300001000000000:100068>
motr[119715]:  ca80  ERROR  [io_req_fop.c:161:io_bottom_half]  [0x14f5d00] rpc item 0x7f261405b910 rc=-125
motr[119715]:  c950   WARN  [io_req.c:1484:ioreq_dgmode_read]  Process failed parity groups in dgmode/read ioo=0x14f5d00 dgmap_nr=17
m0client >>

[root@ssc-vm-1623:root] ls -l /root/read_1048680_node_fail_degraded
-rw-r--r-- 1 root root 819200 Jun 14 17:40 /root/read_1048680_node_fail_degraded
[root@ssc-vm-1623:root] diff /root/read_1048680_node_fail_degraded /root/read_1048680_1
[root@ssc-vm-1623:root]

authors: Shreya-18 knekrasov mssawant

repo: Seagate/cortx-hare


text:
FindRootsWithin not always returning correct results

Hi @SeanJxie
I found that FindRootsWithin doesn't always return the correct roots.
Here is an example of a polynomial i used:
x^21 - 86400x +86399=0

When I used FindRootsWithin(1,100) I get the following roots: [14.912790 1.000000] : (14.912790 is not a valid root)
When I used FindRootsWithin(0,100) I got the following roots: [1.000000 1.687851] - which are correct.
When I used FindRootsWithin(-100,100) I got the following roots: [-14.765139 1.000000 1.687851] of which -14.765139  is not a valid root.

Hello @MartinSimangoDaemn
Thank you for pointing this bug out. It has been fixed as a result of the Polygo rewrite.
p := NewPolyFromString("x^21 - 86400x + 86399")
s := NewSolverDefault()

fmt.Println(s.FindRootsWithin(p, 1, 100))
fmt.Println(s.FindRootsWithin(p, 0, 100))
fmt.Println(s.FindRootsWithin(p, -100, 100))

Now, you can also find all roots at once:
fmt.Println(s.FindRoots(p))

Cheers,
Sean

authors: MartinSimangoDaemn SeanJxie

repo: SeanJxie/polygo


text:
🛑 IPFS Gateway 1/2 is down

In 87e670f, IPFS Gateway 1/2 (https://ipfs.seanstaffiery.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IPFS Gateway 1/2 is back up in 760705b.


text:
nsc-events-nextjs_6_341_unit-test-for-event-detail-page

This is the Unit test for Event-detail Page
Issue: #341

I have an error with this part and still not figure out yet.

Not all the tests passed. I did a bit of research to see what the issue here might be and to my knowledge i think to resolve this issue, you need to mock the Next.js router in your test. This can be achieved using jest.mock to create a mock implementation of the useRouter hook. Other classmates might have better solutions to help fix the issue

@kaimanasse15 Did you try @MuhammadNSC's advice?

@kaimanasse15 Did you try @MuhammadNSC's advice?
It doesn't work for me. I think I need someone else to follow this. Thanks, @brinkbrink

It's still failing were you able to try other resources for this?

Closing due to inactivity. Reopen if needed.

authors: MaddasaHatter MuhammadNSC brinkbrink kaimanasse15 taylorpapke

repo: SeattleColleges/nsc-events-nextjs


text:
nsc-events-nextjs_7_295_arrow_icons

(Help is needed on this User Story/Work in progress)
Relates to #293

[ ] Add arrow icons to the left and right side of the event.

When the right arrow is clicked, the event being displayed switches to the next one. If there are no more events, the right arrow should disappear.
When the left arrow is clicked, the event being displayed switches to the previous one. If there are no more previous events, the left arrow should disappear.

I need to hand off this User Story to another capable developer. This is beyond my scope of knowledge, so any assistance is greatly appreciated. Thank you.

Hello i think this will be a great imporvement for the UI on the app.  I agree that the left arrow should disappear if there are no previous events, and the right arrow should do the same if there are no more upcoming events. The changes should be made in the page.tsx file.
I noticed that clicking the arrows doesn't change the event being displayed yet, so that part still needs fixing. On the plus side, the date format issue is sorted, and dates now show up correctly without the timestamp, Good Job. This improvement makes the event details page look much better.
For more info on navigation features in React I found this link : https://reactrouter.com/en/main/components/navigate

Looks good. I'm able to see the dates in the proper format mm-dd-yyyy format without the timestamp. I'm also able to see the arrow on the event-detail page but when I click the arrow it doesn't change the event. I can pick up where you left off on this user story/issue

Thank you, Robel!

There are conflicts with the main branch.

So far it looks good the function is there and I can really see a difference in usability with these additions. keep up the good work. I did notice though there may be some merge conflicts.

The arrows looks good but I am not able to create an event but I think some data is conflicinting and not your error.


text:
Add Simple Pill enclosure stl files

💊💊💊

LGTM. I don't personally have a setup to verify/print these designs. But I have no issue adding these to the repo. @SeedSigner thoughts?

I am extremely grateful for @blackcoffeexbt for making this PR and for his very high quality design. My only question is on the installation location for the camera. Have any modifications been made to widen the front-to-back spacing for the stock camera board? I have printed the simple pill and done a couple of builds, and each time I have had to use a dremel to shave down the camera board to be able to install it. Having assembled hundreds of SeedSigners, I feel as though the current open pill has hit the sweet spot for this front-to-back clearance. The camera board doesn't necessarily have to snap in tightly, as it will generally be held in place by the Pi Zero. I wish there wasn't so much variance in the sizing of those camera boards, but feel like we should accommodate for it without users needing to potentially try to modify their camera board. Open to your thoughts @blackcoffeexbt and thank you again for being willing to contribute this design, a lot of people are going to get a ton of use and enjoyment out of it.

I just completed a test print and the fit is perfect. Immensely appreciate @blackcoffeexbt for open sourcing this design.

authors: SeedSigner blackcoffeexbt newtonick

repo: SeedSigner/seedsigner


text:
opener::open does not fail at all, even when e.g. file is missing on Linux

Fedora 38 + Gnome (Wayland)

Repro:
> xdg-open foo.sav
gio: file:///home/tibordp/foo.sav: Error when getting information for file “/home/tibordp/foo.sav”: No such file or directory
> echo $?
4
> cat repro.rs
#!/usr/bin/env rust-script
//! ```cargo
//! [dependencies]
//! opener = "0.6.1"
//! ```
fn main() {
    const FILE: &str = "foo.sav";
    opener::open(FILE).unwrap();
    println!("{} opened successfully!", FILE);
}
> ./repro.rs
foo.sav opened successfully!
> echo $?
0

When the system xdg-open fails, as in this case, we fall back to our internal xdg-open script:
https://github.com/Seeker14491/opener/blob/ff6e2599f1360332dac2b87877f9e1694ad654c3/opener/src/linux_and_more.rs#L52-L58
It seems the internal xdg-open erroneously succeeds in this case, so no error is reported. To fix this, maybe we shouldn't be using the fallback in the case where the system xdg-open exists.

Tried with the bundled xdg-open and it fails as expected
tibordp@mnemosyne:~ $ ./bundled-xdg-open.sh foo.sav
gio: file:///home/tibordp/foo.sav: Error when getting information for file “/home/tibordp/foo.sav”: No such file or directory
tibordp@mnemosyne:~ $ echo $?
4

The way I'm seeing is the problem is that the library just checks if the spawning fails, but does not actually check the exit code of the spawned process.
https://github.com/Seeker14491/opener/blob/master/opener/src/linux_and_more.rs#L69-L98

Ah, you're right, though that is intentional. The issue is that we don't want to block on the open() call, so we don't wait to check the exit code.

Interesting - is there a reason the crate waits on Mac then? At least on my system, xdg-open exits once the file has been opened and does not wait for the process to terminate.

Yes, on Mac the system-provided open command is used, which doesn't block (unless you pass in the -W flag which waits for the program to exit). On Linux, we can't say in general whether xdg-open will or will not block. In the past, this crate actually did wait for xdg-open's status code so we could detect failure, but we encountered the issue of the command blocking in some environments, so it was changed.


text:
Creating a Semi-Standalone EmailHandler that derives from EventProcessor (Part 2)

Closes #367 .
Continuation of the previous PR that has since been pulled down because I changed its name.
At the moment it runs, but the actual MapInstance/DataHelper-EmailHandler interaction is not there yet.

Remaining things to do:

Parse EmailSend correctly in slashCommands. It seems to send the name of the recipient instead of the db_id which does complicate things a bit...
EmailRead and EmailDelete should be alright, since you'd just need the email id and the handlers will deal the rest
Create Email column in Database and integrate it with EmailHandler, DbHandler and DbContext

At the moment these are the major things to do. I expect further issues to arise, and then there's the matter of polishing it too.

Just a note here. As emails are sure to be updated less frequently than CharData, maybe we should stick them in their own table linked to char by db_id as pk?

That's the plan from the beginning. The question is how do I make them?
Once the email table is up and running and integrated with the email handler, I'd say we'd be really close to being done here :D

Some questions I have based on my latest commit (And yeah, it's a bit messy and plenty of placeholders but at least it can run):

Getting emails through sender_id and recipient_id would return multiple emails, should I send an entire vector containing all the emails over a single event?

There are two cases where we'd update an email: To mark the email as read, and when the sender character and/or account is deleted.

Should we put two separate events for this (Something like EmailMarkAsReadMessage and EmailUpdateOnCharacterDeleteMessage)?
And should we put m_is_read_by_recipient outside the blob, since sending the entire email data just to mark it as read feels a little cumbersome.

EmailRemove should be okay, since the only case we'd actually delete the email is from the recipient deleting it from his/her inbox.
That's all for now. I am getting confident we'd finish this before 0.6.0 releases :D

Apart from the very tiny suggested changes, the SQL part of this PR looks good to me. :+1:

Should be working fine except for sending email to names where some other character might have a more extended name of the recipient, such as admin2 sending an email to admin, which instead finds the recipient_id of admin2.
And, I think we can send an email to the same character. It was my oversight of not storing newly-created emails to m_stored_email_datas.

Hi eoS! Thank you for tackling the Email system!
I'm getting some errors on this PR though.

Recipient of email doesn't receive email in their inbox
Sender appears to have gotten email in their inbox instead? Read receipt fires immediately
Sender client crashes when clicking on reply
Writing an email to an offline character causes segfault, and the sender's ID is stored in the database for recipient id.

Debug   : Email Sent to recipient: EmailGuy1
authserver: /Segs/Projects/CoX/Common/Servers/ClientManager.h:118: SESSION_CLASS& ClientSessionStore<SESSION_CLASS>::session_from_token(uint64_t) [with SESSION_CLASS = MapClientSession; uint64_t = long unsigned int]: Assertion `iter != m_token_to_session.end()' failed.

Thank you eoS! Great PR!
Most of the fixes seemed to work, but I received a segfault when opening an email received while offline.
Debug   : Opening Email ID: 1
Debug   : Opening Email ID: 5
authserver: /Segs/Projects/CoX/Common/Servers/ClientManager.h:118: SESSION_CLASS& ClientSessionStore<SESSION_CLASS>::session_from_token(uint64_t) [with SESSION_CLASS = MapClientSession; uint64_t = long unsigned int]: Assertion `iter != m_token_to_session.end()' failed.

crashing when session is used here:
void MapInstance::on_email_read_by_recipient(EmailWasReadByRecipientMessage *msg)
{
    MapClientSession &map_session(m_session_store.session_from_token(msg->session_token()));

Steps to reproduce:

Create two characters on two separate accounts. Send emails back and forth. All OK.
Log out char-2, create new char (char-3). Send email from char-3 to char-2, so far, all OK.
Log out of char-3, and log in char-2. Select new email to read: segfault =(

Notes
Database looks correct, in terms of sender_id and recipient_id equating to the db_id of the characters
Other issues noted:
As mentioned on discord, sending to multiple recipients doesn't seem to work as intended, but I'm comfortable with leaving that for a future PR.
Also, as you've mentioned before, timestamps aren't working, but can be in a followup PR as well.

authors: broxen dracc eos428

repo: Segs/Segs


text:
[fpsconv] fix framerate increasing

PR Type

[ ] Feature
[x] Bug fix
[ ] Docs

Description
Freeing output images caused crashes when increasing the framerate (for example 20 fps to 25 fps)
This PR reworks the free mechanism to properly manage increased fps.
Notes for your reviewer
I also improved debug traces

Yes
On Fri 26 Oct 2018 at 3:22 PM, Antoine R notifications@github.com wrote:

ping @JulienBreux https://github.com/JulienBreux, can I merge this ? 😃
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Seize/joy4/pull/9#issuecomment-433405371, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA626hkoG5X1ZnrykJLli0ywk4sqkqWVks5uowyAgaJpZM4X72S5
.

--
[image: photo]
Julien Breux
+33 687 764 228 | https://www.julienbreux.uk
CTO @SeizeTV https://seize.tv?utm_source=email_jbreux
Founder @Trofify https://trofify.io/?utm_source=email_jbreux
http://us.linkedin.com/in/JulienBreux http://twitter.com/JulienBreux
http://github.com/JulienBreux

authors: JulienBreux a-rose


text:
🛑 API is down

In 592edc6, API (https://api.sekai.best/status) was down:

HTTP code: 525
Response time: 811 ms

Resolved: API is back up in e643ab8 after 13 hours, 30 minutes.

repo: Sekai-World/uptime-monitor


text:
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Python: 3.10.9
Sellix: sellix-python-sdk  1.0.5
replaced <YOUR_API_KEY> and <MERCHANT_NAME> with my own.
encounter this issue:
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
from sellix import Sellix

# pass <MERCHANT_NAME> only if you need to be authenticated as an additional store

client = Sellix("<YOUR_API_KEY>", "<MERCHANT_NAME>")

try:
    products = client.get_products()
except Sellix.SellixException as e:
    print(e)

aslo ImportError: cannot import name 'Sellix' from partially initialized module 'sellix' (most likely due to a circular import)

authors: daidaiworm userKer

repo: Sellix/python-sdk


text:
Sidebar docs's broken

Here's the log when I go to sidebar docs:

Thanks for the report.  There's a new deploying going out with the fix.

authors: lednhatkhanh levithomason

repo: Semantic-Org/Semantic-UI-React


text:
Add label docs usage example for Progress

The Progress component can take a label enum prop to control the type of label displayed within the Progres bar:
ratio
<Progress value='3' total='5' label='ratio' />

percent
<Progress value='3' total='5' label='percent' />

PR is #1356


text:
Fixed menu inside a Sidebar pushable?

I've been stuck here. Basically, I added a fixed menu inside a sidebar pushable like so:
Sidebar.js
<Sidebar.Pushable as={ Segment }>
    <Sidebar as={ Menu } animation="overlay" width='thin'
             visible={ app.sidebarVisibility } icon='labeled'
             vertical inverted>
        <Menu.Item onClick={ () => ( app.sidebarVisibility && onToggleSidebar() ) }
                   as={ NavLink } exact to="/">
            Home
        </Menu.Item>
        <Menu.Item onClick={ () => ( app.sidebarVisibility && onToggleSidebar() ) }
                   as={ NavLink } to="/menu">
            Menu
        </Menu.Item>
    </Sidebar>
    <Sidebar.Pusher onClick={ () => ( app.sidebarVisibility && onToggleSidebar() ) }>
        <Container className="Main-container">
            <Segment basic>
                <NavBar app={ app } onToggleSidebar={ onToggleSidebar } />
                { children }
            </Segment>
        </Container>
    </Sidebar.Pusher>
</Sidebar.Pushable>

NavBar.js
<Menu borderless fixed="top">
    { app.device && app.device.type === 'mobile' &&
    <Menu.Item>
        <Button basic icon="sidebar"
                onClick={ () => ( !app.sidebarVisibility && onToggleSidebar() ) } />
    </Menu.Item>
    }
    <Menu.Item header>Krispy Kreme</Menu.Item>
    { app.device && app.device.type !== 'mobile' &&
    <Menu.Menu>
        <Menu.Item as={ NavLink } to="/" exact>Home</Menu.Item>
        <Menu.Item as={ NavLink } to="/menu">Menu</Menu.Item>
    </Menu.Menu>
    }
    <Menu.Menu position="right">
        <Menu.Item>
            <Button basic icon="cart" label={ <Label color="red"> { cartItems } </Label> } />
        </Menu.Item>
    </Menu.Menu>
</Menu>

How would you go about this?

I got what I want by using flex.

@RhanCandia It would be nice to update the issue with the correct answer so that other people can follow it in the future.

@mairh I updated my opening post to explain how I fixed it. Thanks for reminding me.

@RhanCandia I am having the same issue but your solution isn't working for me. Any chance you could post the full code, including css? Thanks!

@RhanCandia  Can you upload the full code. I am facing the problem of fixed=top menu not working in navbar

authors: RhanCandia Roshini369 Shurlow mairh


text:
Help with SUI Upgrade on Windows

Hi.
I've been using SUI for around a year now (it's fantastic!), but in order to streamline the upgrade process for our team I want to use npm.  So far I have done:
npm install semantic-ui
gulp build

and have a working installation which I have customised for our needs to build to different output folders.
However, I have recently tried to upgrade from version 2.1.4 to 2.1.5 and I'm not sure things are working for me as they should.  I did:
npm update

from within the semantic-ui folder where I originally did the install.  This runs through fine and when I check the semantic version number in the node_modules\semantic-ui folder I see 2.1.5 so that's great.  The problem is that this version is not mirrored in the semantic-ui installation directory because the semantic.json file in there still reads 2.1.4.  I tried doing:
npm install

from inside the semantic-ui installation folder but I get a load of errors relating to a missing package.json file.  I appreciate that the package.json file is sitting in the node_modules/semantic-ui folder and not in the semantic-ui install folder and that is why npm is reporting an error so I assume what I have attempted here is wrong.
I have read all of the documentation on installs/upgrades here:
http://learnsemantic.com/guide/expert.html#running-installer
but they aren't clear on what to do in my specific case to ensure that semantic.json shows the correct version telling me that my installation is running the latest version.
Could someone give me a hand understanding what I am doing wrong and what I need to do to upgrade cleanly please?
Many thanks.

In my case running npm update didn't update semantic ui, my package.json still contained  "semantic-ui": "^2.1.4".
So I tried npm install semantic-ui@2.1.6 which worked fine.
After switching into semantic/ and gulp build I got the latest semantic ui version running.
Hope this helps :)

Fantastic!  Thanks, that did it!

repo: Semantic-Org/Semantic-UI


text:
How to change content when touch different tab

the code like this:

        First
        Second

when I click the First tab, i want get the content from the url 'query1.json', when i click the the Secode tab, i want get the content from the url 'query2.json', the code like that dont work.

@KeZhimin maybe you need something like this..
$('.menu .item').tab(); $('.tab[data-tab="first"]').api({ 	url: 'query1.json', 	//Another settings }); $('.tab[data-tab="second"]').api({ 	url: 'query2.json', 	//Another settings  });

Hi @KeZhimin,
Thank you for posting, but although it’s a valid usage question, we’ve limited GitHub Issues to bug reports and feature requests, keeping the board more manageable for maintainers; see the contributing guidelines for more information on what kind of posts should find themselves into the GitHub Issues board.
To get answers or feedback that might allow you to repost this issue, please use one of our other support resources:

Gitter chatroom
Official forums
StackOverflow

authors: Banandrew KeZhimin bukaOK


text:
JavaScript: Add WebView-related taint sinks for CodeInjection, DomBasedXss and ServerSideUrlRedirect.

I did a small evaluation on four projects that use WebView including VSCode and TinyMCE. Performance was unchanged and there were no new results. I can run a larger-scale evaluation over the weekend if desired.

I was going to suggest that we check for the flag javaScriptEnabled which can be used to turn off JavaScript in the web view. On the other hand, allowing non-scripted html injection can still be pretty bad, and looking at the docs now, it seems the flag only works on Android(?!). What do you think?
Otherwise LGTM.

Yes, I saw that, but as you say it only seems to apply to Android. I didn't really understand whether it was just always enabled on iOS or whether you could turn it off there as well (in which case it would be the same as on Android, so that's probably not it). In the end, I decided to just ignore it for now.

authors: asger-semmle xiemaisi

repo: Semmle/ql


text:
Hide network advanced options when pertinent

If neither Target nor Master are SMB shares, hide "Limit SMB I/O write buffer to 16 KB" and "Retry on network error" options

They still were showing even when no SMB share was selected
Note: give me a few days to validate the french menus, I will push a commit when done
After that, it will take me a few more time/weeks to finish fixing english help docs + translate them to french
Keep up the good work 👍

there is one more smb option left...


text:
Issue 52.ron.0

Pull request questions
Which issue does this address
Issue number: #52
Why was change needed
???
What does change improve
???

No changes needed, closing PR


text:
🛑 MedicoVet is down

In d0e7f99, MedicoVet (https://medicovet.eu) was down:

HTTP code: 429
Response time: 3321 ms

Resolved: MedicoVet is back up in 01afed3 after 7 minutes.

repo: SeoWeb/upptime


text:
HomePod models

Here are the model numbers for the current HomePod lineup.
{
    "HomePod": "AudioAccessory1,1",
    "HomePod": "AudioAccessory1,2",
    "HomePod Mini": "AudioAccessory5,1",
}

Thanks for the great resource!

Thanks!! Since it's JSON the keys need to be different - couldn't find a hardware difference between AudioAccessory1,1 and AudioAccessory1,2.
Maybe something like "HomePod" and "HomePod (Revision)"?

Good catch, I can't find any meaningful differences either. The model number for 1,1 is B238aAP while 1,2 is B238AP.
I like (Revision) better than (Unknown Model) that I see elsewhere. I'll give contributing a go, thanks!

authors: SeparateRecords drakebrian


text:
🛑 Sisedu is down

In 7e9ebf0, Sisedu (https://www.sisedu.org) was down:

HTTP code: 502
Response time: 3133 ms

Resolved: Sisedu is back up in 1a39e8d after 18 minutes.

repo: SequoiaTech/uptime


text:
Add codemod to extract methods from instance that are not instance specific

If a method does not use this we should extract it from the instance and have it as a global function assignment const functionName = () => {... etc

Fixed in 051f97c36fabd6f5381ba7fecefcd439f0197ffb

Can you explain the benefits of this approach?

Hi @webistomin!
There are different reasons for wanting to remove methods from a Vue component that are not dependent on the instance. I do not mean we should always do it, but by doing it we can:

prevent creating "fat" instances with methods that could be outside the instance and do not need to be in memory of every object/instance
identify possible utils functions and extract them to another file to keep the file size manageable
better test functions not related to the instance

If a method does not use the this then it can live outside the component. In some cases it makes sense to keep it so all the logic is in one place. This codemod allows to identify these and extract them.

Hi @webistomin!
There are different reasons for wanting to remove methods from a Vue component that are not dependent on the instance. I do not mean we should always do it, but by doing it we can:

prevent creating "fat" instances with methods that could be outside the instance and do not need to be in memory of every object/instance
identify possible utils functions and extract them to another file to keep the file size manageable
better test functions not related to the instance

If a method does not use the this then it can live outside the component. In some cases it makes sense to keep it so all the logic is in one place. This codemod allows to identify these and extract them.

Thanks!

authors: SergioCrisostomo webistomin

repo: SergioCrisostomo/vue-codemods


text:
Add issues templates.

For bug report and feature request.

Addresses #61.

repo: SerhiiYahdzhyiev/tabs-manager


text:
Localized KeyGesture

I'm looking into ways to localize a tooltip and KeyGesture (think of a button with keyboard shortcut), with the desired result

[en] This button does something (ctrl + H)
[de] Macht irgendwas (strg + H)

Note that the modifiers are localized, too. I know this is related to the every-once-and-then-raised question for localized texts with bindings (now gap text may offer a solution), but this is not exactly the same problem. System.Windows.Input.KeyGesture has a function GetDisplayStringForCulture(CultureInfo c) which returns the nicely formatted "ctrl + H" thing. Tricky part is how to integrate this with WPF-LocEx.
Different (unsatisfying) solutions:

I could hardcode key + modifier into the localization resources.

Drawback: The key/modifier must not change. Wenn key or modifier change, all localizations have to be updated and we have some customers that translate stuff themselves.

I could localize the tooltip message with WPF-LocEx and localize the gesture with the builtin function.

Drawback a) the latter is not sensitive to culture changes. I think one could work around this with weak references and a callback, though.

Drawback b) Cumbersome to use. The code here is terrible for such a small functionality.
     <Button Content="{lex:LocText MyButton}">
         <Button.ToolTip>
             <TextBlock>
                 <Run Text="{lex:LocText MyButtonTooltip}"/>
                 <Run Text="("/><Run Text="{Binding KeyGestureText, Mode=OneWay}"/><Run Text=")"/>
             </TextBlock>
         </Button.ToolTip>
     </Button>

Drawback c) The position of the gesture hint is hard coded.

I could not make this work with StringFormat of a Binding
<TextBlock Text="{Binding KeyGestureText, StringFormat={lex:LocText KeyToFormattedTooltip}}"/>

Although the formatted tooltip is retreived (checked via debugger), it has no effect (not sure why, but I guess it is a known issue).
I was thinking of a similar solution to EnumRun, but could not make it work. Any directions?

Ok, it seems the function KeyGesture.GetDisplayStringForCulture does not, what I expected. On my system it always returns "ctrl" regardless of the culture argument. Kind of useless (?). I iterated over all available cultures using CultureInfo.GetCultures()... result is invariant.
Anyways, I've put together a UserControl (single TextBlock only) that takes a (localization dictionary) key and a KeyGesture. Much like the EnumRun it updates its text on every property change, but additionally registers in a custom WeakReference manager class that notifies all interested (alive) references about culture changes. So... theoretically, the gesture text would update dynamically too - practically, the above mentioned function does not work. Thus, I'm not sure if this has any relevance for other users. Furthermore, it is still cumbersome to use, mhh.
        <Button Command="{Binding ToggleUnitCommand}"
                Content="{lex:LocText MainWindow/ChangeUnit}">
            <Button.ToolTip>
                <ctrl:GestureTooltip Key="MainWindow/ChangeUnitTooltip"
                                     Gesture="{Binding ToggleUnitCommand.KeyGesture}" />
            </Button.ToolTip>
        </Button>

For your interest:
https://msdn.microsoft.com/en-us/library/system.windows.input.keygesture.getdisplaystringforculture(v=vs.110).aspx
https://stackoverflow.com/questions/35341543/show-inputgesturetext-as-a-tooltip-for-a-button
Close unless you're interested.

Thanks for the investigations - I did not believe it but I also got the same string for all cultures for KeyGesture.GetDisplayStringForCulture. This is really weird.
In general - if the function would have worked - one could think of a callback functionality (e.g. an assignable Func<string, CultureInfo>), that could be overwritten by particular implementations, e.g. by deriving from the LocExtension. This would leave space for different tasks. Please open a feature request, if this is what you could need in future. Otherwise, I would recommend using the multiple-Run approach you proposed or the Cloze.

authors: MrCircuit nzain

repo: SeriousM/WPFLocalizationExtension

license: MS-PL


text:
🛑 SLHUB | Site is down

In 453822b, SLHUB | Site (https://slhub.com.br) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SLHUB | Site is back up in af3026c after 12 minutes.


text:
JAV-232 used specific service center version since it has breaking ch…

…anges
Signed-off-by: seanyinx sean.yin@huawei.com

Coverage remained the same at 94.758% when pulling 3f693310b74ae78f5102d589acd3b390eef7d722 on JAV-232_service_center_downgrade into 53e1460289ee7ea6091841a585ee30f65bcc91f6 on master.

authors: coveralls seanyinx

repo: ServiceComb/ServiceComb-Saga


text:
Updated rebalancing set token with internal audit fixes. Added furthe…

…r testing for fee distribution.

Pull Request Test Coverage Report for Build 2777

12 of 15 (80.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.9%) to 99.14%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

contracts/core/RebalancingSetToken.sol
12
15
80.0%

Files with Coverage Reduction
New Missed Lines
%

contracts/core/RebalancingSetToken.sol
1
97.0%

Totals

Change from base Build 2763:
-0.9%

Covered Lines:
578

Relevant Lines:
582

💛  - Coveralls

authors: bweick coveralls

repo: SetProtocol/set-protocol-contracts


text:
웹 사진 공유

목적

웹페이지에 사용될 사진 공유

작업 상세 내용

슬라이드배너, 메인페이지 사진

참고 사항

authors: Jung-kr Lee-Gyeore


text:
Refactor code

Refactor all the following papers:

[ ] TAKD (@Het-Shah)
[ ] Attention (@Het-Shah)
[ ] Noisy

Assign yourselves. Let's get this done quickly and then we can continue adding more papers.

@NeelayS if it is okay to, I will refactor Noisy.

@NeelayS if it is okay to, I will refactor Noisy.

Yeah, sure.

authors: Het-Shah NeelayS khizirsiddiqui


text:
Psych Engine Source Code Problem (Please Help)

Describe your problem here.
Hi i'm having a problem with FNF Source Code someone please help because i don't know how to fix this.

Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No i didn't.

You have failed to load lime.ndll.
Please make sure that lime.ndll is in the folder where PsychEngine.exe is located in the export folder of the source code folder. (For Release builds, export/release/; for debug builds, export/debug/)

But I already have the lime.ndll file and it still doesn't work

I think I once got something similr.
Try reinstalling haxe and all the libraries

repo: ShadowMario/FNF-PsychEngine