Put C++ class definition in header files

@florianwechsung ,
Regarding simsgeocpp, I am wondering about the logic behind the unconventional way of defining the C++ classes in cpp files. Is there any limitation you encountered for defining the classes in header files and implementing the class methods in the corresponding cpp files? If not, could you please put the class definitions in header files and include only the header files in the cpp files? Small methods (one or two lines) are typically defined as inline methods in the class definition and so they also can be moved to header file if you want. You can keep the implementation of the rest of the class methods in the cpp files.
Bharat

What do we gain from splitting this? A downside of this splitting is a fairly significant code duplication between hpp and cpp files.

Why do you think there will be a large code duplication? As far as advantages of splitting, here is one article I can think of. Another advantage is it would make it easier for future developers/co-developers to identify the class interface easily.

Many of the function in surface.cpp and curve.cpp are just a single line of code. Wouldn't having the declaration in a separate file means duplicating the function signature, which makes up most of the code in those files?

Those could be inlined meaning they will be part of class definition. So
they move to header files. The larger methods remain in cpp files.
Bharat Medasani
Engineer
Princeton Plasma Physics Lab (PPPL)
On Thu, Apr 8, 2021 at 1:39 PM Florian Wechsung @.***>
wrote:

Many of the function in surface.cpp and curve.cpp are just a single line
of code. Wouldn't having the declaration in a separate file means
duplicating the function signature, which makes up most of the code in
those files?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hiddenSymmetries/simsopt/issues/41#issuecomment-816012389,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA62VEAPMIEE7JN2SPJPSDTTHXS3JANCNFSM42TISVXA
.

Actually, all the methods are inlined now. Typically short methods are
inlined and bigger methods are implemented out of class definition.
Bharat Medasani
Engineer
Princeton Plasma Physics Lab (PPPL)
On Thu, Apr 8, 2021 at 1:40 PM Bharat Medasani @.***> wrote:

Those could be inlined meaning they will be part of class definition. So
they move to header files. The larger methods remain in cpp files.
Bharat Medasani
Engineer
Princeton Plasma Physics Lab (PPPL)
On Thu, Apr 8, 2021 at 1:39 PM Florian Wechsung @.***>
wrote:

Many of the function in surface.cpp and curve.cpp are just a single line
of code. Wouldn't having the declaration in a separate file means
duplicating the function signature, which makes up most of the code in
those files?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hiddenSymmetries/simsopt/issues/41#issuecomment-816012389,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA62VEAPMIEE7JN2SPJPSDTTHXS3JANCNFSM42TISVXA
.

I have made this separation in the BiotSavart code now. When I have some extra time I'll make similar changes to the surface and coil classes.

Cool. Thanks!
Bharat Medasani
Engineer
Princeton Plasma Physics Lab (PPPL)
On Mon, Apr 12, 2021 at 11:01 AM Florian Wechsung @.***>
wrote:

I have made this separation in the BiotSavart code now. When I have some
extra time I'll make similar changes to the surface and coil classes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hiddenSymmetries/simsopt/issues/41#issuecomment-817885268,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA62VEAM6YY5C6X2R66ZCLDTIMDM5ANCNFSM42TISVXA
.


[Customize Cells] How to use the tailless bubbles?

I see that in your assets images folder there are tailless bubbles. How can the bubbles be replaced to use these?

Hey @hmaidasani - look at #1028


[Question] A problem with stages

Hi,
I have been working on a new risky asset model with a pension contribution scheme, and have a question about how to implement the agent type's simulation method in the most compatible way with the current tools.
The only relevant characteristic of the model is that, at each time-period, the agent's problem can be broken down into three sequential sub-stages:

Defining the income-deduction scheme going forwards.
Moving assets between the risky (iliquid) and risk-free (liquid) account.
Consuming out of liquid assets.

I have a working solver and am thinking of how to implement the simulate method. Looking at the simOnePeriod(self): from AgentType, it works by calling getStates -> getControls -> getPostStates once. With my setup, it would be useful if I could split the time-period into the three sub-stages and run this sequence three times, with a stage's postStates becoming the next stage's states.
@llorracc suggested this could be achieved with the cycles property, and mentioned the Ski instructor example. Yet, I'm not quite sure how this would be achieved: the Ski instructor makes the same decisions at every stage and just cycles through different parameter values.
So I wanted to ask if this stage-splitting is possible with the current tools, if there is an example you could point me to, or if it'd be better to create the class' own simOnePeriod method with these characteristics.

Hi again,
I was revisiting this question with @llorracc today, and he told me I should tag @mnwhite and @sbenthall for the discussion.
We are sure that the Ski instructor example could be adapted in some way to address this period-with-stages kind of problems.  One could:
a) Treat every sub-period as a period, so that a Ski instructor that lives for 30 years would have a T_cycle of 30*4. One could then find a way to call a different solve/simulate-onePeriod method at different times (is this already possible?).
b) Write one's own simOnePeriod function which would call sub-functions for every sub-stage.
@llorracc recalled discussions of this kind of features being already built into HARK and just not being documented yet.
So we are still trying to figure out what would be the most backward and forward-compatible way of implementing these types of agents, and were wondering if you could provide some guidance?

HARK already has the capability to use different solveOnePeriod functions
across periods.  Just put the different functions into a list, put that in
the solveOnePeriod attribute, and then name 'solveOnePeriod' in the
time_vary attribute.  Because you're treating "subperiods" as periods,
you'll need to put dummy values (like None) into the time-varying
attributes for the periods when these objects are irrelevant.  This isn't
how a "normal human" would describe the problem, so it might be most
convenient to have the user pass "raw" time-varying attributes that don't
have dummy values, and then you write a simple method that "interlaces"
Nones into these lists as appropriate.
On the simulation side, my recommendation would be to not use the
getShocks, getStates, getControls, getPostStates framework and just
overwrite simOnePeriod directly with custom code.  If you treat the
sub-periods as actual periods, this top-level method might just be a fork
method that calls sub-period-specific methods depending on the phase you're
in.
In terms of future modularity, one big thing we would need to do is to
change the indexing of shocks and the domain of the value function (as
recorded by the solution output).  As is, IncomeDstn[t] refers to the
distribution of income shocks that arrive at the beginning of period t+1,
because we use that information to solve the agent's problem at t; this is
also why the indexing for IncomeDstn is t-1 in the simulator.  While it was
natural to structure things this way, and we generate (marginal) value
functions over m_t (or generally, the decision-time states), the way
economists usually think about them, this makes it harder to make the
solvers modular and "chain up" with different types of (sub)periods.
To structure things better for modularity, we would want to take
expectations over period t shocks in the period t solver.  That is,
everything that happens in period t should actually be handled by the
function that solves the period t problem.  Thus the (marginal) value
functions that are stored in the solution for period t would be what Chris
and I call the "end-of-period (marginal) value functions" for period t-1.
The end of period t-1 is the beginning of period t; what I call
"post-states" are the interface between consecutive periods.  Then we could
chain together any solvers whose "interface states" match (and whose
solution representation has the expected attributes).
On Wed, Sep 2, 2020 at 2:00 PM Mateo Velásquez-Giraldo <
<EMAIL_ADDRESS>wrote:

Hi again,
I was revisiting this question with @llorracc
https://github.com/llorracc today, and he told me I should tag @mnwhite
https://github.com/mnwhite and @sbenthall https://github.com/sbenthall
for the discussion.
We are sure that the Ski instructor example could be adapted in some way
to address this period-with-stages kind of problems. One could:
a) Treat every sub-period as a period, so that a Ski instructor that lives
for 30 years would have a T_cycle of 30*4. One could then find a way to
call a different solve/simulate-onePeriod method at different times (is
this already possible?).
b) Write one's own simOnePeriod function which would call sub-functions
for every sub-stage.
@llorracc https://github.com/llorracc recalled discussions of this kind
of features being already built into HARK and just not being documented yet.
So we are still trying to figure out what would be the most backward and
forward-compatible way of implementing these types of agents, and were
wondering if you could provide some guidance?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/826#issuecomment-685902084, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKRAFOQEGAFFTKQEGLU6R3SD2B2HANCNFSM4QNUVMKA
.

Thank you! That makes a lot of sense. I did not know one could have time-varying solveOnePeriod methods.
I'll have a go at adapting my solution to this framework and code up simulation methods soon. I'll post progress/questions here.

I've followed @mnwhite 's advice and implemented a time-varying solveOnePeriod version where each sub-stage is treated as a period. It works great! (thank you)
I'm now moving on to the simulation methods. As suggested, since each sub-stage is being treated as a period, I'll code up my own simOnePeriod which will call stage-specific methods. I will keep you posted.

Great, thanks for the update!
On Sun, Sep 20, 2020 at 9:15 PM Mateo Velásquez-Giraldo <
<EMAIL_ADDRESS>wrote:

I've followed @mnwhite https://github.com/mnwhite 's advice and
implemented a time-varying solveOnePeriod version where each sub-stage is
treated as a period. It works great! (thank you)
I'm now moving on to the simulation methods. As suggested, since each
sub-stage is being treated as a period, I'll code up my own simOnePeriod
which will call stage-specific methods. I will keep you posted.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/econ-ark/HARK/issues/826#issuecomment-695864068, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKCK73AHBX7Y7G6J27RLD3SG2SL3ANCNFSM4QNUVMKA
.

--

Chris Carroll

https://github.com/econ-ark/HARK/pull/832 now has an explicitly stage-oriented solution and simulation strategy that seems to work and follows @mnwhite 's advice.
I will focus on cleaning up the code and producing a well-calibrated life-cycle example in the following days.


fix links

The reddit link gets a 403 forbidden. Not sure why, but tried here replacing with www.reddit.com instead of old.reddit.com.

Seems like Reddit is just blocking CI requests, so excluding it from CI.


Bug in batch tool

If the filepath where you have saved the video contains a “&” symbol the script throws a lot of error messages and doesn’t work.

Hi, can anyone help me? I've just try to build it and I've got the error
"build github.com/JuanIrache/gopro-utils/bin/gpmd2csv: cannot load github.com/paulmach/go.geojson: open C:\Go\src\github.com\paulmach\go.geojson: The system cannot find the specified file."


Sifive fu540 fu740

Please update the README.md and, if necessary, LICENSE.

Please take another look, thanks

Any love for this PR please?

