PathProvider.getApplicationDocumentsDirectory sometimes returns null

Steps to Reproduce
Run the following app and click the "print app dir" button lots of times. observe that sometimes the result is null and other times we get the app dir.
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(
    new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new FlutterDemo(),
    ),
  );
}

class FlutterDemo extends StatefulWidget {
  FlutterDemo({Key key}) : super(key: key);

  @override
  _FlutterDemoState createState() => new _FlutterDemoState();
}

class _FlutterDemoState extends State<FlutterDemo> {
  Future printAppDir() async {
    Directory appDir = await PathProvider.getApplicationDocumentsDirectory();
    print(appDir?.path ?? "null appDir");
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text('Flutter Demo'),
        ),
        body: new Column(children: [
          new RaisedButton(
              child: new Text("print app dir"), onPressed: printAppDir),
        ]));
  }
}

Logs
Users/drewwarren/Library/Developer/CoreSimulator/Devices/16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A/data/Containers/Data/Application/A3252D13-A6D7-4B9F-8563-A339446A1E43/Documents
/Users/drewwarren/Library/Developer/CoreSimulator/Devices/16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A/data/Containers/Data/Application/A3252D13-A6D7-4B9F-8563-A339446A1E43/Documents
null appDir
/Users/drewwarren/Library/Developer/CoreSimulator/Devices/16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A/data/Containers/Data/Application/A3252D13-A6D7-4B9F-8563-A339446A1E43/Documents
null appDir
null appDir
null appDir
null appDir
null appDir
/Users/drewwarren/Library/Developer/CoreSimulator/Devices/16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A/data/Containers/Data/Application/A3252D13-A6D7-4B9F-8563-A339446A1E43/Documents
/Users/drewwarren/Library/Developer/CoreSimulator/Devices/16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A/data/Containers/Data/Application/A3252D13-A6D7-4B9F-8563-A339446A1E43/Documents
null appDir

Flutter Doctor
[✓] Flutter (on Mac OS, channel master)
    • Flutter at /Users/drewwarren/flutter
    • Framework revision<PHONE_NUMBER> (52 minutes ago), 2016-10-17 10:30:13
    • Engine revision d999f6c123
    • Tools Dart version 1.20.1

[x] Android toolchain - develop for Android devices
    x Android Studio / Android SDK not found. Download from https://developer.android.com/sdk/
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[✓] iOS toolchain - develop for iOS devices (Xcode 7.3.1)
    • XCode at /Applications/Xcode.app/Contents/Developer
    • Xcode 7.3.1, Build version 7D1014

[✓] Atom - a lightweight development environment for Flutter
    • flutter plugin version 0.2.5
    • dartlang plugin version 0.6.39

[-] IntelliJ IDEA Community Edition (version 2016.2)
    • Dart plugin not installed; this adds Dart specific functionality.
    • Flutter plugin not installed; this adds Flutter specific functionality.
    • For information about managing plugins, see
      https://www.jetbrains.com/help/idea/2016.2/managing-plugins.html

[✓] Connected devices
    • iPhone 5s • 16BCCC3C-2F9C-401F-B2BF-97F1E3D2929A • ios (simulator)

@abarth is your man here.

I can repro.


Improve LMDB store documentation.

GitHub issue resolved: #3630
Briefly describe the changes proposed in this PR:
Improve the documentation for the LMDB store by describing the configuration parameters and by showing some code examples.

PR Author Checklist (see the contributor guidelines for more details):

[ ] my pull request is self-contained
[ ] I've added tests for the changes I made
[ ] I've applied code formatting (you can use mvn process-resources to format from the command line)
[ ] I've squashed my commits where necessary
[ ] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

@kenwenzel thanks for putting this up. What you've got sofar reads fine to me. Anything we can do to help finish this?

@jeenbroekstra I see the following open points:

[ ] describe autogrow functionality
[ ] describe options for value and triple db sizes
[ ] maybe add some words about triple count vs required memory size (HDD and RAM)


Update version to 0.33.0 in release branch (#735)

(cherry picked from commit 2c7b77f31dd4c8e6037bbe4fe5a4ba60d6c11615)
Update version to 0.33.0 in release branch

cherry picked commit included in release branch. going ahead with merging.


Autoqueue wildcard within folders

I am not sure what I am doing wrong here, but for simplicity sake I have autoqueue with the pattern *.iso, I have a remote location that has this linux image rar'd. It is automatically unrar'd at the remote location, I was expecting it to notice a .iso file within the folder and then sync that only but it looks like the auto pattern is not queueing that folder because of it.
Is this intended or should this work?

Wondering the same thing. I have my file patterns set but since each iso downloads to its own folder, nothing is auto-queued.


Search parameter for "posts/unauthorized" route

Is your feature request related to a problem? Please describe.
The route "posts/unauthorized" has no working search parameter.
Describe the solution you'd like
Please add the search parameter function so that it can be used in the post authorizations pages.

Please also add for "posts/reports"

Is your feature request related to a problem? Please describe.
The route "posts/unauthorized" has no working search parameter.
Describe the solution you'd like
Please add the search parameter function so that it can be used in the post authorizations pages.

Solved in https://github.com/KrbDevelopment/Articly-Backend/commit/61cf4ae82e7bfd93ad2e0419a54a24eb0a3baa91

Please also add for "posts/reports"

https://github.com/KrbDevelopment/Articly-Backend/commit/c50d6844f4c7560251f7e0bb2fe94780932cc476


Please implement LongPressKeyCode

Hi,
Please implement the method LongPressKeyCode. Right now it is not implemented. A student of my course asked me how could he select multiple items in a listbox by ctrl+click.
I tried and the following error message was returned by scripts:
Message: Test method WinFormsUITesting.WinFormTests.ListBoxMultiSelectWhileHoldingCtrlKey threw exception:
OpenQA.Selenium.WebDriverException: Command not recognized: POST: /session/A3FFFD5A-69B4-4EB6-8F4F-CE6C5E41D09F/appium/device/long_press_keycode

According to this test on line 94: https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/SendKeys.cs, control is active the entire time until it is pressed again.
In this example, I first pressed control and then executed the paste command and it pasted 3 times:
            DesktopSession.Keyboard.SendKeys(Keys.Control);
            DesktopSession.Keyboard.SendKeys("v");
            DesktopSession.Keyboard.SendKeys("v");
            DesktopSession.Keyboard.SendKeys("v");

So you can press control and then execute the clicks to select multiple entries.

A student of my course complained that this doesn't work all the time.
If we do it as shown below, it works always:
desktopSession.Keyboard.SendKeys(OpenQA.Selenium.Keys.Meta + "s" + OpenQA.Selenium.Keys.Meta);


Can't clear value in custom type w2field

Hello, sorry for my bad English, i'm from Vietnam.
My problem is i can't clear a value in a custom field type. I use W2UI Version 1.5.rc1 in W2UI Home Page
I create a field like this

When click X icon, the value will clear ( value = ''; ), but when it cleared, the text box of this field is cleared, but the value in form record isn't cleared ( w2ui.formName.record.firstName still equal 'Bee' )
Example :
Type 'Bee' to First Name, click X icon to clear value, and then get the value of this field by w2ui.formName.record.firstName , the value still 'Bee'
My code :

And i have one more question, how to extend a form.record in define custom field function, when i click search button like this

Thanks you!  I hope you have a nice day :)

Once you clear, trigger change event. Something like $(this).change() should do it. Technically, you should not change form.recrod in the custom field. It should be unaware of the form.

thanks you very much !
I did it 👍  $(self.el).val('').change();
and about "how to change form.record" , because record for my custom field is a JSON object, not a text only, how to assign a json object to my custom field , something like this $(this.el).record = jsonObj

Closing due to inactivity.
If you want to reopen the issue, please provide a working fiddle that uses the latest w2ui


Account refresh.

-On landing on an account, it should refresh.

It's auto-refreshing when you land on the screen, tho the loader isn't showing up.

The loader isn't showing up as the refresh is completing very quickly. if the refresh takes longer then the loader will show up.

-Auto-refresh is not happening, I have to refresh it manually, then only the transaction will be visible.

-verified this issue on dev app version 1.4.0(180)

The loader needs to show the first time the user goes into the accounts (in that session).
We do not need any grey screen on the accounts screen or the Manage Backup screen.
The user should be able to click on any button or transactions on the accounts screen.
In the same session, if the user comes back to the screen there is no auto refresh.

Still the gray screen is showing while the Mange Bakup screen is loading..
-Tested v1.4.0(182)


crashing and bringing up esc menu

I'm not sure if I have something configured incorrectly, but it will work successfully for between 1 to 8 (max so far) casts and catches, then it will bring up the in-game ESC menu and AutoFish will crash/freeze up. Has anyone else experienced this?
I'm in wotlk classic running 1920x1080 windowed mode, DirectX11, logging out option unselected, random sleep unselected, and with whitelist/loot all uncommon and rare.

