Make the bot itelligent

Proposal:
Proposal written by JoshTheLogician
Is it a proposal for the website or for the bot?: bot
What is the title of your proposal?: Make the bot itelligent
Explain your proposal more accurately (It's best to give as much information as possible, so that we can implement the proposal better): Well, try to include the Cleverbot.io Module and make it speaks with Machine Learning and stuff. It is pretty simple
Why should we add this feature?: Cause It just pure fun. To talk with your bot
ReportID: 188

➤ LenoxBot commented:
Approve:
not a bad idea!
SaVaGeCrEePeR28 | Furkan#3532

➤ LenoxBot commented:
Approve:
agree with furkan
Dadi#7808

➤ LenoxBot commented:
Approve:
agree with furkan too
Denarioyt#3352


Can I Change Image DPI ?

There's no way to set the DPI using the imaging API. The imaging.Save and imaging.Encode functions use packages from the standard library (e.g. image/jpeg) and golang.org/x/image subpackages to encode images. These packages don't support saving or retrieving image metadata such as DPI.

There is no such parameter as "DPI" within an image, DPI is evaluated from resolution when it's applied to particular physical dimensions. So exact same image will have different DPI depending on will it be displayed on 5.5" smartphone, 25" monitor or printed on an A4 paper.


Update tutorial.step_03.html

Instead of specifying all the properties when inserting a party into the Parties collection it might be easier (to read) to insert the parties[i] object into the collection.

yes definitely!
thank you so much!

No problem, thank you so much for the awesome project!
Sent from my BlackBerry 10 smartphone.
From: Uri Goldshtein
Sent: Sunday 19 April 2015 02:04
To: Urigo/angular-meteor
Reply To: Urigo/angular-meteor
Cc: Michael Weitzel
Subject: Re: [angular-meteor] Update tutorial.step_03.html (#305)
yes definitely!
thank you so much!
—
Reply to this email directly or view it on GitHubhttps://github.com/Urigo/angular-meteor/pull/305#issuecomment-94215217.


The result of a ^ 0 mod -1 is 0 not 1

Thanks to Guido Vranken and OSSFuzz for finding this issue.
The first commit is for master, 1.1.0 and 1.0.2. I've also added a test but that won't work on the other branches so that commit is for master only.

Pushed. Thanks.


Rasterband::write with Buffer<T> forces unnecessary data copy.

When working with large rasters, minimizing the number of data copies is important. The Rasterband::write method as it currently stands, forces some users into an additional buffer copy.
To illustrate, consider the following use case (pseudo-ish code):
let mut data: Vec<u8> = vec![0u8; <some big number>];
for i in 0..100 {
   modify_data(&mut data);
   write_data_with_gdal(&data);
}

Seems reasonable, no? And let's assume for external reasons we only have control over the implementation of write_data_with_gdal. Problem arises when we try to implement it:
fn write_data_with_gdal(data: &Vec<u8>) {
  let driver = DriverManager::get_driver_by_name("GTiff").unwrap();
  let ds = driver.create(...).unwrap();
  let mut rb = ds.rasterband(1).unwrap();
  rb.write(/*... what to do here? ...*/).unwrap();
}

The Rasterband::write method looks like this:
pub fn write<T: GdalType + Copy>(
        &mut self,
        window: (isize, isize),
        window_size: (usize, usize),
        buffer: &Buffer<T>,
    ) -> Result<()> {

It wants the data as as a reference to a Buffer<T>, which looks like this:
pub struct Buffer<T: GdalType> {
    pub size: (usize, usize),
    pub data: Vec<T>,
}

The contained Vec is owned by Buffer::data. We only have a &Vec<u8>. So to call write, even though write only needs a Buffer<T> reference, the only way to create the referent is to clone our &Vec<u8> parameter:
fn write_data_with_gdal(data: &Vec<u8>) {
  let driver = DriverManager::get_driver_by_name("GTiff").unwrap();
  let ds = driver.create(...).unwrap();
  let mut rb = ds.rasterband(1).unwrap();
  let dims = (data.len(), 1);
  let buf = Buffer { size: dims, data: data.clone() }; // <--- no way to avoid `clone()`
  rb.write((0, 0), dims, &buf).unwrap();
  // `buf` is dropped...
}

I'd argue we need an alternative to this write method for users not wishing to incur the additional memory and time overhead. One might argue that the user should only work with Buffer<T> instances, but given that working interoperability with other Vec<T>-based APIs is very common in the raster space, we should support writing a Vec<T> without the clone() cost.

@lnicola What if you have a &[u8]... Is there are workaround for that?

No, we'd need two buffer variants or a view over owned or borrowed data.

Would you be opposed to a RasterBand::write_slice method?

We'd need another one for the block function(s) though.


Add Data attribute to WrongStatusCodeError

It is very often that APIs return important and interesting data in the body of a failed HTTP response such as a failure reason message and/or domain specific error data.
This change allows access to this data by adding a Data? attribute to WrongStatusCodeError.  Consumers of this Package can parse this data however they like or not at all.

Thanks @jagreenwood. There was actually already another PR for this feature that I hadn't merged yet... so closing this.


Fingerprint improvements OPS-543

This should merge the fingerprint improvements into release

@stevecrozz and @tony-spataro-rs , this is my PR to merge my fingerprint changes from release_candidate to release. It is showing several commits from you that weren't in release.
Is it not able to automatically merge.
Any suggestions on how to proceed ? I feel like the safest thing to do would be to manually merge only my change, but should we do with all your commits that are in release_candidate but not release?

I'd probably just force push whatever you want to release. We can see if tony cares about losing any of this stuff, but I do not.

I just merged RC into release (and vice-versa) on my local box and it merges cleanly (all conflicts were automatically resolved). GitHub does not resolve conflicts when you perform a Web-based merge -- they don't want to take responsibility. But the merge is clean if you do it from the CLI.
I propose that @crunis just merges release_candidate into release.
I also propose that we switch the branch-naming scheme for errbit so it aligns with the new names we use elsewhere: production, staging. But I'll leave that up to @enrikitus and @crunis .

You were right, in the CLI it merges without complains. Done !


Newsletter-215: Translate to Hindi

Updated from 8b0a023ef9a4ed34f207ba98f44ff523e19ca4d3 to 7af392b4d5b17e634725b2d0402144040674e4ad ([pr850.01][https://github.com/shaavan/bitcoinops.github.io/commits/pr850.01] -> [pr850.02][https://github.com/shaavan/bitcoinops.github.io/commits/pr850.02], [diff][https://github.com/shaavan/bitcoinops.github.io/compare/pr850.01..pr850.02])
Changes:

Fixed two mistakes with [link tag][link] not correctly written. Thank you @bitschmidty for catching it!


Using gpt-engineer with Azure OpenAI

Hi, I am trying to test gpt-engineer by using Azure OpenAI but I am getting authentication error. I have added all the additional details that are required for the Azure OpenAI like api_base url,  model, etc. in the python file ai.py in the gpt_engineer folder. Am I missing out something can you please help me out with this issue.
Have set the openAI API key as the windows environmnet variable. Rest all the steps have followed according to the readme file.

Hey @RenukaMane,
Sorry to hear you're having a tough time. Can you double-check your Azure OpenAI API key and make sure your app is picking it up correctly from the environment variable? Also, just to be sure, please confirm the endpoint URL is right. Lastly, keep in mind gpt-engineer might not work seamlessly with Azure OpenAI out of the box. It could be helpful to share more info about the error you're seeing, but remember not to post sensitive stuff like your actual API key

Perhaps you need to set openai.api_type = "azure" either via env var or in the code?

I got it working by editing a few lines in ai.py:

import os

....

# set up azure openai
        if not os.getenv("AZURE_OPENAI_ENDPOINT"):
            raise ValueError("To use Azure OpenAI models please set a "
                            "AZURE_OPENAI_ENDPOINT enviroment variable.")
        if not os.getenv("AZURE_OPENAI_KEY"):
            raise ValueError("To use Azure OpenAI models please set a "
                            "AZURE_OPENAI_KEY enviroment variable.")

        openai.api_type = "azure"
        openai.api_base = os.getenv("AZURE_OPENAI_ENDPOINT")
        openai.api_version = os.getenv("AZURE_OPENAI_API_VERSION")
        openai.api_key = os.getenv("AZURE_OPENAI_KEY")

Then before running GPT-Engineer, I'm setting env variables with a powershell script:
$env:OPENAI_API_KEY="xxx"
$env:AZURE_OPENAI_KEY="xxx"
$env:AZURE_OPENAI_API_VERSION="2023-03-15-preview"
$env:AZURE_OPENAI_ENDPOINT="https://xxx.openai.azure.com/"

For some reason, this still doesn't work for me.
I've modified ai.py as mentioned earlier in this thread, but I get the error:
Traceback (most recent call last):
File "C:\Users\AppData\Local\anaconda3\lib\site-packages\openai\api_requestor.py", line 403, in handle_error_response
error_data = resp["error"]
KeyError: 'error'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "\gpt-engineer\gpt_engineer\main.py", line 69, in
app()
gpt-engineer\gpt_engineer\main.py", line 59, in main
messages = step(ai, dbs)
File "\gpt-engineer\gpt_engineer\steps.py", line 61, in clarify
messages = ai.next(messages, user_input, step_name=curr_fn())
File "\gpt-engineer\gpt_engineer\ai.py", line 153, in next
response = openai.ChatCompletion.create(
File "Local\anaconda3\lib\site-packages\openai\api_resources\chat_completion.py", line 25, in create
return super().create(*args, **kwargs)
File "AppData\Local\anaconda3\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
File "AppData\Local\anaconda3\lib\site-packages\openai\api_requestor.py", line 298, in request
resp, got_stream = self._interpret_response(result, stream)
File "\AppData\Local\anaconda3\lib\site-packages\openai\api_requestor.py", line 700, in _interpret_response
self._interpret_response_line(
File "\AppData\Local\anaconda3\lib\site-packages\openai\api_requestor.py", line 763, in _interpret_response_line
raise self.handle_error_response(
File "\AppData\Local\anaconda3\lib\site-packages\openai\api_requestor.py", line 405, in handle_error_response
raise error.APIError(
openai.error.APIError: Invalid response object from API: '{ "statusCode": 404, "message": "Resource not found" }' (HTTP response code was 404)
My API key requires me to use headers, so my next function looks like this:
`def next(self, messages: List[Dict[str, str]], prompt=None, *, step_name=None):
if prompt:
messages += [{"role": "user", "content": prompt}]
    logger.debug(f"Creating a new chat completion: {messages}")
    response = openai.ChatCompletion.create(
        messages=messages,
        stream=True,
        #model=self.model,
        deployment_id = self.model,
      #  model = "gpt-3.5-turbo",
        #deployment_id = "gpt-35-turbo-v0301-base",
        #model = "gpt-3.5-turbo",
        temperature=self.temperature,
      #  deployment_id=self.model,
        #deployment_id= "text-davinci-003-v1-base",
        headers = {"Ocp-Apim-Subscription-Key": api_key}
    )

    chat = []
    for chunk in response:
        delta = chunk["choices"][0]["delta"]  # type: ignore
        msg = delta.get("content", "")
        print(msg, end="")
        chat.append(msg)
    print()
    messages += [{"role": "assistant", "content": "".join(chat)}]
    logger.debug(f"Chat completion finished: {messages}")

    self.update_token_usage_log(
        messages=messages, answer="".join(chat), step_name=step_name
    )

    return messages`

    Not sure why this occurs.

Solved 🚀

@AntonOsika @izikeros @SebLz Followed all your suggested changes for using azure gpt-4 deployment but getting error "IndexError: list index out of range" at ai.py 50


Publish as an official Grafana datasource

https://github.com/grafana/grafana-plugin-repository/projects/2#card-54621931


Update fails if updating a primary key

DBFlow Version 3.1.1:
Issue Kind (Bug):
Description:
I have a table with two primary keys (autoincrement disabled on both).
Here it is
@Table(database = JuiceDatabase.class)
public class Test extends BaseModel {
    @Column
    @PrimaryKey
    private long externalObjectA_ID;
    @Column
    @PrimaryKey
    private long externalObjectB_ID;

    @Column
    private String aField;
}

When I do:
test.setAField("Value");
test.update();
everything is OK.
But when I do:
test.setExternalObjectB_ID(12345);
test.update();
update fails.
I dug in the library's code a bit and found that when a query is composed it looks like
UPDATE Test SET externalObjectA_ID = ?, externalObjectB_ID = ?, aField = ? WHERE externalObjectA_ID = %an old value of this field% AND externalObjectB_ID = %a !!!NEW!!! value of this field% AND aField = "Value"
Of course I have no such record in my DB yet because I'm updating it! Of course this query will fail to execute and this happens only if I update one of my primary keys.

You shouldn't ever change the primary key of the objects you create. Rather you should delete() existing first, then insert() this new object. If a primary key needs to change, I recommend you make it Unique instead.


Add "come with me" animation.

Ahad:

https://twitter.com/metashimaNFT/status/1536294305941360642?s=20&t=7HLimgFiqZvbmgqCZyk70A
can we fix the small animation part we have when u go and ask the npc to follow
it is the "pickup" animation
maybe we want something like "hand waving - come with me" kind

/cc: @ahadshams

Done by @plankatron


Poetry and python38 not found

For the first time, I am trying to use the Serverless Framework using the google-python template and serverless-python-requirements. I am a big fan of poetry and would like to use it for this project.
My serverless.yml is below. Based on the errors I am getting, I can tell that it is not using poetry when running sls deploy.

Error: python38 not found! Try the pythonBin option.
at pipAcceptsSystem (/Users/username/dev/cloudfunctions/node_modules/serverless-python-requirements/lib/pip.js:104:13)

Ideally, I shouldn't have to set pythonBin if poetry is detected right? Does anyone have a suggestion, how I should set up my projects, so that python and pip are picked up from the virtualenv that poetry is managing?
serverless.yml
service: cloudfunctions

provider:
  name: google
  stage: dev
  runtime: python38
  project: notShown

frameworkVersion: '2'
plugins:
  - serverless-google-cloudfunctions
  - serverless-python-requirements

package:
  exclude:
    - node_modules/**
    - .gitignore
    - .git/**

functions:
  first:
    handler: http
    events:
      - http: path

pyproject.toml
[tool.poetry]
name = "cloudfunctions"
version = "0.1.0"
description = ""
authors = ["..."]

[tool.poetry.dependencies]
python = "^3.8"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

Hello @reikje 👋 I'm still getting up to speed, but I think the issue might be with how python binary is resolved (I don't think it's picked up from poetry). Google Functions have a bit different name for the runtime, which might cause troubles - could you check if specifying Python binary works correctly?

Hello @pgrzesik, no worries - this is also my first GCP and Python project that I want to use with the Serverless Framework. So I fixed and updated my system python on MacOS (I usually don't care since I use poetry). Then I went ahead and added this to the serverless.yml:
custom:
  pythonRequirements:
    pythonBin: /usr/local/bin/python

With this, I could deploy fine. Help me understand what the plugin is doing. So during sls deploy:

when poetry is detected, you are generating the requirements.txt file using poetry
then system python is used to download and package the dependencies and function code

Is this correct?

"$(poetry show -v | cut -d ' '  -f 3)/bin/pip" install -r requirements.txt -t ./yourPackageFolder something along those lines ...

Hey @reikje 👋

when poetry is detected, you are generating the requirements.txt file using poetry

Correct

then system python is used to download and package the dependencies and function code

Python version resolved based on runtime for your function from serverless.yml is used if you didn't provide pythonBin separately. It does not inspect poetry settings at all when it comes to resolution of python binary, but I see how that could be really interesting feature to have in.

@pgrzesik thanks for clearing this up. It makes sense to resolve based on the runtime. However, on my system (macOS) the binaries are called python, python3, and python3.9 while the runtime was called python38 and python39. So there is a slight mismatch, which should be an easy fix.
As for poetry, I always use a version in my pyproject.toml that matches the target runtime. Let's close the ticket for now.

@reikje The major issue here is that while runtime for aws nicely maps to python binaries, the same is not true to google provider.
If anyone would be interested in submitting a PR with handling that in a better way, it would be more than welcome 💯


Distributed training low-gpu utilization

Cerebro experiences low GPU utilization for reading remote data.
Lack of pre-fetching may be the main reason.
Keras pre-fetching thread pools should be user configurable

Fixed with pull request #14


Uncaught RangeError: Invalid string length

[Enter steps to reproduce below:]

I opened a very large (591.0 MB (591,032,444 bytes)) JSON file.

Atom Version: 1.0.0
System: Ubuntu 15.04
Thrown From: Atom Core
Stack Trace
Uncaught RangeError: Invalid string length
At /usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/file.js:301

RangeError: Invalid string length
  at Array.join (native)
  at ReadStream.<anonymous> (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/file.js:301:43)
  at emitNone (events.js:72:20)
  at ReadStream.emit (events.js:163:7)
  at _stream_readable.js:891:16
  at process._tickCallback (node.js:357:13)

Commands
     -8:52 editor:select-line (atom-text-editor.editor.is-focused)
     -8:49.7.0 grammar-selector:show (atom-text-editor.editor.is-focused)
 22x -8:04.1.0 pane:show-next-item (atom-text-editor.editor.is-focused)
  2x -6:26 pane:show-previous-item (atom-text-editor.editor.is-focused)
     -6:20.3.0 release-notes:show (atom-text-editor.editor.is-focused)
 41x -0:16.5.0 core:close (atom-text-editor.editor.is-focused)

Config
{
  "core": {},
  "editor": {
    "invisibles": {},
    "fontSize": 10,
    "tabLength": 4,
    "showInvisibles": true
  }
}

Installed Packages
# User
No installed packages

# Dev
No dev packages

Was this a one-line file by any chance? Is there any way you could post this (or a similar file that triggers the same error) as a Gist?
/cc @nathansobo @maxbrunsfeld

It is not all one line.
https://www.dropbox.com/s/2jcdqso36rb014a/large.json.gz?dl=0
Not sure how to get a file like this anywhere except dropbox.  If you need it somewhere else, let me know.

Had the exact same error opening a large (570mb) XML file.

For me this happens with any file above 268,435,440 characters, which is suspiciously close to 228 = 268,435,456. Anyway, here's how I reproduce on OS X 10.10.3:
% python -c "with open('broken.txt', mode='w') as f: f.write('1'*268435441)"
% open Atom.app --args broken.txt

Click proceed, and observe error.

@robmcl4 thanks for providing an easy way how to reproduce this issue :+1:
I am getting same error also under Windows 8.1 .

I feel like this is related to joyent/node/issues/14170. If so, what this error is really saying is out of memory.

It seems that the issue is caused by V8 as it is not able to allocate string with given size.
More information in this V8 issue comment:

This puts a limit on the maximally possible allocation request in 32-bit versions of 2^27-1. The maximal flat string length is ~2^28 (512MB space), and the maximal string length is 2^29-1, so neither of these limits catch the problem (we would throw an Out-Of-Memory exception instead if they did).

👍 That seems to be the problem. Additionally, this seems to be a duplicate of #7210.

Yeah, closing in favor of https://github.com/atom/atom/issues/7417. Thanks for the report and the details, everyone.

When trying to open large JSON files (Tested on size 262 Megabytes), ATOM throws this error


Testing sagas with delay

Trying to test saga with delay, but it never goes to done(). Example saga code took from your usage example and can be reproduced there:
function* listenAndFetch() {
    yield call(delay, 200);
    yield take(fetchRequestActionType);
    const result = yield call(fetchApi);
    yield put({ type : fetchSuccessActionType, payload : result });
}

@3LOK Wondering if you have a solution for the above question. I am also running into this and I suspect you have also. Could you shed any light on how to advance a saga past a delay with your library?

Hi,
Not so sure I understand what's the problem, it works for me.
Here's an example of a saga with delay, and its test:
DeleteSaga.js

function* onDelete(clients, action) {

    const {itemIdx} = action.payload;

    yield put(SessionActions.actions.screenAreYouSure());

    const answer = yield take([
        DeleteActions.types.ARE_YOU_SURE_NO,
        DeleteActions.types.ARE_YOU_SURE_YES
    ]);

    if (answer.type === DeleteActions.types.ARE_YOU_SURE_NO) {
        yield call(delay, 500)
        yield put(SessionActions.actions.screenList());
        return;
    }
    ...
    ...
}

DeleteSaga.test.js (note the async/await).
    it.only('should return to main screen when users selects "no" in the yes/no screen', async () => {
        // User pressed delete
        sagaTester.dispatch(DeleteActions.actions.request({itemIdx:1}));

        // screen should be 'yes/no'
        expect(sagaTester.getLastActionCalled()).to.deep.equal([SessionActions.actions.screenAreYouSure()]);

        // user presses 'no'
        sagaTester.dispatch(DeleteActions.actions.areYouSureNo());

        await sagaTester.waitFor(SessionActions.types.SCREEN_LIST);

        // screen should be main screen ('list')
        expect(sagaTester.getLastActionCalled()).to.deep.equal([SessionActions.actions.screenList()]);
    });

However, I'll be honest, I think you should muck the delay function in case of a test to make your tests run faster.

@3LOK, if you try your own example from readme, with a delay (as I described in my first comment) you will understand what I mean.
Yes, it should be mocked for tests, I agree, but I assume it should work without being mocked too.

So I've tested it, just like you said, and it worked perfectly. Added it to example.js.
Having said that, I decided to update the README and the example.js with async/await (I like this syntax better than standard promises). But delay still worked even with the previous version (with the promises).
If you want to check it out: copy example.js to the test directory, change its name to example.spec.js, and run 'npm test'.
Also added the new getLastActionCalled.

I've seen your changes to example.js, but it's not really what I'm trying to do.
I use delay for debouncing, took the following code from saga documentation for reference:
function* handleInput({ input }) {
  // debounce by 500ms
  yield call(delay, 500)
  ...
}

function* watchInput() {
  // will cancel current running handleInput task
  yield takeLatest('INPUT_CHANGED', handleInput);
}

In this case, when delay placed to the top of saga it doesn't work.
Thanks

@vovagusarov I've added an example called examples/example.debounce.js. It works for me.
(to test it, copy to the test directory, rename to example.debounce.spec.js, and run npm test

@3LOK Did you push example.debounce.js ? Can't see it.

Sorry, pushed now: https://github.com/wix/redux-saga-tester/blob/master/examples/example.debounce.js

Sorry, found an issue on my end.
Think we can close it, thanks for your help!

How would you go about doing this now that the delay function is provided by redux-saga out of the box?
Instead of this:
yield call(delay, 500)
We now have this:
yield delay(500);

Should still work, as expected. delay(500) just returns a promise, yield waits for.
I would still mock the delay function for faster run.

@3LOK How would one go about mocking the delay function? I have some code to retry requests with delays, and would like to do a full saga test but have the delay be 0ms always.


Column with transformer option

https://orkhan.gitbook.io/typeorm/docs/entities#column-options

transformer (from, to) can transform text to anything, so rule should ignore type if decorator @Column has transformer options. Or better to forcing to type what transformer.from returns.

Thank you for your issue. I added a new version (v0.2.5), which is supposed to fix this. Can you test it with your code?

Thanks. It works.


Own data using .db file shows nothing

Hello,
I added a config as specified for my own .db file from safran.
I named the db file as instructed: {ID of dataset}_{ID of explanation}.db and put it in server/db.
I can see the dataset added on the :5000 page.
The blazegraph server works and it seems that the connection from LinkExplorer is successful (at least no error message. No message at all actually)
But after clicking Next and Done, no entities are displayed. Just an empty browsing page with "1" and arrows, but nothing more, and nothing in the Quicksearch.
Any way to debug  that and understand what could be the issue?
Thanks in advance!

Hello,
That is strange, you created the db file yourself right?
I've now hosted the db files we generated here. If you generated it yourself, maybe this is an issue with SAFRAN. Could you make sure that your db-File contains edges? Either by comparing file sizes or with an sqlite explorer like https://sqlitebrowser.org/ ?

Hello,
Thanks for checking!
Yes, I did create the .db myself using the safran version with explanation.
Thanks for putting the db files online. I downloaded wn18rr_nrno.db, renamed it to adsicore_max.db (in index.json, dataset "ID" is "adsicore" and Explanation "ID" is "max".
I relaunched the docker.
I still get a void web page :(
Should it have worked like this? I didn't change the RDF enpoint, should it match exactly what is in the explanation db? Should the method be correct in the metadata?
I opened my .db in an sqlite explorer. In which table should I look for edges?
I do see data in all 6 tables at least.

The endpoint "http://explore.ai-strategies.org:9999/blazegraph/namespace/wn18rr/sparql" does not exist on your machine right? So this is why you get a void web page.
So you have to either:

set "Endpoint": "" to an empty string: Here entities and rels appear as they appear in the KG (I fixed a small bug, so please pull for that :))
or
set Endpoint to an endpoint that exists and gives valid labels for your entities

So this is more work than expected, unfortunately I did not test the "No rdf graph" too extensively. A qick workaround would be if you don't want to use the RDF graph (which provides edges, labels, descriptions, ...) is to set "Endpoint": "http://{yourhost}:9999/blazegraph/namespace/kb/sparql", which points by default to an empty RDF graph. ({replace "yourhost" with "blazegraph" if you are using docker)

Thanks for checking!
I pulled and tried

the empty string in index.json
the empty kb also in index.json as http://blazegraph:9999/blazegraph/namespace/kb/sparql
and then upload part of the triplets in kb from the blazegraph web interface

Nothing happens. I still see 0 entities.
I am wondering if the system sees my .db at all. Remember it also didn't work with the .db that you produced yourself, and an empty (but running) blazegraph. All in Docker.

By the way, I wanted to check back how your online version behaves, but the links seem broken, eg
http://explore.ai-strategies.org/hetio/nrno/entity?term=Compound::DB01403

Oh thanks, should work again!

Could you please try again (repull) and before that delete the IndexedDb of LinkExplorer in your browser:
Chrome: F12 -> Application -> IndexedDB -> Linkexplorer - http://localhost:5000 -> Delete database
Firefox: F12 -> Web Storage -> Indexed DB -> http://http://localhost:5000 -> Right click on Linkexplorer (default) -> Delete Linkexplorer (default)

Great, sorry for the hassle!
Yes please, could you also provide the config that you used?

Done for SAFRAN!
But the link
http://explore.ai-strategies.org/
is still broken at least in my browser

Could you try a different browser/device? I tried it from three different browsers/devices and everyone worked.

Ah it's working again, good!

This issue can be closed, thanks!


Sweats message

Description
Ad-Hoc and (planned) Event-Based Messages and listing of player wanting to play
Current Features:

Changes Color at Fullstack player count (5)
Lists players that have "signed up"
activate through slash command

Planned Features

Event Based Messages and/or Timed Messages
pinging the appropiate roles (@counter-sweats) based on env file

Screenshots / Videos
When "Fullstack":

When Not Full:

Implemented your suggested changes, take a look when ur free :3


possible to define variables for use in .lagoon.yml pre/post rollout tasks?

Having a variable available in .lagoon.yml that could be used in pre-rollout / post-rollout tasks would be a killer feature - it would avoid having to define variables permanently for environments - and the variable value would be committed to code alongside the commands
e.g.
tasks:
  variables:
    BACKUP_DIR: "/app/web/sites/default/files/private/backups"
  pre-rollout:
    - run:
        name: Snapshot the database and store
        command: |
          if [[ "$LAGOON_ENVIRONMENT_TYPE" = "production" ]]; then
			drush sql:dump --root=/app --gzip --result-file="$BACKUP_DIR"/pre-deploy-dump.sql;
		  fi
        service: cli
        shell: bash
  post-rollout:
    - run:
        name: Preserve the backup from this successful post-rollout
        command: |
          BACKUP="$BACKUP_DIR"/pre-deploy-dump.sql.gz
          if -f "$BACKUP"; then mv "$BACKUP" "$BACKUP_DIR"/last-good.tar.gz; fi
        service: cli

Gitlab has a nice implementation:
https://docs.gitlab.com/ee/ci/variables/#via-gitlab-ciyml

You can put variables in .lagoon.env and they are available pre-rollout (after the first successful deploy) and post-rollout. The compensates for gitlab ci files which don't have a .env mechanism.

You can now add build-time variables to deployments (and bulk deployments)


filer: allowing directory/regular files with same name in one directory

Hello,
Currently filer allows to create same name of directory/regular files in one directory.
I'm not sure this is intended design but in fuse, it doesn't work well as below.

However, it looks fine when accessed via web.

I think weedfs need to disallow same name different type files in one directory, especially if have a plan to support fuse in unix/linux system.
Thanks.

understood. SeaweedFS filer stores directory and file separately. Ensuring directory~file uniqueness needs additional checking.
but I prefer not to do this additional checking, since FUSE is not really the best way to use SeaweedFS.


Make watch flag -w usable also for kubectl get all

Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.):
no
What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.):

watch
-w

Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST
I would like to use the watch flag -w not only for single resource types, but also for the summary of all resources. I would like to see that it is possible to call kubectl get all -w
Kubernetes version (use kubectl version):
Client 1.9.1
Server 1.9.1

@apelisse Is this what we need to do?

I don't think it's unreasonable. But I'm somehow expecting roadblocks.

/reopen
This is definitely a feature that would be nice. Especially in combination with helm deployments, being able to easily monitor an entire namespace would greatly improve efficiency.
I imagine it would be a bit iffy to sort out, however, seeing as -w adds changes to the bottom line, but perhaps something like
NAME                                               READY   STATUS                       RESTARTS   AGE
pod/foo                                            0/1     ContainerCreating         0             5s
...

NAME                                  TYPE          CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
service/bar                           ClusterIP            ...
...

RECENT CHANGES
pod/foo                                            1/1     Running                   0             25s
...

would be good enough.

Fair enough.

/remove-lifecycle rotten
/reopen

/kind feature
/sig cli
/area kubectl

/reopen


fromLazyPromise is undefined in server-side node

Here is my code:
import {createStore,Effects} from 'redux-loop';
import {Main, INITIAL_STATE} from './lib/Main';
import Connections from './lib/Connections';

export function reducer(state = INITIAL_STATE, action) {
	switch (action.type) {
		case 'MAIN_GET_CFG':
			return Main.getCfg(state);
		case 'MAIN_READY':
			return Main.ready(state,action.value);
		case 'MAIN_SUBSCRIBE':
			return Main.subscribe(state);
		case 'CONN_INIT':
			return Connections.init(state);
		case 'CONN_SUBSCRIBE':
			return Connections.subscribe(state);
		case 'CONN_GET_PRICE':
			return Connections.getPrice(state);
		case 'CONN_SET_PRICE':
			return Connections.setPrice(state,action.id,action.value);
		case 'CONN_GET_DEPTH':
			return Connections.getDepth(state);
		case 'CONN_SET_DEPTH':
			return Connections.setDepth(state,action.id,action.value);
		default:
			return state
	}
}

export const init = {
	state: INITIAL_STATE,
	effects: [ Effects.fromLazyPromise(() => Promise.resolve({ type: 'MAIN_GET_CFG' })) ]
};

And here is the error I'm getting:
TypeError: _reduxLoop.Effects.fromLazyPromise is not a function
at Object. (/var/www/project/src/reducer.js:32:21)
at Module._compile (module.js:571:32)
at loader (/var/www/project/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/var/www/project/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object. (/var/www/project/src/store.js:4:1)
Simply included it in the npm package.json and did npm install. I'm using node 7.4.0 Any ideas?

Are you using 2.2.2? What's your build process?

hi @mbassan and @MichalZalecki
Sorry it's been so long since you've heard back. I'm going to be taking over maintenance of redux-loop.
fromLazyPromise is from a version of redux-loop that was never released. The current documentation is not in sync with the latest npm version. I'd like to get an update out in the next few days that will get them back in sync and up to date.
There have been a few proposed major API changes in the last year. I've been using a fork of one those proposed version 3's for a while in projects that I've worked on (https://github.com/bdwain/redux-loop). I'd like to make that the starting point for any future changes. Luke and I discussed these changes last year and I think it'll be an improvement over version 2 without being too drastic of a change for people who are currently using it. It doesn't have typescript typings yet, but I would like to add that in the next few days as well.
The main idea behind the changes in my branch can be seen here in this issue . It's passing action creators to effects/cmds instead of putting them in your side effect functions. Though since that discussion, i've consolidated some of the Cmd types.
I'll keep this issue open for now and close it when I've got everything updated. Sorry again for the delay!

Version 3.0 has been released. Sorry for all of the confusion. Details about the new features (since version 2) can be seen here.


Ancillary generation: Distance to nearest coast

As a developer I want access to ancillary datasets for the "Distance to nearest coast" field for spot data and neighbourhood processing routines so that developers don't have to regenerate these fields each time they are required.
Related issues: #43
Acceptance criteria:

Develop a flexible script(s) that can be called from the command line, in order to generate the required ancillary files
Develop plugins to generate the required ancillary with unit tests
Generate an ancillary file for "Distance to nearest coast"

This issue has been superseded by the Epic: Ancillary Generation for Improver (#97) and will be included in a User Story under this Epic.


fix: remove invalid character for XML feed; fix #537

Summary

What kind of change does this PR introduce? (check at least one)

[x] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Docs
[ ] Build-related changes
[ ] Other, please describe:

If changing the UI/CSS related code, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)

[ ] Yes
[x] No

If yes, please describe the impact and migration path for existing applications:
close #537

I opened an issue to see if it's possible to be fixed by the upstream https://github.com/jpmonette/feed/issues/107


Data inconsistency introduced in 3.0.7 due to performance fix

Hi there,
The change introduced in commit b2acf69b51cec80393f13e8f280c83cc181e0bb9  may lead to a IndexOutOfBoundsException when the grid is for example used as an assignment component where items get added/removed between different grids.
This happens above all when the cell is double-clicked/clicked multiple times or is part of a TestBench test.
The IndexOutOfBoundsException happens at com.vaadin.componentfactory.selectiongrid.SelectionGrid#obtainNewSelectedItems:
newSelectedItems.add(dataCommunicator.getItem(i));

Do you have example code that reproduces this problem. It would significantly help to debug and fix.

Sure, here's an example based on the SimpleView from the demo:
`@Route(value = "", layout = MainLayout.class)
public class SimpleView extends HorizontalLayout {
private List<Person> dataProviderLeft;
private Grid<Person> gridLeft;
private List<Person> dataProviderRight;
private Grid<Person> gridRight;

private final Runnable assign = () -> {
    final Set<Person> selectedItems = gridLeft.getSelectedItems();

    dataProviderRight.addAll(selectedItems);
    dataProviderLeft.removeAll(selectedItems);

    gridRight.asMultiSelect().setValue(selectedItems);
    gridLeft.deselectAll();

    gridLeft.getDataProvider().refreshAll();
    gridRight.getDataProvider().refreshAll();
};

public SimpleView() {
    final Button assignButton = new Button(">>");
    assignButton.addClickListener(buttonClickEvent -> assign.run());

    dataProviderLeft = getItems();
    gridLeft = new SelectionGrid<>();
    gridLeft.setItems(dataProviderLeft);
    gridLeft.addColumn(Person::getFirstName).setHeader("First Name");
    gridLeft.addColumn(Person::getAge).setHeader("Age");
    gridLeft.setSelectionMode(Grid.SelectionMode.MULTI);

    dataProviderRight = new ArrayList<>();
    gridRight = new SelectionGrid<>();
    gridRight.setItems(dataProviderRight);
    gridRight.addColumn(Person::getFirstName).setHeader("First Name");
    gridRight.addColumn(Person::getAge).setHeader("Age");
    gridRight.setSelectionMode(Grid.SelectionMode.MULTI);

    gridLeft.addItemClickListener(event -> {
        if (event.getClickCount() == 2) {
            assign.run();
        }
    });

    add(gridLeft, gridRight, assignButton);
}

private List<Person> getItems() {
    PersonService personService = new PersonService();
    return personService.fetch(1, 2); // fetch only a small set of persons
}

}`
Note: there two possibilities to make an assignment (from the left grid to the right grid) – whereas the option via ">>"-button works, but the "doubleclick-assignement" not.


.addPackage missing in Android

Hi,
in install instructions for Android, on step 3, it is said to add this line
 .addPackage(new AirPackage()) // <---- and This!
to the onCreate method of MainActivity class along with the corresponding import statement.
But my MainActivity.java class looks like this one below and I can't find any usage of that "ReactInstanceManager.builder()" method in my project.
I'm using react 0.21. Can this be related to this? Any ideas how can I add that package?
Currently my app is building but all I can see is white background (yeah, I tried to add dimensions to the MapView styles).
public class MainActivity extends ReactActivity {

    @Override
    protected String getMainComponentName() {
        return "sample";
    }

    @Override
    protected boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage()
      );
    }
}

Change
return Arrays.<ReactPackage>asList(
    new MainReactPackage()
);

to
return Arrays.asList(
new MainReactPackage(),
new AirPackage()
);


Fix Fireworks Callbacks

I may be missing something but it seems like we inappropriately overrode the 'stream()' method, losing callbacks in the process. I don't think (?) it gave us anything in this case to customize it here?
See new trace:
https://smith.langchain.com/public/fbb82825-3a16-446b-8207-35622358db3b/r
and confirmed it streams.
Also fixes the stopwords issues from #12000

sounds right to me


Fix example in readme

Small syntax issues. Now it compiles :)

Thanks don't know how this could stay undetected for so long =)


kconfig: Use UTF-8 to decode sources instead of the system locale

We want to read the sources in the same way independent of what the
system locale is. To this end we now explicitly use UTF-8 to decode
Kconfig sources.
This resolves an issue that can be reproduced like this:
$ export LANG=C
$ cmake -DBOARD=nrf52_pca10040 -H$ZEPHYR_BASE/samples/hello_world -Boe
When the LANG (system locale) is 'C' parsing the Kconfig source
'Kconfig.defconfig.stm32f446xe' will trigger a python exception unless
this patch is applied.
Alternatively, one could explicitly decode as ascii and have the parsing
fail for all platforms when UTF-8 is entered into Kconfig sources.
Signed-off-by: Sebastian Bøe<EMAIL_ADDRESS>

@SebastianBoe looks good but we should instead submit this upstream and rebase our fork first? https://github.com/zephyrproject-rtos/Kconfiglib

Will fix this by pulling from upstream kconfiglib later. https://github.com/ulfalizer/Kconfiglib/pull/41


Time interval breaking change ?

Hi, time interval between two dates doesn't work in my app since my latest pod update.
let currentDate = Date()
let test = currentDate + 3.month
print((test - currentDate).in(.month))
print((currentDate - test).in(.month))

Both results returns nil
Seems to be related to: https://github.com/malcommac/SwiftDate/commit/97a36756b7c7f66de56cef2e0ba6376e1cfcb13c
Can we consider it's wanted to work only with DateInRegion ?
EDIT:
Doesn't seems to work with DateInRegion either:
30 nov. 2017 à 15:45:31 UTC+1
28 févr. 2018 à 15:45:31 UTC+1
nil
nil

The problem here is you can't evaluate calendar specific components (like months) without using a reference date where start the interval. This because months does not always contains the same number of days.
Old version uses current date plus the interval as reference settings.
I've restored the old behaviour but I've added an alert in debug using debugPrint().

After some research I saw it was working with other components like days, hours. Seems legit ! Well done, thanks.


Fix typo in script/add-grammar

Just noticed this typo and thought best to fix it now whilst I remember as I will forget otherwise.

I must've been wired at God knows what hour... 😥


config Enable single replica load by default

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Re-align path exclude patterns with the changed behavior

The migration from Java's path matcher to AntPathMatcher was a breaking change (unintended) for patterns which
match groups of subpatterns. Migrate existing patterns to the new notation and add a test case illustrating the current behavior.
Fixes: #5901.

Are you sure /{:funTest|test}/ is a supported syntax of AntPathMatcher ?
I don't see it mentionned in the doc: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

Are you sure /{:funTest|test}/ is a supported syntax of AntPathMatcher ?
I don't see it mentionned in the doc: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

The test shows it works. In the docs it says "{spring:[a-z]+} matches the regexp [a-z]+ as a path variable named "spring".
In that case spring is the variable name. I just tried if one can omit the variable name, and it seems to work.

@fviernau  https://github.com/oss-review-toolkit/ort/blob/main/docs/config-file-ort-yml.md still points to glob expression tutorial "For how to write a glob pattern, please see this tutorial."
Could you fill a separate PR to update this to a AntPathMatcher one?


Add SubSurface Scattering Post Process

In the way it was described at Siggraph in 2018 integrate SubSurface Scattering PostProcess:
http://advances.realtimerendering.com/s2018/Efficient screen space subsurface scattering Siggraph 2018.pdf

on it :)

Closing issue has it was done by with this PR.  Thanks @CraigFeldspar and @sebavan

I've been trying to use this in the Babylon Playground, but it keeps erroring with BABYLON.SubSurfaceScatteringPostProcess is not a constructor.
The code editor autocompletes it properly and the docs also lists it; https://doc.babylonjs.com/typedoc/classes/babylon.subsurfacescatteringpostprocess.
Try it here: https://playground.babylonjs.com/#FRBM1D
How can I use this post processing effect?

You should not use it directly, this is why it is not part of our default exports. You should only enable it through the PBR material: https://doc.babylonjs.com/divingDeeper/materials/using/masterPBR#scattering


Ordinal frequency filters accept percentages

For example, instead of "keep most common 100 testable words", you can "keep most common 10% of testable words".

https://github.com/ogallagher/wordsearch_generator/commit/01ac035caeeea3ed48cf26845f2e466bf83b1c75


Caching Improvements

Searches that are pinned remain in cache until the index is changed or zulia is restarted.  There is no limit to the number of searches that can be pinned to an index but watch out for RAM use.

Replaced with difference branch


Revert addition of NodeDriver.ex_creation_time

... now that we have Node.created_at.
This reverts commit e513687ea8e335b4a71d9f6e569f61bfcb65b0e9 and #697.

@vdloo

:+1:

:+1:


Assign columns widths explicitly when column is added/deleted

Adding column
When addColumn command is performed while a cell is focused, the width of the cell that is focused will be reduced by 2, and the new column will take that width
Deleting column
Width of the deleted column will be added to the adjacent column
Demo
https://github.com/lblod/prosemirror-tables/assets/769698/85ffa7a4-2bb7-4f0b-9711-f03b04e87c2e
Considerations
Needs to be checked in Editor

I'll also add a release-commit pipeline to this repo so testing with the editor is easier.


TestDownload should allow running all tests for a given extractor

Please follow the guide below

[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Feature request (request for a new functionality)

Description of your issue, suggested solution and other information
README/CONTRIBUTING explain:

Run python test/test_download.py TestDownload.test_YourExtractor. This should fail at first, but you can continually re-run it until you're done. If you decide to add more than one test, then rename _TEST to _TESTS and make it into a list of dictionaries. The tests will then be named TestDownload.test_YourExtractor, TestDownload.test_YourExtractor_1, TestDownload.test_YourExtractor_2, etc.

I have to admit, I read this, wrote one test, and later on went back and added some more tests but had forgotten the final sentence. I did not at first notice that I was only running the first test, and then it took me an embarassingly long time to figure out how to run the other tests.
Why is the code structured this way — shouldn't there be an easy way to run all tests for a given extractor? That would seem to be the common case if you're working on a single extractor?
Or maybe there is a way and I'm just not seeing it?
I haven't really wrapped my head around the testing framework code, so I don't have a patch, but I am a little mystified at the current structure? Thanks. Explanation appreciated.

That's a good idea! Useful for handling big extractors like Twitter or Facebook.
FYI: test cases are generated dynamically in test/test_download.py.

When I found myself adding tests to the Generic Extractor this morning, I wished for this. Or a way to figure out that the test I was adding was test_Generic_25. I ended up counting the number of tests and guessing, which worked OK after an initial correction, but still seemed wrong.
Were there any thoughts on the pull request?

Well, I just write a script to determine the ID for a given URL in generic.py.

Well, it's no good if the core maintainers have private tools to make your lives easier but the rest of us, who have less familiarity with the code, have to stumble around in the dark... :(

I have quite a few shell scripts and I'll open pull requests for them.


Support Azure OpenAI and AI Search

Add starter for
Azure Open AI, include

AzureOpenAiChatModel
AzureOpenAiStreamingChatModel
AzureOpenAiEmbeddingModel
AzureOpenAiImageModel
Add support for AI Search ( dependen on PR https://github.com/langchain4j/langchain4j/pull/758)

Need the env

AZURE_OPENAI_KEY
AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_DEPLOYMENT_NAME
AZURE_EMBEDDING_DEPLOYMENT_NAME
AZURE_AISEARCH_API_KEY
AZURE_AISEARCH_ENDPOINT
AZURE_AISEARCH_SETUP_INDEX
AZURE_AISEARCH_DIMENSIONS

To run the IT

Spring don't support or condition, I updated the code using other solution

@langchain4j , can you help to approve if no more comments?

@langchain4j , can you help to check?

@showpune sure, sorry for delays, I have too much on my plate right now


Move bundle operations to runtime

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 232 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-5.9%) to 22.832%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundles.go
0
232
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-5.9%

Covered Lines:
258

Relevant Lines:
1130

💛  - Coveralls


Docker file and/or a push of version 2.0.0 to the Docker Hub

@synesthesiam Apologies for the bother, but could we see this published to the Docker Hub or a Docker file added to the GitHub repo so we can build the latest release(s) via Docker?
Thanks as always. I'd do it myself if I knew how to reverse engineer it... is that possible?

Oh, apologies. The latest version is already being published.


Provide filter capability on JobResult list view to filter based on JobLogEntry.log_object value

As ...
Ozzie - Operator
I want ...
The ability to filter job results to show all jobs that provide log entries for an associated object
So that ...
I can see all jobs run against a single object
I know this is done when...

FilterForm on JobResults list view can be filtered based on a PK being passed in

Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[X] UI/UX
[ ] Documentation
[ ] Other (not directly a platform feature)

Database Changes

None

External Dependencies

None

Another custom filter on JobResultFilterSet would be suffice. Only thing is that JobLogEntry stores log_object and absolute_url as CharFields so extracting that associated object PK probably would need additional logic.

I think first pass it's OKAY to put it on the user to retrieve the PK from the relevant object

Should make sure the is an index on the log_object field.


Fix showing ChangeLog.ID on UI

The position of @UI.Hidden has been changed, and now the field is no longer visible in the UI:


Global Variable and External functions in SpookyJS

I'm new to SpookyJS/CasperJS and I'm trying to figure out the execution flow.
This is what I'm trying to achieve:

load a page
store an image of the page
pass this image to a function and execute it (this process is quite long: ~15 seconds)
wait for the function to return the result
use the returned value to fill a field in the form in the loaded page
submit the form

this is a code snippet which tries to explain the solution I came up with:
var globProcessedImage = 'empty';

try {
    var Spooky = require('spooky');
} catch (e) {
    var Spooky = require('../lib/spooky');
}

var spooky = new Spooky({
    child: {
        transport: 'http'
    },
    casper: {
        logLevel: 'debug',
        verbose: true
    }
}, function (err) {
    if (err) {
        e = new Error('Failed to initialize SpookyJS');
        e.details = err;
        throw e;
    }

    spooky.start('http://example.com');

    spooky.then(function() {
        this.captureSelector('./image.png', '#img-node');
    });

    spooky.waitFor([{spookyGlobProcessedImage: globProcessedImage}, function() {
        this.emit('image.processed');
        return spookyGlobProcessedImage !== 'empty';
    }], [{spookyGlobProcessedImage: globProcessedImage}, function then() {
        this.sendKeys('#input_field', spookyGlobProcessedImage);
    }]);

    spooky.then(function() {
        this.capture('./page.png');
    });

    spooky.run();

    spooky.on('image.processed', function() {
        setTimeout(function() {
            globProcessedImage = 'my_long_awaited_result';
        }, 15000);
    });
});

spooky.on('error', function (e, stack) {
    console.error(e);

    if (stack) {
        console.log(stack);
    }
});

/*
 // Uncomment this block to see all of the things Casper has to say.
 // There are a lot.
 // He has opinions.
 spooky.on('console', function (line) {
 console.log(line);
 });
 */

spooky.on('log', function (log) {
    if (log.space === 'remote') {
        console.log(log.message.replace(/ \- .*/, ''));
    }
});

Looks like spooky.waitFor is not able to find spookyGlobProcessedImage : ReferenceError: Can't find variable: spookyGlobProcessedImage

is there anyway to check global variable in " spooky.waitFor"?

@zixia global within which scope? You can gave a global javascript variable, a global spookyjs variable, a global casperjs variable.
You can do the following:
var myGlobalVar = "something";
var spooky = new Spooky({
   ...
  }, function(err) {
    spooky.start(url);
   spooky.then([{myGV: myGlobalVar}, function() {
  window.myGlobalVar = myGV;
 }]);

spooky.then(function() {
 //do something with window.myGlobalVar
});

spooky.run(function() {
//after you saved all your results within window.myGlobalVar
this.emit("finalResult", window.myGlobalVar);

 this.exit();
 });

 });

 spooky.on("finalResult, function(result) {
    myGlobalVar = result;
   });

@lerio Did you ever come up with a solution for this use case with Spooky/Casper or any alternative technology?
I have this exact same use case and am trying to figure out the best approach right now.
Right now, I assume I could 1) download the image to the local drive, 2) emit an event with the filepath of the image 3) manually force Spooky/Casper to wait for a fixed amount of time that should exceed how long the other webservice takes 4) let the web service return its results 5) pass the result of that webservice into the next casper .then() method.
However, I would like a more elegant solution that waits for the external webservice to return results then fire the next step in the Casper process.  Any help is appreciated.


build: create .gitignore

Summary
Fixes https://github.com/copilot-extensions/preview-sdk.js/issues/69
This adds a .gitignore to the repository, sourced from https://github.com/github/gitignore/blob/main/Node.gitignore 😉

🤔 no idea why CI is not triggered for PRs coming from forks?

🤔 no idea why CI is not triggered for PRs coming from forks?

@gr2m - Great question! From Controlling changes from forks to workflows in public repositories:

Although workflows from forks do not have access to sensitive data such as secrets, they can be an annoyance for maintainers if they are modified for abusive purposes.
To help prevent this, workflows on pull requests to public repositories from some outside contributors will not run automatically, and might need to be approved first. By default, all first-time contributors require approval to run workflows.

and might need to be approved first

Right, I remember the UI for this, I see it on other projects. But didn't see it for the PRs in this repository. I'm probably on some staff flag that turns on an alternative UI that does not have that feature implemented yet

Confirmed, I see it in the classic view:

Good to know, will just switch back-and-forth as needed. Thank you @francisfuzz!!


Customer portal

LS added customer portal URLs to their API recently:
https://docs.lemonsqueezy.com/api/changelog#updates

September 19, 2023

We've added new customer_portal URLs to Subscription objects and Customer objects, allowing you to link to the new Customer Portal from your application.

This PR adds support for parsing those URLs in the Subscription and Customer.

❤💚💛💜💙❤


Feedback for unsuccessful searches should be sent automatically

Is your feature request related to a problem? Please describe.
Currently we have an extra obstacle for users to communicate and also for municipalities to get to know content that is currently missing from the app but being searched for by the target group.
Describe the solution you'd like
When a term is searched and returns no results, the feedback form opens and allows users to send in their failed query. It could be helpful to send it, even if users navigate away from the feedback form in order to give municipalities more information without users having to become active.
Describe alternatives you've considered
We keep it, as it is - maybe also bcs of potential problems such as "misuse" by bots or humans. That could create many non relevant feedbacks for municipalities.
Additional context
We had this idea bcs we were discussing how to give municipalities more confidence in the quality of their content and one aspect is knowing that they cover the information their target group needs/seaches for.

I understand this requirment and as integreat is only as good as the content, i think we should think of a solution. To avoid "spam" that is caused by typos, i have a few ideas:

in the app we add a "did you mean" feature. I think this would be nice for the user experience anyways.
We add a "automatic feedback" flag to the feedback sent without the form and in the cms the automatic feedback is displayed differently, e.g. grouped by search results with a counter how often these words have been searched @digitalfabrik/cms-team

This is loosely related to #2926.

I understand this requirment and as integreat is only as good as the content, i think we should think of a solution. To avoid "spam" that is caused by typos, i have a few ideas:

in the app we add a "did you mean" feature. I think this would be nice for the user experience anyways.
We add a "automatic feedback" flag to the feedback sent without the form and in the cms the automatic feedback is displayed differently, e.g. grouped by search results with a counter how often these words have been searched @digitalfabrik/cms-team

@osmers Can you please add you thoughts what you think about this approach?

Sorry @ztefanie :)
I think the first idea would be really good and I'd like to add that a "similar" suggestion came from the city of Regensburg: https://tasks.tuerantuer.org/wp/3722 (it includes adding a Stichwortsuche to avoid spelling mistakes - see last comment with screenshot in the issue)
The second idea is definitely helpful for admins in the municipalities and I'll check with the CMS team, but I assume that adding the flag shouldn't be too complicated. The grouping is already done for positive or negative reviews, not sure if it's also done for the same search word. If not, that would be good too. I'd make this two different issues for the CMS team and it would probably make sense to implement the CMS side first and then the app side, right?
For the app we could start with the first suggestion as this could already help.
Please add your thoughts on a Stichwortsuche or whether having both would be doppeltgemoppelt :)

Hi @osmers
Thanks fot the feedback.
Ok please create the two tickets for cms and link them here.
I will create a ticket for UI/UX how to realize the Schlagwortsuche / Did-you-mean-suggestion.

Releated to: https://github.com/digitalfabrik/integreat-app/issues/2981

CMS issue for label: https://github.com/digitalfabrik/integreat-cms/issues/3171
CMS issue for cummulative feedback: https://github.com/digitalfabrik/integreat-app/issues/2969


Openui 5 table How to freeze the header, not with the vertical scroll bar and scroll

Openui 5 table How to freeze the header, not with the vertical scroll bar and scroll

ColumnListItem

this can be achieved by adding a CSS style to the header which uses "position:sticky"
however, the sticky position is not yet a completely supported W3C standard.
Currently, it does not work in Ms Internet Explorer, nor Edge.
You can try third party libraries like jquery stickyTableHeader
or you can create 2 tables:

one to show the header
second (nested in a scrollcontainer with height set to 100%) to show the contents

thank you


how to use highlight.js?

Hi, I would like to use highlight.js. I wrote
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.10.0/styles/atom-one-dark.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.10.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

in my_site/themes/hugo_theme_beg/layouts/partials/meta.html, and
~~~ruby
# The Greeter class
class Greeter
  def initialize(name)
    @name = name.capitalize
  end

  def salute
    puts "Hello #{@name}!"
  end
end

g = Greeter.new("world")
g.salute
~~~

in my post, but it does not work. Maybe you need to connect highlight in another place?

I tried your code but does not reproduce X(

Thanks, I got the correct work after I changed the file
my_site/themes/hugo_theme_beg/layouts/_default/baseof.html
line 7:
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/solarized_dark.min.css">


Give billing.coordinator_machine_account billing.viewer role

Give billing.coordinator_machine_account billing.viewer role to be able to interrogate projects' budget and update the BQ table.

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

:exclamation: No coverage uploaded for pull request base (main@6f59896). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #182   +/-   ##
=======================================
  Coverage        ?   88.04%
=======================================
  Files           ?        4
  Lines           ?      393
  Branches        ?        0
=======================================
  Hits            ?      346
  Misses          ?       47
  Partials        ?        0

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


FR: option to hide the match template text from Note Path links

(Note: I'm not familiar with Obsidian's plugin API, so maybe implementing this isn't even possible?)
I have a folder People/ for notes about people, and a Supercharged Links selector for "the path of the note starts with People/", which I style by prefixing an emoji.  The end result is something like "👤 People/JoJo Siwa".
It would be great to have an option for the selector that would make it strip out the "People/" prefix when rendering the links so that I could make the end result be "👤 JoJo Siwa".  An alternative to stripping it out might be to put a <span> with a class around it so it could be hidden (or possibly styled differently) via CSS.
Personally I only care about having this for "Starts with this value" Note Path selectors, but it conceivably could also make sense for other matching types.

I'm not so sure what you mean! If you have a folder called People in which there is a note called JoJo Siwa.md, you can use a wikilink to [[JoJo Siwa]] that refers to People/JoJo Siwa.md. Unless you have JoJo Siwa notes in multiple folders...
The "the path of the note starts with People/" looks at the resulting path of the note, not what it looks like in the wikilink. So wikilinks to [[JoJo Siwa]] will also be styled with the emoji.

Yes, as you noted, this would only be for the case where the source text has the folder prefix in the link.  I guess "People/" is a bad example of that one.  A better example would be "Personal/" and "Reference/" where I have an "Education" or "Housing" note under both folders.

I see, yes in that case it is relevant. I'm of the personal and somewhat biased opinion that file names should be unique, but I imagine that's not how it is in every use case.
I'm not entirely sure if this is something for Supercharged Links, which only aims to add styling, while what you're suggesting actually requires changing the DOM. More importantly, this problem can easily be solved with aliases https://help.obsidian.md/How+to/Add+aliases+to+note , which I think is a more reliable way anyways.


Add Sharpbrake to the list of community projects

Sharpbrake is a C# notifier library for Airbrake - an online tool that provides error tracking for applications. The Sharpbrake.Extensions.Logging provider notifies the Airbrake dashboard of an error with the help of the Microsoft.Extensions.Logging API.

/cc @Eilon

@aholovko thank you! Sorry for the delay on this, I was on parental leave for the last 10 weeks.

@Eilon No problem, thank you. :)


Index constraint does not constrain

It seems the index constraint doesn't seem to constrain anymore... if it does, then I blame it being early in the morning.
Copying the code from Ryan's post here:
class Customer {
	dummyProperty: string;
}

var map: { [email: string]: Customer; } = { };
<EMAIL_ADDRESS>= new Customer(); // OK
map[14] = new Customer(); // Not OK, 14 is not a string -- ACTUALLY, this compiles now
<EMAIL_ADDRESS>= 'x'; // Not OK, x is not a customer

Playground
Apologies if this has already been raised, but I couldn't find a duplicate issue. Maybe this is now by design?

We changed the behavior here because (at runtime) numbers are implicitly converted to strings during index operations. Basically, a string indexer is a "superset" of a number indexer.

@RyanCavanaugh ok, thanks! That's slightly annoying though... from what I see that change makes defining the type on an index useless. In my opinion, the runtime behaviour should not be taken into consideration when someone explicitly defines what they want the index type to be. For example, if someone wanted that, it would make more sense for them to write:
var map: { [email: string | number]: Customer; } = { };

Oh well :(

@RyanCavanaugh could you explain why third assignment is incorrect?
interface SomeArray1 {
    [index: number]: string;
}

var my1: SomeArray1;
my1["12"] = 12;
my1[12] = "12";
my1[12] = 12; // <-- why this line is incorrect but two ones before is OK?

I think it's a violation of POLA principle

We don't treat numeric-looking string literals as numbers, for obvious reasons, so this is the same as writing my1['foo'] which a lot of people like to do to work around the type system. This is basically an escape hatch for when you don't want the type system involved.
This is implemented via the global type Object [effectively] having a string indexer that returns any, but using this implicit indexer is an error under --noImplicitAny.

@RyanCavanaugh

a string indexer is a "superset" of a number indexer.

I'm wondering why the following code compiles.
class Customer {
	dummyProperty: string;
}

var map: { [key: number]: Customer; } = {};

map[14] = new Customer();
map['map'] = new Customer();  // <-- Why does this line compile?

Playground

@zjiekai that's because the playground doesn't compile with the --noImplicitAny compiler flag.

FYI please don't drop questions into old issues - ask them on Stack Overflow. If you think you've found a bug, log a new issue.


Maint: Username changed and Bump Huum to 0.4.4

change of User name
Bump huum to 0.4.4

Please also adjust in the "latest" file

@Chris-656
I think the following changes should be checked too :
-) update latest repository (sources-dist.latest) (Apollon77 already mentioned)
-) fitbit-fitness should get a new release (in my oppinion). 0.4.8 was released 2 months ago (according to github and npm registry). Github's io-package.json contains the new username but still release 0.4.8. Repos list version 0.4.8 too. Please check whether something went wrong and a 0.4.9 should be released as 0.4.8 will still deliver the old package content.

latest reposito

I am not sure where to find the latest file "sources-dist.latest"  rest is done

latest reposito

I am not sure where to find the latest file "sources-dist.latest" ; rest is done

Sorry, my fault. should be .json of course.


README needs a little fix

In the image below, it's described that running make:baum {model_name} will generate both a Model and a Migration:

However, in the latest version, 3.1.0, only the Model is generated, as you can see below:

Due to the great generosity of the person who created the package, there's an example of a migration to create the table right below in the documentation. Nevertheless, just as it caused confusion for me, the statement about the creation of both files might confuse other users!
Thank you very much!

@lucasborges24 would you like "make:baum {model_name}" to generate both a Model and a Migration? do you think that is the most practical usage?
I think it would be best to keep them separate and update the readme as you have suggested.
Thanks for catching this!

I personally believe the current way is preferable! Updating the Readme was indeed my suggestion :)
Additionally, I was going through the documentation yesterday while implementing some code, and I stumbled upon another discrepancy in the readme:
In the section where you detail the ancestors/descendant methods, there's a slight mix-up with the sibling method's description:

