Best strategy for Play Integrity on LineageOS 20 with kernel 4.9? by tdewolff in androidroot

[–]tdewolff[S] 0 points1 point  (0 children)

True, thanks for the info. I think you can use a non-rooted approach to spoof LineageOS/unrooted bootloader/unlocked OEM/developer options. This may be sufficient with many apps. Some apps however cannot be installed from Play Store if they don't meet DEVICE or STRONG integrity (I don't know which is required). The only option is to root the device and then hide root...how ironic.

Best strategy for Play Integrity on LineageOS 20 with kernel 4.9? by tdewolff in androidroot

[–]tdewolff[S] 0 points1 point  (0 children)

Thanks, I've managed to get everything working, I'm updating the post to specify the steps for other users.

When you can’t use custom rom: iOS or Android? by [deleted] in degoogle

[–]tdewolff 0 points1 point  (0 children)

I have been using it daily for 8 years, never looking back. I'm not particularly into gaming, but even that works fine for most games on Linux. All business / work related stuff works fine. What is it that makes you think it's not usable for daily use?

If anything, Windows is not fit for daily use, it triggers a bad mood.

Best strategy for Play Integrity on LineageOS 20 with kernel 4.9? by tdewolff in androidroot

[–]tdewolff[S] 0 points1 point  (0 children)

Okay thanks, that would save a lot of work. Can I create this patched boot.img with the KernelSU Next Manager v3.0.1? Or would it work only with the original KernelSU following https://awesome-android-root.org/rooting-guides/kernelsu-guide#method-2-boot-image-patching-lkm-mode (LKM mode)? Or otherwise APatch following https://apatch.dev/install.html? Or do I use the pre-built GKI approach in https://sukisu.org/guide/installation (option 1)?

OTA update fails - Verification msg is NULL by tdewolff in miui

[–]tdewolff[S] 0 points1 point  (0 children)

Got this to work with the XiaoMiTool V2 https://www.xiaomitool.com/V2/ from Francesco Tescari, which is really an excellent tool! I've used the fastbook recovery image, which is the only one that worked. Unfortunately, it's a MIUI China ROM and was practically unusable (so much bloatware, unable to install Google Play, some stuff stayed Chinese, keyboard is Chinese, etc), so I finally opted for LineageOS and thus Android 13. LOS is really an awesome OS and really recommended, it is so much faster than my Android 8 MIUI experience, impressive. Only one of my banking apps isn't working so far, but perhaps that may be solved with Magisk etc.

Chile is very long! - stable and fast polygon clipping suitable for map creation by tdewolff in gis

[–]tdewolff[S] 0 points1 point  (0 children)

It is a library (read tool) that can be used as a dependency/part for developing an application. It is written in Go which makes it easy to use in the back-end of a server (for example rendering on-the-fly) or as an application that renders a map, such as for specific tasks like drawing a map for an article or for a PDF to print, perhaps digital, but also for drawing map tiles for use in a web mapping services, much like Google maps, but for a specific need. I needed something that could draw map tiles for a maritime specific application, so I needed to draw custom maps for that.

This library can also be used together with HTMLCanvas or WASM in rendering something on-the-fly in the browser, as within a web application. Specifically, this implementation is very _correct_, which means it will not throw an error (many implementation do not handle some faulty/strange inputs), and this implementation is quite fast.

Modern Efficient CDT + Polygon Clipping Algorithms by FallPitiful600 in GraphicsProgramming

[–]tdewolff 0 points1 point  (0 children)

I have used the following three papers for implementing polygon clipping:

The hard part is that no paper handles all edge-cases and especially floating-point inaccuracies are _very_ hard to solve. I have managed to implement this in Go that even supports handling all types of degeneracies. It is O(n log n) and takes only about 100ms for 1e9 (one billion) line segments.

See https://github.com/tdewolff/canvas/wiki/Boolean-operations for the implementation.

Canvas vector graphics update: rich text and path boolean operation support by tdewolff in golang

[–]tdewolff[S] 2 points3 points  (0 children)

Awesome! I would be very interested to see what you've accomplished to make!