Did you turn off AutoLoot? The problem also might be related to latency issues with Dragonflight release, because loot window is opened too late. Working right now to deal with the issue, so wait for updates.

I did turn off AutoLoot and that seemed to fix that issue, so thank you. Now though it doesn't seem like the whitelist will loot anything. I made the name in-game is exactly the same as what I've input. Perhaps this is a latency issue? I run about 173ms.

What resolution you are playin on?

I've tried both fullscreen and windowed 1920x1080, render scale at 100% and 200%. I've also tried windowed 1600x900 with 100% render scale. None of them seemed to loot anything without autoloot on (though of course autoloot on crashes after 1-8 catches).

Did you turn off scaling?

Render scale set at 100, all addons are disabled, and UI scale is turned off.

make a screenshot of the UI of the bot

Record the whole fishing process and find me in discord


How to use probe

Hi
I want to do this xe command in python:
xe sr-probe type=nfs device-config:server=<nfsfqdn device-config:serverpath=/nfs/vms/newhost
It's documented here: https://xapi-project.github.io/xen-api/classes/sr.html
So it seems to be something like this
session.xenapi.SR.probe()
But I don't understand which three parameters are required. The first parameter seems to be host, since I get this:

XenAPI.XenAPI.Failure: ['HOST_OFFLINE', 'first_parameter']

I've tried uuid and hostname of pool, pool master and nfs server. Everyone gives this same error message.

Think this was wrong repo. Reposted in https://github.com/xapi-project/xen-api/issues/4238


Makefile BuildTag Update: Escape the Bang!

Turns out you can do "not this tag" semantics you just need to escape the bang!

lgtm


decreasing_by goals leak wf implementation details

The goals shown by decreasing_by can contain scary implementation details, especially the PSigma/PSum due to non-unary functions and mutual recursion.
The simp_wf tactic is typically used to clean that up, but, as it runs unrestricted simp, may do too much.
It seems desirable that after decreasing_by the goal shown to the user is exactly what they expect based on what they wrote – no implementation details visible, but also no additional proof steps taken.
There is a similar issue in the FunInd code, where Lean.Tactic.FunInd.cleanPackedArgs is used to clean this up; this can be inspiration.
Versions
v4.11.0-rc1
Additional Information
Zulip discussion at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60simp_wf.60.20in.20.60decreasing_by.60
Impact
Add :+1: to issues you consider important. If others are impacted by this issue, please ask them to add :+1: to it.

So after
def g (x : Nat) (y : Nat) : Nat := g (x - 1) y
decreasing_by

we have
x y : Nat
⊢ (invImage (fun x => PSigma.casesOn x fun x y => x) instWellFoundedRelationOfSizeOf).1 ⟨x - 1, y⟩ ⟨x, y⟩

If we now run
  try simp (config := { unfoldPartialApp := true, zetaDelta := true }) only [invImage, InvImage, Prod.lex, sizeOfWFRel, measure, Nat.lt_wfRel, WellFoundedRelation.rel]

which is simp_wf with an only added we get
⊢ (sizeOf (x - 1)).lt (sizeOf x)

which isn’t great. We’d have to throw in
simp only [sizeOf_nat, Nat.lt_eq]

I can thow them into the simp arguments, but this is of course optimizing for the special case of Nat arguments, and if the termination is via sizeOf or Nat then the goal would be not as clean. Probably ok.
So one fix would be to change simp_wf to run simp only, and run it always, and (for backwards compat) add a simple simp call to the beginning of decreasing_tactic.


Bassiclly actually adds a readme lol

Please note a few things:

This is an unfinished pull, so I want feedback. Be harsh, but keep it constrictive!
Not sure if the images fit? Should I just provide links to them, make them smaller, or remove them entirely?
Btw yes, HTML does work in md files. Learned smth new today.
For the love of god, pls don't hit the big green merge button the second you see this kiko (no offense)

ALSOOO, really worried my instructions are messed up lmao, so please check them!!!!!!!

Going to just merge this and I'll fix it when someone complains it doesn't work


[DOC] Add documentation on datatypes, conversions and checking to developer guide

Describe the issue linked to the documentation

Our developer guide does not currently include any information on our basic datatypes, how to check for the input datatype, how to convert between acceptable datatypes, etc.
This makes it hard to extend sktime in cases where this functionality is needed.
Suggest a potential alternative/fix

We should prioritize adding this documentation to our online docs. I think that it should go in the developer guide for now (and eventually related information from a user perspective in a user guide).

@fkiraly I'm up for helping make this happen (I think it is helpful for others and it will make the things I want to work on go much smoother), but we probably need to talk through how all that works before I can go ahead with it.

There actually is such documentation, as part of the data types tutorial, here:
https://github.com/alan-turing-institute/sktime/blob/main/examples/AA_datatypes_and_datasets.ipynb
I think it can be adapted from there, or - as a fallback option - the full notebook can be embedded in the documentation.

I've just started looking into sktime and I believe the said notebook must be given a higher priority than it currently has:

https://github.com/alan-turing-institute/sktime/blob/main/examples/AA_datatypes_and_datasets.ipynb

Understanding sktime's data conventions and terminology is prerequisite to using algorithms.
There have been several changes to the conventions (e.g., relaxed requirements to "pd-multiindex"). Had the notebook been explicitly listed in Tutorials, those changes would have been probably reflected in it.

@avm19, I think you are right.
There is some confusion and duplication going on, and the "tutorials" section of the docs is a bit of a mess.
An issue exists, we are looking for volunteers to help us improve this 😄
https://github.com/alan-turing-institute/sktime/issues/2127
I'll look into updating the "datatypes" notebook, I can do that quickly, the rest is more of a project - would appreciate help here!

Regarding priority, I think there is a trade-off - new users would like to see a "quickstart" tutorial first, and only then a deeper dive. Most algorithmic functionality can be explained using the pandas DataFrame based mtypes, and going to deep into the different formats can be "too much information" if it comes too early.
My strategy would be "start on the surface but give pointers in later sections".

@avm19, I've updated the notebook with the changes to pd-multiindex, and the added pd_multiindex_hier hierarchical mtype:
https://github.com/alan-turing-institute/sktime/pull/2492

@fkiraly Thanks, I'll have a look! I am not sure I will participate yet, but might likely do so in the future!
(I understand your logic, I am just one of those atypical new users who want to see the outline of the framework first.)

I understand your logic, I am just one of those atypical new users who want to see the outline of the framework first.

Don't think you are "atypical" - we had internal discussions and I also wanted to place the "datatypes" notebook as the first "number zero" notebook.
I was outvoted - and also convinced by the argument - that most users probably want to see a quick start, because at that point it's not clear to them yet whether it's worth investing 10-20min into reading up on the data container framework.
If you have a suggested structure or alternative in mind, let us know.


GeoAI_2021_unit_03_EX_A_randomly_good_model

model <- train(predictors,
response,
method = "ranger",
trControl = ctrl,
tuneGrid = tgrid,
num.trees = 100,
importance = TRUE)
importance = "permutation"

If I´m trying to use the dop_indices.RDS file as Rasterstack I cannot crop the DOP or extract the rasterdata (extr = exact_extract(rasterStack, pol, include_cols = c( "class",  "OBJ_ID"))). I am getting the  error message "Fehler in .local(.Object, ...) : ".
However, if I use the marburg_dop.tif file (so only teh 4 bands without the indices) both operations work well. Does anyone have an idea what causes the error?

actually it would be of interest to know whats the rest of the error message - if exist.

did you check if the CRS is identical?
did you check where the rasterStack lives?
if it is read in from an RDS maybe you have a look the stackoverflow of Robert Hjimans

Does anyone else have a problem with the accuracy? My confusion matrix reveals an accuracy of 99%. A look at the prediction map shows that this cannot be the case.
My Code:
test_data = readRDS(file.path(envrmt$path_model_training_data, "extr_test_extent_dop.RDS"))
model = readRDS(file.path(envrmt$path_models, "model_extent_dop.RDS"))

predicted = stats::predict(object = model, newdata = test_data)

val_df = data.frame(ID = dplyr::pull(test_data, "OBJ_ID"),
                    Observed = dplyr::pull(test_data, "class"),
                    Predicted = predicted)

val_cm = confusionMatrix(table(val_df[,2:3]))

@FloFranz  well observed and and i am firmly convinced that this problem occurs very often without perhaps being perceived as a problem. If you google it you will find tons of controvers explanations to this question. If you remember, it also came up in the exercise in the previous unit. In fact, this is somewhat the essence of the title of the unit "randomly correct is not predicted"although it might be better to say  "randomly correct and of high performance is not necessarily a good spatial prediction".
In particular, the contingency table shown, shows how high accuracy values can occur. In general, it is a problem of variable selection, overtraining and spatial autocorrelation. The overfitted model reproduces the training data well because it has learned it by heart, but this does not necessarily mean that the prediction is valid. More in-depth and detailed explanations are available in the further readings  section.

