HNHacker News
TopNewBestAskShowJobs

bpizzi

867 karma · joined June 9, 2013

submissionscomments
bpizzi··on Ask HN: Better tools for the software requirements / scoping phase?
Those days I just sketch wireframes in a Google Slides presentation.

Bonus point for the interactivity: I can share the URL for remote work sessions, and the stakeholders on the other end of the line can see me create/adapt wireframes and notes in real time, while I'm explaining everything on the phone (using anonymous access for those not logged into 'The Google').

Google Docs has version management since this year (I think), so I can pinpoint the evolution of specifications over the time. When I'm done I'll just export a PDF and attach to a "Spec done!" mail to everyone.

bpizzi··on Evernote just slashed 54 jobs, or 15 percent of its workforce
> Have you ever seen $300MM worth of wood?

Well, I'm not sure about wood, indeed, but I guess specials species can cost a lot. But I definitely saw $300MM of metal in a single stocking rack, not even speaking in terms of machines and buildings.

> I specifically said the owner had pumped a huge amount of money in the company.

Yes, I read that but I put it apart a bit too quickly, apologies. I would love to be pointed to real cases where huge amount of cash were invested in finished-good producing plants with no sales whatsoever. Off the top of my head I can think that Tesla's industrial activity can come close to the description for the investment story, however they do sell - their problem is more of meeting the production target.

I've seen with my eyes plants coming out of nowhere [0] with banks backed cash, but they definitely had customers commands already passed.

[0] https://translate.google.com/translate?sl=auto&tl=en&js=y&pr...

bpizzi··on Evernote just slashed 54 jobs, or 15 percent of its workforce
GAFA's are somewhat specials. I was very precisely answering to a very well written story about a plant producing furniture.

As a matter of fact, if you were Ikea's CEO with a rather important war-chest (however not at the level of Apple assuredly), you would never let "live" one of your plant if all it's finished goods were given for free because nobody would want to buy it.

bpizzi··on Evernote just slashed 54 jobs, or 15 percent of its workforce
No, it's neither a lazy nor ideological answer. It's a very pragmatic answer.

If you're the head of a plant where nothing produced is sold for a price that cover your expanses, then no, sorry, the system [0] will soon have your company closed down, depending on your amount of emergency cash. And if you're part of a group then you are in for a very rough time with the group's C[E/O/F]Os, and odds are that this will ends up with the plant being shut down (machines/peoples may be rebased at other plants).

> Nobody ever buys any of it. It's not sold in any stores. No hotels buy it. No businesses buy it. Lots of people are lined up as far as you can see to pick furniture out of the pile for free.

This is something that can't realistically happen for a furniture plant. You can't pile up furniture up to the sky without paying your wood suppliers.

[0] suppliers, banks, state - what I maybe shouldn't have called "free market" in order to avoid epidermic reactions

bpizzi··on Evernote just slashed 54 jobs, or 15 percent of its workforce
To stick to this comment only:

> How do you fix this company?

I'll take a shot : you don't, the free market does it for you (ie. the company isn't going to last long, or the plant get shut down if part of a group). It's the VC/Angels money that allows such theoretical stories to be actually applied to startups.

bpizzi··on Subject: Airbnb (2011)
What do you mean exactly by illegal? Nobody's going to jail for sending an email outside of working hours, even in France.

Edit: actually, for anyone wondering, the law is that a >50 employee's company should document it's own recommendation about how not to harass your colleagues during out-of-work hours. When fully applied, the worst case scenario would be that, as an employee, you can officially (ie. under a legal base, not legal right, but IANAL) ask your employer to have workaholic colleagues to step down on their out-of-hours emails. Nothing more, nothing less, very very far from "in France it's illegal to send a work email outside of the working hours".

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
Mainly because I currently work on long term projects, building entreprise grading systems. Here you want simple, dumb technologies for which you'll still be able to put up build OS in the years to go.
bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
Yes, you can have everything in every language. After all it's turtles all the way down.

What makes us successful as software engineers, in the end (and IMHO), is the efficiency level at which we reach our goals. To my eyes, when deliverability is the goal, then a language where native (cross)compilation is first class citizen is the most efficient path. But don't get me wrong, Python is really great and still a good choice for that scenario (I'm thinking of dropbox, for ex).

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
> Yes; with Python, you can both run directly from source without wasting time compiling after each change

As I said, interpreted languages have their uses, of course. My initial point was about delivery to end users.

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
Thanks, it gets clearer. As a matter of fact I'm both knowledgeable in building things in Python and Go, Node and PHP too. And others. But, admittedly, for 'big' things I tend to lean on Go nowadays (edit: mainly because I need to deliver on-premise, OS-aware applications).

It seems like you think there's a "build process" with Go because you're accustomed to python/pyenv (or whatever is your env manager of choice), in which cas you need to known that there's no such thing with Go.

