HNHacker News
TopNewBestAskShowJobs

rwbt

1,004 karma · joined November 6, 2012

submissionscomments
rwbt··on Common libraries and data structures for C
Thanks for sharing! This looks like a very well designed container library.
rwbt··on The Catherine Project: A new experiment in liberal education
Never heard of SJC. Reading about it and their curriculum makes me happy and also jealous ;)
rwbt··on Ask HN: Tech-savvy parents, what are the gadget rules for your kids?
Ethernet only sounds like a good idea, even for adults ;)
rwbt··on A cautionary tale from the streets of San Francisco
Very well said. This is really the price of progress and technology. Ironically, we still fool ourselves thinking that the way out of this mess is even more technology and progress.
rwbt··on Australia’s new mass surveillance mandate
I'm curious if this affects FastMail users in US since they're based out of Australia.
rwbt··on Product placements may soon be added to classic films
People don't read as much anymore, so I think books are safe for now.
rwbt··on FCC Chairman Ajit Pai will step down on January 20
Automakers are hoarding the spectrum citing some pie in the sky safety stuff. Not a single car was ever shipped with that tech. I'd rather have my WiFi router running reliably rather than some promise ware hoarding it.
rwbt··on Apple and Facebook
I was going to say the same. I want to like Stratechery and Ben's writing but most of the time it's a word salad that leads to nowhere.
rwbt··on Ask HN: Great fiction books that have had a positive impact on your life?
+1. I was gonna write Ishmael too. Definitely one of the best books I've ever read.
rwbt··on 18-year-old personal website, built with Frontpage and still updated
> If you want something to last, don't base it on something that won't last.

Sounds similar to the Lindy Effect.[0]

[0] - https://en.wikipedia.org/wiki/Lindy_effect

rwbt··on Libc++'s Implementation of std::string
That is clever. Using last byte as the flag byte also lets one cast the std::string memory address to a null terminated c-string without intermediate buffers (not that one should).
rwbt··on Show HN: libcodr7 – fundamental collections in the spirit of C
If I were starting a new project in C, I would definitely rely on a solid foundation library like APR[0] or CoreFoundation[1] without reimplementing a bunch of fundamental data structure algorithms by myself. Glib is another alternative, but too bloated in my view.

[0] - https://apr.apache.org [1] - https://github.com/opensource-apple/CF

rwbt··on Nim: Scripting Ease in a Compiled Language
I used it in production for a small yet fairly critical utility and it worked out very well.
rwbt··on How can List be faster than native arrays? (2018)
Only the libc implementation of std::deque allocates 4KiB blocks and lives upto it's performance and utility. The MSVC implementation is terrible (8 bytes) and even the GCC one isn't that efficient (512 bytes).

Even though boost has a customizable deque block size, it's performance is still way behind Clang's libc.

rwbt··on The Library Card Project: The Ease of Forming Anonymous Companies in the U.S.
Sure you don't need much 'info' to create a corporation. But if said corporation has any income/employees the reporting and maintenance requirements are far greater than maintaining a library card.
rwbt··on Building a Web-Based Motion Graphics Editor
> The UI of Adobe After Effects can be quite overwhelming to a new user.

I suppose so. When I was learning Mograph in school, After Effects was the most intuitive tool among many others. Combustion, Motion etc never quite managed to pull it off in balancing simplicity, ease of use and versatility.

AE aged very well IMHO and to this day is the weapon of choice of Mograph.

rwbt··on Benchmarks of Cache-Friendly Data Structures in C++
If I remember correctly, in MSVC implementation if sizeof(T) is greater than 8 bytes then each 'block' is just one element (also blocks aren't contiguous). So effectively, MSVC implementation is useless.

Boost does have a a deque container where you can specify the block size using type traits, but from my experience boost's deque wasn't such a good implementation performance wise.

But Clang's libc++ implementation is very good performance wise and even beat std::vector in some cases.

rwbt··on Benchmarks of Cache-Friendly Data Structures in C++
The std::deque is also another useful 'hybrid' container that performs close to std::vector or better in some cases when you need to 'grow' the container without reallocating memory so many times. But the only good cache friendly implementation seems to be in clang libc++ (memory is allocated in 4KiB blocks). MSVC's deque implementation is horrible (8 byte blocks) and GCC's is also not that great (512 byte blocks).
rwbt··on Fossil vs Git
I disagree. I would suggest you to atleast research it more before coming to such strong conclusions.
rwbt··on Fossil vs Git
Just giving my experience - I working in rendering graphics and use fossil for version control. Some of my repos are more than 100GiB in size and fossil has no problem with it. Fossil handles binary files adequately but the only catch is file size is limited to SQLite 'Blob' size limits (which is currently 2GiB). So if you have asset files larger than 2GiB, you'll have to split it into multiple files.
rwbt··on John C. Bogle Has Died
Truly a saint. His index funds and passive investing school of thought probably saved trillions of dollars and made investing in the markets accessible to millions of everyday citizens.

RIP.

rwbt··on A Guide for Adults Going to College
Interesting. Do you mind telling us what made you choose nursing over tech?
rwbt··on Comparing Pythagorean triples in C++, D, and Rust
Thanks for the tip. I too work in rendering and often wondered if pre-caching end() would make significant difference but figured its best left to the compiler.
rwbt··on Why should I have written ZeroMQ in C, not C++ (2012)
Yes, I'd need to check for end iterator in vector. But my point still stands - C++ does have some weird ergonomics.
rwbt··on Why should I have written ZeroMQ in C, not C++ (2012)
Sooner or later, C++ is going to get a borrow checker anyways. I guess it's all going to be ok? :)

I'm not entirely sold on string_view or span yet. But I wasn't sold on tuples either and I use them a lot now.

rwbt··on Why should I have written ZeroMQ in C, not C++ (2012)
I agree. These days I can't even imagine programming in C++ without using STL. It still has some weird ergonomics at some places though. For example - instead of a simple vector.contains(something) we have to write this

  std::vector<T> x_Vec;
  if (!(x_Vec.find(another_x) == std::vector<T>::npos) {
      //some code
   }
Also the ugly std::get<N> syntax..

  auto x = std::get<0>(myTuple);
Why not -

  auto x  = myTuple.0
rwbt··on Why should I have written ZeroMQ in C, not C++ (2012)
I use C++ everyday and I would describe my usage as mostly "C with templates and destructors." I also tend to avoid OOP paradigms if possible.

All the modern C++11 and above features are great if you're using standard lib and algorithms. But I really don't want to implement copy/move semantics, iterators etc for my own classes. Modern C++ feels more python-esque with a lot of syntax sugar (which is great for expressiveness).

rwbt··on Audi e-tron first drive review: a solid electric SUV
I'm afraid that ship has sailed. Tesla changed the expectation of buyers that touchscreens are more 'luxurious' so the market follows. I prefer physical knobs too, but don't blame car makers for following market trends.
rwbt··on What Car Thieves Think of the Club (2010)
Yes, you're right. The highest spec engine in those cars is indeed the B16!
rwbt··on What Car Thieves Think of the Club (2010)
Those 90s Hondas are very easy to chop up into parts and sell them at a premium.

Other enthusiast models don't suffer from similar theft rates.

← PreviousPage 5 of 9Next →