I believe the more accurate descriptions would be:
getSiblingsAndSelf(): Retrieve all siblings of the node, including the node itself.
getSiblings(): Return all siblings of the node, excluding the node itself.
By the way, I'm genuinely excited about this package! While working with it, I realized there was a particular method I couldn't find . I'd love to take the initiative and implement it in a PR. I believe it could be a valuable addition to the package.
Hope this helps and thank you for the continuous work on this package!

@lucasborges24 I agree with you I prefer the current way. I will double check it works like that then get the wording updated. As for the other wording changes I agree as the wording you proposed fits the verbage of the other functions better and its clearer.
That being said feel free to open an issue for a new method and make a fork to work on it.
I will most likely get these wording changes done in the next 2 weeks.


[INFRA] update github-changelog-generator

closes #559

bump docker version 17.11.0-ce -> 18.06.0-ce
bump gh chlog version 1.14.3 -> 1.15.2
add --release-branch param for master
add indentation for bash if/else clause

It seems straight forward enough. If I remember correctly, @franklin-feingold's only problem was to test whether this actually works as expected.
I didn't test it, but if we merge this and see that it doesn't work, we can revert the changes. WDYT @effigies ?

Looks reasonable.

okay let's try it. After merging, this line (for example) should disappear from CHANGES.md

