Clarification Questions

Hi Daniel and pyDGS,
I am a python beginner still learning, so bare with me here! I am trying to run pyDGS to analyze several high resolution photos of beach sands that I have. I have gotten the program to run, but am still a bit confused about a few things and was wondering if someone could help clarify them for me.

Am I correct in assuming that the program analyzes the entire picture? Therefore the picture should be cropped prior to being put through pyDGS? (I would need to crop out my scale in the picture)

Does the picture resolution/size matter? My photos are high resolution and I have tried cropping them down, so now they are about 2000x2000 pixels. Will this affect the test, and would I need to change anything prior to running the test other than the scaling?

Do I understand right that the maxscale variable determines up to what size the largest grains are in the image? i.e the smaller the maxscale value, the larger the grains are in the image? Or do I need to adjust this factor based on my image size? Also, does that mean there is no lower limit to grainsize other than what is outlined in the Buscombe (2013) paper?

Any and all help or advice is welcomed!
Thanks,
Kurt

Hi Daniel, thank you for the update! I got the program to start but am running into an error that prevents me from getting any data outputs.
When I run the new run_dgs.py file, it goes for a little showing the progress bar moving to 100%, but after it completes nothing is saved to any excel files or images. When I run the program in VS Code, it tells me the following error after the progress bar completes to 100%:
FileNotFoundError: [Errno 2] No such file or directory: 'demo_results/stats_batch_2021-06-07-15-20.csv'

I decided to go back and try just the test.py file, not changing anything, and interestingly I also got an error which is the following:
cannot open data\IMG_0229.JPG

I've been playing around for a while trying to resolve this issue, but have not been able to fix it yet. I tried redownloading the zip file and also tried running the code both in VS Code and Anaconda's CMD.exe prompt but have not gotten past this error. I'm not sure if I am missing anything here? Any and all help is welcome!

It's telling you the directory demo_results doesnt exist, so check to see if it moved? Given that you cant run the test file either suggests you have moved files around or you're not following the instructions


Delay before kill

I have a problem, Windows 11 Pro 22621
thread 'main' panicked at 'failed to bind listener: Os { code: 10048, kind: AddrInUse, message: "Solo se permite un uso de cada dirección de socket (protocolo/dirección de red/puerto)" }', C:\Users\afcar\.cargo\registry\src\github.com-1ecc6299db9ec823\astra-0.1.3\src\server.rs:108:58

In the part of bench-bot, seems that kill is not fast enough
Line 185
let _ = server.kill(); //This only works with a delay
I just added delay before killing and now it works
thread::sleep(Duration::from_secs(5));
This should be a PR but I'm not sure, anyways if someone has this problem it's a simple fix

Probably we should fix it the right way. Like check if process is killed before spawning new one.


chore: remove deprecated kiali plugin from janus

Part of https://issues.redhat.com/browse/RHIDP-3550

Closing as the plugin will be removed after the frontend plugin is migrated as well


Lark grammar?

Are there any plans to create a Lark grammar for Lark?  The only file currently in lark/grammars is common.lark, which defines a few terminals.
The authoritative definition of Lark would logically be expressed as a grammar (as opposed to "what the grammar reference says" or "what the latest version of the code parses").  Note that RFC 5234 defines the ABNF grammar that authoritatively validates ABNF specifications.

There is a reference-quality grammar in examples: https://github.com/lark-parser/lark/blob/master/examples/lark.lark
Do you think there is a benefit to making it formal?

Yes, I think there should be a formal lark-grammar for lark. Mainly, so that I can apply it to the intellij-plugin I am developing and the theoretically planed linter I think about developing.

Well, you can already use the grammar I linked to. It's correct and fairly comprehensive.

There are some things in lark.lark that don't match what load_grammar.py implements.  For example, I learned the hard way that load_grammar only allows rule aliases on top-level alternates, although lark.lark says they're valid on alternates at any depth.  Another example is that lark.lark says "%ignore" expansions, but load_grammar requires that expansions  be derived as expansions -> expansion -> value -> Terminal.

You're welcome to submit a PR that fixes lark.lark

Sounds good.  I wasn't sure which version was definitive.  So, basically the loader is correct and the grammar should reflect what it does, right?
While I'm at it, I'll take a look at the grammar reference documentation and make sure it agrees with the loader code.

Yes, load_grammar.py is the "ground truth", for better or worse.

PR #1388 submitted for my observations above, plus several others I found.


Changing spelling of SQL Light to SQLite

Hi @bennatpjose, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


examples: fixed fault-injection delay demo

Description:
fault injection example did not work for delay option. After gdb debugging it was discovered that fault injection config requires delay part to be present. Without delay part Envoy assumes that Delay is disabled and does not scan RTDS for delay config updates.
Risk Level:
Low:
Testing:
Did manual testing as described in https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/fault_injection
Docs Changes:
No
Release Notes:
No
Fixes: #11095

@alyssawilk I think this is ready for merge.


open ai api

Hi there, i have managed to get all setup with wire pod, thanks team, great product.
I am having issue with the open ai api, i logged into open ai and got an api key and added it, but when i ask my vector a question he responds with “open ai is not responding”
Any ideas anyone?
Thanks

I'm pretty sure that you have to pay for open ai api :(

U have to pay but it not much. Just go set your monthly allowance amount on open ai.


Cannot open configuration page when developing via vscode remote development

Hello.
I remotely connect to Linux on Windows via vscode's [VS Code Remote Development] (https://code.visualstudio.com/docs/remote/remote-overview).
Now I am going to configure Api Key via Tabnine::Config, but I can't open http://linux_server:5555 in my browser. I guess because TabNine bind is the <IP_ADDRESS> address. Instead of <IP_ADDRESS> or all available IPs for this Linux machine.
Can you solve my issue?

same issue here

Same too.

Same here.

Solution found! Just setup a port forward on port 5555 and reload the page.
Solution A: Port forward by VS Code Remote SSH:

Solution B: Port forward by command line:
ssh -L 5555:<IP_ADDRESS>:5555<EMAIL_ADDRESS>

@hiramhuang yes you're right it works since vscode 1.54 because i tried already that before (1.53) but the port forwarding didn't worked well at that time.
Good thing that's working now!

The proposed solution only works if the developer uses its LOCAL VS Code. What if developers work entirely remote, via browser?


Make torch.Tensor and spacy models cacheable

Override Pickler.save to implement deterministic reduction (lazily registered; inspired by https://github.com/uqfoundation/dill/blob/master/dill/_dill.py#L343) functions for torch.Tensor and spaCy models.
Fix https://github.com/huggingface/datasets/issues/5170, fix https://github.com/huggingface/datasets/issues/3178

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


No notification on linux desktop

Hi
First of all thank you for this Google music player, I love it !
Maybe I missed something but I have no notification on my linux desktop.
I'm running debian stable on XFCE.
Thank you for your answer ;-)

You need to enable them in GPM settings.

Thank you, I didn't see GPM settings :S


Debug - Step Into

Hello,
Can you help me, please, with the following information:
For PostrgreSQL Debugger - when you will introduce functionality "Step Into"?
Thank you,
Daniel

+1 from me.  This would be a great enhancement, please.  I have a lot of modular functions and the ability to debug them from the calling function would be a huge benefit.
Thanks for a great product.


Suggestion: Support video playback for .mts and .m2ts (AVCHD) clips

Hi there,
besides the support videos in mp4, ogg, ogv, webm format I would like to suggest adding support for .mts and .m2ts video clips. These two formats  are used by some cameras and camcorders of e.g. Sony, Lumix, etc. (see: AVCHD).

Hi,
Unfortunately, only mp4, WebM and Ogg files are supported in the browser. More details here. I cannot really do anything to fix it.
A more detailed answer tho this issue here: https://github.com/bpatrik/pigallery2/issues/66#issuecomment-488240044 .
In short:
I'm actually planning to make it possible to reconvert original photos/videos, so that I can support more extensions (like raw photos, .mov-s, etc..).
Read more about this idea here #66 and here #50 .
Best,
Patrik

Hi,
The app now supports video transcoding with ffmpeg.
Therefore more video formats are supported.
See the full list here: https://github.com/bpatrik/pigallery2/blob/f2faa4cd25be53dd76ce750ea05f3181652f758d/src/common/SupportedFormats.ts#L21-L39
Please note that transcoding should be done manually in the settings. (or schedule it in advanced setting mode)
Best,
Patrik


Bintray gradle setup needs to be replaced with mavenCentral setup

Bug Report
With bintray going away we no longer need out bintray scripts in our gradle setup. Moving forward we will need to be autoamte a way to release to mavenCentral

Fixed with #1663


[Proposal][UI][HttpServer] FE frontend and backend separation

Status Quo and Motivation
The current Doris FE module has a simple http server and UI built in. The UI currently has relatively simple functions and is only used for the display of some information.
At present, Doris does not use a frontend and backend separation framework, resulting in a large amount of html and js code embedded in the FE module. When we want to modify some frontend elements, we have to update and upgrade the main code, which is expensive to maintain.
At the same time, the current http server is written by Netty, which has relatively simple functions. If more advanced functions are needed, a large amount of additional code needs to be written. There are already many very mature web frameworks in the industry, and we should use them to simplify our development.
Implementation
Spring is a very mature open source framework in the industry. It is very convenient to build a complete Web application through SpringMVC and Spring Boot. We can also easily use the spring framework to complete a series of functions such as authentication, session, and cookie. At the same time, RESTful standard API can be developed quickly.
The UI code is completely stripped from the FE module. The FE module only provides standard RESTful API. This allows more flexible use of the frontend framework to develop Doris's UI interface. Here I choose to use Vue as the frontend framework, and I will transplant all the functions of the current WebUI to the new framework. This UI may not be the final form of the UI, but I think it is a good start, and more extensions can be made under this framework in the future.
How to submit my code
There are many code changes this time. In order to ensure that the code can be merged without affecting the trunk code, I am going to submit the code according to the following steps.