When I run
"pol = sf::st_transform(pol, crs(rasterStack))"
the lists in the "geom" column in my pol file are empty afterwards. Does anybody know, why this is happening?

@GeoKL a probably reason could be that you are using the osm data set buildings. The crs of  osm objects  like buildings  is by default:
 User input: EPSG:4326
  wkt:
GEOGCRS["WGS 84",
    ENSEMBLE["World Geodetic System 1984 ensemble",
        MEMBER["World Geodetic System 1984 (Transit)"],
        MEMBER["World Geodetic System 1984 (G730)"],
        MEMBER["World Geodetic System 1984 (G873)"],
        MEMBER["World Geodetic System 1984 (G1150)"],
        MEMBER["World Geodetic System 1984 (G1674)"],
        MEMBER["World Geodetic System 1984 (G1762)"],
        ELLIPSOID["WGS 84",6378137,298.257223563,
            LENGTHUNIT["metre",1]],
        ENSEMBLEACCURACY[2.0]],
    PRIMEM["Greenwich",0,
        ANGLEUNIT["degree",0.0174532925199433]],
    CS[ellipsoidal,2],
        AXIS["geodetic latitude (Lat)",north,
            ORDER[1],
            ANGLEUNIT["degree",0.0174532925199433]],
        AXIS["geodetic longitude (Lon)",east,
            ORDER[2],
            ANGLEUNIT["degree",0.0174532925199433]],
    USAGE[
        SCOPE["Horizontal component of 3D system."],
        AREA["World."],
        BBOX[-90,-180,90,180]],
    ID["EPSG",4326]]

Using the command  st_crs(buildings) = 4326 is resetting this to
+proj=longlat +datum=WGS84 +no_defs

After doing so the st_transfom command should work.

The buildings file is my training data (I chose the name buildings for it). I don't knwo what you mean my osm data set?

anyway, st_crs(buildings) = 4326 dos not solve the problem

I was confused because of our conversation in the course chat. you were working on the poldata set so you need to run  st_crs(pol) = 4326

I did

@GeoKL what I just tried to clarify is that thecurrent and future format of CRS is not PROJ4 but WKT2. The geopackage as well as the OSM data from Lesson 1 are using by default WKT2. This is not compatible and one otion is to re-define ist by st_crs(x) = ESPG-NUMBER

When I try to extract the data by

extr = exact_extract(rasterStack, pol, include_cols = c( "class",  "OBJ_ID"))<<
I get the error message "In CPP_exact_extract(x, weights, wkb, default_value, default_weight,  :
Error getting geometry extent."

I already tried to use >>st_crs(pol) = 4326<< before transforming the CRS but it didn't work. It just shows the warning "st_crs<- : replacing crs does not reproject data; use st_transform for that ".

@Berkenkn This may cause by a lot of reasons.
As a first guess try the following assuming your stack ist called (rgbStack)
projection(rgbStack) <- 25832
if (!compareCRS(train_areas,rgbStack))
   train_areas = sf::st_transform(train_areas, crs(rgbStack))

train_areas$OBJ_ID = 1:nrow(train_areas)
extr = exact_extract(rgbStack, train_areas, include_cols = c( "class","OBJ_ID"))
rawtrainDF = dplyr::bind_rows(extr)

But to tackle it down:

what Software did you use for digitizing?
how did you calculate and save the stack data (Indices)?

@gisma
Before trying your solution I redid the training polygons (digitizing) in QGIS and with the new GeoPackage Layer it works. So maybe I did a mistake while setting the properties of the GPKG or saving it, thanks anyway for your help.

Hello,
whenever I run
model <- caret::train(predictors,
response,
method = "ranger",
trControl = ctrl,
tuneGrid = tgrid,
num.trees = 100,
importance = "permutation")
I get the Error message
Warning in for (a in args) { : closing unused connection 8 (<-KL:11631)
Warning in for (a in args) { : closing unused connection 7 (<-KL:11631)
Warning in for (a in args) { : closing unused connection 6 (<-KL:11631)
Warning in for (a in args) { : closing unused connection 5 (<-KL:11631)
Warning in for (a in args) { : closing unused connection 4 (<-KL:11631)
Warning in for (a in args) { : closing unused connection 3 (<-KL:11631)
Error in { : task 1 failed - "package ranger is required"
So I installed the ranger package and ran library (ranger). After that the above chunk works, but I get in trouble when I try to run stopCluster(cl) afterwards with the message
Error in stopCluster(cl) : could not find function "stopCluster"
so I ran parallel::stopCluster(cl) and got the message
Error in summary.connection(connection) : invalid connection
And now I don't know what else to do..?

Okay, it seems like I solved the problem by cropping my dop_indices.RDS (I did not do this earlier).. but honestly I don't understand the connection..

Actually I do not exactly know what the problem has been.  The error message according to the cluster is typically thrown if you start reserving CPU nodes  for parallell  processing but you miss to stop the parallel mode and vice versa.  So you must always  stop this parallel session after starting it with stopCluster(cl) especeeially if an erro occurs. That means you should call the stopCluster(cl) function manually. After the restarting of the rsession etc. this CPU reservation is deleted automatically.
Actually I do not know what you mean with cropping the dop_indices.rds

@gisma I tried to extract my training data, but the result was all observations were away.
As you can see here:
pol = sf::read_sf(paste0(envrmt$path_data,"/Training_Data.gpkg"))

View(pol)
pol = sf::st_transform(pol, crs(rasterStack))
add IDs to your polygons, if they don't have them
pol$ID<-c(1:20)
to extract the data use raster::extract or the much faster package exactextractr
extr = exact_extract(rasterStack, pol, include_cols = c( "class",  "ID"))
|=====================================================================| 100%
extr = extr[sapply(extr, is.data.frame)]
extr = do.call(rbind, extr)
saveRDS(extr, file.path(envrmt$path_modelling, "model_training_data/extraction.RDS"))
extr = readRDS(file.path(envrmt$path_modelling, "model_training_data/extraction.RDS"))
extr = na.omit(extr)
buildings = extr[extr$class == "building",]
other = extr[extr$class == "other",]
nrow(buildings)
[1] 0
What do you think is the reason for this?

@gisma I have found the reason for my trouble: In the extracted file of QGIS, the names "building" and "other" were written with capitals. So the script could not find them. I have changed this mistake and now it works.


Added split window

I think this is stable now, but I guess we should test it a week or so just to be sure. I made some choices to avoid too much complexity, but feel free to give me feedback.
See also #235.

@zalox could you look at the cases when travis failed above?

This is awesome! There's only a minor issue: width of the split windows isn't remembered across restarts, which I'm fine with, but I'd expect a sane default to be provided, like 50:50 or 60:40, not this:

See Notebook::toggle_split, I think the positioning is done correctly. What gtk version do you have? Drag and drop between notebooks is broken in debian testing at the moment for instance, and positioning works perfect on OS X and pretty well on Manjaro. There might be some bug reports on gtk on this I maybe that might shed some light on the issues.

@milleniumbug Found this regarding the positioning: https://bugzilla.gnome.org/show_bug.cgi?id=765676. Would you mind test if the workaround works?

Replacing set_position(get_width()/2); with int width = get_width(); set_position(width/2-1); set_position(width/2); did nothing.
Tried debugging it, and the value of width at this point is 479. Now I suspect this is i3-wm specific issue (the window manager I'm using)

@eidheim You should pull in master into this branch, so we get CI with windows as well :)

@eidheim Regarding the failed builds, it seems travis fails due to a docker/ubuntu bug, and windows seems to fail due to resource management in appveyor. I think you can restart builds if any of these scenarios happen, if not I shall give you the missing permissions.

@milleniumbug split window position should be fixed in https://github.com/cppit/jucipp/pull/239/commits/0e0ef9ba19321853aa2b7119726a16d93debb27d (last commit above). At least it's correct now in Manjaro.

@zalox this PR is getting ready for merge. Maybe a day or two more with testing, and after @milleniumbug has verified that the split window position is correct now.

Can confirm that now after restart waits for a moment and then sets the divider 50:50.

@zalox this PR seems quite stable. Feel free to merge after review.

Merged, since new important PR is coming.


Rest API Git refresh and import

This function allows the Rest API to

Refresh the contents/branches of the remote repository
Import a new branch/tag into the Automate domain

Links

https://www.pivotaltracker.com/n/projects/1613499/stories/128530211
Depends on PR #10298

Steps for Testing/QA

Import a domain from a Git Repository using the UI (Automate -> Import/Export)
Update the Remote Git Repository with a new branch
Use the REST API to refresh the domain and pass in the new branch

This should result in the existing domain getting updated to have the contents of the new branch.

@eclarizio @abellotti @gmcculloug
Please review the last commit. The rest of the commits are from a different PR on which this one is dependent

@mkanoor LGTM :+1:

Euwe Backport details:
$ git log -1
commit e93e1df504f20b43d563a7fdafe2d550ec460c3c
Author: Greg McCullough<EMAIL_ADDRESS>Date:   Thu Oct 20 16:55:31 2016 -0400

    Merge pull request #12062 from mkanoor/rest_api_git_refresh_and_import

    Rest API Git refresh and import
    (cherry picked from commit c05a1ed4ad66c193b97ab83cc239340a5d79427e)


make gpio_defaults can incorrectly parse user_defines.v Verilog block comments

When you run make gpio_defaults on a caravel_user_project, it parses the contents of verilog/rtl/user_defines.v and we've noticed an issue where Verilog block comments are parsed incorrectly and treated as real code.
The following code should result in mag/gpio_defaults_block_1111.mag being created, but instead it uses the value in the comments and so creates mag/gpio_defaults_block_1eee.mag:
`define USER_CONFIG_GPIO_37_INIT 13'h1111
/*
`define USER_CONFIG_GPIO_37_INIT 13'h1eee
*/

...and thus it looks like the latter (unintended, commented) value gets used in synthesis.
I think this came to light because of @d-m-bailey running a check per #532

@DavidRLindley FYI


feat: add totp support in backend

add /api/totp[get] to implement user request to set totp, and return secret and recovery-code.
add /api/totp[post] to implement user initial authentication of secret and code and enable 2fa feature.
add /api/totp[delete] to implement the user to use recovery-code to delete the totp secret that has been set.

However, no front-end support has been implemented yet, so this pr is currently limited to back-end calls, and the back-end code of totp applied to the current login process still needs to be improved.

@seriouszyx plz review

@Steve0x2a I create an option in the account edit page as below.  Is this correct? What is2fa is used for? When to use set API?

@Steve0x2a I create an option in the account edit page as below.  Is this correct? What is2fa is used for? When to use set API?

I am using the "is2fa" flag to confirm that the user is currently enabled for two-step authentication. When the user wants to open 2fa, request the init API, which will return the secret and recovery-code, then the user needs to generate a code in the local 2fa client, submit this code through the set API, and casdoor verifies that the code was generated using the previous secret, and finally accept this totp setting.

@Steve0x2a @seriouszyx plz finish the frontend in this PR

@hsluoyz Can I push my commit to this PR directly? Should I be assigned some permissions?

@hsluoyz @Steve0x2a
On the account page, an option is added to set 2-step verification.

When enabling the option, it will jump to the set-totp page which is similar to forget page in style. Firstly, you should verify the password.

Secondly, the QRCode will be shown based on the URL generated by the backend.

You can use a local 2fa client (e.g. Google Authenticator) to scan the QRCode.

It will generate a code.

Submit the code and complete.

So the 2-step verification is enabled.

When disabling the option, it will call the delete-totp API.

@seriouszyx nice job!
However, I think the recovery-code should only be shown to the user when initializing the totp, the subsequent steps of the api will not return the recovery-code. the user should enter the recovery-code when calling the delete api.
Of course, if sufficient security is not needed, the current solution is also feasible.
Our next step should be to verify the totp during login.

@seriouszyx demo link?

@seriouszyx demo link?

http://<IP_ADDRESS>:8000/

@Steve0x2a @seriouszyx plz fix:

Is it device flow authentication?

@Steve0x2a plz fix:


ACDGen: Generate with Swift native types instead of their NS equivalents

Hello,
It seems ADGen generates methods and properties based on NSSet, NSString, etc. Is there any way to make it produce Set<> and String equivalents? If not, maybe an option to do so would benefit the developer. Would that make sense?

Hello. I think it is just the opposite, this is the default behaviour.

Look at the "Use scalar properties for primitive data types". When this option is marked ACDGen uses String, Set and other Swift types whenever possible.

Sorry, I guess I missed that part, because I believed that this would just handle Float, Int, etc. Thank you very much for the response.

No problem. You are welcome. Thank you for using AlecrimCoreData. :-)


Implement Enhanced Indexing as a Portfolio Optimizer

Implement Enhanced Indexing as a Portfolio Optimizer. And implemented a structured covariance estimator to boost the optimization process.
Description
Enhanced Indexing is a popular portfolio construction strategy. It's one of the index-tracking strategies, which means the possibility of both alpha and rather tender volatility.
A structured covariance estimator assumes observations can be predicted by multiple factors X = FB + U where F can be specified by explicit risk factors or latent factors. Therefore the structured covariance can be estimated by cov(X) = F cov(B) F.T + cov(U).
Motivation and Context
This pull request makes no change to current functions. It simply adds new featrues. Enhanced Indexing is a popular portfolio construction strategy while a structured covariance estimator will boost many optimization-based portfolio construction strategies.

How Has This Been Tested?

[x] Pass the test by running: pytest qlib/tests/test_all_pipeline.py under the upper directory of qlib.
[x] If you are adding a new feature, test on your own test scripts.

Screenshots of Test Results (if appropriate):

Pipeline test:

Your own tests:

Add test_structured_cov_estimator.py to qlib/tests/

Write another script to test Enhanced Indexing Optimizer. However, this test requires private data (history weights of an index), so I didn't add this one to qlib/tests/. You could find the test file at https://drive.google.com/file/d/1eKO6OcyPZjR2PEGZ2zyZByKUbgVyAwII/view?usp=sharing.

Types of changes

[ ] Fix bugs
[x] Add new feature
[ ] Update documentation

Comments have been added. Please update your commits accordingly.

All done.


Can't install extension using chrome on mac Version 58.0.3029.110 (64-bit)

Hello!
By some reason, i can't install the extension on Chrome 58.0.3029.110 (64-bit) on mac.
Any suggestions?
Thanks

Dear @savvasmad,
Please help me as I am not on a Mac.
Do you get any errors?
I am off for a week. My response to this may be delayed.
Please apologise!
Yours,
Robert

I don't even have an install button.
Please take a look at the screenshot

From which country are you accessing this page?
Can you please try a proxy?

I am from Latvia
Will try proxy and let you know the result.

Thank you!

I hope you can get it to work with a Chrome proxy extension.
If not, I will be back in a few days.
Thanks for reporting this problem!
Yours,
Robert

@savvasmad did it work?

I am closing this issue under the assumption that using a Proxy server did work.

No, it didn't work so i decided to use another similar extension. Thanks anyways

You are welcome.

Is it correct, that the extension now costs 0.74€?
I'm accessing the store from Germany.

@ureimers you can get the extension for free from here:
https://github.com/orschiro/tsrlt-chrome-extension/releases
:-)

@orschiro Yes, that's why I was wondering why I suddenly should pay for it. My Chrome (v60) extension store first wanted me to login and then asked me to pay 0.74€. I tested this on my private PC and from the one form my working place.
Here are some screenshots I took just now:

Installing an extension without the store keeps bugging me about the fact that I have my developer mode enabled (which I need to do in order to manually install an extension).
Cheers

@ureimers I put it for paid payments to raise money to donate to other open source projects. Hence, you are free to not pay if you choose the version from Github.

That's totally fine.
I just wasn't aware of that and wanted to ask if the payment option was intended, an error, or maybe even some scammer/phisher.

@ureimers I will make this more clear on the webstore page how the payments are used. Thanks!


RLS: 0.18.2

It is two months since 0.18.1 is released, and there are already quite a lot of changes in master, so it is time to think about a next release.
Currently, the release is targeted to be 0.18.2.
Personally, I think current master has already more new features and slight API changes than would be expected from a bug-fix release, so my proposal would be to just call it 0.19.0 instead (as also discussed on the dev meeting).
If there is agreement on this, I can do the change this week (not much work, just changing all references of 0.18.2 to 0.19.0 and retargeting the issues).
Besides that, there are two other questions in case of a rename of master to 0.19.0:

Do we want to release current master as 0.19.0 as is (in the short time, meaning we could tag a release candidate shortly)? Or do we want to give it some more time?
Do we still want to release a 0.18.2 bugfix release? We could select some bug fixes that are now in master to put in a 0.18.2 release.

Personally I prefer 0.18.2 because I haven't sent/prepared PRs for 0.19 which causes period/sparse API changes. Though it's ok for next time.

I don't have a strong preference either way. Just want to note that even if we do a 0.19 release now, we can follow up relatively quickly with a 0.20 release if thee are API breaking changes that are ready to go in.

Personally I prefer 0.18.2 because I haven't sent/prepared PRs initially intended for 0.19 which causes period/sparse API changes. Though it's ok for next time.

@sinhrks Do you mean you deliberately limited your PRs on period/sparse to not include API changes, that you otherwise would have made? That could be a reason to not directly release 0.19.0, but give it another month (or as @TomAugspurger says not wait long with 0.20).
In any case, if targeting master as 0.19.0, we probably would want to include some more deprecations so it will take a bit longer.

@sinhrks OK for you? (my last comment)
If no further objections, I will make the change tomorrow.

Yes, whichever is OK:)

OK, so the PR replace all occurences of 0.18.2 to 0.19.0 is up, renamed the milestones and add some of the original issues for 0.19.0 back to that milestone.
Main attention point for the coming days will be when merging already existing PRs that they have to move the whatsnew note.

moved to 0.19.0

There is still the second question from above: Do we still want to release a 0.18.2 bugfix release? We could select some bug fixes that are now in master to put in a 0.18.2 release.
I don't think it would be a lot of work to cherrypick some of the bug fixes into a 0.18.2 release (eg there were some regressions fixed), but of course actually doing the release still takes some work, so question is if it worth it.

I've been swamped lately, and so might not be able to help with the cherry-picking / release.
How long would we support a hypothetical 0.18.x bug fix branch for? I assume users would be interested in that upfront.

I would say let's skip for 0.18 and pick up the 'backports' for 0.19.0x series.
I also wouldn't maintain them beyond the actual release at all. You can always backport fixes to a new release if you wanted (but this is way too much work to be honest).
e.g. release 0.19.0 in say a month.
Then switch master to 0.20.0 and backport for 0.19.1 (0.19.2), etc.

I wouldn't support a 0.18.x branch longer than the next major release (that is something we should consider later on, certainlty when there is a possible 1.0, but for 0.18 not needed I think).
But if the final 0.19.0 release would be in eg 2 months, this would just be a way to already push some of the most important bug fixes to users now (eg in a week time), plus give users who would not upgrade directly to 0.19 a release with some bug fixes we already did

The not-upgrade path is to be honest way too much work for an open-source project (meaning providing a release series because people don't want to upgrade). The only real reason to back-port is to provide bug-fix-only timely releases. I think you are going to run into major issues even trying to backport some things.


Cannot use Chest Transporter to pick up chests when offhand is holding an item

Chest Transporter

Are you using it on a vanilla chest or some modded chest?

Vanilla chest. There was torch or enchanted book in the offhand.

It seems to be fixed by one of the later commits, I'll' make a new pre version some time tomorrow.

Try with https://github.com/GTNewHorizons/Backhand/releases/tag/1.5.8-pre

(1.5.9-pre) I can confirm that the chest can be taken, but it is no possible to place it when there is another item in the offhand:

https://github.com/user-attachments/assets/10b68707-c2b3-4d05-89e1-9e0ca9c07446

Yep the chest transporter uses an event to place the chest rather than onItemUse or onItemUseFirst, which means that we would have to implement explicit support for that.


testing for battery consumption in ideal state

Hii mauron,
i am testing the plugin with different configurations (in ideal state)
withANDROID_FUSED_LOCATION
         backgroundGeoLocation.configure(callbackFn, failureFn, {
         desiredAccuracy: 0,
         stationaryRadius: 5,
         distanceFilter: 5,
         debug: true,
         stopOnTerminate: false,
         locationService: backgroundGeoLocation.service.ANDROID_FUSED_LOCATION,
         interval: 60000,
         fastestInterval: 60000
         });

Result
On keeping it on for 8 hours overnight (100 % charged) GPS ON.
Charge left was 90%. Total battery consumption was 10%.
of which google play services consumed 28% and the app 23 %. rounding it to total 50%.
that means app was responsible for 50% consumption of total 10%.
i.e overall app used 5% of the battery overnight.

withANDROID_DISTANCE_FILTER
        backgroundGeoLocation.configure(callbackFn, failureFn, {
        desiredAccuracy: 0,
        stationaryRadius: 5,
        distanceFilter: 5,
        debug: true,
        stopOnTerminate: false,
        locationService: backgroundGeoLocation.service.ANDROID_DISTANCE_FILTER,
        locationTimeout: 60000
      });

Result
Charge left was 85%. Total battery consumption was 15%.
5 % more than ANDROID_FUSED_LOCATION.
stats showed app used 38% and FusedLocation used 15%. (approx i dont remember exact figure)
i.e 53% of total consumed 15%.

DOUBTS

according to docs ANDROID_DISTANCE_FILTER is battery optimized but while testing it consumed 5% more comparitively. am i using locationTimeout in wrong way ?

- For `ANDROID_FUSED_LOCATION` i tried using this config options
             interval: 600000, (10 minutes)
             fastestInterval: 600000

              but i was still getting location callbacks more frequently and not after 10
              minutes  (not   the   js  callback, debug toast update). i wanted to keep the
              service running but give updates after 10 minutes.

- is it possible to change config setting once service is started ? like only changing **locationTimeout** value without restarting service.

**what i am trying to acheive**
while app  is active and running the location updates should be frequent like evey half a minute or per minute. but once in background the locatio updates should be after 10 minutes. will this help in battery saving ?

what will be the effect on battery under following situations :-
1. app is in background GPS is ON and sevice is running.
2. app is in background service is running but GPS is OFF.
3. GPS is ON and service is running too , but location updates are set at interval of 10 minutes.(does this help in any way)

I am sorry for such a long post , but I am trying to make app more battery optimized. It would be great if you can take some time to clear few of these doubts. Thanks ! Help is appreciated

You cannot reconfigure service in the moment. You've to stop, configure and start again. Probably it could be implemented easily, but it will behave almost exactly same, because you probably have to stop locationManager or fused provider anyway.

Thanks mauron ! do you think increasing the update intervals can help reducing battery consumption ?
I am facing a issue
I have a simple function to stop the service.
$scope.stopService=function(){
  backgroundGeoLocation.stop();
}

It does not work everytime. my settings preference changes succesfully but geolocation does not stop.
I have to restart the app then it stops on toggling again. that too does not work sometimes. how to forcefully stop it ? Thanks !

IMHO it should reduce battery consumption. Stopping and starting service should work fine. Actually I'm using it in SampleApp to switch between providers.

Ok thanks alot @mauron85 . i will see what i can do :)

@mauron85   can you please tell the difference between option.locationTimeout | option.interval | option.fastestInterval | option.activitiesInterval
Thanks

option.activitiesInterval - the activity detection update interval (fused provider only), if detected activity is STILL, location tracking is put on hold, until motion is detected
option.interval - (fused provider only) how often pull sensors for location updates
More info in the docs.
https://github.com/mauron85/cordova-plugin-background-geolocation#android_fused_location-provider-options

@mauron85
when the is app killed , i want to update activitiesInterval  to 60000
when the app is resumed/started in foreground activitiesInterval  to 30000
I  just wanted to ask where can hook this code , so that i can update config only when app is about to terminate.
I tried  in MainActivity.java
@Override
   public void onDestroy() {
      Toast.makeText(context, "App Destroyed", Toast.LENGTH_SHORT).show();
       super.onDestroy();
   }

Sometimes this works, but most of the times app crashes as soon as app is killed.
same when i do it in BackgroundGeolocationPlugin.java
In BackgroundGeolocationPlugin.java
@Override
   public void onDestroy() {
       Log.d(TAG, "destroying plugin");

        Toast.makeText(this, "App Destroyed", Toast.LENGTH_SHORT).show();

       unregisterLocationModeChangeReceiver();
       // Unbind from the service
       doUnbindService();
       if (config.getStopOnTerminate()) {
           stopBackgroundService();
       }

       super.onDestroy();
   }

Can you suggest a better way to do this ? does the service has any mechanism where it detects that now its in background. ?
Thanks !

Post crash message from adm logcat

I already checked it
06-13 17:39:45.037: E/AndroidRuntime(3389): FATAL EXCEPTION: main
06-13 17:39:45.037: E/AndroidRuntime(3389): java.lang.RuntimeException: Unable to destroy activity {com.zap.thefooddost/com.zap.thefooddost.MainActivity}: java.lang.NullPointerException
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3661)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3679)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread.access$1200(ActivityThread.java:162)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.os.Handler.dispatchMessage(Handler.java:107)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.os.Looper.loop(Looper.java:194)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread.main(ActivityThread.java:5371)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at java.lang.reflect.Method.invokeNative(Native Method)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at java.lang.reflect.Method.invoke(Method.java:525)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at dalvik.system.NativeStart.main(Native Method)
06-13 17:39:45.037: E/AndroidRuntime(3389): Caused by: java.lang.NullPointerException
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at com.tenforwardconsulting.cordova.BackgroundGeolocationPlugin.onDestroy(BackgroundGeolocationPlugin.java:289)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at org.apache.cordova.PluginManager.onDestroy(PluginManager.java:298)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at org.apache.cordova.CordovaWebViewImpl.handleDestroy(CordovaWebViewImpl.java:480)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at org.apache.cordova.CordovaActivity.onDestroy(CordovaActivity.java:305)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.Activity.performDestroy(Activity.java:5291)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1112)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3648)
06-13 17:39:45.037: E/AndroidRuntime(3389): 	... 11 more