Updating the bep009 with the latest master branch updates #576 (melanieganz)

the run has failed because I also upgraded the github-changelog-generator ... and although there were no breaking changes in the API, they do a better job at catching errors now.
--> https://github.com/github-changelog-generator/github-changelog-generator/pull/621
and now a silent error in our run has been revealed :man_shrugging:


Added 'spo site inplacerecordsmanagement set' command solving #774

Added 'spo site inplacerecordsmanagement set' command solving #774

Coverage remained the same at 100.0% when pulling 290acd1c0371c961911b7e446f1e1c012db8b58b on VelinGeorgiev:inplace-records-management into ba3455b04b82fff66dc8d8f953e78512bfcbcbd5 on pnp:dev.

Awesome! I'll have a look shortly!

When using the command, I'm seeing odd behavior. When I'm trying to enable in-place records management for the first time using the CLI, I'm getting:
Access denied. You do not have permission to perform this action or access this resource.

If I enable and disable the Feature through the SharePoint UI, the CLI commands works as expected. Could you see if you can repro it @VelinGeorgiev and if so, what's wrong?

Interesting. The only difference with the pnp PowerShell is that they use feature add with force flag. Could that be another wierd SP  behaviour? I will try to reproduce and see if I can activate it with force flag if that could fix it

That would be weird indeed, but not the first one in SharePoint 😉