Submit the new version of the API document for the interface Review.

Submit the UI part, which is completely independent and will not affect the existing functions of the main code. Before the new version of RESTful API is enabled, this part of the code will not take effect.

Submit the new RESTFul API code. This part only adds files and does not modify existing functions. And this part of the function will not be enabled, so you can ensure that the trunk code can still run normally.

Submit a new version of HttpServer, based on Spring. This part of the code will replace the old http server implementation before, and connect the new version of the RESTful API and the new version of the UI. After the code is merged, all new functions are enabled.

Nice Job!
I followed this feature for a while before, and it looks good to me.

Nice Job!
Just have had a quick tour of the code, and some tips here could be of help:

Precompiled css frameworks like sass stylus less might be better for a theme customization?
Replace some px with rem might be better for the future responsive development?
Use mixin for all pages that have a paginated table, instead of setting the same code in every page?
A more detailed eslint configuration file?
Using jwt or session instead of basic auth as an authentication method?
Currently lack of multi-languages neither in the frontend nor the backend?
Make an integration with Swagger to have a better API document maybe?

Actually there is a nice frontend template that we can refer to vue-element-admin

Nice Job!
Just have had a quick tour of the code, and some tips here could be of help:

Precompiled css frameworks like sass stylus less might be better for a theme customization?
Replace some px with rem might be better for the future responsive development?
Use mixin for all pages that have a paginated table, instead of setting the same code in every page?
A more detailed eslint configuration file?
Using jwt or session instead of basic auth as an authentication method?
Currently lack of multi-languages neither in the frontend nor the backend?
Make an integration with Swagger to have a better API document maybe?

Actually there is a nice frontend template that we can refer to vue-element-admin

Thank you for your advice! We were really inspired by it. But I don't understand what is lack of multi-languages means. Why we need multi-languages?
And we have plans to rewrite the frontend page in the future. We will use React instead of Vue.
Here are some reasons.

Vue3.x is at release candidate stage. It has a lot of breaking changes from the 2.x,  If we use Vue 2.x, We have to rewrite it again in the future which is we don't want to do.

Our team uses React, So we hope to use common skillset.

Here is the skillset will looks like

React
TypeScript
Less
Eslint
Webpack
RxJS
Antd

Other Info

rem or px is ok
Paginate related code will be a react hooks, like usePaginate.
OAuth and Swagger are great ideas. We will consider whether to add them to our code.

Why we need multi-languages?

multi-languages is required. And default should be English.

Why we need multi-languages?

multi-languages is required. And default should be English.

Get it!, Definitely it is required!


The “Programs” tabs are not displayed properly.

Description:
When the application have a lot of (Tab Names)  and more rows are needed to display the tabs, the tabs before the first row are not displayed properly.
-Env:
Device: MacBook Pro
Google Chrome Version 54.0.2840.98 (64-bit)
STEPS:
Steps

Open the Crafter studio with the Event site.
On the site bar, locate the components section.
Click on the edit button of the “Programs“  component.
On the Programs Details section add 10 new programs.
Eg. Program 1, Program 2
Click on the Save and Close Button.
Go to the programs section preview and click on the tabs.

CURRENT RESULT:
The “Programs” tabs are not displayed properly.
https://screencast.com/t/UVBamq16Tjx
EXPECTED RESULT:
The “Programs” tabs should be displayed properly.

Fixed

Bug verified and closed as fixed in build f2ef5e6.


Slight elaboration of shorthand usage in config.js

I found myself adding this brief elaboration on the concept of shorthands to my mirage/config.js files.
I know an effort was made to clean the comments in this file a short while ago, but perhaps this would still be a handy -- while also clean & concise -- snippet for anyone new to Mirage?
P.S: regarding the failing build: this might be contingent upon #698.

We used to have more examples in the config but I think I prefer sending folks to the docs. This is how Rails' routes.rb file evolved as well.
Instead of this change how about we post a link to the shorthands reference?
http://www.ember-cli-mirage.com/docs/v0.2.0-beta.7/shorthands/

Perfectly okay with me. And in fact, leveraging the docs is, indeed, so much better now that I think about it.
There's the slight issue of keeping the versioning up to date, but that shouldn't be any trouble once we get to a stable 0.2 (and beyond).


Feat: Allow krb5 config through environment variables

Fixes #156
The Kerberos spec defines environment variables that point to config, key tab, and cache. This change enables use of those variables so the connection string can omit them.
This change will allow go-sqlcmd to check if KRB5_CONFIG env variable is set and use krb5 auth on Linux clients knowing it's available. We won't need to add Kerberos specific parameters to the sqlcmd command line.

BTW I don't have a kerberos setup to test with. Can someone try it out?

Codecov Report

Merging #157 (a117041) into main (e51fa15) will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #157      +/-   ##
==========================================
- Coverage   74.36%   74.31%   -0.05%
==========================================
  Files          31       31
  Lines        6229     6229
==========================================
- Hits         4632     4629       -3
- Misses       1318     1320       +2
- Partials      279      280       +1

Files
Coverage Δ

version.go
100.00% <ø> (ø)

... and 1 file with indirect coverage changes


Extend packaging pipeline to archive the sdist and bdist.

python -m build creates a pyetta-[0-9a-ZA-Z\.-]*?\.tar\.gz and pyetta-[0-9a-ZA-Z\.-]*?\.whl files. These should be archived as part of the build.

Address #30 first.


Added sendTemplate functionality to match Mandrill's client

Duplicated and adapted send logic to match sendTemplate requirements (barely template_name and template_content).
Added tests too.

We're going with something closer to this: https://github.com/Rebelmail/nodemailer-mandrill-transport/pull/22

Great! That makes sense.
Thanks.
2015-11-25 4:43 GMT+01:00 Devin Torres<EMAIL_ADDRESS>
We're going with something closer to this: #22
https://github.com/Rebelmail/nodemailer-mandrill-transport/pull/22
—
Reply to this email directly or view it on GitHub
https://github.com/Rebelmail/nodemailer-mandrill-transport/pull/20#issuecomment-159480942
.


[OASIS-12] Add missing DefaultOTelAgentLogFile on darwin

What does this PR do?
Add missing DefaultOTelAgentLogFile on config_darwin
config_nix and config_windows already have it
Motivation
Fix OTel agent build on Darwin.

/merge


[Table] Sort arrows are not rendered properly in tabs

Bug, feature request, or proposal:
BUG
Plunker: https://plnkr.co/edit/Idc73Kn0ViLI4Qpsp98g?p=preview
When you set your sort by default as ASC or DESC like that:
 @ViewChild(MatSort) mdSort: MatSort;
ngOnInit() {this.mdSort.start = 'desc';}
The arrow is just ugly ( 2 times on 3 ). If you click again on the sort icon, it's pretty :)
BTW: Under IE11 it's always ugly. Same issue or not I don't know
What is the current behavior?

What is the expected behavior?

Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 4.4.3
OS: Windows 7 Pro 64 bits
TS: 2.4.1
Material: 2.0.0-beta.11
Browser: Chrome V60
Is there anything else we should know?
Nothing #

I was able to reproduce the issue and I suspect what is happening here is that you are setting an invalid direction (e.g. ascending instead of asc)
Plunker to show issue: https://plnkr.co/edit/vf61Yr6tvDtOlKRr9zeN?p=preview
Can you verify that this was the issue?
Adding PR #7378 that will throw an error if the direction is invalid.

@andrewseguin , Have you seen my previous message, why this issue is closed ?
It's not the same problem as mentioned before.
Regards

Hey yeah - let's open this back up to figure out what's going on. Sounds like perhaps animations isn't firing off.
Definitely try and get a plunker going so we can dive into this. Thanks

This is the plunker :)
https://plnkr.co/edit/Idc73Kn0ViLI4Qpsp98g?p=preview

Great thanks for the repro. Looks like the states are being set properly but the animations framework isn't animating the arrow. I'll talk to the core animations guy to see if we can dive into this and see why it's not triggering.

Hello, any news about this bug ? :)

Coming soon - looks like this is similar to a wider issue with tabs not playing nice with Angular's content projection. In short, components in tabs are initialized without actually being on the DOM, which breaks for some animations (e.g. expansion panel). Sorry for the wait on this

@andrewseguin, don't be sorry. I just asking the status about the issue even if I'm sure, there are some others issues (high priority) which need to be fixed ASAP.
BTW,  thank you for the explanations :)

It's a very very very bad bug (@angular/material^5.2.0)
It occured in mat-tabs, so the single solution is to hide these arrows
why simply not to use images? It's simple and it will work
.mat-sort-header-arrow {
  display: none !important;
}

Using 6.0.0 Beta and lazily-loaded tabs "fixes" the issue but it shouldn't be necessary (also, using lazy tabs is not necessarily wanted depending on the app)...

I found a workaround for this:
The first time I change to the tab with the table, I call a method which does the following:
table.ngOnDestroy();
dataSource = new DataSource(data); // This is needed because ngOnDestroy disconnects the data source.
table.ngOnInit();
Note that table is the MatTable object and dataSource is bound to the table:
<mat-table [dataSource]="dataSource" matSort>
It's not a good solution and kind of a hack, but it works for me. Maybe this helps

@sielver not working unfortunately

