Combine omit and dissoc

As of right now the only difference I see between omit and dissoc is that omit accepts an array while dissoc only accepts a single string. To simplify the API, these could be combined using Array.isArray() internally.

In the Rich Hickey sense of simplicity, this would actually make the API more complex. ;)

Can you explain your perspective more? From my point of view I don't understand why we would have two functions with quite different names that perform extremely similar actions. To me this makes it harder to remember which function to use when. Having one function that handles whatever input I give it seems much more simple to me.

I think conceptually omit and dissoc are rather different, with omit being more similar to pick and filter. dissoc has a parallel in dissocPath, which has the same API as omit but does something entirely different. Combining omit and dissoc could call into question which functionality it is going for.
I would be more interested in unifying the prop/path type functions (prop, assoc, dissoc, etc.) In doing that though, I would want to keep the array syntax for consistency. That would then make the simple case slightly more painful, and so then the shortcut functions make sense again.

Admittedly, I didn't look at dissocPath before suggesting this. Looking at that now, I can see how combining things could get more confusing. I still wish that dissoc/omit combined to reduce the need to remember the small differences, but now I don't see a good solution that fits into the entire package.

Can you explain your perspective more?

Rich Hickey defines complexity as intertwinement, and provides several examples of things which are “complected” (intertwined) alongside alternatives which are not.
The complexity of a function which does two things exceeds the combined complexity of two functions which each do one of those things.

Hmm, I can appreciate that philosophy, though I'm not quite sure it holds in this case. A function that was a combination of omit and dissoc wouldn't be doing two things – it would still only be omitting props from an object. The only thing that would change is that there would be less restrictions on the format of the input, which I still feel is more simple.
But I agree that there's not a path forward with this one; I'm just arguing to argue! ;)

@Bradcomp:

I would be more interested in unifying the prop/path type functions (prop, assoc, dissoc, etc.) In doing that though, I would want to keep the array syntax for consistency. That would then make the simple case slightly more painful, and so then the shortcut functions make sense again.

I keep going through that same thought process.  I use functions like prop a lot and feel it should remain as simple as possible... but it's so close to path.  What I do think we should do everywhere we already haven't is to implement the single-string functions in terms of the array-of-strings ones in order to avoid any divergence of behavior.  prop('foo') should never behave differently from path(['foo']).  There have been a number of misses on this.
@edahlseng:

A function that was a combination of omit and dissoc wouldn't be doing two things – it would still only be omitting props from an object.

One of the key API decisions that has distinguished Ramda from somewhat similar counterparts -- alongside the focus on composition (often through currying) and immutability -- is its preference for simplicity of the type David discussed.  (If you haven't seen the Rich Hickey video David mentioned, I highly recommend it.)  When Ramda seems to support multiple types for a parameter, it is simply that Ramda sees them all as representative of some common type.  map, for instance, takes an array or an arbitrary functor, but that's because Ramda itself is providing the implementation that makes an array a functor.  Here there is no useful common type between a string and an array of strings.  So to Ramda's eyes, a function that accepts a string is entirely different from one that accepts an array of them.

Here there is no useful common type between a string and an array of strings.

I think that was the explanation I needed.
Thanks @davidchambers and @CrossEye for pushing me towards the Rich Hickey video. I'm excited to check it out this weekend!

Can be built using .compose and .map
const dissocAll = (arr) => R.apply(R.compose, R.map(R.dissoc, arr));
dissocAll  (['a', 'b', 'c'])   ({a: 1, b:2, c:3, d:4})
dissocAll(['a', 'b', 'c'] , {a: 1, b:2, c:3, d:4})

If dissoc would be renamed omitOne or similar, IMO it would clarify things. Just throwing that out there.


<EMAIL_ADDRESS>

Add<EMAIL_ADDRESS>

Hello @wep21, modules you maintain (boost.config) have been updated in this PR. Please review the changes.

@bazel-io skip_check unstable_url

Hello @wep21, modules you maintain (boost.assert, boost.config) have been updated in this PR. Please review the changes.


Training data

Hi Nikhil,
Thank you for sharing the code! However, I can't find any information about downloading the data. Could you share more details of that?
Thanks,
Changan

Hi Changan! Thanks for writing; we're still working on making it available, but in the meantime I'd be glad to share a version directly if that would be useful. Let me know!
Best,
Nikhil

Hi Nikhil,
That would be great! My email address is<EMAIL_ADDRESS>Could you send the instructions to access the data to my email? Thanks a lot!
Changan

Just sent!

Hi @yyf17, thank you for your kind words! Just sent a link with instructions, feel free to reach out with any questions.

Hi @EdoSiggi, thank you for the kind words! Just sent the dataset your way.

@nikhilsinghmus
Thanks so much Nikhil! :)

Hi @amiteliav, thank you! Just sent.

hi，thanks for the impressive work. Coudl you please send the data to<EMAIL_ADDRESS>as well?
Thanks in advance.

Thank you, just sent!
On Tue, Mar 1, 2022 at 1:57 AM catherine @.***> wrote:

hi，thanks for the impressive work. Coudl you please send the data to
@.*** as well?
Thanks in advance.
—
Reply to this email directly, view it on GitHub
https://github.com/nikhilsinghmus/image2reverb/issues/22#issuecomment-1055088208,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4EH4DQOWPYPEQD7J624FLU5W5VTANCNFSM5AEZU6KA
.
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 were mentioned.Message ID:
@.***>

Hi Nikhil,
very interesting work! May I also ask you for the data?
<EMAIL_ADDRESS>Regards!

Thank you @atsib; sent!

Hi Nikhil,
Thanks for revealing the code. Can I get the data by e-mail?
<EMAIL_ADDRESS>

Hi @thc21h, just sent!

Hi Nikhil,
Thank you for sharing the code. Could you please send me the data. My email is<EMAIL_ADDRESS>

Thanks Nikhil for the quick reply. Could you also please share the command to test your trained model.
Also where can I download inputs for
--encoder_path
--depthmodel_path

@anton-jeran no problem! Links should be:

encoder  (Places365 ResNet50 model, not needed for testing)
depthmodel (monodepth2 mono 640x192 model)

For testing, you can use python3 test.py --model <checkpoint> --test_dir <output_dir> to generate the outputs (we don't use its computed metrics). For metrics, the process is described in #25.

Thank you again :)

Hi Nikhil,
Nice stuff! Not sure if you have put the training data up somewhere to find it yet, but I can't seem to find it. If you have any time, could you please send it to<EMAIL_ADDRESS>I'd greatly appreciate it.

@isaac-ahlgren done, thank you!

Hi @nikhilsinghmus ,

Hi @nikhilsinghmus ,
Thanks for sharing your amazing work. Could you please send the data to<EMAIL_ADDRESS>as well?

Thank you @YHWmz, sent!

Hi Nikhil,
Thanks for your amazing work, it is really inspiring!
Could you share the instructions to access the data to my email? My email is<EMAIL_ADDRESS>Thanks a lot!

Thank you @phycause, sent!

Hi Nikhil,
My email address is<EMAIL_ADDRESS>Could you send the instructions to access the data to my email? If it is possible, also the instructions of how could I load images of my own on the network and running it?
Thanks a lot!
Ali

Hi @Ali10038, just sent both over!

Hi Nikhil,
Thank you for your exceptional achievements， it is pioneering . I want to learn more about your achievements.
Could you share more details of accessing the data?
My email address is<EMAIL_ADDRESS>If it is possible, also the instructions of how could I load images  and running it?
Thanks a lot!

Thank you, @zgccz; sent!

Hi Nikhil,
Thanks for your amazing work! Could you send the data to<EMAIL_ADDRESS>as well?
Thanks!

Hi @xuzhouye, thank you; just sent!

Hi Nikhil. I'm not sure if the data is available publicly somewhere, so I was wondering if I can have the data sent to me as well. My email is<EMAIL_ADDRESS>Thanks!

@Origamijr, sent!

Hi, Nikhil.
Thank you for your amazing work!
Could you share the instructions to access the data to my Email?
My Email is<EMAIL_ADDRESS>.
Thanks a lot!

Thank you @afternoonbuncho, sent!


qemu-user-static is not static anymore

See https://github.com/multiarch/centos/issues/2#issuecomment-305443286
It's a recent issue:

v2.9.0 is KO
v2.8.4 is OK

Another issue related :  https://github.com/multiarch/qemu-user-static/issues/21

I released 2.9.1 from the fedora package for https://github.com/multiarch/qemu-user-static/issues/21#issuecomment-306430284. Can you check centos?

It's fixed for Centos, thanks


Sydney Ethereum Meetup Token

Website: http://sydeth.com
Github: https://github.com/SydEthereum/meetup-token#meetup-token
Twitter: @SydEthereum
Telgram: chat.sydeth.com

Please provide a support email when you get a chance. Thanks!

Use my email for now. nick at addisonbrown.com.au


where is the 'glove.100d.txt'?

I have download the 'glove.6B.100d.txt' from https://nlp.stanford.edu/projects/glove .
But there also has a program error:

I have solved it by:  https://github.com/cuhksz-nlp/SANER/issues/5


Change the way we store Enrollments

Currently we add Enrollment to the EnrollmentManager when they are received but before they are validated:
https://github.com/bpfkorea/agora/blob/05bfe591aec457544bfe9fc8b799f592d4d6b303/source/agora/node/Node.d#L507-L518
Then consensus is made on them. This has a few issues:

It is impossible to replace an enrollment, lest the user change their key (so there's a 2 week waiting period);
This table is never cleaned up;
We mix the data we use before and after consensus, which is error-prone.
addValidatedBlock does not add Enrollments, only update their height, which mean catch-up is broken.

It would be best to have those two data set apart, and only have active enrollments in the EnrollmentManager. The separation should probably be similar to transaction pool / UTXO set.

Among the issues to be resovled, some issues as follows can be split into another issue.

It is impossible to replace an enrollment, lest the user change their key (so there's a 2 week waiting period);
This table is never cleaned up;

Those can be handled after chaning the way we store the Enrollments. So I will create new issue named like "Add the feature to change or delete enrollments stored".

After the PR #748 , there will be more PRs for tasks as follows.

[ ] Refactor the relations between classes related to the enrollment process and other classes that use the classes(including the change of the name and function modifier of member functions.
[ ] Refine the API endpoints related to the enrollment process, for example, getPreimage.
[ ] Remove table in the EnrollmentManager.
[ ] Refine test code in the test.EnrollmentManager package.

@linked0 : I think we can reasonably consider this closed. Could you open issues for any remaining tasks so they can be addressed in the next sprint ?

@linked0 : I think we can reasonably consider this closed. Could you open issues for any remaining tasks so they can be addressed in the next sprint ?

There is one remaining task which is to remove the table from the EnrollmentManager. I will create an issue and address it in the next sprint.


[Analytics] Verify Analytics flows.

Is your suggestion a test requirement/change or improvements of the test framework? Please describe.
[Analytics] Verify Analytics flows.
DB: postgres

This is completed. Hence closing the issue


precision metric comes out wrong

Hi,
I am encountering an inaccurate case with the precision metric.
I have created a simple test (files attached):
coco_problem.zip

the ground_truth.json has one image and one bbx annotated for category 1
the results.json has two bounding boxes, one for a perfect detection (category 1), and the next for a large  false alarm (category 2) .
I run the following code

from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
cocoGt=COCO('/ssd2/ground_truth.json')
cocoDt=cocoGt.loadRes('/ssd2/results.json')
cocoEval = COCOeval(cocoGt,cocoDt,'bbox')
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()
=> it happens that the api returns, precision and recall to be both 1 which is wrong, since in this case recall should be 1 but precision should be much less than 1 since we have a clear false alarm
am I missing something here or is this a bug?
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 1.000
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 1.000
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 1.000

Hey @RSly. Did you solve above problem? I have written following script which got same result like you! In my script, resFile is a numpy array which has detection results. In each row of resFile there are these values: [ImageID, x1,y1, w, h, score, class]
cocoGt=COCO('./annotations/image_info_test-dev2015.json')
imgIds = resFile[:,0].tolist()
imgIds = list(set(imgIds))
cocoDt=cocoGt.loadRes(resFile)
annType = 'bbox'
cocoEval = COCOeval(cocoGt,cocoDt,annType)
cocoEval.params.imgIds  = imgIds
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()

and here is the output:
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000

Could you please tell me what is wrong?

@mohammad-py, actually your case is very different
=> you get -1 which is not a possible value for precision/rercall, instead it is a flag to tell that a case doesn't apply.
for example if you have only a large object in your image, naturally precision and recall comes out -1 for the case of 'small' and 'medium' objects telling you that there is no such objects. Also it can happen when you miss give imgIds, etc...

@RSly thanks for explaining meaning of -1 AP to @mohammad-py.
In your case, the ground truth annotation contains single annotation of category 1.
In such case, the evaluation program would ignore category 2 entirely since it is undefined to compute PR curve for category 2.

hi @tylin, thanks for the explanation, you closed this issue too fast :)
I still think there is a problem with the current calculation of precision. here ia another case using the coco validation sets and my attached results42.json.
results42.zip
so again I have put a perfect detection on the dog, and a large false alarm next to the dog. you can see that again average recall and precision are both perfect at 1.0
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
cocoGt=COCO('./coco/annotations/instances_val2014.json')
cocoDt=cocoGt.loadRes('./results42.json')
cocoEval = COCOeval(cocoGt,cocoDt,'bbox')
cocoEval.params.imgIds = [42]
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()
=> for completeness, I summarized all observations regarding these metrics here: https://github.com/pdollar/coco/issues/56


Add details on community driven effort

Includes changes to README by adding details on licensing, emphasizing a community-driven effort in the introduction, and adding more information in the contributing section. I also added the community-driven introduction to mkdocs.

@bitner @wildintellect; let me know if this matches what we discussed previously.


Requested category terms

This covers some terms requested by Outreach. I'm adding the "Healthcare activities" terms together to keep them consistent. Resolves #435, #438, #439, #440, #441.

This is a draft until we work out the information on health care activity terms on the tracker.

Easier to start over with a different pull request than to fix this one (due to refactoring, definition changes, etc.). Closing.


Can unsafeCss and lit-html's unsafeHTML share a case convention?

Minor gripe. I can submit a PR if there's agreement on which is "right"

Fixed by #524


Issue with config lines

Hi, I have been trying for a while to sort this out but to no avail. My MM was working great before I added the Google maps module. Now every time I run the npm config:check I get this error -
[07.05.2022 13:03.32.086] [INFO]  Checking file...  /home/pi/MagicMirror/config/config.js
[07.05.2022 13:03.32.226] [ERROR] Your configuration file contains syntax errors :(
[07.05.2022 13:03.32.228] [ERROR] Line 201 column 2: Parsing error: Unexpected token ;
I have checked the forum and have tried to amend the } but this has not worked. Can anyone see any issues with my code? I am new to this so I am most certain I have done something wrong.
Thanks in advance.
Matt
(I have removed personal info)
/* Magic Mirror Config Sample
*

By Michael Teeuw https://michaelteeuw.nl
MIT Licensed.

For more information on how you can configure this file
See https://github.com/MichMich/MagicMirror#configuration

*/
var config = {
address: "localhost", 	// Address to listen on, can be:
// - "localhost", "<IP_ADDRESS>", "::1" to listen on loopback interface
// - another specific IPv4/6 to listen on a specific interface
// - "<IP_ADDRESS>", "::" to listen on any interface
// Default, when address config is left out or empty, is "localhost"
port: 8080,
basePath: "/", 	// The URL path where MagicMirror is hosted. If you are using a Reverse proxy
// you must set the sub path here. basePath must end with a /
ipWhitelist: [], 	// Set [] to allow all IP addresses
// or add a specific IPv4 of <IP_ADDRESS> :
// ["<IP_ADDRESS>", "::ffff:<IP_ADDRESS>", "::1", "::ffff:<IP_ADDRESS>"],
// or IPv4 range of <IP_ADDRESS> --> <IP_ADDRESS> use CIDR format :
// ["<IP_ADDRESS>", "::ffff:<IP_ADDRESS>", "::1", "::ffff:<IP_ADDRESS>/28"],
useHttps: false, 		// Support HTTPS or not, default "false" will use HTTP
httpsPrivateKey: "", 	// HTTPS private key path, only require when useHttps is true
httpsCertificate: "", 	// HTTPS Certificate path, only require when useHttps is true

language: "en",
locale: "en-GB",
logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
timeFormat: 24,
units: "metric",
// serverOnly:  true/false/"local" ,
// local for armv6l processors, default
//   starts serveronly and then starts chrome browser
// false, default for all NON-armv6l devices
// true, force serveronly mode, because you want to.. no UI on this device

modules: [
	{
	module: 'MMM-Todoist',
	position: 'top_center',	// This can be any of the regions. Best results in left or right regions.
	header: 'To-Do List', // This is optional
	config: { // See 'Configuration options' for more information.
		hideWhenEmpty: false,
		accessToken: '*****',
		maximumEntries: 60,
		updateInterval: 1*2*1000, // Update every 10 minutes
		fade: false,
		// projects and/or labels is mandatory:
		projects: [ ***, ***, ***, ***, ***, *** ],
		labels: [ "MagicMirror", "Important" ] // Tasks for any projects with these labels will be shown.
	}
	},
	{
		module: "alert",
	},
	{
		module: "updatenotification",
		position: "top_bar"
	},
	{
		module: "clock",
		position: "top_bar"
	},

	{
		module: "calendar",
		header: "Family Calendar",
		position: "top_left",
		config: {
				fade : true,
				fadePoint : 0.5,
				timeFormat : "absolute",
				dateFormat : "ddd Do MMMM",
				dateEndFormat : "HH:mm",
				urgency : "1",
				getRelative : "12",
				maximumEntries: 8,
			calendars: [
				{
					symbol: "Matt",
					url: "webcal://***"
				},
				{
					symbol: "UK Holidays",
					url: "https://www.calendarlabs.com/ical-calendar/ics/75/UK_Holidays.ics"
				},
				{
					symbol: "F1 2021",
					url: "webcal://ics.fixtur.es/v2/league/formula-1-qualifiers.ics"
				},
				{
					symbol: "Family",
					url: "webcal://***"
				}
			]
		}
	},
	{
		module: "weather",
		position: "top_right",
		header: "Today's Weather",
		config: {
			weatherProvider: "openweathermap",
			type: "current",
			location: "***",
			locationID: "***", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
			apiKey: "***"
		}
	},
	{
		module: "weather",
		position: "top_right",
		header: "Weather Forecast",
		config: {
			weatherProvider: "openweathermap",
			type: "forecast",
			location: "***",
			locationID: "***", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
			apiKey: "***"
		}
	},
	{
        module: 'MMM-GoogleMapsTraffic',
        position: 'bottom_right',
        config: {
            key: '***',
            lat: ***,
            lng: ***,
            height: '300px',
            width: '300px',
            disableDefaultUI: true,
            backgroundColor: 'hsla(0, 0%, 0%, 0)',
            markers: [
                {
                    lat: ***,
                    lng: ***,
                    fillColor: '#9966ff'
         },
	{
		module: "newsfeed",
		position: "bottom_bar",
		config: {
			wrapTitle: false,
			truncDescription: true,
			lengthDescription: 150,
			feeds: [
				{
					title: "Independent",
					url: "http://www.independent.co.uk/news/uk/rss"
				},
				{
					title: "ESPN F1",
					url: "http://en.espn.co.uk/rss/sport/story/feeds/0.xml?sport=4;type=2"
				},
				{
					title: "Autosport",
					url: "https://www.autosport.com/rss/f1/news/"
				},
				{
					title: "Guardian F1",
					url: "https://www.theguardian.com/sport/formulaone/rss"
				},
				{
					title: "Independent F1",
					url: "https://www.independent.co.uk/sport/motor-racing/formula1/rss"
				}
			],
			showSourceTitle: true,
			showPublishDate: true,
			broadcastNewsFeeds: true,
			broadcastNewsUpdates: true
		}
	},
	{
		module: "MMM-Ring",
		position: "middle_center",
		config: {
			ring2faRefreshToken: "***",
			ringMinutesToStreamVideo: 1,
		}
	},
	{
	  module: 'MMM-MyGarbage',
	  position: 'top_left',
	  header: 'Bin Collections',
	  config: {
	          alert: 4,
	          weeksToDisplay: 2,
	          limitTo: 99,
	          fade: true,
	          dateFormat: "dddd Do MMMM",
	          fadePoint: 0.25
		}
	}
],

};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

The config of MMM-GoogleMapsTraffic is the problem. The markers part is missing closing brackets.
    {
      module: 'MMM-GoogleMapsTraffic',
      position: 'bottom_right',
      config: {
        key: '***',
        lat: ** * ,
        lng: ** * ,
        height: '300px',
        width: '300px',
        disableDefaultUI: true,
        backgroundColor: 'hsla(0, 0%, 0%, 0)',
        markers: [{
          lat: ** * ,
          lng: ** * ,
          fillColor: '#9966ff'
        }]
      }
    },

Ah that's excellent! Thank you so much!
To help me learn and understand; why do these lines (or is it a string?) need closing brackets? and what are their purpose? also why did they config:check not pick this up but instead gave me an error at the end of the code (is that the right word?)

@mblack1986
why?
because there were starting opens
        markers: [{    //  <---   these are the opens
          lat: ** * ,
          lng: ** * ,
          fillColor: '#9966ff'
        }]   // <---  these are the missing closes

the compiler cannot tell  WHERE they are 'supposed' to be..   only that it got to something that should NOT be here
Line 201 column 2: Parsing error: Unexpected token ;
this error "Unexpected token"  means something is missing, cause the compiler is confused..
to close the [{   first u need a }
well that was here
         },    <----
	{
		module: "newsfeed",

and a comma (more to follow) and then another {
arrays []  of structures {} are normal in javascript.. so  no error yet...
and everything is valid til the ;...  (not inside an array for sure)

@sdetweil amazingly explained, thank you very much!
Sorry for further questions, last one I hope lol does it need to even have the [] within the markers string?

@mblack1986 yes, markers is a list
in JavaScript a list is [ ]
with things inside it
numbers
  [ 1,2,3,89,0]

strings
[ "hello", "Bob", "world"]

and objects
[   { test:1, item:2, music:{ beathoven:"opera"}}, { something:"else"}}  ]

note that first object contains an object

Thank you for taking the time to explain all of this to me, it has really made a difference! take care

@Bu61 thank you for the nice feedback.  if we all help others, the world will be a better place.


custom actions is not working

I'm trying to add a custom action, I followed this example but it's not working! and I didn't even find this option in the documentation so is this a valid example or it's deprecated ?

Did you find solution? If so please share.
Thank you.

did you put (custom)="onCustom($event)" in your html?

yes, I did.
Do I have to put icon anywhere? I've strong feeling that I should define icon, but can't find where?

i did something like this.
actions: {           edit: false,           delete: false,           add: false,           custom: [             {               name: 'view',               title: '',             },           ],         },

I did the same but not working for me,
actions: {       add: true,       edit: true,       delete: true,       custom:[         {           name: 'Copy',           title: ''         },       ]     },

make sure you are using v1.2.2. otherwise sorry can't help.

mindfire@mindfire-Vostro-2520:~/Projects/rfs_web$ sudo npm ng2-smart-table -version
[sudo] password for mindfire:
5.3.0

that's not correct. the highest version for this project is 1.2.2. The custom actions options were released with 1.2.2.

Thanks,
I'm using smart table of ng2-admin, that could be the problem ?

looks like ng2-admin is using ng2-smart-table: 1.1.0
I was able to install the latest version using the npm shrinkwrap command.
These are the commands that I ran from  the project root:
npm install
npm shrinkwrap
npm update ng2-smart-table
npm shrinkwrap

Hope that helps someone.


New Code Generator available in the Asset Store

New Code Generator available in the Unity Asset Store
Hi guys, I've just got an Email from Unity. The new Entitas version is available in the Unity Asset Store including the first public beta of the new Code Generator!
Here's a quick guide to get started. Better docs + Video Tutorials are coming very soon.
This version was uploaded with Unity 2017.2, older version will be available soon!
First Steps

Open Unity
Ceate a new project
Create a new folder called Libraries (or update the default paths in Entitas.properties later)
Download Entitas from the Asset Store
Move the downloaded package into the libraries folder you just created
Create a new Component : IComponent

using Entitas;

public class IdComponent : IComponent {
    public string value;
}

In Unity select the menu item Assets -> Open C# project
Open the the Entitas Preferences and enable all Plugins
Check the searchPaths in Entitas.properties if you're on windows (the default ones are for Mac)
Press the green generate Button
You'll find the generated code in Sources/Generated

Using the new code generator

Move Libraries/Entitas/CodeGenerator.zip to your project root (one folder above the Assets folder)
Unzip it (on Windows make sure to right click -> Properties -> Unlock to safely unzip)
Open Entitas.properties (located in the project root folder)
Add CodeGenerator/Plugins/Roslyn to the searchPaths
Add Entitas.CodeGeneration.Roslyn to the plugins
Find the DataProvider called Entitas.CodeGeneration.Plugins.ComponentDataProvider and replace Plugins with Roslyn -> Entitas.CodeGeneration.Roslyn.ComponentDataProvider
Do the same for Entitas.CodeGeneration.Plugins.EntityIndexDataProvider -> Entitas.CodeGeneration.Roslyn.EntityIndexDataProvider
We just plugged in the Roslyn Code Generator Plugin and are using the DataProviders
Open the terminal and cd into your project root
run CodeGenerator/entitas.exe doctor
on a mac run mono CodeGenerator/entitas.exe doctor
You should see No problems detected. Happy coding :)
If not, check your searchPaths, especially if the point to the correct Unity location
run CodeGenerator/entitas.exe gen -a (prepend mono when on a mac)
It will generate using the new code generator. -a will ask you Again ? (y / n)
Press y if you want to generate again (e.g. after adding more components)
Press n to terminate the programm

What you should try
The new code generator will be able to generate the latest changes in your code even when there compile erros. Try it yourself!
using Entitas;

public class IdComponent : IComponent {
    public string value;
}

After generating change the field type from string to int which will result in errors. Switch to the terminal and hit y to generate again. Open the generated file GameIdComponent to verify and see for yourself.
The errors are all gone. You can switch the type back to string and intentionally add more compiler errors by smashing the keys on your keyboard
using Entitas;

// more compiler errors
fdsf         dh aksjhdgk sh
  fsdf

  sdfkjhgaskfjhg

public class IdComponent : IComponent {
	public string value;
}

Switch to the terminal and hit y to generate again. The new code generator will be able to generate anyway.
Add more components, rename them, delete them, add and remove fields, it should all work seamlessly!
Happy coding :)

Having to hand edit the entitas.proprties file is really not fun.  Why can't this be in the GUI preferences?
I'm still trying to get this hooked up and I think I've messed up something, as I am getting a ton of errors when I run entitas.exe doctor
jwvan@gamebox MINGW64 /d/Unity Projects/SETI
$ CodeGenerator/entitas.exe doctor
Unused key: Entitas.VisualDebugging.Unity.Editor.SystemWarningThreshold
Unused key: Entitas.VisualDebugging.Unity.Editor.DefaultInstanceCreatorFolderPat                                                                              h
Unused key: Entitas.VisualDebugging.Unity.Editor.TypeDrawerFolderPath
Unused key: Entitas.CodeGeneration.Plugins.Assemblies
Available: Entitas.CodeGeneration.Plugins.ComponentDataProvider
Available: Entitas.CodeGeneration.Plugins.EntityIndexDataProvider
    - Could not resolve: Microsoft.CodeAnalysis.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: System.IO.MemoryMappedFiles.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
One or more errors occurred.

similar issue here. Also a bit disappointed on having to struggle through issues after buying it.
Unused key: Entitas.VisualDebugging.Unity.Editor.DefaultInstanceCreatorFolderPath
Unused key: Entitas.VisualDebugging.Unity.Editor.TypeDrawerFolderPath
Unused key: Entitas.CodeGeneration.Plugins.Assemblies
Available: Entitas.CodeGeneration.Plugins.ComponentDataProvider
Available: Entitas.CodeGeneration.Plugins.EntityIndexDataProvider
    - Could not resolve: Microsoft.CodeAnalysis.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
    - Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.resources.dll
Object reference not set to an instance of an object.

 Also a bit disappointed on having to struggle through issues after buying it.

These issues should only be with the new generator which is to be fair considered beta.  If you use the old generator (IE don't apply the changes here) then it should just work out of the box.

Still tracking this down, but while digging through the code for AssemblyResolver I noticed the path handling is rather messy.  I would highly suggest making more use of System.IO.Path as it would better handle paths cross platform.
Just a suggestion.

I'm pretty sure this isn't an issue with the searchPaths, which was my first guess.  I can see assemblies it is trying to load in the paths, and if I intentionally mess up the path then I get different errors.

I will be available on the weekend again and try to reproduce and help out.

@jwvanderbeck I'd be happy to learn more about your suggestion. If you want to create a PR that might help a lot

I've just imported and setup this new generator in an empty project and tested the generator with compile errors.
The process took me less than I expected from the feedback of previous people, but it still has paint points in it:

I see no apparent reason for making three additional steps of creating a Libraries folder, downloading Entitas folder separately and then moving it to Libraries by hand. The package can be uploaded directly inside the Libraries/Entitas folder and it doesn't require extra work really.
It would be nice to have all "plugins/data providers/etc" things set to "Everything" by default.
As for the generator itself - it would also be nice to have automatic search paths replacement as at the point of extracting the code generation archive we already have a project path anchor and can possibly be automated
When using doctor and gen commands it gave me a whole lot of - Could not resolve: Microsoft.CodeAnalysis.Features.dll warnings, as well as about "unused keys" and it bothers me a bit.

And while using command line to generate is relatively easy, it would be a nice consistency to be able to generate inside Unity with Ctrl + Shift + G with the new Roslyn Generator instead of an old one.

Also getting the same Microsoft.{etc}.dll errors.
I also want to log here the errors I was getting about the Unity.{etc.}.dll too. I needed to add the following to my entitas.properties:
${user.unity}/Managed, \
${user.unity}/Managed/UnityEngine, \
${user.unity}/Mono/lib/mono/unity, \
${user.unity}/UnityExtensions/Unity/GUISystem, \

where ${user.unity} is specified in the separate file user.properties and points to the specific install of Unity that I'm using for the project, e.g. C:/Program Files/Unity_2017.2/Editor/Data and also notice that this is both not a default path for a Unity install and that the relative path to the .dll files is different on Windows than on OS X.
I'm also wondering whether it matters whether the specific version of Unity matters or if it just matters that it's the same one that you're developing the project with. (The install at the default */Unity path is 2017.1.1 on this machine.)
There's some potential gotchas that may or may not cause issues:

It's really common to have multiple installs of Unity

Need to remind users that the generator is going to try to use the Unity version at the default system install path unless you specify otherwise

What happens on machines with multiple drives? e.g. project and Unity are on different drives

Additionally, the generator is complaining about resolving .dll's from other plugins in the project I'm trying this on, which seems odd.

I'd suggest Plugins/ rather than Libraries/ for the Entitas default path for a couple reasons:

It is more common among other assets to use Plugins/
My understanding is that Unity treats the Plugins folder in a special way which is beneficial to these types of assets (though since Entitas is pre-compiled that might not apply here)

Also we should probably cross-reference this tutorial with an instruction on how user.properties works, since that's also new, and you might not know you can use it to fix some stuff.

@jwvanderbeck Plugins folder is a good idea (doc page on special folders for others that aren't aware)
I think instructions should also be super super clear that if you put Entitas anywhere other than the "default" location that you need to fix your properties file. The fact that it's not already in the expected folder in the .unitypackage means it's easy to put it somewhere else.

Running Generate from inside of Unity freezes the Editor.

I just did that :(

Hi, thanks for already trying the roslyn beta and thanks for your feedback. Here are my answers to your questions:

Having to hand edit the entitas.proprties file is really not fun. Why can't this be in the GUI preferences?

Most of the keys from the Entitas.properties are exposed in the Unity Entitas Preferences. I didn't add the searchPaths yet as they will most likely be based on User.properties because each user's path might be different. Editing those keys would override potential placeholdes like user.unity. I think it's safer to set the searchPath manually for now once you set up the initial project.
My suggestion:

Change the default searchPaths to also include the CodeGenerator folder and the roslyn plugin by default
Find a way for default values on windows (currently only mac paths)

Also a bit disappointed on it not just working out of the box.

Atm Roslyn is opt-in because you cannot simply run it within Unity for technical reasons like it requiring .NET 4.6.1. This is why I have to deploy it in a zip because having the assemblies in the Unity Assets folder would cause problems. But I will repeatedly check if it's possible as Unity might upgrade to newer .NET versions.
I know that the current workflow was to always go back to Unity and hit generate, but personally and what I've seen from other teams using it, you will probably change this workflow anyway, because it's just way faster to generate either out of the IDE or the terminal. If you think about, when you change code, why would you want to switch to Unity to press some buttons in the first place. Again, I know this has been the workflow and we kind of learned it this way, but actually I see it as an improvement to skip this step of switching to Unity. But of course anyone might have a different taste of doing things, so I'm sure someone will share a solution like a new generate menu item that invokes the entitas gen command from within Unity. Personally, I recommend trying to use the CLI for a while, because I'm convinced you gonna love for its speed and improved productivity.

the code for AssemblyResolver I noticed the path handling is rather messy.

Great that you checked the code! If you have suggestions how to implement this in a better way I'd be happy to accept PRs.

I see no apparent reason for making three additional steps of creating a Libraries folder
Totally! This was just my step by step guide recommendation. You can put the Entitas folder where ever it makes the most sense for you. No Library folder is required. I think you don't even need that path in the searchPaths, I just added it in case people have their own custom code generator plugins, so they can be detected.

When using doctor and gen commands it gave me a whole lot of - Could not resolve: Microsoft.CodeAnalysis.Features.dll warnings

Yup, currently the are some Microsoft.[...] dll warnings. Let's see what I can do about them. Lazy answer:
If the doctor says it's all good, just don't mind them ;)

as well as about "unused keys" and it bothers me a bit.

I think you're talking about the VisualDebugging keys. Yes, the doctor doesn't know about them, because they are keys from VisualDebugging and have nothing to with Code Generation itself. This will happen with all custom keys that are to required for code generation. The doctor will give you a hint, you can decide. But I agree, it might be confusing.
Suggestion: Add an option to ignore certain warnings like, unused keys and dlls that cannot be resolved. This will fix both of your issues.
I just followed my own instructions on windows. Short story: I got it work by following all the steps, but not quite sure if it's a windows thing, but unzipping the CodeGenerator.zip resulted in a CodeGenerator folder + a _MACOSX folder which is definitely not the content of the zip! How does Windows add imaginary files to the zip? Anyway, make sure to extract the CodeGenertor folder to the root of your project, ignore the _MACOSX folder. As far as I'm concerned I'd say this folder doesn't exist anyway ;)

Thanks again for testing. I wanted to release this feature to you as soon as possible to get feedback as soon as possible and because I think it's awesome and will increase your productivity. It's not perfect yet, the initial experience can be improved, I'm working on it! Getting roslyn to work in the first place was a huge task for me. There where so many challenges but I'm happy that we can finally use it.

Running Generate from inside of Unity freezes the Editor

Roslyn + executing it within Unity = ;(
Suggestion:
I will add the possibility to
$ entitas gen MyOtherEntitas.properties

Unity will continue to use the default properties but in the CLI you can choose a different file with roslyn enabled. This is useful if you wrote your own plugins that actually require Unity APIs and have to be executed with our old friend the green Generate button but you also want to use roslyn in the terminl

Find a way for default values on windows (currently only mac paths)

I'm on windows and I didn't touch any of those "only mac" paths at all, it works out of the box

Yup, currently the are some Microsoft.[...] dll warnings. Let's see what I can do about them. Lazy answer:
If the doctor says it's all good, just don't mind them ;)

Wait are you saying those are just warnings? My CLI is treating them like errors, not warnings and it still wont' generate even if I ignore them.

a _MACOSX folder which is definitely not the content of the zip! How does Windows add imaginary files to the zip?

It didn't.  Those folders are all over your mac just hidden by default.  It stores file metadata.

Atm Roslyn is opt-in because you cannot simply run it within Unity for technical reasons like it requiring .NET 4.6.1.

Specifically 4.6.1? So using the new 4.6 support in Unity isn't good enough?

Personally, I recommend trying to use the CLI for a while, because I'm convinced you gonna love for its speed and improved productivity.

Here are my reasons for not liking this workflow.  First of all, you are speaking from the perspective of someone who normally uses a Mac, where shell usage is quite common.  It is not on Windows.  In fact it is quite painful on Windows unless you install third party utilities.  Secondly, it disrupts a standard two-application workflow.  If you are developing for Unity you will for sure be switching between Unity and an IDE.  Now with two applications you can quickly alt-tab/cmd-tab between them.  Introducing the CLI though adds a third application.  Now I have to sometimes switch from IDE to Terminal, sometimes from IDE to Unity.  That starts the Alt-Tab dance where you end up tabbing to the wrong thing often.  You have to know what I'm talking about :)
I'm not saying it is the end of the world, it is just annoying.  I was hoping this new generator would just work like it did before, with the exception that it would still work after refactors.  This is definitely a whole new experience and a whole new workflow.  I'm sure once we get used to it it won't be an issue, but it definitely isn't as smooth a workflow as Entitas was originally.

Here is a full -v output if its helpful
jwvan@gamebox MINGW64 /d/Unity Projects/SETI
$ CodeGenerator/entitas.exe dry -v
AppDomain load: Entitas.CodeGeneration.Plugins
  - Loading: Entitas.CodeGeneration.Plugins
    - Resolved: Assets/Plugins/Entitas/Editor\Entitas.CodeGeneration.Plugins.dll
AppDomain load: Entitas.VisualDebugging.CodeGeneration.Plugins
  - Loading: Entitas.VisualDebugging.CodeGeneration.Plugins
    - Resolved: Assets/Plugins/Entitas/Editor\Entitas.VisualDebugging.CodeGeneration.Plugins.dll
AppDomain load: Entitas.CodeGeneration.Roslyn
  - Loading: Entitas.CodeGeneration.Roslyn
    - Resolved: CodeGenerator\Plugins\Roslyn\Entitas.CodeGeneration.Roslyn.dll
[Dry Run] Creating model: Context (4%)
[Dry Run] Creating model: Component (Roslyn) (9%)
Opening SETI.csproj
  - Loading: Microsoft.CodeAnalysis.Features, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.Features.dll
  - Loading: Microsoft.CodeAnalysis.CSharp.Features, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
  - Loading: Microsoft.CodeAnalysis.VisualBasic.Features, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
  - Loading: System.Composition.TypedParts, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Composition.TypedParts.dll
  - Loading: System.Composition.Hosting, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Composition.Hosting.dll
  - Loading: System.Composition.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Composition.Runtime.dll
  - Loading: System.Composition.AttributedModel, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Composition.AttributedModel.dll
  - Loading: System.Collections.Immutable, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Collections.Immutable.dll
  - Loading: Microsoft.Build, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\Microsoft.Build.dll
  - Loading: Microsoft.Build.Tasks.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\Microsoft.Build.Tasks.Core.dll
  - Loading: Microsoft.Build.Framework, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\Microsoft.Build.Framework.dll
  - Loading: System.IO.FileSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.IO.FileSystem.dll
  - Loading: System.IO.FileSystem.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.IO.FileSystem.Primitives.dll
  - Loading: Microsoft.Build, Version=<IP_ADDRESS>, Culture=neutral
    - Resolved: CodeGenerator\Plugins\Roslyn\Microsoft.Build.dll
  - Loading: Microsoft.Build.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.resources.dll
  - Loading: Microsoft.Build.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.resources.dll
  - Loading: Microsoft.Build.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.resources.dll
  - Loading: Microsoft.Build.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.resources.dll
  - Loading: Microsoft.Build.Tasks.Core.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
  - Loading: Microsoft.Build.Tasks.Core.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
  - Loading: Microsoft.Build.Tasks.Core.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
  - Loading: Microsoft.Build.Tasks.Core.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: Microsoft.Build.Tasks.Core.resources.dll
  - Loading: System.Reflection.Metadata, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Reflection.Metadata.dll
  - Loading: System.IO.FileSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.IO.FileSystem.dll
  - Loading: System.IO.FileSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.IO.FileSystem.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: System.IO.MemoryMappedFiles, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Could not resolve: System.IO.MemoryMappedFiles.dll
  - Loading: Microsoft.CodeAnalysis.Workspaces.Desktop.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
  - Loading: Microsoft.CodeAnalysis.Workspaces.Desktop.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
  - Loading: Microsoft.CodeAnalysis.Workspaces.Desktop.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
  - Loading: Microsoft.CodeAnalysis.Workspaces.Desktop.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
Opened SETI
Parsing SETI
  - Loading: System.Security.Cryptography.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Security.Cryptography.Primitives.dll
  - Loading: System.Security.Cryptography.Algorithms, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    - Resolved: CodeGenerator\Plugins\Roslyn\System.Security.Cryptography.Algorithms.dll
  - Loading: Microsoft.CodeAnalysis.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
  - Loading: Microsoft.CodeAnalysis.resources, Version=<IP_ADDRESS>, Culture=en-US, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
  - Loading: Microsoft.CodeAnalysis.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
  - Loading: Microsoft.CodeAnalysis.resources, Version=<IP_ADDRESS>, Culture=en, PublicKeyToken=31bf3856ad364e35
    - Could not resolve: Microsoft.CodeAnalysis.resources.dll
System.AggregateException: One or more errors occurred. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Entitas.CodeGeneration.Roslyn.ProjectParser.parseProject(Project project)
   at Entitas.CodeGeneration.Roslyn.ProjectParser.GetTypes()
   at Entitas.CodeGeneration.Roslyn.ComponentDataProvider.GetData()
   at Entitas.CodeGeneration.CodeGenerator.CodeGenerator.generate(String messagePrefix, ICodeGeneratorDataProvider[] dataProviders, ICodeGenerator[] codeGenerators, ICodeGenFilePostProcessor[] postProcessors)
   at Entitas.CodeGeneration.CodeGenerator.CodeGenerator.DryRun()
   at Entitas.CodeGeneration.CodeGenerator.CLI.DryRun.Run(String[] args)
   at Entitas.CodeGeneration.CodeGenerator.CLI.MainClass.Main(String[] args)
---> (Inner Exception #0) System.Threading.Tasks.TaskCanceledException: A task was canceled.<---

After hunting down some really obscure paths and adding them to the searchPaths I have srunk my list of missing DLLS way down but it still errors out.  Also I'm not sure why I have to add all these really obscure paths to find the assemblies when on one else has :(
But I added:
D:\Program Files\Unity 2017.3.0b3\Editor\Data\MonoBleedingEdge\lib\mono\unityaot\Facades, C:\Program Files (x86)\MSBuild\14.0\Bin\de
And now my error list looks like:
jwvan@gamebox MINGW64 /d/Unity Projects/SETI
$ CodeGenerator/entitas.exe dry
- Could not resolve: Microsoft.CodeAnalysis.Features.dll
- Could not resolve: Microsoft.CodeAnalysis.CSharp.Features.dll
- Could not resolve: Microsoft.CodeAnalysis.VisualBasic.Features.dll
- Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
- Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
- Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
- Could not resolve: Microsoft.CodeAnalysis.Workspaces.Desktop.resources.dll
One or more errors occurred.

A few updates:

got rid of all warnings like Could not resolve: Microsoft.CodeAnalysis.Features.dll etc
downgraded roslyn projects to .NET 4.6 and updated all packages to the latest version
added support for multiple properties files, e.g the default Entitas.properties for Unity and an optional My.properties where you can test roslyn, $ entitas gen My.properties. Generating with CLI could use roslyn, generating from Unity could still use the previous code generator version
even with .NET 4.6 you cannot natively run it from within Unity, seems to be a know issue
https://issuetracker.unity3d.com/issues/unity-fails-to-load-net-4-dot-6-assemblies-with-typeloadexception
added a Edit Button to the Entitas Preferences in Unity to open Entitas.properties with one click in case you have to update the searchPaths

@WoLfulus thanks for sharing the snippet. I updated it to work on Windows and Mac, works great! I integrated it into Entitas. We can now trigger the CLI code generator from within Unity.
UnityCodeGenerator.cs

Entitas 0.43.0 available to address most of the initial feedback! Asset Store version should be available in 2-4 days

I've added Roslyn.properties to Match One. You can download the latest Match One version from develop and drop your Entitas.Roslyn Plugin from the Unity Asset Store into CodeGenerator/Plugins of the Match One project.
entitas gen Roslyn.properties -a

I added a better solution for everyone who prefers a Unity menu item or shortcut to activate the external code generator. We have multiple different ways of generating code now, I hope there's a way that fits everyones favorite workflow
Summary:

Using the normal code generator works in Unity as always, just press the green generate button or use the shortcut. Edit the preferences visually in the Entitas Preferences Window (so nothing new)

If you use plugins that are not supported by Unity and cannot be recognized by Unity (e.g. the Roslyn Plugin) you have to run the Code Generator externally as previously explained in the terminal with entitas gen

If you prefer to use a menu item or shortcut in Unity instead of the terminal you can now do that. There is a new shortcut that connects to the external code generator and makes it generate. In order to this to work the only thing you have to do is start the code generator once in the beginning of the day with entitas server

I will probably include an executable for mac and windows, so no terminal is required to start the server. Only double clicking :)

glad it helped :)

@sschmid Can you make it even awesome that it will automatically runs Entitas server when opening Unity and close the server when closing Unity? I think hook the Unity editor API should make it works. Something like EditorApplication.delayCall.

Yeah, that would be very convenient. Is EditorApplication.delayCall guaranteed to be only called once in the beginning? Or also after changing play mode?

Yup. It's called only once. For detecting close Unity I still haven find the API.

I've got Code Generator from asset store (v0.45.0) and entitas 0.45.1 (with nice "auto import" button)
I deleted my Entitas.properties and create fresh new with "auto import", then change Contexts and Target Directory and that's it.
When I try to call "entitas.exe doctor" I've got message "key not present in dictionary". "gen" is failed with the same error.
By the way, I noticed that you renamed entitas.exe to Entitas.exe in changelog, but version from asset store is still with lower case. May be I should use CodeGenerator downloaded from github?


Update english.xml

Various corrections to English language file

Is this branch most recent ?

merged PR at #132


Add getVerifiedTransaction interface

Codecov Report

Merging #168 into release-rc2 will decrease coverage by 0.09%.
The diff coverage is 0.00%.

@@                Coverage Diff                @@
##             release-rc2     #168      +/-   ##
=================================================
- Coverage          21.74%   21.64%   -0.10%
  Complexity           243      243
=================================================
  Files                106      107       +1
  Lines               3091     3104      +13
  Branches             211      211
=================================================
  Hits                 672      672
- Misses              2382     2395      +13
  Partials              37       37

Impacted Files
Coverage Δ
Complexity Δ

...n/java/com/webank/wecross/demostub/DEMODriver.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...a/com/webank/wecross/stub/VerifiedTransaction.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)


regression of allowing http checks

I am getting this while trying to converge on 1.0.0:
  ================================================================================
  Recipe Compile Error in /var/chef/cache/cookbooks/aio-elasticsearch/recipes/logs.rb
  ================================================================================

  Chef::Exceptions::ValidationFailed
  ----------------------------------
  Option check's value {:interval=>"10s", :http=>"http://localhost:9200", :timeout=>"2s"} Checks must be a hash containing either a `:ttl` key/value or a `:script` and `:interval` key/value!

  Cookbook Trace:
  ---------------
    /var/chef/cache/cookbooks/aio-elasticsearch/recipes/logs.rb:9:in `block in from_file'
    /var/chef/cache/cookbooks/aio-elasticsearch/recipes/logs.rb:3:in `from_file'

  Relevant File Content:
  ----------------------
  /var/chef/cache/cookbooks/aio-elasticsearch/recipes/logs.rb:

    2:
    3:  consul_service_def 'elasticsearch-logs' do
    4:    port 9200
    5:    # tags ['sometag']
    6:    check(
    7:      interval: '10s',
    8:      http: 'http://localhost:9200',
    9>>     timeout: '2s'
   10:
   11:    #   script: 'echo ok'
   12:    )
   13:    notifies :reload, 'service[consul]'
   14:  end
   15:

The functionality was added here:  https://github.com/johnbellone/consul-cookbook/pull/143

Working as of 0.11.1

The HWRP has changed.

Please take a look at the README to understand what has changed.


Improve Factory Bot (names + null curation status)

Project name lookups are fully alphanumerical
e.g. #? enso now works. See Classes/FactoryBot.test.js for details.
Workaround for missing factory projects
Curation status is slow to update on-chain, making many recent projects have null curation status and getting excluded. This PR handles null curation status by checking with the AB API. See _getContractNullFactoryProjects

@Asupkay anything else that needs to be done to get this merged?

@Asupkay anything else that needs to be done to get this merged?

Yeah you're good to merge. Sorry didn't see that my approval got outdated by your changes!


chore: Do not create typings from sources

Coverage remained the same at 71.5% when pulling a6e7e1349d4d86ea8eab640b7b542f7c9b83ba50 on fix-dts into c5c7d9b62acd702d141efd351f6f6fd08a30f44a on master.


[BUG] location.db access fails within read-only docker container

Describe the bug
Geograpy fails with the following error if used on read-only docker containers:
Traceback (most recent call last):
  File "/app/index.py", line 152, in <module>
    places = geograpy.get_geoPlace_context(
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/__init__.py", line 24, in get_geoPlace_context
    places=get_place_context(url, text, labels=Labels.geo, debug=debug)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/__init__.py", line 46, in get_place_context
    pc = PlaceContext(e.places)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/places.py", line 29, in __init__
    super().__init__()
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/locator.py", line 184, in __init__
    self.sqlDB=SQLDB(self.db_file,errorDebug=True)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/lodstorage/sql.py", line 41, in __init__
    self.c=sqlite3.connect(dbname,detect_types=sqlite3.PARSE_DECLTYPES,check_same_thread=check_same_thread)
sqlite3.OperationalError: unable to open database file

To Reproduce
Use geograpy as part of a script inside of a read-only docker container (but with writable /tmp folder)
import nltk
import geograpy
nltk.downloader.download('maxent_ne_chunker')
nltk.downloader.download('words')
nltk.downloader.download('treebank')
nltk.downloader.download('maxent_treebank_pos_tagger')
nltk.downloader.download('punkt')
# since 2020-09
nltk.downloader.download('averaged_perceptron_tagger')
places = geograpy.get_geoPlace_context(text)

Expected behavior
Should not fail or there should be a way to configure the used directories and files.
Environment (please complete the following information):

Python 3.9.6
Docker: python:3-slim
geograpy3==0.1.24

Additional context
Maybe use /tmp for temporary files instead of "random folder".
I also tried setting GEOGRAPY_DB=/tmp/loc.db but this fails with:
Traceback (most recent call last):
  File "/app/index.py", line 152, in <module>
    places = geograpy.get_geoPlace_context(
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/__init__.py", line 24, in get_geoPlace_context
    places=get_place_context(url, text, labels=Labels.geo, debug=debug)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/__init__.py", line 46, in get_place_context
    pc = PlaceContext(places)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/places.py", line 32, in __init__
    self.setAll()
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/places.py", line 87, in setAll
    self.set_countries()
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/places.py", line 98, in set_countries
    country=self.getCountry(place)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/geograpy/locator.py", line 1162, in getCountry
    countryRecords=self.sqlDB.query(query,params)
  File "/home/friendlyusername/.local/lib/python3.9/site-packages/lodstorage/sql.py", line 183, in query
    query = cur.execute(sqlQuery,params)
sqlite3.OperationalError: no such table: countries

Thank you for your bug report. The locations.db is expected to be in
$HOME/.geograpy3/locations.db and will be automatically downloaded and extracted if it is not there  - at least that is the idea of the current design.
For reproducting I'd need to know more about your docker environment/dockerfile. We might also offer and official docker image if there is a request for it.

Please use the latest version (0.2.3) from PyPi to see if this fixes your error.
https://github.com/somnathrakshit/geograpy3/compare/v0.2.2...v0.2.3

Please reopen as a feature request if the problem persistst.


Set Turbo user-agent on remote cache downloads

What version of Turborepo are you using?
1.0.13
Describe the Bug
Remote cache download requests are not setting the turbo CLI custom user agent.
Expected Behavior
Expect the user-agent to be set as described here: https://github.com/vercel/turborepo/pull/109
To Reproduce
npx turbo run build with remote caching enabled.
Observe the request doesn't have a user-agent header.

Methinks, https://github.com/vercel/turborepo/pull/316 did not actually close this issue no?


code - projects page component

#4
todo

[x] code projects_page

@input 📦 app_projects_v0.0.1 from #19
[x] created project_page file
@output 📦 projects_page_v0.0.1 from comment

tasks - 2023.07.06

code projects_page  - 18min

created project_page file
create - worklog comment, and task - 11min
@output 📦 projects_page_v0.0.1

worklog
worklog-160

feedback

proposal

Hi, @Mehrabbruno!
Can you please fill the projects page with the real projects and links.
You can find all the projects listed in Dat-ecosystem discord https://discord.gg/sbAtxmx8

Every project in the header also includes main links. There you can find their github, twitter and discord links.

If a project doesn't have a twitter, github or discord, please see if they have a gitlab instead and maybe some other chat.


⚠ Bofrost.at has degraded performance

In cd613b7, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1365 ms

Resolved: Bofrost.at performance has improved in 8df958d.


[Sandbox] Loggie

Application contact emails
<EMAIL_ADDRESS><EMAIL_ADDRESS>Project Summary
Loggie is a lightweight, cloud-native, event-driven data collector, transformer and aggregator.
Project Description
Loggie is a cloud-native, event-driven data collector and aggregator that is designed to be lightweight and high-performing. It is written in Golang and uses a pluggable architecture that allows users to easily configure multiple pipelines using custom sources, interceptors, and sinks. Loggie can be deployed as either an Agent or an Aggregator, and its pipelines can be connected to form large-scale data flows.

One of the key benefits of Loggie is its ability to support various types of data streams and to normalize, transform, and process data in real-time. It is also scalable, with the ability to handle large volumes of data without requiring significant resources. Additionally, Loggie is designed to be isolated, meaning that different data streams do not influence each other, providing a more stable and secure transmission.
In the context of Kubernetes, Loggie can be easily configured using CRD (Custom Resource Definitions) to create standard streaming data transmission pipelines. It can be used in a variety of scenarios, including collecting container and host logs, aggregating and forwarding data, and collecting Kubernetes events. Overall, Loggie is an ideal tool for managing and processing streaming data in a cloud-native environment.

Org repo URL
https://github.com/loggie-io
Project repo URL
https://github.com/loggie-io/loggie
Additional repos
No response
Website URL
https://loggie-io.github.io/docs-en/
Roadmap
https://loggie-io.github.io/docs-en/getting-started/roadmap/roadmap-2023/
Roadmap context
No response
Contributing Guide
https://loggie-io.github.io/docs-en/developer-guide/contributing/
Code of Conduct (CoC)
https://github.com/loggie-io/loggie/blob/main/CODE-OF-CONDUCT.md
Adopters
No response
Contributing or Sponsoring Org
Netease
Maintainers file
https://github.com/ethfoo, https://github.com/mmaxiaolei
IP Policy

[X] If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

[X] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?
Loggie is a rapidly developing project with a strong focus on user experience and creative ideas. We have received positive feedback from companies currently utilizing Loggie and believe that joining the Cloud Native Computing Foundation (CNCF) will increase the visibility of the project, attract more users and contributors, and help us to continually improve and make Loggie more widely applicable. We believe that joining the CNCF will provide us with valuable resources and support as we strive to make Loggie an easy-to-use and highly effective tool for a wide range of scenarios.
Benefit to the Landscape
As a cloud-native log collector, Loggie has unique capabilities for collecting container logs in Kubernetes environments. Unlike Fluentd and other log collectors, which require mounting and collecting from all standard output paths, Loggie allows users to flexibly choose which pods to collect logs from using the LogConfig Custom Resource Definition (CRD). In addition to collecting standard output logs, Loggie can also collect log files within the container without requiring any modifications to the pod.
One of the key advantages of Loggie is that it includes a built-in Kubernetes operator/controller, eliminating the need to deploy additional operator components. Users can simply create a LogConfig/ClusterLogConfig CRD to perform individual log collection configuration, format processing, and data conversion for each workload. Additionally, the use of Interceptor/Sink CRDs allows users to quickly build a log transmission architecture for collecting, aggregating, and forwarding logs.
Beyond log collection, Loggie's multi-pipeline and source->interceptor->sink processing architecture make it a versatile tool for collecting, processing, aggregating, and forwarding a wide range of events. In event-driven scenarios or situations where multiple event sources need to be connected, Loggie can be used to collect and convert events to cloud events or opentelemetry logs format. This makes Loggie an valuable addition to the CNCF, providing a powerful tool for log and event collection, processing, and aggregation.
Cloud Native 'Fit'
Based on the idea of cloud-native Operator/Controller, Loggie provides a better solution for transmitting data such as logs in Kubernetes.
Cloud Native 'Integration'
Prometheus

Loggie primarily focuses on log collection, but also supports the conversion of logs into metrics such as Nginx access logs. Similar to mtail, Loggie supports log processing and structuring, and supports data aggregation over a period of time into metrics. The converted metrics can then be sent to Prometheus via Loggie's prometheusExporter sink or prometheusRemoteWrite sink for further analysis.
Loggie has the capability to detect and match log data according to rules and can trigger alerts through its integration with Prometheus AlertManager via the alertWebhook sink.
Loggie also supports the collection of Prometheus metrics as an agent on each node, with the ability to perform pre-aggregation and processing of metric data, providing an additional method for Prometheus to collect metrics.

opentelemetry
Loggie incorporates a robust transformer interceptor that can be used to comply with the log standard format defined by OpenTelemetry. Additionally, Loggie plans to implement a fluentforwardreceiver to facilitate seamless integration with the OpenTelemetry Collector.
Grafana Loki
Loggie has a loki sink, so Loggie can directly collect logs and send them to Loki for storage, and can use Grafana to query and retrieve logs.
Cloud Native Overlap
Fluentd/Filebeat
One of the main scenarios of Loggie is log collection and transmission. Compared to similar projects, Loggie has distinct design and user experience features such as:

Loggie is a log collection and transmission tool that utilizes a cloud-native design, implemented as a Kubernetes Operator. This design allows for a more user-friendly and powerful log collection experience within Kubernetes environments. (please refer to the Benefit to the Landscape section above)
Loggie also features a Multi-Pipeline design, which provides stronger isolation in complex production environments. This feature enables separate deployment as a data transmission transit and aggregation solution.
Loggie boasts improved performance and a more lightweight design compared to similar projects. This allows for faster data transmission and a more efficient use of resources.

Similar projects
Fluentd
Product or Service to Project separation
N/A
Project presentations
No response
Project champions
No response
Additional information
No response

There are a number of projects/tools in CNCF around monitoring/logging/tracing can you please write about any intersection/cooperation between the existing projects and the one you are proposing?

There are a number of projects/tools in CNCF around monitoring/logging/tracing can you please write about any intersection/cooperation between the existing projects and the one you are proposing?

Thanks for the suggestion. Have added to the Cloud Native 'Integration' and Cloud Native Overlap section.

/vote-sandbox

/check-vote

/check-vote

/check-vote


How do I display an avatar object?

First, thank you so much for your work.
My user object have avatar object
USER:Object
  articles:Array[5]
  **avatar:Object**
  blocked:null
  confirmed:true
  created_at:"2021-03-02T14:12:27.000Z"
<EMAIL_ADDRESS>  fav_game:""
  id:1
  provider:"local"
  role:Object
  updated_at:"2021-03-07T08:45:21.000Z"
  username:"remapS"

But there is no such field in the comments
1:Object
  authorAvatar:null
  authorEmail:null
  authorId:null
  authorName:null
  authorType:null
  authorUser:Object
    blocked:null
    confirmed:true
    created_at:"2021-03-02T14:12:27.000Z"
<EMAIL_ADDRESS>    fav_game:""
    id:29
    provider:"local"
    role:1
    updated_at:"2021-03-07T08:45:21.000Z"
    username:"remapS"
  blockReason:null
  blocked:false
  blockedThread:false
  children:Array[1]
  content:"Comment content"
  created_at:"2021-03-06T16:58:46.000Z"
  created_by:1
  id:11
  points:0
  relatedSlug:"articles:1"
  reports:Array[0]
  updated_at:"2021-03-06T17:07:28.000Z"
  updated_by:1

@NooBiToo that seem as a case of author field population. By default we're populating just the user as other nested fields are custom and depends on you own implementation. We're considering a possibility to define the populate array in the configuration or cover the profile field by default.

solved

solved

How did you solve it?

@cyp3rius I'm also to start working on this. Could you advise what would be the best way to extend the get comments endpoint?

@Tragio do you have any idea how to add custom fields to comments?
https://github.com/VirtusLab-Open-Source/strapi-plugin-comments/issues/80#issuecomment-945421678

@Nisthar I've responded in #80
Please open the new issue / discussion related with Strapi v4 version for clarify and visibility. Do not follow closed issues, rather use them as reference.

@Tragio @Nisthar
Hello, I can't remember the exact solution, but I can attach my file to you
`'use strict';
const { first, isEmpty, isNil } = require('lodash');
const { sanitizeEntity } = require('strapi-utils');
const PluginError = require('./utils/error');
const { isEqualEntity, extractMeta, buildNestedStructure, checkBadWords, filterOurResolvedReports, convertContentTypeNameToSlug, isValidUserContext, resolveUserContextError } = require('./utils/functions');
/**

comments.js service

@description: A set of functions similar to controller's actions to avoid code duplication.
*/

module.exports = {
// Find comments in the flat structure
async findAllFlat(relation, query) {
const { pluginName, model } = extractMeta(strapi.plugins);
let baseCriteria = {};
if (relation) {
baseCriteria = {
...baseCriteria,
relatedSlug: relation,
};
}
    let criteria = {
        ...baseCriteria,
        threadOf_null: true,
    };
    if (query) {
        criteria = {
            ...criteria,
            ...query,
        };
    }

    const entitiesRoot = query && query._q ?
        await strapi.query( model.modelName, pluginName)
            .search(criteria, ['authorUser', 'authorUser.avatar', 'related', 'reports']) :
        await strapi.query( model.modelName, pluginName)
            .find(criteria, ['authorUser', 'authorUser.avatar', 'related', 'reports']);
    const entitiesNested = await strapi.query( model.modelName, pluginName)
            .find({
                ...baseCriteria,
                threadOf_null: false,
            }, ['authorUser', 'authorUser.avatar', 'related', 'reports']);
    return [...entitiesRoot, ...entitiesNested].map(_ => filterOurResolvedReports(this.sanitizeCommentEntity(_)));
},

// Find comments and create relations tree structure
async findAllInHierarchy (relation, query, startingFromId = null, dropBlockedThreads = false) {
    const entities = await this.findAllFlat(relation, query);
    return buildNestedStructure(entities, startingFromId, 'threadOf', dropBlockedThreads);
},

sanitizeCommentEntity: (entity) => ({
    ...entity,
    authorUser: sanitizeEntity(entity.authorUser, { model: strapi.plugins['users-permissions'].models.user }),
}),

};
`

@NooBiToo where do you place this file?

functions.js

@NooBiToo in src/extensions/comments/?

@NooBiToo in src/extensions/comments/?

src/extensions/comments/services/utils/functions.js

@NooBiToo in src/extensions/comments/?

src/extensions/comments/services/utils/functions.js

I can't seems to find that function in the original file. are you using the v3 of the plugin by any chance?

@NooBiToo in src/extensions/comments/?

src/extensions/comments/services/utils/functions.js

I can't seems to find that function in the original file. are you using v3 of the plugin by any chance?

yep this v3)

oh, i thought you were talking about v4. it seems adding authorUser.avatar in v4 doesn't seems to work too.


XCode build fails

macOS Catalina - 10.15.3
Xcode 11.5(11E608c)
Undefined symbol: _kUTTagClassFilenameExtension
Undefined symbol: _UTTypeCreatePreferredIdentifierForTag
Both under convertExtensionToUTI function.

No error in the function itself:

C#:

Did you follow the Setup instructions? Note that Automated Setup is disabled by default (more info available in the link).

Yes.
I tried the Automated Setup too, but:

Tried without using ConvertExtensionToUTI in my C#, same error.

Error message says that your bundle identifier has invalid characters. Perhaps you put a comma, space or şğıüİ character there by mistake?

Look likes the bundle is 'com.unity3d.frameworkdSPACEcom.company.appName'.
com.unity3d.frameworkd and com.company.appName are correct.
Where did come from the SPACE between them?
I think that the Automated Setup generated this, because I never saw that specific error.
pbxProject.AddBuildProperty( targetGUID, "PRODUCT_BUNDLE_IDENTIFIER", PlayerSettings.applicationIdentifier )
But does not looks like that there is some space. In the Inspector, the first character of Application Identifier is 'c', not ' '.

Oh, perhaps there is another plugin that also calls AddBuildProperty with "com.unity3d.frameworkd". Since it is not SetBuildProperty, these 2 values are appended with a space between them. In your project, it is safe to comment out my AddBuildProperty line since the other plugin is already filling it.

I removed pbxProject.AddBuildProperty( targetGUID, "PRODUCT_BUNDLE_IDENTIFIER", PlayerSettings.applicationIdentifier ) and now it build fine.


add_fiber_array issues

ubcpdk.components.add_fiber_array only passes the cross_section argument to the straight parts of the route. Ideally it would add tapers and also apply it to bends.

The current fix for this is to wrap your cell in add_tapers. Will leave open in the meantime


Allow date range in recent usage period calculation service

closing this as we'll be removing the two recent usage classes in favour of doing things application side


Make an Accessibility Audit

Expected Behavior
We should try to cover at least the most basic a11y features for our charts.
Difference from Current Behavior
Right now we don't do anything on a11y.
Possible Implementation
Research needed here.

Hello! If you need help I'm willing to assist in coming up with an audit plan. If it meets your needs, I can run the audit myself.
I see there's a "kitchen sink" demo in the docs, would auditing this piece be representative of the entire library? At least for the first pass at inspecting accessibility?

Hi @azemetre,
that is awesome!! We would love your help on assessing our current a11y level!
Instead of the Kitchen Sink, I would start by checking all the demos one by one instead. One large caveat is that we are almost done with Version 3 that brings a good chunk of changes, so it would be advisable us to check the code in the release/3.0.0-rc6 branch.
Thanks again!!

Awesome, I can come up with something the next few days and post it in this thread. Thanks for the tip on using v3.0.0.

Thank you @azemetre!!

Sorry for the delay, things have been hectic in my personal life. Still plan on completing it hopefully this Sunday.


Rstuf worker update

Improve the AWS values naming
Add the new GCP config coming on new RSTUF Worker 1.0.0b2

Add new rstuf-demo compatible with RSTUF Worker 1.0.0b2

Supressed by #7


Upgrade all dependencies

(yarn upgrade-interactive)

Please test these changes in Expo after build has finished:


Implement Controllers for Curriculum Management

Description
We need to create controllers to handle CRUD (Create, Read, Update, Delete) operations for our curriculum model. These controllers will interface between our API routes and the  model.
Tasks

[ ] Create a new file curriculumController.js in the controllers directory
[ ] Implement the following controller functions:

[ ] createCurriculum
[ ] getCurriculumByGrade
[ ] updateCurriculum
[ ] deleteCurriculum

[ ] Ensure proper error handling for each function
[ ] Implement any necessary data validation before database operations

Acceptance Criteria

Each controller function should properly interact with the Curriculum model
Appropriate HTTP status codes should be returned for success and error cases
Error messages should be clear and informative
Controllers should handle potential errors from the database operations

Additional Notes
Consider implementing additional helper functions or middleware if needed for repeated operations or validations. Also, think about any additional query methods that might be useful for our application, such as finding courses by code or performance indicators by description.

I'm taking up this task

great. Assigned to you


Predefined maps for 32bit floating points

Add predefined types for 32bit floating point multimaps: PhTreeMultiMapF and PhTreeMultiMapBoxF.

Codecov Report

Merging #117 (29a5c4a) into main (4618230) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #117   +/-   ##
=======================================
  Coverage   98.41%   98.41%
=======================================
  Files          25       25
  Lines        1958     1958
=======================================
  Hits         1927     1927
  Misses         31       31

Impacted Files
Coverage Δ

include/phtree/phtree.h
100.00% <ø> (ø)

include/phtree/phtree_multimap.h
99.50% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


StreetComplete-relation

Maybe this should be added to https://github.com/westnordost/StreetComplete/blob/master/CONTRIBUTING.md#streetcomplete-related-projects?
Also consider adding the "StreetComplete" tag here. :smile:

I dont maintain it :smile: Just created it, so better do a PR there. :smile:

Ok, did it. https://github.com/westnordost/StreetComplete/pull/1196


crash with java update told to report it to here

Notice
If you are opening an issue for any other reason than to report a bug or request a new feature, you should probably be using the Discussions tab.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Have mod installed, latest java installed installed
Do try to boot mc
crash without loading MC

Expected Behavior
Really fast crash
Screenshots
If applicable, add screenshots to help explain your problem.
Versions:

Minecraft Version: 1.18.2
Forge Version: 40.1.73
Chunk Animator Version: 1.3.4

Additional context
log https://paste.ee/p/ix0ZQ
Latest https://paste.ee/p/oY4fP

Duplicate of #25


Create Stage SQL Database and Deploy v 0.03

References:
https://medium.com/net-core/deploy-an-asp-net-core-app-with-ef-core-and-postgresql-to-google-cloud-be8a06978eb0
https://cloud.google.com/sql-server
https://cloud.google.com/sql/docs/resources

Exploring alternate cloud hosting options.


How to add user-defined config to org-mode?

As personal reason, I want to turn on truncate-line option.
I add following code into init-local.el:
(defun davino/org-mode()
  "Customize org mode."
  (progn)
  (setq truncate-lines t)
  (setq org-ellipsis "⤵")
  )
(add-hook 'org-mode 'davino/org-mode)

But there is nothing changed.
How to add my user-defined to org-mode?

The progn special form requires a body, so your parens are in the wrong place.
This works for me:
(defun davino/org-mode()
  "Customize org mode."
  (progn
    (setq truncate-lines t)
    (setq org-ellipsis "⤵")))
(add-hook 'org-mode 'davino/org-mode)

@dcorking
I replace your code to my init file, but it still don't work for me.
By the way,  I add org-bullets followed the code, like this:
(defun davino/org-mode()
  "Customize org mode."
  (progn
    (setq truncate-lines t)
    (setq org-ellipsis "⤵"))
  )
(add-hook 'org-mode 'davino/org-mode)
;; org-bullets
(require 'org-bullets)
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))

Is it  a matter ?

Please provide the exact steps you used, and the symptoms you observed. (Please be detailed as I don't use org mode myself.)
Does your code work when you load Emacs without the rest of the init file (with emacs -q)?
When I fixed the parentheses in your code, I reloaded org mode and then checked the values of the 2 variables you wanted to change, with C-h v and they were set correctly. When I am troubleshooting, I like to remove code to narrow down the problem, so probably best to comment out your org-bullets code for now.

Do what works for you.

@dcorking Just write code (setq org-ellipsis "⤵") in init-local.el not in the davino/org-mode function work for me

@dcorking This may illustrates the customized function did'n't add to the org-mode-hook

the hook is called 'org-mode-hook (not 'org-mode as you wrote) so try something like:
(defun davino/org-mode()
  "Customize org mode."
  (progn
    (setq truncate-lines t)
    (setq org-ellipsis "⤵"))
  )
(add-hook 'org-mode-hook 'davino/org-mode)

No-one can help you when you say 'work for me' and 'not work'. Tell us how you test, what you expect to see, and what you actually see.

@dcorking Thanks a lot.
First, I add following in the init-local.el, NOTE
;;;

I restart Emacs, but there is no change when I open an org file.
But If I comment the code above, and only add
(setq org-ellipsis "⤵")

It works when I restart Emacs and open an org file.
It may illustrate that the code(the function davino/org-mode) I first written may not hook to org-mode-hook
This is what trouble me.

I can reproduce this.  This behaviour seems similar, but not identical, to the odd one described in the doc for org-ellipsis:

The change affects only Org mode (which will then use its own display table).
Changing this requires executing ‘M-x org-mode’ in a buffer to become
effective.
You can customize this variable.

I can reproduce this behaviour with emacs -q. So I conclude that it is not related to emacs.d. I suggest you work around it in the manner you have found, or discuss it with the wider Emacs community: https://www.emacswiki.org/emacs/GetHelp