Suggestion for restructuring of EssoilDB Tables

observationsdata
oid ---- Primary Key(PF)---Auto increment(Observation id --to be separate for every field)
pid---- Foreign Key(FK)----plantid from plantdata
cid------FK----compound id from compounddata
percent
ppid-----FK------plant part id from plantpart
timeofexpt
biblioid-----FK-------bibliography id from bibliography
locid--------FK-----location id from locationdata

plantdata
pid-----PK-----Auto increment
pname---------  plant biological  name
psname-----plant synonym name
pfid------FK--------plant family id from plantfamily
pgid------FK--------plant group id from plantgroup
profilecode --------to be fetched from info_plant.csv

Compounddata
cid------PK----Auto increment
cname----------compound name
csname------------compound synonym name includes iupac name
cfid----FK------ compound family id from compoundfamily
cagroup-----separated by '#' [FK group]--- compound activity id from compoundactivity
smilescode
imageofstructure--- (will store image name with format e.g. image1.jpg)

bibliography
biblioid------PK--- Auto increment
doi
authorname
journalid-----FK--- journal id from journalname
articletitle
volumeinfo
pageinfo

Locationdata
locid------PK---Auto increment
locationofexpt
countryid-----FK----country id from countrydata
state
city
coordinates

The following tables are also needed to be created to avoid any duplication of data in fields in near future.....Plant part will be repeated any times in observationsdata.
For e.g.

leaf will be repeated every time and whenever new record has to be inserted it has to be manually entered leaf but if we have list already with us and leaf already exists in table then we don't need to enter it again... just fetch ppid from plantpart table and store it in observationsdata.
if India is already with us what's point of entering it again. Just fetch its id and assign it in locationdata table.

plantpart
ppid-----PK----Auto increment
ppname------plant part name

plantfamily
pfid-----PK-----Auto increment
pfname ------- plant family

plantgroup
pgid----PK----Auto increment
pgname--- plant group

compoundfamily
cfid------PK----Auto increment
cfname---- compound family

compoundactivity
caid ------PK----Auto increment
caname ----- compound activity e.g. anti-malaria

journalname
journalid------PK----Auto increment
journalname ----- journal name

countrydata
countryid------PK-----Auto increment
countryname----- country name

I comment inline...
observationsdata
oid ---- Primary Key(PF)---Auto increment(Observation id --to be separate for every field)
pid---- Foreign Key(FK)----plantid from plantdata
cid------FK----compound id from compounddata
percent
ppid-----FK------plant part id from plantpart
timeofexpt
biblioid-----FK-------bibliography id from bibliography
locid--------FK-----location id from locationdata

PMR: that is what was decided. The various id's will be repeated many times
plantdata
pid-----PK-----Auto increment
pname--------- plant biological name
psname-----plant synonym name
pfid------FK--------plant family id from plantfamily
pgid------FK--------plant group id from plantgroup

I think pfid and pgid can be separated - they are not part of the data.
profilecode --------to be fetched from info_plant.csv

NO. If I understand what profilecode is it has to be in observationsdata, else there is no way of grouping
cid and percent.
into separate subtables
Compounddata
cid------PK----Auto increment
cname----------compound name
csname------------compound synonym name includes iupac name

NO. compound may have many synonyms. How are these managed
cfid----FK------ compound family id from compoundfamily
this is not part of the data so could be separated
cagroup-----separated by '#' [FK group]--- compound activity id from compoundactivity
this is not part of the data so could be separated
smilescode
imageofstructure--- (will store image name with format e.g. image1.jpg)

bibliography
biblioid------PK--- Auto increment
doi
authorname

there are many authors per single DOI
journalid-----FK--- journal id from journalname
articletitle
volumeinfo
pageinfo

Locationdata
locid------PK---Auto increment
locationofexpt
countryid-----FK----country id from countrydata
state
city
coordinates

The following tables are also needed to be created to avoid any duplication of data in fields in near future.....Plant part will be repeated any times in observationsdata.
For e.g.
leaf will be repeated every time and whenever new record has to be inserted it has to be manually entered leaf but if we have list already with us and leaf already exists in table then we don't need to enter it again... just fetch ppid from plantpart table and store it in observationsdata.

I think I agree with this, but need to see formal example

if India is already with us what's point of entering it again. Just fetch its id and assign it in locationdata table.

I am confused. You must describe each table separately\

plantpart
ppid-----PK----Auto increment
ppname------plant part name

plantfamily
pfid-----PK-----Auto increment
pfname ------- plant family

plantgroup
pgid----PK----Auto increment
pgname--- plant group

compoundfamily
cfid------PK----Auto increment
cfname---- compound family

compoundactivity
caid ------PK----Auto increment
caname ----- compound activity e.g. anti-malaria

journalname
journalid------PK----Auto increment
journalname ----- journal name

countrydata
countryid------PK-----Auto increment
countryname----- country name


Tests failed after building on OSX

Failed 5 out of 123 tests
FAIL: /proxy/python/tests/test_serialization
FAIL: /proxy/java/tests/test_reflect
FAIL: /proxy/java/tests/test_primitive
FAIL: /proxy/java/tests/test_fields
FAIL: /proxy/java/tests/test_serialization
Any ideas?

I've seen this too (or some of them)

I haven't actually tested the java bindings on OSX, fortunately they aren't really useful for anything yet. But I will try to look into that. However the 1 python failure might actually be the java test of the same name failing, because of something about library symbols:
I left myself this comment:
/*!
 * Define the tokens used to declare a static block's function.
 * The address of the function is used to make the static fixture
 * class unique across the complete library + module address space.
 *
 * Clang can only use static, inline functions of the same name will overlap.
 * MSVC can only use inline because static cannot be used as a template argument.
 * And GCC can handle all possibilities: static, inline, and static inline.
 *
 * The specific reason for this implementation and its caveats
 * is becuase clang will cause symbol overlap for class and functions
 * with the same name across modules, even if they are not exported.
 */
#if defined(__clang__)
#define POTHOS_STATIC_FIXTURE_DECL static
#elif defined(_MSC_VER)
#define POTHOS_STATIC_FIXTURE_DECL inline
#elif defined(__GNUC__)
#define POTHOS_STATIC_FIXTURE_DECL static inline
#else
#define POTHOS_STATIC_FIXTURE_DECL
#endif

But that may not be any-more because of the new linker flags for making bundles:
if(APPLE)
    #fixes issue with duplicate module registry when using application bundle
    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flat_namespace")
    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -flat_namespace")
endif()

Also I should ask, what version of java is installed? I think we require 7 and up.

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Can't remember how this was installed...

Ton@TM-MBP:/Users/Ton>java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

Also i don't have a PothosGUI utility.

I believe I replicated the python failure. Basically, the issue that I mentioned about library symbols just needed to be used somewhere else as well. Should be ok on current master.

java 1.6 is too old. It still compiles because we dont check the version (we should). But there's some introspection classes that it needs from 1.7 and up.

Get extra information about the error with:
PothosUtil --self-test1 /proxy/java/tests/test_primitive

I will try to give jdk latest 1.8 a try tonight

Ton@TM-MBP:/Users/Ton>PothosUtil --self-test1
/proxy/java/tests/test_primitive
Testing /proxy/java/tests/test_primitive...
FAIL!
Exception: Pothos::Testing TestJava.cpp:172 -- Unexpected error after last
checkpoint; Error: Exception: Java::FindClass(java/util/Objects)
On Mon, Oct 19, 2015 at 7:25 PM, Josh Blum<EMAIL_ADDRESS>wrote:

I believe I replicated the python failure. Basically, the issue that I
mentioned about library symbols just needed to be used somewhere else as
well. Should be ok on current master.
java 1.6 is too old. It still compiles because we dont check the
version (we should). But there's some introspection classes that it needs
from 1.7 and up.
Get extra information about the error with:
PothosUtil --self-test1 /proxy/java/tests/test_primitive
I will try to give jdk latest 1.8 a try tonight
—
Reply to this email directly or view it on GitHub
https://github.com/pothosware/pothos/issues/34#issuecomment-149304663.

Re-downloaded the source and re-built. I get to this point:
Generating moc_MyPlotUtils.cpp
[ 43%] Built target PothosPlotterUtils_automoc
Scanning dependencies of target PothosPlotterUtils
[ 44%] Building CXX object plotters/CMakeFiles/PothosPlotterUtils.dir/PlotterUtils/MyPlotPicker.cpp.o
In file included from /Users/Ton/pothos/plotters/PlotterUtils/MyPlotPicker.cpp:4:
/Users/Ton/pothos/plotters/PlotterUtils/MyPlotPicker.hpp:6:10: fatal error: 'qwt_plot_zoomer.h' file not found
#include <qwt_plot_zoomer.h>
         ^
1 error generated.
make[2]: *** [plotters/CMakeFiles/PothosPlotterUtils.dir/PlotterUtils/MyPlotPicker.cpp.o] Error 1
make[1]: *** [plotters/CMakeFiles/PothosPlotterUtils.dir/all] Error 2
make: *** [all] Error 2

Any ideas?

/Users/Ton/pothos/plotters/PlotterUtils/MyPlotPicker.hpp:6:10: fatal error: 'qwt_plot_zoomer.h' file not found
#include <qwt_plot_zoomer.h>

Not sure, can you post the configure output from cmake? It looks like it picked up an older version of qwt on the system. But it should be checking the version and using the installed qwt if possible, and otherwise using an internal copy in a git submodule.

Ton@TM-MBP:/Users/Ton/pothos/build>sudo port install py27-pyqwt
Error: Unable to execute port: Can't install qt4-mac because conflicting ports are active: qt5-mac

Good news then. theres no need for python for any of the graphics. So py27-pyqwt isnt a requirement.  Qwt is an optional dependency. Not sure about qt4 vs qt5 conflicting. qt5 is definitely a requirement for the graphics stuff. Homebrew let me have both, not sure about mac ports.

Error: Exception: Java::FindClass(java/util/Objects)

java/util/Objects isnt present in 1.6, but is in newer javas. I suspect a java configuration problem with multiple versions. I have the same issue myself FWIW, still not sure exactly whats wrong. Keep in mind the java bindings are useless right now, so definitely don't stress. But I do appreciate the reports.

You can have both qt5 and qt4 on Mac, but you may end up with conflicts since it will only link one of those and you may get the wrong set of header files without the correct include paths.
Fortunately it's easy to remove and reinstall them, so I have done that at times to help make sure it's the conflict that is the problem. You may need to run "brew linkapps qt5" too

