data_hope | 8 years ago | on: Developers who use spaces make more money than those who use tabs
data_hope's comments
data_hope | 8 years ago | on: What was it like to self-learn programming before Stack Overflow? (2016)
data_hope | 9 years ago | on: The fifty shades of Latin
data_hope | 9 years ago | on: Bilingual speakers experience time differently, study finds
I once travelled from toronto to chicago by car and decided to write down my own directions from google maps because I felt the ones provided were useless. Boy, was I lost when I didnt see a roadsign for windsor/detroit.
data_hope | 9 years ago | on: The fifty shades of Latin
So yeah, I wonder if depending on the context, the classification of languages and dialects differs.
data_hope | 9 years ago | on: Calculus Made Easy (1914) [pdf]
data_hope | 9 years ago | on: Kazakhstan spells out plans for alphabet swap
To quote wikipedia. I.e. from what I read on Wikipedia, it is the other way round: Ukraine is the heartland, Moscow would be at the outskirt.
data_hope | 9 years ago | on: Why ML/OCaml are good for writing compilers (1998)
My "problems" with OCaml started, when I wanted to "map" over a data structure I defined. I ended up having to define custom mapping functions for all container-like data structures I wrote and call them in a non-polymorphic fashion (where I would have just used fmap in Haskell).
Sure, in OCAML I needed to use a parser generator where I would have used megaparsec in haskell, but it was also a tolerable inconvenience.
Trouble started when I needed to track state in the compilation process. I.e. I was generating variable names for temporary results and values, and I needed to track a number that increased. In the end I used a mutable state for it, and it turned out nightmarish in my unit tests.
After a while, I just ported the code base to Haskell and never looked back. The State monad was an easy fix for my mutable state issues. Parser combinators made the parser much more elegant. And many code paths improved, became much more concise. It is hard to describe, but in direct comparison, OCaml felt much more procedural and Haskell much more declarative (and actually easier to read).
The only advantage of OCaml to me is the strict evaluation. I don't think lazy evaluation by default ins Haskell is a great idea.
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
But I do not see a problem with rewriting history on a branch, if (and only if) you kind of know that no one else is pulling the changes. Or, when merging a PR, a rewrite is okay too, if the next feature will be branched off of the trunk, too.
Also, mercurial's tooling seems to help https://www.mercurial-scm.org/wiki/ChangesetEvolution with rewritten history by making it easier to track history rewrites. Basically I think this is a path in version control systems worth exploring.
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
data_hope | 9 years ago | on: PyPy2.7 and PyPy3.5 v5.7 released
At a EuroPython Keynote, the BDFL mentioned that he hasn't had a closer look at PyPy (he mentioned downloading it and playing with it for a few minutes). I.e. there is a certain disinterest. Also, remember that the "Zen of Python" (https://www.python.org/dev/peps/pep-0020/#id3) was written about the design principles of the Python interpreter, and PyPy is not exactly the Zen of python.
Personally, I'd love to see Python 4 to be based entirely on PyPy.
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
The more I think about it, the stranger a strong aversion to rewriting commit history for clarity is. In university if I did some math / physics calculation, I would often start, and once I got somewhere, make a clean copy of the successful work to have a concise and revised version.
data_hope | 9 years ago | on: How to Write a Git Commit Message (2014)
With git, it became very common to structure changes to a code base in many, very small commits. Rename a variable? Commit. Write some docs? Commit. Of course, the overall changes when developing a feature did not become smaller, they are now just distributed over many more commits. So I'd argue that a SVN commit was often conceptionally closer to what we now have with a git pull-request.
Why does this matter? Because It is kind of hard and not helping anyone if you describe your renaming of a local variable with an extensive docstring.
What I do miss however, is a good description of the overall change. I.e. now often the description in the merge commit is just the autogenerated message, but this is where I would like people to really take the time and describe the change extensively. This is why I like `--squash` merges, because they let people focus on the relevant parts in their description. I know, rewriting history is bad, but overall, I favour reading a history book than 18th century newspapers.
[X] not saying that there weren't small one-line-change commits, but overall they were rarer.
data_hope | 9 years ago | on: German traffic light stays red for 28 years (2015)
data_hope | 9 years ago | on: German traffic light stays red for 28 years (2015)
The years of experience variable might be taken to explain away the effect of experience, and then conclude that tabs vs. spaces must be due to another effect than years of experience. But chances are, that "years of experience" and "tabs vs. spaces" are just correlated to a common, causal property (like "programming proficiency" or however you want to call it). Both "years of experience" and "tabs vs. spaces" are then just incomplete reflections of the underlying cause, both rendering the effect of the underlying cause incompletely.
What I am trying to say is: Its complicated, probably you won't be able to find the one true cause for the effect in the data. If this were physics, one could come up with a predictive theory to put this to the test. In social studies, we just cannot control the parameters well enough.
If you are interested in reading more on this, "Causality" by Judea Pearl is a good (but exhausting read).