@androidovshchik I've had it working on my end. Not an ideal solution but no glitch to be seen.
See the last sample here for an example for wrapping tabs within <ng-template matTabContent>.

@sielver  solution is working(lazy loading) nicely, but put the mat-table in a separate new component, put a flag with *ngIf on the component tag, when you changeTab{ mat-tab-group(selectedTabChange) } to current turn on the flag. If you don't want to make a new component and want to use it on same component then @VangelisAlSghir  works fine but inti/destroy is not a good solution

+1, waiting for a clean solution or fixes

+1 still exists on 5.2.4 when table is wrapped in *ngIf.

@maciaszczykm
Wrapping the table with *ngIf is equal to use <ng-template matTabContent>.
I'm agree with @hoangnguyen208, prefer waiting a clean solution.

Any news about this bug?

I am facing the same issue. Waiting for the clean solution.

Facing the same issue as well...

Facing the same issue as well...

Just ran across this issue today 😢

Hey,
While we wait for 6.0 to come out of beta, I've figured a workaround. I force the arrows to be transformed into the expected state on SCSS, so that they don't look ugly when loading the table the first time. Any hover over the arrows will override this workaround, so the default behavior won't be affected:
::ng-deep .mat-sort-header-arrow.ng-trigger.ng-trigger-arrowPosition {
    opacity: 0;
}

::ng-deep .mat-sort-header-pointer-left.ng-trigger.ng-trigger-leftPointer{
    transform: rotate(-45deg);
}
::ng-deep .mat-sort-header-pointer-right.ng-trigger.ng-trigger-rightPointer{
    transform: rotate(45deg);
}

Thanks @Barbiero, it works for now while we are all waiting for a stable fix

@Barbiero Awesome fix for now!

@Barbiero solution worked for me, very thanks

Thanks @Barbiero

Thanks @Barbiero this solution works fine

To complete @ganeshkantu sayings, the arrow appears for the active sortable column only on sort action (click on the column).
Turning the opacity  to 1 seems to fix the default sort display.
Also I've noticed that the attribute [@arrowOpacity] is set with the function _getArrowViewState().
Does anyone know how this state work ?

using @Barbiero fix has two issues for me:

if using the opacity:0 than the arrows are hidden
when using the transform, the arrows are shown well, but the click isn't changing the direction (asc/desc)
is that the issue as well for all of you?

my code looks like this:
 <mat-table #table [dataSource]="renderedDataSource" matSort="sort">
        <ng-container *ngFor="let col of columnDefs | columnDefinitionFilter" matColumnDef="{{col.field}}">
            <mat-header-cell *matHeaderCellDef mat-sort-header> {{col.headerName}}</mat-header-cell>
            <mat-cell *matCellDef="let row">
                <span>{{someData}}</span>
            </mat-cell>
        </ng-container>