The two following course of actions are the same: - "apt-get docker; docker pull {project-url}; docker start {project-url}" - "apt-get golang; git pull {project-url}; go run .go" (the last Go 1.11 will take care of dependencies at build time)

You can't as easily do "apt-get python; git pull {url}; python .py", unless the program is really simple, because there's such questions as "python2 or 3?" or "pyenv, virtualenv or anaconda?", obligatory XKCD here: https://xkcd.com/1987.

But it's totally ok not to bother learning the compilation command of a given project's language and rely on Docker, really I'm ok with that, doing it myself from time to time. My initial point was on app delivery to final users.

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
Sorry I can't follow you (no offense really).

You said at first "Dev builds are just as annoying with Golang as Ruby or Python" and now you're saying "I can build any python [...] I can't do that with [...] Ruby"?

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
> Dev builds are just as annoying with Golang as Ruby or Python.

Hm, I'm pretty sure I can take any Go project out there and build it in a matter of minutes on my current OS (depending on the build time of course). Just a matter of setting the environment on the right compiler binary and retrieving dependencies (which just came better 2 weeks ago with 1.11's modules).

I'm pretty sure too I'll very quickly run into dependencies hell by picking randoms ruby/python programs. Just take a look at that SO question: https://stackoverflow.com/questions/2812471/is-there-a-pytho....

Interpreted languages have their uses, of course, but there's a clear difference in both ease of deployment and development between the realms of interpreted languages (Ruby/Python/PHP/etc.), VM/IL/JIT based languages (JVM/.NET/etc.) and 'plain old' compiler based languages (C/C++/Rust/Go/etc.).

> In fact build awkwardness is orthogonal to static vs dynamic typing.

I said "interpreted languages' ecosystems", not "dynamically typed languages". I think you're mixing concepts here (or just maybe you're adding info not directly related to my comment).

bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
Or to say it differently: "that's one of the areas where interpreted languages' ecosystems stinks: app delivery".
bpizzi··on HTTPS-Portal: Automated HTTPS server powered by Nginx, Let’s Encrypt and Docker
It's not free if you use the binaries builded/downloaded from caddyserver.com. It's still free if you build the binaries yourself from source [0].

[0] https://caddyserver.com/products/licenses

bpizzi··on How the Go runtime implements maps efficiently without generics
As an anecdote: my 'code generation' go-to solution in go is text/template's based. The '//go generate' on the first line of the source file generating the final code is a mere helper and I could do without it any time. Again that's just my experience ;)
bpizzi··on How the Go runtime implements maps efficiently without generics
> setting up all the types for the channels based on the types in the functions being run by the go routines was quite difficult. I had to do it all by reflection and the code was really complicated.

My guess (and personal experience) is that this would maybe be more convenient to do this via code generation. It's not as ergonomic as generics (well, depending on the implementation...), but still it's less cumbersome and prone to failing at runtime that reflection.

Reflection has its uses and places, but as soon as it gets all over a function then it's time (imho) to look into code generation.

bpizzi··on The Art of Not Dying: the First Emperor’s Pursuit of Immortality
"the only way to ensure you will live "forever" is to severely restrict the agency of anyone else but you."

Such a lack of imagination. What about virtual worlds where you're ego would be uploaded, leaving no physical remains to be fed? What about changing you're body for something that don't need to eat food? What about the tremendous immensity and ressources of space that await colonization? What about being able to go to deep sleep and live 50 years every 500 or so? I could go on "forever".

bpizzi··on The terrible 'what if': how OCD makes every day a matter of life or death
Thanks for sharing. The complexities of the human brain will never cease to amaze me. There should be a way, in all this neuronal maze, to escape those compulsions, but I bet it's really well hidden.
bpizzi··on To Remember Everything You Learn, Surrender to This Algorithm (2008)
Well, IMHO (no offense meant), memorizing programming manuals makes one a good lonely programmer.

To become a 'professional software engineer', one must learn to be a team-player within a group of persons tasked in building and maintaining a piece of software that will stand the test of time. Which requires a very different skill set. One can be a good SE and still be relying on auto-completion and inline help in one's favorite text editor.

Remembering the API of your languages definitely helps, but actually building softwares that will be used by real users, for years, that's what makes you a 'professional software engineer'.

bpizzi··on The 4,000 Lines of Code Harvard Hopes Will Change Translation (2017)
> I really don't see how machines could distill the ideas out of a text and reinterpret them in a nice way.

Well, machines are already doing it with paintings: https://arxiv.org/pdf/1508.06576v2.pdf. There's no technical reason for not being able to achieve this sort of 'machine creativity' with texts. It's just a harder version of the same problem.

> I can see AI work for short, simple, well-written texts. Heck, even long manuals with repetitive blocks of text from manual to manual. But with creative, complex text: still a looooong way baby!