@waldekmastykarz , I had to force it. That was it.
Here are my tests:

Communication site - worked without force. That is why I have not found it at first place.
Enterprise classic search site - worked without force
Modern team site - able to reproduce it. Throws "Access denied. You do not have permission to perform this action or access this resource." Worked with force flag.

Call it SharePoint surprise.

Thanks for thorough testing @VelinGeorgiev!

Got it. I've just realized that the initial spec was spo web inplacerecordsmanagement while you implemented spo site inplacerecordsmanagement. The spec was meant to give equivalent functionality to the PowerShell cmdlet. If we're doing something else, then we should create a new spec.

Disregard my last comment. I forgot about the discussion we had about the feature scope. spo site... is good. So now the question is, if what we do is in fact comparable to Set-PnPInPlaceRecordsManagement or not and as such should we list it as equivalent or not.

Just had a quick look myself and going to answer my own question. You were right: we are similar to Set- and Disable- but not to Enable- because it does some extra stuff.
Should we btw. consider implementing the same flow as in Enable-?

If you consider doing it the other way, you add custom setup instead of the default one. I would say if we consider doing that, we have to talk to Erwin and Bert to see what was the reason behind that custom setup and then implement it in different CLI command (then link it to the cmdlet)

Merged manually. Thanks! 👏