happens when service is not running and app is terminated. if service is not running still it enters onDestroy of plugin.
this works well but i just need to do it only if background tracking was enabled.so that it does not crash
line 289 is unregisterLocationModeChangeReceiver();
I i implement onDestroy in Main then it throws NullPointer at if (config.getStopOnTerminate()) {  in BackgroundGeolocationPlugin.java

anything on this ?

Notice: this issue has been closed because it has been reported for branch 2.x or later. It could be already fixed in v3 or is not relevant anymore. You may reopen this issue if it has been closed in error.

Battery consumption since this thread was started. I'm closing it. Please feel free to raise new issue, if you think this is still an issue.


Command imports is missing user-utils

Hey again 👋🏼
The command import is missing the user-util commands (view in directus SDK)
https://github.com/becem-gharbi/nuxt-directus/blob/2225380d72b1469cfd403d20d9a29aa00c58e6a6/src/module.ts#L149-L155
I haven't checked all commands, but in general it feels like a bunch of commands are missing.
What do you think about replacing the list and importer with addImportsDir  to always have all rest-commands available?

Hi,
This will also register non-command APIs for auto-import. To be honest I'm not working with Directus currently, so I'm not fully familier with commands. I suggest opening a PR to add the ones you find commonly used.

To be honest I'm not working with Directus currently,

On no, sad to read 🥲

This will also register non-command APIs for auto-import.

I thought this could be resolved by using the sdk rest export, but I just noticed that this also includes the type definitions
https://github.com/directus/directus/blob/8f1a7a83fd3bde9043137893d0478dfd76577f41/sdk/package.json#L35-L38
For now I'll probably go with importing the commands directly from the sdk, as it's hard to keep the import list up to date manually


Request for information

Hi Jim
Your profiling tool seems very nice, but it is hard for me to see what are the key features and the main advantages of your tool compared to yse/easy_profiler  . Could you add some info in your readme, in order to be more explicit ?
Thank you very much and have a nice day.

Hi,
The yse/easy_profiler project looks very nice, I suspect that might be the more comprehensive profiler!
I have added a little more to the README to outline its' capabilities and to explain the Sample App if you want to quickly try this one, hopefully that can help you with your comparison.
Thanks!


 Or you'd like something re-done let me know.
Most of it is taken from -h output, be glad to redo any bit.

Hey this is great! I'm not too familiar with man pages, is there a guide/example that you went off of when setting up the setup.py file? I would love to take a look out of curiosity. Also does this work on both linux and osx?

Python has no native mechanism I'am aware of to handle manpages, Alot of projects simply use the data_files feature in setup.py to do this. I basicly searched all over the web on how to do this.
One example would be https://github.com/0x90/scapy-osx/blob/master/setup.py
I see no reason not to expect it to work for osx (alot of stuff I googled does this the same). However I've no such hardware to test on, so can't confirm this on my own.

Little bit of googling http://serverfault.com/questions/391834/where-are-os-x-man-pages-stored
Assuming no odd env settings by the user, this should work. However as I mentioned I've no way to confirm. If anyone can confirm this tho as the default path that'd be wonderful.

Yea I just checked youtube-dl and they do the same thing as well (share/man/man1). It looks like it should work for at least the majority of distros.

I'm thinking about removing the "Controls" section. There are quite a few keys and I foresee it becoming a pain to maintain the definitions across 3 different files (readme, docs.py, and now the man page). I think it would be ok to add something like "type ? for a list of commands" to the description section instead. Thoughts?
Also how about adding an ENVIRONMENT section with short descriptions for $RTV_EDITOR and $BROWSER, since those are both used environment variables that we use.

Also a FILES section that lists the config file location

https://u.teknik.io/KcYxNP.png
Added the sections you mentioned, tossed a screenshot cause I can. As far as removing the controls part just say the word and I can remove it. Just mention the basics maybe, and then point towards the feature to press ? and view list in rtv. I think thats a nice balance, a man page doesn't need to be utterly details if the program offers some basics for use imo.
As always anything needs to be fixed or something let me know, I'am far from the greatest editor ever lol.

Good point. I would say go for it, remove the controls section and replace with a short blurb (a sentence or two) about the basic controls and pressing ?. You can get rid of the authentication section too, the master branch has switched to using only OAuth now.

Alrighty, edited accordingly.

Merged! I made some minor changes in style, I hope you don't mind.
I also had some fun and turned the manpage into a template. So now when you do something like change the version number or add a new command line argument you can simply run python scripts/build_manpage and the page will be rebuilt. That way, hopefully it won't fall out-of-date with the rest of the documentation!

No worries at all on any changes. I need to remember to add the new manpage generation to the new release version for the AUR package.

As of now you shouldn't have to do anything, I'll run it everytime there's a new release and commit the updated manpage to the master branch.


Add alternative Docker images

I've created my own webhook Docker image with tini, tzdata, and curl (thecatlady/webhook).
And roxedus/webhook with s6-overlay is another good alternative (which I wasn't aware of until after I created my own)!

Thanks!

Thanks!


Can't Disable SIP

Hi all
I am trying to use egpu with my Nvidia GeForce GTX 1080
According to egpu.io guide I have to install the purge-wrangler which require to Disable SIP
I am using Mojave 10.14.6 and the HaC-Mini v2.6. But I still can't disable SIP via config.plist
My config.plist

csrutil status check in Terminal

You’ll use csrutil to configure sip just like a real Mac. However nvidia 1080 is not supported as it don’t have a web-driver supported on Mojave.

Yes disable from recovery but nvidia is not supported so there’s no point.


Mobile controller

Simply make it usable on mobile (and publish to Apple, Google stores)

done, need to publish now (once it's possible to build anything with unity on linux XD)


Fool-proof submodules local/readthedocs.org integration

@tngTUDOR mentioned the following potentially confusing case in https://github.com/brightway-lca/brightway-documentation/discussions/31#discussioncomment-4302330:

a contributor makes a change to a function docstring in eg. bw-calc, commiting his change to the main branch
to check this change in the documentation Sphinx build, he pulls thesese changes into the bw-calc submodule in the brightway-documentation repo with git pull --recurse-submodules
building the documentation locally, the changes are all present. however, unless the updated commit ID in the bw-calc submodule are commited+pushed, readthedocs.org will not have the changes until dependabot updates the submodules on remote.

This means that local/readthedocs.org versiond might be out-of-sync for a short time (until dependabot resolves these dependencies). This is true only for documentation created automatically from docstrings using AutoAPI.

Mitigation strategies:

[ ] update the "documentation documentation" to include this case and give clear instructions on how to avoid this scenario
[ ] auto-update the submodules on remote whenever changes in their respective upstream repositories are detected

Compare my own question: Trigger workflow in other repo using workflow_dispatch and GITHUB_TOKEN
Compare recent GitHub functionality updates: GitHub Actions: Use the GITHUB_TOKEN with workflow_dispatch and repository_dispatch

Issue: GITHUB_TOKEN is valid only within the repository of the workflow.

Add GH action to the following repos:

[ ] bw2calc
[ ] bw2io
[ ] bw2analyzer
[ ] bw2data

Check:

[x] GitHub Actions: Use the GITHUB_TOKEN with workflow_dispatch and repository_dispatch works only within a repository, not for triggering a workflow in another repository
[ ] GitHub Actions – Support for organization-wide required workflows public beta


NEW Enable elemental content to return its owner page in CMS SiteTree searches

Please note that this logic will not be performant in larger data sets, and is likely to change in future in favour of a more rigid and specific set of ORM joins.
I've marked the method which will definitely be removed once this enhancement is made as @internal with a warning not to use it, and have made it private just to make sure.
Better way to do this will be logged as a 2.1.x enhancement separately.
Resolves #163

Follow up to make this better logged at https://github.com/dnadesign/silverstripe-elemental/issues/189


wttrbar: 0.9.4 -> 0.10.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for wttrbar is: A simple but detailed weather indicator for Waybar using wttr.in
meta.homepage for wttrbar is: https://github.com/bjesus/wttrbar
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.1 with grep in /nix/store/3rhb57pk16y7j55kzkjxzkr01zv7w8m4-wttrbar-0.10.1
found 0.10.1 in filename of file in /nix/store/3rhb57pk16y7j55kzkjxzkr01zv7w8m4-wttrbar-0.10.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

wttrbar

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3rhb57pk16y7j55kzkjxzkr01zv7w8m4-wttrbar-0.10.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A wttrbar https://github.com/r-ryantm/nixpkgs/archive/2d39d7708d608f8b29b23fd7ddb793933627a4c0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2d39d7708d608f8b29b23fd7ddb793933627a4c0#wttrbar

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3rhb57pk16y7j55kzkjxzkr01zv7w8m4-wttrbar-0.10.1
ls -la /nix/store/3rhb57pk16y7j55kzkjxzkr01zv7w8m4-wttrbar-0.10.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

wttrbar

Maintainer pings
cc @khaneliman for testing.

Result of nixpkgs-review pr 311221 run on aarch64-darwin 1

1 package failed to build:

wttrbar

Result of nixpkgs-review pr 311221 run on aarch64-darwin 1

1 package built:

wttrbar

Result of nixpkgs-review pr 311221 run on x86_64-linux 1

1 package built:

wttrbar

@NixOS/nixpkgs-merge-bot merge


Ci/multiple nc versions

This MR adds further improvements to the CI build step which runs the Solid testsuites against Solid Nextcloud. This includes preperations for supporting NC25.

The tests currently don't run for NC25 because of this issue: https://github.com/pdsinterop/test-suites/pull/64

Test-suite issue has been resolved, re-running workflows.


Topic/joint models more unittests

Related to #167

Coverage remained the same at 61.996% when pulling bf5da32a4703138ccd0dee85a8a2be5184977c32 on fvalenza:topic/JointModelsMoreUnittests into dbba3352ce1e432821db8442f318a50dc06f6ed7 on stack-of-tasks:devel.

Added a fix to distance computations

Coverage decreased (-0.2%) to 61.788% when pulling 254b0be86591ff6a406a7c12cb14497e5d190b50 on fvalenza:topic/JointModelsMoreUnittests into dbba3352ce1e432821db8442f318a50dc06f6ed7 on stack-of-tasks:devel.


Bump CI to Python 3.12

Follow SPEC 0: Drop Python <3.9, bump as much as we can to the current Python 3.12
This is a follow-up on https://github.com/python-control/python-control/pull/955#issuecomment-1888463800
Also replaces out of date coveralls-python with the official coveralls github action.

coverage: 94.784% (+0.004%) from 94.78%
when pulling 1236f633ab60ccab289735cbbc429a4de3d371ef on bnavigator:python312
into 9509dfdb57336bdebd1bbda5df0230e649d9234e on python-control:main.


Add CDN link

I added a jsDelivr CDN link to your readme, so that people can use files directly without downloading them. jsDelivr is also the fastest opensource CDN available and built specifically for production usage.

Righteous, thanks! 😊👍
I have a couple questions:

Is it necessary to have the version number in the URL? If we leave it out, will it be "latest"?
Can you also add a section for the dependencies - as on the docs page:

Bezier.js
Opentype.js

Also, if you want to update the docs page, it's in the gh-pages branch here. Since it's on a different branch, it would need to be a different PR.

The version number can be replaced with "latest" or completely left out but we don't recommend doing that because many people just copy the link without much thinking and using "latest" in production has a great potential for breaking something in future versions. It is also possible to use @0 or @0.9 which reduces that risk.
I'll add the dependencies and send another PR for the docs page :+1:

Should I replace the links in "For the browser" or add a separate section?

Let's add a separate section. Then we will look at it again and adjust. It may be that we then delete the old one.

Does the jsDelivr auto-update from the NPM registry? Or is there a manual step to update it?

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: LukasDrgon sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks a lot!


Include Navajo Nation in mapping of America/Phoenix and America/Denver.

The Navajo Nation is now defined in OpenStreetMap, so it should be used as a part of the boundary building process for America/Phoenix and America/Denver.

IMHO, it would be more appropriate to assign America/Shiprock to this region.  It's linked to America/Denver presently, but was specifically created to represent the Navajo Nation.
It's also a good way to ensure any future changes that might break that link would not need a map update.

Though note that America/Shiprock was moved to the backward file in 2013e.  Most implementations include this, but I suppose it depends on whether you want those zones referenced in this project or not.

Since America/Shiprock is in the backward file, I believe it doesn't make sense to include it due to a precedent that has been set of not including timezone names found in the backward file. See https://github.com/evansiroky/timezone-boundary-builder/issues/16#issuecomment-304901824.

I have verified that this data is being used with the existing data that the script extracts from OpenStreetMap.


fix(autoware_image_projection_based_fusion): make optional to consider lens distortion in the point projection

Description
Add option point_project_to_unrectified_image to switch whether if the point project considers lens distortion or not.
This PR will be merged after PR https://github.com/autowarefoundation/autoware_launch/pull/1207 is merged.
Related links
Lens distortion consideration https://github.com/autowarefoundation/autoware.universe/pull/7053

How was this PR tested?
TIER IV INTERNAL
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

TIER IV INTERNAL

@technolojin Could you retest on with camera_lidar_fusion perception_mode?

ALL TEST


Migrate Apache HttpClient plugin to indy plugin

does what it says on the tin
relates to #1337

:broken_heart: Tests Failed

Expand to view the summary

Build stats

Build Cause: [Pull request #1349 opened]

Start Time: 2020-08-19T13:57:41.515+0000

Duration: 23 min 52 sec

Test stats :test_tube:

Test
Results

Failed
1

Passed
1128

Skipped
1

Total
1130

Test errors
Expand to view the tests failures

Name: Tests / Unit Tests / co.elastic.apm.agent.resttemplate.SpringRestTemplateInstrumentationTest – co.elastic.apm.agent.resttemplate.SpringRestTemplateInstrumentationTest

Age: 1
Duration: 4.765
Error Details: org/apache/http/nio/protocol/HttpAsyncRequestProducer

Steps errors
Expand to view the steps failures

Name: Shell Script

Description: #!/bin/bash                set -euxo pipefail                ./mvnw test

Duration: 9 min 3 sec

Start Time: 2020-08-19T14:08:42.384+0000

log

Name: Download Codecov

Description: #!/bin/bash          set -x          curl -sSLo codecov.sh https://codecov.io/bash

Duration: 2 min 22 sec

Start Time: 2020-08-19T14:18:02.837+0000

log

Log output
Expand to view the last 100 lines of log output

[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2020-08-19T14:17:56.383Z] [ERROR] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
[2020-08-19T14:17:56.383Z] [ERROR] 	at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:55)
[2020-08-19T14:17:56.383Z] [ERROR] -> [Help 1]
[2020-08-19T14:17:56.383Z] [ERROR]
[2020-08-19T14:17:56.383Z] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[2020-08-19T14:17:56.383Z] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[2020-08-19T14:17:56.383Z] [ERROR]
[2020-08-19T14:17:56.383Z] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[2020-08-19T14:17:56.383Z] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[2020-08-19T14:17:56.383Z] [ERROR]
[2020-08-19T14:17:56.383Z] [ERROR] After correcting the problems, you can resume the build with the command
[2020-08-19T14:17:56.383Z] [ERROR]   mvn <args> -rf :apm-kafka-headers-plugin
[2020-08-19T14:17:56.414Z] script returned exit code 1
[2020-08-19T14:18:00.099Z] script returned exit code 143
[2020-08-19T14:18:00.352Z] Post stage
[2020-08-19T14:18:00.381Z] Recording test results
[2020-08-19T14:18:01.137Z] Post stage
[2020-08-19T14:18:01.169Z] Recording test results
[2020-08-19T14:18:01.432Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1349/src/github.com/elastic/apm-agent-java
[2020-08-19T14:18:01.469Z] [INFO] Codecov: Getting branch ref...
[2020-08-19T14:18:01.504Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-08-19T14:18:01.715Z] [INFO] Codecov: Sending data...
[2020-08-19T14:18:02.201Z] + curl -sSLo codecov.sh https://codecov.io/bash
[2020-08-19T14:18:02.400Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1349/src/github.com/elastic/apm-agent-java
[2020-08-19T14:18:02.440Z] [INFO] Codecov: Getting branch ref...
[2020-08-19T14:18:02.480Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-08-19T14:18:02.623Z] + bash codecov.sh
[2020-08-19T14:18:02.623Z]
[2020-08-19T14:18:02.623Z]   _____          _
[2020-08-19T14:18:02.623Z]  / ____|        | |
[2020-08-19T14:18:02.623Z] | |     ___   __| | ___  ___ _____   __
[2020-08-19T14:18:02.623Z] | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
[2020-08-19T14:18:02.623Z] | |___| (_) | (_| |  __/ (_| (_) \ V /
[2020-08-19T14:18:02.623Z]  \_____\___/ \__,_|\___|\___\___/ \_/
[2020-08-19T14:18:02.623Z]                               Bash-20200728-9fb7d93
[2020-08-19T14:18:02.623Z]
[2020-08-19T14:18:02.623Z]
[2020-08-19T14:18:02.623Z] ==> Jenkins CI detected.
[2020-08-19T14:18:02.623Z]     project root: .
[2020-08-19T14:18:02.623Z] --> token set from env
[2020-08-19T14:18:02.623Z]     Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml
[2020-08-19T14:18:02.623Z] ==> Running gcov in . (disable via -X gcov)
[2020-08-19T14:18:02.701Z] [INFO] Codecov: Sending data...
[2020-08-19T14:18:02.883Z] ==> Python coveragepy not found
[2020-08-19T14:18:02.884Z] ==> Searching for coverage reports in:
[2020-08-19T14:18:02.884Z]     + .
[2020-08-19T14:18:03.145Z] --> No coverage report found.
[2020-08-19T14:18:03.145Z]     Please visit http://docs.codecov.io/docs/supported-languages
[2020-08-19T14:18:03.209Z] + curl -sSLo codecov.sh https://codecov.io/bash
[2020-08-19T14:18:03.536Z] Failed in branch Smoke Tests 01
[2020-08-19T14:20:24.747Z] curl: (7) Failed to connect to codecov.io port 443: Connection timed out
[2020-08-19T14:20:24.781Z] Sleeping for 5 sec
[2020-08-19T14:20:29.792Z] ERROR: script returned exit code 7
[2020-08-19T14:20:29.793Z] Retrying
[2020-08-19T14:20:30.163Z] + curl -sSLo codecov.sh https://codecov.io/bash
[2020-08-19T14:20:30.517Z] + bash codecov.sh
[2020-08-19T14:20:30.517Z]
[2020-08-19T14:20:30.517Z]   _____          _
[2020-08-19T14:20:30.517Z]  / ____|        | |
[2020-08-19T14:20:30.517Z] | |     ___   __| | ___  ___ _____   __
[2020-08-19T14:20:30.518Z] | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
[2020-08-19T14:20:30.518Z] | |___| (_) | (_| |  __/ (_| (_) \ V /
[2020-08-19T14:20:30.518Z]  \_____\___/ \__,_|\___|\___\___/ \_/
[2020-08-19T14:20:30.518Z]                               Bash-20200728-9fb7d93
[2020-08-19T14:20:30.518Z]
[2020-08-19T14:20:30.518Z]
[2020-08-19T14:20:30.518Z] ==> Jenkins CI detected.
[2020-08-19T14:20:30.518Z]     project root: .
[2020-08-19T14:20:30.518Z] --> token set from env
[2020-08-19T14:20:30.518Z]     Yaml not found, that's ok! Learn more at http://docs.codecov.io/docs/codecov-yaml
[2020-08-19T14:20:30.518Z] ==> Running gcov in . (disable via -X gcov)
[2020-08-19T14:20:30.518Z] ==> Python coveragepy not found
[2020-08-19T14:20:30.518Z] ==> Searching for coverage reports in:
[2020-08-19T14:20:30.518Z]     + .
[2020-08-19T14:20:31.086Z] --> No coverage report found.
[2020-08-19T14:20:31.086Z]     Please visit http://docs.codecov.io/docs/supported-languages
[2020-08-19T14:20:31.419Z] Failed in branch Smoke Tests 02
[2020-08-19T14:20:31.698Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-08-19T14:20:31.788Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-08-19T14:20:31.827Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-08-19T14:20:32.513Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1349
[2020-08-19T14:20:32.622Z] [INFO] getVaultSecret: Getting secrets
[2020-08-19T14:20:32.705Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-08-19T14:20:33.656Z] + chmod 755 generate-build-data.sh
[2020-08-19T14:20:33.656Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1349/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1349/runs/1 FAILURE 1371870
[2020-08-19T14:20:34.207Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1349/runs/1/steps/?limit=10000 -o steps-info.json
[2020-08-19T14:20:34.758Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1349/runs/1/tests/?status=FAILED -o tests-errors.json


Is this plugin supported in AoT (Ahead of time compilation) in {N} + Angular

Hi,
I am experiencing some errors when I am packaging a project for iOS that uses this plugin. I am doing this workflow for bundling the app and I am getting this error once the app is opened:

file:///app/bundle.js:10941:25: JS ERROR TypeError: Attempted to assign to readonly property.
Mar 18 17:54:12 com.apple.CoreSimulator.SimDevice.8A380AE0-BE8A-464E-B1E9-12E1D1F1E55A.launchd_sim[433] (UIKitApplication:com.cobbl.app[0xd1af][5260]): Service exited due to Segmentation fault: 11

This line bundle.js:10941:25 is the bundled code for the initialization of the plugin via the delegate on iOS as described here.
Workaround:
What I ended up doing is to follow this article of extending the UIResponder:
import * as applicationModule from "application";

if (applicationModule.ios) {
    var MyAppDelegate = UIResponder.extend({
            // My custom logic here
            return true;
        }

    }, {
            name: "MyAppDelegate",
            protocols: [UIApplicationDelegate]
        });

    applicationModule.ios.delegate = MyAppDelegate;
}

Can i get you to cross post to the forums? http://forum.nativescript.org
I have no NG2 experience with NS let alone AoT :)

Hi @sitefinitysteve ,
Sure I also think to look into this myself and see if I can fix it. It looks to be an issue with the way an UIResponder in iOS is extended since the code for workaround I posted works in AoT Angular.


Support for MacOS

Hi!
We have some guys who work with MacOS. Any idea on supporting that? We use Excel to PDF conversion.
I see that you execute some VB-Scripts, could this also be done with AppleScript, or some bash scripting? I would be able to help, if it is possible and if you tell me what would be needed.
Best regards
Jan-Patrick

Absolutely, the logic for VBS is rather isolated, it should be straight forward to create an abstraction to also support MacOS. If you send me a PR, I will certainly consider it!

Hi, sorry for not responding for this long, but we had a quite stressful time here, and more important things.
I've now figured out some AppleScripts to mimic the VBS scripts.
I identified for Excel two areas where it has to be changed for MAC:

[documents4j-transformer-msoffice-excel] "com.documents4j.conversion.msoffice.MicrosoftExcelScript" has to use ".applescript" instead of ".vbs"
[documents4j-transformer-msoffice-base]"com.documents4j.conversion.msoffice.AbstractMicrosoftOfficeBridge" in the doStartConversion.

My questions:

Did I miss any code that had to be made platform specific?
Do you have any preferred way on how to introduce the correct extension? i.e. just a check in the constructor for the file type, or something more sophisticated like a factory that delivers a system dependent version of the Script implementation?
Is there already a functions in the utilities to check the OS version? Or dependencies that contain such functionality? If not, where do you want me to put it? in the msoffice-base or in some util module?

I'd like to start with the excel, but will then adapt the word and powerpoint scripts, too.
I hope to get access to a Mac PC next week, so I will try to implement everything then.
Bye

No, if you get the scripts to work, then it is no longer platform specific. Ideally, for compatibility, you would discover if you are running on Windows or on a Mac and unpack the corresponding scripts.
Looking forward to the contribution.

Hi,
so the good news:

I have a working script for Excel 2016 on OS X Big Sur creating PDF from Excel
The script is executed correctly in documents4j

However, there is now one problem, and that is that the return value of the AppleScript is NOT returned as the Process's exitValue, but instead written to stdout. And this then results in the "MicrosoftOfficeTargetNameCorrector" to return "false" from the "conversionSuccessful", making the process failing.
Any idea how to handle this, because this breaks a lot...
Best
Jan-Patrick

Wouldn't this be possible to achieve by some minor changes to AbstractExternalConverter? Here is a suggestion:
https://github.com/documents4j/documents4j/commit/e199e746c24e20e2d8f21f5b49ce1e4219d0901e

Hi guys.
I've tried to use the 1.1.12 version to convert a DOCX file to PDF however I get the following error :
[Thread-3] INFO com.documents4j.conversion.msoffice.MicrosoftWordBridge - ERROR: Microsoft Word got an error: document doesn’t understand the “save as” message.
[Thread-2] INFO com.documents4j.conversion.msoffice.MicrosoftWordBridge - -6
Is it possible that there is an issue based on the MS Word version on the Mac ?
Code used for conversion :
File inputWord = new File(docxFilePath);
File outputFile = new File(pdfFilePath);
InputStream docxInputStream = new FileInputStream(inputWord);
OutputStream outputStream = new FileOutputStream(outputFile);
IConverter converter = LocalConverter.builder().build();
converter.convert(docxInputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();
outputStream.close();


proposal: Go 2:

Author background

I'm a novice go programmer
Html, CSS, Javascript, Java, Python

Related proposals
Code needs better spacing and indentation for better readability

Please note that you should fill https://github.com/golang/proposal/blob/master/go2-language-changes.md when proposing a language change. I'm going to close this for now, as there's very little information here.


Don't stop users from using <IP_ADDRESS> as the a bind address

While <IP_ADDRESS> is already the default bind address for IPv4 blocking
it breaks old conf files that are configured using this.
Instead of removing the IsValid check on bind addresses don't check
if the address is a 0 address during init (allow other IsValid checks
to function as they always have).
0, 0.0 and 0.0.0 addresses are all expanded to <IP_ADDRESS> (confirmed by
printing to string during tests) while anything longer is obviously
not an IPv4 address and should be checked like normal.

This should fix @xmk3's complaint regarding the IsValid check (added when cleaning up InitErrors) stopping the usage of <IP_ADDRESS> addresses as bind addresses.

I'll test this shortly.

This works as expected. LGTM :+1:


fixes to install scripts for path set up

What does this change
This changes the instructions given at the end of the install script to tell the user how to add porter to their path.
What issue does it fix
Closes #1081

/azp run install-check

/azp run porter-install-check

The preview of the changes to the install page look good! 👍
https://deploy-preview-1088--porter.netlify.app/install/

/azp run porter-install-check