So even with Version 6.0.1, this misbehaviour still occurs :(

Same here. Can't wait to have an update on this matters. This glitch is killing me!

Scratch that, lazy-loading the tab content seems to fix the issue.
Try putting  around your tab content to fix the rendering issue.

@gabaril That did it for me!

tl:dr - Upgrade to Material 6.3.0.
In case anyone is coming up on this bug now - it appears to have been resolved for Material 6.3.0. At the time I post this a lot of new projects (including mine) were starting on Material 6.2.1, as there was/is a bug in the new Angular 6 ng add @angular/material command in combination with Material 6.3.0, meaning one had to fall back on the older version, which still contained the table header bug.

It's still an issue for me after upgrading, but only noticeable when hovering over sort headings or switching back and forth between tabs.
Currently on ng 6.1.2 and material 6.4.3

After three consecutive clicks on the sort arrow, the arrow seems to disappear for me. Is this the expected behavior?

Will this be backported to Angular 5 if fixed?  I just ran into this in 5.2.5 and we've only got corporate approval for Angular 5.

which material version has the fix? so I can upgrade to it.

I fixed it with default CSS. As the script adds the styling inline, that styling will overwrite the default CSS, so the arrows will show as expected.
.mat-table {     .mat-header-cell {       .mat-sort-header-arrow {         opacity: 0;         transform: translateY(0px);         .mat-sort-header-pointer-left {           transform: rotate(-45deg);         }         .mat-sort-header-pointer-right {           transform: rotate(45deg);         }       }     }   }

Presently on angular-material v6.3.0
I have multiple tabs that contain sortable tables, this sort arrow render issue only shows its head on one of them. After the initial click of that column header, the arrow is then rendered as expected until the page is reloaded.
Any update on a fix for this issue?

Still an issue for me in Material 7.2.0. Can't put a sortable table inside of a mat tab group. The table header arrow changes to a "T" after clicking one of the parent tabs.

I still have this issue https://gyazo.com/d5b184b83fe43eb58196705ac5d9a4c6 with navigation tabs mat-tab-nav-bar.
Angular: 7.2.15
Material: 7.2.2
Typescript: 3.2.4
Chrome: 74.0.3729.157 (Official Build) (64-bit)
OS: macOS Mojave 10.14.4

same issue present also in the current angular-material documentation https://material.angular.io/components/table/overview#sorting

Chrome: Version 75.0.3770.142 (Official Build) (64-bit)
OS: Windows 10 64-bit

Scratch that, lazy-loading the tab content seems to fix the issue.
Try putting  around your tab content to fix the rendering issue.
https://material.angular.io/components/tabs/overview#lazy-loading

But it is removing the sorting functionality


[PARKING SPOT OCCUPANCY DETECTION SYSTEM]

Project Request
Detect parking slot occupancy in large parking spaces, thus saving fuel and time for the drivers.

Field
Description

About
Using Computer Vision techniques and CNN classification, detect real-time car parking occupancy

Github
PrathmeshN99

Email
<EMAIL_ADDRESS>

Label
Project Request

https://github.com/PrathmeshN99

[x]  GSSOC Participant
[x] Contributor

Project Name
PARKING SPOT OCCUPANCY DETECTION SYSTEM
Description
Finding a parking space nowadays becomes an issue, that is not to be neglected, it consumes time and energy. Using Computer Vision techniques and CNN classification, real-time car parking occupancy can be detected.
To develop an automated system to detect the empty parking spaces in a parking lot
To provide effective management of car parking to the users which can help in reducing the queues, improving scalability and the time required to find parking spaces
Block diagram

Hey @adithya-s-k can you assign this project to me?

i want to contribute pls assign this issue to me.

@PrathmeshN99
I am thrilled to receive your project request!
To ensure the project runs smoothly, please follow all guidelines provided. If you are working on an AI, ML, or DL project, we kindly ask that you create a folder for your project within the respective folders and submit your progress accordingly.
Please do follow the project readme template

To ensure that everyone has a fair chance to participate, we kindly request that you complete 75% of the work within the first week of receiving the issue, and the remaining 25% within the next 3 days(10 days in total). If for any reason, you fail to meet this deadline, we will assign the task to someone else who is equally enthusiastic about contributing to this project.
If you have any questions, feel free to contact me via email or Discord or reach out to our team of project mentors.
Thank you for your contribution and let's make this project a huge success!


[Question] Opentelemetry format for resource.attributes (replacing dot with at sign)

Currently a log message in dataprepper looks like this, after being ingested via the otel-logs-source:
{"traceId":"","spanId":"","severityText":"","flags":0,"time":"2024-06-18T10:11:45.351322226Z","severityNumber":0,"droppedAttributesCount":0,"serviceName":null,"body":"time=\"2024-06-18T10:11:45Z\" level=info msg=\"Reconciliation completed\" application=observability/grafana dedup_ms=0 dest-name=in-cluster dest-namespace=observability dest-server=\"https://kubernetes.default.svc\" diff_ms=105 fields.level=1 git_ms=806 health_ms=0 live_ms=1 patch_ms=0 setop_ms=0 settings_ms=0 sync_ms=0 time_ms=1007","observedTime":"2024-06-18T10:11:45.438489611Z","schemaUrl":"https://opentelemetry.io/schemas/1.6.1","resource.attributes.source@environment":"dev","log.attributes.time":"2024-06-18T10:11:45.351322226Z","resource.attributes.k8s@namespace@name":"argocd","resource.attributes.cloud@account@id":"1234","resource.attributes.k8s@container@name":"application-controller","log.attributes.logtag":"F","resource.attributes.host@name":"ip-172-17-8-50.eu-central-1.compute.internal","resource.attributes.host@id":"i-1234","resource.attributes.k8s@pod@start_time":"2024-06-17T10:43:03Z","resource.attributes.cloud@region":"eu-central-1","log.attributes.log@iostream":"stderr","resource.attributes.host@image@id":"ami-1234","resource.attributes.source@project":"1234","resource.attributes.k8s@pod@name":"argocd-application-controller-0","log.attributes.log@file@path":"/var/log/pods/argocd_argocd-application-controller-0_0b9c78a1-2fed-4548-bd0f-f80ffe67faba/application-controller/0.log","resource.attributes.k8s@pod@uid":"0b9c78a1-2fed-4548-bd0f-f80ffe67faba","resource.attributes.k8s@node@name":"ip-172-17-8-50.eu-central-1.compute.internal","resource.attributes.cloud@platform":"aws_ec2","resource.attributes.k8s@container@restart_count":"0","resource.attributes.k8s@cluster@name":"1234","resource.attributes.ec2@tag@karpenter@sh/nodepool":"fallback-spot","resource.attributes.cloud@availability_zone":"eu-central-1a","resource.attributes.host@type":"c6gn.xlarge","resource.attributes.cloud@provider":"aws"}

The log itself was collected via otel/reciever/filelog.
According to the OpenTelemetry documentation, for example the resource.attributes.cloud should contain keys that are separted by a dot, instead of the @ sign.
Instead they seem to be replaced here.
Is there a reason, that the keys under resource.attributes and log.attributes are separated with @ instead of being kept in its original (Otel) format?

@KarstenSchnitter Can you help take a look at this issue?

This "dedotting" is necessary because OpenSearch interprets dots in field names as nested JSON objects. I wrote a longer explanation of this in #4977. This process helps avoiding field type conflicts during indexing.


Layout Per Folder Feature Request

Is your feature request related to a problem? Please describe.
Setting a Layout setting on one folder switches all folders i view to switch to that layout. so for downloads i normally use details and photos i use small thumbnails. but i have to consistently switch the layout.
Describe the solution you'd like
Make it so that each folder can have a its each own layout saved. so every time i go back to that folder it has that layout and same with other folders.
Describe alternatives you've considered
easier to access layout switcher rather than right clicking and selecting layout.
Additional context
This app is amazing in its current stat, just having that layout issue makes it a bit frustrating to use.

Duplicate of #530


fix: options endpoint does not invoke lambda (#1434)

Issue #, if available: #1434
Description of changes: PR #1242 introduced a bug that means lambdas do not get called for OPTIONS requests, even if configured.
Checklist:

[ ] Write Design Document (Do I need to write a design document?)
[x] Write unit tests
[ ] Write/update functional tests
[ ] Write/update integration tests
[ ] make pr passes
[ ] Write documentation

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I'm not entirely sure how to write a test for this, I'm brand new to this project (and python actually).
From reading the code, I don't see why this bug that is fixed here wouldn't have failed the TestService_FlaskDefaultOptionsDisabled test.

@gordonmleigh
| When I run make test I get a bunch of INTERNALERROR lines.
Are you using a venv? What python version are you installed into (should be python3.7 or greater)?
I don't think I have seen this before. Couple things to do,

Rebase with the HEAD of develop (this is probably needed regardless).
Clean you venv, and run make init again.

If non-of that works, can you paste in one of the failures, so I can see the stack trace?
| From reading the code, I don't see why this bug that is fixed here wouldn't have failed the TestService_FlaskDefaultOptionsDisabled test.
Most likely because this was a functional tests and we are not currently running any of them in appveyor :(
| I'm not entirely sure how to write a test for this, I'm brand new to this project (and python actually).
This should update any unit tests and add one if needed. The unit tests for this class are found tests/unit/local/apigw/test_local_apigw_service.py.
We should make sure the follow integ tests cases are covered:

If there is an cors options method set that points to a Lambda function, the lambda function gets invoked
If there is cors options method set with no Lambda function, the Cors behavior wins (which I think is the current behavior).

The integ tests can be found tests/integration/local/start-api/test-start-api.py.
If you need further help, just let me know.

@jfuss you can see on the appveyor builds the error I'm talking about. Ends with:
INTERNALERROR>   File "/home/appveyor/venv3.7.4/lib/python3.7/site-packages/pytest_forked/__init__.py", line 41, in pytest_runtest_protocol
INTERNALERROR>     if item.config.getvalue("forked") or item.get_closest_marker("forked"):
INTERNALERROR> AttributeError: 'TestCaseFunction' object has no attribute 'get_closest_marker'

@gordonmleigh That is defiantly weird and something I haven't seen before. We are working on making the test suite more reliable. Can you update from HEAD of develop? Hoping some of things just goes away with the recent work we have been doing.

@jfuss ah right sorry thought I had updated before getting back to you but was pulling from my own fork.  I'll add the tests shortly, thanks for your help.
FYI I think the error is related to the pytest version, I see you've updated to 3.6.0 from 3.1.0 in requirements/dev.txt. The missing functionality was added in 3.6.0 (see pytest-dev/pytest@4914135fd).

@jfuss I can't run the integration tests now, due to the following error:
======================================================================== ERRORS ========================================================================
_______________________________________ ERROR collecting tests/integration/local/invoke/test_integrations_cli.py _______________________________________
../../.pyenv/versions/3.7.2/lib/python3.7/unittest/loader.py:235: in getTestCaseNames
    testFnNames = list(filter(shouldIncludeMethod, dir(testCaseClass)))
../../.pyenv/versions/3.7.2/lib/python3.7/unittest/loader.py:232: in shouldIncludeMethod
    fullName = '%s.%s' % (testCaseClass.__module__, testFunc.__qualname__)
E   AttributeError: 'MarkDecorator' object has no attribute '__qualname__'
__________________________________ ERROR collecting tests/integration/local/invoke/runtimes/test_with_runtime_zips.py __________________________________
../../.pyenv/versions/3.7.2/lib/python3.7/unittest/loader.py:235: in getTestCaseNames
    testFnNames = list(filter(shouldIncludeMethod, dir(testCaseClass)))
../../.pyenv/versions/3.7.2/lib/python3.7/unittest/loader.py:232: in shouldIncludeMethod
    fullName = '%s.%s' % (testCaseClass.__module__, testFunc.__qualname__)
E   AttributeError: 'MarkDecorator' object has no attribute '__qualname__'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=============================================================== 2 error in 1.03 seconds ================================================================

Same story if I run on develop HEAD. Any ideas?

@gordonmleigh My hunch is that its something with pytest and unittest (found some issue last night when helping someone else with this exact issue but can't seem to find it at the moment). What ended up working for her was upgraded from 3.7.2 to 3.7.4. Can you give that a try?
From your recent error, it's comming from the python std lib (unittest).

@gordonmleigh Also double check the pytest version that is installed on your system. For whatever reason, when the other person I was helping upgraded pytest to what is was in the dev.txt, things worked. Could be pip acting weird or so PATH issue maybe.

I pulled the commits from this PR down and opened #1649, with an additional change that gets the integration tests passing while (as far as I can tell from my testing) still fixing the underlying OPTIONS issue #1434.

#1649 was approved and was targeting the same bug. Closing this one in favor of the newer one.


Update to buster 0.8.0

It's been out for a few months now, and seems like a transparent update so far.  Would be good to update if it's seamless.

Travis says ok :)  Merging!


Add support for optional max concurrency

Added optional Semaphore-based concurrency control for #642
As for the default value for max_concurrency, I don't know the ratio of API users vs. local LLM users, so the proposed default is an opinionated value of 16

I think more people use OpenAI API for now vs. local LLMs, thus default is not -1 (no limit)
16 seems to be reasonably fast and doesn't seem to hit throughput limit in my experience

Tests
Embedding for 1k documents finished in <2min and subsequent Testset generation for test_size=1000 proceeding without getting stuck:

another 30s passes:

Note: currently have test_size=500 done without problem.
1000 still takes over an hour but does properly proceed rather than getting stuck at any %.

Thanks! try to run but encounter a problemAs of 3.10, the *loop* parameter was removed from Semaphore() since it is no longer necessary

I love this PR - thank you so much @joy13975 ❤ - really! thank you for sharing your fix.
I just have one commend though. So I was thinking about the RunConfig and wondering it would be a good place to add this one too. the goal of that abstraction is that anything a user wants to configure for running - they can configure it through that and it will be our responsibility to make sure it gets used in the right place.
so as a user would you prefer it to be in RunConfig is that an overkill?
That was the only question I had but otherwise, I'm merging this in!

@jjmachan
Totally overlooked putting it in RunConfig, but I think that might be neater than this. I’ll sort that out and put up another PR.
@wangyiran33 thanks for the report and l’ll make it compatible with 3.10 as well in the next PR.

makes perfect sense @joy13975 - there seems to be a small type error - if you fix that I'll merge this in
I can fix it too if you want but it will take some time for me to get to this sadly but the PR looks really good so would be awesome to merge it as soon as we can right.

or not - because if we don't have support for 3.10 that is a deal breaker - thanks for reporting that @wangyiran33
we might have to refer to the stuff they did

@jjmachan yeah I’ll fix all the above points once I get time. Should be up this weekend.

sounds good - thanks a lot again
lets get this bug fixed 🔥

awesome - finished my round of testing and it is a massive improvement ❤
thanks again for this @joy13975 for helping us all and contributing this fix 🙂


"error parsing query" while writing to InfluxDB

I am getting the following error while trying to write to InfluxDB using jmxtrans.
java.lang.RuntimeException: {"error":"error parsing query: found NOT, expected ; at line 1, char 20"}
at org.influxdb.impl.InfluxDBErrorHandler.handleError(InfluxDBErrorHandler.java:19)
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:242)
at org.influxdb.impl.$Proxy27.query(Unknown Source)
at org.influxdb.impl.InfluxDBImpl.createDatabase(InfluxDBImpl.java:205)
at com.googlecode.jmxtrans.model.output.InfluxDbWriter.doWrite(InfluxDbWriter.java:151)
at com.googlecode.jmxtrans.model.output.support.ResultTransformerOutputWriter.doWrite(ResultTransformerOutputWriter.java:50)
at com.googlecode.jmxtrans.jmx.ResultProcessor$1.run(ResultProcessor.java:58)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

My InfluxDB version is 1.0.0.
Following is the example.json I am using,
{
"servers" : [ {
"port" : "1099",
"host" : "localhost",
"queries" : [ {
"obj" : "java.lang:type=Memory",
"attr" : [ "HeapMemoryUsage", "NonHeapMemoryUsage" ],
"resultAlias":"jvmMemory",
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://localhost:8086/",
"database" : "mydb",
"username" : "influxuser"
} ]
} ]
} ]
}

I fixed this by providing "retentionPolicy":"autogen" in influxDB configuration.

