Koenigsegg's 2.0-liter no-camshaft engine makes 600 horsepower - <AUTHOR> https://www.roadandtrack.com/new-cars/car-technology/a31451281/koenigsegg-gemera-engine-specs-analysis/ <comment><USER2> >"We don't make pure electric cars because for the time being, we think they're too heavy, and they don't make a cool sound. And as long as we can be CO2 neutral and frugal and clean comparatively, we will push the combustion engine."

Impressive tech, but I'd by lying if I said this doesn't rub me the wrong way. How do you mean combustion being CO2 neutral? And cool sound, this is one of my pet peeves. Why does a rich guy's wish for a "cool sound" in his sports car justify being a nuisance to other people? Motorbikes are the worst offender here. Sound limitations should be a lot stricter than they are.

<comment><USER3> > Why does a rich guy's wish for a "cool sound" in his sports car justify > being a nuisance to other people? Motorbikes are the worst offender here. > Sound limitations should be a lot stricter than they are.

My neighbor owns a couple of Porches with modified mufflers and a very loud motorcycle. I've argued with him at length about how his choice of noise intrudes on our peace, especially late at night. The bass vibrations travel further and will seem louder in different parts of the house, loud enough that two people conversing need to speak up. It's very bothersome.

<comment><USER4> My German friend with a harley tells me that loud motorcycles are very strictly controlled in his part of Europe, especially Austria, which is popular to transit through on long tours to the Alps. He says Austrian police will confiscate a motorcycle on the spot if it is deemed too loud and/or illegally modified. I wish they did that in my neighborhood, where some motorcycles are loud enough to set off car alarms right outside my window.

<comment><USER5> Europe has fairly strict sound limits on motorcycles (and they are getting stricter) in euro4/euro5. This constrains the manufacturers, but aftermarket enforcement really varies by location.

These days a lot of manufacturers homologate to meet multiple standards, so we get euro4ish stuff in north america too, stock at least.

<comment><USER6> All I can say as a motorcyclist myself is good.

After market exhausts that aren't engineered to be deliberately louder are stupid and annoying to other people.

<comment><USER5> I suspect you meant engineered to be quieter?

Excluding intentionally loud exhausts, the intake on a lot of bikes generates more sound than the pipes, at least at speed.

</comment></comment></comment></comment></comment></comment><comment><USER7> I race motorcycless and so have some experience with high horsepower small engines. My first thought is I wonder how high the compression is to get this HP with only 3 cylinders? With high compression, everything wears much faster and components like pistons, connecting rods, and bearings need to be replaced at regular intervals for the engine to remain reliable. Additionally frequent oil changes become necessary as the oil breaks down more quickly under these conditions and metal shavings from wear build up in the oil. Things like connecting rods become stressed and need to be replaced at regular intervals for the engine to remain reliable.

I'd imagine that the Konigsegg buyer probably doesn't care about maintenance costs but they might be irritated at the service intervals.

I wonder how much maintenance that will be?

<comment><USER8> Mean Piston Speed [1] is a good indicator of engine longevity.

~16 m/s for automobile engines

~25 m/s for Formula one engines

~26.5 m/s for Koenigsegg's 2.0-Liter

