It’s also running on a microcontroller with a few hundred kb of memory so even win16 or macOS classic would be a bit heavy.
HN user
abelsson
Unnecessary though productivity outpacing demand as far as I've understood it.
In Marxism what they call "full communism" is envisioned to be the "final state of humanity" where productivity is described to be higher than the sum of needs and wants - everybody can help themselves to anything from the warehouses. Obviously very utopian, and I'm not sure there ever was any detailed analysis on how a society a would actually function in "full communism" - but I don't think the economics of The Culture would be that far off if you would describe it to someone of those views. Early Marxists were much a bit more practical, more focused on critiquing the practices of their contemporary societies than envisioning the details of their utopia.
Economic systems of the 1800s doesn't really make sense in a space based, post scarcity society - economics is after all, the allocation of scarce resources. But I would argue that the ultimate aim of the socialism as envisioned by Marx wasn't government control over the means of production (the "dictatorship of the proletariat") but rather "full communism" where the eventual aim was to make resource allocation unnecessary, which in a way, does hint at a post scarcity society. So I can see the connection to the original Marx. Less so with the so-far practical implementations of socialism.
Tesla is free to not sign a CBA, and union members are free to not serve Tesla. Swedish labor market is very free (as in unencumbered by laws and government intervention).
Of course not. Having the ability to add or modify root CAs in browsers doesn’t imply a requirement to sign every webpage yourself either.
That’s fine, assuming we pass laws mandating that signing keys can be controlled by end users. Otherwise we end up where no-one really owns their devices any more, every device would be merely temporarily rented.
As someone who's two new arrivals recently turned two; it's by far the hardest thing I've done. I envy those who have one at a time. Having a startup fail around me was a piece of cake. Singlehandedly building a house (not commissioning a house) was peanuts. Building and shipping products now used by the billions was far less stressful than keeping two little rascals alive.
But I'm managing and I'm sure you will too. Clichés exist for a reason: as it turns out; I wouldn't trade it for anything.
Rephrased, Spotify seems to think it has a /right/ to run its software on Apple platforms in an identical fashion to Apple's first-party software. Does that mean Apple has an obligation to provide an equivalent technical capacity for literally any software that runs on its devices?
Yes.
An app store? A payment provider? A cloud provider? A health data store? An update mechanism?
Yes, Yes, Yes, Yes and Yes.
To do otherwise, is to invite platform owners to be (potentially abusive) monopolists with a license to favor their own services instead of promoting and maintaining fair competition in markets on top of that platform. In western societies, since the last century, that has been behavior which has been regulated by law and courts.
Walking/Biking also allows me to instantly change my plans, even more so than driving does (try turning around instantly in a car). What do you mean "low large countries work"? The absolute size of a country is irrelevant (what New Yorker cares what malls there are in Kentucky?), what matters is population/service density. The US has a 50% larger population density than Sweden, so it should be able to support at least as dense cities and services. The difference not economic or technical, but cultural.
Having spent quite a bit of time in the US, I've noticed that getting somewhere there takes about the same amount time as home (which happens to be Sweden, hence me clicking the link). As an anecdotal example, some common times for me were about as follows: Going to work, 15 minutes. Grocery store, 5 minutes. Larger shopping mall, 30 minutes. The difference is that in the US that time is spent driving, while home it's walking/biking. So my control of my local 4-vector is essentially equivalent, just with a different space scaling factor applied.
True, many are indeed using ARM (in house designs are also more popular than you might think in deeply embedded SoCs), but a lot of companies would love to be able to throw out ARM due to licensing cost & hassle, or at least have a viable option in RISC-V to throw at ARM at the bargaining table.
There's gazillions of embedded processor cores in every device you own. Your SSD, network card, phone, motherboard, router, TV, modem, car, fridge, you name it all have multiple processor cores running some piece of firmware you never see. RISC-V has a pretty good value proposition for those: an open standard with no licensing costs with a rapidly maturing software ecosystem. To say that RISC-V will only succeed if you can attach a monitor to it only betrays a very narrow view of where processors are actually used.
For reference, gas contains about 33kWh of energy per gallon, and if we assume you pump 20 gallons in 5 minutes when you fill up your car you have an effective energy transfer rate of about 8 MW at your gas pump. Even if we give an electric vehicle a 3x efficiency ratio, we still need about 2.5 MW to be equivalent to the old petroleum infrastructure.
A while ago, I spent a fair amount of time evaluating JIT frameworks including DynASM. The one I ended up using is something called Xbyak (https://github.com/herumi/xbyak) which I think is a bit of a hidden gem. Unlike DynASM, it doesn't require a preprocessing pass, is better documented and IMHO easier to use.
So if you're in the market for a lightweight JIT engine and target C++/X86, I'd give Xbyak a whirl too and see which one you like better.
If you think the cost of the instructions to express copying is the main problem I'd call your mental model flawed. That is not the thing to worry about, when moving data the issued instructions matters very little.
No, the thing to worry about is the memory subsystem. How does the data interact with the caches? What DRAM access patterns do I have? How do I flow data as efficiently as possible?
German industry may indeed be in better shape, but that is inspite of German energy policies, not because of them. What you're really arguing for here is a poorer, less prosperous, Germany because of anti-nuclear-ideology. There's an opportunity cost of that trillion dollars, it could have been spent on health care, research, fighting climate change and thousands of hings other that actually improve people's lives instead. I mean, if you accept that - that's fine - there's no mandate that people must choose the most efficient solutions at all times. But the reality of technical merits doesn't change based on your ideology.
No, the correct answer is zero. The impact of Fukushima on someone living on the west cost of the US is negligible; as near to zero as makes no difference. There are many, many, many other things you don't worry about which has a much larger impact on your life: most dangerous of which is probably your diet and your commute to work.
The number of non-acute deaths from Chernobyl is highly uncertain and difficult to estimate, even 30 years later. The range of estimate seem to more reflect the author's opinion on nuclear power than scientific fact. WHO estimated 4000 additional cancer deaths from Chernobyl (out of a population of hundreds of millions), based on the LNT-model, which seems very conservative given that there doesn't seem to be much glaring extra cancers in areas with higher natural background radiation.
The problem is that Germany, with its focus on wind and solar, is paying twice as much as for electricity compared to France - also a country with higher density in the middle of Europe - while also emitting more carbon dioxide per capita (9.6 vs 6.1 tons per capita). The difference is that France made the right decision 30 years ago when they transitioned from oil and coal to nuclear power for power generation. Solar and Wind are a much more expensive way of accomplishing the same thing. Der Energiewende is both expensive and inefficient.
I'm not quite sure what you mean your first question, but I think heat pumps using air, ground or water as heat reservoirs would qualify. They are in common household use at least where I am located, and have a input-power-to-heat efficiency of up to 400% (the Carnot cycle imposes a limit of roughly 7-10x depending on which exact scenario you calculate)
Here's an example of one manufacturer and products: http://www.nibe.eu/Domestic-heatingcooling/Airwater-heat-pum...
Heating can be more than 100% efficient. Before you go "what, lol, no" - let me clarify. Obviously it can't be even 100% thermodynamically efficient, but a heat pump for example can generate 3-4 kW of heat from 1 kW of power. The rest of the energy comes from the environment obviously, but naively assuming that the 100% efficient power-into-heat is the best you can do is not true.
No, the plan is to wind down the foundation within 20 years of his and Melinda's deaths. See http://en.wikipedia.org/wiki/Bill_%26_Melinda_Gates_Foundati...
Location: Scandinavia, willing to relocate to English speaking countries. Full time, no remote unless you have something exceptionally interesting.
Stack: C, C++, Python, Assembly, JIT compilation, Optimization, Drivers, CPU architecture, Embedded, Linux. Prefer low level, but enjoy web and app work as subtasks of larger project.
Contact: hn username at gmail.
I drive change. I can design, implement and get a team working together to navigate the journey from idea to working, shipping product. I tend towards a hands on architect type of role. I'm looking for a company with minimal bureaucracy, with responsibility for technical solutions.
Hah, I was just about to post more or less exactly the same code. :)
It's funny, had the author tweaked the problem just slightly to try make C++ look good by saying that the program should output sorted words instead of lines, you could have deleted the entire Line nonsense. Had the problem been to output sorted, unique words, you could have made the rather elegant:
int main(int argc, const char* argv[])
{
using input = istream_iterator<string>;
using output = ostream_iterator<string>;
ifstream inputfile(argv[1]);
ofstream outputfile(argv[2]);
set<string> words{input(inputfile), input()};
copy(words.begin(), words.end(), output(outputfile, "\n"));
}
But then again, it's not exactly in C++'s favor as a scripting language that copying words is easy, while lines is hard.As an intermediate step, before starting with the SSE intrinsics I rewrote the code in a form that should have been reasonably suitable for an autovectorizer (an inner loop over a fixed number of elements - I imagine it probably looked fairly similar to your code), but my gcc with -ftree-vectorize didn't do much with it. I didn't really explore that path further though.
I actually did a version which did the reduction over minimum purely using SIMD and then a post step which reduced the SIMD minimums to a single scalar. It was somewhat tricky to get the index right, and in the end it turned out to not be faster (at least not for the little example of 32 objects, I imagine you would gain something on a more complex scene)
Anyway, it was a fun little exercise and it has sparked some interesting discussion. Thanks for posting the original.
No, it doesn't. I tried to make that point too, but perhaps it didn't come across very clearly. For these kind of tight inner loops a language only ever gets in the way, the difference is really only how difficult it is to get rid of the conveniences you don't want. (The much vaunted zero-cost of features you don't use in C++ lingo I guess)
I still think that a systems programming language need to offer escape hatches, whilst striving towards ease of use in the common case. C++ has plenty of hatches, at the cost of horrific complexity.
But suppose I'm willing to pay the cost of writing my code in 5 different code paths for different processors for that extra 2-4x of performance. Very few languages offer that possibility, and most of those who do only offer to call a C library. I'm the guy stuck writing the Intel math libraries of the world, and I want something more reasonable to do it in.
I'll grant you that - AVX is pretty uncommon. I originally wrote it with SSE2 (there's a working version in the next to last commit on the github repo), but rewrote it using AVX because.. well, I hadn't used it before.
But I wouldn't say writing media and signal processing inner loops using SIMD intrinsics is uncommon. The style of optimization I illustrate is pretty common, perhaps minus the AVX code path. Most widely used video/image processing, ray tracing and other compute bound libraries will probably be SIMD optimized in some fashion (probably with different code paths for different processors). You gain 1-8x performance, which is pretty significant. It's on the same order of magnitude speedup as threading your program.
I have yet to see anyone truly and systematically trusting automatic vectorization, but perhaps there are libs out there I've missed. Anyone know of some?
It feels like a very modern language overall, I particularly like the memory management ideas. It's refreshing to see something which tries to find a middle ground between error prone manual handling and unpredictable GC. Now someone just needs to write a good Rust IDE.
Linköping, Sweden - Software & HW engineers (Local, relocation offered)
Mediatek Sweden is developing a family of configurable baseband signal processors, with a full toolchain, simulator and RTL implementation. We're looking for Python, C++ and Verilog hackers. A definite plus if you think the X86/ARM duopoly is boring and would like to work on more interesting architectures. Also a plus if you're a hardware guy or gal and have shipped asics and know about power optimization flows.
The fridge is always stocked with beer (selected by our resident beer geeks), competitive salaries, free gym. Sane and flexible working hours, 6 weeks of vacation that we actually expect you to use.
Contact me (HN username at gmail) if you want to have a chat about how things are here.
I'm sorry, but I can't outsource the computation of real time ultrasound denoising to EC2. Nor can I do the work of my LTE radio modem on EC2. Clouds and scaling out on clusters are great answer to a certain set of problems, but far from a panacea.