Printing app: MSApp.getHtmlPrintDocumentSource no longer available

When trying to run the app on a Windows Mobile device the API is gone.

I've reached out to the team regarding this, and will update this issue when I have more information.

It seems the name have changed to getHtmlPrintDocumentSourceAsync

This would make sense, given the desire to avoid blocking. As well, a question recently asked on Stack Overflow suggests this also may have taken place. I don't work on the team that handles this, but I have initiated a thread with them to see if there's anything we can do to make the transition from non-async to async more helpful for engineers.

Thanks. I think most confusion comes from the bad state the MSDN docs are in. Try to find the Edge API. If you know what you looking for and google it, you get this as the first hit. Not very useful. If you don't know what you looking for you end up on pages that describe MSApp.getHtmlPrintDocumentSource with absolutely no cross reference to the new way Edge handles this. A simple hyperlink would be a start.
And thats how you handle both cases on Windows 8.1/IE11 and Windows 10/Edge
      var printTask = event.request.createPrintTask(title, function (args) {
                var deferral = args.getDeferral();
                var getPrintDocumentSourceAsync;
                if (MSApp.getHtmlPrintDocumentSourceAsync) { // Windows 10
                    getPrintDocumentSourceAsync = MSApp.getHtmlPrintDocumentSourceAsync(document);
                } else {
                    getPrintDocumentSourceAsync = WinJS.Promise.as(MSApp.getHtmlPrintDocumentSource(document));
                }
                getPrintDocumentSourceAsync.then(function (source) {
                    args.setSource(source);
                    deferral.complete();
                }, function (error) {
                    console.error(error);
                    deferral.complete();
                });
            });

I wanted to update this thread with a notice that a team member has provided an answer to a similar question on Stack Overflow, that may yield a bit more context.
Source: http://stackoverflow.com/a/33636254/54680

Thanks. The sample code quality from MS is still not the best. I prefer my version that does not need a global variable for the doc source (and is even back-compatible with Windows 8.1).

I like your version too.

Wow 😲 thanks Raymond. Didn't know you're around here. Love your blog. And your minimal win32 sample app ;)
I often cite ur blog to emphasize to which lengths Microsoft goes to make the OS behave even when lazy programmers don't adhere to its API. That said I often feel lost in the MSDN docs. It has improved over the years but I constantly hit the "was this helpful" with "no" and write suggestions on how to make the API docs better for us lazy programmers. Not sure anybody reads that feedback though.


HTTP load failed (error code: -999)

always appear above message in log of my project, and sometimes cause my app to crash.

when app reach to the last line, crash
2019-01-21 11:25:34.711392+0300 ReservationOfOperationsHall[4628:795521]  - [I-ACS036002] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2019-01-21 11:25:34.891998+0300 ReservationOfOperationsHall[4628:795480] [MC] Loaded MobileCoreServices.framework
2019-01-21 11:25:34.981826+0300 ReservationOfOperationsHall[4628:795521] 5.10.0 - [Firebase/Analytics][I-ACS023007] Analytics v.50200000 started
2019-01-21 11:25:34.981999+0300 ReservationOfOperationsHall[4628:795521] 5.10.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2019-01-21 11:25:35.018005+0300 ReservationOfOperationsHall[4628:795480] refreshPreferences: HangTracerEnabled: 0
2019-01-21 11:25:35.018369+0300 ReservationOfOperationsHall[4628:795480] refreshPreferences: HangTracerDuration: 500
2019-01-21 11:25:35.018643+0300 ReservationOfOperationsHall[4628:795480] refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0
2019-01-21 11:25:35.174202+0300 ReservationOfOperationsHall[4628:795521] [BoringSSL] Function boringssl_context_get_peer_sct_list: line 1754 received sct extension length is less than sct data length
2019-01-21 11:25:35.387850+0300 ReservationOfOperationsHall[4628:795533] TIC Read Status [1:0x0]: 1:57
2019-01-21 11:25:35.387878+0300 ReservationOfOperationsHall[4628:795533] TIC Read Status [1:0x0]: 1:57
2019-01-21 11:25:40.086944+0300 ReservationOfOperationsHall[4628:795531] TIC Read Status [3:0x1c017d340]: 1:57
2019-01-21 11:25:40.197949+0300 ReservationOfOperationsHall[4628:795480] Reachability Flag Status: -R ------- networkStatusForFlags
2019-01-21 11:25:40.198039+0300 ReservationOfOperationsHall[4628:795480] Reachability Flag Status: -R ------- networkStatusForFlags
2019-01-21 11:25:40.198136+0300 ReservationOfOperationsHall[4628:795526] Task <1AA895E9-0115-4D4F-97A1-9DA228C888ED>.<2> HTTP load failed (error code: -999 [1:89])
Internet
2019-01-21 11:25:40.198321+0300 ReservationOfOperationsHall[4628:795531] Task <1AA895E9-0115-4D4F-97A1-9DA228C888ED>.<2> finished with error - code: -999
usserrrrrrrrrrrrrrOptional("ali3@nhs.iq")verified
loaded again
iPhone 6+/6S+/7+/8+
user id Optional("y4ZwPvmTJ7U0c2V2Xw9w84zTyao2")
2019-01-21 11:25:40.287908+0300 ReservationOfOperationsHall[4628:795480] Reachability Flag Status: -R ------- networkStatusForFlags
2019-01-21 11:25:40.647583+0300 ReservationOfOperationsHall[4628:795531] TIC Read Status [11:0x1c417ef00]: 1:57
2019-01-21 11:25:40.755796+0300 ReservationOfOperationsHall[4628:795480] Reachability Flag Status: -R ------- networkStatusForFlags
2019-01-21 11:25:40.755919+0300 ReservationOfOperationsHall[4628:795480] Reachability Flag Status: -R ------- networkStatusForFlags
2019-01-21 11:25:40.756412+0300 ReservationOfOperationsHall[4628:795526] Task <65027ED9-CDBA-48DC-8676-D7322CE6D15B>.<2> HTTP load failed (error code: -999 [1:89])
2019-01-21 11:25:40.756926+0300 ReservationOfOperationsHall[4628:795522] Task <65027ED9-CDBA-48DC-8676-D7322CE6D15B>.<2> finished with error - code: -999

Thanks for sending that over - that looks like the console log rather than an actual stack trace after a crash has occurred? Unfortunately there's nothing obvious that points towards a crash in your log but you may be able to get the crash trace out of Firebase as it looks as though you are using that or by copying and pasting after the crash has taken place.

I'm going to go ahead and close this one for now because I haven't seen anything that points towards Connectivity as being the cause of a crash however if you find the crash stack trace and it points to the library then do let me know and I'll happily re-open.


Plotting with Tkinter on Mojave 10.14.6 causes a crash & log out

Issue Report Checklist

