HN user

pbsurf

237 karma

email: <HN username> at gmail.com

Posts0
Comments57
View on HN
No posts found.

I'm working on computational chemistry, with the very long-term (decades) goal of designing molecules (proteins/enzymes) for things like artificial photosynthesis and molecular computing (chips still rely on the bulk properties of semiconductors; for miniaturization to continue, at some point it will become necessary to design molecules to function as logic and interconnect).

See https://github.com/pbsurf/chem

For my cross-platform app, I was originally using Qt for desktop platforms and Android. I was fairly happy with Qt on the desktop, but less so on Android, in part because I was using Qt Widgets - Qt Quick is the newer, preferred way to build GUIs in Qt, at least for mobile. Around 2016 I started looking into an iOS port - at the time, Qt for iOS was fairly immature and there was (is?) some uncertainty about licensing requirements for statically linking Qt on iOS. Having already spent more time than I wanted fighting various problems with Qt on Android, I decided to consider alternatives and ended up creating my own SVG-based GUI library that I now use across desktop and mobile:

https://github.com/styluslabs/ugui

One way that SVG could be used for multipage documents is with a convention that the top-level <svg> tag is the document and child <svg> tags are the pages - this is what I do in my app. I also use the fact that gzip files can be created with independently decompressible blocks to create svgz files with page-level random read access [1].

But another barrier is that browsers refuse to support SVG fonts. One supposed reason for this, the lack of hinting support in SVG fonts, is less relevant now with high DPI displays - macOS no longer does hinting at all I believe. The additional effort to support SVG fonts is really minimal [2], so it seems strange that it's intentionally omitted.

[1] https://github.com/styluslabs/ulib/blob/master/miniz_gzip.h

[2] https://github.com/styluslabs/usvg

I've just released a fork of nanovg that does GPU rendering a bit like Pathfinder, so it can support arbitrary paths - nanovg's antialiasing has some issues with thin filled paths. It also adds support for dashed lines.

https://github.com/styluslabs/nanovgXC

If you give it a try, let me know how it works for you.

I'm hoping to add some rough OCR to allow searching in the future. In the meantime, if you turn off pressure sensitivity (Pen menu -> Custom Pen), you'll get raw strokes in the SVG instead of filled paths.

at the next stop sign he just cruised to the stop sign in the 2 foot space between the cars and the curb and blocked slowed down even more cars

If the cyclist passed you and even more cars already at the stop sign, that implies that if, instead of passing him, you simply followed him as you would have any other vehicle, you would have ended up in the same place in the queue of motor vehicles at the stop sign. Thus you saved zero time by passing the cyclist.

In city traffic, the average speed of a cyclist can easily be greater than the average speed of motor vehicle, yet many motorists, perhaps not understanding the difference between maximum speed and average speed, insist on rushing past cyclists at the first opportunity, safe or not, just to stop and wait at the next intersection.

The Dart and nearly all other wall-plug AC to DC converters use a rectify-invert-rectify method. They first rectify the 50/60Hz mains AC to DC, then convert it back to AC at much higher frequencies in the kHz - MHz range, or in the case of the Dart, hundreds of MHz, and finally rectify it again to produce the final DC output. For a given amount of power output, at higher frequency less energy has to be stored in the circuit per cycle (i.e. stored in reactive elements like capacitors), which enables more compact components to be used.

I'd like to see all taxes replaced by a wealth "tax" in the form of a voluntary--not coerced--payment to the state for the service of recognizing and protecting one's ownership of a piece of property. Payment would be encouraged by the fact that if an individual failed to pay the tax for some property, someone else could take it from them, pay the tax, and become the legally recognized owner, leaving the original possessor with no legal recourse.