SVD file contribution verified against original file provider, OK.
$ git clone https://github.com/riscv-rust/fu540-pac.git
$ cd fu540-pac
$ sha512sum fu540.svd >> ../hash_fu540_fu740.txt
$ cd ..
$ git clone https://github.com/riscv-rust/fu740-pac.git
$ cd fu740-pac
$ sha512sum fu740.svd >> ../hash_fu540_fu740.txt
$ cd ..
$ git clone https://github.com/BenBE/cmsis-svd-data.git
$ cd cmsis-svd-data
$ git checkout sifive_fu540_fu740
$ cd data/SiFive-Community
$ sha512sum -c ../../../hash_fu540_fu740.txt
fu540.svd: OK
fu740.svd: OK
$ echo $?
0

@rminnich thank you very much for your contribution.
hash_fu540_fu740.txt


Disable new entries in edited_message table & Read only last command?

Is not an issue, but a question:

Any easy way to disable bot to check edited messages? Maybe a fast way is commenting this line?
https://github.com/akalongman/php-telegram-bot/blob/518e9dd861f3dafcf6272856043e941bc59fa6dc/src/Telegram.php#L434
Don't know yet why (maybe because I made little modifications on DB.php and Telegram.php), but when some user edits a command/message, bot crashes https://github.com/akalongman/php-telegram-bot/issues/406 (edited_message DB table shows same edited message 100's times).

Also, how can I read only last message? Sometimes I'm testing new things and editing code, and bot freezes/crash and stop responding to commands.
After that, when bot is working again, reads & reply to all commands in bulk (last time bot replied to 50+ commands at once). I want to read by default only last command sent by user and execute it.

Thanks!

Set your webhook with these options:

[
    'allowed_updates' => ['message', 'inline_query', 'chosen_inline_result', 'callback_query', 'channel_post', 'edited_channel_post'] //removed 'edited_message'!
];

(array to be used with commented alternative code in set.php)

I don't think its possible, I suggested to use my cgi workaround because when library fails telegram sees 500 error or receives no reply, he thinks the messages wasnt delivered and will keep trying, using my cgi trick telegram will always get empty successful reply and will not re-send anything, so even if your library fails the bot will not reply to previously failed commands.

Thanks @jacklul! Will try both options, 2nd solution looks a bit complicated for me, hope I don't mess up anything on server.
1st one:

Sorry to point it out here again too, but the 500 error must have some other cause.
Internal server error should be addressed properly and fixed 😇

Can not reproduce. Looks like fixed.


TS API to get Client request protocol and version

TS API to get Client request protocol and version is useful for some protocol and version specific plugin.
e.g. HTTP/2 Server-Push Plugin

I used this in my plugin - TSHttpTxnClientProtocolStackGet
https://github.com/apache/trafficserver/blob/master/proxy/InkAPI.cc#L9331
That should work. right?

More info here - https://docs.trafficserver.apache.org/en/latest/developer-guide/api/functions/TSClientProtocolStack.en.html

That's what I'm looking for. Thanks!


feat: allow doSeq in let x <- e | seq

By changing let x <- e | seq to allow a sequence of doElems at seq instead of just one, it fixes #1804.  The syntax extension is also convenient in some cases.

Nice generalization. I assume it's not trivial to trigger a sequence unintentionally unless you do something like
let x <- a | b
             c

? Seem fine to me then.

Yes, colEq would be appropriate

Ideally, do would use sepByIndent like by etc.  The reason I didn't do that myself is because I didn't want to touch the do notation expander, but you could give it a try.


Addon open/login fails with KeyError 'lolomo'

Bug report
Your Environment

Netflix add-on version: 1.4.1
Operating system version/name: MacOSX
Device model:

Used Operating system:

[ ] Android
[ ] iOS
[ ] Linux
[x] OSX
[ ] Raspberry-Pi
[ ] Windows

Describe the bug

Login fails with KeyError.
https://paste.kodi.tv/awisikaboh.kodi
Expected behavior

Expect to be able to login.
Actual behavior

I get an error dialog box.
Steps to reproduce the behavior

Install addon
Run addon
Try and login

Possible fix

Debug log

The debug log can be found from this link:
Additional context or screenshots (if appropriate)
Installation

[ ] I'm using other Netflix Repo
[ ] I'm using a different source

Other information

Screenshots

Started having the same issue today.  Netflix plugin Version 1.4.1 running on Linux Elementary OS, Kodi 18.7.

Also having this issue on a Pi 4 running LibreELEC that was first installed yesterday and working earlier today.

I'm not sure where the data for this check is gotten, but I was able to get the addon to load again by bypassing the isLocoSupported check in websites.py.  Specifically line 105 I changed:
if user_data.get('isLocoSupported'):
to
if True:
That forces the added to use loco instead of lolomo (whatever that means).  At least for me that allows the addon to load as normal.  Unfortunately after that nothing plays, so whatever the issue is, it's deeper in Netflix.

Same here, OSMC, Kodi 18.7, Netflix 1.4.1

I don't know if both are required, but in:
./resources/lib/services/nfsession/nfsession_requests.py
Changed line 159:
'isLocoSupported': 'false'
to
'isLocoSupported': 'true'
And in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'true'   # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):
I am not really familiar with the details here, but I am guessing Netflix maybe rolled out this new methodology and switched from lolomo to loco which @CastagnaIT has done work on already.  Maybe if you guys have the skills you can try this kludge out until he can deliver a proper fix.

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false.

./resources/lib/services/nfsession/nfsession_requests.py
And in ./resources/lib/api/website.py:

What is the path to these on Linux (OSMC, Pi 3B+)?