OK, i am now installing qt4-mac from MacPorts and qt5 from the native QT installer from http://www.qt.io/download-open-source/#section-2. Let's see if that works.
Also, i am using java 7, not 6. See above.
Eehhhmmm....

QWT_VERSION_STRING:
-- QWT_INCLUDE_DIRS: /opt/local/include/qwt
-- QWT_LIBRARIES: /opt/local/lib/libqwt.dylib

Heh, so it looks like QWT_VERSION_STRING passes the if (QWT_VERSION_STRING LESS "6.1") when its empty. Just for reference, what version is your qwt install and is there a macro in /opt/local/include/qwt/qwt_global.h called #define QWT_VERSION_STR?
As a side note, I know not everyone does homebrew, but there is a homebrew tap: https://github.com/pothosware/homebrew-pothos/wiki And qt4 and qt5 both come prebuilt in "bottles", so the install went fairly quick.

I can see that you include qwt 6 in ../pothos/plotters/qwt-6.1.2/src. Why is it not picking up qwt_plot_zoomer.h from there?
I have qwt5 installed.
I had terrible problems in the past running homebrew and macports side by side so i don't want to go that road again.

The build supports using an installed qwt if the version is acceptable. For some reason the version information isn't getting extracted, so the following build system code falls through incorrectly:
if (QWT_FOUND)
    message(STATUS "QWT_VERSION_STRING: ${QWT_VERSION_STRING}")
    if (QWT_VERSION_STRING LESS "6.1")
        set(QWT_FOUND FALSE)
        message(STATUS "Qwt older than v6.1 - using built-in Qwt")
    endif()
else (QWT_FOUND)
    message(STATUS "Qwt not found - using built-in Qwt")
endif (QWT_FOUND)

I can change the logic to treat an empty version string as not found -- problem solved. I'm just curious why the version extraction fails. Its as if /opt/local/include/qwt/qwt_global.h seems to be missing #define QWT_VERSION_STR But I think series qwt5 should have this: https://github.com/sikoragmbh/qwt/blob/master/tags/qwt-5.2.1/src/qwt_global.h#L23
diff --git a/plotters/CMakeLists.txt b/plotters/CMakeLists.txt
index d7c260a..d8c40a5 100644
--- a/plotters/CMakeLists.txt
+++ b/plotters/CMakeLists.txt
@@ -46,6 +46,10 @@ find_package(Qwt)

 add_definitions(-DQWT_DLL)

+if (NOT QWT_VERSION_STRING)
+    set(QWT_FOUND FALSE)
+endif()
+
 if (QWT_FOUND)
     message(STATUS "QWT_VERSION_STRING: ${QWT_VERSION_STRING}")
     if (QWT_VERSION_STRING LESS "6.1")

By copying everything from ./pothos/plotters/qwt-6.1.2/src into /opt/localinclude/qwt i got passed the qwt_plot_zoomer.h issue.
Now i get this:
Scanning dependencies of target PothosPlotterUtils
[ 44%] Building CXX object plotters/CMakeFiles/PothosPlotterUtils.dir/PlotterUtils/MyPlotPicker.cpp.o
[ 44%] Building CXX object plotters/CMakeFiles/PothosPlotterUtils.dir/PlotterUtils/MyPlotUtils.cpp.o
[ 44%] Building CXX object plotters/CMakeFiles/PothosPlotterUtils.dir/PothosPlotterUtils_automoc.cpp.o
make[2]: *** No rule to make target `/opt/local/lib/libqwt.dylib', needed by `plotters/libPothosPlotterUtils.0.dylib'.  Stop.
make[1]: *** [plotters/CMakeFiles/PothosPlotterUtils.dir/all] Error 2
make: *** [all] Error 2

Copying over the headers would at best create a mismatched install of qwt headers and library -- and lots of segfaults. I'm not really sure what of qwt was installed in /opt/local, but at this point its probably best to delete everything qwt in /opt/local, reconfigure pothos, and everything should build just fine with the internal qwt copy.

Quick update:

Moving the java issue to a new bug tracker: https://github.com/pothosware/pothos-java/issues/4 I wouldnt worry about it, but so we dont forget.
The symbol related bug that caused the python failure when java was installed is fixed: https://github.com/pothosware/pothos/commit/8aaf336b610bf19e31c08838fe6be75266348a9f
And just in case the FindQwt has this sort of false positive again, I added a work-around to fall back to the internal copy: https://github.com/pothosware/pothos/commit/8b8ffc80b7b68eeb7eb753983ac50ab0b23e5dad

I removed all qwt as you suggested and built from scratch.
Almost there:
[ 85%] Building CXX object python/TestBlocks/CMakeFiles/PythonTestBlocks.dir/ForwarderFactory.cpp.o
[ 86%] Building CXX object python/TestBlocks/CMakeFiles/PythonTestBlocks.dir/SimpleSignalEmitterFactory.cpp.o
[ 86%] Building CXX object python/TestBlocks/CMakeFiles/PythonTestBlocks.dir/SimpleSlotAcceptorFactory.cpp.o
[ 86%] Building CXX object python/TestBlocks/CMakeFiles/PythonTestBlocks.dir/PythonTestBlocksDocs.cpp.o
[ 86%] Linking CXX shared module libPythonTestBlocks.so
[ 86%] Built target PythonTestBlocks
[ 86%] Linking CXX shared module libJavaSupport.so
ld: file not found: @rpath/libawt.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [java/libJavaSupport.so] Error 1
make[1]: *** [java/CMakeFiles/JavaSupport.dir/all] Error 2

It does need JDK for the java bindings. What changed since the last time when java stuff built correctly? Anyway, if you want to skip building java, just pass the following to cmake:
cmake -DENABLE_JAVA=OFF

I removed everything qwt related
I activated the qt5-mac port
I replaced JRE 1.7 with JDK 1.8
I pointed CMAKE_PREFIX_PATH to /opt/local/libexec/qt5-mac
Cleaned out the source directory and pulled down the git again
Results:
Failed 5 out of 125 tests
  FAIL: /proxy/java/tests/test_containers
  FAIL: /proxy/java/tests/test_reflect
  FAIL: /proxy/java/tests/test_primitive
  FAIL: /proxy/java/tests/test_fields
  FAIL: /proxy/java/tests/test_serialization

But that's a later issue.
It still didn't build PothosGui though. Have to do that manually.
But....

Now i only need to learn how to use this stuff. ;-)

Glad to see it working

It still didn't build PothosGui though. Have to do that manually.

What did you mean by manually. Setting the CMAKE_PREFIX_PATH for qt?

Exception: activateStream failed

Looks like an issue with the SDR Play driver: mir_sdr_Init fails. No idea.

I mean that i was expecting, when i build fro mthe pothos main branch, that PothosGui would have been built as well. It doesn't, even though the configure step tells me it should. Or at least i cannot find the binary on my system.
I had to clone the PothosGui git and build the GUI from there.

I mean that i was expecting, when i build fro mthe pothos main branch, that PothosGui would have been built as well. It doesn't, even though the configure step tells me it should. Or at least i cannot find the binary on my system.
I had to clone the PothosGui git and build the GUI from there.

Ok I get it now.. though I have never seen that happen.  If you happen to rebuild and this is a problem again, send a text dump of the cmake output, make output, and install_manifest.txt Should be easy to figure out.
As far as the original unit test failures, I fixed one of them, and I opened up a new tracker for the java thing. So I'm closing out this issue now.


Make iron router i18n retain user language between page reloads

This can be already achieved by using some sort of storage (whether user sessions or client side cookies) and getLanguage/setLanguage overrides but it would be nice to offer the basic functionality that everybody is going to need out of the box.

I think the only thing needed here is a simple persistence mechanism (default cookie but overridable) in setLanguage/getLanguage implementation.


feat(basic-auth): added custom response message option

The author should do the following, if applicable

[x] Add tests
[x] Run tests
[x] bun run format:fix && bun run lint:fix to format the code
[x] Add TSDoc/JSDoc to document the code

@marceloverdijk Thank you for the PR!
Regarding the invalidUserMessage function, I think allowing returning string | object is not a good design. It might be useful for some users, but this should be more flexible and reduce the if and type of statement to detect the types.
I think the following is best:
type CustomMessageFunction = (c: Context) => Response | Promise<Response>

Returning Response is the most flexible, and the user can fully customize the response. Enable to this, you can change the following:
diff --git a/src/middleware/basic-auth/index.ts b/src/middleware/basic-auth/index.ts
index b9b9f359..f69cc049 100644
--- a/src/middleware/basic-auth/index.ts
+++ b/src/middleware/basic-auth/index.ts
@@ -9,19 +9,21 @@ import type { MiddlewareHandler } from '../../types'
 import { auth } from '../../utils/basic-auth'
 import { timingSafeEqual } from '../../utils/buffer'