Updated to __version__ pattern used in endaq-python and others

This is the pattern used in some other Mide packages, originating from this: https://packaging.python.org/en/latest/guides/single-sourcing-package-version/

Codecov Report

Merging #141 (4f4dadd) into develop (2e987d3) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop     #141   +/-   ##
========================================
  Coverage    74.48%   74.48%
========================================
  Files           10       10
  Lines         3680     3680
========================================
  Hits          2741     2741
  Misses         939      939

Impacted Files
Coverage Δ

idelib/__init__.py
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


///references should support resolving environment variables

For example, instead of using
/// <reference path="../../../myCustomPathWhichMightNotWorkOnMyCoWorkersComputer/library.d.ts" />
I’d like to use either
/// <reference path="$(MY_PARTNER_TEAM_LIB)/library.d.ts" />
Or
/// <reference path="%MY_PARTNER_TEAM_LIB%/library.d.ts" />

one thing to note, tsconfig.json does not support environment variables either.

+1 for parsing environment variables in (at least) tsconfig.json.  Build systems that want to use this file rely on being able to use variables for things like output directories.

+1

+1

We're at ~9 upvotes after five years of being opened and this opens up a big can of worms for things like cloud build systems; with other means to have file inclusion we've added in the meantime, I don't think this one meets the bar for implementation.