I (carefully, waiting for experts' feedback) disagree. ML works on data and algorithms: give a deep RNN a great lot of human made translations, time/cpu to produce a good model, and I think you would be astonished by the results.

Data's complexity is of little hindrance here, because the algorithm does not try to understands the data (as we humans like to think we're doing when reading), it's just trying to infer a solution based on learned behaviors. And it's 'just' ML, AI will come when your computer tell you that this specific text makes it sad, for example.

bpizzi··on To Remember, the Brain Must Actively Forget
Teleportation isn't very concerning to me, because it's basically against known physic rules for now on. Theoretically I would be very wary of teleportation, on a pragmatic level: if I don't own the teleportation process on an extreme level then there's too much risk to be altered in some (maybe dramatic) way.

However, there's a variant that sucks my thoughts sometimes: what about transferring a full brain's backup into a valid recipient?

Classical application would be life extension: going into a "blank" body/brain (or big enough computer) when mine is too old to carry on. It's still very inconceivable nowadays, but much more attainable than teleportation I think.

You can't "switch off" the old brain, copy it, and "switch on" the new one, because that would pose the same questions as teleportation. Neither I wouldn't start a copy process, wait for it to complete, commit suicide and set alive the new body/brain in the same time.

The obvious solution would be to find a way to connect two brains (be it an organically or computerized brain), extend the thought in such a way that there would be full redundancy of memories between the two devices, and the switch off the old one.

I guess I read too much hard sci-fi :)

bpizzi··on To Remember, the Brain Must Actively Forget
Personnaly I would never use such a drug. I conceptualise myself as a tought-based kernel with a bunch of meat around to make it run. This kernel tries hardly to think about itself as 'one thing' (you don't achieve much with schizophrenia), and that relies heavily on this kernel being able to trace a continuous stream of tought back to its birth (at least as far as it can remember). Alter this stream and you loose yourself (the bigger the altering the bigger the loosing).

Two more things: (i) I'm aware that not everybody thinks the same, mainly because fellow humans acts as a constant reminder of who you were before, and (ii) yes, sleeping is disturbing to me, I try not to think about it too much.

bpizzi··on The Transformative Power of Suffering
Good advices. And we should repeat this: there's no need for putting extreme weight on bars. Repetitions, series and rest time are golden here. You can do wonders with 50-80kg deadlifts (not when starting weight lifting), no need to go after 150/200kg. Same goes, for example, for bench press: failing alone (which should not happen) under 30/50kg is very manageable, but the same under 150kg can cost your life.
bpizzi··on Ask HN: Favorite note-taking software?
Side note: I have been coding a large golang application for 3y now on emacs/spacemacs with the 'go' layer. Never had a single problem.

Otoh, I tried both atom and vscode for the same job, but quickly ran away because using an editor on which modal editing is not a first class citizen is not for me anymore.

bpizzi··on Ask HN: Favorite note-taking software?
Take a look at Orgzly for interacting with org files on Android, and set up a dropbox shared folder between your devices, including your smartphone. Works well for me.

As for extracting meaningful info with other editors, I would say it depends on how you structure your notes. For me it's just a very long bullet list with some tags here and there. So a plain text editor will only 'add' some star characters at the beginning of each lines, which appears quite readable to my eyes.

bpizzi··on Booze, Sex, and the Dark Art of Dealmaking in China (2015)
At the beginning a family is made of two parents. When only one parent takes such dramatic decisions as to lie to their spouse in order to hide its cheating under the umbrella "its for the best of the family", then I stand to my point of view: this person is acting badly (shortcuted to "a bad person").

And I can understand specific contextes, so don't come up with things like "what if the other is handicapped".

But it's ok, you place value in peace of mind, I place value in respect, different points of view, nothing new, no big deal.

bpizzi··on Booze, Sex, and the Dark Art of Dealmaking in China (2015)
Thank you for the nuances, I wanted to spell it somehow, but didn't find the words (westerner too but not native english speaker).
bpizzi··on Booze, Sex, and the Dark Art of Dealmaking in China (2015)
Actually, cheating involves lying. A spouse is explicitly or at least implicitly expecting the other part no to lie about extra relations. If lying about those extra relations in this context doesn't makes you a bad person, then I don't know what is.
bpizzi··on Booze, Sex, and the Dark Art of Dealmaking in China (2015)
A bit off-topic - well, to be fair, it may have been the other way: the man could have been the one saying "he'll cheat on us", and the women telling him "it's ok". Women are as prone to cheating as men. Women are not inherently faultless just because of their gender.
bpizzi··on Released and Certified: Qt Safe Renderer
'It's really incredible how the world of software developed by adults differs from the software developed by kids.'

Well, if I may... What actually tells adults and children developers apart is their swift ability to bring nuances (like in 'pros n cons') on the table when choosing the more efficient techno for a given problem. Yes, Qt has great pros. No, Qt is obviously not The Silver Bullet.

← PreviousPage 6 of 11Next →