The workaround is to set createDatabase to false in the settings, and make sure the database and retention policy that you're writing to already exists. Influx removed the 'IF NOT EXISTS' syntax in 1.0.0

Hi  i am facing the same issue as above, did the necessary changes as above. but still not able to do a workaround. please help

@akhan4u which version are you using? Can you post an example of your failing config?

Oh, I see you have posted them on #574. Let's continue the conversation there and close this ticket in the meantime...


Disabling spring-cloud-aws auto configurations

As a follow-up to: https://github.com/spring-cloud/spring-cloud-aws/issues/227, I'm trying to disable sqs messaging auto-configuration based upon my own application property. (The use case is that when running code locally, I don't want to contact a shared queue if I don't need to.)
Following the advice in the #227 issue, I'm trying to figure out what auto-configurations to exclude, something along the lines of:
@Configuration
@ConditionalOnProperty(prefix = "sqs", name = "enable", havingValue = "false", matchIfMissing = true)
@EnableAutoConfiguration(exclude = {MessagingAutoConfiguration.class, ContextStackAutoConfiguration.class, ContextCredentialsAutoConfiguration.class, ContextInstanceDataAutoConfiguration.class} )
public class SQSDisabledConfig {
}

I can't figure out exactly what auto-configuration classes to exclude. Even with the above, it still tries to create an instance of SimpleMessageListenerContainer (which fails because I haven't configured aws credentials, but I'm hoping it wouldn't even attempt to instantiate these beans).
Your guidance greatly appreciated.

After further investigation, the issue was because I was putting @EnableAutoConfiguration not on a top-level class. When I did, only MessageAutoConfiguration.class needed to be excluded (and furthermore the spring.autoconfig.exclude property works too).
Closing since the issue wasn't Spring Cloud AWS related.

What do you mean by "not on a top-level class" ?

public class TopLevelClass {
        public static class NotATopLevelClass {
        }
}


Fails to install when blade-ui-kit/icons installed at 0.5.1

Your requirements could not be resolved to an installable set of packages.
Problem 1
- ryangjchandler/blade-tabler-icons[v0.02, ..., v0.2.0] require blade-ui-kit/blade-icons ^0.4.3 -> found blade-ui-kit/blade-icons[0.4.3, 0.4.4, 0.4.5] but it conflicts with your root composer.json require (^0.5.1).
- Root composer.json requires ryangjchandler/blade-tabler-icons ^0.2.0 -> satisfiable by ryangjchandler/blade-tabler-icons[v0.2.0, v0.02].

Need to update requirement in package. Will fix tomorrow and tag new release.
Thank you for spotting!

Thanks, all working now.


Improve styling on hover demo user switcher

We felt that the hover state of the Demo User Switcher looked slightly out of place right now. This MR adds styling for the hover state.
Previous hover style:

Current hover style:

No hover style:

Hi there :) thank you very much for your idea
I am Ana, the designer currently working closely on Atlas topics, nice to meet you :)
While i agree with you that the current hover is not that good, here are some thoughts about your proposal:

your new idea looks a bit difficult to identify visually, because  i see that you used a blue, greenish color, that is almost imperceptible to identify on hover, while in my opnion this should be really clear for the user indeed.
we should maybe think more about the color, and also contrast ratio for accessibility maters

thanks :)


add assertArrayContains and assertArrayNotContains

📚 Description
How to assert that we have something on an array
🔖 Changes

added assertArrayContains
added assertArrayNotContains

✅ To-do list

[X] Make sure that all the pipeline passes
[X] Make sure to update the CHANGELOG.md to reflect the new feature or fix

don't know why the function fails on the static analysis tool step of the actions, that's why I disable it, if @Chemaclass or @Tito-Kati could help me I'd love that
# shellcheck disable=SC2317
function test_successful_assertArrayContains() {
  local distros=(Ubuntu 1234 Linux\ Mint)
  assertEquals "$SUCCESSFUL_EMPTY_MESSAGE" "$(assertArrayContains "1234" "${distros[@]}")"
  assertSuccessfulCode "$(assertArrayContains "1234" "${distros[@]}")"
}

@Tito-Kati I will merge and you can check the comment later


Swift tenant configuration on a per job basis

For my use case I would like to have the ability to specify the Swift tenant credentials on a per tenant basis. Currently this is configured through xml files. Is there any way to dynamically specify the tenant credentials through spark context or similar?

@samos123 Of course. You don't need to use xml files.
Spark allows you to provide Hadoop configuration in run time, for example
sc.hadoopConfiguration.set("KEY","VALUE")

Handy to know. Thanks!


Payment for leases with Terra stablecoins

Is your feature request related to a problem? Please describe.
Right now we pay providers in AKT, which has volatile value. Lease rates are static, so as AKT increases/decreases in value, we end up overpaying or underpaying for resources.
Describe the solution you'd like
Terra recently enabled IBC, allowing stablecoins to be transferred into the rest of the Cosmos ecosystem. With this capability, Akash tenants could transfer over their local stablecoin and use it to pay for resources without having to worry about price fluctuation. Terra also has a fantastic built-in swap system, allowing any of it's stablecoins to be swapped to another, and any stablecoin can be used to pay gas. This allows providers to be currency-agnostic, making the jump to Akash even more simple and accessible.
Describe alternatives you've considered
There are other Cosmos-based stablecoin chains, but I haven't interacted with them so I'm not sure how easy they are to use. I've used Terra extensively and it's quite fast and intuitive.

Let's discuss this at the next office hours, but over all this is a heavy decision to consider.
Accepting settlement in IBC assets has larger over all implications and considerations than enablement alone.
Closing this issue for now, as it's likely quite outside the scope of just Engineering alone.


Feat/shotoku

This PR adds support for the Shotoku camera robotics system through the TR-XT ECI interface protocol.
Please note this has not been verified with the actual system as of yet. Besides that the documentation regarding the checksum byte is not entirely clear, so this may well not work at all.

@Julusian could you check whether the interfaces for the timeline objects look sane to you?

Codecov Report

Merging #156 into release25 will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           release25     #156   +/-   ##
==========================================
  Coverage      99.79%   99.79%
==========================================
  Files             17       18    +1
  Lines            490      499    +9
  Branches           1        1
==========================================
+ Hits             489      498    +9
  Partials           1        1

Impacted Files
Coverage Δ

src/types/src/index.ts
97.14% <100.00%> (+0.17%)
:arrow_up:

src/types/src/shotoku.ts
100.00% <100.00%> (ø)

src/index.ts
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


max-file-line-count should not count comment lines

I would like to have a configuration option for max-file-line-count so that it does not count comment lines or empty lines.
Since we enabled that rule in our codebase, some developers startet to remove comments from their code when they exceeded the maximum line count. That's not what we intended by enabeling that rule.
It would be nice if the rule would count actual lines of real code instead of comments and empty lines.

☠ TSLint's time has come! ☠
TSLint is no longer accepting most feature requests per #4534. See typescript-eslint.io for the new, shiny way to lint your TypeScript code with ESLint. ✨
It was a pleasure open sourcing with you all!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


automatic confirmation of topic subscriptions required since v2.2.37

Since this change was introduced in 2.2.37:
https://github.com/Comcast/cmb/commit/03a33df819a8a0142507e2027ec3f8f5c5151663#diff-5829958bd782144c57434cdcdaf16cd0R168
it would appear that cqs subscriptions to topics are no longer able to receive messages published on the topic. According to the AWS docs, SQS subscriptions to SNS topics are automatically confirmed. It is only HTTP/HTTPS endpoints that require confirmation for the subscription. CMB version 2.2.36 emulated that behaviour, but now it is requiring every subscription to be confirmed.
FYI there is no subscription token sent in the response to the subscribe request, so even if I wanted to try to confirm my subscription I could not because I don't have the token I need to call confirmsubscription.
I guess either src/com/comcast/cns/controller/CNSPublishAction.java needs to check to see if the subscription is cqs queue, or that a config option is added to ignore checking of subscription confirmations?
I've already tried setting:
cmb.cns.requireSubscriptionConfirmation=false

in the config file without having any luck.

If I understand correctly you were expecting that setting requireSubscriptionConfirmation to false would auto-confirm already pending subscriptions that were created in the past. This is not the case: The change in your configuration only applies to future subscriptions. Existing subscriptions in pending confirmation state still have to be confirmed manually or deleted.
Also keep in mind that confirmations are really only an issue when topic and queue are created by different CMB users. If you can use a single CMB user all subscriptions will be auto-confirmed.
I just retested all possible scenarios (same user and different users with requireSubscriptionConfirmation turned on and off) and it was all working for me. I also added  detailed descriptions to some common scenarios in
https://github.com/Comcast/cmb/blob/master/FAQ.txt

If I understand correctly you were expecting that setting requireSubscriptionConfirmation to false would auto-confirm already pending subscriptions that were created in the past.

No, I only use cmb for developing locally before I push code to production to run against AWS. I am deleting all queues and topics and rebuilding them from scratch many times a day. Since v2.2.37 I am unable to publish a message to a topic and have it delivered to a queue.

Also keep in mind that confirmations are really only an issue when topic and queue are created by different CMB users. If you can use a single CMB user all subscriptions will be auto-confirmed.

I using a single user account. I do not have multiple users.
I've created a branch that contains an executable ruby script that I hope will allow you to observe the behaviour I'm seeing:

Check out https://github.com/musicglue/cmb/tree/issue-30
mvn -Dmaven.test.skip=true assembly:assembly
unpack target/cmb-blah.tar.gz somewhere and cd into it
chmod 755 ./bin/cmb.sh
bin/cmb.sh > /tmp/cmb.log 2>&1 &
create a user account in the cmb web ui
cd ./tests/ruby
bundle install
ACCESS_KEY="the new user's access key" SECRET_KEY="the new user's secret key" ruby ./test.rb
grep no_confirmed_subscribers /tmp/cmb.log

Thanks for your patience with this one Boris! It's a bit spooky. :ghost:
I just did the following:

removed all the cassandra dirs and reinstalled it
verified cassandra's db was empty via cqlsh
loaded the cassandra 1.2 schema
removed all keys from redis that were related to cmb (e.g. account number/something)
started cmb and ran the script

Creating topic: topic-1420626508
Creating queue: queue-1420626508
Subscribing: queue-1420626508 to topic-1420626508
Publishing to: topic-1420626508
Published message was not delivered to any subscribers. Check the cmb log output for "WARN  CNSPublishAction - event=no_confirmed_subscribers action=publish".

Publishing via the webui does not work either. I see the same no_confirmed_subscribers message in the logs.
I am running cassandra 2.1.2, redis 2.8.19.

Finally, if you don't mind I would like to add your ruby script as an example to our cmb repo.

Yeah no problem, go for it.

Since I can't reproduce your problem in my environment, I'd still suggest you send me the complete cmb.log. If you delete any old cmb.log, restart the service and then run your ruby script the log should be relatively short. You can also email me directly at<EMAIL_ADDRESS>I will go ahead and create an example folder in cmb and place a copy of your ruby script there for future reference. Thank you!

2015-01-07 18:48:41,688 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CMBProperties - event=loading_cmb_properties file=/Users/leemhenson/src/tools/cmb-broken/./config/cmb.properties
2015-01-07 18:48:41,696 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  Util - event=init_log4j file=./config/log4j.properties
2015-01-07 18:48:41,829 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  Server - jetty-8.1.10.v20130312
2015-01-07 18:48:42,039 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  StandardDescriptorProcessor - NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
2015-01-07 18:48:42,121 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  AbstractConnector - Started SelectChannelConnector@<IP_ADDRESS>:6059
2015-01-07 18:48:42,121 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CMB - event=launched_cqs_service_endpoint port=6059 max_request_length=524288 cl_read=QUORUM cl_write=QUORUM
2015-01-07 18:48:42,254 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=CMBAstyananxConnectionPool,ServiceType=connectionpool
2015-01-07 18:48:42,267 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: localhost
2015-01-07 18:48:42,335 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: <IP_ADDRESS>
2015-01-07 18:48:42,336 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - RemoveHost: localhost
2015-01-07 18:48:42,411 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: localhost
2015-01-07 18:48:42,416 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: <IP_ADDRESS>
2015-01-07 18:48:42,416 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - RemoveHost: localhost
2015-01-07 18:48:42,425 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: localhost
2015-01-07 18:48:42,429 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - AddHost: <IP_ADDRESS>
2015-01-07 18:48:42,429 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CountingConnectionPoolMonitor - RemoveHost: localhost
2015-01-07 18:48:42,440 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CQSControllerServlet - event=ping version=2.2.42 ip=<IP_ADDRESS> port=6059
2015-01-07 18:48:42,689 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CQSLongPollReceiver - event=longpoll_receiver_service_listening port=5555
2015-01-07 18:48:42,697 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CQSLongPollSender - event=longpoll_sender_service_initialized
2015-01-07 18:48:42,697 [Thread-14] [757a1952-7965-49a4-8f5d-e2639bb0e701] INFO  CQSLongPollSender$LongPollSenderThread - event=reloading_active_cqs_api_server_list
2015-01-07 18:48:42,697 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  Server - jetty-8.1.10.v20130312
2015-01-07 18:48:42,710 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  StandardDescriptorProcessor - NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
2015-01-07 18:48:42,720 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  AbstractConnector - Started SelectChannelConnector@<IP_ADDRESS>:6061
2015-01-07 18:48:42,720 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CMB - event=launched_cns_service_endpoint port=6061 max_request_length=524288 cl_read=QUORUM cl_write=QUORUM
2015-01-07 18:48:42,722 [Thread-14] [757a1952-7965-49a4-8f5d-e2639bb0e701] INFO  ThriftKeyspaceImpl - Detected partitioner org.apache.cassandra.dht.Murmur3Partitioner for keyspace CQS
2015-01-07 18:48:43,727 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CNSPublisher - event=startup version=2.2.42 ip=<IP_ADDRESS> io_mode=SYNC mode=[Producer, Consumer]
2015-01-07 18:48:43,780 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  RedisSortedSetPersistence - event=initialize_redis pools_size=1 max_total=100 server_list=localhost:6379
2015-01-07 18:48:43,780 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CNSEndpointPublisherJobProducer - event=initializing_cns_producer
2015-01-07 18:48:43,781 [CNSEPJobProducer-0] [ddf76604-6c56-4283-b87f-431b91fbe051] INFO  CNSEndpointPublisherJobProducer - event=ping version=2.2.42 ip=<IP_ADDRESS>
2015-01-07 18:48:43,791 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CNSEndpointPublisherJobConsumer - event=initializing_cns_consumer
2015-01-07 18:48:43,791 [CNSEPJobConsumer-0] [88d773a8-c718-41d8-98f8-d8b7cd1608b2] INFO  CNSEndpointPublisherJobConsumer - event=ping version=2.2.42 ip=<IP_ADDRESS>
2015-01-07 18:48:43,794 [main] [137c1e93-c5b5-4e31-b9b7-e2f70cd5da1c] INFO  CMB - event=launched_cns_publisher mode=Producer,Consumer
2015-01-07 18:48:50,355 [pool-21-thread-19] [e24444da-daf8-4afa-a6db-a8732c61b6ac] WARN  CMBControllerServlet - event=invalid_action action=null url=http://eu-west-1.localhost:6059/favicon.ico
2015-01-07 18:48:50,357 [qtp2017354584-93] [17d15879-2060-4c67-a3de-ad369f42250b] WARN  AsyncContinuation -
java.lang.NullPointerException
	at com.comcast.cmb.common.controller.CMBControllerServlet$1.onComplete(CMBControllerServlet.java:647)
	at org.eclipse.jetty.server.AsyncContinuation.doComplete(AsyncContinuation.java:644)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:555)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:79)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:745)
2015-01-07 18:48:55,037 [qtp2017354584-23] [2922ffa7-07ba-40ce-aeaf-0b3292f4dcc3] INFO  UserLoginPageServlet - event=login_admin_ui user_name=cns_internal user_id=420624778847
2015-01-07 18:48:55,044 [qtp2017354584-92] [144aa553-6f80-4e85-bd2c-94d63012b849] INFO  ThriftKeyspaceImpl - Detected partitioner org.apache.cassandra.dht.Murmur3Partitioner for keyspace CMB
2015-01-07 18:48:55,339 [pool-21-thread-23] [bbe08fb9-9271-4ab9-b090-5437d1d1ad88] WARN  CMBControllerServlet - event=invalid_action action=null url=http://eu-west-1.localhost:6059/favicon.ico
2015-01-07 18:48:55,339 [qtp2017354584-81] [31fd2930-280c-44df-b2ce-e92ad3567111] WARN  AsyncContinuation -
java.lang.NullPointerException
	at com.comcast.cmb.common.controller.CMBControllerServlet$1.onComplete(CMBControllerServlet.java:647)
	at org.eclipse.jetty.server.AsyncContinuation.doComplete(AsyncContinuation.java:644)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:555)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:79)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:745)