Likely in your /home/osmc/.kodi folder, you can use find to see.
osmc@osmc:~$ find /home/osmc -name website.py
/home/osmc/.kodi/addons/plugin.video.netflix/resources/lib/api/website.py
I haven't tried it on my OSMC box, using Windows at the moment.

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

That fixed the KeyError on my Mac, but not playback.  On my OSMC device it does seem to work now (although in my brief tests I can only get 540p streams - I'll look at that next).  Now that I think about it, Netflix has never worked on my Mac.

Yeah 540p is another issue, seems to only affect ARM devices and it something on the Netflix end.

also happening on my RasPi4 running current xbian with addon v1.4.1
the WideVine update yesterday wouldn't have anything to do with this, would it?

Also happening on my Raspberry Pi 3 B with LE9.2 and on PC with Kodi 18.7:

KeyError with Pi4 on LibreELEC 9.2.1.
Plugin version 1.4.1

Same error here. Windows 10 Kodi Leia. Working fine with no changes yesterday.

Same issue on pi 3 with both LibreELEC and osmc as OS. Got it working by reverting to here LAva version 0.16.1 on LibreELEC, guess I will run with that until this gets fixed

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

this worked for me.  Thank you.

I'm not sure where the data for this check is gotten, but I was able to get the addon to load again by bypassing the isLocoSupported check in websites.py. Specifically line 105 I changed:
if user_data.get('isLocoSupported'):
to
if True:
That forces the added to use loco instead of lolomo (whatever that means). At least for me that allows the addon to load as normal. Unfortunately after that nothing plays, so whatever the issue is, it's deeper in Netflix.

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

Yeah, looks like neither of those are working for me, hopefully we get an update fixing this soon. I'm running OSMC, Rpi 3B+, Kodi 18.7.

@pkscout you have not follow the instruction to get a right log
i need a new log

here's my error log
2020-06-18 08:41:09.270 T:1470092160   ERROR: [plugin.video.netflix (0)] Could not extract [u'models', u'truths', u'data', u'isLocoSupported']
2020-06-18 08:41:09.439 T:1470092160   ERROR: [plugin.video.netflix (0)] IPC callback raised exception: u'lolomo'
2020-06-18 08:41:09.440 T:1470092160   ERROR: [plugin.video.netflix (0)] Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 185, in make_return_call
                                                result = call(instance, func, data)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 209, in call
                                                return func(instance)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/nfsession_base.py", line 37, in ensure_login
                                                return func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/nfsession.py", line 86, in fetch_initial_page
                                                api_data = self.website_extract_session_data(response, update_profiles=True)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/nfsession.py", line 275, in website_extract_session_data
                                                return website.extract_session_data(content, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/logging.py", line 148, in timing_wrapper
                                                return func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/api/website.py", line 124, in extract_session_data
                                                lolomo_root = falcor_cache['lolomo']['value'][1]
                                            KeyError: u'lolomo'
2020-06-18 08:41:09.444 T:1807721344   ERROR: [plugin.video.netflix (17)] IPC call fetch_initial_page returned KeyError: u'lolomo'
2020-06-18 08:41:09.446 T:1807721344   ERROR: [plugin.video.netflix (17)] Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 207, in run
                                                route([part for part in g.PATH.split('/') if part])
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 38, in lazy_login_wrapper
                                                return func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 72, in route
                                                _execute(nav_handler, pathitems[1:], g.REQUEST_PARAMS)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 100, in _execute
                                                executor(pathitems=pathitems)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 59, in root
                                                common.make_call('fetch_initial_page')
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/logging.py", line 148, in timing_wrapper
                                                return func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 88, in make_call
                                                return make_http_call(callname, data)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 118, in make_http_call
                                                _raise_for_error(callname, result)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 175, in _raise_for_error
                                                raise Exception(result['error'])
                                            Exception: KeyError
2020-06-18 08:41:11.227 T:1626149760   ERROR: GetDirectory - Error getting plugin://plugin.video.netflix/
2020-06-18 08:41:11.244 T:1937674256   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/) failed

@maurerr follow the rules or all your post will be banned

well, seem that today netflix roll out the website changes also to my country,
i will check better what changes is needed

Same issue for me.
Rolback version 1.1.1 is ok under windows 10 and android 9.0.

I can confirm that the plugin loads and functions correctly when changing line 105 to if True:

I'm not sure where the data for this check is gotten, but I was able to get the addon to load again by bypassing the isLocoSupported check in websites.py. Specifically line 105 I changed:
if user_data.get('isLocoSupported'):
to
if True:
That forces the added to use loco instead of lolomo (whatever that means). At least for me that allows the addon to load as normal. Unfortunately after that nothing plays, so whatever the issue is, it's deeper in Netflix.

this seems to work for me.
Thanks

I advice people to wait for #703 to be merged and update the plugin. #703 resolves a bit more than just changing line number 105.

I have temporary fixed the error on app opening, but i think that netflix will make Lolomo lists deprecated, the signals are there.
This means that in the next few days or weeks (...when netflix will change...) also the main menu will be completely non-working and also other menu lists.
More extensive modifications are required, i will be performing some tests in the next days to understand better way to get the main menu
I attach a temporary fix but WARNING:

Can happen that raise unexpected errors
If you use "Sync of watched status with netflix" can happen that stop working or raise errors

plugin.video.netflix_1.4.1_20200618_t1.zip
plugin.video.netflix_1.4.1+matrix.1_20200618_t1.zip

Thanks for the quick update!
I installed the fix for Kodi18.x.
Now I can enter (after logging in Netflix) and see my profile and lists but when I play any movie I get the following error:
Playback error: Email or password is incorrect
and it logs me out (need  to log in again and still does not work).
Debug log: http://ix.io/2pum

Great work. WAF restored! Thanks

Great work. WAF restored! Thanks

yup WAF levels are restored to normal

Great work. WAF restored! Thanks

What is WAF?

@MartChic
Wife Acceptance Factor

Thanks for the work! Had the same issue with LibreELEC on a Raspberry Pi 4. I can confirm that the hotfix is working. Thanks a lot! :+1:

worked for me as well, thanks! 💪
raspberryPi3, kodi 18.6

It works like a charm for 18.x Leia - raspi retropie 3b+.
Many thanks - my little son can watch again his fav 'shaun thr sheep' ☺

Bug report
Your Environment

Netflix add-on version: 1.4.1
Operating system version/name: LibreELEC
Device model: Raspi 4

Used Operating system:

[ ]  Android
[ ]  iOS
[ ]  Linux
[ ]  OSX
[x]  Raspberry-Pi
[ ]  Windows

Describe the bug
Login fails with KeyError.
Expected behavior
Expect to be able to login.
Actual behavior
I get an error dialog box.
Steps to reproduce the behavior

Start Netflix addon
Error appears

Possible fix
Additional context or screenshots (if appropriate)
Installation

[x]  I'm using other Netflix Repo
[ ]  I'm using a different source

Other information
Screenshots

Bug report
Your Environment

Netflix add-on version: 1.4.1
Operating system version/name: LibreELEC 9.2.3
Device model: Raspi 4
Kodi version: 18.7.1 (Git:Leia-pi4_18.7.1.-Leia)

Used Operating system:

[ ]   Android
[ ]   iOS
[ ]   Linux
[ ]   OSX
[x]   Raspberry-Pi
[ ]   Windows

Describe the bug
Login fails with KeyError.
Expected behavior
Expect to be able to login.
Actual behavior
I get an error dialog box.

Update with: Kodi 18.x: plugin.video.netflix_1.4.1_20200618_t1.zip did help and playback is working again, no issues so far.

Kodi 18.x: plugin.video.netflix_1.4.1_20200618_t1.zip

Hotfix version working for CoreElec 9.2.3 on Odroid N2.  Thanks for that!

Version 1.4.1, I am also getting KeyError message on Nvidia Shield, Kodi 18.7.
Yesterday was working though.

This new version worked for me as well. I hope Netflix better supports this sort of thing in the future and that this temporary fix can be more permanent (otherwise they may lose a customer).
Here's a reminder of how to install Kodi add-ons from zip files.
The Kodi 18.x file I installed had the following stats:
filename: plugin.video.netflix_1.4.1_20200618_t1.zip
size:     1497878
md5:      3ae0169754c955dfe617b4393104968f
sha1:     1dabc3e78f3d4ec95dbae6d944aee5f94eaa59dc
sha256:   5a6e76818f00921b9029a60dfe807048ff1ecfcdf5e5d0a87c4d53bd3aa2c005

I hope Netflix better supports this sort of thing in the future and that this temporary fix can be more permanent (otherwise they may lose a customer).

Kind of a moving target, Netflix is probably not very concerned with supporting non-mainstream devices.  I can tolerate it as long as the guys graciously supporting the add-on can keep up.  Only lost a day of use.  I think this is only the second time I've had trouble with the add-on since I've been using it.

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

This fix worked for me as well, thanks

The fix worked on leia 18.7 on windows 10.
Thanks :)

