O(m log^2/3 n) !!! What a triumph.
HN user
flafla2
All opinions are my own.
One of my favorite ever papers and very ahead of its time. Thanks for the share :)
This is so awesome. There’s a lot to geek out about here, but I was personally enamored with the extra effort to make good renders/visualizations in software. Thanks for the read!
Agreed. Bugs happen, bug fixes don’t always happen (especially quickly)
That being said, we could all do with a bit more input sanitization, and I hope Cox learned their lesson here.
Cloudflare does a pretty good job of managing it, at the cost of some centralization.
It would be pretty cool if there was a way to DDOS-harden at the protocol layer. Not sure if that’s even possible though
Oh neat I’ve never heard of NativeAOT. I’ve only used Unity’s AOT compiler “Burst” for C# (I assume that is something different?).
Cool stuff.
edit: Actually I meant to say Unity’s IL2CPP, which transpiles IR to C++. Burst is a different tool with similar goals—it compiles IR straight down to native via LLVM.
Oh got it. So like c# but compiles to native a la Swift?
Superficially this language appears to be very similar to Swift. Beyond the syntax, it also has first class refcounting, C language binding, and no external runtime (compiles straight to binary).
I wonder, does Vala have a stable ABI, or native compatibility with other higher-level languages like C++ or ObjC? These are other difficult challenges which Swift attempts to tackle (and depending on who you ask, with varying levels of success).
In any case this is an interesting language. Thanks for sharing
I agree with the sentiment but in practice I’ve found that most C++ STL exceptions throw in a “fatal error” type of scenario like a bad allocation and generally not an “expected error”. For example, basic_ifstream::open() sets a fail bit on error, and doesn’t throw an exception.
This is in contrast to python or Swift for example, their standard libraries are more “throw-prone”. Building off the previous example Swift’s String.init(contentsOf:encoding:) throws on error on failure.
So in practice, IMO it is usually safe to disable exceptions in C++. Though, I have run into tricky ABI breaks when you link multiple libraries in a chain of exceptions->noexcept->exceptions and so on! You’re of course at the mercy of nonstandard behavior so buyer-beware. I definitely wouldn’t advocate for turning them off -just- for a binary size reduction.
Indeed, it’s more accurate to say that C was designed around common asm calling conventions of its day, than the other way around.
Matlab is awesome. I had to learn it for a class in Computational Photography back in school. The matrix-centric language design is an interesting change from traditional languages and the amazing linear solvers available give you a shocking amount of power sometimes. For example, the language has really good SIMD/parallelism support out of the box, because you are steered towards making all of your variables into vectors and performing batch processing. Backslash is also an incredibly powerful tool in the right hands, and lends itself to some beautiful oneliners (it’s sort of like a shell language in that way).
Same. I’m honestly kind of stunned
Very happy that Aras is fighting the good fight, doing some great OSS work after his departure from Unity. The speed up numbers are quite impressive!
I remember when I was first getting into shader programming 10+ years ago, I asked a question on the Unity forums and Aras was one of the first to respond. Even then he was a titanic figure behind Unity’s graphics stack. I never forgot how kind he was to help a kid like me out, I’m sure he was quite busy!
Complete yet succinct explanation — bravo and i might steal this way of explaining it!
this type of AI is not getting us any closer to that.
That is not obvious at all.
That last example is such a mic drop. I can’t tell if I’m impressed beyond belief or appalled.
Wow, great work!
Well, technically you could have realized the ambiguity in this case, and guessed a word like RAZED to clear it up.
This is going to sound a bit hyperbolic but I haven’t been truly impressed with any new features in Unity since the introduction of PBR and dynamic indirect lighting in Unity 5.0. If your game doesn’t require cutting-edge technology then you would be hard-pressed to find a significant difference between the latest version and say version 5.4. If your game does require excellent optimization, rendering tech, etc, then Unreal is simply the better option.
I’m so excited!
What a treat to have this kind of event on Christmas. Though, my heart goes out to the hard working engineers/technicians/astronauts at NASA who are slaving over the holidays.
Agreed with all of this, well put. I’d like to add though that we don’t do math just because we anticipate there will be some practical utility in a different field down the line. Mathematics isn’t merely a prerequisite for engineering. Does it not suffice that we study math for the sake of it?
The Mersenne primes for example are a delightful little mathematical object. IMO they are immediately curious and interesting. I am very grateful that we continue to make progress in understanding them.
Down for me too.
I’m a bit concerned that they have to compete against Microsoft/Github and their engineering/marketing/sales might. In your view why do you think they will be able to coexist long term?
I’m glad you brought this up and I totally agree. Indeed, in a “learning language,” the basic things should be easy and approachable for beginners, but the hard things should be as easy as they can be as well. Or at the very least, hard things should be possible.
The best learning language that I’ve come across is Python. Nothing is harder than it needs to be at the beginner/intermediate level. And it scales all the way up to real work in the industry. Plus, the author of the OP would be happy to know that semicolons are not an issue :)
The enormous effort to bring kids/young adults into CS is really awesome and admirable. However I fundamentally disagree with the philosophy of this paper. IMO, we should try to take the kid gloves off of our programming education as soon as possible.
I learned how to code when I was an adolescent (10-12). I wasn’t personally interested in the act of programming itself, but I was fascinated by the possibilities of what I could create with code. My first coding venture was in LEGO mindstorms block-based code, and this was great to introduce fundamental concepts like loops and boolean logic. But I didn’t care about any of that until much later, I just wanted to build a LEGO gun so I could shoot pegs at my brother (hah!).
Soon enough my interests wandered (as would any kid’s), and I wanted to make a mod for Minecraft. At the time this involved decompiling the java source code, modifying the java code with the changes, and recompiling it back to bytecode. That’s right, I installed eclipse at the age of 12. I shudder at the memory.
But you know what? I didn’t care, because I was passionate about what I wanted to create. There were tutorials and tools online to help me with the mundane bits. The OP article opens by claiming that their language is better for learning because it doesn’t have gotcha’s like semicolons… but that was absurdly easy to figure out (just pattern match with the other code you see!). All it took was a drive to figure it all out. And in the end my mod (which is still available online! see [1]) shipped to tens of thousands of players. Until recently it was the most successful project I was ever involved with.
Now, I don’t mean to suggest that every kid should have to deal with arcane build systems and linker hell (that would be sadistic). But my point is that kids are willing to put up with a whole lot of BS in order to create.
I’ve taught summer coding and 3D art classes to adolescents myself, and I’ve verified this personally:
- I’ve seen a 10 year old fiddle with obscure configuration options in the Unity game engine that would confuse a trained artist, just so they could see their stuffed animal in VR.
- I’ve seen a 12 year old download Autodesk Inventor fusion on his home PC so that he can make a 3D model of a lightsaber.
- I’ve had a kid stay hours after class so they can fiddle with a C# script that I provided to them for a game dev assignment — just so they can execute on their vision.
I haven’t seen this kind of success with block based programming. Because the whole language is on rails, you tend to get half-assed results that follow whatever tutorial I supply by the letter. Results are bounded by the bespoke language features that are provided (eg sprites) so kids may not feel that they can achieve exactly what they want. It completely kills the creative freedom that a kid craves.
Block based programming absolutely has its place, but it does not scale beyond the absolute basics. Kids don’t want to be patronized with a training wheel language and we should give them the opportunity to push through the tricky parts of a “big boy/girl” language if they are inclined.
[1] https://www.minecraftforum.net/forums/mapping-and-modding-ja...
Concepts will help a lot with this. I think a large reason that template errors are/were hard to parse is that SFINAE is fundamentally hard to read for humans (but is relatively simple for the compiler to figure out)
I share your optimism but I think it it is unrealistic to unquestionably assume that SpaceX will continue to succeed. The very nature of the problems that they are trying to solve is such that failure is always a possibility.
I don’t say this as a slight to SpaceX… on the contrary the risk is what makes them so exciting!
Funny, I just found out about this today.
Infuriatingly, this behavior is _not_ preserved for the set type.
it was a bug.
Context: This is an front-page article on the New York Times about Karmarkar's polynomial time Linear Programming algorithm [1].
I found it amusing. Imagine an article about theoretical computer science making it to the front page of NYT today!
Aside: I learned about this from the first lecture in Boyd's fantastic course on Convex Optimization, which is available for free online [2]. Very excited for this, he's a great lecturer :)
[1] https://en.wikipedia.org/wiki/Karmarkar%27s_algorithm [2] https://learning.edx.org/course/course-v1:StanfordOnline+SOE...