Option

Improve the Option implementation by adding the following functions:

FromPtr: Lifts a pointer into an Option
ToPtr: "Unlifts" an Option into a pointer
IsSomeAnd: Check if the Option has a value and if that value satisfies a predicate
Filter: Apply a predicate to the  Option value if it exists and return Some on true and None on false
Flat: Remove one level of nesting from an Option: Option[Option[T]] -> Option[T]

I also added tests for these new features and a mention in the Readme

The last commit should fix the issue #8

Also implemented the Get function
It panics if the Option given as an argument is None, but sometimes we are sure that the Option is Some (for example using IsNone and IsSome) and Get becomes easier to use and read than GetOrElse

hello @Force4760,
thanks again, couple inline comments:

Improve the Option implementation by adding the following functions:

FromPtr: Lifts a pointer into an Option
ToPtr: "Unlifts" an Option into a pointer

I have some doubts on this if it's something inline with functional principles as the end result might be changed by some external code changing the value the pointer is pointing to. Do you have further examples of something similar in Scala or fp-ts? Would be really useful to understand how that could be used in the future.

IsSomeAnd: Check if the Option has a value and if that value satisfies a predicate

i think we should rename it as exists check here

Filter: Apply a predicate to the  Option value if it exists and return Some on true and None on false

LGTM we might also check fp-ts for ref