Funciono en Raspberry pi3 kodi 18.7 en libreelec 9.2.3

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

Thanks for the quick fix. I try this and succeed.

For folks that might have overlooked it, there is a fix from the author in this comment.
https://github.com/CastagnaIT/plugin.video.netflix/issues/701#issuecomment-645910348

Yes the fix worked on 18.7

Thanks a lot. Fix is working in Kodi 18.7, Ubuntu 18.04.

I'm happy that the temporary fix works,
but this is not a forum where each one can talk freely, this is a development section
therefore post not related to the problem will be moderated
to give space to those who really have problems,
thanks to all

Thanks for the quick update!
I installed the fix for Kodi18.x.
Now I can enter (after logging in Netflix) and see my profile and lists but when I play any movie I get the following error:
Playback error: Email or password is incorrect
and it logs me out (need to log in again and still does not work).
Debug log: http://ix.io/2pum

This problem is not related to this issue,
You can try follow instruction on wiki:
https://github.com/CastagnaIT/plugin.video.netflix/wiki/FAQ-(Errors)#email-or-password-is-incorrect
or also follow the issue thread already opened with title:
Can't login on Netflix plugin - Incorrect password

Temporary update fix
I have temporary fixed the error on app opening, but i think that netflix will make Lolomo lists deprecated, the signals are there.
This means that in the next few days or weeks (...when netflix will change...) also the main menu will be completely non-working and also other menu lists.
More extensive modifications are required, i will be performing some tests in the next days to understand better way to get the main menu
I attach a temporary fix but WARNING:
* Can happen that raise unexpected errors

* If you use "Sync of watched status with netflix" can happen that stop working or raise errors