2015-01-07 18:49:04,662 [qtp2017354584-90] [af94e312-021f-47ce-a956-3882672051e7] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-148] [ec3d42a6-82e0-47cd-92c7-1ff49b052932] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-84] [704e0109-578f-4fea-bc18-fe82f0f8d7e5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-145] [0a610bbb-897d-46b5-bdab-209728687290] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19930
2015-01-07 18:49:04,662 [qtp2017354584-91] [ac9d7f03-4556-41dc-9375-6cf27aeb90e9] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,663 [qtp2017354584-153] [98d1d3a5-2690-4574-be53-b771faa9fa06] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,663 [qtp2017354584-154] [2d5a40b9-098b-476a-8ab8-eba6080ebf94] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,662 [qtp2017354584-106] [f03bc0b2-e751-4b4a-a9e5-74736fa671bd] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-147] [9e5da5ca-86bc-4d5f-a149-bafc1745730f] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,665 [qtp2017354584-159] [315b12c8-60fe-40cd-ba32-3f32cc2c43d7] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19934
2015-01-07 18:49:04,665 [qtp2017354584-100] [b66a8636-4a9d-43c8-9266-bf1a96c204d5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,665 [qtp2017354584-81] [31fd2930-280c-44df-b2ce-e92ad3567111] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,665 [qtp2017354584-161] [48f07c25-5926-4f02-b887-2cfcb660fd72] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-90] [af94e312-021f-47ce-a956-3882672051e7] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-146] [c8fe4975-7b1e-477f-b165-396a3c4d5c4f] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-104] [aa5b370f-4c66-4259-9858-3bc3dea4ba1b] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-160] [732db2f6-f186-49df-8e5f-cdebc0c7d9d2] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-86] [d0747550-21af-464a-a710-689f61eb1172] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-84] [704e0109-578f-4fea-bc18-fe82f0f8d7e5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,664 [qtp2017354584-158] [b759c77c-d031-4818-ab0c-b7338f29dfab] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-96] [faece3a5-b22f-4552-964e-36f3f7afb21b] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-88] [ac515adb-4fc0-4038-a33c-5856915c52a8] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,664 [qtp2017354584-156] [390ca5a7-460f-404b-a03f-eabcf8bc0c26] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,664 [qtp2017354584-82] [3a1354a3-1354-42cf-b617-e6f9fca2762d] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19933
2015-01-07 18:49:04,663 [qtp2017354584-145] [0a610bbb-897d-46b5-bdab-209728687290] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,663 [qtp2017354584-91] [ac9d7f03-4556-41dc-9375-6cf27aeb90e9] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,663 [qtp2017354584-92] [144aa553-6f80-4e85-bd2c-94d63012b849] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,663 [qtp2017354584-152] [559f2141-ea57-454e-a489-67043549a9b7] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19932
2015-01-07 18:49:04,662 [qtp2017354584-150] [65d9387b-b75b-4a9d-abc0-aeef4317cb84] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-89] [fe1d1f9d-cc67-49d1-a10c-98e261857380] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-149] [4c428a35-83b4-451e-bd20-21e203087fd5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19931
2015-01-07 18:49:04,662 [qtp2017354584-26] [1c38a3d5-bfbe-417d-b4f7-ba8b639c223b] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=19930
2015-01-07 18:49:04,704 [CNSEPJobProducer-8] [20efea65-07cb-4c8e-852f-1e352e2d13a6] INFO  CNSEndpointPublisherJobProducer - event=ping version=2.2.42 ip=<IP_ADDRESS>
2015-01-07 18:49:04,704 [CNSEPJobConsumer-2] [ea68ca3f-2167-43f1-8892-0a779848de08] INFO  CNSEndpointPublisherJobConsumer - event=ping version=2.2.42 ip=<IP_ADDRESS>
2015-01-07 18:49:04,714 [pool-21-thread-8] [88a0ab1a-b576-4326-8ea2-a257f6482a17] INFO  CQSControllerServlet - event=ping version=2.2.42 ip=<IP_ADDRESS> port=6059
2015-01-07 18:49:20,397 [pool-21-thread-23] [14776205-eceb-4aac-b9ee-269056884d16] INFO  CNSControllerServlet - event=ping version=2.2.42 ip=<IP_ADDRESS> port=6061
2015-01-07 18:49:20,405 [pool-21-thread-23] [14776205-eceb-4aac-b9ee-269056884d16] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> Action=ListTopics Version=2010-03-31 user=cns_test resp_ms=10 cass_ms=5 cass_num_rd=3 cass_num_wr=4 cnscqs_ms=0 io_ms=0 asyncq_ms=0 auth_ms=3
2015-01-07 18:49:20,482 [pool-21-thread-35] [3b8a1df2-2f4e-4429-8f8d-19b8efc76b57] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> Action=DeleteTopic TopicArn=arn:cmb:cns:ccp:420624858610:topic-1420626508 Version=2010-03-31 user=cns_test resp_ms=69 cass_ms=35 cass_num_rd=9 cass_num_wr=14 cnscqs_ms=0 io_ms=1 asyncq_ms=1 auth_ms=0
2015-01-07 18:49:20,490 [pool-21-thread-13] [790613d4-58e7-47f3-afd5-a38c1de91db3] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/ Action=ListQueues Version=2012-11-05 user=cns_test resp_ms=3 cass_ms=1 cass_num_rd=1 cass_num_wr=0 redis_ms=0 io_ms=0 asyncq_ms=0 auth_ms=0
2015-01-07 18:49:20,531 [pool-21-thread-37] [e7519325-aaec-4810-99ac-d10dbc82b94c] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624858610/queue-1420626508 Action=DeleteQueue Version=2012-11-05 QueueUrl=http://eu-west-1.localhost:6059/420624858610/queue-1420626508 user=cns_test resp_ms=37 cass_ms=35 cass_num_rd=2 cass_num_wr=102 redis_ms=1 io_ms=0 asyncq_ms=1 auth_ms=0
2015-01-07 18:49:20,541 [pool-21-thread-42] [32049dd2-e002-4d3c-993b-e882f69b7aef] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> Action=CreateTopic Version=2010-03-31 Name=topic-1420656560 user=cns_test resp_ms=8 cass_ms=4 cass_num_rd=1 cass_num_wr=17 cnscqs_ms=0 io_ms=0 asyncq_ms=1 auth_ms=1
2015-01-07 18:49:20,563 [pool-18-thread-1] [1eb9e5f4-2ffd-45d5-b7a6-3235f7e2bac1] INFO  RedisSortedSetPersistence - event=cache_filler_started queue_url=420624858610/queue-1420656560 shard=0
2015-01-07 18:49:20,563 [pool-21-thread-26] [83db9539-549e-4eac-9e25-84fa9bd7bb74] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/ Action=CreateQueue Version=2012-11-05 QueueName=queue-1420656560 user=cns_test resp_ms=20 cass_ms=1 cass_num_rd=1 cass_num_wr=16 redis_ms=16 io_ms=0 asyncq_ms=0 auth_ms=1
2015-01-07 18:49:20,567 [pool-21-thread-8] [9bbd851e-a534-4d21-bd31-b6c5b7d5da57] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624858610/queue-1420656560 Action=GetQueueAttributes Version=2012-11-05 AttributeName.1=QueueArn QueueUrl=http://eu-west-1.localhost:6059/420624858610/queue-1420656560 user=cns_test resp_ms=1 cass_ms=0 cass_num_rd=0 cass_num_wr=0 redis_ms=0 io_ms=0 asyncq_ms=0 auth_ms=0
2015-01-07 18:49:20,587 [pool-21-thread-30] [2b10b34f-873e-4bdb-86cb-37ea3b493014] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> Action=Subscribe Endpoint=arn:cmb:cqs:ccp:420624858610:queue-1420656560 TopicArn=arn:cmb:cns:ccp:420624858610:topic-1420656560 Version=2010-03-31 Protocol=cqs user=cns_test resp_ms=17 cass_ms=8 cass_num_rd=8 cass_num_wr=8 cnscqs_ms=0 io_ms=0 asyncq_ms=0 auth_ms=1
2015-01-07 18:49:20,603 [pool-18-thread-1] [1eb9e5f4-2ffd-45d5-b7a6-3235f7e2bac1] INFO  RedisSortedSetPersistence - event=cache_filler_finished  queue_url=420624858610/queue-1420656560 shard=0 num_cached=0 total_ms=40 redis_ms=0 cass_ms=38
2015-01-07 18:49:20,604 [pool-21-thread-32] [8bfd2108-dd1b-4d8c-8e5e-1d065c5631d1] WARN  CNSPublishAction - event=no_confirmed_subscribers action=publish topic_arn=arn:cmb:cns:ccp:420624858610:topic-1420656560
2015-01-07 18:49:20,605 [pool-21-thread-32] [8bfd2108-dd1b-4d8c-8e5e-1d065c5631d1] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> Action=Publish Message=test TopicArn=arn:cmb:cns:ccp:420624858610:topic-1420656560 Version=2010-03-31 user=cns_test resp_ms=13 cass_ms=4 cass_num_rd=7 cass_num_wr=0 cnscqs_ms=0 io_ms=0 asyncq_ms=0 auth_ms=0
2015-01-07 18:49:24,719 [qtp2017354584-163] [95c85869-229a-4aae-b3ba-c58049a94b9a] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20006
2015-01-07 18:49:24,721 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,721 [qtp2017354584-157] [6d2c833c-f719-4529-bca6-1a81ac975756] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,721 [qtp2017354584-148] [ec3d42a6-82e0-47cd-92c7-1ff49b052932] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20006
2015-01-07 18:49:24,721 [qtp2017354584-106] [f03bc0b2-e751-4b4a-a9e5-74736fa671bd] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,723 [qtp2017354584-161] [48f07c25-5926-4f02-b887-2cfcb660fd72] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,723 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,726 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20007
2015-01-07 18:49:24,726 [qtp2017354584-162] [98e5c683-8efb-41b3-9816-58a5a2d51816] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,726 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20011
2015-01-07 18:49:24,727 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20010
2015-01-07 18:49:24,727 [qtp2017354584-162] [98e5c683-8efb-41b3-9816-58a5a2d51816] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,727 [qtp2017354584-86] [d0747550-21af-464a-a710-689f61eb1172] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,727 [qtp2017354584-162] [98e5c683-8efb-41b3-9816-58a5a2d51816] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,728 [qtp2017354584-86] [d0747550-21af-464a-a710-689f61eb1172] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,728 [qtp2017354584-162] [98e5c683-8efb-41b3-9816-58a5a2d51816] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,728 [qtp2017354584-86] [d0747550-21af-464a-a710-689f61eb1172] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20010
2015-01-07 18:49:24,720 [qtp2017354584-153] [98d1d3a5-2690-4574-be53-b771faa9fa06] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,730 [qtp2017354584-90] [af94e312-021f-47ce-a956-3882672051e7] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_3 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20006
2015-01-07 18:49:24,721 [qtp2017354584-155] [4a10ef80-5606-4009-8832-0d4d394a425c] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20005
2015-01-07 18:49:24,727 [qtp2017354584-85] [6943796b-66e7-4eb0-90d3-fa5b8a28a8c5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20001
2015-01-07 18:49:24,726 [qtp2017354584-166] [101b5a0d-5f1a-470c-825c-92d3b65c37a6] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,726 [qtp2017354584-106] [f03bc0b2-e751-4b4a-a9e5-74736fa671bd] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20007
2015-01-07 18:49:24,725 [qtp2017354584-165] [582b0d30-aeba-4d76-bb9b-ce34f7aa94d8] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,725 [qtp2017354584-80] [975f2765-81dd-4dd8-abd4-3de5a79957fe] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20010
2015-01-07 18:49:24,737 [qtp2017354584-80] [975f2765-81dd-4dd8-abd4-3de5a79957fe] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20016
2015-01-07 18:49:24,725 [qtp2017354584-163] [95c85869-229a-4aae-b3ba-c58049a94b9a] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_2 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,725 [qtp2017354584-104] [aa5b370f-4c66-4259-9858-3bc3dea4ba1b] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,725 [qtp2017354584-79] [a869f66d-e328-4caf-a223-18dcb85a757b] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003
2015-01-07 18:49:24,725 [qtp2017354584-146] [c8fe4975-7b1e-477f-b165-396a3c4d5c4f] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20002
2015-01-07 18:49:24,725 [qtp2017354584-83] [10bac553-18b0-4639-80a5-2f19dda7ff9c] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/EndpointPublishQ_1 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20006
2015-01-07 18:49:24,723 [qtp2017354584-102] [bd16eba3-3027-4622-b82a-879e6eb5a2b5] INFO  CMBControllerServlet - event=req status=ok client=<IP_ADDRESS> queue=/420624778847/PublishJobQ_0 Action=ReceiveMessage MaxNumberOfMessages=1 Version=2012-11-05 WaitTimeSeconds=20 user=cns_internal lp_ms=20003

Hm, nothing obvious in the logs except the no_confirmed_subscribers warning you already spotted.
I'm curious, after you run your test, can you actually see the subscription with state "pending confirmation" in web ui, or, does the subscription not exist at all?
Also, what happens if you subscribe to an HTTP endpoint instead of CQS? Does publishing to HTTP endpoints work for you? (You can use the built-in http endpoint as described in the FAQ to test this.)
Finally, could you send me your cmb.properties? Are all components (cmb, redis, cassandra, ruby script) hosted on the same machine? I noticed your unconventional choice of hostname  "eu-west-1.localhost".

I'm curious, after you run your test, can you actually see the subscription with state "pending confirmation" in web ui, or, does the subscription not exist at all?

I can see the subscription by clicking the Subscriptions link next to the topic, and there is no indication that the subscription is pending. The topic list itself shows:
Subscriptions pending: 0
Subscriptions confirmed: 0

Also, what happens if you subscribe to an HTTP endpoint instead of CQS? Does publishing to HTTP endpoints work for you? (You can use the built-in http endpoint as described in the FAQ to test this.)

Using the test http endpoint seems to work. I can see a message on the list endpoint.

Finally, could you send me your cmb.properties?

It's exactly this: https://github.com/musicglue/cmb/blob/issue-30/config/cmb.properties

Are all components (cmb, redis, cassandra, ruby script) hosted on the same machine?

Yes.

I noticed your unconventional choice of hostname "eu-west-1.localhost".

The aws-sdk-core gem seems to expect the service endpoint hostnames to include the region. My hosts file resolves that to <IP_ADDRESS>.

Just took another shot at by installing from scratch trying to mimic your environment as best I could. Finally I was able to reproduce your issue! For now it looks like there is a problem with the latest Cassandra version you are using (2.1.2). In my dev environment I was running with Cassandra version 2.0.6 and had no issues. For immediate relief you could try to down-grade your Cassandra version and see if that helps. Meanwhile I'll take a deeper look into Cassandra and hope to provide a fix shortly.

This should now be fixed if you work with HEAD!
Turns out starting with Cassandra 2.1 it's a bad idea to delete counters:
http://stackoverflow.com/questions/13653681/apache-cassandra-delete-from-counter
When creating a topic we were routinely attempting to delete any stale counters (in case a topic by the same name had existed in the past). In effect this immediately made all counters for the new topic unavailable and thus screwed up accounting.
This was working fine up until at least C* version 2.0.6 but in 2.1 it doesn't work any more. Thanks again for bringing this issue to our attention. Hope this resolves your issues.

High five! :hand:
Thanks for digging into this!
FYI, the ruby example you've added to master won't work without the Gemfile, so I've opened a pull request to put that back in.


Move to preconfigured Resin-SDK (and drop Node <4 from the tests)

This one is a little more interesting than the others, as it stops running the tests with Node versions before Node 4. This is primarily because 0.10 was causing some bizarre errors in the tests (saying it couldn't require 'bluebird', despite depending on it, and having the test suite stall for 10 minutes with no output), and we've already dropped these versions from testing in the new Resin-SDK version anyway.
I'm putting that bit in here partly also for debate on whether we're happy to start doing this everywhere. I don't think we need to run around actively making sure this is the case in every repo or anything, but it'd be good to agree that it's our standard level for our tools (or not!) and to think about incrementally update codebases to this as we see them if so.

I'm all for dropping the legacy support with new major versions. We've done this already in the SDK and I think it's OK (and also makes our lives easier). If people (all 2 or 3 of them) need the new features they can upgrade to Node 4+ which they should do anyway. If they're happy with the current versions they're good anyway.
0.12 support has been actively discontinued


update cookie card

Related Issue
Fixes: #1163
Description
change the cookie card color that is suitable for both dark and light mode and modify the button style as per the website theme

Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)

Checklist:

[x] I have made this change from my own.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

Conflicting files
index.html

I have raised new PR please review it and I checked that this time it doesn't arise any conflict


Buffer GCS logs, fix issues with caching zone and machinetype

Codecov Report

Merging #111 into master will decrease coverage by 0.48%.
The diff coverage is 61.29%.

@@            Coverage Diff             @@
##           master     #111      +/-   ##
==========================================
- Coverage    82.1%   81.62%   -0.49%
==========================================
  Files          23       23
  Lines        1727     1747      +20
==========================================
+ Hits         1418     1426       +8
- Misses        230      242      +12
  Partials       79       79

Impacted Files
Coverage Δ

daisy/compute/test_client.go
79.41% <0%> (-17.02%)
:arrow_down:

daisy/workflow/zone.go
100% <100%> (ø)
:arrow_up:

daisy/workflow/step_create_disks.go
89.85% <100%> (ø)
:arrow_up:

daisy/workflow/step_includeworkflow.go
80.39% <100%> (+0.8%)
:arrow_up:

daisy/workflow/workflow.go
85.42% <100%> (+0.17%)
:arrow_up:

daisy/workflow/machinetype.go
100% <100%> (ø)
:arrow_up:

daisy/workflow/step_create_images.go
83.07% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Use new facet structure

With the changes in Finder Frontend to remove all the format specific code, Contacts won't have any facets. This change sets the new attrs of filterable and display_as_result_metadata for the Topic facet.
Don't merge before https://github.com/alphagov/finder-frontend/pull/148.

This is good to go now. :+1:


BigQuery REST samples to label datasets and tables.

These samples use the HTTP client library. Neither the Cloud nor API
client libraries support the table labeling feature yet.
The Cloud client library will not support it for a while, since this is
a beta feature. I made an agreement with the Cloud client libraries PM
that I can mix client libraries and raw HTTP samples.

Travis failure is a permissions issue. I'll look into it.


fix: KeepKey produces accurate EIP-712 eth_signTypedData_v4 signatures

Duplicate of this shapeshift/hdwallet PR: https://github.com/shapeshift/hdwallet/pull/649
Officially closes the hdwallet part of issue #578, which likely never worked.
Related issue: shapeshift/web#5384
I went with the EthereumSignTypedHash approach for ALL TypedData messages after consulting with @BitHighlander. It seems that the KeepKey firmware is missing the EthereumTypedDataStructRequest type, which would be required for a fully human readable, eip-712-compatible message to be displayed on the device screen.
Fortunately, the EthereumSignTypedHash approach allows the KeepKey to at least sign the v4 messages, which for end-users that means being able to do modern web3 interactions like buying and selling NFTs on OpenSea, for example.
-The bulk of the fix is in packages/hdwallet-keepkey/src/ethereum.ts

I also added a recoverTypedSignature check to the sandbox so you know right away if the signature that the KeepKey spits out is accurate.
-I refactored the Ethereum sandbox tests too. That file is getting way too large and repetitive, but still is the best way to test with KeepKey.
I couldn't help but fix some other random some bugs along the way.
Feel free to point out anything extra that I should change/remove from this PR--I went in not knowing if I would be able to fix this, so I tried to improve my developer experience at the very least as I went through all the code!
If approved, version bumps will be required.

Thanks!

*KeepKey Bridge didn't seem to be working for me in the sandbox so I used the regular webusb option instead.

This change is included in PR #3


Remove bad arrow hints

These hints will break any program that uses them with actual arrows that aren't just functions.

If you'd rather keep these hints, I have two alternative ideas:

Change Data.Tuple.Extra to re-export these combinators as-is, instead of redeclaring them with a less general type
Add something like isFunction to hlint, and use it on these hints

I think the right thing to do is probably add a note that these only work on function arrows (or tuple arrows in some places - it's pretty confusing). The observation was that nearly all users of these functions are using them without actually using arrows, and since it's opt in, having wrong by default hints is less problematic.

Wait a minute. As I think about this more, isn't the net effect of these hints just to replace import Control.Arrow with import Data.Tuple, without changing the actual code at all? What's the gain by doing that, even in the common case where it is valid?

User comprehension - Control.Arrow can do a lot of crazy things, and is nearly always used at one common type. Figuring out that type from the docs of Control.Arrow is a logic puzzle. In contrast, for Data.Tuple.Extra, it's pretty obvious.

While I think doing the replacement is unambiguously a good idea, I agree it breaks code, and the note that explains why it breaks code is going to be awfully odd. Removed for now.