HNHacker News
TopNewBestAskShowJobs

arximboldi

1,199 karma · joined December 1, 2014

https://sinusoid.es https://sinusoid.al
submissionscomments
arximboldi··on Programmers who want to change how we code before catastrophe strikes
I think you might enjoy this paper, I did: http://www1.cs.columbia.edu/~angelos/Misc/p271-de_millo.pdf
arximboldi··on PBR for Audio Software Interfaces (2016)
No they don't. Best audio software does not have skewmorphic UI's. I personally prefer minimalist looks. Ableton Live is a good example in the other direction.
arximboldi··on Spanish police doing an intervention in Fundació puntCAT office
The Spanish people voted yes to democracy, not to the constitution. The communist party supported it because it feared continuing to be illegal otherwise, and it is an issue that still causes them a lot of division.

My generation did not vote for the constitution, and many of us dislike it. I agree that it is a conservative constitution made out of fear, with a flawed electoral system, a king, etc. The same fear that the party in power, lineage of the dictators, uses to address our aging population.

"Mejor malo conocido que bueno por conocer" (Better a known bad than the good that is jet to be known) is the worst Spanish saying.

I am Andalusian and pro-referendum.

arximboldi··on Spanish police doing an intervention in Fundació puntCAT office
> We do have clear separation of powers in Spain

We do have a formal one. In practice that is not so clear, as the many corruption cases show, with political use of the police included.

Also they not only have declared the referendum illegal, but are persecuting everyone promoting the referendum, so much for freedom of speech. But anyways, now you get into a criminal trial for making jokes about terrorist actions from 40 years ago against Franco ministers.

I am Andalusian and I'd be happy to keep Catalonian withing the Spanish state, under a federalist republic where we can move forward together. But in the current state of affairs I very much understand the independentist movement. Having a referendum is the only solution long-term and the Spanish goverment just uses legalist excuses to stop it. What they don't say is that precisely they can change the law to allow it!

arximboldi··on Signal’s Moxie Marlinspike calls out Telegram founder Pavel Durov
Good one!
arximboldi··on We've failed: open access is winning and we must change our approach
Wow, now you got me curious about that case... Dare elaborate?
arximboldi··on Why Must You Pay Sales People Commissions?
> It's because the most efficient thing for a company to do is pay someone their precise marginal value, not more or less [...]

But if they did so there would be no surplus value left for shareholders. Paying for labor less than its contribution to the value of the product is the basis of capitalism.

arximboldi··on Why Must You Pay Sales People Commissions?
Which is great for everyone. The company gets predictable estimates, the developer gets a stress-free life. A shorter but unmet deadline is worse for everyone, specially the company, even if the product is still delivered sooner than the padded deadline.
arximboldi··on A candy man revolutionized the sushi industry
> Where does the 2X come from doesn't that result in debt.

I think you should read Marx's Capital. It is devoted to answering that question: the generation of surplus value and its consequences in society. As you suggest, such system is not stable, explaining capitalism's tendency to crisis.

arximboldi··on C compiler undefined behavior: calls never-called function
Actually the optimization is not statically initializing Do, it is inlining the function calls via the Do pointer. I actually think this a quite useful optimization.

You can see that if you "fix" the program by checking Do before calling it, it still inlines the call in the True branch:

https://godbolt.org/g/9KS2r9

arximboldi··on PhD Productivity Strategy: Do Deep Work in Less Hours
Even though one can say "two people", to me it feels that "less people" or "fewer persons" are more correct than "fewer people".

On another note, see how "fewer times" and "less time" means different things (might help clarify the distinction to some.)

(Non native speaker here though.)

arximboldi··on Lessons learned from implementing a text editor related to front-end development
Thanks for the link and the encouragement! You have your Rust project somewhere online? I'd love to take a look at it.

I sometimes fantasize about rewriting Ewig in Rust, as a learning project (have been reading about it but didn't dare to write code in it yet). But I'd like to use RRB-Vector there too. Sadly, this data-structure is not really trivial to implement... (the concat algorithm in particular). Maybe one day I'll find the time :-)

arximboldi··on Lessons learned from implementing a text editor related to front-end development
Very interesting work! It seems that educational text editors are becoming a trend after Antirez published his :-)

Excuse me the shameless plug, I'd like to show mine too: https://github.com/arximboldi/ewig

It is written in C++, but using a style that is unlike what most C++ developers use: it is composed mostly of pure functions. The architecture is very much like that of Elm programs, and there is even a `store` class like in Redux.

Like the project from OP, it is about 2K lines of code. But it also supports asynchronous loading/saving, copy-paste (you can copy-paste a 1GB file instantly), very robust undo, dirty markers, UTF-8 (not perfect), etc.