[yes ] Searched the issues page for similar reports
[yes ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[yes ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[n/a ] Could not reproduce inside jupyter qtconsole (if console-related)
[yes ] Tried basic troubleshooting (if a bug/error)

[yes ] Restarted Spyder
[yes ] Reset preferences with spyder --reset
[no ] Reinstalled the latest version of Anaconda
[yes ] Tried the other applicable steps from the Troubleshooting Guide

[yes ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
I have been using Tkinter for plotting, to avoid the slow execution problem described in #2902 . This solution worked just fine for me, until the latest Mojave update 10.14.6. Since the update, when I create a plot and click on the plot window icon on the dock, the screen goes black for a second and the macOS login screen appears. After I log in, the windows of Anaconda Navigator and Spyder are gone and their icons are no longer present on the Dock. Activity Monitor however indicates that python is still running.
I have reproduced this problem a few times. I switched from Tkinter back to Qt5 and that solved the crash problem.
What steps reproduce the problem?

Use Tkinter backend for plotting
Plot something (e.g. a bunch of random points, a line, whatever)
Click on the plot window icon on the macOS dock to view the plot.

What is the expected output? What do you see instead?
I expected to see the plot, as was the case prior to the update to Mojave 10.14.6. Instead, the whole screen turns black for a second. Then the macOS login screen appears and asks for log in credentials.
Paste Traceback/Error Below (if applicable)
Unfortunately the Spyder window is gone after I log back in so I don't know how to check for error messages.

## Versions

* Spyder version: 3.3.6
* Python version: 3.7.0 64-bit
* Qt version: 5.9.6
* PyQt version: 5.9.2
* Operating System name/version: Darwin 18.7.0 (macOS Mojave 10.14.6)

### Dependencies

IPython >=4.0     :  7.6.1 (OK)
cython >=0.21     :  0.29.12 (OK)
jedi >=0.9.0      :  0.13.3 (OK)
matplotlib >=2.0.0:  3.1.0 (OK)
nbconvert >=4.0   :  5.5.0 (OK)
numpy >=1.7       :  1.16.4 (OK)
pandas >=0.13.1   :  0.24.2 (OK)
psutil >=0.3      :  5.6.3 (OK)
pycodestyle >=2.3 :  2.5.0 (OK)
pyflakes >=0.6.0  :  2.1.1 (OK)
pygments >=2.0    :  2.4.2 (OK)
pylint >=0.25     :  2.3.1 (OK)
qtconsole >=4.2.0 :  4.5.1 (OK)
rope >=0.9.4      :  0.14.0 (OK)
sphinx >=0.6.6    :  2.1.2 (OK)
sympy >=0.7.3     :  1.4 (OK)

Thanks for the detailed report. Unfortunately this is not a problem we can solve in Spyder.
You could report it in Matplotlib:
https://github.com/matplotlib/matplotlib
to see if the they know something about it.

Also on macOS Mojave 10.14.6
Exact same problem, except for me I get the crash as soon as I run a script/cell containing any tkinter functions that call a window.
Really ruined my weekend

Please report this problem in Matplotlib, as I mentioned above.

Am I missing something?
Why would I report an issue with Tkinter to Matplotlib?
On Sun, 11 Aug 2019 at 6:11 pm, Carlos Cordoba<EMAIL_ADDRESS>wrote:

Please report this problem in Matplotlib, as I mentioned above.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/spyder-ide/spyder/issues/9969?email_source=notifications&email_token=AL2P2FDM2CDHINURXW5DVQTQD7QVLA5CNFSM4IJPYJQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4A54IY#issuecomment-520216099,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL2P2FGHNWDAX56DJSUTSC3QD7QVLANCNFSM4IJPYJQQ
.

They could know what's happening with that, if other users reported the same problem.
We certainly can't help you with this problem, so I really don't understand why you keep posting about it here.

The issue is with Tkinter, not Matplotlib, so no idea why you insist we
contact them, and
You clearly aren’t familiar with community forums are you? 😂

On Sun, 11 Aug 2019 at 6:53 pm, Carlos Cordoba<EMAIL_ADDRESS>wrote:

They could know what's happening with that, if other users reported the
same problem.
We certainly can't help you with this problem, so I really don't
understand why you keep posting about it here.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/spyder-ide/spyder/issues/9969?email_source=notifications&email_token=AL2P2FBBPPG4MCFDYQGAVF3QD7VQZA5CNFSM4IJPYJQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4A6PMI#issuecomment-520218545,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL2P2FF4JQCL5ZNIQXPEWOLQD7VQZANCNFSM4IJPYJQQ
.

The issue is with Tkinter, not Matplotlib, so no idea why you insist we
contact them

Please read the bug description with care:

Title: "Plotting with Tkinter on Mojave 10.14.6 causes a crash & log out"
First line of the description: "I have been using Tkinter for plotting ..."

If you don't want to report this in Matplotlib, fine by me. That's what I would do as a user affected by this problem, to see if they know what can be causing such an ugly crash.

You clearly aren’t familiar with community forums are you?

This is not a community forum, it's a place to report problems about Spyder.

Please don't continue with this argument if you don't have something productive to say.


Display more than 8 results

When only displaying 8 results per page, you can't really search through all your search results to find exactly what you want. I would propose to increase the default and maybe add a view which just display everything.
Also the pager is not nice to use. It only displays the first, last, current and current-1 and current+1. If you want to navigate from the 7th to the 20th page you need to click a lot.

I‘ll add a select field where you can select the number of results per page. But i would like to leave the pagination (you called it pacer) as it is.
Because why would you want to go to 20th page to find your result there. I have to stay compatible with mobile devices and cannot just add more entries there, as it is already very dense on small devices
the other features will be added very soon

Fixed in #8


cpp-client loses spans on short-lived processes; Close() not flushing buffers?

If a process:

Creates a tracer with a typical configuration (like the following yml)
Creates a span
Finishes the span
Closes the tracer
Exits

the span should be reported to the collector. But it isn't unless a short sleep is inserted before the tracer->Close() call.
If the sleep() is added after  the tracer close, the spans are not sent. It looks like Close() must be failing to flush buffers, instead dropping any pending buffers on the floor.
Configuration, loaded with the YAML config support:
disabled: false
sampler:
    type: const
    param: 1
reporter:
    queueSize: 100
    bufferFlushInterval: 10
    logSpans: false
    localAgentHostPort: <IP_ADDRESS>:6831
headers:
    jaegerDebugHeader: debug-id
    jaegerBaggageHeader: baggage
    TraceContextHeaderName: trace-id
    traceBaggageHeaderPrefix: "testctx-"
baggage_restrictions:
    denyBaggageOnInitializationFailure: false
    hostPort: <IP_ADDRESS>:5778
    refreshInterval: 60

Related #53

RemoteReport::close() makes no effort to flush by the looks:
void RemoteReporter::close()
{
    {
        std::unique_lock<std::mutex> lock(_mutex);
        if (!_running) {
            return;
        }
        _running = false;
        lock.unlock();
        _cv.notify_one();
    }
    _thread.join();
}

It probably makes sense to log dropped buffers on close instead, with a hint that an explicit flush before close is advised (using #53 for flush). But that'd really want the opentracing API to adopt the Flush method.

The Close method is meant to be optional; so if you don't want to wait on the tracer to flush all it's spans you can just not call it.
I think the right solution is for jaeger to move the current code in close to its destructor and change close to flush the spans, but require it to be called explicitly.

@rnburn Makes sense. I'll amend my push that adds an optional Tracer.flush() to Jaeger's tracer so that it also calls it on explicit Close(), but from the dtor.
@isaachier I've written a small test program to reproduce this bug. It reliably loses spans. https://github.com/ringerc/jaeger-cpp-client/commit/2a36dd57864f612454b1bbd0f8c6e9b4fc728190 (on master) or https://github.com/ringerc/jaeger-cpp-client/commit/ff654d91c8b2088f29b910be50fe721180ec550e (on my fix/feature integration branch, but not using flush).
jaegertracing::Tracer::flush() does not seem to be working/sufficient.  If you uncomment
        //static_cast<jaegertracing::Tracer*>(tracer.get())->flush();

in src/jaegertracing/shortlived.cpp, it still often loses spans. Wireshark will show that the span was never sent.

I pushed an improved test case. It clearly shows that we lose spans unless:

We explicitly flush() with ./src/jaegertracing/shortlived "" 1
We sleep > 10 seconds with ./src/jaegertracing/shortlived "" 0 11

Also, the flush must take effect. Sometimes it seems to get missed;
Test with opname "shortlived--flush-sleep0s, flush 1
flushing...  flushed (flush took 0ms)
not sleeping before exit

in which case the span is also lost. So there's something wrong with my flush method. Locking issues?
@isaachier I could use advice at this point, my C++ and threading is ... limited

In general there might be a problem with blocking IO and threading. I'm about to call it a night, but will try to look at this tomorrow. Worst case, will be able to look over the weekend.

I think I have a simpler approach for this specific issue. About the flush method being exposed overall, that can be a new PR. See #59 for first fix.


BloggerApp: Add Views

BloggerApp: Add Views
In this branch, I have done the following;
✅ created views for the following;

users#index
users#show
pages#index
pages#show

✅ fixed linters errors

Thank you @emmanuellekamwa


NestedComponent - error handling

OpenUI5 version:
1.108
Browser/version (+device/version):
Chrome
URL (minimal example if possible):
https://sdk.openui5.org/entity/sap.ui.core.routing.Router/sample/sap.ui.core.sample.RoutingNestedComponent/code
https://sdk.openui5.org/topic/fb19f501b16e4e4991eb6a017770945b
What is the expected result and what happens instead?
We have an app with more than 15 NestedComponents. The setup of the app with its NestedComponents is identical to the recommendations in the links above. Loading and navigation between the components work fine.
Now, we are encountering an issue when the user's session expires, and the user attempts to navigate to a NestedComponent that was not loaded in his/her active session before. In the browser console, I see an error from 'sap.ui.core' with a 'ModuleError' exception: 'ModuleError: failed to load '.. URL of the NestedComponent ...' from '.. URL of the current component ..'.
I would like to catch this exception or attach some kind of event handler to UIComponent, Router, or whatever is necessary so that we can inform the user that something went wrong.
Currently, nothing happens when the user tries to navigate to the NestedComponent, because UI5 just throws the exception.
Any other information? (attach screenshot if possible)

Unfortunately, I couldn't find any information about error handling for NestedComponents on sdk.openui5, and I'm seeking help on this topic because it's not clear whether this is a missing functionality of UI5.
Regards
TheNorthBridge

Hello @TheNorthBridge,
First of all, please be informed that our samples are just for an illustration of the API, not for direct usage in an application.
In your description, I do not see any specific control issue reported. Only a screenshot of a console error is not enough as a description of an issue.
Please, analyse in details the problem from application side and if you find a OpenUI5 control related issue or an enhancement needed, please describe it in details, in order to be able to support you.
Thank you in advance!
Kind Regards,
Niya

Hello @TheNorthBridge
Thank you for sharing your enhancement proposal. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.

Short update, as we follow-up considering such an enhancement via our agile development process, in dedicated task CPOUI5FRAMEWORK-605.


Cannot delete from import map if service name includes a / in it

Having a / in a service name is pretty common, for namespacing. Example: @openmrs/root-config.
But deleting something from the import map doesn't work if you attempt to do so, probably because the / is interpreted to mean a different part of the route entirely.

Ya, I'm not really sure how to resolve this issue. Have you tried encoding the  slash?
We should probably check for slash at creation and prevent it. Literally any other character for namespacing besides / or ? would work.

Ya, I'm not really sure how to resolve this issue. Have you tried encoding the slash?
We should probably check for slash at creation and prevent it. Literally any other character for namespacing besides / or ? would work.

It's the standard in JS land to use the @company/package format though, so I think encoding it would probably be the better route rather than preventing it.

does @company really need to be in the name? Is there a situation where multiple companies code would be deployed to the same location? I dont mind if we can get this to work, I am just trying to understand.

It’s more to prevent name clashes for base names, eg if I happen to name a microservice “react” then there will be some problems with which react am I importing from?

Encoding the / as %2F worked.


Added mitx-staging Production

Added the mitx-staging production stack.
Description

Motivation and Context

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Enhancement (improves on existing behavior)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project. (Did you install and run the pre-commit hooks?)
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

:+1:


Lectures don't load by pushing the button

I can't download lectures by using this feature on © 2020 Echo360.
If I push the button "load lectures on page" it is reloading the page, but it doesn't put the videos into the window of gecko. Only the Download-button is green then. This happens in every single lecture I have.
Before pushing the button:

After pushing the button:

Desktop (please complete the following information):

Microsoft, Laptop: Medion
Google Chrome
Chrome Version 83.0.4103.106

Additional context
I also turned off my AdBlock, but it doesn't change anything. Is there some configuration I have to make or something like that?
My university "Paris-Lodron University Salzburg" also uploaded a new version of "Blackboard" this weekend. May it has a connection?

Hi, can confirm as a student that is still study at Monash I'm getting the same problem as well

Hi all,
Unfortunately many members of team have completed uni and hence lost access to echo360, however we are happy to review any pull requests into this app.

Same issue. Videos aren't being detected

Hi @TerryF003 ,
Thanks for confirming this issue - Unfortunately many members of our team have completed uni and hence lost access to echo360, however we are happy to review any pull requests into this app.

It appears that echo360 has changed the structure of the JSON in the "syllabus" which has caused this plugin to break.  The new version lacks the keys lesson.hasAvailableVideo and lesson.video.  See screenshot from chrome inspector.

Hi @mtezzo ,
Thanks for confirming this issue - Unfortunately many core and original of members our team have completed uni and hence lost access to echo360, however we are happy to review any pull requests into this app.

Hello, would you plz help me confirm is there still video link in syllabus?

发件人: Michael Ezzo<EMAIL_ADDRESS>发送时间: Tuesday, June 23, 2020 5:50:21 AM
收件人: GeckoDM/GeckoDownloadManager<EMAIL_ADDRESS>抄送: Subscribed<EMAIL_ADDRESS>主题: Re: [GeckoDM/GeckoDownloadManager] Lectures don't load by pushing the button (#75)
It appears that echo360 has changed the structure of the JSON in the "syllabus" which has caused this plugin to break. The new version lacks the keys lesson.hasAvailableVideo and lesson.video. See screenshot from chrome inspector.
[2020-06-22_17-44-14]https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F1561895%2F85338667-b9a40780-b4b0-11ea-8eed-93878b3d58c6.png&data=02|01||a0598b48f0e441df15bb08d816f6436a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637284594226053307&sdata=4C%2BdTKet2bsEWAr9dreQnnFD2f%2FCddL996ECkETIhSE%3D&reserved=0
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGeckoDM%2FGeckoDownloadManager%2Fissues%2F75%23issuecomment-647786926&data=02|01||a0598b48f0e441df15bb08d816f6436a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637284594226053307&sdata=Sd%2Fs498ffZM2qQdiwgBIbSEP7tiV%2F2RSK0WBxfGmgR4%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEHMMGB6TYFK7ORET3ENUMLRX7GZ3ANCNFSM4OAWUIUQ&data=02|01||a0598b48f0e441df15bb08d816f6436a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637284594226063301&sdata=mRkl%2FpZQ%2F5o6bV1uRkTm%2B%2BgM598Ga8bx0t011U0pJis%3D&reserved=0.

It's been completely removed.  Here's a sample of the JSON (I trimmed it down to just a single object in the data array for brevity and sanitized the values for public posting, but kept all the keys).  It seems that echo360 completely removed all the S3 Urls which were previously embedded in the syllabus.  I've not been able to come up with a way to reconstruct them.
{
   "status":"ok",
   "message":"",
   "data":[
      {
         "lesson":{
            "lesson":{
               "id":"G_66666666-4444-5555-6666-888888888888_22222222-3333-3333-4444-555555555555_1999-01-01T08:00:00.000_1999-01-01T09:00:00.000",
               "institutionId":"55555555-2222-3333-4444-999999999999",
               "sectionId":"22222222-3333-3333-4444-555555555555",
               "captureOccurrenceId":"66666666-4444-5555-6666-888888888888_19990101T1300",
               "name":"Course Code",
               "timing":{
                  "start":"1999-01-07T08:00:00.000",
                  "end":"1999-01-07T09:00:00.000"
               },
               "timeZone":{
                  "id":"US/Eastern",
                  "name":"(-05:00) US/Eastern",
                  "standardOffset":"PT-5H"
               },
               "fromSchedule":false,
               "shouldStreamLive":true,
               "createdAt":"1999-01-01T13:14:23.123Z",
               "updatedAt":"1999-01-01T13:14:23.123Z",
               "displayName":"Course Code",
               "lessonHasName":true
            },
            "medias":[
               {
                  "id":"11111111-2222-3333-4444-555555555555",
                  "mediaType":"Video",
                  "title":"Example Course Name",
                  "isAvailable":true,
                  "isHiddenDueToCaptions":false,
                  "isRead":true,
                  "isScheduled":false,
                  "isProcessing":false,
                  "isFailed":false,
                  "isPreliminary":false
               }
            ],
            "userSectionRole":"Instructor",
            "captureStartedAt":"1999-01-01T08:00:00.000",
            "captureEndedAt":"1999-01-01T08:00:00.000",
            "questionCount":0,
            "isScheduled":false,
            "hasContent":true,
            "hasVideo":true,
            "hasVideoHiddenDueToCaptions":false,
            "hasSlideDeck":false,
            "isLive":false,
            "isPast":true,
            "isFuture":false,
            "startTimeUTC":"1999-01-01T13:00:00.000Z",
            "endTimeUTC":"1999-01-01T14:00:00.000Z"
         },
         "type":"SyllabusLessonType"
      }
   ]
}

Well, this project generally relies on that link.

发件人: Michael Ezzo<EMAIL_ADDRESS>发送时间: Saturday, June 27, 2020 8:14:05 PM
收件人: GeckoDM/GeckoDownloadManager<EMAIL_ADDRESS>抄送: ImagineBreaker<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>主题: Re: [GeckoDM/GeckoDownloadManager] Lectures don't load by pushing the button (#75)
It's been completely removed. Here's a sample of the JSON (I trimmed it down to just a single object in the data array for brevity and sanitized the values for public posting, but kept all the keys). It seems that echo360 completely removed all the S3 Urls which were previously embedded in the syllabus. I've not been able to come up with a way to reconstruct them.
{
"status":"ok",
"message":"",
"data":[
{
"lesson":{
"lesson":{
"id":"G_66666666-4444-5555-6666-888888888888_22222222-3333-3333-4444-555555555555_1999-01-01T08:00:00.000_1999-01-01T09:00:00.000",
"institutionId":"55555555-2222-3333-4444-999999999999",
"sectionId":"22222222-3333-3333-4444-555555555555",
"captureOccurrenceId":"66666666-4444-5555-6666-888888888888_19990101T1300",
"name":"Course Code",
"timing":{
"start":"1999-01-07T08:00:00.000",
"end":"1999-01-07T09:00:00.000"
},
"timeZone":{
"id":"US/Eastern",
"name":"(-05:00) US/Eastern",
"standardOffset":"PT-5H"
},
"fromSchedule":false,
"shouldStreamLive":true,
"createdAt":"1999-01-01T13:14:23.123Z",
"updatedAt":"1999-01-01T13:14:23.123Z",
"displayName":"Course Code",
"lessonHasName":true
},
"medias":[
{
"id":"11111111-2222-3333-4444-555555555555",
"mediaType":"Video",
"title":"Example Course Name",
"isAvailable":true,
"isHiddenDueToCaptions":false,
"isRead":true,
"isScheduled":false,
"isProcessing":false,
"isFailed":false,
"isPreliminary":false
}
],
"userSectionRole":"Instructor",
"captureStartedAt":"1999-01-01T08:00:00.000",
"captureEndedAt":"1999-01-01T08:00:00.000",
"questionCount":0,
"isScheduled":false,
"hasContent":true,
"hasVideo":true,
"hasVideoHiddenDueToCaptions":false,
"hasSlideDeck":false,
"isLive":false,
"isPast":true,
"isFuture":false,
"startTimeUTC":"1999-01-01T13:00:00.000Z",
"endTimeUTC":"1999-01-01T14:00:00.000Z"
},
"type":"SyllabusLessonType"
}
]
}
―
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGeckoDM%2FGeckoDownloadManager%2Fissues%2F75%23issuecomment-650552706&data=02|01||970085facd614f33e4d208d81a93973b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637288568477813128&sdata=yDrQOeOlxVo9AUuaf7DCGuNWiq1bx8OGJl60OzHVwUA%3D&reserved=0, or unsubscribehttps://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEHMMGCABPRIOICJBOM3YFLRYXPA3ANCNFSM4OAWUIUQ&data=02|01||970085facd614f33e4d208d81a93973b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637288568477823122&sdata=InC6n27OounxFOWqcAV33RUL8b%2BV1h3PSyFgwFIxkOg%3D&reserved=0.

It's been completely removed. Here's a sample of the JSON (I trimmed it down to just a single object in the data array for brevity and sanitized the values for public posting, but kept all the keys). It seems that echo360 completely removed all the S3 Urls which were previously embedded in the syllabus. I've not been able to come up with a way to reconstruct them.
{
   "status":"ok",
   "message":"",
   "data":[
      {
         "lesson":{
            "lesson":{
               "id":"G_66666666-4444-5555-6666-888888888888_22222222-3333-3333-4444-555555555555_1999-01-01T08:00:00.000_1999-01-01T09:00:00.000",
               "institutionId":"55555555-2222-3333-4444-999999999999",
               "sectionId":"22222222-3333-3333-4444-555555555555",
               "captureOccurrenceId":"66666666-4444-5555-6666-888888888888_19990101T1300",
               "name":"Course Code",
               "timing":{
                  "start":"1999-01-07T08:00:00.000",
                  "end":"1999-01-07T09:00:00.000"
               },
               "timeZone":{
                  "id":"US/Eastern",
                  "name":"(-05:00) US/Eastern",
                  "standardOffset":"PT-5H"
               },
               "fromSchedule":false,
               "shouldStreamLive":true,
               "createdAt":"1999-01-01T13:14:23.123Z",
               "updatedAt":"1999-01-01T13:14:23.123Z",
               "displayName":"Course Code",
               "lessonHasName":true
            },
            "medias":[
               {
                  "id":"11111111-2222-3333-4444-555555555555",
                  "mediaType":"Video",
                  "title":"Example Course Name",
                  "isAvailable":true,
                  "isHiddenDueToCaptions":false,
                  "isRead":true,
                  "isScheduled":false,
                  "isProcessing":false,
                  "isFailed":false,
                  "isPreliminary":false
               }
            ],
            "userSectionRole":"Instructor",
            "captureStartedAt":"1999-01-01T08:00:00.000",
            "captureEndedAt":"1999-01-01T08:00:00.000",
            "questionCount":0,
            "isScheduled":false,
            "hasContent":true,
            "hasVideo":true,
            "hasVideoHiddenDueToCaptions":false,
            "hasSlideDeck":false,
            "isLive":false,
            "isPast":true,
            "isFuture":false,
            "startTimeUTC":"1999-01-01T13:00:00.000Z",
            "endTimeUTC":"1999-01-01T14:00:00.000Z"
         },
         "type":"SyllabusLessonType"
      }
   ]
}

This project relies heavily on that lin in "Syllabus", I am afraid I am unable to fix this issue.

I agree that echo360 doesn't seem to be using .mp4 files anymore, at least on the website. If you look at the contents of the network tab, there are requests to .m3u8 and .m4s files.
The .m3u8 files are playlist files for HLS streaming files, which are what the .m4s files are. For more about HLS, you can read up Setting up adaptive streaming media sources on MDN.
The actual contents of the .m4s requests seem to be requesting a new Content-Range header for each request.

I haven't had any luck trying to download the videos using the .m3u8 playlists, so I've had a tiny wee poke around the source code. All the relevant code has been put through Webpack, and can be found in classroomApp.react-bundle.js`.
There's 74 files bundled:
./src/config.js
./src/controller/abr-controller.js
./src/controller/audio-stream-controller.js
./src/controller/audio-track-controller.js
./src/controller/base-stream-controller.js
./src/controller/buffer-controller.js
./src/controller/cap-level-controller.js
./src/controller/eme-controller.js
./src/controller/fps-controller.js
./src/controller/fragment-finders.js
./src/controller/fragment-tracker.js
./src/controller/gap-controller.js
./src/controller/id3-track-controller.js
./src/controller/level-controller.js
./src/controller/level-helper.js
./src/controller/stream-controller.js
./src/controller/subtitle-stream-controller.js
./src/controller/subtitle-track-controller.js
./src/controller/timeline-controller.js
./src/crypt/aes-crypto.js
./src/crypt/aes-decryptor.js
./src/crypt/decrypter.js
./src/crypt/fast-aes-key.js
./src/demux/aacdemuxer.js
./src/demux/adts.js
./src/demux/demuxer-inline.js
./src/demux/demuxer-worker.js
./src/demux/demuxer.js
./src/demux/exp-golomb.js
./src/demux/id3.js
./src/demux/mp3demuxer.js
./src/demux/mp4demuxer.js
./src/demux/mpegaudio.js
./src/demux/sample-aes.js
./src/demux/tsdemuxer.js
./src/errors.js
./src/event-handler.js
./src/events.js
./src/hls.js
./src/is-supported.js
./src/loader/fragment-loader.js
./src/loader/fragment.js
./src/loader/key-loader.js
./src/loader/level-key.js
./src/loader/level.js
./src/loader/m3u8-parser.js
./src/loader/playlist-loader.js
./src/observer.js
./src/polyfills/number.js
./src/remux/aac-helper.js
./src/remux/mp4-generator.js
./src/remux/mp4-remuxer.js
./src/remux/passthrough-remuxer.js
./src/task-loop.js
./src/utils/attr-list.js
./src/utils/binary-search.js
./src/utils/buffer-helper.js
./src/utils/cea-608-parser.js
./src/utils/codecs.js
./src/utils/cues.js
./src/utils/discontinuities.js
./src/utils/ewma-bandwidth-estimator.js
./src/utils/ewma.js
./src/utils/get-self-scope.js
./src/utils/logger.js
./src/utils/mediakeys-helper.js
./src/utils/mediasource-helper.js
./src/utils/output-filter.js
./src/utils/texttrack-utils.js
./src/utils/time-ranges.js
./src/utils/vttcue.js
./src/utils/vttparser.js
./src/utils/webvtt-parser.js
./src/utils/xhr-loader.js

As you can see, there's several interesting filenames:
Crypto:

./src/crypt/aes-crypto.js
./src/crypt/aes-decryptor.js
./src/crypt/decrypter.js
./src/crypt/fast-aes-key.js
./src/demux/sample-aes.js

Media:

./src/controller/audio-stream-controller.js
./src/controller/audio-track-controller.js
./src/controller/base-stream-controller.js
./src/controller/buffer-controller.js
./src/demux/mp3demuxer.js
./src/demux/mp4demuxer.js
./src/demux/mpegaudio.js
./src/hls.js
./src/loader/m3u8-parser.js
./src/loader/playlist-loader.js
./src/remux/mp4-generator.js
./src/remux/mp4-remuxer.js
./src/utils/codecs.js
./src/utils/mediasource-helper.js

I don't really want to go through all the minified code, as especially after prettifying it there's 197k lines. If someone wants to have a look, I suppose this is a good starting point.
I guess the easiest thing to do would be to ask your lecturers to enable downloading...

Hey there!
Thank you for all the answers! I am afraid that I don't really understand the programing-language.
The thing is that my lecturers told us that it should be possible to download them, but there is no button for it anywhere. So they must did not enable it or forgot about it or something... or echo360 just doesn't like me xD
But in the end there should be a way to download them and my question now is if there is any way to program something, so that I can download them for myself or isn't it possible? Or would you have to "hack" the echo360?

I agree that echo360 doesn't seem to be using .mp4 files anymore, at least on the website. If you look at the contents of the network tab, there are requests to .m3u8 and .m4s files.
The .m3u8 files are playlist files for HLS streaming files, which are what the .m4s files are. For more about HLS, you can read up Setting up adaptive streaming media sources on MDN.
The actual contents of the .m4s requests seem to be requesting a new Content-Range header for each request.

I haven't had any luck trying to download the videos using the .m3u8 playlists, so I've had a tiny wee poke around the source code. All the relevant code has been put through Webpack, and can be found in classroomApp.react-bundle.js`.
There's 74 files bundled:
./src/config.js
./src/controller/abr-controller.js
./src/controller/audio-stream-controller.js
./src/controller/audio-track-controller.js
./src/controller/base-stream-controller.js
./src/controller/buffer-controller.js
./src/controller/cap-level-controller.js
./src/controller/eme-controller.js
./src/controller/fps-controller.js
./src/controller/fragment-finders.js
./src/controller/fragment-tracker.js
./src/controller/gap-controller.js
./src/controller/id3-track-controller.js
./src/controller/level-controller.js
./src/controller/level-helper.js
./src/controller/stream-controller.js
./src/controller/subtitle-stream-controller.js
./src/controller/subtitle-track-controller.js
./src/controller/timeline-controller.js
./src/crypt/aes-crypto.js
./src/crypt/aes-decryptor.js
./src/crypt/decrypter.js
./src/crypt/fast-aes-key.js
./src/demux/aacdemuxer.js
./src/demux/adts.js
./src/demux/demuxer-inline.js
./src/demux/demuxer-worker.js
./src/demux/demuxer.js
./src/demux/exp-golomb.js
./src/demux/id3.js
./src/demux/mp3demuxer.js
./src/demux/mp4demuxer.js
./src/demux/mpegaudio.js
./src/demux/sample-aes.js
./src/demux/tsdemuxer.js
./src/errors.js
./src/event-handler.js
./src/events.js
./src/hls.js
./src/is-supported.js
./src/loader/fragment-loader.js
./src/loader/fragment.js
./src/loader/key-loader.js
./src/loader/level-key.js
./src/loader/level.js
./src/loader/m3u8-parser.js
./src/loader/playlist-loader.js
./src/observer.js
./src/polyfills/number.js
./src/remux/aac-helper.js
./src/remux/mp4-generator.js
./src/remux/mp4-remuxer.js
./src/remux/passthrough-remuxer.js
./src/task-loop.js
./src/utils/attr-list.js
./src/utils/binary-search.js
./src/utils/buffer-helper.js
./src/utils/cea-608-parser.js
./src/utils/codecs.js
./src/utils/cues.js
./src/utils/discontinuities.js
./src/utils/ewma-bandwidth-estimator.js
./src/utils/ewma.js
./src/utils/get-self-scope.js
./src/utils/logger.js
./src/utils/mediakeys-helper.js
./src/utils/mediasource-helper.js
./src/utils/output-filter.js
./src/utils/texttrack-utils.js
./src/utils/time-ranges.js
./src/utils/vttcue.js
./src/utils/vttparser.js
./src/utils/webvtt-parser.js
./src/utils/xhr-loader.js

As you can see, there's several interesting filenames:
Crypto:

./src/crypt/aes-crypto.js
./src/crypt/aes-decryptor.js
./src/crypt/decrypter.js
./src/crypt/fast-aes-key.js
./src/demux/sample-aes.js

Media:

./src/controller/audio-stream-controller.js
./src/controller/audio-track-controller.js
./src/controller/base-stream-controller.js
./src/controller/buffer-controller.js
./src/demux/mp3demuxer.js
./src/demux/mp4demuxer.js
./src/demux/mpegaudio.js
./src/hls.js
./src/loader/m3u8-parser.js
./src/loader/playlist-loader.js
./src/remux/mp4-generator.js
./src/remux/mp4-remuxer.js
./src/utils/codecs.js
./src/utils/mediasource-helper.js

I don't really want to go through all the minified code, as especially after prettifying it there's 197k lines. If someone wants to have a look, I suppose this is a good starting point.
I guess the easiest thing to do would be to ask your lecturers to enable downloading...

Thanks for the technical details - looks like it doesn't use S3 buckets anymore, the download feature requires access to the S3 buckets.

Hey there!
Thank you for all the answers! I am afraid that I don't really understand the programing-language.
The thing is that my lecturers told us that it should be possible to download them, but there is no button for it anywhere. So they must did not enable it or forgot about it or something... or echo360 just doesn't like me xD
But in the end there should be a way to download them and my question now is if there is any way to program something, so that I can download them for myself or isn't it possible? Or would you have to "hack" the echo360?
And yes, I know it may be a lot of work, but it would help me in such a great way to get threw my study. Thanks!

Unfortunately, as discussed GeckoDM requires access to the S3 bucket url. I'm not too sure what's changed as I've finished my degree last December. But the logs and network requests provided indicates a major change in how Echo360 manages the download urls now.

ok i have committed a fix for this Echo360 has changed there json data and now server all information within there html files for each page.
if someone can take a look thank you
https://github.com/GeckoDM/GeckoDownloadManager/pull/76

ok i have committed a fix for this Echo360 has changed there json data and now server all information within there html files for each page.
if someone can take a look thank you
#76

That's a good find! Just out of curiosity, where did you find the mp4 URL?

ok i have committed a fix for this Echo360 has changed there json data and now server all information within there html files for each page.
if someone can take a look thank you
#76

That's a good find! Just out of curiosity, where did you find the mp4 URL?

@CT1994 Is there any explicit mp4 URL now? Or it is just guessing from ids?

@imaginebreake
in background.js getDownloadLink, I request the lesson html page, echo360 have started putting data within the HTML files they generate on serverside to hide video data, i parse this html file grab the data out of this html file then generate the video url

@imaginebreake
in background.js getDownloadLink, I request the lesson html page, echo360 have started putting data within the HTML files they generate on serverside to hide video data, i parse this html file grab the data out of this html file then generate the video url

@CT1994 I saw that, thanks for your wonderful work!

@imaginebreake
so the url format is
https://content.{domain}/0000.{institutionId}/{medias[index].id}/{hd{index} or sd{index}}.mp4
the 4 digit above (eg 0000) is impossible to get from any other source of data and most likely generated server side

@imaginebreake
so the url format is
https://content.{domain}/0000.{institutionId}/{medias[index].id}/{hd{index} or sd{index}}.mp4
the 4 digit above (eg 0000) is impossible to get from any other source of data and most likely generated server side

So is your code actually detecting URL or generating from your pattern?

@imaginebreake detects and generate the url but did not know the above was a possibility

@imaginebreake can you send me the syllabus json data for that lesson and i can take a look at that

@imaginebreake can you send me the syllabus json data for that lesson and i can take a look at that

Could you please offer me an email address?

or even better can you put a debugger after videoDataObject in background.js #getDownloadLink

@imaginebreake sent a email to your outlook account confirming with my git username


Experimental Paste Action: Better Metadata

Within the clipboard metadata is the sourceURL sometimes.
This seems to be an OS/Browser specific feature, and does not seem to be a universal protocol, so not sure how low level we have to go for this.
Taking a look at the clipboard data through the handy FreeClipboardViewer (link)

The sourceURL is available for view, however doing dataTransfer.get('text/html') only retrieves the <html>...</html> section and not any of the other metadata on top.

Not sure what that other data is but I believe our existing behavior matches how DataTransferfrom the DOM apis works. For text/html I only see a way to access the html content, not this additional metadata


[Docs]Added top margin so that in-page anchor tags align with menu bar

Signed-off-by: Harshit-Dandriyal<EMAIL_ADDRESS>Description
Added top margin so that in-page anchor tags align with menu bar

This PR fixes #5249
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit e54f9b4c6013e004209f6627af4536a53dcd876c at: https://623dad0e418a166e14b41a26--meshery-docs-preview.netlify.app


leap year program

Description
a program which takes a year from the user and check if it's a leap year or not.
Domain
CPP
Type of Contribution
Addition, Enhancement
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

\assign

/assign

/assign


Ensure all CSS class and variable names follow our package conventions

The v1 release is an opportunity to make breaking changes where necessary.

Fixed by #1386


Change Revelation Dance's type when attacker has Terastallized

Fixes https://www.smogon.com/forums/threads/pokémon-showdown-damage-calculator.3593546/post-9716660
Resulting calc: 0 SpA Tera Water Oricorio-Pom-Pom Revelation Dance vs. 252 HP / 0 SpD Sandaconda: 254-302 (72.9 - 86.7%) -- guaranteed 2HKO after Leftovers recovery
Can create tests if needed

I'll try and write some since testing code is always good.

That's excellent!


camerad: remove SpectraCamera inheritance from CameraState and simplify initialization

Want to try also removing the runner threads? I think that will simplify things a bit and make scheduling easier.


FSharp.Charting Not Working After Update

I updated Ionide to 2.25.10 and FSharp.Charting stopped working.
Before, I was able to run an example, which produced a window with a chart.

Calling ShowChart() when referencing the library directly works.


Validparentheses.cpp: Add Airbnb Valid parenthesis

This adds solution for Airbnb Valid parenthesis question using stacks.
Time complexity: O(N)
Space complexity: O(N)
Closes #391

Thanks for contributing!


Enable dapper on M1 Macs

Problem
make currently exists on M1 Macs. Nevertheless, appears to be working fine as of September 2022.
I am unaware of the exact cause why it was blocked before, but it seems to be fixed now
Solution
Revert https://github.com/rancher/rancher/pull/36487
Testing
On an M1 Mac, run make.

An identical patch was merged as https://github.com/rancher/rancher/pull/39228


fix link to "The 3 Stages..."

Markdown is just to inconsistent to remember the syntax, right? ;-)

Haha thanks man!
Yeah the worst is that there is no standard Markdown syntax either. But I love the chaos that Javascript brings into my life so what is markdown compared to that :)


matrix-synapse-unwrapped: 1.117.0 -> 1.118.0

https://github.com/element-hq/synapse/releases/tag/v1.118.0

Things done

[x] Running on my homeserver (w/ workers)

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Looks good.
Would like to let it run over night on my instance and merge tomorrow.


NimBLE AFR: Fix long read response in case of smaller MTU value.

NimBLE AFR: Fix long read response in case of smaller MTU value
Description

NimBLE host handles offset internally, so application does not need to worry about sending the data in (MTU - 1) fragments as few other stack expect the application to do so.
However, this NimBLE stack feature can cause issue with few vendor agnostic applications where they do the fragmentation (e.g. FFS).
The solution proposed in this PR is to track the offset virtual offset. This way the AFR layer maintains the virtual_offset in case of read long characteristic response.
This way ESP32 NimBLE AFR porting layer will now support the applications' behavior of handling the data fragmentation depending upon MTU value by themselves.

Checklist:

[x] I have tested my changes. No regression in existing tests.
[ ] My code is Linted.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@ravibhagavandas PTAL.


"Burst" from the Terra modifier doesn't seem to work

When swung and the attack recharge meter is full, it will use 100 Mana and create a damaging Mana burst that deals 7 points (3.5 hearts) of damage to the hit mob

Forge 40.2.1
Botania 1.18.2-435
TConstruct 1.18.2-<IP_ADDRESS>
TCIntegrations 1.18.2-<IP_ADDRESS>
tested it with a dagger, sword and broadsword, none of them shoots a burst, they do repair tho
Edit: it seems to be working, as in it does damage, but it's just invisible

Yes, without a lot of extra work, burst will not have a visual effect.


[Zip][Portable] New package: Alibaba.AlibabaCloudCLI version 3.0.134

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.2 schema?

Microsoft Reviewers: Open in CodeFlow

@msftbot .zip


Separate out Docker build with XIOS

Currently we have a Dockerfile.devenv and a Dockerfile.production, which depends on it.
To facilitate #618, we could introduce a Dockerfile.xios, which takes Dockerfile.devenv and installs XIOS into it. That way, we will be able to update XIOS without also updating the underlying software stack.
Having done this, Dockerfile.production can be built on top of Dockerfile.xios instead of Dockerfile.devenv.

Closed - see #626.


Case class issues (with rapture-json)

(This is with latest scala211 kernel).
Sometimes referencing case classes in other cells seem to behave strangely.
I've been testing the kernel with the rapture json library, which I believe uses macros underneath. It works to some degree, but also has some strange behavior. You can see the results of a session here...
https://github.com/tylerprete/random/blob/master/weird-behavior.ipynb
You'll notice that I can serialize and deserialize Dog just fine, but DogOwner has issues.
What's weird, though, is that I can serialize it just fine if I define the case class for DogOwner in the exact same cell.
I've ran these same commands in a normal ammonite-repl without issue, so it seems like it might be related to jupyter-scala.

I think it's related to the way jupyter-scala "wraps" the user code, in classes rather than in singletons (this allows for Java serialization to work properly, e.g. for Spark). I ran into similar issues with shapeless, like
@ load.ivy("com.chuusai" %% "shapeless" % "2.2.0-RC6")
...
res0: Unit = ()

@ trait Defs {
    sealed trait Base
    case class Bar(i: Int) extends Base
    case class Baz(s: String) extends Base
  }
defined trait Defs

@ object Defs extends Defs
defined object Defs

@ import shapeless._
import shapeless._

@ Generic[Defs.Bar].to(Defs.Bar(2))
res4: shapeless.::[Int,shapeless.HNil] = ::(2, HNil)

@ Generic[Defs.Base].to(Defs.Bar(2))
Compilation Failed
Main.scala:58: could not find implicit value for parameter gen: shapeless.Generic[cmd5.this.$ref$cmd2.Defs.Base]
Generic[Defs.Base].to(Defs.Bar(2))
       ^

@ Generic.materialize[Defs.Base, Defs.Bar :+: Defs.Baz :+: CNil].to(Defs.Bar(2)) // Explicit type parameters
Compilation Failed
Main.scala:62: pattern type is incompatible with expected type;
 found   : Defs.this.Bar
 required: cmd11.this.$ref$cmd2.Defs.Base
Generic.materialize[Defs.Base, Defs.Bar :+: Defs.Baz :+: CNil].to(Defs.Bar(2))
                   ^

(ran with https://github.com/alexarchambault/ammonite-shell on which jupyter-scala is based, not Ammonite main line).
I'm not excluding the problem is on a side of the underlying macro (those of shapeless or rapture). Definitely a problem that have to be disentangled.

This definitely looks like a rapture issue, see this session with "standard" wrappers (with your example being ok, as in Ammonite main line):
Loading Ammonite Shell...

@ load.ivy("com.propensive" %% "rapture-core" % "1.1.0"); load.ivy("com.propensive" %% "rapture-json-jackson" % "1.1.0")
...
res0_0: Unit = ()
res0_1: Unit = ()

@ import rapture.json.jsonBackends.jackson._; import rapture.json._; import rapture.core._; import modes.returnTry; import formatters.humanReadable._
import rapture.json.jsonBackends.jackson._
import rapture.json._
import rapture.core._
import modes.returnTry
import formatters.humanReadable._

@ // Your example runs fine
@ case class Dog(name: String, age: Int)
defined class Dog0

@ case class DogOwner(dog: Dog, name: String)
defined class DogOwner0

@ val d = Dog("Tyler", 15); val q = DogOwner(d, "Frank"); d.age
d: cmd2.Dog = Dog("Tyler", 15)
q: cmd3.DogOwner = DogOwner(Dog("Tyler", 15), "Frank")
res4_2: Int = 15

@ val dogJS = Json(d).toString; val aDog = Json.parse(dogJS).as[Dog]
dogJS: java.lang.String = """
{"name":"Tyler","age":15}
"""
aDog: cmd2.Dog = Dog("Tyler", 15)

@ // Now with a very simple type parameter
@ case class Dog1[T](name: String, age: T)
defined class Dog1

@ case class DogOwner1(dog: Dog1[Int], name: String)
defined class DogOwner1

@ val d1 = Dog1("Tyler", 15); val q1 = DogOwner1(d1, "Frank"); d1.age
d1: cmd6.Dog1[Int] = Dog1("Tyler", 15)
q1: cmd7.DogOwner1 = DogOwner1(Dog1("Tyler", 15), "Frank")
res8_2: Int = 15

@ val dogJS1 = Json(d1).toString; val aDog1 = Json.parse(dogJS1).as[Dog1]
Compilation Failed
Main.scala:36: Cannot serialize type cmd6.Dog1[Int] to rapture.json.Json. Please provide an implicit Serializer of type cmd6.Dog1[Int].
              val dogJS1 = Json(d1).toString ; val aDog1 = Json.parse(dogJS1).as[Dog1]
                               ^

When inspecting case classes, I'd say @propensive should call some asSeenFrom on the types of the members of the case class. Should be something similar for shapeless in my previous comment.
There's definitely a problem on the rapture side, I let you report this to it if you'd like. I'll have a look at shapeless, and close this issue if I know for sure nothing wrong is done on the jupyter-scala side.

Is there a work around to this (i.e. getting a type declared outside the wrappers)?

In the develop branch (soon to be the default), one can just explicitly wrap definitions in object Something { … } for them not to be later put inside a class definition. That should appease faulty macros like here.


Security - Update the stack to read all API keys from AWS Secrets Manager

Is your feature request related to a problem? Please describe
The Grafana API key is stored in .tf files and is not secure. All users will start cloning the repo and storing keys in .tf files that will be in public (cloned) repos. It will be good to update the stack to move the keys and any sensitive information into AWS Secrets Manager and read from there. The EKS and ECS Blueprints already follow this approach.
Describe the solution you'd like
Store API keys and secrets in AWS Secrets Manager and update the TF stack to read the value from AWS Secrets Manager.
Describe alternatives you've considered
Additional context
Add any other context or screenshots about the feature request here.

Thanks @satveerkhurpa for raising this. We will provide an update to completely automate this process

@satveerkhurpa We have taken another approach with #33 to use control plane Managed Grafana API keys for now. It's on our roadmap to lift the API key restriction https://github.com/aws-observability/terraform-aws-observability-accelerator/issues/24

Closing this for now.


Doesn't work in monorepo when modules are hoisted

I'm using yarn workspaces and the entry point for the electron is inside one of the packages. The package is called desktop-electron, and sits beside other modules like core and design.  core is depended on the most, and yarn will make it available to all the other packages by hoisting it as a dep on the top-level. So the structure looks like this:
- node_modules/core (symlink, I think, to core in packages/)
- packages/
   - core
   - design
   - desktop-electron

If I cd packages/desktop-electron and do ncc build index.js -o build, where index.js is the entry point to my electron app, I get the following error:
ERROR in ./index.js 77:11-59
Module not found: Error: Can't resolve 'core/lib-node/platform/server/fs' in '/Users/james/projects/actual/packages/desktop-electron'

when it definitely exists in the root node_modules

Nevermind, I think it's because the file it's trying to use is fs.electron.js, and I'm using custom extensions to load different files on different platforms. I have other issues that I'll try to dig into and file later, if I have time to try this again.

This seems to still be an issue! ncc warns that the module couldn't be found and the build subsequently fails when run.
ncc: Module directory "..." attempted to require "..." but could not be resolved, assuming external.


Update benimator and bevy_ecs_tilemap to their newest versions.

[x] closes #6

thank you!

 We are stronger together.
Are you on Bevy's Discord Server as well?


[DISCO_L475VG_IOT01A]Privacy: App compilation fails with fatal error

Description: [DISCO_L475VG_IOT01A]Privacy: App compilation fails with fatal error
Target: DISCO_L475VG_IOT01A
Toolchain: GCC_ARM
mbed-cli version: 1.8.3
mbed-os->5.11.1
App used: mbed-os-example-ble-privacy
Steps to Reproduce:

.Import project from https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-privacy/
Edit the mbed-os.lib file to below link to
https://github.com/ARMmbed/mbed-os/#2fd0c5cfbd83fce62da6308f9d64c0ab64e1f0d6
Do mbed deploy to update mbed-os to use the above revision
Do mbed compile -target DISCO_L475VG_IOT01A -toolchain GCC_ARM

Expectation: App compilation and download should be successful
Observation: Privacy app compilation fails with below error
"[ERROR] .\source\main.cpp:19:21: fatal error: ble/BLE.h: No such file or directory"
Please find the attached logs for compilation error
PrivacyFailureOnDisco.txt

@bridadan Just pushed an example update, and am improving on issues in this repo too, do link up.

Thanks @ConradBraam.
@UrmilaKL this example has now been updated: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-ble-Privacy/
Thanks for your patience.


[BUG] Autocomplete not retrying message when processing fails in servicebus

Describe the bug
In autocomplete documentation, we can find following description:
By default, a successfully processed message is completed. If an error happens when the message is processed, it is abandoned.
However, when such scenario occurs, the message that is expected to be abandoned and delivery is expected to be retried, the message is completed and it disappears from the queue.
Exception or Stack Trace
11:04:43.125 [boundedElastic-12] DEBUG com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient - autocomplete-test: Update started. Disposition: COMPLETED. Lock: ''. SessionId: null.
11:04:43.125 [reactor-executor-2] DEBUG com.azure.core.amqp.implementation.handler.SessionHandler - onSessionLocalOpen connectionId[MF_0d387d_1624957481786], entityName[autocomplete-test-mgmt-session], condition[Error{condition=null, description='null', info=null}]
11:04:43.127 [boundedElastic-2] WARN com.azure.messaging.servicebus.ServiceBusProcessorClient - Error when processing message. Abandoning message.
java.lang.RuntimeException: null
at com.example.demo.AutoCompleteProblem.lambda$startReceiver$0(AutoCompleteProblem.java:41)
at com.azure.messaging.servicebus.ServiceBusProcessorClient$1.onNext(ServiceBusProcessorClient.java:226)
at com.azure.messaging.servicebus.ServiceBusProcessorClient$1.onNext(ServiceBusProcessorClient.java:200)
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:440)
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:527)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
11:04:43.127 [boundedElastic-2] DEBUG com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient - autocomplete-test: Update started. Disposition: ABANDONED. Lock: ''. SessionId: null.
11:04:43.130 [parallel-6] DEBUG com.azure.core.amqp.implementation.RequestResponseChannel - connectionId[MF_0d387d_1624957481786], linkName[cbs]: Scheduling on dispatcher. MessageId[2]
11:04:43.132 [reactor-executor-2] DEBUG com.azure.core.amqp.implementation.handler.SendLinkHandler - onLinkFlow connectionId[MF_0d387d_1624957481786] linkName[cbs:sender] unsettled[0] credit[98]
To Reproduce
Please run the code from the snippet
Code Snippet
`
public static void main(String... args) throws InterruptedException {
    final String connectionString = "cs";
    final String queueName = "qName";
    send(connectionString, queueName);
    startReceiver(connectionString, queueName);
    new CountDownLatch(1).await();
}

private static void send(String connectionString, String queueName) {

    var queueClient = new ServiceBusClientBuilder()
            .connectionString(connectionString)
            .sender()
            .queueName(queueName)
            .buildAsyncClient();

    var message = new ServiceBusMessage("{\"abc\":\"${System.currentTimeMillis()}\"}");

    queueClient
            .sendMessage(message)
            .block();
}

private static void startReceiver(String connectionString, String queueName) {
    new ServiceBusClientBuilder()
            .connectionString(connectionString)
            .processor()
            .queueName(queueName)
            .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
            .maxConcurrentCalls(10)
            .processMessage(messageContext -> {throw new RuntimeException();})
            .processError(System.out::println)
            .buildProcessorClient()
            .start();
}

`
Setup information
Library: com.azure:azure-messaging-servicebus:7.2.3
Expected behavior
There is an attempt to redeliver message as many times as configured in "Max delivery count" and after this value is reached, message is redirected to dlq.

@ki1729 could you please follow up with @arturkulesza on this service bus client library issue?
/cc @YijunXieMS

Hi @arturkulesza, could you add .disableAutoComplete() after .processor() and retry?
The documentation might be misleading.
@ki1729 We may need to improve the documentation for the ServiceBusProcessorClient

Hello @YijunXieMS!
Because of this issue, disabling autocomplete was the way we went for in the production code, however I needed to manually implement the strategy to complete / abandon / deadletter the message, while it used to work out of the box with the previous client (i mean the one from com.microsoft package)
Could you please expand on what are the exact improvements for the documentation that you would like to provide?
Do you mean that autocomplete is not intended to work with ServiceBusProcessorClient? I guess in that case, there should be no "disableAutoComplete()" at all, since auto completion should be disabled by default.
From my perspective, it looks like autocomplete functionality is not working properly because of some bug or race condition inside your implementation. As you can see in the log for some reason the message is "Update started. Disposition: COMPLETED" first, and then client "Update started. Disposition: ABANDONED". I assume that the moment COMPLETED disposition is done, the message is indeed completed so it will not be retried even if the latter operation tries to ABANDON it.


feat: Added HandOffResourcesToAdmin step

Description

Added HandOffToAdmin step
Fixed height issues in the wizard
Fixed selection issue in the choose resource list component.

Task Item
refs #7632

Coverage remained the same at 54.863% when pulling 557583b9f3a76322ed144485809d4e63a7708416 on vmodem/handoffToAdmin into 3fefc2dbb6120170c34d47390503cbdcc6a32cd6 on main.


Permalink type

Hi,
I see that is not possible config the settings to change the permalink type as aldryn-newsblog does (I don't want display the dates).
Any hints to remove dates from URL?
Is this feature in your near-future plans?
In my opinion haystack + multilingual tags + permalink would be great.
Thanks

If there is a request for configurable permalink types, why not?
Haystack support is already in the works, for multilingual tags see #109

Thanks yakky, I'm really looking forward the next version of this plugin.


[WIP] Support for generic REST client

This commit adds support for a generic REST actions. These actions allow
direct REST communication while still leveraging some of the core
Gophercloud client features.
For #56

@j-griffith As discussed a few weeks back, here's a first attempt at a "dummy" client. It's able to leverage existing Provider and Service clients, so things like authentication and core HTTP calls are automatically handled. Technically low-level calls are already possible in Gophercloud, but there's a good amount of work involved, especially if you're making multiple calls, so I tried to strike a balance between the core calls and the per-package functionality.
If you can, at your convenience, let me know what you think or if you see any issues.

Just noticed I can easily add support for URL/query params, too. I'll loop back to this later today.

Awesome!  I'll try and look at it ASAP

@j-griffith All sounds good. I'm not in a rush to merge this, so definitely take your time. I'd rather wait a while to hear feedback from yourself or anyone else who notices this PR open :)


Error 412 while trying upload data to vimeo with tus approarch!

Question
Vimeo API has 3 steps for uploading a resumable approach and I use NodeJS to step 1 (Create a video via API with Tus approach https://developer.vimeo.com/api/upload/videos#resumable-approach-step-1)
I successfully got returns data from Vimeo with upload_link look like:
https://files.tus.vimeo.com/files/vimeo-prod-src-tus-asia/........................
But when I use tus-js-client to do the patch method for step 2 https://developer.vimeo.com/api/upload/videos#resumable-approach-step-2
Either use endpoint, uploadurl with the link above I always get error 412:
Failed because: Error: tus: unexpected response while creating upload, originated from request (response code: 412, response text: unsupported version

Can I use upload_link from vimeo return data for endpoint or uploadurl in tus js client for uploading video? Does this error come from Vimeo? Can somebody help? Thanks
Setup details
Please provide following details, if applicable to your situation:

Runtime environment: HTML
Used tus-js-client version: Latest version download from https://github.com/tus/tus-js-client
Used tus server software: https://files.tus.vimeo.com

Hi @hunglas, we recently ran into the same problem. This isn't really explained clearly in the Vimep docs but if you don't pass uploadUrl into tus.Upload then the library will try to run step 1 for you (which in your case you've already done).
If you change your call to the following you should be good:
const upload = new tus.Upload(file, {
  uploadUrl: url,
  endpoint: url,
  retryDelays: [0, 3000, 5000, 10000, 20000],
  metadata: {
    filename: file.name,
    filetype: file.type,
  },
  onError(error) {
    console.log(`Failed because: ${error}`);
  },
  onProgress(bytesUploaded, bytesTotal) {
    const percentage = ((bytesUploaded / bytesTotal) * 100).toFixed(2);
    console.log(bytesUploaded, bytesTotal, `${percentage}%`);
  },
  onSuccess() {
    console.log('Download %s from %s', upload.file.name, upload.url);
  },
});

Hi @jamesmoss ,
Thanks for your answer! I am luckily when I try your code without the headers as the way Vimeo require in their document:

Because when I added the headers, the error always happen!

So removed header and everything will be good!
Thank you again!


k3s cluster can not be started

Environmental Info:
K3s Version:
k3s version v1.23.16+k3s1 (64b0feeb)
go version go1.19.5
Node(s) CPU architecture, OS, and Version:

Linux workload-cluster-dev-01-cp02-v20221128-0ed10fd2-2n788 5.4.0-132-generic #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Cluster Configuration:

3 servers, 3 agents
Describe the bug:

Pods are in 'Pending' state until the taint is removed.

ubuntu@workload-cluster-dev-01-cp02-v20221128-0ed10fd2-2n788:~$ sudo k3s kubectl get all -A
NAMESPACE       NAME                                          READY   STATUS             RESTARTS        AGE
cattle-system   pod/cattle-cluster-agent-6f887b9d86-klv99     0/1     CrashLoopBackOff   5 (2m24s ago)   7m36s
cattle-system   pod/kube-api-auth-svjzq                       1/1     Running            0               7m36s
kube-system     pod/coredns-5cfbb9f57c-x4glj                  0/1     Pending            0               7m36s
kube-system     pod/helm-install-traefik-crd-fqbh6            0/1     Pending            0               7m36s
kube-system     pod/helm-install-traefik-lj24p                0/1     Pending            0               7m36s
kube-system     pod/local-path-provisioner-5f8bbd68f9-lksm7   0/1     Pending            0               7m36s
kube-system     pod/metrics-server-65cd754bcd-cztzb           0/1     Pending            0               7m36s

Steps To Reproduce:

Deploy a k3s cluster using rancher.
Expected behavior:

K3s cluster is deployed successfully.
Actual behavior:

Cluster stucks in 'Updating' state / can not be deployed until the taint below on cp / etcd / master node is removed.
...
  - effect: NoExecute
    key: node-role.kubernetes.io/etcd
...

due to the fact that system services / default components for instance coredns, does not tolerate the taint above.
Additional context / logs:

That's not a standard taint that any of the packaged components are going to tolerate. Why did you decide to taint your nodes with that?


Microsoft Power Platform Build Tools tasks - Create Environment error with Regions

I am trying to create an environment and I am getting an error with the region. None work for me
##[error]The region 'unitedstates' is invalid. Please enter the valid region or select from the picklist

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

ID: e2d7f63d-dcde-f057-555a-3fffce0f229c
Version Independent ID: e4bba5f7-ae53-260f-269b-c8ad002ef696
Content: Build tool tasks - Power Platform
Content Source: power-platform/alm/devops-build-tool-tasks.md
Service: powerapps
GitHub Login: @mikkelsen2000
Microsoft Alias: pemikkel

I'm getting the same issue, in my case it is region 'europe', but I also tried 'unitedstates', same result.


Reload System Daemons Causes Universal Clipboard to stop working

Describe the bug
this is kind hard to troubleshoot but when reload system daemons are on & when doing copying links from my Mac & trying to paste on my iOS device it doesnt work. but with Reload System Daemons set to OFF, there are no issues but then afc2d fails to work unless I re-install it or use the Reload System Daemons option.
there are not any logs but easy to re-produce
it could be tweak specific but unsure feels like tweaks should be loaded last after system Daemons are reloaded or some kind of timer should be introduced..
To Reproduce
Just enable Reload System Daemons option & load Tweaks Option
and maybe also have a handful of tweaks installed from Cydia <-- as I'm not sure what is triggering this
copy text or link from Mac & try to paste in notes, should fail.
Workaround
disable all tweaks via iCleaner Pro, respring
use universal clipboard to copy & paste something from Mac or from iDevice to Mac to ensure its working.
then re-enable all tweaks again on iCleaner pro, Respring
Universal Clipboard should be still working.
Notes: I'm not sure how this could be fixed, seems like whatever process controls the Universal Clipboard needs to be utilised before any tweaks are loaded for it to continue to work after tweaks are loaded.
Suggestion: allow for selective Daemons to be reloaded like the ones responsible for making Apple File Conduit "2" (arm64/KPPLess) work.
Device (please complete the following information):

iOS Version: 12.1.2
iOS Device: iPhone 7 (iPhone9,3)
unc0ver Version: Beta43

Place an "x" between the brackets if true:

[x ] this is a bug others will be able to reproduce
[ ] this issue is present with all tweaks uninstalled(except for default packages) or disabled
[ ] this issue is present after a rootfs restore
[ x] this issue is present on the latest version of unc0ver

the same happens to me, jailbreak without "Reload System Daemons" resolves this.

iOS Version: 12.1
iOS Device: iPhone 7 (iPhone9,3)
unc0ver Version: 3.1.3

still not work

iOS Version: 12.4
iOS Device: iPhone 7 Plus (iPhone9,2)
unc0ver Version: 3.5.6


vpn fingerprint

add to server.conf and client.ovpn "mssfix 0" to fix detecting vpn by vpn fingerprint

Any source on that ?

I saw that  openvpn --mssfix max in tunnel options: --mssfix max
I saw this too, but I do not know if it is relevant... FAQ Community Software
and this How do I setup a fingerprint for authentication when prompted for VPN credentials
I do not know where this is going!!! :)

@Angristan I read about this some time ago and there is only a good article around. Here it is: https://medium.com/@ValdikSS/detecting-vpn-and-its-configuration-and-proxy-users-on-the-server-side-1bcc59742413.
It certainly worth a read!
PS: The working solution is mssfix 1400 and not mssfix 0 in server.conf only.

I'm added mssfix 0, but it still detecting.


Availability via NPM?

Can you guys throw a package.json file up so bitters can be accessed via NPM?

@Mike-Loffland I agree. This needs to be added. A node-bitters would be helpeful with Gulp support. However, I noticed a bitter-orange package that's being used by node-bourbon and node-neat as a dependent. Not sure if that will help you cause it didn't for me. There's no readme so I'm not sure how to implement it in my Gulp project.

Thanks @bretthayes ... I'll give it a look.

We don’t publish directly to npm because Bitters is meant to be installed locally in a project and its files are to be changed.
More info can be found here.

should anyway be there for getting started so anyone can include it in their package.json as a dependency and forget about it. Also if you want to extends bourbon or Bitters or whatever I imaging that in some way can be accomplished using pure sass. Then for customizations that are very tied to your project well then yes you should include the sources in your repo.