Hacker Newsnew | past | comments | ask | show | jobs | submit | kazinator's commentslogin

It seems as if you could get a range of voltages at the point between C1 and C2 with a closed negative feedback loop that controls the duty cycle of the flying capacitor.

If you charge the bottom cap more and the top one less, you can jack the voltage toward the power rail.

A buck as well as boost-buck converter could be produced without inductors.

Indeeed, I found an article about exactly this: https://www.allaboutcircuits.com/technical-articles/boosting...

The article references the LTC3265 IC, whose datasheet says "The LDO output voltages can be adjusted using external resistor dividers" (connected to the ADJ pins).


Obviously so, since games on 8 bit micros with simple square wave speakers had action games with sound effects and music, all with just assembly language running at 1 mHz in kilobytes of memory.

Good job, it sounds great!


The pigeonhole principle informs us that if we have more pigeons than holes, some holes have two or more pigeons. But also that if we have fewer pigeons than holes, some holes will necessarily be empty.

Given two bit strings of length n, if we compare fewer than n pairs, we cannot tell whether they are equal. The strings being equal is the proposition a_0 = b_0 ^ a_1 = b_1 ^ ... ^ a_n-1 = b_n-1. You cannot simplify this formula such that any a_i or b_i primary is taken away.


I'm skeptical for this reason: at the time of the first AI winter, AI was niche. Today, it is mainstream; vast numbers of consumers are using AI.

AI in consumer hands is no longer just a niche program in a corner of your company or government organization that can defund and shut down.

If the current purveyors of big cloud AI were to fold, their replacements are waiting in the wings to pick up the demand somehow.


All that matters is whether the user gave permission to wipe the drive, ... not whether that was a good idea and contributed to solving a problem! Haha.

In the Cygnal fork of the cygwin.dll, I hacked Cygwin's POSIX chdir() function, as well as the path resolution mechanism, to support the per-drive-letter name current directory concept.

A path like "f:myfile.txt" actually means f:\path\to\whatever\myfile.txt" where \path\to\whatever is the current working directory of the f drive.

This is one of the details which makes the replacement DLL more of a "native" run-time library, whose behavior is less surprising to Windows users of the applicaton based on it.

https://www.kylheku.com/cygnal/


There is more pliability in the Linux ecosystem to change some of these things.

And anyway, there has to be a naming scheme; the naming scheme is abstracted from the storage scheme.

It's not the case that your /var and /usr are different drives; though it can be in a given installation.


GPL does not prohibit evil uses. You can put GPLed crap in weapons systems that are used for striking civilian targets.

If a weapon includes AGPLed code, do targets of the weapon have a right to view the source code?

No, they merely feel the effects of the code, but they do not use it.

It must be that the figure with the half circles is just a representation of the hyperbolic space into 2D. Such projections are not faithful; you cannot take measurements in the projection and take them literally.

We can make an analogy to cartography: you can't trust areas and distances on distorted projections like Mercator.

Look, even the angles don't look to be zero in that diagram. We have to imagine that we zoom in on an infinitesimal zone around each corner to see the almost zero angle; i.e. the circle tangent lines actually go almost parallel. So to speak.

Thus the angles are locally correct, since they are measurable on arbitrarily small scales and can easily be imagined to be even when glancing at the entire figure. But distances between the points aren't localizable; they have to follow a measure which somehow correctly spans the abstract hyperbolic space that they represent.

How about this (almost certainly incorrect) imagining: pretend that the real line shown, on which the three points lie, is actually a horizon line, which lies in a vast distance (out at infinity). Just like the horizon when you do drawings with two-point perspective. Imagine the three points are vanishing points on the horizon. Vanishing points are not actually points; they just directions into infinity.

if, in a two-point perspective, you draw a curve whose endpoints are tangent to two vanishing point traces, that curve is infinitely long.

For instance if you draw an intersection between two infinite roads, where the curb has a round corner, you will get some kind of smiley curve joining two vanishing points. That curve is understood to be infinitely long.


sprintf can be safely used.

- For some conversions, you can establish an upper bound on how many characters they will produce. E.g. a positive decimal integer not more than 9999 does not consume more than four characters.

- It's possible to specify truncation. e.g. "%.64s" prints at most 64 characters from the string argument.

- There are enirely static cases that can be worked out at compile time, e.g.

  char big_enuf_buf[BIG_ENUF_BUF_SIZE];
  sprintf(big_enuf_buf, "%x-%04x-%04x", MAJOR, MINOR, BUILD); // preprocessor constants
Even if the buffer isn't big enough, and the behavior is formally undefined, it is entirely analyzable at compile time and we have support for that: the compiler can work out that the conversion needs, e.g., 13 bytes, including null termination, but the buffer only has 12.

The reasons for analyzing to it wouldn't necessarily just be for diagnostics, but possibly for compiling it down to a literal:

  char big_enuf_buf[BIG_ENUF_BUF_SIZE] = "A1-0013-000A";

If you really hit the pathological edge case of needed sprintf at runtime with runtime-only buffer sizes, you can still work out the size safely, albeit slowly.

I've done it to make a "safe" sprintf function that allocates the destination buffer, so that the caller cannot overrun it: https://github.com/lelanthran/libds/blob/56d6e18c8970b84c9fa...


btw, what you did is called "asprintf" in many stdlibs

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: