HNHacker News
TopNewBestAskShowJobs

arximboldi

1,199 karma · joined December 1, 2014

https://sinusoid.es https://sinusoid.al
submissionscomments
arximboldi··on 'Google go home': the Berlin neighbourhood fighting off a tech giant
25 days of vacation is 5 weeks of vacation, 30 days is 6 (we only count work days.) And by free education I mean from 1 year until university. If you have kids that is a huge difference. Plus sickness, etc, which is expensive over there. Plus, my friends working in the US tell me it is normal to work 50/60 hours there, specially in the companies where you make the big bucks, but maybe you can really work less if you are assertive with your boss and colleagues...?

I still agree that it is financially better to live in the US if you work as senior at Google/Amazon/Facebook scale, because the difference becomes huge. I still prefer Berlin due to live-style issues (50/60 hour work weeks, car life, commutes, no clubbing, overall capitalistic mentality.)

arximboldi··on 'Google go home': the Berlin neighbourhood fighting off a tech giant
While I would be happy to have higher salaries here, they are not really comparable to the US. Here you have a social system (free education, public health insurance) and work way less (hardly 8 hours a day, 25-30 days vacation as normal, etc.). For European standards salaries here are actually rather decent. With the current rent situation, I hope though they rise to the standards of the more affluent German south.
arximboldi··on 'Google go home': the Berlin neighbourhood fighting off a tech giant
I live in the neighbourhood, very close to where the "campus" is being built. I understand that Google has a lot of symbolic value in the protests, but I don't think that it actually will have such an impact. Paul-linke-ufer is already full of startups and relatively affluent american hipsters flood the caffes in the hood. That is also ok, I guess, (like UFO361 says hahaha), people in the end can live wherever they want. But what is not ok is the cartel-like tactics that Berliner landlords use to rise rents. In Germany people tend to not own flats, but this means many buildings are owned by big companies with lots of pressure power when they want to do mass rent increases. They do really shady things like playing with the WBS (social housing) rules against the renters, like with these renters in Maybachufer: https://www.neues-deutschland.de/artikel/1086567.falsches-sp... The rents went up 17% last year in and this rate is increasing every year. This is really worrying and I hope the city becomes serious about it.
arximboldi··on Immutable.rs: immutable data structures for Rust
Thanks for mentioning Immer! I am studying Immutable-RS right now and it seems interesting. The code is much more straight-forward than Immer's thanks to Rust expresivity when it comes to sum types, etc. Sadly, on the other hand, some of the tricks that Immer implemented, in particular the ones that flattens leaf nodes, can not be implemented in safe Rust, and I my guess is that Immer is at the moment more efficient both in run time and space usage. I would love to see some benchmarks comparing both though!
arximboldi··on ‘Moderate’ drinking guidelines are too loose, study says
But mosto has too much sugar. I'd rather have a wine :)
arximboldi··on A meta-analysis of C++ projects
Not a great idea if you care about compile times.
arximboldi··on Putting the I back in IDE
Emacs user here. I have used lot's of IDE's in the past until I decided to take Emacs seriously. The problem with IDE's is that you have to learn one for each language. Working on multi-language projects becomes really annoying. With Emacs I can remain in the same place. If I spend a little bit configuring it I get most of the IDE features. I am always at home. Git is there too. Now I even check my email there, great for emailing about technical stuff. Muscle memory works until it is almost part of yourself.

A couple of things might take a bit more to configure (C++ smartness). But it is a free software program that has been around like 30 years. I am confident it is a tool I can invest in and it won't let me down. I can not say the same about proprietary IDE's and editors.

arximboldi··on Avoid Else, Return Early (2013)
Mmm, I disagree.

Influenced by functional programming, I prefer to use the style of: "keep all return statements at the same indentation level" in statement based languages. This way, it is easier to parse as an expression. For example:

  if (...) {
    let a = ...;
    return x(a);
  } else {
    return y;
  }
Can be easily mentally factored into the pseudo-expression:

  return ... ? x(...) : y;
It is easier to see what the side-effects (or ideally lack of) are. It also makes case analysis easier, and you don't hide the fact that you have 2^{indentation levels} number of possible states.

Early return while excusable for some very particular and idiosyncratic error handling examples (e.g. fortified C APIs that accept null pointers as no-ops) in general feels like "cheating", making the code look less complicated than it actually is (it "silently" multiplies the size of your state space without increasing indentation). But most importantly, it puts too much emphasis on control flow: I'd rather emphasize the underlying declarative intent, the state machines, and pre/post-conditions. This is is better achieved, in my opinion, by trying to delay returns, and to try to minimize the amount of code after a branching (this often means having unnecesary else branches, that on the other hand help with readability.) As shown before, this helps mentally factoring the code into reducible expressions and guessing state space and overall complexity.