Kodi 18.x: plugin.video.netflix_1.4.1_20200618_t1.zip
Kodi 19.x: plugin.video.netflix_1.4.1+matrix.1_20200618_t1.zip

works nice for the moment, thx for your work!!

Hey
Fix works perfectly on CoreELEC 9.2.3
Thanks a lot

the fix worked wonderfully, excellent work @CastagnaIT

Thanks for the quick update!
I installed the fix for Kodi18.x.
Now I can enter (after logging in Netflix) and see my profile and lists but when I play any movie I get the following error:
Playback error: Email or password is incorrect
and it logs me out (need to log in again and still does not work).
Debug log: http://ix.io/2pum

This problem is not related to this issue,
You can try follow instruction on wiki:
https://github.com/CastagnaIT/plugin.video.netflix/wiki/FAQ-(Errors)#email-or-password-is-incorrect
or also follow the issue thread already opened with title:
Can't login on Netflix plugin - Incorrect password

Thanks for the reply.
I managed to fix the problem. It was not related to anything mentioned in the suggested thread, though.
I noticed that there was a trailing space at the end of my email. Although, it DID log me in correctly in my profile, when I started a movie it brought the error message. Removing the trailing space resolved the issue. Weird, though.

thanks for the info! i will check

Why is the resolution still 960x540 after upgrading to plugin.video.netflix-1.4.1? What parameters are set?
My environment is: Coreelec 9.2.0

Temporary update fix
I have temporary fixed the error on app opening, but i think that netflix will make Lolomo lists deprecated, the signals are there.
This means that in the next few days or weeks (...when netflix will change...) also the main menu will be completely non-working and also other menu lists.
More extensive modifications are required, i will be performing some tests in the next days to understand better way to get the main menu
I attach a temporary fix but WARNING:

Can happen that raise unexpected errors
If you use "Sync of watched status with netflix" can happen that stop working or raise errors

Kodi 18.x: plugin.video.netflix_1.4.1_20200618_t1.zip
Kodi 19.x: plugin.video.netflix_1.4.1+matrix.1_20200618_t1.zip

This is really help! Thank you, it solved my problem!

This is to confirm that the hotfix  works on Debian 10.4 with Kodi 18.6. Thank you for addressing the issue promptly.

Will the plugin still receive updates after installing the temporary fix?

Temporary update fix

I have temporary fixed the error on app opening, but i think that netflix will make Lolomo lists deprecated, the signals are there.

This means that in the next few days or weeks (...when netflix will change...) also the main menu will be completely non-working and also other menu lists.

More extensive modifications are required, i will be performing some tests in the next days to understand better way to get the main menu

I attach a temporary fix but WARNING:

Can happen that raise unexpected errors

If you use "Sync of watched status with netflix" can happen that stop working or raise errors

Kodi 18.x: plugin.video.netflix_1.4.1_20200618_t1.zip

Kodi 19.x: plugin.video.netflix_1.4.1+matrix.1_20200618_t1.zip

This is really help! Thank you, it solved my problem!

Can you achieve at least 720p resolution after updating plugin.video.netflix_1.4.1_20200618_t1.zip? Why is mine only 960*540?

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

That fixed the KeyError on my Mac, but not playback. On my OSMC device it does seem to work now (although in my brief tests I can only get 540p streams - I'll look at that next). Now that I think about it, Netflix has never worked on my Mac.

I have applied this workaround and it works well.
Thank you.

It might be the issue is just isLocoSupported was removed, so maybe the hack is to force a value to false. Yeah it appears this will work as well:
in ./resources/lib/api/website.py:
before line 104 add:
user_data['isLocoSupported'] = 'false' # ADD LINE
g.LOCAL_DB.set_value('is_loco_supported', user_data.get('isLocoSupported'), TABLE_SESSION)
if user_data.get('isLocoSupported'):

this worked for me. Thank you.

I have applied this workaround  and it works well. Now the menus, lists, video views, etc, running fine.
Thank you.

New add-on release is available

@CastagnaIT Great to have a new release so fast! 💨  I know what you did this weekend.. ;) Plz. don't forget to close this issue 😉  (Just installed the patch, only then found out there was a new release)

Thanks for your speed. 👍

Agreed! Thank you for getting to this so quickly!