+type CustomMessageFunction = (c: Context) => Response | Promise<Response>
+
 type BasicAuthOptions =
   | {
       username: string
       password: string
       realm?: string
       hashFunction?: Function
-      invalidUserMessage?: string | object | Function
+      invalidUserMessage?: CustomMessageFunction
     }
   | {
       verifyUser: (username: string, password: string, c: Context) => boolean | Promise<boolean>
-      invalidUserMessage?: string | object | Function
+      invalidUserMessage?: CustomMessageFunction
     }

 /**
@@ -73,10 +75,6 @@ export const basicAuth = (
     options.realm = 'Secure Area'
   }

-  if (!options.invalidUserMessage) {
-    options.invalidUserMessage = 'Unauthorized'
-  }
-
   if (usernamePasswordInOptions) {
     users.unshift({ username: options.username, password: options.password })
   }
@@ -104,23 +102,15 @@ export const basicAuth = (
     }
     // Invalid user.
     const status = 401
-    const headers = {
-      'WWW-Authenticate': 'Basic realm="' + options.realm?.replace(/"/g, '\\"') + '"',
+    ctx.status(401)
+    ctx.header('WWW-Authenticate', 'Basic realm="' + options.realm?.replace(/"/g, '\\"') + '"')
+
+    const defaultCustomMessage = (c: Context) => {
+      return c.text('Unauthorized')
     }
-    const responseMessage =
-      typeof options.invalidUserMessage === 'function'
-        ? await options.invalidUserMessage(ctx)
-        : options.invalidUserMessage
-    const res =
-      typeof responseMessage === 'string'
-        ? new Response(responseMessage, { status, headers })
-        : new Response(JSON.stringify(responseMessage), {
-            status,
-            headers: {
-              ...headers,
-              'content-type': 'application/json; charset=UTF-8',
-            },
-          })
+
+    const customResponse = options.invalidUserMessage ?? defaultCustomMessage
+    const res = await customResponse(ctx)
     throw new HTTPException(status, { res })
   }
 }

I'd like to hear other's opinions: cc @usualoma

@yusukebe but in the proposed case is there some helper available in Hono to create a json Response with the correct context-type set?

@yusukebe I created this alternative PR with the changes you suggested: https://github.com/honojs/hono/pull/3380

@yusukebe as we decided to close #3380 , let's discuss here what is needed to get #3371 going again.

Hi @marceloverdijk
I think almost all are good. I've left a comment. Check it.

Hi @marceloverdijk
Looks good to me! Let's go with this. I'll merge this into the next later.


s3fs: supporting find() on arbitrary prefixes (like glob('a/b/prefix*')) with better performance

When listing only files that start with a certain prefix foo/bar/b* glob() is handy though in terms of s3 (and also other clouds) it is not as performant as just doing this on the server-side with not adding the final / suffix. Especially when the parent directories size is greater than a single listing call (1024). Here is an example;
import time
import secrets
from s3fs import S3FileSystem
from pprint import pprint
from concurrent.futures import ThreadPoolExecutor, as_completed

bucket = 'temp/cache/00/'

def worker(fs, bucket, prefix=''):
    fs.touch(bucket + prefix + secrets.token_hex())

def make_files():
    fs = S3FileSystem()
    with ThreadPoolExecutor(max_workers=8) as executor:
        futures = [
            executor.submit(worker, fs, bucket)
            for _ in range(9900)
        ]
        futures += [
            executor.submit(worker, fs, bucket, '0')
            for _ in range(100)
        ]

        for n, future in enumerate(as_completed(futures), 1):
            future.result()
            print(f'{n}/10000 completed')

it creates 10_000 files where 100 of them are guaranteed to start with 0 prefix and 9900 random files that can start with anything. In the following case if I do a glob('temp/cache/00/0*') it takes about 22 seconds compared to a single find call with a new option (use_prefix: bool = True) it takes about 3~ seconds find('temp/cache/00/0', use_prefix=True).

Agreed that use_prefix can be useful for any of the listings methods, as you show. We already have the logic to make this work, I thought?
It does come at the disadvantage that these partial listings would not be cached, so you could end up spending more time in some cases.

We already have the logic to make this work, I thought?

I don't think there is any options to do so, at least not within the public api.

It does come at the disadvantage that these partial listings would not be cached, so you could end up spending more time in some cases.

At least in our case, we don't use the dircache that much so it won't be affecting us. And since this is going to be a new option, there won't be any regressions either.

So apparently adlfs already does this, but the behaviour and the options differ from the implementation that I proposed.  I think it might be better to follow it.
https://github.com/dask/adlfs/blob/96958331854c5a67917d4c9a802a62720d091374/adlfs/spec.py#L901-L918
So what they do is that, for searching for a/b/c/test_* you do fs.find('a/b/c/', prefix='test_'). The default prefix is ""so if you don't specify it, it will just list everything under it. However, the major difference is that, if there is a file that has the same exact name with the prefix under the original path (in this case if there is a file named/a/b/c/test_`, it won't be returned) , then it won't be yielded. I don't know much about the reasoning though it would've been more compliant if it were to return those. In any case, I believe that if we are going to adopt this methodology, it is better for downstream clients to offer a unified API for major object based storages that support the same optimization (s3fs, gcsfs, adlfs).
What do you think @martindurant?

Yes, I totally agree that uniformity is very important here, we should strive for it. I think I like how they have names things better. It would be worth checking what happens if prefix contains a "/": should be an exception?
As for whether the exact match is returned, I think I agree that it should - it may be that the current behaviour in adlfs is not intentional.
Obviously we'll have to port whatever we do here to gcsfs too.

It would be worth checking what happens if prefix contains a "/": should be an exception?

I'd say we should leave it as an implementation detail (to the cloud provider).

As for whether the exact match is returned, I think I agree that it should - it may be that the current behaviour in adlfs is not intentional.

Agreed.

Obviously we'll have to port whatever we do here to gcsfs too.

Indeed, that is on my plans. Will adjust the existing s3fs PR to reflect that.

Obviously we'll have to port whatever we do here to gcsfs too.

@martindurant gcsfs already supports this as is, but it doesn't have tests / docs. I don't know how to generate the casettes though if you'd like to add these, I guess it makes sense to just copy the stuff here and replace s3 with gs. I can also do that if you volunteer for VCR generation.


Trigger search topic event on autocomplete for search topics

Trigger an event when searching for topics using the autocomplete component, so it can be tracked with analytics. It uses a triggerEvent function which acts as a polyfill for browsers that don't support CustomEvents..
It can be used/tested as shown in the example below:
var autocomplete = document.querySelector('[data-autocomplete-type="topics"]')

autocomplete.addEventListener('search-topic', function(e){
  console.log(e.detail.topicNames.join(' > '))
})

Trello card

@benthorner added the event listener to this PR. let me know if we need to update it in any way to make it consistent with how we currently track things.

@benthorner I think this is now good for a final review.


On purchase, include player id, and total cost in the CLI message

Player run store

Purchasing BACON (5 @ 100 = 500) from #3272033...

NPC store

Purchasing chewing gum on a string (2 @ 47 = 94)...

I'm neutral on this change, learning towards reject. I'll let someone else weigh in.

The change does break some session log parsing.
I wouldn't have spent the time to do it but I can lean towards approval.

The change does break some session log parsing.

To be clear, you mean session log parsing by third parties?
This shouldn't effect the sessions file I believe, and the CLI has a max line limit regardless.

The change does break some session log parsing.

To be clear, you mean session log parsing by third parties? This shouldn't effect the sessions file I believe, and the CLI has a max line limit regardless.

Definitely third party parsers.


'is' should be 'ic'

https://github.com/vim/vim/blob/5f91e74bf968c9033474086b2d9cb457281c8aa6/runtime/tutor/tutor#L822
The shorthand for 'incsearch' is 'ic' not 'is'.
This doesn't really affect the overall tutorial because setting 'inner sentence' doesn't change the search in a significant way but it may be confusing to those paying attention.

'ic' is short for 'ignorecase': :h 'ic'
'is' is short for 'incsearch': :h 'is'

This was a mistake and can be deleted.


(deps) Bump rocksdb v8.3.2

Bump Rocksdb v8.3.2
In this release:

(perf) Improved the I/O efficiency of prefetching SST metadata by recording more information in the DB manifest
(perf) CPU features are no longer detected at runtime nor in build scripts, but in source code using common preprocessor defines
(bug) Delete an empty WAL file on DB open
(bug) Delete temp OPTIONS file on DB open
(bug) Fixed higher read QPS during DB::Open()
(bug) Reduced cases of illegally using Env::Default()
(feat) New statistics tickers
(feat) Add new API DB::ClipColumnFamily to clip the key in CF to a certain range. It will physically deletes all keys outside the range including tombstones.
(feat) Add MakeSharedCache() construction functions to various cache Options objects
(feat) Changed the meaning of various Bloom filter stats

Full release doc: https://github.com/facebook/rocksdb/releases/tag/v8.3.2

In this version of rocksdb changes a compiler flag PORTABLE, so I changes it into Cmake and Docker for default value 0. In this case all of features (related to CPU) are in runtime.
So, now PORTABLE option must be:

0 and compiler work as best as it can
1 usually nothing to do; compiler default is typically the most general
 and we can set a CPU family for build best optimal code, e.g.: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client rocketlake icelake-server cascadelake tigerlake cooperlake sapphirerapids alderlake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm x86-64 x86-64-v2 x86-64-v3 x86-64-v4 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 native

Detailed, we can see in this code diff: https://github.com/facebook/rocksdb/pull/11419/commits/5cb625142c77c84111f1f65b6f35f2318c602802

Merging...
Thank you!


Tell Bors not to merge pull requests with the DO NOT MERGE label

This pull request adds the DO NOT MERGE label to the block_labels list in bors.toml.
If a pull request has the label DO NOT MERGE and a user comments bors r+ on it, Bors will refuse to merge the pull request.
Thus, by adding the DO NOT MERGE label to a pull request, we can prevent accidentally merging "work in progress" pull requests and other pull requests that are not ready to be merged.

bors r+


rds tagmap not populated

rds tags are not being collected as part public/unencrypted databases

Fixed by #44


[v1.0.0-beta.2 (Windows)] Stuck in chunk assets optimization when parallelization is enabled (options.parallel)

webpack 3.5
windows 7

Please provide more info on your setup webpack.config.js package.json  && Error Logs etc aswell

+1 it's not working under Windows 10 CU - tested in two different systems with different processors and SSD/HDDs. The webpack process takes about 1GB memory but 0% CPU utilization.
This is the uglify config:
          uglifyOptions: {
            compress: { warnings: false },
          },
          sourceMap: true,
          parallel: {
            cache: path.join(CACHE_DIR, 'uglifyjs'),
            workers: true,
          },

Turning parallel off via parallel: false lets me build it. Setting parellel:true and workers: false also makes it work. Could it be an issue with the worker-farm?

@kumarharsh @jinker known issue, should be fixed in https://github.com/webpack-contrib/uglifyjs-webpack-plugin/pull/108. Because parallel (workers) don't use as expected.

I experience similar issues with parallel enabled.

@WillooWisp https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues/118#issuecomment-329120704

@evilebottnawi great job on the PR. Quick question: does it address parallelization issue in Windows where the webpack process just hangs?

@kumarharsh this PR should fix this, but need tests, can you test this PR on windows?

Unfortunately, seems like it gets stuck at the same place. The children spawned by worker-farm seem to not respond - no CPU is being used, and my build process is stuck at the uglify step. The Memory value also is static for a long time.

@kumarharsh can you create minimum reproducible test repo?

We definitely need a repro repo here, there is a bug in somewhere either in the plugin or worker-farm on windows (7)

@jinker friendly ping, can you try latest version?

just to chime in, We encountered the same issue with our CI environment:
Windows Server 2012 R2 / Teamcity
Node 6.4.0 with included NPM.

OK, I will try later.

We have same problem with the following configuration:
Windows 10 1703
webpack 3.8.1
<EMAIL_ADDRESS>

@jinker @vkrol @jinker can you create minimum reproducible test repo?

We have been encountering the same issue on Windows 10.
With parallel turned on the dist/uglify/worker.js will successfully minify the file and process.send() the reply back to the parent, but the parent never receives the message from the forked process.
forked.child.on('message', this.receive.bind(this)) is never invoked in worker-farm/lib/farm.js even though the message is sent from the child fork.
It appears as if the IPC is not working between the child and parent processes. This may be due to Windows not handling large amounts of IPC traffic correctly.
However if I add the maxConcurrentCallsPerWorker: 1 option when creating the worker farm in dist/uglify/index.js then it appears to complete successfully.
this.workers = (0, _workerFarm2.default)({
  maxConcurrentWorkers: this.maxConcurrentWorkers,
  maxConcurrentCallsPerWorker: 1
}, workerFile);

Adding maxConcurrentCallsPerWorker: 1 prevents the parent from sending multiple requests via IPC before the child has responded.
If you are experiencing this issue can you try adding maxConcurrentCallsPerWorker: 1 to your ./node_modules/uglifyjs-webpack-plugin/dist/uglify/index.js and see if it fixes the issue for you ?
Windows 10 1511
webpack: 3.8.1
uglifyjs-webpack-plugin: 1.1.0
nodejs 8.9.0

@brentwilton Feel free to open a PR with this change for further discussion

Released in v1.1.0 please test

Using 1.1.2 I have this issue in windows 10 (WSL).

In last version everything works the same means not working with parallel option, so this issue should be reopened at least.  I'm using it on BashOnWindows Windows 10, but everything works if I run it as normal windows process.

This is check should be improved I think. As it will faild in Windows's Ubuntu, but it's still Windows.

This should be reopene, still facing this with webpack 4 and version 1.2.5

@lednhatkhanh no, original issue was solved, feel free to open new issue with minimum reproducible test repo. Thanks!


Local Storage

Value proposition
As a user,
I want to to keep my bookmarks after a page refresh
so that I do not have to repeat my selection every time I use the app.
Acceptance criteria

[ ] If the user has set bookmarks, the corresponding cards are still marked after the page has been reloaded.

Tasks

[ ] Create new feature branch (localstorage)
[ ] Add local storage
[ ] Write test

Simply a nice one :slightly_smiling_face:!


Clarify the behaviour of iter_many in the docs

Add the following message:
Items are returned in the order of the list of entities.
Entities that don't match the query are skipped.

Additionally, the docs in iter.rs and state.rs were updated to match those in query.rs.

Chiming in briefly to say that this is information I really wanted when I was browsing these docs recently. Will look a bit closer later.

bors r+


Labelling vs ground truth

Hi, Just a quick question.
Where can I get confirmation of ground truth labels for your datasets?
Specifically BreastMNIST and AdrenalMNIST3D.

What do you mean by “confirmation”? Probably you can check the information in the info.py

What do you mean by “confirmation”? Probably you can check the information in the info.py

Thank you.


Image_stylization error :IndexError: index 1 is out of bounds for axis 0 with size 1

I tried on Ubuntu 14 (64bit)
(magenta) rupesh@rupesh-VirtualBox:~/miniconda2/bin$ sudo python image_stylization_transform.py --numstyles=10 --checkpoint=multistyle-pastiche-generator-monet.ckpt --input_image=dk.jpg --which_styles="{0:0.1,1:0.1,2:0.1,3:0.1,4:0.1,5:0.1,6:0.1,7:0.1,8:0.1,9:0.1}" --output_dir=/home/rupesh/miniconda2/bin/out --output_basename="all_monet_styles"
OpenBLAS : Your OS does not support AVX instructions. OpenBLAS is using Nehalem kernels as a fallback, which may give poorer performance.
Traceback (most recent call last):
File "image_stylization_transform.py", line 148, in
console_entry_point()
File "image_stylization_transform.py", line 144, in console_entry_point
tf.app.run(main)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 30, in run
sys.exit(main(sys.argv[:1] + flags_passthrough))
File "image_stylization_transform.py", line 137, in main
_multiple_styles(image, which_styles, output_dir)
File "image_stylization_transform.py", line 106, in _multiple_styles
mixture = _style_mixture(which_styles, FLAGS.num_styles)
File "image_stylization_transform.py", line 80, in _style_mixture
mixture[index] = which_styles[index]
IndexError: index 1 is out of bounds for axis 0 with size 1

Try with --num_styles instead of --numstyles. It should work.

@jveres  thanks it just worked :+1:


datepicker should allow saving as String instead of Date

The datepicker/datepickerpopup component is able to read a string from the model (for example: '2013-11-09'), parse it and display it. But when it saves its value to the model, it saves it as a Date object.
It would be extremely useful to be able to specify how the date should be stored (i.e. as a Date, or as a String with a given format, different from the format used to display the date)

I will put here example for next generations:
angular.module('myApp')
    .directive('datepickerPopup', function (){
        return {
            restrict: 'EAC',
            require: 'ngModel',
            link: function(scope, elem, attrs, ngModel) {
                ngModel.$parsers.push(function toModel(date) {
                    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
                });
            }
        }
    });```

With the 0.14 update of using the uib- prefix, @pnowy's directive would be updated to the following:
angular.module('myApp')
    .directive('uibDatepickerPopup', function (){
        return {
            restrict: 'EAC',
            require: 'ngModel',
            link: function(scope, elem, attrs, ngModel) {
                ngModel.$parsers.push(function toModel(date) {
                    return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
                });
            }
        }
    });

+1

Sorry to resurrect this rather old thread, but I can't get it to work:
When I change the value using either the popup or the input, the DOM is correctly updated, but the model value is set to undefined...

@jocelynlecomte. your best bet here is to first search SO for your question and if it's not there, create a new post that shows you've thoroughly tried to solve the issue.  commenting on really old and closed issues is a really good way for your question to be overlooked.

This solution does not work with version 1.1.0 for me.
It works with v0.14 in my previous project on angular 1.3. But now I use angular 1.4.8.
Any suggestions? I need a string date to put it in the ui-router's query string.

@alexcrack, please read my instructions above for how to ask for help and refrain from asking for help on closed threads as this is a good way for them to be missed or ignored.  Thanks.

May be usefull for someone - just inject uibDateParser and use format and parse to convert Date object to string and backwards


No instruction for overviews. "./commons/overviews/"

You forgot to add instractions for overviews. The "./commons/overviews/" folder has a sonicmania.overview.md file. I copied it to the same place and just changed the name and its content for GTA 3.

Indeed, I added the usage description of games overview file! Thanks!


Error in validate.CleanGeometry on fractional coordinates

The test case for this can be found here.
To run this:

checkout the intersect_benchmark branch from my repo
cd tegola/maths/validate
Run: go test -v .

At this time the test is only printing results and isn't flagging the tests as failures.
Input polygon and extent:
		// fractional coordinate
		// if you multiply everything by 10 (remove fraction), then this test case
		// works just fine.
		{
			basic.Polygon { basic.Line {
					basic.Point {.1, 0},
					basic.Point {1, 0},
					basic.Point {0, 1},
			} },
			geom.NewExtent([2]float64{0, 0}, [2]float64{.5, .5}),
		},

The winding order and POLYGON vs. MULTIPOLYGON aren't really relevant, the relevant part is (0.05, .5) point vs (0, 0.5) point.
Expected: POLYGON ((0.5 0,0.1 0,0.05 0.5,0.5 0.5))
Actual: MULTIPOLYGON (((0 0.5,0.1 0,0.5 0,0.5 0.5)))

@jasonsurratt I think this issue better fits in the geom package now. Moving it over.


Improve / Break up Pilot integration tests

Context:
The second issue as documented in https://docs.google.com/document/d/1x2gkagFfqPpb0GWFTmw1k8nFP1dZ7UQiujRpbpNlXC4/edit#heading=h.x9snb54sjlu9
Suggestions:

Move the existing Pilot integration tests that use GKE to Post-Submit (or to the E2E suite)
Change the existing Pilot integration tests to use the lightweight integration test framework (https://github.com/istio/istio/pull/1675) to bring up standalone pilot.

Circle CI can run the existing e2e tests in about 3 minutes. Is that acceptable enough?

(these are tests that use minikube and do not use bazel)

Circle CI is currently not required, but maybe we can rely on that for now instead of spending effort on suggestion #2. I'll let Nathan decide.
Also I suppose it is not a bad idea to run these tests in GKE as well for environments coverage. Hence suggestion #1.

hklai@ based on your comment above it seems that the real goal here is to make the existing integration tests run on a variety of platforms (stand-alone, minicube, GKE) ... does that sound right? If so, maybe we rename/re-describe this issue?

The bottom line goal here is to remove the GKE dependency from the Pilot presubmit test that runs in Prow, and preserve the same or similar coverage.
Implement multi-environments test support is a bonus and it actually applies to Istio across the board.

@hklai I believe the duration on prow has been greatly reduced since #3663 was submitted.  Is that sufficient for this?

A lot had changed since I opened this. circle ci tests are now the presubmit standard and prow tests are not required anymore.
However, pilot e2e seems to be failing for most PRs.
https://prow.istio.io/?type=presubmit&job=istio-pilot-e2e
Is that expected?

@hklai AFAIK, prow has been broken all week ... not just for that test.

@sebastienvas is the pilot e2e failures related to the other post submit failures you were looking at today?

Pilot e2e tests are again passing and they now take around 10 mins only.
https://prow.istio.io/?type=presubmit&job=istio-pilot-e2e
Closing this now since the original problem no longer exists.


build(deps): bump image_optimizer version

fix https://github.com/jtescher/carrierwave-imageoptimizer/issues/36

Hello Good Sir @lcampanari ,
Could you please also address this https://github.com/jtescher/carrierwave-imageoptimizer/issues/38 in your PR?
Thanks!

Hello @lcampanari and @nachiket87,
Do you have any updates on this? Will it be merged?
Thanks

Hi @lcampanari and @nachiket87,
Do you have any updates on this?
Thanks!

@jtescher could you merge please?

Is this project no longer maintained?


Uncaught Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.

Uncaught Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.
Atom Version: 0.155.0
System: Mac OS X 10.10.1
Thrown From: Atom Core
Steps To Reproduce

...
...

Stack Trace
At /Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/invariant.js:56

Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.
  at invariant (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/invariant.js:42:15)
  at [object Object].ReactBrowserComponentMixin.getDOMNode (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactBrowserComponentMixin.js:38:9)
  at [object Object].boundMethod [as getDOMNode] (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1295:21)
  at [object Object].module.exports.React.createClass.isVisible (/Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:1006:19)
  at [object Object].boundMethod [as isVisible] (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1295:21)
  at [object Object].module.exports.React.createClass.refreshScrollbars (/Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:1161:16)
  at [object Object].boundMethod [as refreshScrollbars] (/Applications/Atom.app/Contents/Resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1295:21)
  at /Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:875:19

Just happened on v0.174.0, while using Ctrl+Space 'auto-complete'.

Does it happen all the time you autocomplete? What system are you on?

@benogle, no just once. I was pressing and cancelling 'autocomplete' really quick :smile_cat:.
I am using GNU Operating System (Archlinux distribution).

Atom Version: 0.176.0
System: Ubuntu 14.04 LTS
Happened again while using Ctrl+Space 'auto-complete', repeatedly.
Stack Trace
At /opt/atom/resources/app/node_modules/react-atom-fork/lib/invariant.js:56

Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.
  at invariant (/opt/atom/resources/app/node_modules/react-atom-fork/lib/invariant.js:42:15)
  at [object Object].ReactBrowserComponentMixin.getDOMNode (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactBrowserComponentMixin.js:38:9)
  at [object Object].boundMethod [as getDOMNode] (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1295:21)
  at [object Object].ReactCompositeComponent.createClass.componentDidUpdate (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactDOMInput.js:101:25)
  at CallbackQueue.mixInto.notifyAll (/opt/atom/resources/app/node_modules/react-atom-fork/lib/CallbackQueue.js:75:22)
  at ReactReconcileTransaction.ON_DOM_READY_QUEUEING.close (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactReconcileTransaction.js:88:26)
  at ReactReconcileTransaction.Mixin.closeAll (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:214:42)
  at ReactReconcileTransaction.Mixin.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:155:16)
  at ReactUpdatesFlushTransaction.Mixin.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:141:20)
  at ReactUpdatesFlushTransaction.mixInto.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:98:38)
  at /opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:176:19
  at ReactUpdatesFlushTransaction.NESTED_UPDATES.close (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:55:7)
  at ReactUpdatesFlushTransaction.Mixin.closeAll (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:214:42)
  at ReactUpdatesFlushTransaction.Mixin.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:155:16)
  at ReactUpdatesFlushTransaction.mixInto.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:98:38)
  at Object.flushBatchedUpdates (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:176:19)
  at ReactDefaultBatchingStrategyTransaction.Mixin.closeAll (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:214:42)
  at ReactDefaultBatchingStrategyTransaction.Mixin.perform (/opt/atom/resources/app/node_modules/react-atom-fork/lib/Transaction.js:155:16)
  at Object.ReactDefaultBatchingStrategy.batchedUpdates (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactDefaultBatchingStrategy.js:70:19)
  at Object.enqueueUpdate (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactUpdates.js:209:22)
  at [object Object].ReactCompositeComponentMixin.forceUpdate (/opt/atom/resources/app/node_modules/react-atom-fork/lib/ReactCompositeComponent.js:1232:18)
  at /opt/atom/resources/app/src/text-editor-component.js:313:28

React is no longer used since https://github.com/atom/atom/pull/5293 so this issue can be closed.


Added a background that is suitable for light skin.

Previously the background for data makes the text hard to read on the light skin, so I added a new background image that activates when user does not have the pro skin.

Thank you!


Incomplete and Outdated Features in webapp-conversation Template Project

Issue: Incomplete and Outdated Features in webapp-conversation Template Project
Summary:
The webapp-conversation template project appears to be missing several key features and is not fully synchronized with the latest version of the Dify API and SDK. Specifically, the following issues have been identified:

Lack of Streaming Output: The current implementation does not support streaming output. Instead, it outputs all data at once during the onMessageEnd event. Although the ssePost function is present in the code, it does not seem to be functioning as expected.

Missing Citations and Attributions: The template does not display the source of the documentation (current message and historical messages).

No TTS (Text-to-Speech) Support: The template lacks support for TTS, which is a feature available in the latest Dify API.

Detailed Analysis:
Upon investigation, it was found that the ssePost function in the webapp-conversation template project only handles a limited set of events:

onData
onCompleted
onThought
onFile
onMessageEnd
onMessageReplace
onWorkflowStarted
onWorkflowFinished
onNodeStarted
onNodeFinished
onError

However, the latest version of the Dify API includes additional events that are not currently supported in the webapp-conversation template:

onIterationStart
onIterationNext
onIterationFinish
onParallelBranchStarted
onParallelBranchFinished
onTextChunk
onTTSChunk
onTTSEnd
onTextReplace
getAbortController

While some of these events may not be applicable to conversational applications, many of them are essential for fully utilizing the capabilities of the Dify API.
Additionally, the dify_client library (JavaScript SDK) used in the template project appears to be outdated and not synchronized with the latest Dify API.
Recommendations:

Update the ssePost Function: Ensure that the ssePost function in the webapp-conversation template project supports all relevant events from the latest Dify API.

Implement Streaming Output: Modify the implementation to support streaming output, allowing data to be sent incrementally rather than all at once.

Add Citations and Attributions: Implement functionality to display the source of the documentation (current and historical messages).

Include TTS Support: Add support for Text-to-Speech (TTS) using the onTTSChunk and onTTSEnd events.

Synchronize with Latest SDK: Update the dify_client library to the latest version and ensure that all features are fully supported in the webapp-conversation template project.

Conclusion:
The webapp-conversation template project is currently missing several key features and is not aligned with the latest Dify API and SDK. To fully leverage the capabilities of Dify, it is essential to update the template project to support all relevant events and features, including streaming output, citations and attributions, and TTS.

Note: This issue is intended to highlight the discrepancies and suggest improvements. No immediate action is expected, but it is recommended to address these issues in future updates.

Thank your for this detailed issue, mine is less detailed but I had the same questions : https://github.com/langgenius/webapp-conversation/issues/107


Update to CurationConcerns 1.5.0

Updates to the latest version of CurationConcerns, Closes #175.

Looks good to me, only one minor comment.

Thank you for this.  The Coveralls reports seem optimistic, but I cannot see how there are any missing RSpec suites which would lead me to doubt such a high coverage.

@drh @jrgriffiniii Moved some rake tasks around. How's it looking now?


Handle redirects in the pipeline

Fixes: https://github.com/Azure/azure-sdk-for-net/issues/22746

After this update, I assume I should remove my changes in Communications, correct?

After this update, I assume I should remove my changes in Communications, correct?

Correct. You would also need to add a ProjectReference to Azure.Core (to get the new feature) and flip it back to PackageReference when Azure.Core ships with the fix.

After this update, I assume I should remove my changes in Communications, correct?

Correct. You would also need to add a ProjectReference to Azure.Core (to get the new feature) and flip it back to PackageReference when Azure.Core ships with the fix.

Can we just wait for the package?

Can we just wait for the package?

That works too!


Add http headers while accessing the video resources?

A nice project, but I was wondering how can I add a http header while requesting the video, since I have to check the "token" while the user is trying to fetch that resources. Thanks a lot!

Add
VideoPlayer.customHTTPHeaderFields { url in
    // generate url token
    return token // return [String : String]?
}

Thanks a million!

Add
VideoPlayer.customHTTPHeaderFields { url in
    // generate url token
    return ["token": token] // return [String : String]?
}

where should I use token ,
I try add it onApear but it doesn't work

@wxxsw  could you give as a example code ?


Add note on macOS latest in GitHub hosted runners

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#github-hosted-runners
What part(s) of the article would you like to see updated?
Add a note at the bottom saying that -latest points to the latest available version which GitHub provides, not the latest available version open to the public. This is quite confusing and can lead to a situation as described below where you think you are running on the latest available OS but you are not.
Additional information
I also opened a discussion here: https://github.com/github/feedback/discussions/9052

Here's a quick poll (albeit not perfect science) which shows that many folks do not understand what macOS-latest points too: https://twitter.com/OfficialLoganK/status/1472231281429823493?s=20

@logankilpatrick
Thanks so much for opening an issue! I'll triage this for the team to take a look :eyes:

Apologies for the delay, @logankilpatrick! I'll quickly add a mention now

K so I'm understanding all of this now. Github isn't the enomy and I'm not
crazy. LoL it's all about the advertising and the people that view and
watch me. So I'm kinda popular?
On Mon, Jan 31, 2022, 12:43 AM Lucas Costi @.***> wrote:

Apologies for the delay, @logankilpatrick
https://github.com/logankilpatrick! I'll quickly add a mention now
—
Reply to this email directly, view it on GitHub
https://github.com/github/docs/issues/13156#issuecomment-1025426575, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AW5ETRM2MQ56SJSYCIASAPDUYYVPVANCNFSM5KKYKASQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Istio 1.7.1 unable to install Kiali addon

Bug description
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[*] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
Steps to reproduce the bug
/usr/local/istio-1.7.1/samples/addons  kubectl apply -f kiali.yaml
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
Version (include the output of istioctl version --remote and kubectl version --short and helm version if you used Helm)
~  /usr/local/istio-1.7.1/bin/istioctl version --remote
client version: 1.7.1
control plane version: 1.7.1
data plane version: 1.7.1 (5 proxies)
~  kubectl version --short
Client Version: v1.18.0
Server Version: v1.17.9-eks-4c6976
How was Istio installed?
https://istio.io/latest/docs/setup/getting-started/
Environment where bug was observed (cloud vendor, OS, etc)
AWS

Can you reapply the yaml? the CRD is actually in the yaml file.

I don't recall the specific error, but Kiali doesn't usually install with a single apply. See Info box on that page:
If there are errors trying to install the addons, try running the command again. There may be some timing issues which will be resolved when the command is run again.

Same on 1.7.3 also
:~/istio-1.7.3$ [master]$ kubectl apply -f samples/addons/kiali.yaml
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
unable to recognize "samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"

I copied the CustomResourceDefinition from the samples/addons/kiali.yaml in  to the file samples/addons/crd.yaml and ran that in first:
crd.yaml content:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: monitoringdashboards.monitoring.kiali.io
spec:
group: monitoring.kiali.io
names:
kind: MonitoringDashboard
listKind: MonitoringDashboardList
plural: monitoringdashboards
singular: monitoringdashboard
scope: Namespaced
versions:

name: v1alpha1
served: true
storage: true

Then ran the command kubectl apply -f samples/addons/crd.yaml
output: "customresourcedefinition.apiextensions.k8s.io/monitoringdashboards.monitoring.kiali.io created"
Then I reran kubectl apply -f samples/addons/kiali.yaml

Echoing @dwdraju. With the install:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/kiali.yaml
I see the same repeating error messages from Kiali with Istio version 1.7.0/1.7, 1.7.3/1,7 and 1.8.0-alpha.0/1.8
unable to recognize "https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/kiali.yaml": no matches for kind "MonitoringDashboard" in version "monitoring.kiali.io/v1alpha1"
It worked back in August when I tested it with Istio 1.7.0/Kiali 1.7.
However taking advice from @ahowells:
and submitting CustomResourceDefinition found in khiali yaml seemed to work around the problem with Istio 1.7.3.

The getting started notes indicate that this may require running the command 2x. This is because of a long standing Kubectl bug/feature/quirk that applying a CRD and an instance of the CR may race. This is explicitly documented in https://preliminary.istio.io/latest/docs/setup/getting-started/#dashboard. I am not sure there is anything else we can do here beyond splitting it into 2 yaml files, which is the same result as running the command twice.

Running the command 2x was not sufficient for me (I ran it many more than two times) I had to do as @ahowells suggested and split out the CRD and install that first.


Bug found in PolyList

Errors when executing the below codes.
Lyndon-MacBook-Pro:F2JParser Lyndon$ f2j -r bug.sf
bug using [Naive]
Compiling to Java source code ( ./Bug$.java )
./Bug$.java:287: error: cannot find symbol
    final $PolyList x44 = ($PolyList) x43.temp;
          ^
  symbol:   class $PolyList
  location: class Bug$
./Bug$.java:287: error: cannot find symbol
    final $PolyList x44 = ($PolyList) x43.temp;
                           ^
  symbol:   class $PolyList
  location: class Bug$
2 errors
Error: Could not find or load main class Bug$
rm: cannot remove ‘*.class’: No such file or directory

data PolyList[A] = Nil
			| 	Cons A (PolyList[A]);

let rec readPolyList(s: String): PolyList[Char] =
	if s.length() == 0 then (Nil[Char])
	else (Cons[Char] 'a' (readPolyList("")));

readPolyList "a"

Please check.

Have figured out why.
Be working.

@xnning Thanks Ningning! :smiley_cat:

@dynastywind  Thank you for reporting the bug.
This issue will be delayed until we have a module system.
Currently, please make the final type be a non-datatype.

I am curious that why my code works? I use this PolyList-like data structure every where ...
Minimal test case
data PList[T] = Nil
              | Cons T (PList[T]);

let singleton[T] (x : T) : PList[T] =
    Cons[T] x (Nil[T]);

singleton[Int] 1

Temporary work around @dynastywind , just don't make the final type be a non-datatype, like this...
data PList[T] = Nil
              | Cons T (PList[T]);

let singleton[T] (x : T) : PList[T] =
    Cons[T] x (Nil[T]);

let rec showList[T] (show : T -> String) (l : PList[T]) : String =
    case l of
        Nil         -> ""
     |  Cons x xs   -> "\{show x} \{showList[T] show xs}";

showList[Char] (\(x : Char) -> x.toString()) (singleton[Char] 'a’)

@zonyitoo in latest code, both two should work. Because some predefined files are removed.
But this problem still exists.

@xnning What is the status?

@bixuanzju  This issue will be delayed until we have a module system.


These two res are in pending but they display on the Monthly Report. I making sure that what generate out from the Monthly Report date range should be "approved" reservations only.

another example


How could I use 1 channel inputs for seresnext50?

Just wondering is there a way to change the input shape channels from model structure? It gives me the error if I used one channel inputs.
Shapes (7, 7, 1, 64) and (64, 3, 7, 7) are incompatible

Add one extra layer which will map 1 channel to 3 layers


out of memory while KV.set

Hey,
I try to save some data, using chamelon. And it barks at me with out of memory,
The setup is:
dd if=/dev/zero bs=1G of=/tmp/chamelon count=2
chamelon format /tmp/chamelon 512
doas solo5-hvt --block:db=/tmp/chamelon --net:service=tap0 -- dist/mirror.hvt --ipv4=<IP_ADDRESS>/24 --ipv4-gateway=<IP_ADDRESS> --remote https://github.com/hannesm/opam-test-repository.git -l \*:debug

The unikernel being https://git.robur.io/robur/opam-mirror at c3d66b96b17106753df8278c3f32b07ec813ef26
In the log:
2022-08-26 15:17:31 -00:00: INF [application] KV.set (7832)
2022-08-26 15:17:31 -00:00: DBG [chamelon-kv] found basename of path /Xm|*pMBG=+F on block pair 0, 1
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] id for "X\002m|\128\232\176\244\002\231\236*\149\179pM\244B\152\222\238G\001\216=+F\232\255\167\183\162" not found in 2 entries from 0,
1
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] writing new file Xm|*pMBG=+F, size 7832
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] writing 3 entries for ctz for file Xm|*pMBG=+F of size 7832
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] split requested for a block with 5 entries. compacted, we had 5
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] compaction was insufficient and the block has no hardtail. Splitting 0,
1
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] splitting block pair 0, 1 to 81, 80
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] keeping 5 entries in the old block, and putting 0 in the new one
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] split requested for a block with 0 entries. compacted, we had 0
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] compaction was insufficient and the block has no hardtail. Splitting 81,
80
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] splitting block pair 81, 80 to 83, 82
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] keeping 0 entries in the old block, and putting 0 in the new one
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] split requested for a block with 0 entries. compacted, we had 0
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] compaction was insufficient and the block has no hardtail. Splitting 83,
82
...
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] splitting block pair 125, 124 to 126, 127
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] keeping 0 entries in the old block, and putting 0 in the new one
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] split requested for a block with 0 entries. compacted, we had 0
2022-08-26 15:17:31 -00:00: DBG [chamelon-fs] compaction was insufficient and the block has no hardtail.

Not sure whether I'm doing something wrong?

As @reynir proposed, using "16" as program_block_size (instead of 512) solved the issue :D

I guess I'm just easily confused by "block_size" (passed to chamelon format) which needs to be 512 for usage in solo5; and "program_block_size", which is something different and should be 16. Thanks for your file system! :)


How do I determine if the Hough threshold is chosen correctly?

Hi All,
This program is so convenient and very helpful to me, thanks for this great tool!
I'm ashamed that I don't know much about the field of image analysis.
I felt that the User Guide was vague about determining a reasonable Hough threshold.
Could you explain it to me in detail?
Many thanks!
YL Fan

Hello
thanks for your e-mail and interest in FracPaQ.
My rule of thumb for choosing the threshold is try and put the line on the graphs just below the yellow peaks. There is no objective method that I know of. The idea is just to select the ‘significant’ peaks.
Values of 0.4 – 0.6 normally work well.
Cheers,
Dave
Prof David Healy [he/him]
School of Geosciences
Meston Walk
University of Aberdeen
Aberdeen AB24 3UE
Visiting Academic, University of Manchester
My working day may not be your working day. Please do not feel obliged to reply to this e-mail outside of your normal working hours.
Publications: https://scholar.google.com/citations?hl=en&user=ug9DnVoAAAAJ
Software: https://github.com/DaveHealy-github/
FracPaQ: https://github.com/DaveHealy-github/FracPaQ
PFS: https://github.com/DaveHealy-github/pfs
Home page: https://www.abdn.ac.uk/people/d.healy/
From: YL Fan @.>
Reply to: DaveHealy-github/FracPaQ @.>
Date: Sunday, 5 June 2022 at 10:18
To: DaveHealy-github/FracPaQ @.>
Cc: Subscribed @.>
Subject: [DaveHealy-github/FracPaQ] How do I determine if the Hough threshold is chosen correctly? (Issue #9)
CAUTION: External email. Ensure this message is from a trusted source before clicking links/attachments.
Hi All,
This program is so convenient and very helpful to me, thanks for this great tool!
I'm ashamed that I don't know much about the field of image analysis.
I felt that the User Guide was vague about determining a reasonable Hough threshold.
Could you explain it to me in detail?
Many thanks!
YL Fan
—
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDaveHealy-github%2FFracPaQ%2Fissues%2F9&data=05|01|d.healy%40abdn.ac.uk|c6bac058dc41440809d208da46d45c58|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637900175142207411|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=BacGhEnOJio7ahJy%2F5i5GgmibjbI4zmbMwb0zUYgd38%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAESJKRTACAGVNQNJU7EXFMTVNRWGLANCNFSM5X4YSWBQ&data=05|01|d.healy%40abdn.ac.uk|c6bac058dc41440809d208da46d45c58|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637900175142207411|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=3i6ChA89lmqQ2k29Np3I1QODssQAv1on%2FevtnDdk2Qg%3D&reserved=0.
You are receiving this because you are subscribed to this thread.Message ID: @.***>
The University of Aberdeen is a charity registered in Scotland, No SC013683.
Tha Oilthigh Obar Dheathain na charthannas clàraichte ann an Alba, Àir. SC013683.

Hello thanks for your e-mail and interest in FracPaQ. My rule of thumb for choosing the threshold is try and put the line on the graphs just below the yellow peaks. There is no objective method that I know of. The idea is just to select the ‘significant’ peaks. Values of 0.4 – 0.6 normally work well. Cheers, Dave Prof David Healy [he/him] School of Geosciences Meston Walk University of Aberdeen Aberdeen AB24 3UE Visiting Academic, University of Manchester My working day may not be your working day. Please do not feel obliged to reply to this e-mail outside of your normal working hours. Publications: https://scholar.google.com/citations?hl=en&user=ug9DnVoAAAAJ Software: https://github.com/DaveHealy-github/ FracPaQ: https://github.com/DaveHealy-github/FracPaQ PFS: https://github.com/DaveHealy-github/pfs Home page: https://www.abdn.ac.uk/people/d.healy/ From: YL Fan @.> Reply to: DaveHealy-github/FracPaQ @.> Date: Sunday, 5 June 2022 at 10:18 To: DaveHealy-github/FracPaQ @.> Cc: Subscribed @.> Subject: [DaveHealy-github/FracPaQ] How do I determine if the Hough threshold is chosen correctly? (Issue #9) CAUTION: External email. Ensure this message is from a trusted source before clicking links/attachments. Hi All, This program is so convenient and very helpful to me, thanks for this great tool! I'm ashamed that I don't know much about the field of image analysis. I felt that the User Guide was vague about determining a reasonable Hough threshold. Could you explain it to me in detail? Many thanks! YL Fan — Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDaveHealy-github%2FFracPaQ%2Fissues%2F9&data=05|01|d.healy%40abdn.ac.uk|c6bac058dc41440809d208da46d45c58|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637900175142207411|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=BacGhEnOJio7ahJy%2F5i5GgmibjbI4zmbMwb0zUYgd38%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAESJKRTACAGVNQNJU7EXFMTVNRWGLANCNFSM5X4YSWBQ&data=05|01|d.healy%40abdn.ac.uk|c6bac058dc41440809d208da46d45c58|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637900175142207411|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=3i6ChA89lmqQ2k29Np3I1QODssQAv1on%2FevtnDdk2Qg%3D&reserved=0. You are receiving this because you are subscribed to this thread.Message ID: @.***> The University of Aberdeen is a charity registered in Scotland, No SC013683. Tha Oilthigh Obar Dheathain na charthannas clàraichte ann an Alba, Àir. SC013683.

Thank you for all your assistance.There are many yellow columns in the graph, which together with the orange columns below form a 'ridge line'. Do you mean to place the straight line under all the Yellow columns or make the line just under all the 'valleys'?

Again, it’s ‘Trial & Error’ I’m afraid.
Try beneath the yellow, and consider the output fracture trace map...
Cheers,
Dave
Prof David Healy [he/him]
School of Geosciences
Meston Walk
University of Aberdeen
Aberdeen AB24 3UE
Visiting Academic, University of Manchester
My working day may not be your working day. Please do not feel obliged to reply to this e-mail outside of your normal working hours.
Publications: https://scholar.google.com/citations?hl=en&user=ug9DnVoAAAAJ
Twitter: @listen2mcr @fracpaq
Software: https://github.com/DaveHealy-github/
FracPaQ: https://github.com/DaveHealy-github/FracPaQ
PFS: https://github.com/DaveHealy-github/pfs
Home page: https://www.abdn.ac.uk/people/d.healy/
From: YL Fan @.>
Reply to: DaveHealy-github/FracPaQ @.>
Date: Friday, 10 June 2022 at 13:47
To: DaveHealy-github/FracPaQ @.>
Cc: "Healy, David" @.>, Comment @.***>
Subject: Re: [DaveHealy-github/FracPaQ] How do I determine if the Hough threshold is chosen correctly? (Issue #9)
CAUTION: External email. Ensure this message is from a trusted source before clicking links/attachments.
Thank you for all your assistance.There are many yellow columns in the graph, which together with the orange columns below form a 'ridge line'. Do you mean to place the straight line under all the Yellow columns or make the line just under all the 'valleys'?
—
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDaveHealy-github%2FFracPaQ%2Fissues%2F9%23issuecomment-1152323305&data=05|01|d.healy%40abdn.ac.uk|d71f04b48f3e4ce7400408da4adf6f9d|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637904620757405193|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=uIcEkF92p1alAi%2Flor3A0S%2Ba4Vk3cQo7gHR6r6fEmOw%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAESJKRWELRJGOAWCBMW2LJ3VOM2PNANCNFSM5X4YSWBQ&data=05|01|d.healy%40abdn.ac.uk|d71f04b48f3e4ce7400408da4adf6f9d|8c2b19ad5f9c49d490773ec3cfc52b3f|0|0|637904620757405193|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=7JYtzuHvXq%2Bbtg4I%2FoIeLQAiqksPkf7MuN5SzKzTkVY%3D&reserved=0.
You are receiving this because you commented.Message ID: @.***>
The University of Aberdeen is a charity registered in Scotland, No SC013683.
Tha Oilthigh Obar Dheathain na charthannas clàraichte ann an Alba, Àir. SC013683.


[5.4] Higher Order Array or Object Bug Fix

Personally I would suggest just checking for is_array. It will be much faster than data_get in this situation.

Feel free to modify as you see fit.
I assume you mean to do return is_array($value) ? $value[$key] : $value->{$key}; ?

yes.

@taylorotwell This change has been made.

I highly advise against this. There's already enough magic involved.
If you're dealing with arrays, accessing them should work like this:
$collection->map['field']

We can do this by implementing offsetGet on the proxy class. I'll send a PR.

I'm happy for this to be altered if it improves the code / expectations of the code; however I would say a common API is preferential to it throwing an error if you try to access the collection as shown in the examples, and it happens to be an array.
Offtopic: @franzliedke I have sent you a message on larachat, if you get the chance to check it out, i'd be grateful :)

Collection items don't just happen to be arrays, though. You should know what you're dealing with when you are accessing a whole collection through the proxy.
That's the point of this feature: accessing all items in a collection just like you would access one object, which you can do because they all have the same type/interface. I want this to be as expectable as possible.
I've seen your message, I will get to it. ;)


[scripts] fallback to default pkg manager and install more in forge

Motivation
Give the forge image more tools, some of which are installed via the default package manager. Also make docker/forge/build.sh executable.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Build the image locally docker/forge/build.sh and observe that the dev_setup.sh step executes successfully. Run the image locally and docker exec into it and check manually that it has the following tools: kubectl, helm, aws, git

looks good.

@rexhoffman did you mean to stamp..? 😄

/land


Shared (siamese) nodes and LambdaMerge in Graph

There has been a lot of discussion recently on shared nodes and 'siamese' architectures, with some great progress on weight sharing (cf. #928 ). It would be nice to add an example on how to implement a 'vanilla' siamese net, like seminally proposed by Chopra et al.. I wanted to do this, but implementing this architecture is surprisingly far from trivial. Assume that our model takes two inputs, transforms these through a set of shared layers, and finally outputs the distance/similarity for the representations obtained in both subnets. In any case, the distance function must probably be implemented as a custom function to allow enough flexibility and add e.g. the Euclidean distance as they do in the original paper. Sorry for the long question. The setup:

from keras.models import Graph, Sequential
from keras.layers.core import *

in_dim = 1000
hidden_dim = 100
out_dim = 1

I wanted to use a Graph (which originally felt quite natural, because we have multiple inputs). We leave the Euclidean distance for what it is and we use a dummy Layer() layer to produce a dot product.
G = Graph()
G.add_input(name='input_a', input_shape=(in_dim,))
G.add_input(name='input_b', input_shape=(in_dim,))

G.add_shared_node(Dense(hidden_dim),
                  name='shared_dense',
                  inputs=['input_a', 'input_b'],
                  outputs=['input_a+', 'input_b+'],
                  merge_mode=None,
                  create_output=False)

G.add_node(Layer(),
            name = 'target',
            inputs = ['input_a+', 'input_b+'],
            merge_mode = 'dot',
            dot_axes = 1,
            create_output = False)

G.add_node(Activation('tanh'),
                   input='target',
                   name='bin',
                   create_output=True)

G.compile(optimizer='RMSprop',
          loss={'bin':'mse'})

This compiles, but doesn't give any flexibility as to the distance computation (e.g. Euclidean distance, or any other metric). The recently added LambdaMerge layer seems a great way to this, but it still unclear to me (from docs and code) whether the LambdaLayer is compatible with the Graph container. Using the example in LambdaMerge's docstring (root mse), I tried this:
G = Graph()
G.add_input(name='input_a', input_shape=(in_dim,))
G.add_input(name='input_b', input_shape=(in_dim,))

def rms(X):
    s = X[0]**2
    for i in range(1, len(X)):
        s += X[i]**2
    s /= len(X)
    s = np.sqrt(s)
    return s

def output_shape(input_shapes):
    return input_shapes[0]

G.add_shared_node(Dense(hidden_dim),
                  name='shared_dense',
                  inputs=['input_a', 'input_b'],
                  outputs=['input_a+', 'input_b+'],
                  merge_mode=None,
                  create_output=False)

lambda_merge = LambdaMerge(['input_a+', 'input_b+'], rms, output_shape)

G.add_node(lambda_merge, name='target')

G.add_node(Activation('tanh'),
                   input='target',
                   name='bin',
                   create_output=True)
G.compile(optimizer='SGD',
                       loss={'bin':'binary_crossentropy'})

This gives an error, implying that I can't pass string names to LambdaMerge. Bottom line: how can I add a LambdaMerge layer on top of the outputs produced by the shared nodes in a Graph? Using a stack of Sequentials did not help either (even though I added a dummy layer to make sure that the shared layers aren't first in the network):
input1 = Sequential()
input2 = Sequential()
input1.add(Activation('linear'))
input2.add(Activation('linear'))
add_shared_layer(Dense(100), inputs=[input1, input2])
m = Sequential()
lambda_merge = LambdaMerge([input1, input2], rms, output_shape)
m.add(lambda_merge)
m.add(Activation('tanh'))
model.compile(loss='mse', optimizer='rmsprop')
This gives:
Exception: Layer is not connected. Did you forget to set "input_shape"?

All feedback is welcome (I might be missing something obvious).

Try to use Layer(input_shape=(in_dim,)) as the first layer:
input1 = Sequential()
input2 = Sequential()
input1.add(Layer(input_shape=(in_dim,)))
input2.add(Layer(input_shape=(in_dim,)))
add_shared_layer(Dense(100), inputs=[input1, input2])
m = Sequential()
lambda_merge = LambdaMerge([input1, input2], rms, output_shape)
m.add(lambda_merge)
m.add(Activation('tanh'))
model.compile(loss='mse', optimizer='rmsprop')

PS:

I added a dummy layer to make sure that the shared layers aren't first in the network

I think farizrahman4u  had fixed it some time ago but I don't see these changes in the code right now...

Thank you so much, @jgc128 , that fixed it! Indeed, I saw a PR for this coming by for this too...

In a gaph, instead of LambdaMerge you can simply merge them using join mode, and then add a Lambda layer which compjtes the distance.

I have also been trying the graph version working but if I use 'join', I am stuck with this error:
ValueError: merge_mode="join" only works with named inputs.
My graph looks like this:
g = Graph()
g.add_input(name='input_a', input_shape=(in_dim,))
g.add_input(name='input_b', input_shape=(in_dim,))
g.add_shared_node(base_network, name='shared',
                  inputs=['input_a', 'input_b'],
                  outputs=['input_a+', 'input_b+'],
                  merge_mode=None,
                  create_output=False)
g.add_node(Lambda(euclidean_distance),
           inputs=['input_a+', 'input_b+'],
           merge_mode='join',
           name='d')
g.add_output(name='output', input='d')

What am I missing?

Can you see if join mode is working by using it in a model without shared layers?

Can you see if join mode is working by using it in a model without shared layers?

Yes, I get the error without shared layers as well:
g = Graph()
g.add_input(name='input_a', input_shape=(in_dim,))
g.add_input(name='input_b', input_shape=(in_dim,))
g.add_node(Dense(128), name='input_a+', input='input_a')
g.add_node(Dense(128), name='input_b+', input='input_b')
g.add_node(Lambda(euclidean_distance),
           inputs=['input_a+', 'input_b+'],
           merge_mode='join',
           name='d')
g.add_output(name='output', input='d')

Hmm. so join mode is broken.
@fchollet

Thansk @farizrahman4u, I have created a new issue #1655 to look at that.


Sampler generics types to include LaneData

Currently we have Sampler<G extends GtuData>. This may be extended to Sampler<G extends GtuData, L extends LaneData>. Although it is only in a few places, the RoadSampler, and therefore any subclass of Sampler, has to cast LaneData to LaneDataRoad, as it is adding or removing listeners. This is inconvenient. Other classes in ots-kpi will also need L extends LaneData to be used with Sampler.

The following changes regarding generics argument have been made:

Sampler<G extends GtuData> has become Sampler<G extends GtuData, L extends LaneData>.
RoadSampler now extends Sampler<GtuDataRoad, LaneDataRoad>.
ContourDataSource<G extends GtuData> has become CountourDataSource as nothing required to know the specific type.
GraphPath.initRecording() requests consistency between the lane type of the provided Sampler and GraphPath, but in a flexible manner.
GraphLaneUtil returns graph information with LaneDataRoad.
LinkData has become LinkData<L extends LaneData> so it can return specific lanes.
LinkDataRoad therefore now implements LinkData<LaneDataRoad>.
Query<G extends GtuData> has become Query<G extends GtuData, L extends LaneData> as it registers SpaceTimeRegion<L extends LaneData> in the Sampler.
SpaceTimeRegion has become SpaceTimeRegion<L extends LaneData> is it is used by Sampler to feed lanes to methods implemented by subclasses (to schedule recording events).
Code in various ots-kpi indicators using Query has been updated.
Code in various classes for graphs has been updated.
Code in various demos with graphs has been updated.


gimp 2.99.16 gimp ML not visible in Layers

Describe the bug
I installed gimp 2.99.16 and the plugins. Selected the path and after gimp restart the gimML option in Layers does not show up...
What am I doing wrong?


Add Akka Cluster Sharding

I think this should go under the Scalability topic for Akka:

Cluster sharding is useful when you need to distribute actors across several nodes in the cluster and want to be able to interact with them using their logical identifier, but without having to care about their physical location in the cluster, which might also change over time.

See https://doc.akka.io/docs/akka/2.5/cluster-sharding.html

Dear @calvinlfer ,
Thank you very much for your sharing! However, I am sorry that I will not be able to add it due to three reasons:

It does not illustrate a real application/project from a tech company/tech team.
It is way too specific, so readers will just see the tree (Akka configuration) but not the forest (scalability, how it links to other components).
It does not make much sense to add a Help document in this repo.

If you have any additional concerns, please feel free to get in touch! Thank you and Happy Coding!
Best regards,
Bình.

Ah okay, good point, sorry @binhnguyennus
We used this at my previous company (LoyaltyOne) to implemented a distributed transaction processing system but we never officially published any articles, I guess that would have been more appropriate. I'll close this for now and come back with a real world use case (where it's used at a company)


Fix eye for larger matrices

Proposed changes
Closes #460
>>> mx.eye(50000)
array([[1, 0, 0, ..., 0, 0, 0],
       [0, 1, 0, ..., 0, 0, 0],
       [0, 0, 1, ..., 0, 0, 0],
       ...,
       [0, 0, 0, ..., 1, 0, 0],
       [0, 0, 0, ..., 0, 1, 0],
       [0, 0, 0, ..., 0, 0, 1]], dtype=float32)

This also fixes a bug with scatter for lower precision types (we weren't using the packed atomic properly 🤦 ).
@angeloskath I tested mx.eye(50000) on two machines (m1 max, m2 ultra) and I tested mx.eye(50000, dtype=mx.uint8) on an m2 mini. They all give correct results now. Can you re-check your machine? If it till doesn't work then I would suspect something is up with your machine at this point... 🤔

That is weird. I wonder if it’s something going on with memory allocation. 10gb is a lot for your m2…
i don’t live this gremlin on your machine…


docs(dired): update homepage of all-the-icons-dired

According to https://melpa.org/#/all-the-icons-dired

Thanks for the PR, but I must refuse it. There is nothing wrong with your PR, but it comes at a bad time: I'm about a week away from pushing a rework of all our documentation, which changes how we link packages from module documentation. Since this would indirectly fix this issue, and would swallow up your PR anyway, I'll simply wait for that update instead. In any case, thanks for your help!


It would be great if it could be used to create Flutter

The premise of this application is to generate web based UI's that can be rendered directly in the browser.  Adding flutter would be a major overhaul and is not planned.  I imagine Google themselves are working on this already.


Lacks documentation of Dev and Test for GIE

Reported by dogfooding users, currently the documentation lacks how to build/test GIE part.

Dev and Test (and other docs as well) is a little unclear for GIE at this moment. I am thinking this as part of the production development of GIE. May I consider this during the production process of GIE?

In progress, has blocked by the following issue: https://github.com/alibaba/GraphScope/issues/2721

#2721 is closed by a merged PR.

Yeah, working on it already.

Close by https://github.com/alibaba/GraphScope/pull/2733

We must further refine the docs according to these two dogfooding tasks:

[ ] 从源代码编译 Interactive Engine，找到编译出的 frontend-x-SNAPSHOT.jar和 gaia_executor,直接运行这个 jar 包和这个 gaia_executor，使 frontend 能够连接到 executor。
[ ] 了解 Frontend 和 Executor 的代码位置和组织结构，为 GIE 的 Frontend (interactive_engine/frontend/src/main/java/com/alibaba/graphscope/frontend/Frontend.java) 和 executor (interactive_engine/executor/assembly/v6d/src/bin/gaia_executor.rs) 各添加一条日志，并重新编译，启动并找到新添加的日志

close by #2767


getApplicableRefactors Could not find file

Previously: #20785 (with dups #21791, #22553, #22554)
Stack for TS 3.3.3333
Error: Could not find file: '%PATH%'.
    at getValidSourceFile (tsserver.js:118280:23)
    at Object.getApplicableRefactors (tsserver.js:119058:24)
    at IOSession.Session.getApplicableRefactors (tsserver.js:126912:53)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (tsserver.js:125785:61)
    at tsserver.js:127131:88
    at IOSession.Session.executeWithRequestId (tsserver.js:127122:28)
    at IOSession.Session.executeCommand (tsserver.js:127131:33)
    at IOSession.Session.onMessage (tsserver.js:127153:35)
    at Interface.<anonymous> (tsserver.js:128414:27)
    at Interface.emit (events.js:182:13)
    at Interface._onLine (readline.js:290:10)
    at Interface._normalWrite (readline.js:433:12)
    at Socket.ondata (readline.js:149:10)
    at Socket.emit (events.js:182:13)
    at addChunk (_stream_readable.js:279:12)
    at readableAddChunk (_stream_readable.js:264:11)
    at Socket.Readable.push (_stream_readable.js:219:10)
    at Pipe.onread (net.js:636:20)

For the last 24 hours:

TSVersion
Distinct Paths

3.3.3333
43

3.3.3
142

3.3.1
16103

3.3.0-rc
15

3.3.0-dev.20190101
2

3.2.4
11

3.2.2
1820

3.2.1-insiders.20181127
1

3.2.0-rc
1

3.1.6
5

3.1.4
238

3.1.3
154

3.1.1
18

3.0.3
216

3.0.1
426

2.9.2
659

2.9.1
412

2.8.4
3

2.8.3-insiders.20180407
1

2.8.3
392

2.8.1
236

2.8.0-dev.20180321
1

2.7.2
243

2.6.2
5

Note: Telemetry is from VS Code.

@RyanCavanaugh This seems to be a frequent and longstanding problem.

@amcasey @RyanCavanaugh I am not sure how to add more log to this but this call wouldn't fail unless there was another exception in some other command and project and ls are in bad state and their truth don't match as before doing calling LS for any semantic operation, we always get the project ensuring that file belongs to project.
May be we can throw special exception from getValidSourceFile and add more information like program.getSourceFiles().map(f => f.fileName) and projectService's script infos and project's scriptInfos.

I have merged #30437 to get more information to be able to diagnose this further. We can investigate once we have that information.

Hi,
I already commented on #39513 on the issue generated by TS bot, but I am not sure if anyone noticed the comment.
I can reproduce this issue locally with tsetse language plugin. If you have troubles reproducing this issue I can provide you with details how to reproduce this problem locally.

Update:
This issue for tsetse language plugin can be fixed using this patch: https://github.com/bazelbuild/rules_typescript/pull/506?fbclid=IwAR1lEwjPEhG41w-Vfecn30eFK_6r9IrbmWlIRcYMuoRfrPcKxUkLbzBflHQ
Others experiencing this issue might have the same problem.


Improve compatibility with podman

Description
A small set of changes that enables using podman as the build engine via the podman-docker package or by symlinking docker to podman.
The collector/falcosecurity-libs symlink is removed. It is not needed now that we use a global cmake project set at the root of the repository and was causing trouble with podman.
The '--cache-from' argument takes different types of arguments for podman and docker, since the way the builder works makes it relatively hard to actually take advantage of caching, we can directly remove them.
Checklist

[ ] Investigated and inspected CI test results

Testing Performed

[ ] Run with no-cache to ensure removing the symlink doesn't affect driver builds.

The check-failures error is due to some debian packages being deleted by our crawler, it's a known issue and unrelated to these changes.


Feature request: Build artifact of whole MIW

It would be great to have a build artifact of the whole MIW on Maven Central, similar to the different EDC components, e.g. the ssi-miw-credential-client: https://central.sonatype.com/artifact/org.eclipse.tractusx.edc/ssi-miw-credential-client
This would greatly reduce the complexity when trying to build the MIW (meaning: the .jar file) from outside the main repository, since as of now, you'd have to copy the whole src-folder to the desired place in order to achieve the same result (and do this over and over again whenever a new version is avaiable).

The build process currently does emit a full jar and a Docker image and a Helm chart, so I'm not sure what exactly you need. Can you elaborate?

@borisrizov-zf I guess I have been under the false impression that there needs to be an MIW instance for every EDC instance residing in a data space, and the way that we roll out the EDC instances for different participants is by building the connector.jar based on the public artifacts of the respective modules that we need, or to be more precise: we let the different participants do that by themselves by letting them start the docker-compose stack we prepared for them. Intuitively it would have made sense to me to do the same for the miw.jar and then automatically connect the EDC instance to its own MIW instance, but from what I understood so far there should only be a single MIW instance and every new EDC simply needs to connect to it at startup (also, unlike the EDC the MIW doesn't consist of several different modules).
... so I guess it makes more sense to simply build the MIW once and host it somewhere, and there wouldn't be any additional value in having a public artifact of it.

@Julian-Marco yes, correct. At some point self-hosted wallets will be available and they should have build artefacts for anyone to deploy.

Thank you. I'll close this issue for now then.