[1] [https://en.wikipedia.org/wiki/Mean_piston_speed](https://en.wikipedia.org/wiki/Mean_piston_speed)

<comment><USER9> And Formula 1 engines are only meant to last hours (yes really, most engines don't even last one season), albeit at ridiculously high stress levels.

If we extrapolate from this, where high performance drag cars typically last minutes (20 years ago they only lasted seconds), that would mean this engine might only be good for a couple of hours of driving around the track. Assuming this is true (I am not saying it is), this engine would be pretty worthless for anything other than being a collector's item or being used for 1 or 2 races before it had to be retired.

<comment><USER10> and F1 tires only last a few _laps_. it's all designed in. the F1 engines don't expire in a few races because they can't build them more robust, they expire in a few races because the rules require them to last _that long_. they could last all season (yes, with same performance) if they were required to do so.

<comment><USER11> Indeed. Back in the days they used to weld the cylinder heads to the engine block before qualifying, so they could run it that bit harder to get that extra bit of performance. Obviously not something that increases the lifespan of the engine...

Similarly in current F1, they know quite well how much life they have of the engine, and how much life a quali lap takes from the engine compared to a calm outlap.

If the regulations mandated a single engine per season they could do it, though they'd mostly just turn everything down.

</comment></comment></comment></comment></comment><comment><USER12> EngineeringExpalined has a great video[0] on the overall mechanics of the system.

Sadly, I don't expect to see this in regular Ford or Toyotas any time soon. The cost benefit combined design upgrade and tooling change is just not practical.

[0] [https://www.youtube.com/watch?v=FJXgKY2O4po](https://www.youtube.com/watch?v=FJXgKY2O4po)

<comment><USER13> I wonder if this engine is only 3 cylinders because of the cost of the valves? Fewer cylinders, fewer valves...

<comment><USER14> Just like for motorcycles, 3 cyl is the ideal for both torque and revs. Bi is all torque, 4 is all revs, and the 3 is just in between.

<comment><USER15> I find 3 cyl motorcycles slow and lack top end.

<comment><USER16> I don't know how you'd come to that conclusion.

<comment><USER17> maybe he rides motorcycles and tried them

<comment><USER16> Well, yes. But I've never ridden a triple that wasn't quick. A triumph street triple has plenty of power and a good top end, a triump __speed__ triple, or MV Agusta Brutale has ludicrous power and a good top end. A triumph rocket 3 is, well, its' a cruiser, so it's never built for a top end. A Yammy MT-09 is lower on top end, sure. But it's the cheapest of the bunch and has lots of torque.

They only lack top end power compared to the 1000cc inline-4 engines which sit in track-focused supersports.

Which is like saying, "I found the Ford Focus RS lacking in power compared to a Porsche 911 Turbo S".

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> It's interesting that in naturally aspirated mode, the engine creates around 280hp. That's right around what SUVs and Crossovers are currently producing. This engine has a real potential to be a game-changer; if the freevalve tech can be made cheap enough and reliable enough for mass production, it could really improve average efficiency and emissions for a large number of cars. Great Tech!

<comment><USER19> Internal combustion is over. There's no future to be improved in it, it's going away. We simply can't afford to use it any more, and it is being phased out.

<comment><USER20> You're right, but for wrong reasons. Internal combustion engines will go away, because electric vehicles' cost curve will destroy them.

IIRC, batteries get 13% cheaper per year, and that means price halves every 5 years or so. Right now 1 kWh of batteries (including BMS) costs about $100. So in 2025 one kWh of batteries will probably cost only $50.

Electric vehicles purchase price will simply be cheaper unless ICE vehicles get subsidies. At that point, for economical consideration you'll need to have pretty compelling reasons to buy an ICE vehicle.

Ultimately even gas station network will be decimated and gradually fade away.

<comment><USER21> There are still areas where ICE will dominate simply because batteries aren't practical or economical, despite being a cheaper fuel.

Extreme environments, heavy machinery, etc.

ICE are never going away.

<comment><USER22> Agreed. ICE will also gain a vintage appeal. I can imagine my grandchildren reacting in wonder to my "classic" jeep cherokee dinosaur juice guzzler.

There will always be collectors and niche uses for ICE vehicles (e.g. backcountry 4x4) even if they get largely displaced by EV

<comment><USER19> I'm going to bet that they are going to react more in disgust than in "wonder" at you still owning one of the machines that is ruining their future.

</comment></comment></comment></comment></comment></comment><comment><USER23> It's even more impressive that this is only a three-cylinder engine. It is super exciting to see Freevalve in a production car (even though it is generally unobtainable for the vast majority of people). I have high hopes that this tech will be licensed out and used in more affordable ICE cars.

<comment><USER24> Yeah it seems like the tech could be used to target efficiency instead of performance and perhaps improve the small engines in hybrid cars.

</comment></comment><comment><USER25> Jalopnik does a deep dive into the engineering of the entire Gemera drivetrain but plenty about the 3-cyl engine.

[https://jalopnik.com/a-detailed-look-at-the-koenigsegg- gemer...](https://jalopnik.com/a-detailed-look-at-the-koenigsegg-gemeras-mind- blowing-1842073757)

</comment><comment><USER26> >AI engine management software for Freevalve engines like the TFG. "The system will learn over time the best ways to operate the valves, what's most frugal, what's cleanest… It will eventually start doing things we've never thought of," Koenigsegg says. "It'll float in and out of different ways of combusting by itself, eventually in ways not completely understandable to us."

sounds like the blue-collar jobs of the future like car engine mechanic would need a Stanford AI degree.

Camshafts definitely got to go. Like carburetors it has been a solution from pre-electronic age. The variable timing has been a workaround for the last 3 decades, it is kind of a complication on top of the camshaft approach. These days though i don't understand while mainstream car manufacturers wouldn't just go for the fully independent valve approach like that "Freevalve", i.e. each valve is driven by its own solenoid/pneumo/hydro actuator controlled by the computer - such approach looks simpler and cheaper to me (may be because i'm in software :)

<comment><USER27> This is just dumb marketing speak for a simple hill climber with a handful of dimensions and a few heuristics. Ecu's have been doing this for like 25 years.

Basically, AI=bullshit in any marketing copy at this point.

</comment></comment><comment><USER28> This is really cool tech, amazing that somebody's managed to get dynamic valve action working reliably. What I'm wondering, though, it what the benefit is of using it on a hybrid car.

It sounds like they did connect the engine mechanically to the drivetrain, with the electric motors mostly assisting. But why not have it just directly drive a generator, with some decent sized batteries? An engine that only runs at full power at a single RPM to charge batteries doesn't benefit much from elaborate valve technology.

</comment><comment><USER29> Freevalve is awesome.

[https://www.freevalve.com](https://www.freevalve.com)

<comment><USER30> Looks amazing, I guess it simply wasn't possible (or extremely difficult and expensive) to create something like this before the advent of miniature+powerful computing. I wonder how else can ICE's be improved with more onboard processing power

<comment><USER31> Probably totally possible with late 80s tech in ECUs. They already had dynamic spark retardation and fuel maps that changed based on rpm/speed/other factors. Freevalve to me is another natural step after that. We already see dynamic valve timing with VVT and the like. Now it's just infinitly variable. Another benefit is that you are able to tune at all RPMs and produce more horse with less power. I love it

</comment></comment></comment><comment><USER32> So, this is all fascinating and nice advertisement for this racing company which might want to compete in Formula 1... But: what problem is actually solved by this thing?

</comment><comment><USER33> These engines remind me of the wankel rotary era. [https://en.wikipedia.org/wiki/Wankel_engine](https://en.wikipedia.org/wiki/Wankel_engine) Great idea that really worked but let down by reliability issues. I hope the Koenigsegg gets into some sort of mass production so we can see how reliable and durable it is though!

<comment><USER34> Koenigsegg makes <100 cars a year afaik, and I doubt that'll change.

<comment><USER35> Koenigsegg will work together with NEVS to make cheaper cars. Still close to $1 million, but their aim is to make more.

And I think Christian said they were making 1 car per week at the moment.

[https://www.autoblog.com/2019/03/04/koenigsegg-affordable- su...](https://www.autoblog.com/2019/03/04/koenigsegg-affordable-supercar- nevs/)

</comment></comment></comment><comment><USER36> This is really cool, but estimating 280HP at 2L when naturally aspirated has already been beaten. The party trick here is definitely the pneumatic valve control being able to switch combustion cycles on the fly. If you just want max power per liter, Nissan's 3 cyl from 2014 claims 400HP at 1.5L [0]. I'm guessing this high-output small engine tech will never come down to the consumer level since they all rev at 7-8k rpm. If there was a way to build a 3cyl SUV, I'm sure someone would have done it by now.

[0] [https://www.autoblog.com/2014/01/28/nissan-three-cylinder- ra...](https://www.autoblog.com/2014/01/28/nissan-three-cylinder-race-engine/)

<comment><USER5> That Nissan is also turbocharged, so 280 isn't the right comparsion. you should compare 400hp/1.5L to 600hp/2l. Or perhaps 500hp/2l on regular gas - either way they are similar.

<comment><USER37> 20 year old Honda K20A does ~260-270whp after tune

<comment><USER5> ah, that's a better comparison.

</comment></comment></comment></comment><comment><USER38> I really love the idea of a camless engine. Is there some fundamental reason it hasn't been more widely adopted other than tooling change costs? I can't imagine the solenoids are that much more expensive than a ground camshaft and all of the supporting hardware at volume.

This very much feels like the transition from brushed to brushless motors to me - super cheap compute power and sensors unlocking a much more efficient way to drive electric motors. As far as I know there's no _real_ advantage to brushed motors except in dirt cheap applications where a potentiometer is the most expensive speed controller you can afford.

</comment><comment><USER39> Software-controlled valves have been a holy grail for ICE for a long time, and now they're here. This is an amazing accomplishment. Unfortunately ICE are rapidly becoming obsolete.

</comment><comment><USER40> Currently, there is a 160% sales tax for vehicles that has an engine larger than 2.0 liters in where I live.

This engine could be a game-changer in countries that have the same taxation. I wish this engine can become mainstream.

<comment><USER41> Or maybe buy a Tesla.

<comment><USER42> You may be living in a US bubble. Tesla in many countries is still expensive, not that popular, and electric cars infrastructure is just bad.

</comment></comment></comment><comment><USER43> Koenigsegg claims that because of modern catalytic converters and improved cold starting process for their engine, there are virtually no particulate emissions: [https://www.koenigsegg.com/gemera/tiny-friendly-giant- engine...](https://www.koenigsegg.com/gemera/tiny-friendly-giant-engine/)

I wonder how well these claims will hold up. Seems like a very big deal if true.

</comment><comment><USER44> I just got a Boxster, and while the engine in it is amazing, this would be a hell of a swap (not at all easy, perhaps next to impossible, but the idea of a 600hp engine that actually fits in the Boxster... whoa).

Edit: I knew their cars were expensive, but it seems Koenigsegg cars start around 2mm and up to to 10mm? I'm gonna guess that there's zero chance of just buying an engine for $10k and throwing it in another car like an LS swap

<comment><USER45> You could always do something like this, which definitely could fit in a boxster.

[https://emrax.com/e-motors/emrax-348/](https://emrax.com/e-motors/emrax-348/)

<comment><USER46> Pancake axial flux is a really compact and powerful combination. If they ever get them weighing so little that they could be unsprung weight there will be a revolution in drive trains.

</comment></comment></comment><comment><USER47> I love these way out of the box thinking approached for super cars because that type of innovation can lead to break throughs "down the road" pun intended. Having said that, a configuration I have thought about is the idea of a hybrid that uses a turbine with magnetic bearings turning a high efficiency generator. Probably been thought of but I have not seen it. HN will point me to something I bet :)

</comment><comment><USER48> How come it has taken many decades for Freevalve to come along? Genuinely curious as it doesn't seem impossible that someone else had thought of it.

<comment><USER49> Pneumatic valves are expensive. They have been used in F1. Similarly, despite overhead 𝚟̶𝚊̶𝚕̶𝚟̶𝚎̶𝚜̶ cams being invented in 1902, they weren't popularized until the 1983 Toyota Corolla, and you can still find pushrods in the 2020 Corvette.

<comment><USER50> Seems you misspoke. We've been using overhead _valves_ far longer than 1983. Overhead cam is probably what you meant. Though depending on how mainstream it needs to be in order to be considered 'popular', the first dual overhead cam engine was in production in the 20s, IIRC.

<comment><USER49> Whoops, yeah, meant cams. Popularized in the sense of being in a mass market car.

<comment><USER5> Right. I'm pretty sure they were mass market in Europe well before that camry though.

</comment></comment></comment></comment></comment><comment><USER51> How many watts of electricity could this make, if it were removed from the car, and made to power an electric generator?

Would there be any efficiencies compared to say, an ordinary gasoline piston engine with a camshaft, driving that generator?

I'm guessing yes... which leads to the next question:

Would a diesel motor (again, to drive a generator) be more effective than this one which uses gasoline?

Why or why not?

</comment><comment><USER52> Does anybody have a pointer to a schema / animation how this works? Is this a radial motor?

<comment><USER53> There's a video in the article. Did you look?

<comment><USER52> Yes. There are 4 photos and an unrelated "rube goldberg" video at the end?

<comment><USER53> I'm not sure why you're not seeing it. This is the video in the middle of the article. [https://vimeo.com/395222190](https://vimeo.com/395222190)

<comment><USER52> Thanks for the direct link! I can't find any vimeo reference in the page source, perhaps it depends on country or adblocker or whatever.

I guess part of my confusion stemmed from mixing up the camshaft and the crankshaft (the former seems relatively straightforward to replace in a conventional motor, the latter not so much...) O:)

</comment></comment></comment></comment></comment><comment><USER13> OT, but kind of related: Would it be possible build an air-cooled engine that runs on alcohol, and uses water/methanol spray in the intake air such that the temperature of the engine is controlled by the amount of water/meth?

</comment><comment><USER54> I wonder if this is an interference or non interference design. If it is the former, one glitch in the valve timing and the engine would need a rebuild. Hopefully it is the later.

</comment><comment><USER55> I take it the complexity of the system favors fewer cylinders and a larger bore.

This could be interesting when it comes down market a bit. Especially given the flex fuel ability.

</comment><comment><USER56> The video says 1000 km of hybrid range. Is that then only 4 refuels from NYC to LA?

</comment><comment><USER57> This is a marketing piece.

</comment><comment><USER37> TLDR: turbo charged

Build turbocharged Honda K20A (20 year old engine) does 500whp.

>Koenigsegg says, in theory, a naturally aspirated TFG could make 280 horsepower.)

again just like build K20A NA :)

</comment><comment><USER58> So a gigantic engine can make horsepower. Is 600 horsepower a lot?

</comment><comment><USER59> Computer controlled valves are an old idea. It's been a "can be done, but not worth the trouble and added complexity" thing for years. This is more like the last gasp of fuel-powered supercars, as the IC engine people try to stay relevant.

<comment><USER16> Hur dur, gas baaaaad. If you don't understand car culture, and why this is cool, why are you commenting on this thread?

There are other forums to jerk off about pathetic road-legal electric go- karts.

</comment></comment><comment><USER60> > "We don't make pure electric cars because for the time being, we think > they're too heavy, and they don't make a cool sound. And as long as we can > be CO2 neutral and frugal and clean comparatively, we will push the > combustion engine."

I read that as "we don't give a fuck about emissions because we like vroom vroom and we plant a few trees to not feel bad about it".

I agree about the weight problem of large lithium batteries, and light hydrogen fuel cells may not deliver enough pick power, so I don't have a good solution for hyper cars. I just think that ICE engines shouldn't be in cars ASAP.

<comment><USER61> Why all this focus on weight? Regenerative breaking makes weight 80% more irrelevant, or did I miss something?

<comment><USER62> Road wear is IIRC to the 4th power of weight.

That is to say, a 4500 lb Tesla Model S has 5x the road-wear of a 3000lb Toyota Camry.

If all Tesla Model S drivers were willing to pay 500% the road-taxes to make up for their 5x damages that their cars do to our roads, I think I'll be cool with them using their road-destroying heavy batteries.

And the F150 drivers too, while we're at it.

<comment><USER63> You are generally correct that a 4,500lb car will do 5x the road wear per mile than a 3,000lb vehicle. (Although some studies find damage increases closer to a power of 3 not 4). However it's extremely important to ask... 5 times what number?

The cost per mile in terms of road damage is mainly a function of axle weight and designed load and volume of the road surface. The damage per mile per ESAL (Equivalent Single Axle Load) can vary from $0.03/ESAL-mile to $5.90/ESAL-mile when you exceed the design load of the road. Low volume roads will have a higher ESAL because of natural wear exceeding use-based wear.

Since passenger cars will never exceed the design load of a road, this is not a factor in our analysis (but it's a very big deal for heavy trucks, particularly on rural roads). Since low volume road wear is predominantly due to natural causes and not road-use we should probably exclude those as well.

Just to put this in perspective, the cost per mile per ESAL of $0.09 (a relatively high volume road that operates within vehicle weight design spec), gives us road damage for a light passenger car (3,000 pounds) or 0.0002 ESAL which equates to $1.80 per 100,000 miles.

Increasing to an ESAL of 0.001 results in a wear cost of $9.00 per 100,000 miles.

Basically all road wear comes from heavy trucks with an ESAL > 1\. This is compounded when those trucks exceed the design load of the road, which can add another up to 500x multiplier on the damage per mile driven.

The damage/road wear cost for passenger vehicles is a barely even a rounding error by comparison.

Based on this simple analysis, I do not believe it is at all justified to claim that Teslas (or EVs in general) have "road-destroying heavy batteries."

[1] - [https://pavementinteractive.org/reference- desk/design/design...](https://pavementinteractive.org/reference- desk/design/design-parameters/equivalent-single-axle-load/)

[2] - [https://www.fhwa.dot.gov/reports/tswstudy/TSWwp3.pdf](https://www.fhwa.dot.gov/reports/tswstudy/TSWwp3.pdf)

<comment><USER5> This is true. The real problem is trucking, and the way roads are paid for it amounts to a massive public subsidy to that industry, with lots of market distortion around that (see also, state of US rail systems).

<comment><USER63> In the sense that passenger cars aren't causing really any wear and tear to our major roadways, this is absolutely true.

However, the value of having those major highways is still extremely high to passenger cars and trucks alike.

I benefit greatly from well maintained roads, even if my use of those roads is not damaging the road basically at all.

So you need a weighted analysis of use and value as well as wear & tear to come up with a "fair" allocation of costs.

Even people who don't own a car benefit greatly from those roads, due to their logistical necessity for everyday life, not to mention mail and package delivery to their homes. To the extent that passenger car drivers overpay for their commensurate road wear & tear, car owners are subsidizing non-car-owners because the goods they buy are cheaper than they would be if they had to pay for the true fully loaded logistics cost.

You could charge the trucking companies more. Then prices of transported goods would just increase to compensate and we'd all be roughly back in the same place maybe? Non-car owners would be worse off.

To the extent that roads are being subsidized more than _rail_ then this would distort the market and limit freight volumes. I have a feeling that the markets are not tremendously out of balance, and that it's not like we're sitting on massive unused rail freight capacity that just can't operate profitably because roads aren't expensive enough? But that's a whole different topic.

<comment><USER5> Righ, the system as a whole is useful. But if truck traffic wasn't as heavy/damaging, you would pay less to enjoy the same benefits, give or take.

I think the argument made by some transport people is that if we made (particularly) the trucking industry pay more directly, as you say we would be roughly back in the same place except variant freight methods (e.g. rail for long distances) might become competitive enough to bring overall costs down.

I don't know the truth of this, but we've been subsidizing trucking long enough that I don't think current rail capacity is a good indicator one way or another. It seem plausible - it's clear there is a market distortion but not clear exactly what it is.

One nit-pick, it's not clear the non-car owners would be worse off so long as whatever payment mechanism we used didn't create a free-rider class of passenger vehicles.

<comment><USER63> To the extent that car owners are subsidizing the trucking industry, and to the extent that trucking industry subsidies flow through to the cost of goods delivered by trucks (the same thing as saying that increased trucking costs flow through to goods delivered by truck), then shifting the balance necessarily means car owners paying less and non-car owners paying more.

I will admit I stumbled upon this conclusion and felt it was ironically juicy and a bit provocative, but it seems like pretty solid macroeconomics to me!

<comment><USER5> Agreed, I worded that badly - what I meant is that non-car owners could still save more by not driving than the delta on the goods, potentially, as they are paying only the fractional cost that they are actually consuming, if everything else was "correctly" redistributed.

This is all complicated though by the way we actually pay for all of this, so it's not as simple as car owners subsidizing. It's not like the gas tax covers this.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Eight cities which are taking bold steps to get rid of cars - <AUTHOR> https://www.fastcompany.com/90321627/these-8-cities-are-taking-bold-steps-to-get-rid-of-cars <comment><USER2> This is good. A major problem has been that cities have been built to accommodate cars which then enforces the need for them. Cities should be human-scale. Obviously, there will still be a longer-distance transportation which can hopefully be picked up by rail networks.</comment>


Show HN: High performance X11 animated wallpapers - <AUTHOR> https://github.com/glouw/paperview <comment><AUTHOR> So the animated wallpaper scene on linux is pretty bizarre. There are some popular methods out there like calling `feh --fill-bg` continuously in a bash loop but it sends your CPU usage to an astronomical 40% which drains the laptop battery pretty quickly. I couldn't find a reasonable animated desktop wallpaper setter, so I wrote a little utility in 150 lines or so in C that I call from .xinitrc to randomly pick a fairly unobtrusive desktop scene when I startx.

Quick youtube showcase: [https://www.youtube.com/watch?v=6ZTiA885bWM](https://www.youtube.com/watch?v=6ZTiA885bWM)

<comment><USER2> for animated stuff I had good results with setting mpv as background. though yours looks like it uses even less CPU, super nice :) will work wonders with [https://1041uuu.tumblr.com](https://1041uuu.tumblr.com) stuff !

... or at least it would, if I was seeing my desktop background once in a while

<comment><USER3> >setting mpv as background

how does one do this? Just replace the Feh call with mpv?

<comment><USER2>
        mpv foo.mp4 --wid=0

</comment></comment></comment></comment><comment><USER4> When my main computer was Linux laptop, I used xplanet as my desktop background. World clock, basic weather..

This was in 2003. It would get lots of interest when I was working in public places.

Which is why, somewhere over Greenland, a flight attendant came by and very quietly said to me, "I noticed you work on outer space stuff. We just got word over radio that the Space Shuttle blew up." :-(

Very strange that the memory of that interaction would come to me about 8 hours after a more robust reentry vehicle splashed down in Florida.

[http://xplanet.sourceforge.net/](http://xplanet.sourceforge.net/)

<comment><USER5> Xplanet is the only animated wallpaper I've even seen used. Most people would try it back in the early 2000 and then come to the conclusion that it wasn't worth the CPU cycles after a few minutes.

</comment></comment><comment><USER6> I used to care about my desktop background. But as I've gotten older I find the only time I see it is when I close every window, and sometimes I can go for weeks without closing every window. So now I just leave it as the default because I look at it <1% of the time anyway

<comment><USER7> I mostly work in a terminal, developing in a text editor, and have my terminal background set to 80% opaque so that I can see my background.

Every 15 minutes I pull a random image from /r/earthporn. I enjoy having a "window" into the world :-)

Screenshot: [https://imgur.com/fkXYD07](https://imgur.com/fkXYD07)

<comment><USER6> I admit, that's pretty sweet.

</comment></comment></comment><comment><USER8> Isn't it possible to use mpv for this?

      mpv --wid=0

Causes mpv to draw to the root window.

I even found a guide:

[https://github.com/digip/linux-video- wallpaper](https://github.com/digip/linux-video-wallpaper)

Not sure what the performance is like though.

<comment><USER9> Performance is pretty good, probably even better than TFA, due to the hardware decode of the video.

That said, in both cases transparency of things like terminals is going to be very resource hungry.

Also, if you're doing the --wid=0, throw in --loop there too. :)

</comment></comment><comment><USER10> I have 3 screens. Amount of pixels that show my desktop: 0

I am honestly confused why, years ago, I spent hours searching for the perfect wallpaper on the internet. And why I spent even more hours making my own, 20 years ago.

Nowadays I usually set one I like when I install the machine and maybe change it 1-4 years later. Is this what growing up feels like? :(

<comment><USER11> If you have more than one monitor your can keep all windows fully maximized.

</comment></comment><comment><USER12> most of xscreensaver's hacks will use the root window if you ask them too.

I'm using GLava [1] to put an audio spectrograph up on one side of my desktop, i run it with windowed games and transparency and so on and its never more than a 5% of CPU that I've ever seen.

[1] [https://github.com/jarcode-foss/glava](https://github.com/jarcode- foss/glava)

no link for xscreensaver, jwz doesn't like hacker news

<comment><USER13> xscreensaver is nice when you eliminate all the "busy" modes and then turn down all the sliders on each mode you have left so that it moves very slowly.

the only thing i haven't figured out is how to get the fonts working again.

</comment></comment><comment><USER14> I love the focus on reducing CPU, GPU, and battery consumption... but it's still going to be distracting.

<comment><USER15> Yeah. I don't mean to be disrespectful to the OP, but what's the point of having wallpapers, anyway? Distraction is one thing, but it's also obstructed when you open a large window. I can kind of understand having a screensaver with a beautiful picture, but today screensavers are things of the past.

<comment><USER16> It's the same reason I change my icons and desktop theme. I'm gonna stare at this screen for 10+ hours a day, I want it to be beautiful.

<comment><USER14> At the cost of usable? IDK about that tradeoff. With the wallpaper specifically, it's always covered, at least on all the computers I use.

</comment></comment></comment></comment><comment><USER17> Live wallpapers would be much more compelling if the background had context- awareness of what was in the foreground and could interact and animate in a way that augmented the foreground apps instead of just being pretty. Maybe with smart people, future OSes will make that possible.

<comment><USER18> Yes, maybe with a little sheep that walked around your windows and teetered over the edges...

[https://adrianotiger.github.io/desktopPet/](https://adrianotiger.github.io/desktopPet/)

<comment><USER19> I miss stuff like this that doesn't seem nearly as popular these days.

</comment></comment></comment><comment><USER20> I never saw the point of this, or Active Desktop back in the day.

But the last three releases of Fedora and Gnome have had a sort of animated wallpaper. It's actually just an XML file that defines times and image files for each time. And it's used to darken the wallpaper when the sun sets.

I use the default one that ships with Fedora but the XML file is straightforward and it's simple to make your own.

One thing that will make me use more advanced desktop features is definitely alleviating eye strain.

In that vein, using a CLI tool to check up on Gitlab pipelines is another recent development. Switching back and forth between a dark solarized terminal and a bright Gitlab Firefox window was becoming annoying.

(I know there are lots of CSS tricks you can do in FF to force dark styles on websites but I try to keep my setup as vanilla as possible to ease its management.)

<comment><USER21> GitLab has a real dark mode in the preferences now. You need to refresh once you select it. The dark syntax highlighting preference plays well with it.

Not that there is anything wrong with a CLI workflow.

<comment><USER20> Wow, thank you! The pipeline output is still a bit bad contrast but it's so much better.

</comment></comment></comment><comment><USER22> You can use the binaries from xscreensaver as moving backgrounds. If you execute them directly they'll write to the root window.

Example:

       $ /usr/lib/xscreensaver/moire2 -root

</comment><comment><USER23> Thanks for sharing this, I've been looking for options for an active wall paper that doesn't passivly wreck my performance. I look forward to giving this a try.

</comment><comment><USER24> Is there a decent repository for these kind of short animated backgrounds? Ideally pixel graphics like the one in the preview video. I'd like to experiment with this, but a quick duckduckgo search didn't turn up much; some sites were advertising images as animated but they were in fact still images, and most of the others had gifs of varying quality, and weren't even consistently 1080p.

<comment><USER25> Try stock hd video sites like videezy.com. You'll have to convert the hd videos into suitable format yourself though, but that should be easy enough.

</comment></comment><comment><USER26> Really wanted this years ago when I was using Compiz/Beryl. Great job finding an efficient (in terms of power and cpu strain) implementation!

</comment><comment><USER27> I'd like to see a colour pallet cycling xll animated wallpaper [http://www.effectgames.com/effect/article- Old_School_Color_C...](http://www.effectgames.com/effect/article- Old_School_Color_Cycling_with_HTML5.html)

</comment><comment><USER28> Would that work with TWMs like i3? Most animated wallpaper programs I tried didn't work correctly.

<comment><USER29> Looking at the video, I guess the author uses I3.

</comment></comment><comment><USER30> Just fyi, I think SDL_LoadBMP relies on sdl2_image; you may want to note that as a dependency.

<comment><AUTHOR> I believe BMP loading is included into the core SDL2 library, but not other formats, which SDL_image remedies. Here is SDL_Surface.h. SDL_LoadBMP is just a macro using SDL_RWFromFile.

[https://github.com/SDL- mirror/SDL/blob/master/include/SDL_su...](https://github.com/SDL- mirror/SDL/blob/master/include/SDL_surface.h#L201)

</comment></comment><comment><USER31> Excellent! Some of those backgrounds look like they're from SvC: Chaos.

<comment><USER32> I think they are. It's a popular collection of 'fighting game backgrounds with nice pixel art' that get posted around pretty often.

</comment></comment><comment><USER33> Animated backgrounds not so much, but I really miss screensavers.

Of course they make no sense these days. Still, I liked the interesting displays while my workstation was left to its own thoughts.

</comment><comment><USER34> The style of the wallpapers and animations reminds me of the Windows 95 Plus theme pack. There was something that animated once every few minutes, but I can't recall what exactly…

<comment><USER9> Windows Vista had animated backgrounds in the ultimate edition. Was very heavy on CPU though[0].

There used to be a way of displaying websites on the desktop in windows 2000. "Live desktop" I think it was called[1].

[0]: [https://en.wikipedia.org/wiki/Windows_DreamScene](https://en.wikipedia.org/wiki/Windows_DreamScene)

[1]: [https://en.wikipedia.org/wiki/Active_Desktop?wprov=sfti1](https://en.wikipedia.org/wiki/Active_Desktop?wprov=sfti1)

</comment></comment><comment><USER35> when i see some geometric animations often in small badly encoded videos i wish i would know a repository of programs that create these in order to render them onto the background in a pixel perfect manner without wasting too much resources. but i was not able to find some yet :(

</comment><comment><USER36> This looks great! Too bad it gives me a headache.</comment>


Allo by default stores all your chats indefinitely - <AUTHOR> http://www.independent.co.uk/life-style/gadgets-and-tech/news/google-allo-should-be-deleted-and-never-used-says-edward-snowden-a7320861.html <comment><AUTHOR> _Making the change does probably keep Google on the right side of the law. By keeping track of all messages, Allo conversations will be accessible by law enforcement with warrants – something that can't happen on apps like iMessage or WhatsApp, both of which have run into trouble over not being able to give up information to authorities._

It should be the other way. There should be a law saying that a company must meet some hurdle to store personal information for a long period of time. At least disclose it publicly. It's so ironic that the EU cares about websites disclosing that they store cookies, but not that they store conversations indefinitely.

The law would put a chilling effect on storing personal information indefinitely. But, like carbon emissions, it will only slow the progress towards a future where all the carbon is released from the ground / all the data is stored and analyzed by AI years from now.</comment>


Dynamic Linking in Linux and Windows - <AUTHOR> http://www.securityfocus.com/infocus/1872

<comment><AUTHOR> Part 2 is here: <http://www.securityfocus.com/infocus/1873></comment>


Why Microservices? - <AUTHOR> https://work.jeygeethan.com/2016/12/why-microservices.html <comment><USER2> > ...we should use microservices and stop monoliths from becoming huge > mountains of code in the future.

Microservices architecture is good, but have some problems about which developers forgot, e.g. microservices communication and dependencies problems.

This architecture is good choice only for specific situations and it require good forethought.</comment>


Beyond The Boundary - <AUTHOR> http://www.solipsys.co.uk/new/BeyondTheBoundary.html?HN0 <comment><AUTHOR> Just thought I'd try to give some background ...

This lives in the gray world between "popular science" and "real math." As such it's intended to be an easy read, but it's actually reasonably hard to get to the ideas involved. Since people on HN keep saying they want to learn more math, and it would be awesome to have some real math to study, I thought this would be a useful way to get a handle on some of the more interesting bits before deciding to dive into the degree level stuff. However, based on the lack of clicks, lack of upvotes, and lack of discussion, I'm no longer sure it's worth posting it here.

Call this my equivalent of the initial testing of a startup idea - really does look like it won't fly, despite what people say they want.</comment>


XeTeX: could it be TeX's saviour? - <AUTHOR> http://vallettaventures.com/post/20061046069/xetex-could-it-be-texs-saviour <comment><USER2> There are two problems with TeX (in general):

1\. It is a _local_ maximum. It produces great output and works now. Changing it requires a huge effort which will result in a system that is inferior, for many years to come. Only then another maximum could be achieved. This means there is resistance to change — it's easier to adapt to TeX's flaws than it is to write something completely new. Many systems suffer from similar fate (think Emacs).

2\. It is a black hole, a programmer sink. People start using TeX and curse it, then they learn it, and by the time they know its limitations and are ready to take on a job of writing something better, they are proficient enough in TeX to stay within it. Many systems suffer from similar fate (think Emacs).

I wonder if something will eventually happen to budge the TeX community from where it is now.

<comment><USER3> _Many systems suffer from similar fate (think Emacs)_

That happens so much in software there needs to be a word for it, a term of its own.

After a while, you get deep enough in the rabbit hole so that it seems your initial judgement of redundant complexity was wrong. Even though it's still true, you've adapted to it. You just can't see it from the viewpoint of someone new anymore. For this reason I tend to carefully write down my initial concerns with something.

More on-topic, I don't think what TeX needs is a complete, sudden break with the past. It would be better to deprecate old, flawed features, and later on disable them and provide and optional compatibility mode (which is a bigger download).

</comment></comment><comment><USER4> XeTeX-generated PDFs are not compatible with the toolchains of some academic publishers (Cambridge University Press, which publishes the Journal of Functional Programming comes to mind, but I seem to recall Springer-Verlag having issues as well). Without full support for academic publishers, I believe that majority of TeX users could not upgrade.

<comment><USER5> What about XeTeX-generated PDFs makes them incompatible?

<comment><USER4> Great question; I have no idea. We just get mail back from the editors that says things like, "your PDF breaks our scripts; regenerate it directly with LaTeX."

Some, like Springer-Verlag, also have an editorial process where you have to send your .tex files to them and they will merge all of the documents and run LaTeX on them. I don't even know how you could get xetex (or pdflatex) to work with that system.

</comment></comment></comment><comment><USER6> Umm, have these people ever _heard_ of backward compatibility? Admittedly, many TeX package authors haven't either, but just dropping pstricks is going to make a ridiculous number of documents that have a figure in them impossible to compile. Not to mention the fact that TikZ, while better, is not better _enough_ that everyone will want to invest time learning it...

MikTeX's install-on-first-use has its problems, but does help balance bloat and not removing older packages.

<comment><USER7> Can't they just maintain both a bloated legacy version and a stripped down version that they focus on?

<comment><USER8> The TeX community in general has a philosophy that anything written since 1983 (TeX'83) or so should a) compile and b) produce precisely the same typeset document if it is recompiled today. This has obnoxious issues and is one of the reasons for the profusion of packages--the norm is to change the name for incompatible changes so that old users can continue on.

<comment><USER2> Which is a ridiculous goal, because, in general, most documents found in the wild are portable if transported together with the author's computer system. Chances of successfully producing typeset output from a .tex file (+ a bunch of external files) that you get from someone else are slim to none.

I'm glad there is a movement to do something. I used to use TeX but stopped a long time ago, because it was simply too much pain for too little gain. I still have to deal with it sometimes when helping my wife who publishes scientific papers. Whenever she mentions that she needs "a small modification in the BibTeX style", I get nightmares.

<comment><USER8> Actually anything that's gotten as far as journal publication should be exactly reproducible; I remember having to include the packages I was using and everything else in one archive for my couple of journal publications. Conceded that folks are not quite so careful for off the cuff work; same thing as having file:/// URIs in web pages.

And I'm hesitant to complain about it too greatly; my father's PhD thesis cannot be reproduced without a specific type ball for a Selectric and I know of numerous people who have kept dragging their old text files off disk packs to magtape to 8" disks to 5 1/4" disks to 3 1/2" disks and finally to CD ROMs where they have to duplicate all the CDs every few years lest they become unreadable due to dye fade. I know several photographers who are downright paranoid about an almost literal bitrot—if you ever want to see someone spitting mad with rage, telling a photographer that his precious negative or RAW file cannot be located, or read, or even decoded (a nontrivial issue with RAWs and older image formats, and depending on language and system even with text files!) will get you there.

Saying "if you preserved the files, we will recreate your masterpiece exactly" might be an overreaction to this but it's not impossible to understand where people are coming from. Particularly the poor dears coming from Word where moving a document from 2002 to 2008 will change the typesetting subtly and sometimes not so subtly.

</comment></comment></comment></comment></comment><comment><USER9> >> Undoubtably a change this severe will be painful for some, but it will be less less painful than heading out to the computer shop in 3 years time to purchase the 2TB harddrive that will be required for the exponentially expanding tex updates.

Few arguments ever gain feasibility from hyperbole, this article is not an exception. The size of his texlive installation is purely circumstantial evidence, since that folder also includes backups of updated packages and all sorts of other "dynamic", i.e. user-specific data. Basing the argument on that seems...silly.

>> For those for whom adding the letters xe before typesetting is too much to bear, or for typesetting ancient documents

It isn't as easy as "just adding xe" before (La)TeX, since not all packages are integrated with it yet, and since the polyglossia package is _still_ not fully stable, either (yes I know babel is old, but at least stable), so some packages have trouble dealing with polyglossia or have experimental interfaces in order to work with Xe(La)TeX. Csquotes is one of the packages that comes to mind. A further problem with XeTeX is that it _still_ does not offer a _proper_ version of the microtype package. And on top of everything, the hyperref-support for colours is spotty at times, at least for me.

For me, depending on situation, pdflatex and xelatex live happily next to each other and are both included in the same in my generic template via the _ifxetex_ package and \ifxetex...\else...\fi, so depending on what I need in a given instance, running either binary on the same file produces either output.

</comment><comment><USER10> In all honesty I did not realise LaTeX needed saving.

<comment><USER11> Outside of mathematics and physics conference/journal publishing, there's a widespread perception that it's losing ground. In CS some conferences are slowly switching to Word, or offering an option to authors (who are slowly switching to Word, especially outside of theory-heavy areas). In book publishing it's shrunk to a very small niche, even in technical areas. Part of the problem is cruftiness of tools, and part is the bizzareness of the underlying languages. As far as I can tell, few people who've written significant chunks of LaTeX stylesheet code or TeX macros/packages think the language is good, and it's complex/weird enough that even the vast majority of people who've written dozens of papers in LaTeX have no idea how to make nontrivial changes to its stylesheets. Also, many of the base tools _still_ don't have Unicode support.

Belief that something is broken and attempts to fix it are a 20-year-old refrain at this point, e.g. ConTeXt is an attempt to make TeX more usable for book publishing, LuaTeX is an attempt to reduce reliance on TeX macros in favor of a less weird scripting language, XeTeX is a project to add Unicode, etc.

<comment><USER12> > In CS some conferences are slowly switching to Word, or offering an option > to authors (who are slowly switching to Word, especially outside of theory- > heavy areas).

Huh? In my research areas (evolutionary computation, machine learning, artificial intelligence, multiagent systems, robotics) this isn't remotely true. CS conferences of almost all stripes have _always_ offered non-LaTeX submission routes. But LaTeX dominance is just as strong, if not stronger, than it used to be ten years ago.

Indeed, I think that the stigma surrounding Word submission in conference papers, journal articles, books, theses, even grant proposal submissions, is so strong that one must think twice before using it in the bulk of CS fields.

<comment><USER11> It varies by sub-area, but artificial intelligence is also my area, and I don't see that dominance anymore, especially in the more interdisciplinary areas (anything that overlaps with HCI, psychology, cognitive science, etc.). I also don't see the stigma anymore among younger researchers; I detect that attitude from older people mostly, and some of the "harder core than thou" people in math-heavy sub-areas, but there's a bigger mix of preferences among people under 35 who work in less math-y areas. I use TeX myself when it's my choice, but I've collaborated on Word papers as well, if I wasn't the primary author/instigator, and it seems common/expected these days. Especially if someone from industry has been the instigator (e.g. on DARPA-contract type research), or if it's interdisciplinary with someone not from CS/math, they've preferred Word.

AAAI, IJCAI, and AAMAS now provide both options, and my informal observation is that more Word papers are being submitted than used to be the case, especially but not exclusively when it comes to authors from industry. CHI recently officially deprecated LaTeX as a supported option, but still provides the old (no longer maintained) stylesheets as a courtesy. Several universities (e.g. Georgia Tech) have also stopped officially supporting LaTeX stylesheets for theses and moved to Word as the only official option, though they do distribute student-edited LaTeX stylesheets as a courtesy. I assume that one's because nobody in the IT department knows how to edit the stylesheets. The unofficial GT thesis stylesheet is a hilarious example of copy/paste cruft, too, with bits taken from 20-year old U. Texas stylesheets and various other places.

<comment><USER12> > AAAI, IJCAI, and AAMAS

These venues have had Word options for well over a decade or more. I recall a higher rate of Word (and HTML!) submissions in Agent97 -- the predecessor of AAMAS -- than I see in AAMAS now. At any rate I think there are few significant changes in LaTeX usage in those conferences.

You're right that the big place where Word shows up in CS is in HCI, software engineering, and interdisciplinary areas. Is it possible that, given your mention of CHI, that you're from these areas and possibly experiencing a sample bias?

</comment></comment></comment></comment></comment><comment><USER13> The mission of TeXLive is to include everything and the kitchen sink. However, why should their TeXpad support everything? They could go the XeTeX+biber+TikZ route and educate their users how to switch from pdflatex,bibtex,pstricks,etc.

<comment><USER14> Precisely, there are other people out there who use TeX in different ways. They should just target their preferred compilation chain and just handle that in their app (they are not wrong in thinking that _most_ people out there just wan LaTeX to spit out PDFs and use "normal" graphics).

Otherwise, has anyone used their app? How does it stack against Emacs+AucTex+RefTex+Skim?

</comment></comment><comment><USER15> I think one of the best moves to get this in the works would be updated tutorials and documentation "Using LaTeX in 2012" or whatever, because a huge amount of the resources out there will promote use of outdated or old packages that would hinder moving forward.

</comment><comment><USER16> Why is it necessary for TeX to keep all the libraries in source form on disk? Why not use compression, or package some pre-compiled form of the library code, or both?

<comment><USER17> From what I understand everything above TeX is one giant text manipulation macro, which means it all has to be available to the programs in text form, you could compress it but that would me decompressing hundreds (thousands?) of files every time you compile.

<comment><USER16> I understand, but I'm not convinced that the macros couldn't be somehow compiled down to some more compressed binary representation. Regardless, I still think keeping them on disk in a tarball or something would be more economical. Decompression can be quite fast if the right compressor is used.

<comment><USER18> > I understand, but I'm not convinced that the macros couldn't be somehow > compiled down to some more compressed binary representation.

My understanding is that this is what .fmt files are for. I'm not sure where the line is drawn between what goes in a .fmt file and what is packaged as ordinary TeX code; I imagine that, like much else about TeX (which I love), it reflects the machine constraints with which Knuth was faced while writing it (in the late '70's and early '80's).

</comment></comment></comment></comment><comment><USER19> I just use XeTeX so I can get proper kerning and ligatures. Oddly enough, as a typography nerd LaTeX just doesn't cut it.

<comment><USER20> I understand that XeTeX allows some fancy ligatures and access to other opentype features, but what's lacking in [La]TeX's kerning, and basic ligature support?

</comment></comment><comment><USER21> I have used XeLaTeX for a while because of the support for freetype fonts and better support for unicode.

Linux Libertine is my favorite font for XeLaTeX because it has better ligatures than any of the computer modern etc. fonts.

</comment><comment><USER20> I didn't understand why they wanted to port LaTeX to the iPad when they first wrote about it:

<http://lee-phillips.org/latexipad/>

<comment><USER22> I'm sorry, but your logic here is just terrible. Your argument is that "I don't want an iPad" and "The iPad isn't a full computer" implies that "Nobody needs/wants LaTeX on an iPad". This doesn't logically follow and is instead a self-centered presumption that because you don't want something, nobody else does.

They want LaTeX on their iPads, I would like LaTeX on my iPad, and I have met other people who also want LaTeX on their iPads. When I'm taking notes, LaTeX works well _for me_ (I'm not claiming for everyone) when I need to type up equations. I use my iPad with a bluetooth keyboard to take notes (the iPad's battery life (amongst other things) makes it very attractive for this application). I'd like to be able to render my equations to make sure I didn't make a transcription error.

<comment><USER20> That would indeed be a bad argument. I'm glad I didn't try to make it. The iPad is a superb browsing/reading device. But sometimes people insist on using the wrong tool for the job. You want LaTeX on your iPad. But you don't have it and won't get it, because it's not a computer. That was my point. You want to take notes and use LaTeX? Why didn't you buy a used Thinkpad for $100 from ebay and install linux? That's what I did. I don't have the excellent iPad screen (or the battery life - I certainly see your point there), but I don't have to say "I wish this could run LaTeX / Gimp / gcc / python / ....".

</comment></comment></comment><comment><USER23> I use xelatex in my work and it's still embarassingly fragmented and outdated. We need to start over on a new TeX-like project (also so that it can be ported to mobile).

</comment><comment><USER24> I thought that luatex was going to be the savior?

</comment><comment><USER25> The lack of microtype support in XeTeX is a deal breaker. That's the main reason why I continue to use pdflatex.

<comment><USER9> Microtype is partially supported (read: half of what it mainly does), i.e. protrusion sort of works, but expansion does not. Protrusion is already _something_ , though I agree that this is one of the biggest things holding me back from switching completely.

</comment></comment><comment><USER26> Tex, because it's author didn't care to reuse XML.

Having used it for publications and during the university i really, i despise Tex. Simply the language sucks, the outcome is nice, but those slashes and parenthesis really sucked.

With a XML syntax we could easily create beautiful editors, make it easy to parse with schema validation, etc.

Problem is that this card castle grew, avoiding alternatives such as docbook, and is and will always be a mess, since it's foundations are not parseable.

<comment><USER27> XML: published 1996.

TeX: Initially released 1978.

Plus, writing XML makes me puke, so even with the occasional grossness of TeX syntax I'm happy it's not XML.</comment></comment>


Seth Godin published novelizations of NES games under the name "F. X. Nine" - <AUTHOR> http://www.1up.com/do/feature?pager.offset=0&cId=3152540

<comment><USER2> Apparently I got my fill of Seth Godin's writing when I was ten years old.

</comment><comment><USER3> Wow, I read all of these when I was 10, and now I've got a handful of Seth's more recent books laying around here.

I would have never made the connection. So strange.

<comment><USER4> Perhaps that's because he didn't write all of them:

"One author that worked closely with Seth Godin was Peter Lerangis. Using the pen name of A.L. Singer, Lerangis wrote four title: Blaster Master, Ninja Gaiden, Infiltrator, and Bases Loaded II: Second Season."

</comment></comment><comment><USER5> That's crazy. I read all of them when I was ten. I pretty much memorized the Ninja Gaiden book because I read it like 12 times (no idea why).</comment>


Monads without pretension (2011) - <AUTHOR> http://rcrowley.org/2011/09/21/monads.html <comment><USER2> The whole point about monads is that they provide a uniform interface for working with values that carry some extra context. The genericity of the interface is nice, in that it allows you to write generic monad combinators, but they are only useful because of the context (effects, control flow, etc). If you don't describe any of the implementations, you are missing the point!

The best introduction to monads was written in 2006 (more than eight years ago now) and I don't imagine that a better one will be written in the near future -

[http://blog.sigfpe.com/2006/08/you-could-have-invented- monad...](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads- and.html)

<comment><USER3> It's not even about the effects, really. It's simpler to think of Monad as an interface for manipulating encapsulated data in a way which keeps it encapsulated.

The simplest way to encapsulate data is to wrap it using a constructor which we keep private to our module:

        module M1 (Encap(), val1, val2)
        data Encap a = mkEncap a

        val1 :: Encap Int
        val1 = mkEncap 5

        val2 :: Encap Int
        val2 = mkEncap 10

Other modules importing M1 get access to the Encap type, val1 and val2 but _not_ the mkEncap constructor. They can use val1 and val2 as-is, but they can't construct new Encap values or destruct existing Encap values to get at their contents. The problem is, there's not much we can do with this interface.

One way we can make this more useful is being able to apply some function to an encapsulated value. That's what Functor is for, so we can add this to M1:

        instance Functor Encap where
          fmap f (mkEncap x) = mkEncap (f x)

Now users of M1 can transform encapsulated values without being able to break the encapsulation. For example:

        val1Plus7 :: Encap Int
        val1Plus7 = fmap (+7) val1

        val2Str :: Encap String
        val2Str = fmap show val2

We're still pretty limited though, since there's no way to combine encapsulated values into new encapsulated values, or to encapsulate our own values. That's what Applicative provides, by letting us construct encapsulated values _without_ gaining the ability to destruct them, and by allowing encapsulated functions to be applied to encapsulated values (since functions are closures, this lets us gather up encapsulated values and combine them arbitrarily):

        instance Applicative Encap where
          pure x = mkEncap x
          (mkEncap f) <*> (mkEncap x) = mkEncap (f x)

Now users of M1 can encapsulate and combine values, like this:

        -- val1 + val2
        val1PlusVal2 :: Encap Int
        val1PlusVal2 = fmap (+) val1 <*> val2

        -- New encapsulated string
        val3 :: Encap String
        val3 = pure "Hello world"

        -- val3 repeated val1 times
        val3Repeated :: Encap String
        val3Repeated = fmap rep val1 <*> val3
                       where rep n _ | n <= 0 = ""
                             rep n s          = s ++ rep (n-1) s

This is quite a powerful interface, but one thing we can't do is `collapse` double-encapsulated values into single-encapsulated values. That's what Monad provides:

        join :: Encap (Encap a) -> Encap a
        join (mkEncap (mkEncap x)) = mkEncap x

An alternative, but equivalent, definition is to allow calls to encapsulation- producing functions without encapsulating their result. Haskell's Monad is defined this way:

        instance Monad Encap where
          (>>=) :: Encap a -> (a -> Encap b) -> Encap b
          (mkEncap x) >>= f = f x

These kind of encapsulated values turns out to hold effects without breaking the language, and these interfaces turn out to be powerful enough for general computation.

<comment><USER4> >These kind of encapsulated values turns out to hold effects without breaking the language

I wonder if you're hand-waving a bit here. To me "encapsulated values" describes Identity or Maybe, but really doesn't work (IMO) for e.g. State or IO where bind is composition.

<comment><USER3> I would use the term "wrapped-up" where you've used "encapsulated", and in fact I specifically avoided talking about wrappers for this exact reason :)

Maybe my terminology could have been better, but I meant "encapsulated" in analogy to OOP, which advocates "encapsulating" all data via methods. The OOP definition of encapsulation includes using getters/setters, which is like having "wrapped-up" properties, but the idea is that we can go beyond this to calculate the data in arbitrary ways without our clients having to know about the implementation. That's what I was trying to get at here; for example, the implementation of IO involves horrible imperative yukiness, but we (the client) don't need to know that: we just use the interface, and if our functions ever get called, they will be given an appropriate argument.

</comment></comment></comment></comment><comment><USER5> In dynamic languages I don't see the need to create a Monad interface. I'd create classes/objects and simply use instances of those objects. As long as they conform to the desired interface, and you can check their relationships, then it should work; and use monkey-patching if necessary, embracing the dynamic nature of the language. I don't think it is possible to fully translate Haskell examples without the types, but you can adapt the ideas to other languages and get very similar functionality, in JavaScript for example:

        class Maybe {
          constructor(value) {
            if (value != null) {
              return new Just(value)
            }
            return new Nothing()
          }
          bind(f) {
            if (this instanceof Just) {
              return f(this.value)
            }
            return new Nothing()
          }
        }

        class Just extends Maybe {
          constructor(value) {
            this.value = value
          }
          toString() {
            return `<Just ${this.value}>`
          }
        }

        class Nothing extends Maybe {
          constructor() {
            this.value = null
          }
          toString() {
            return '<Nothing>'
          }
        }

        var result = Maybe(2).bind(x => {
          return Maybe(3).bind(y => {
            return Maybe(x + y)
          })
        })

        console.log(result.toString()) // <Just 5>

</comment><comment><USER6> Monads have so little pretension these days, you'd think they were the salt of the earth. Working classes, for working people.

<comment><USER3> Monads were pretentious in the '90s. The pretention switched over to Arrows in the '00s and to Algebraic Effects in the '10s ;)

<comment><USER6> Yeah, Arrows is my "next thing".

<comment><USER7> You may not want to bother. Their luster has faded as it has been determined they were a particularly complicated way of representing Applicative + Category: [http://just-bottom.blogspot.de/2010/04/programming-with- effe...](http://just-bottom.blogspot.de/2010/04/programming-with-effects- story-so-far.html) In theory there's nothing necessarily wrong with them but I think the consensus is that in practice you're better off understanding Applicative (very simple) and Category (also very simple), and then freely combining those however you need to accomplish things, rather than trying to use Arrow (surprisingly complicated).

By contrast, both Applicative and Category as very, very useful.

</comment></comment></comment></comment><comment><USER8> Total nitpick, but it annoys me when people implement something in Python but use ancient syntax.

      return '<M a: %s>' % self.a

Should be:

      return '<M a: {}>'.format(self.a)

And:

      class M(object):

Should be:

      class M:

etc.

<comment><USER9> I can see why you might want the second change (discarding superfluous information), but string formatting looks better to me in the first case: it's more terse, and embeds type information in the format string using a well known and understood convention.

Why do you prefer the explicit method call over an operator?

<comment><USER8> It's arguable, but operator overloading should only be used (if at all) when there is conceptual symmetry between the standard and overloaded usage (eg, adding two datetime objects with '+').

I can't think of any way that taking the modulo of two strings logically results in interpolation. If anything, it should do something like return the original string with all instances of the argument _removed_. It's just simpler to not support it at all and use the standard .format() method.

There's also the fact that it's deprecated, of course. :)

</comment></comment></comment><comment><USER10> What is the point of implementing monads in Python? I thought the point of monads was that they provide a mechanism for introducing side effects gracefully into a pure language (like, say, Haskell) while still allowing for type safety, per correspondences between category theory and type theory. Python is not strictly typed and makes side effects pretty easy, if I recall from the last time I wrote Python.

Seriously, what is this constant obsession with monads that has infected the programmers?

Why not be obsessed with, say, functors? I can then make statements like, "A functor is a wrapper. Anyone who tells you otherwise is being obtuse" and be just as correct, and sound just as smart.

 _wanders off grumbling to himself..._

<comment><USER11> > I thought the point of monads was that they provide a mechanism for > introducing side effects gracefully into a pure language

That's roughly a description of the IO monad, which is a specific monad. The IO monad is really a degenerate case, and most monads ( List, Cont, Maybe, Writer, State, ... ) have nothing to do with effects.

Half the problem of talking about monads is that in their full generality they're really just a description of a trivial algebraic structure that doesn't really impart much intuition. Monads just get a lot of press because they're one of the simplest examples of a structure that can't be compressed easily in terms of common experience. There's nothing I can point to in our our everyday experience and say "monad" is like this.

</comment></comment><comment><USER12> This article can confuse people even more.

This is what monad is (read: _interface_ with two functions):

      class Monad m where
        (>>=)  :: m a → (a → m b) → m b
        return :: a → m a

Read: function >>= of arguments M[a] and (fun from a to M[b]) that returns M[b]. You can probably write it somehow in MyPy annotations.

(It's actually different in haskell, doesn't matter)

The author however just implemented _one instance_ of Monad: Identity (the most trivial). And called it a Monad. And then semi-checked laws on one value.

<comment><USER13> Do haskell people realize that using haskell describe monads isn't actually helpful?

<comment><USER14> Well you could explain them in terms of category theory as an endofunctor T: C -> C, together with two natural transformations eta : 1 -> T and mu : T^2 -> T, that satisfy a number of axioms. The Haskell definition encodes a special case, where the underlying "category" is "Hask", whose objects are Haskell types and morphisms are Haskell terms. Of course this is strictly speaking not a category, but it is close enough.

In mathematics monads usually arise as adjunctions between two functors, for example beginning with a set of elements, you can consider the free monoid generated by it and forget the group structure, this gives you a much larger set. If you did this operation on a set of characters, you would get the set of all strings of those characters, eta would in this case be the operation that given a character in the character set gives you the corresponding string of length one and mu would concatenate two strings.

<comment><USER15> Unfortunately, you've taken it two steps in the opposite direction from helpful. The point is that when your audience is neither haskellers nor mathematicians (I.e. the vast majority of programmers on Earth) repeatedly explaining monads in Haskell and/or mathematics is not helpful.

Imagine if you wanted to learn about monads, but every article went "Monads are a simple and powerful idea that, interestingly enough, can be very, very well expressed in Latin. Therefore, I will switch to Latin for the remainder of this article. Oh... You haven't studied Latin? You really should! It's really very useful. Moving on... Cogitus sin extricatus..."

If you want your audience to understand, you need to explain it in C.

<comment><USER11> C is probably the worst language to implement monads in because the type systems really lacks polymorphism, higher order functions and any sort of type-class overloading to clean up the syntax. I mean you could hypothetically pass around a record full of void function pointers to get around all this, but it would be so ugly and unintuitive that it would be silly to try and explain monads this way.

<comment><USER16> Actually, you can do a bit more than that if you specialize. It'll still be ugly, but it might help people grasp what's going on.

<comment><USER15> I think you have the same idea I do. In a statically compiled language, all of the high order polymorphism eventually compiles down to actual, concrete code that should be expressible in hand-specialized C structs and functions performing a single, specific task. Haskell makes that specialization process incredibly convenient and C makes it incredibly inconvenient. But, the point is not to ship a bunch of production code quickly. The point is to provide a low-abstraction example to demonstrate concretely what the compiler is doing for you without prefacing the example with "Assuming of course that you have already studied Haskell..."

<comment><USER11> You'd end up building a small functional runtime. That's a fun project to understand compilers better. But given that Haskell types are erased at runtime the very thing that makes monads monads wouldn't even be around anymore. All the values would be represented uniformly by some *StgClosure struct and the whole program would just be a mess of casts and projections into these values.

<comment><USER15> So, we're talking about Haskell passing around void pointers and later doing cross-your-fingers typecasts on them? That doesn't sound very much like the Haskell I keep hearing about. I was expecting something more like an ungodly stack of C++ templates eventually building up a return type containing a record of all side delayed effects of the function. That C++ template could then be manually flattened to a C struct. It would be a gross amount of manual labor. But, it would also be typesafe in plain C.

<comment><USER16> There is some broken reasoning here.

There is a translation from any typed language into an untyped language. Writing code in that untyped language is not going to be type safe, while the code _generated_ (correctly) in that untyped language _from_ the typed language is still guaranteed to be correct.

It is entirely possible that the only way to get anything safe out of some Haskell code is to rely on checks the Haskell compiler gives you at compile time, which the C compiler _cannot give you_.

That said, people often underestimate the kinds of guarantees you can bang out of a C compiler, at the cost of a bit of verbosity.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> The following may help some fellow Lisp-heads understand some aspects of monads:

[http://www.kylheku.com/cgit/lisp- snippets/tree/monads.lisp](http://www.kylheku.com/cgit/lisp- snippets/tree/monads.lisp)

Monads are developed starting with CLOS, then wrapping macros around them for doing monadic comprehensions. Finally, a monad-defining macro is introduced which generates the class and methods from a succinct syntax, and is used to write several monads, including a state transformer monad.

</comment><comment><USER18> Is it me or the title is spelled wrongly? Shouldn't it be "pretention"?

<comment><USER19> According to Wiktionary, you are using an older form of "pretension."

[http://en.wiktionary.org/wiki/pretention](http://en.wiktionary.org/wiki/pretention)</comment></comment>


A Trip to Tolstoy Farm - <AUTHOR> https://longreads.com/2018/09/12/a-trip-to-tolstoy-farm/ <comment><USER2> Tolstoy Farm's produce is a fixture at Spokane's farmer's markets. Their lettuce and kohlrabi have been on our table for years and I never knew a thing about them. Unlike the San Diego area's Yellow Deli, they aren't quite evangelizing their way of life, but they were always soft spoken and kind, if occasionally arbitrary at math. Its neat learning local history on Hacker News.

</comment><comment><USER3> Interesting piece. The role Tolstoy played in Ghandi's non-violence was new to me, for one.

As for the Tolstoy farm: I feel there should be more places like this, but not so isolated or secterian. Something to offer people who are long-term unemployed or otherwise might need it.

<comment><USER4> s/Ghandi/Gandhi :)

<comment><USER3> Tx, I should really know! :$</comment></comment></comment>


Show HN: Pay €1000 to contact the super rich - <AUTHOR> https://a-rtefact.com <comment><USER2> Just want to make sure I'm understanding this correctly. A user subscribes to the service by 'renting' a contact form for €10 per year.

Messages to that contact form are forwarded to an email address that the user provides; the email address is completely private and never disclosed. Then for someone to send a message to the user via the contact form, they must pay a fee set by the user which has a minimum requirement of €1000.

This is where I'm confused - on the landing page it says that the user doesn't get paid the fee. Does this €1000 fee go to the service provider (a-retfact.com)? If the person's time is so valuable (as marketed on the site), I'm confused as to why the fee wouldn't be going to them instead of the contact form 'host'. Seems like a steep price to pay for a rudimentary level of obscurity that could be set up easily on your own.. or am I missing something here?

<comment><USER3> Yeah looks like there is not much value being added here. Unless the money is needed to fund promotion i.e. connect with rich and famous people and find suckers to pay 1000€ to send them an IM.

<comment><USER4> On the other hand, the super famous receive a lot of mail I suppose. Think of it as a spam filter - you only get the really searious stuff.

</comment></comment></comment><comment><USER5> For €1000 you could at least fix the XSS vulnerabilities on your site...

</comment><comment><USER6> Awful idea. Bleh...</comment>


Timing attacks and usernames (2012) - <AUTHOR> https://www.brendanlong.com/timing-attacks-and-usernames.html <comment><USER2> As the author mentions, this solution doesn't create identical distributions between the found case and the not-found case.

One other concern is that a db hit and miss could take very different amount of times (e.g., L1 hit vs miss that travels to disk).

* Don't waste server time hashing a password if you already know the user doesn't exist.

doesn't seem like too big of a concern, since you're spending the time anyway, it's just increasing server load marginally.

To solve the first problem, how about running two queries in parallel against the db, one for a fixed username and one for the given username? However, depending on the database, now you may run into caching issues with the fixed username, speeding up that query. Querying for a random username at the beginning might also push that row into the cache.

Maybe keep a large, randomized linkedlist of usernames on-disk (initialized on server startup), read out the next link, and use that as parallel username?

For these ideas I believe you would need to enforce a max-password-length and take up that many steps to check equality for all passwords.

</comment><comment><USER3> I never understood how these side-channel attacks can possibly succeed. So many other factors can dominate checking a single character in RAM. Seriously? How would that even work!

<comment><USER4> Remember that many services are running in a cloud computing environment. Attackers can spin up machines right next to those that they are attacking and bypass much of the network related variables.

Timing attacks aren't as simple as often presented. Writers often give a set time for checking each character and ignore all other operations in order to make the issue easy to understand, but most people use this to write off the attack altogether. Surely it can't be that simple.

It isn't trivial to take advantage of timing attacks remotely, but researchers have shown that they are definitely exploitable. [1][2]

[1] [https://crypto.stanford.edu/~dabo/papers/ssl- timing.pdf](https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf) [2] [https://www.blackhat.com/docs/us-15/materials/us-15-Morgan-W...](https://www.blackhat.com/docs/us-15/materials/us-15-Morgan- Web-Timing-Attacks-Made-Practical-wp.pdf)

<comment><USER5> > Attackers can spin up machines right next to those that they are attacking > and bypass much of the network related variables.

Can they? Do cloud providers typically short circuit routes within their public address space? At least in AWS, this is not the case unless e.g. vpc peering is used.

On second thought, even if the attacker egresses via their internet gateway, the next hop will be pretty close to their victim.

</comment></comment></comment><comment><USER6> For passwords, I get it. But seriously, to see if an email or username exists, just try and sign up with it...

"This email address is already in use."

</comment><comment><USER7> Typical network jitter is in the range of +/\- 10ms over the Internet, optimistically. So the hash computation needs to be well over 10ms to be noticeable, or you need so many observations on each username that something emerges statistically.

Both seem unlikely. Am I missing something?

<comment><USER8> By repeating the query lots of times you can eliminate both the jitter and the sleep.

<comment><USER7> This was my thought as well, and what I was referring to re: "so many observations on each username" in the parent.

The reason this seems unlikely to me is mainly rate limits and password lockouts. Plus you're adding a multiple on # of requests for each username you want to try. Say your dictionary has 10,000 usernames (very small IMO). That turns into 10,000,000 requests if you need 1,000 observations on each to control for jitter.

Not impossible to find this in the wild, I suppose, but pretty trivial to prevent at any layer.</comment></comment></comment>


Vitamania: The sense and nonsense of vitamins with Dr Derek Muller - <AUTHOR> https://www.vitamaniathemovie.com/ <comment><AUTHOR> Apparently the film can be seen on the website, or with a Curiosity Stream subscription or one week free trial, SBS on demand in Australia, and ARTE in France and Germany soon</comment>


Salvia Divinorum and Brain Damage - Ronnie Day Warns - <AUTHOR> http://ronnieday.com/2012/02/salvia-divinorum-and-brain-damage/

<comment><USER2> TLDR: fool takes a mega dose of salvia, thinks it's dangerous and causes "brain damage". No, you just took many orders of magnitude too much. Stop spreading propaganda.

>Then, one night, I ended up taking several hundred doses at once… I was drunk, and the part of me that hates myself took control...

And from the comments:

>As for my claim at "several hundred doses", I was quite involved in the Salvia Divinorum community during my use, and obtained some pure Salvinorin A crystal from an organic chemist.

Perhaps the title should be "Alcohol and Brain Damage", or "Alcohol and Self Control"...oh wait, we already knew about that problem, didn't we? Ridiculous how he thinks salvia's to blame for that one.

<comment><AUTHOR> Mega doses of many drugs do not cause life destroying brain damage. You can go into a month long alcoholic, pot or even cocaine binge and wake up fine a week later. There is clearly something different, and the widespread impression that some newer drugs like Salvia and ecstasy are safe is dangerous. These drugs really can fuck your mind - that's the warning.

<comment><USER2> Mega doses of alcohol will just kill you where you stand. Death from alcohol poisoning is pretty mundane.

I don't think people realize how much salvia he took. Anyone who would need this kind of warning would have no ability to get _pure salvinorin A_. That's _many_ orders of magnitude stronger than any kind of extract you could manage to get.

<http://www.sagewisdom.org/caution.html>

<comment><AUTHOR> If you read through the comments you will find many examples of lower dosages. Sure it's not scientific, however calling it "propoganda" is ignorant. As if this poor guys is part of a government conspiracy - he's pouring his heart out, not part of a propaganda conspiracy.</comment></comment></comment></comment>


Why Jack Dorsey is ready to save Twitter - <AUTHOR> http://recode.net/2015/10/02/why-jack-dorsey-is-ready-to-save-twitter/ <comment><USER2> People like Swisher and Sacca are trying cast Dorsey has Jobs 2.0 and they are dead wrong. Jobs was a extreme outlier and there is no pattern matching on that.

I hope they realize that Twitter is a software company. There is very little cost to making changes versus the changes A hardware or hardware/software company would have have to do.

<comment><USER3> Has anyone actually said that?

Investors like founder CEOs. If you listen to his story, Jack has been passionate about coordinating communication for a long time. Passion is a good thing for a company. Simple as that.

meta: This is one of the worst discussions I've ever seen on HN.

</comment></comment><comment><USER4> There's a 9 letter problem facing Twitter, even beyond monetizing revenue.

Instagram.

EDIT: you can downvote me, but have a look at Google Trends [1]

[1] [https://www.google.com/trends/explore#q=twitter%2C%20instagr...](https://www.google.com/trends/explore#q=twitter%2C%20instagram&cmpt=q&tz=Etc%2FGMT%2B5)

<comment><USER5> Me and a lot of people my age hate taking pointless pictures, so Twitter has a secure market there (so long as we are using social media).

<comment><USER6> Yeah but bunch of Twitter TG wants to take pic on Instagram

</comment></comment></comment><comment><USER7> Only 3rd party developers will save Twitter.

</comment><comment><USER8> Has the media has decided for the board? They really must want their Jobs 2.0 story.

</comment><comment><USER9> > _Dorsey supposedly got back to work later at night, but people didn't know > that. So at Square, Dorsey made a point of arriving early and staying late, > especially when his employees were grinding away into the evening._

If only there were some way to give a reliable impression of _everyone_ going home at reasonable hours.

Such as: having reasonable working hours and enforcing them.

</comment><comment><USER10> here is the actual speech in video form. [http://t.co/9s6TZNOsJw](http://t.co/9s6TZNOsJw)

<comment><USER11> I've seen a lot of speeches from Executives, Presidents, Generals. Not really sure this one is that great. Not that it's bad and it's generally well put together, but nothing particularly amazing.

The fact that this is a high water mark for high-tech executive presentations is pretty embarrassing.

</comment></comment><comment><USER12> He's a hack. Nothing really can be done with Twitter. It's effectively an IRC client. Should never have been a big public company.

<comment><USER13> Twitter is a one-to-many platform. It's nothing like IRC as most people use it. If you want to make a comparison it should be to a mailing list.

<comment><USER14> It's Slack, just as a public forum and a lower barrier entry to use.

<comment><USER15> You just described IRC.

<comment><USER14> IRC is nowhere as pleasant and easy to use as Slack, hence its takeoff.

</comment></comment></comment></comment></comment><comment><USER16> Fuck you Jack Dorsey, I'll take the Bay Bridge over your cutesy picture- postcard tourist-trap any day of the week. I mean, have you even visited its Wikipedia page? Here: [https://en.wikipedia.org/wiki/San_Francisco%E2%80%93Oakland_...](https://en.wikipedia.org/wiki/San_Francisco%E2%80%93Oakland_Bay_Bridge). The Bay Bridge has three segments, each with very different designs and constraints. It bridges waters twice as deep, and is _five_ times as long as its contemporary. It transformed the economy of the bay area and played a key but unanticipated part in San Francisco's economic ascendancy over Oakland. It has an _island_ in the middle of it. It's a damn marvel. You just need to be, like, a real engineer to appreciate its inner beauty because your eyes aren't wide-angle enough to take it all in at a glance. So, Steve Jobs wannabe, stick to your pixels. Pedestrian? You don't know what you're talking about.

<comment><USER17> > Fuck you Jack Dorsey > So, Steve Jobs wannabe, stick to your pixels. You > don't know what you're talking about.

This attitude turned an eloquent message about how great the Bay Bridge is into a negative downvote-worthy comment. It doesn't add anything to the message.

</comment></comment><comment><USER18> That massive image confused me for a bit. Once I figured out I should scroll down I was annoyed enough to hit the back button.</comment>


California approves wide power outages to prevent wildfires - <AUTHOR> https://www.nbcnews.com/news/us-news/california-approves-wide-power-outages-prevent-wildfires-n1012271 <comment><USER2> 1\. This is a great reason to invest in buried HVDC lines to replace existing high tension lines. Less need to turn them down when fire conditions are present, less likely to start a fire underground. [1] Costs are anywhere between $1.5 million-$5 million per mile.

2\. This is a great reason to find incentives and institute mandates for more rooftop solar and distributed energy storage (PowerWalls and the like), instead of generators or battery storage alone for at-risk electrical consumers. This would also help California reach its renewables mandates and enables a more resilient electrical grid.

3\. Bury distribution lines as well in fire prone areas when it's efficient to do so [2].

[1] [http://www.briantilton.com/NorthernPass/EastonMeeting060715/...](http://www.briantilton.com/NorthernPass/EastonMeeting060715/agenda- Martland.pdf)

[2] [https://www.utilitydive.com/news/pge-to-bury-distribution- li...](https://www.utilitydive.com/news/pge-to-bury-distribution-lines- serving-fire-ravaged-paradise-california/555426/) (PG&E to bury distribution lines serving fire-ravaged Paradise, California)</comment>


Ask HN: API for Printers? - <AUTHOR>
 I'm trying to automate receiving shipping containers at our warehouse. Part of it requires printing ~3 documents so the warehouse team can inspect and label the products coming in.
I'd like to automate this process, so our non-technical warehouse staff doesn't have to mess around in our archaic ERP system just to get to the print documents.
Is there an API for printers (specifically Brother or Canon)? Or another way to trigger print jobs? <comment><USER2> Printers with IP address (wifi card, network port, network card) these days support the [https://en.wikipedia.org/wiki/Internet_Printing_Protocol](https://en.wikipedia.org/wiki/Internet_Printing_Protocol)

<comment><AUTHOR> Would that allow me to bypass the print dialog on a browser?

I just want the user the hit print and it prints with preset settings. I'm assuming an API is what I'm looking for. I can't find any recent python libs that implement this protocol.

</comment></comment><comment><USER3> Which OS? Linux/Windows/OSX/Android? (The brand of the printer should not be important.)

Most programming languages have a library to create a PDF. Put it in a temporary secret location. And the OS have an API to print a file (if the proper program is installed).

<comment><AUTHOR> For an Ubuntu server. My specific use case is turning out to be:

1\. User hits button 2\. two printers (with different kinds of paper), print out two documents.

I want to hit an API to send the two documents to the printers.</comment></comment>