I agree though that having one single-return is not good, cuz most of the time it forces one to use mutable variables that could otherwise be avoided.

arximboldi··on Inheritance Often Doesn't Make Sense
The real world is mutable in some sense, but our thinking, even in the most trivial exercises, works by detaching _objects_ them from their physical nature and building immutable _ideas_. Thinking is a struggle trying to find what is necessary in a contingent world, trying to find essence in a world of form. That is why values and immutability are so useful for modeling, architecture, and building resilient software.

I talked more about this in this MeetingC++'17 talk: https://www.youtube.com/watch?v=NMol_5-2owo

arximboldi··on Is Loneliness a Health Epidemic?
I agree. However, in spite of my collectivist tendencies, I have to admit myself that it is too easy to romanticise communities from the past. They could be vicious holes with no room for scape, as the rural book trilogy from García Lorca or movies like the White Ribbon illustrate...
arximboldi··on Show HN: Emacs Anywhere
What?! That's amazing! You never stop learning bash I guess :)
arximboldi··on The Long, Slow Decline of BitTorrent (2017)
Torrents don't really work for music. Soulseek is your friend there, super old-school but great community and it has basically everything.

I also buy almost everything I find on Bandcamp. Excepting those über-hipster techno artists with 100-copies vinyl-only releases (but those you can usually still find rips on Soulseek.)

arximboldi··on Is developer compensation becoming bimodal?
Not really. I did the math in the past because I seriously considered moving to the US cuz I got an offer there. In my estimates, you would end up spending the same % of your salary in surviving, but of course the remaining let's say 30%, is simply a lot. Also a lot of things are not really that expensive (most things that are not housing, or maybe eating out.) And when you get out of the Junior level, I think the difference between SV and Europe becomes abysmal.

Also, "Europe" means many things. I am talking about Berlin here. I also know other places, like Madrid, where you just simply earn pennies in comparison so the difference becomes even higher (Madrid is more expensive than Berlin, earn less)

I still decided to stay here though (because of quality of living, work culture, music and partying, politics).

arximboldi··on Apple's Middle Age
Well, when I was using Windows more than 10 years ago... formatting your computer every 2 years was a good way to maintain performance, otherwise it would just slow down due to disk fragmentation + crapware accumulation. On Linux I could also just install the OS once and use it until I upgraded the machine... like in 6 years.
arximboldi··on Keeping the Art of Silent Film Music Alive
Here in Berlin there is this theater, where they do silent movies with live music/effects regularly: http://www.babylonberlin.de/

Very much recommended!

arximboldi··on Shotcut: Free, open source, cross-platform video editor
Kdenlive crashes _a lot_. But recently I discovered that it crashes much less if GPU effects are disabled and the binaries from their webpage (not from Debian, etc.) are used. Still it can be frustrating to use just because of the crashing, otherwise a quite nice program...
arximboldi··on Xi: an editor for the next 20 years [video]
Thanks willtim, for mentioning Ewig/Immer :)

As Ralph and others have pointed out, their rope is fundamentally a persistent data structure.

I think that one of the fundamental differences between how Rust and C++ deal with value and reference semantics make the two approaches look more different than they are. The C++ API is allowed to look a bit more "immutable", where one can always use the same functional looking API even though sometimes the performance of an operation is gonna depend on the category of the reference you are operating on (l-value, r-value). Rust forces the user to be explicit about everything all the time, making it very explicit when intend to "branch" or "snapshot" the persistent data structure and where do we wanna allow "in place" updates.

I am still undecided about which approach I like most, and I do think that there merits to each approach. But maybe just because I never really wrote anything serious in Rust. The C++ approach has the problem that it becomes unsafe once you introduce `std::move` (but if the C++ type system was not a crazy evolutionary monster one could imagine a similar approach with moves being inserted automatically and safely by the compiler.)

arximboldi··on No One Wants Used Clothes Anymore
I've heard that argument from various people but I don't understand it. If you don't need to produce clothes you have more energy and workforce available to produce other things, like infrastructure, and run schools, hospitals and build other industries. What is the value in having a textile industry for the sake of having it? I'd imagine that the best industry is the one that you don't even need...
arximboldi··on The Making of Apple’s Emoji
That doesn't look like a hug at all.