The magic? Immutable vectors based on RRB-Trees. This is like the vectors in Clojure/Scala, but also supports log(n) slicing, concatenations, insertions---these operations are fundamental for a text editor, and I'd say, to most interactive software supporting big data models [1].

The code has been written in a style as simple as I could. I'd like to think that even non-C++ developers might be able to understand it. It might be specially interesting for web developers invested in Clojure, Elm or Redux and the single-atom architecture.

Probably one day I should go ahead and just write a blog post about it or a tutorial or something. But so far I don't have a blog I am not really a social media person. The code is still moving also...

PS. And thanks a lot to @kostspielig her help writing and reviewieng the code! <3

[1] The data-structure can be found here: https://github.com/arximboldi/immer

arximboldi··on Pybind11 — Seamless operability between C++11 and Python
I have used boost::python a lot and later tried pybind11. A lot of people prise it because they consider boost bloated, but in my experiments boost::python is actually 2X faster at runtime (not at compile time). I think I'd rather use boost::python.
arximboldi··on Inside Patreon, the economic engine of internet culture
Shameless plug: https://www.patreon.com/sinusoidal

I just opened it a couple of days ago, still have to polish the story and probably be more active on social media (I don't have Twitter, etc... I really despise Twitter but I kind of feel I am missing huge opportunities to get visibility...)

arximboldi··on Clojure will affect the way you think about programming
Sorry, I actually meant "than in Clojure". You are right about the ContT. I'm actually curious about your transducer based stream fusion stuff... I'll hit you up later about it :-)
arximboldi··on Clojure will affect the way you think about programming
Interesting! Why do you think they are a big design mistake? I can understand how they can be misused, but I find myself missing them in every language I used that doesn't have them...
arximboldi··on Clojure will affect the way you think about programming
Okasaki's work is really interesting, and it is quite mind-blowing the theoretical properties he achieves by exploiting laziness and so on. At the same time: those data-structures have one fundamental flaws they have high constant factors, specially outside of Haskell. That was Phil Bagwell + Rich Hickey revolutionary contribution in my opinion... finding data-structures that are rather simple yet but work well in practice because they make the right engineering trade-offs and work well with CPU caches, etc.
arximboldi··on Clojure will affect the way you think about programming
Search "Phil Bagwell", most of his papers are quite interesting.

If you allow me another shameless plug, I also compiled a good bunch of references in the "Related Work" section of my own paper on immutable vectors: https://public.sinusoid.es/misc/immer/immer-icfp17.pdf

arximboldi··on Clojure will affect the way you think about programming
Yeah, I agree!

Actually one of the things I found during my work on transducers is that actually they seem to me more implementable in C++ than in Haskell. For example, you can implement state-less transducers with almost zero overhead, something that in Clojure is definitely not true (so the standard transducers do hide state inside the closure of the reducing functions). It is also easier to do n-ary transducers for zipping and unzipping and everything, as you intuit, is type checked.

Still, I agree that transducers are most useful when you have libraries that make sense of them. For example, you could implement a lot of "Rx" using transducers. Ideally I see a user never writing a transducer, and occasionally passing one to some library that provides "higher order" reactive collections (channels, observables, etc.) that can be transformed with transducers. For example, my motivation to implement them in C++ was to build "observable/reactive lenses" (something like "cursors" in Om) [1] where you could use transducers to specify how you "zoom" into the virtual sequence of state values...

Anyways, they are an interesting coding tool, but they don't really influence the architecture of the application.

[1] atria::funken https://github.com/Ableton/atria

arximboldi··on Clojure will affect the way you think about programming
There are many things to love in Clojure, like core.async, the lispyness, etc. But for me, their biggest breakthrough is with no doubt the data-structures.

Clojure default of immutable hash maps and vectors was really bold. They had to innovate by giving a twist to Bagwell's great research on data-structures, and they managed to build what in my opinion are the first set of general data-structures suitable of representing traditional hierarchical object-tree data-models immutably, at the scale of large interactive software.

Without these, the single-atom architecture that now is popular as ever with Redux, Elm, etc. would not be possible. The flourishing of functional programming for interactive software that followed shows to me that the biggest impediment before was not the lack of functional ways of expressing interactions (the Haskell people have devoted a lot of notable effort in the FRP camp). Instead, just having efficient data-structures to write persistent document models, escaping the rigidity of lists and rb-trees, allows you to write big interactive sofware in a functional manner even with the most dumb abstractions (which is a good thing, KISS!) and even stupid language (JavaScript!).

This has inspired me to work on a generic implementation in C++, which also has experimental Python and Guile bindings: https://sinusoid.es/immer/ https://github.com/arximboldi/immer/

In the past I also did some other work on bringing Clojure Transducers to C++ (https://www.youtube.com/watch?v=vohGJjGxtJQ&t=1614s) but I know consider it a much less important effort---without the data-structures the other parts of Clojure feel almost like just sugar.

EDIT1 -- Sorry for the shameless plug ;)