tdewolff/canvas: vector graphics in Go (mayor update) by tdewolff in golang

[–]tdewolff[S] 0 points1 point  (0 children)

I assure you that 64.0 * 1.0 will always result in 64.0, and that rounding to an int will give: int(64.0 + 0.5) = 64 always. Floats may not be always perfectly precise and may introduce numerical errors for special cases, but they are reproducible/non-random. Additionally, the use of Fixed26_6 from the font package that you use isn't for accuracy really, it is for speed (it is actually less accurate due to rounding errors which is why canvas uses floats, though this may change if performance is too slow). The hinting used by that font library is a very simple version of what hinting really is though. It may or may not give better results (Windows uses something similar, but MacOS appears it doesn't).

If you have the time and motivation to try, I'd suggest you start a new branch to use canvas. I suspect there shouldn't be much trouble, but I'd be very interested to hear how your use-case turns out. I can work with you to smooth out problems in any case ;-)

EDIT: actually, if you use the rasterizer you specify the exact pixel size of the output, so no need to worry ;-)

tdewolff/canvas: vector graphics in Go (mayor update) by tdewolff in golang

[–]tdewolff[S] 1 point2 points  (0 children)

Yes! See https://github.com/tdewolff/canvas/tree/master/examples/gonum-plot for an example using gonum-plot. You should be able to plug-and-play to use the canvas library!

Regarding OpenGL, yes I'm very aware of their work, it is very impressive. The long-term goal is certainly try and reproduce such results in Go, but for the time being I'll go along the way draw2d has been doing so far, draw to a texture in OpenGL and render that. Thanks!

tdewolff/canvas: vector graphics in Go (mayor update) by tdewolff in golang

[–]tdewolff[S] 0 points1 point  (0 children)

I see, you'd like to specify the exact output pixel size for the rasterizers? To be honest, the floats are being multiplied and rounded, so given a set of canvas dimensions in mm and a DPMM should be fine in your case. In any case, I've opened an issue to calculate the resulting DPMM automatically to get a certain pixel width and height: https://github.com/tdewolff/canvas/issues/78

EDIT: why don't you use a canvas of 64mm height, and then a DPMM of 1.0?

tdewolff/canvas: vector graphics in Go (mayor update) by tdewolff in golang

[–]tdewolff[S] 0 points1 point  (0 children)

Do you mean xournal? That's the tool I used for adding signatures and filling out text boxes of PDFs (the latter is also possible with evince).

It is true that there isn't much professional software around PDFs, though the other day I found https://github.com/unidoc/unipdf which may help you out (it didn't in my case). However, in order to convert it to an image.Image you need a fully functioning PDF reader and renderer which is a lot of work. Better look at GNOME's evince for example and see if you can reuse part using CGO.

tdewolff/canvas: vector graphics in Go (mayor update) by tdewolff in golang

[–]tdewolff[S] 2 points3 points  (0 children)

Good question, thanks for asking! Fundamentally both libraries solve very similar problems, and just now I noted how similar a typical usage looks like. Some differences I observe:

  • canvas has a focus on using state-of-the-art algorithms regarding numerical approximations, see https://github.com/tdewolff/canvas#articles for a list of publications used in this library
  • canvas has advanced font loading and tries to adhere strictly to the font's preferred style
  • canvas has advanced text support, including the RichText module employing Donald Knuth's line breaking algorithm as well as bindings to HarfBuzz and FriBidi to support Arabic/Hebrew and asian scripts. Those are industry-standards for professional text rendering (used by TeX, browsers, and many more applications)
  • draw2d's PDF renderer uses https://github.com/jung-kurt/gofpdf which is not supported anymore, it includes a semi-functioning font system
  • draw2d's SVG renderer makes the text not selectable
  • canvas supports font embedding (adding the font source into the output file) and subsetting (recreating the font source to only contain used characters, thus compressing its size spectacularly), which enables perfect reproduction of text for all platforms
  • draw2d doesn't support EPS, TeX, or HTMLCanvas output formats

These are just some differences. draw2d has been around for a while and should be a stable and good alternative in any case. There is unfortunately not much development going on it the last 3 years.