From: Marco<EMAIL_ADDRESS>Sent: Sunday, June 21, 2020 1:18:58 PM
To: CastagnaIT/plugin.video.netflix<EMAIL_ADDRESS>Cc: Oss<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [CastagnaIT/plugin.video.netflix] Addon open/login fails with KeyError 'lolomo' (#701)
Thanks for your speed. 👍
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/CastagnaIT/plugin.video.netflix/issues/701#issuecomment-647176544, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEDAOBWZFB7HXQF6AILGPM3RXZTLFANCNFSM4OAZTQJA.

I tried to update via Kodi addons but didn't get your new release. How do I install your new release?

Can confirm the version 1.5.0 is working, thank you!!

I tried to update via Kodi addons but didn't get your new release. How do I install your new release?

Looks like the channel isn't updated yet.
You can wait for the channel to be updated with the new release, or you can download the zip file from the releases tab and install the addon from the zip file.

I can also confirm that version 1.5 has solved this issue. Everything is working fine again.
@CastagnaIT thanjk you very much !!!!

Will the plugin still receive updates after installing the temporary fix?

My system (Ubuntu 20.04, Kodi 18.7 via team-xbmc PPA) successfully auto-updated to Netflix add-on version 1.5 from the manually-installed .zip update in this thread. Everything looks good. Thanks, @CastagnaIT!

The channel is updated now. 1.5.0 is all good. Thanks for your help.
On Mon, 22 Jun 2020, 14:57 Adam Katz<EMAIL_ADDRESS>wrote:

Will the plugin still receive updates after installing the temporary fix?
My system (Ubuntu 20.04, Kodi 18.7 via team-xbmc PPA
http://ppa.launchpad.net/team-xbmc/ppa/ubuntu) successfully
auto-updated to Netflix add-on version 1.5 from the manually-installed .zip
update in this thread. Everything looks good. Thanks, @CastagnaIT
https://github.com/CastagnaIT!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/CastagnaIT/plugin.video.netflix/issues/701#issuecomment-647765435,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AENGBXUZ7P3EL5DFK3LGE5TRX7AR5ANCNFSM4OAZTQJA
.

When can we expect a patch for Matrix (Kodi 19)?

Hey
Fix works perfectly on CoreELEC 9.2.3
Thanks a lot

How did you apply the fix?


feat(rust): add trust context and implementation over project authority

Current behavior

Proposed changes
Implements: https://github.com/build-trust/codebase/issues/513

Modify CredentialExchangeWorker as described, based on this TrustContext entity
There shouldn't be anything else left using identity.credential()?, remove that. If there is something else using it.. review why and review the plan

This currently is unable to be fully implemented because of the dependencies that exist within a credential retriever.
Currently the CredentialRetriever implementation for an issuer, relies on a multiaddr, which is used to create a TCP session.
This requires the implementation to reside within the ockam_api crate, preventing the CredentialExchangeWorker and Identity implementations to use them as a dependency.
Currently the callers of those structs, utilize the TrustContext to retrieve and set the credential.

Still working through the many test cases and bats test that need to be updated and added; however I wanted to get the PR open to have eyes on it early.
And potentially reopen the discussion of handling the MultiAddr dependency.

Checks

[ ] All commits in this Pull Request are signed and Verified by Github.
[ ] All commits in this Pull Request follow the Ockam commit message convention.
[ ] I accept the Ockam Community Code of Conduct.
[ ] I have accepted the Ockam Contributor License Agreement by adding my Git/Github details in a row at the end of the CONTRIBUTORS.csv file in a separate pull request to the build-trust/ockam-contributors repository. The easiest way to do this is to edit the CONTRIBUTORS.csv file in the github web UI and create a PR, this will mark the commit as verified.

Currently the CredentialRetriever implementation for an issuer, relies on a multiaddr, which is used to create a TCP session.

This requires the implementation to reside within the ockam_api crate, preventing the CredentialExchangeWorker and Identity implementations to use them as a dependency.

True, the concept of TrustContext must be moved inner in the ockam crate trees, likely into ockam_identity. Some of CredentialRetriever implementation can be there (like the from memory one), while others (the one that reads from disk for example) can't be there and need to be on ockam_api. This implies using a trait for this rather than an enum .

Okay. I'm happy with that sort of an implementation.
Another thought process I was running down was how feasible it would be to use route instead of multiaddr and strictly PathBuf of CredentialState
I'll definitely start moving the implementation back over into the ockam_identity crate (where I once had it), and go from there.

Another thought process I was running down was how feasible it would be to use route instead of multiaddr and strictly PathBuf

that would be simpler but not possible due to the core part not having access to file system  (no_std)

Closing in favor of this PR: https://github.com/build-trust/ockam/pull/4588
Which has a better commit history and passing tests.


Teardown in Travis CI

Hi
I have run into a very strange issue. When I am running my tests on Travis CI, the teardown of CodeceptJS does not work properly. For instance if my first test is logging in into a given page and the second test tries to login with wrong credentials, I am already logged in in the second test.
When I am running the tests locally the teardown is executed properly.
How can this happen?
This issue is problematic if one of my tests is failing, because the log-out that I am executing at the end of my tests is not called, when one test fails

What you use for backend, Phantom or Selenium?
Looks like session is not started or cookies from old session are used

I use Phantom.
But as long as the tests are passing everthing is fine, but the teardown for failed tests does not work

I think this should be fixed in #162


[FEATURE REQUEST] Incorporate binomial confidence intervals into pipeline

Currently manually calculating them in R. Better to incorporate into the pipeline.

Added this to dnm_summary_stats in 1.2.0

Added to denovolib. Needs testing, but done.


Snapshot create fails in Win10

After running the basic SDK example that only contains datmo.snapshot.create() for datmo functionality, the script runs but errors on snapshot creation. Traceback included below.

Cause is potentially related to improper .datmo directory initialization from Issue #141

this should also be fixed with commit 6441a40 since init should never exit without having either completely finishing the commit or removing all traces of the project it has failed. Therefore having no current session should never occur.

Close with PR #144


Notebook JSON is invalid

I have a question on the msra notebook. I was able to run it to the point of training, however, when I started the training, I repeatedly saw this error and the notebook finally froze:
[I 07:37:39.289 NotebookApp] Saving file at /examples/notebook_examples/msra_ner.ipynb
[E 07:37:39.302 NotebookApp] Notebook JSON is invalid: {'version_major': 2, 'version_minor': 0, 'model_id': '2a114915871b4c7988a94fa7a633b646'} is not valid under any of the given schemas
Failed validating 'oneOf' in display_data['properties']['data']['patternProperties']['^(?!application/json$)[a-zA-Z0-9]+/[a-zA-Z0-9\\-\\+\\.]+$']:

On instance['cells'][7]['outputs'][0]['data']['application/vnd.jupyter.widget-view+json']:
{'model_id': '2a114915871b4c7988a94fa7a633b646',
 'version_major': 2,
 'version_minor': 0}

the solution to the above is to open the notebook in a text editor and change "nbformat_minor": 1 to 4. Then everything runs fine.


[Doc] [Configurable Variables] Configurable variables with packages

Description:
When working with configurable variables in packages, we have to group the key-value pairs under the module name when providing configurations in Config.toml.
Sample Config.toml:
[testbal]
hostName = "<IP_ADDRESS>"
port = 9090

Here testBal is the name of the module.
This information is not there in the current documentation [1]. It would be great if we add this.
[1] https://ballerina.io/learn/by-example/configurable.html

The related information is now available in a separate learn page from beta1.
https://ballerina.io/learn/user-guide/configurability/providing-values-to-configurable-variables/#providing-values-through-toml-syntax
Hence closing the issue.


Normalize importer path

Closes #5
Two tests were failing on Windows before, now they don't.
I've also tested the changes live in another project.

Sorry for the long hiatus. I'll pull this and push a test for it soon.


Automatically check for and install updates

I would like to see a message if an update for pass-winmenu is available, with the option to install the update. This relies on #25 to be implemented first.

I would like to add this for users who do not use the Chocolatey package, but obviously the Chocolatey version should not have this enabled.
It should be possible to disable this feature for those who don't want to use it.
@majkinetor What do you think? Should people using the Chocolatey version still get a message informing them that a new version is available (but requiring them to use Chocolatey to update instead), or should they not be notified of new versions at all?

I let that to users but add parameter for them to choose. We can do that here too.


ReporterDispatcher set result.console to undefined

🐛 Bug Report
The ReporterDispatcher overrides TestResult.console property with undefined. As a result of this - the console output cannot be used in custom reporters like jest-junit.
To Reproduce
This behaviour is visible in the source code in version @jest core 24.8.0.
Line 43:
https://github.com/facebook/jest/blob/master/packages/jest-core/src/ReporterDispatcher.ts
    // Release memory if unused later.
    testResult.sourceMaps = undefined;
    testResult.coverage = undefined;
    testResult.console = undefined;

Expected behavior
The console output should be forwarded to the test reporters. But first we have to check for what reason the console property is set to undefined.
Link to repl or repo (highly encouraged)
Steps to reproduce the 'error':

Clone the project https://github.com/jkblume/simple-app and step into it
npm install
npm run test

If you debug the code or add some debug outputs you notice that the TestResult.console property is defined - but after passing the ReporterDispatcher it is set to undefined

I'm seeing this as well.

I think I have a fix for jest to re-enable this functionality. Sending a PR shortly.

I missed this issue, sorry! Background is in #8233. Essentially - if you need the console output at the end of a run, buffer it yourself on a test by test basis

Any updates on this, @SimenB?
I'm trying to create a custom reporter to sets a max warning threshold like --max-warnings on lint, but I can't figure out if the console is being called if the return of result.console is undefined.


Check that lib is no_std in CI

Library does have #![no_std] flag, but it doesn't mean it's actually no_std friendly as it could have dependencies that aren't no_std.
We should check in CI that lib is actually no_std friendly, e.g. by compiling it to musl target.

We can be a bit lazy and only have this check in generic-ec or even cggmp instead of putting it to three repos.
I think it's not a musl target, but rather linux-unknown-unknown

Yeah you're right. Actually, https://github.com/dfns/generic-ec/pull/17 adds the test that project compiles into wasm32-unknown-unknown, I think that should be enough


Cleanup NetBeans license header for module queries

Review and cleanup the license header in queries
Oracle donated NetBeans to the Apache Software Foundation.
Your task now is to replace the old license header that has Oracle (and/or Sun Microsystems
and/or NetBeans) in it with the standard Apache Software Foundation license header.
For an empty file that supports headers you must add the Apache license header.
Note that you have to use the proper license header for Java, .properties or HTML files.
Look at the nearby files for templates and copy-paste the license header.
When done commit the changes with a commit message that starts with first line
"[NETBEANS-54] Module Review " and a message body describing your review.
See a longer explanation about what we are doing here: https://cwiki.apache.org/confluence/display/NETBEANS/List+of+Modules+to+Review
Please announce in a comment when you have started work.
Files that need to be looked at in queries:
queries/test/unit/src/org/netbeans/api/queries/data/data.properties
queries/test/unit/src/org/netbeans/api/queries/data/encoding_after_block
queries/test/unit/src/org/netbeans/api/queries/data/encoding_on_block
queries/test/unit/src/org/netbeans/api/queries/data/encoding_on_block_long
queries/test/unit/src/org/netbeans/api/queries/data/encoding_on_start
queries/test/unit/src/org/netbeans/api/queries/data/encoding_on_start_long
queries/test/unit/src/org/netbeans/api/queries/data/no_encoding
queries/test/unit/src/org/netbeans/api/queries/data/no_encoding_long
queries/test/unit/src/org/netbeans/api/queries/data/partial_utf

mine.