HN user

ivars

68 karma

Software developer for 20+ years.

Web applications, Computer graphics, Systems programming.

Posts0
Comments37
View on HN
No posts found.

How did they managed to pull this off so quickly? Given how long WebGPU native is in development and still not finalized, you would think it will take SDL GPU API even longer because it supports more platforms.

1. Modern C++ is obviously a huge topic but if I had to describe it in one sentence I'd go for "use smart pointers and containers instead of raw pointers and raw arrays" or "c++ is more than c with classes". If you are completely new to C++ I would recommend "Professional C++" 4th or 5th edition by Marc Gregoire. After that read everything by Scott Meyers and Bjarne Stroustrup you can get (released after 2011).

2. You could use Bazel. Also look into CMake, it's an industry standard, so to speak, and will let you generate build files for almost any kind of build system including Makefiles.

3. I don't use any but some people have success with vcpkg.

4. Clangd is a good choice.

5. A quick one that works is VSCode + clangd and CMake extensions. Clangd will let you format, lint and do some basic static code analysis. Installing clangd extension will install clangd automatically. Or, if you are on Windows, "Visual Studio: Community edition" is even easier to start with right away.

This is more of a humor (obviously), but

* Blockchain - this is usually the first that comes to mind.

* Rust - "hmm, where would I use it now?" is the question you'll ask if you just learned Rust but knew C++ already.

* Vulkan / Direct3d12 - yes, you now have the ability to recreate your own driver from scratch, but who has time for that? Even Microsoft Flight Simulator uses Direct3d 11. GPU ray-tracing will force you to use one of those though anyway.

* WebAssembly - at least in it's current state.

OpenGL Superbible 5 years ago

OpenGL 4.5 has named objects which makes working with OpenGL feel less archaic. Also 3.3 version doesn't have tessellation shaders. But for some reson OpenGL 3.3 is still being called "a modern OpenGL".

I'm not a doctor (obviously) but, as I understand, the solution to OCD is not to give in to your compulsions. Suffer through your discomfort and anxiety without performing any actions to control your discomfort and anxiety. Treat your compulsions as your enemy rather than your unpleasant internal states.

Probably the same way you fight any addiction - you either starve it out or replace it with something that doesn't hurt your performance.

Do you listen to music with lyrics? Replacing it with ambient music with no words and no distinctive melody could be one solution.

Or, in my opinion, a better solution would be to dig deeper and to find out why silence causes you anxiety and discomfort. For hundreds of thousands of years people have worked in complete silence. Are you mentally avoiding something?

I'm using both Linux and Windows, but what attracts me to Win10 is Direct3D 11 and graphics drivers. On Linux you either have to use OpenGL that feels ancient or Vulkan that is a bit too complex for average-sized projects. D3D11 is an excellent API that is both high-level enough to work with comfortably and modern enough to not feels like you are lagging behind. It's just pleasant to work with. Graphics driver support for Windows is excellent since it is driven by the demands of gaming industry.

Visual Studio IDE is an added bonus.

User mikekchar on the value of ideas:

My advice is to lower the value of ideas. A lot of time people think, "If only I had a good idea I would be successful". You will see other people saying things like, "Buy my good idea!". But really, good ideas are a dime a dozen. Good ideas, bad ideas... it actually doesn't make much difference. What makes the difference is execution and timing.

For things that take a long time, timing is essentially random. The world is chaotic. Had I known everyone and their dog would be locked down in their houses for months on end, I would have built something to cater to them. But of course, there is no way to know. I find it amusing that just before the pandemic there was a thread on HN talking about overvalued unicorns and Zoom was up near the top of the list. What would need to happen to make Zoom a household name, people asked?

To be successful, really what you need is execution and to have the patience to wait until what you are doing is relevant. Of course there is the fear that it will never be relevant. However, if you accept the thesis that the good idea is not valuable in itself, then you realise that it is not really valuable to pivot without a really good reason. A good idea that is never relevant is just as worthless as a bad idea that is never relevant. However, even a bad idea that is executed very well and ready when the opportunity arises can be successful.

I had a similar confidence boost when I developed a Vulkan graphics engine. People talk about this library or that framework being hard to learn and use, but when you have struggled through Vulkan and 3d engine quirks, some of them seem like a walk in a park now.

So to answer the original question, my epiphany is that something being "hard" is a relative thing and that "hardness" should never be a barrier that keeps me from reaching my goals.

1. Streaming, server-side media processing, graphics, networking and all things related. These are things that interest me and I'm sure there are my soulmates out there with similar interests.

2. I just recently started.

3. Hosted on Netlify, built with Hugo.

4. https://ivarsblog.com

Maybe I missed the forest for the trees, but it sounds like OP is almost discouraging people from contributing to their GitHub profiles?

If you are a well know or experienced dev with a long resume of working for closed-source companies, then, yes, you don't need a GitHub profile. For younger people or developers switching domains, GitHub contributions and personal projects might be the only way of showing their worth to future employers.