Flat: Remove one level of nesting from an Option: Option[Option[T]] -> Option[T]

LGTM i would just split the implementation in another PR and rename it as flatten to be more inline with Scala and fp-ts

I also added tests for these new features and a mention in the Readme

On the Get implementation i think it is not inline with functional principles of throwing exceptions. I think we should leverage to GetOrElse only. Can i get more context on which would be a good use case?
I will keep the PR open to discuss the various points but would be great to separate in other smaller PRs code that it's ok to be merged.

Pointers
I haven't seen anything similar neither in fp-ts nor scala (I don't think TS has pointers)
Pointers are, in some way, an unsafe version of option

nil <-> None
&x <-> Some(x)

The idea behind FromPtr and ToPtr is for them to serve as a kind of "bridge" between the unsafe and impure world of pointers and the safe and pure world of options.
Even if we want to keep everything pure, some other important/popular go modules use pointers, so it would be needed to have some kind of bridge between options and pointers.
Get
The use of Get can be a way to simplify code. Here's an example
func ZipWith(f func(A, B) C, oA Option[A], oB Option[B]) Option[C] {
    if isSome(oA) && isSome(oB) {
        // Because of the `if statement` we are sure that `Get` will not panic
        return Some( f( Get(oA), Get(oB) )
    }
    return None[C]
}


Allow to configure the root directory of the server

Enter your suggestions in details:
It would be nice if a user could set the server root in the configuration Server options to serve static files that shouldn't be copied on every build.
That could be done somewhere here https://github.com/lumeland/lume/blob/73200d261f3bda81c04fb820d71e118aaca8060a/cli/build.ts#L97

Another nice option would be to allow swapping the server instance e.g.
...
import Server from "https:/deno.land/x/lume/core/server.ts";

const server = new Server({
  port: 8000,
  root: `${Deno.cwd()}/dist`,
});

server.start();

const site = lume({
  src: "./src",
  dest: "./dist/build",
  emptyDest: false,
  server: server
});

My use case is that I have many images that are in another directory and I don't want to copy them (like Copy static files) to the dist folder to prevent duplication and unnecessary work.
As a workaround I tried using a second server and redirects but unfortunately that don't work.
const server = new Server({
  port: 3001,
  root: `${Deno.cwd()}/dist`,
});

server.addEventListener("start", (event) => {
  console.log(`Listening on http://localhost:${server.options.port}`);
});

server.start();

const site = lume({
  src: "./src",
  dest: "./dist/build",
  emptyDest: false,
  location: new URL("https://activations.zki.dlr.de"),
  server: {
    port: 3000,
    middlewares: [
      redirects: {
        "http://localhost:3000/portaldata/": "http://localhost:3001/portaldata/",
      }
    ],
  },
});

Probably this could be addressed creating a new a middleware. Something like this:
const server = new Server({
  port: 3000,
  root: `${Deno.cwd()}/dist`,
});

server.use(staticFolder({
  root: "/path/to/another/folder"
});

@boeckMt I have created this middleware. You can use it as following:
import lume from "lume/mod.ts";
import staticFolder from "https://raw.githubusercontent.com/lumeland/experimental-plugins/main/static_folder/mod.ts";

const site = lume({
  server: {
      middlewares: [
        staticFolder({
          root: Deno.cwd() + "/path/the/folder",
        })
      ]
    },
});

export default site;

Let me know if it works for you.

@oscarotero tanks for the fast response and creation of this middleware!
It works perfectly :)

I'm currently trying to migrate a site from metalsmith which, by the way, works very well.

Great! I think this middleware may be useful to other users, so I'll move it to the official Lume repository.


Wrapping all CommandExecute calls in Try-Catch block

The Idea:
In case of any unpredictable error associated with CommandExecute calls the error might be suppressed from rising and be passed only as @ReturnCode.
Actual proposed changes:

Adding new "Raiserror" parameter :
@Raiserror nvarchar(max) = 'Y'

Wrapping 5 (five) CommandExecute calls in Try-Catch block:
BEGIN TRY
EXECUTE @CurrentCommandOutputXX = [dbo].[CommandExecute] BLA-BLA-BLA
 				SET @Error = @@ERROR
 				IF @Error <> 0 SET @CurrentCommandOutputXX = @Error
 				IF @CurrentCommandOutputXX <> 0 SET @ReturnCode = @olahallengren CurrentCommandOutputXX
 			END TRY
 			BEGIN CATCH
 					IF XACT_STATE() <> 0
 					BEGIN
 						ROLLBACK TRANSACTION
 					END
 					SET @ErrorMessage = 'ERROR: ' + CAST(ERROR_NUMBER() AS nvarchar) + ', ' + ISNULL(ERROR_MESSAGE(),'')
 					IF @Raiserror = 'Y'
 						RAISERROR('%s',16,1,@ErrorMessage) WITH NOWAIT
 					ELSE
 						RAISERROR('%s',10,1,@ErrorMessage) WITH NOWAIT
 					RAISERROR(@EmptyLine,10,1) WITH NOWAIT
 					SET @Error = ERROR_NUMBER()
 					SET @ReturnCode = @Error
 			END CATCH

Let's take a step back and do a small test.
First let's try executing a backup command that will fail.
BACKUP DATABASE model TO DISK = 'Q:\model.bak'

Msg 3201, Level 16, State 1, Line 2
Cannot open backup device 'Q:\model.bak'. Operating system error 3(The system cannot find the path specified.).
Msg 3013, Level 16, State 1, Line 2
BACKUP DATABASE is terminating abnormally.
Now let's try executing the backup command in a TRY - block.
DECLARE @ErrorMessage nvarchar(max)

BEGIN TRY
  BACKUP DATABASE model TO DISK = 'Q:\model.bak'
END TRY
BEGIN CATCH
  SET @ErrorMessage = 'ERROR: ' + CAST(ERROR_NUMBER() AS nvarchar) + ', ' + ISNULL(ERROR_MESSAGE(),'')
  RAISERROR('%s',16,1,@ErrorMessage) WITH NOWAIT
END CATCH

Msg 50000, Level 16, State 1, Line 19
ERROR: 3013, BACKUP DATABASE is terminating abnormally.
As you see the BACKUP DATABASE command returns two errors, and when you are using TRY CATCH, you can only capture the second error, with the ERROR_NUMBER() and ERROR_MESSAGE() - functions.

Thanks for pointing at that. Never paid attention to it.
You are absolutely right, if we wrap it in TRY-Catch block we loose the very first error, which is the root cause.
Is there any known way to recapture it????
BTW The only workaround I see is to look at the ERRORLOG file.
Will it be OK if I come up here with a script, which will determine if person want to wrap the call into Try-Catch and do it only then?
Thanks again.

You are absolutely right, if we wrap it in TRY-Catch block we loose the very first error, which is the root cause.
Is there any known way to recapture it????

There is no way to capture both both errors (or the first error) using the error functions.
It is possible to rethrow the errors using THROW. However that is only available in SQL Server 2012 and later.
I have the parameter @Mode in CommandExecute to control if TRY CATCH should be used.

Will it be OK if I come up here with a script, which will determine if person want to wrap the call into Try-Catch and do it only then?

With this parameter, how would the user find the cause of a failed backup?

Will check the @Mode parameter.
All BACKUP errors are automatically getting into ERRORLOG file.
Are there any exceptions from it?

Checked the @Mode parameter.
It looks like it applies only to "CommandExecute" but not for "DatabaseBackup" procedure itself.
Any error in that wrapper will cause Job failure.

Checked the @mode parameter.
It looks like it applies only to "CommandExecute" but not for "DatabaseBackup" procedure itself.

That is correct. This is an internal parameter. I added it because I needed to have different error handling for different commands.

Any error in that wrapper will cause Job failure.

This is correct. I am not planning to change this.

All BACKUP errors are automatically getting into ERRORLOG file.
Are there any exceptions from it?

My understanding is that all backup errors are going into the ERRORLOG.

OK.
If you change your mind in the future you can pass some dirty work to me.
Will be always glad to help you.
Not sure about that branch. Do you close it or delete completely?
Thanks.

You can just close it.

You can also delete your branch if you prefer that.


Sidewalk Shader

Enhance the sidewalks shaders and textures to make them more photorealistic

Improved sidewalks, curbs and gutters using textures from megascans:
(sidewalk and curb) After/Before:

Examples of the different sidewalks:


Add subject, subsubjcet, book models

This PR is only an addition to the models.py file, without the migration,
because there is a bug that fixed in PR #20 and after merge Will be rebased
Also registered the new models to the admin page so we could monitor and see them.
fix #16

LGTM

I think you should merge Pr #21 first

Please do not modify merged migration files, add new ones!

Fixed it


OAI-PHM Too many requests

Pondering how to handle this in the codebase:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429
A watched session will not trigger the rate limited.
Not quite correct implementation, so 503 might also be trapped:
http://www.openarchives.org/OAI/2.0/guidelines-repository.htm#FlowControlAndLoadBalancing

endpoint:
https://ws.pangaea.de/oai/provider
at about 60 records, we get a Too Many Requests.. http 429
19-Oct-2018 13:05:04.634 SEVERE [HARVESTING] com.esri.geoportal.harvester.support.ErrorLogger.logError Error processing task: PROCESS:: status: working, title: NAME: , PROCESSOR: DEFAULT[], SOURCE: OAI-PMH[oai-host-url=https://ws.pangaea.de/oai/provider, oai-prefix=iso19139, oai-set=], DESTINATIONS: [FOLDER-SPLIT[folder-root-folder=d:\metadata\, folder-split-folders=true, folder-split-size=1000, folder-cleanup=false]], INCREMENTAL: false, IGNOREROBOTSTXT: true | Error reading data from: OAI [https://ws.pangaea.de/oai/provider]
 com.esri.geoportal.harvester.api.ex.DataInputException: Error reading data from: OAI [https://ws.pangaea.de/oai/provider]
	at com.esri.geoportal.harvester.oai.pmh.OaiBroker.readContent(OaiBroker.java:147)
	at com.esri.geoportal.harvester.oai.pmh.OaiBroker.access$200(OaiBroker.java:56)
	at com.esri.geoportal.harvester.oai.pmh.OaiBroker$OaiIterator.next(OaiBroker.java:206)
	at com.esri.geoportal.harvester.engine.defaults.DefaultProcessor$DefaultProcess.lambda$new$25(DefaultProcessor.java:154)
	at com.esri.geoportal.harvester.engine.defaults.DefaultProcessor$DefaultProcess$$Lambda$129/22196721.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.http.client.HttpResponseException: Too Many Requests
	at com.esri.geoportal.commons.oai.client.Client.readRecord(Client.java:154)
	at com.esri.geoportal.harvester.oai.pmh.OaiBroker.readContent(OaiBroker.java:140)
	... 5 more

Pull request #101 attempts to address this issue. It reads "Retry-After" response header and applies given delay. That, of course, will cause harvester appear to be slow.
I think, 429 error code has been invented to let servers protect themselves against DDoS type of attacks (or unwanted web crawlers). Hence, a desired solution would be a "white list" kind of mechanism, where harvester IP is being listed as "white" on the server side as a part of some agreement or partnership and is allowed for an unlimited access to the resources, while all the rest would only get a sneak peek of the content.


CC0001 cannot be used for C#7.1 default literal

(string X, string Y) xy = default;

cannot be converted to
var xy = default;

By more, it can't be used for all cases when the left side hand has directly type and the right side has the default literal:
int x = default;

If you will apply the CC0001, you will retrieve a compilation error.
Also, the suggestion in the light bulb(quick info) for the case above show invalid rule CC0105 with the non existent reference:

However, suggestion is invalid only for a couple of types.
I hope, that @giggio or someone else  will pay attention to this issue)


Warning message not reflected by the output

Hi,
I'm using rMVP to run FarmCPU on RStudio. In a exploratory run to assess the structure of the putput  (2 loops with 2 permutations) i recieved this warning:
Notification messages :
 1: In as.numeric(map[, 2]) %in% c(0:max.chr) :
   NAs introduced during automatic conversion
 2: In as.numeric(map[, 2]) %in% c(0:max.chr) :
   NAs introduced during automatic conversion
 3: In max(numeric.chr, na.rm = TRUE) :
   no argument for max ; -Inf is returned

(My machine is in French, so I roughly translated the original: otherwise, I've never seen "NAs introduced during automatic conversion").
Nonetheless, neither the input contained missing data, or the output had any NA and/or infinite at all. When I run the same script by Rscript the log file didn't report anything similar. I also wasn't able to track what the warning is referring to.
What could be the source of the warning?
Thanks in advance for your time

These warnings don't affect the results, thus just ignore it.

Thanks!


Better to have h3 included in the right-side TOC

feature request
Especially when reading Technology choices for a message broker section, I just thought it would be much better if h3 was also included in the right-side TOC.

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

ID: 4503ec57-36ef-8040-b6de-5b5a1fea1590
Version Independent ID: 509de364-6faf-e11e-41e0-c2f6cb8583f6
Content: Asynchronous messaging options in Azure - Azure Application Architecture Guide
Content Source: docs/guide/technology-choices/messaging.md
Service: architecture-center
Sub-service: guide
GitHub Login: @PageWriter-MSFT
Microsoft Alias: pnp

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 432292

@cr1315 could you elaborate? Thank you.

Thank you


⚠ Bofrost.de has degraded performance

In 84c01db, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1088 ms

Resolved: Bofrost.de performance has improved in 38be013 after 8 minutes.


html5 color / masking bug

I have this masking code:
g.save();
g.drawTexture(_texture, 0, 0);
g.setBlendMode(BlendMode.Mask);
g.drawTexture(_mask, 0, 0);
	g.restore();

It works fine for the Flash and android targets, but for html5, the colors of that object appear all black.  The odd thing is, this only used to happen for Chrome.  But now it's started happening in Firefox also.

Do you know if that's with the WebGL or canvas renderer?
There's an issue with Mask that's documented in the BlendMode API doc. In canvas, the blend mode is unbounded, meaning the source alpha will be applied to the entire destination image. On other renderers, only the parts of the destination within the bounds of the source image will be affected. Could that be what's going on here?


Platform should only remove its own cache item

I already have it in my fork, I will merge it soon. Closing this PR.

OK, thanks.


[AnVIL DX] Download data via curl from dataset detail page

Dupe of https://github.com/DataBiosphere/data-browser/issues/3225.


ceph-volume: dirty hack

ceph-volume recently introduced a breaking change because of a lvm batch refactor.
when rerunning lvm batch --report --format json on existing OSDs, it
doesn't output a valid json on stdout.
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-ooo_collocation

jenkins test centos-container-collocation

jenkins test centos-non_container-collocation

jenkins test centos-container-lvm_osds

jenkins test centos-non_container-lvm_osds

jenkins test centos-container-lvm_osds

jenkins test centos-container-lvm_osds

jenkins test centos-container-lvm_osds


Error when using Android Xamarin

Hi, when my lib using in Window PC env, working prefectly. But when i try using lib in Android env throw error
Could not load type 'RestSharp.Portable.HttpClient.Impl.Http.HttpContentWrapper' from assembly 'RestSharp.Portable.HttpClient, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=be81bb0f53eab22f'

This shouldn't be a problem any more in 4.0.4


Modify all existing Telemetry types to implement IExtension

Following up on this PR (https://github.com/Microsoft/ApplicationInsights-dotnet/pull/875) which introduced the notion of IExtension ( https://github.com/Microsoft/ApplicationInsights-dotnet/issues/871) which enabled strongly typed extensions to existing types.
This PR makes all existing types (like RequestTelemetry, DependencyTelemetry etc) implement IExtension , thereby emitting serialization information. Current serialization logic is replaced with this one. With this, customers using non-AI backend/channel can use the existing types and serialize them to any format (bond,xml etc).
Note: Few items like updating public API in api analyzer is pending.

[ ] I ran Unit Tests locally.

For significant contributions please make sure you have completed the following items:

[ ] Design discussion issue #
[ ] Changes in public surface reviewed
[ ] CHANGELOG.md updated with one line description of the fix, and a link to the original issue.
[ ] The PR will trigger build, unit test, and functional tests automatically. If your PR was submitted from fork - mention one of committers to initiate the build for you.

@SergeyKanzhelev Pubic API files added back. Please continue reviewing.


[Event Request] Codeunit 22 Item Jnl.-Post Line - OnBeforeInsertItemLedgEntry

Hi, would it be possible to get an event OnBeforeInsertItemLedgEntry in Codeunit 22 Item Jnl.-Post Line, procedure InsertItemLedgEntry, like this :

?
Thanks

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


Set duckdb_api to nodejs

DuckDB 0.9.2 introduced PRAGMA user_agent composed of duckdb_api and custom_user_agent. This PR sets duckdb_api component to nodejs.

Any chance this can get into the next release?


[Doc] add tips for Pulsar tools

Preview looks good

@urfreespace @tuteng @Huanli-Meng can you help review? Thanks


Update to 1 in STEP and README.md

123

This is an <h1> header, which is the largest
This is an <h2> header
This is an <h6> header, which is the smallest