EDIT2 -- Grammar

arximboldi··on The confusing way Mexicans tell time
I agree. Also they make it seem like this particular usage of the word "ahorita" is so unique, but reading the article I got the feeling that, even though the "future ahora" may be more common in some regions than others, this is simply the meaning of the word in Spanish in general.

I am from Spain where you wold think we have a more "european" time management sense. Yet it is common to say: "ahora nos vemos" or "hasta ahora" (see you now/soon) as you are leaving the room, when you know you are gonna meet the others later in the day. It if you ask someone when are they going to do this thing you asked them to do and and they reply: "ahora"... it actually means "when I finish what I am doing now". It is true that in a business setting and some context you might need to be more specific, but that still does not change the meaning of ahora. It is also a ok reply "ahora, cuando acabe con esto", which means--"soon, as I am done with this", or even more specific: "when is the concert going to start? Ahora en 15 minutos."

"Ahora" simply does not mean "now" as in the current instant, but in the "present", this is, the time of the events that are connected to the current activities, the things that you can "wait for", the things that will happen before they are out of your head... it is like "soon" or "soon today", but with a hint of will, of promise, of certainty or fate.

arximboldi··on “You’re Not the Customer, You’re the Product”
I think you have an idealized and false idea of what advertising is.

I don't remember ever seeing an ad showing a new invention. That is actually not the purpose of advertising. You can't understand a new concept in the time lapse of an ad. In fact, you'll see that new inventions normally become popular via other means (targeting niches firsts via specialized magazines, conferences, etc.) and only use advertising when they already have an established business and market.

The fact is, most advertising is just about manipulating peoples feelings. The first kind is about brand aggrandizing, trying to change how people feel about a specific brand--this brand is "quality", "fresh", "young", "elite", whatever. The second one is about stimulating demand, normally trying to make people need things they did not need before: "you are fat! buy our cream!", "your life is boring! buy our holiday packages!", "you look ugly, buy our clothes!", "you could be healthier eating our pro-active meta-splendidous yogurt!", etc. In either case, the goal is to make you feel bad, incomplete, until you spend your money on more shit.

Personally, I would love to live in a world with almost zero advertising. I am from Spain and one of the things I love about Berlin, where I live, is the low amount of advertising in the streets compared to anywhere I lived before. That is changing slowly though. But I have seen pictures of DDR Berlin and there is literally no ads. Of course, sadly that package came with the STASI and other horrible things. That aside, I would love to be able to walk the streets without having to look at ads telling me to buy shit over pictures impossible women in lingerie, rich men in expensive cars, smiling youngsters partying together, families on vacation in the Bahamas, etc. I know people that consider such world dull, gray, etc. But for me, it would bring some kind of new zen to urban life.

Ironically now, thanks to the Internet, advertisers themselves (and security agencies) are tracking our lifes in ways the STASI could not even dream of. The grass is always greener on the other side, but if you try hard enough you can always get the worst of both worlds.

arximboldi··on What's Different about “Unicorns”
So you're saying the only difference between a start-up founder and a jihadist are the weapons they use...
arximboldi··on HN is my new Facebook
It is also like Facebook for me. Indeed, these are two first lines of my /etc/hosts and only comment them from time to time:

    127.0.0.1	news.ycombinator.com
    127.0.0.1	www.facebook.com
arximboldi··on New features you can't use unless you are in Python 3
This is covered in the link. Just put a * without a name, as in

  def foo(*, x=None, y="")
(Edit) The specific slide: http://www.asmeurer.com/python3-presentation/slides.html#16
arximboldi··on The Hidden Cost of Privatization
> Imagine if unions were strong and IT were unionized. How would you imagine the progress we've seen in information technology?

I imagine less bullshit businesses selling air castles built on top of an exploitative operation. I imagine better democratic processes inside companies. I imagine using collective power to protect underrepresented groups instead of fighting against each other. A net benefit to society.

arximboldi··on Little Alchemy
Lol I'm at 99 and don't have chicken nor tree, but I have jedis, vampires, robots, cities, etc... lol.
arximboldi··on The Most Hated Online Advertising Techniques
Me too... maybe the ad blocker blocked it? Not a loss.
arximboldi··on Building a website using AsciiDoc (2010)
Thanks for the feedback!

I think most of the loading time is in the images, gifs and web fonts used (the svg a bit, but not so much). These days I don't see much of value in optimizing the slides for after-the-fact consumption (video is much better for that), and I just put them online so people that have actually seen the talk can go back to some of the code, links and references. And in this way I justify my lazyness for not optimizing the load time a little bit :)

← PreviousPage 6 of 10Next →