Also I liked how with the MSN one you could say ({) and your friend would reply (}). There is something meta about closing a brace there too... Ohhh, nostalgia.

arximboldi··on The Making of Apple’s Emoji
I agree. I find them most useful to express feelings or emotions, but so many of them are missing. MSN Messenger used to have a "hug" emoticon---replaced from ({) or (})---that I always miss as emoji. But then you have all these crazy Emoji ligatures... I feel that the Emoji Unicode team is just a bunch of people having too much fun (not complaining, having fun is important :-)
arximboldi··on Show HN: Monthly subscription airline with SFO-LAX flights starting at $78
Well sure, but a high speed train could be built, right?

In Spain (not really a high-tech country overall) there are trains connecting the country corner to corner with trains that go at like 300 KM/Hour average. Considering that train stations are central, plus there is no need to be there like 2 hours before, plus you can easily work there, etc. it is way faster and more convenient than flight, and of course way more ecological.

I'm sure a little of all that VC money can be used to build such infrastructure... I got lots of downvotes for my original comment, but really, the amount of CO2 emitted by air travel is appalling. I understand it is hard to avoid in many situations, but at least let me feel sad about it.

arximboldi··on Show HN: Monthly subscription airline with SFO-LAX flights starting at $78
This is sad. Flight is the most contaminating form of transportation.
arximboldi··on Christopher Nolan: The power of people and why 2001 should be preschool viewing
In 10 years they will love it and they will brag in front of their hipster friends for having watched it as young kids :-)
arximboldi··on Fixie tries
I did some work on making Array Mapped Tries cache efficient here: https://sinusoid.es/misc/immer/immer-icfp17.pdf

I am also exploring Hash Array Mapped Tries. CHAMP is a good start at making them cache efficient: https://michael.steindorfer.name/publications/oopsla15.pdf

I agree that the complexity of implementing these data-structures is annoying.

One interesting insight though is that Array Mapped Tried addressing works mostly like page table hierarchies for virtual memory addressing. I think there is a lot of value in providing Array Mapped Trie based core construct at language runtime level.

It is not an easy data-structured to be programmed ad-hoc. Clojure did a huge service to the world by using these as their default data-structure and showing their value to the world, all with a convenient and nice syntax. I think there is interesting new oportinities and research lines to use them at other levels between the OS and language runtime for concurrency and immutability centric languages...

arximboldi··on Cities with Uber Have Lower Rates of Ambulance Usage
> Many potential emergency room patients are too sick to drive themselves to a hospital. But an ambulance can cost hundreds or thousands of dollars without insurance. This is where a popular ride-sharing app can step in, while also freeing up the ambulances for those who need them most.

The rich?

arximboldi··on Berlin's Plan to Become a City for Cyclists
The U-Bahn is good but many of the lines are quite old and the connections often too sparse, specially compared to other european capitals like Paris or Madrid. There are often very close areas that take surprisingly long to travel between without a bike. I always find traveling between northern Neukölln to the middle of Friedrischain somewhat annoying unless you are very close the ring or just grab the bike and cut through Gorli. There are lots of examples like that.

Plus I find the U-Bahn rather expensive (esp. considering how little investment it seems to get) with very few buying options (only bulk-ticket is 4 rides which saves you very little) and the ticket machines seem to be broken half of the time and the ones that work are slow as hell (takes like 3 minutes to print the damn tickets).

The only plus I see (e.g. compared to Madrid) is that the stations are not very deep underground and often over the ground so it helps people that are mildly claustrophobic.

arximboldi··on Berlin's Plan to Become a City for Cyclists
Agreed. Berlin is a very child-friendly city, and the biking is part of it. It is very common for parents to carry their kids in the bike. And heavy traffic makes the city less child-safe, not more.
arximboldi··on Berlin's Plan to Become a City for Cyclists
Spain has been very much a car centric country but over the last years few cities have been pushing a transformation to become bike friendly. The biggest transformation I have witnessed is in Seville: https://www.theguardian.com/cities/2015/jan/28/seville-cycli...
arximboldi··on Show HN: Termipal – native micro-GUIs for shell scripts and command line apps
Looks a lot like the good ol' zenity: https://help.gnome.org/users/zenity/3.24/
arximboldi··on Clang 5 in a Docker container for C++17
And can it interact nicely with the "native" environment? I.e. build MSVC projects or ".exe" apps in general that can be used outside of Nix or WSL? I am not a Windows dev but I am very curious, it would be nice to move some cross-platform projects I work on to Nix completely for dev environment...
← PreviousPage 4 of 10Next →