This is my field, too. I am a Ph.D. candidate in computational social science, working on a computational model of social belief systems.
I'm quite happy to see this on HN. Like many other disciplines, our field is blossoming with the rise of cheap, high performance computing!
If your involved in this field and on HN, please reach out to me at @generativist on twitter. I'm in the process of setting up a community for CSS work, and will be soliciting feedback soon!
Can you give more details (accessible to programmers rather than social scientists) how that'd work, what do you actually model and aim to find out? Sounds pretty interesting.
I'll be posting some things to HN soon. My writing style is very accessible, to anyone. I always shoot for an "explain it to your grandmother"-level of writing.
Also, my entire dissertation is Python/Cython/Jupyter with a prebuilt docker container, so, it's also low-friction to play with. But, complicated by dissertation rules for sharing pre-publication (i.e. "is this definitely your work, because it's on github and you accepted PRs?").
Can you talk about what software packages, perhaps data structures and algorithms you use? Any shortcomings / low hanging fruit? I see the domain as an invaluable tool for a few applications... any particularly strong ones you can see?
The important thing here is the objective : there are different methods and tools to reach that objective.
Primarily, the objective of Computational Social Science is to understand human behavior but with computational methods. Traditionally, social science was done offline with surveys. But, with the increase in social information on the Internet could we use that data to know more about humans?
How? There are various methods on how one could do so - network theory, statistics, text mining etc. are some tools that are useful to achieve the objective.
I think this is actually the source of the "steep learning curve" problem. Once you've used it enough, it is an almost orthogonal part of your brain that does thats the VIM command-ing. It becomes more like, "to walk, put one foot in front of the other." You don't actually process that thought when walking.
But, until that point, it absolutely IS the same part of your brain. Until that point, there IS a PAINFUL contention between work brain and editor brain.
VIM'er here. I use IntelliJ-Pycharm when i'm really strappin in for a good DEV session. Plus you get the ideaVim plugin and i've got the same VIM magic I know and love. Plus all the fancy IDE stuff. Some will say you can upgrade VIM to IDE level (project tree, auto complete, other fancies) which is totally true. I dont got time for dat.
Other bonus for vi is that you are now capable of editing files on any unix server in the world.
spacemacs is a pretty well integrated, community sourced configuration of emacs that has a lot of sane defaults out of the box. add a few layers for your favorite languages and you are off and running. magit and org mode are both excellent reasons to use emacs. the vim bindings are some of the best i have seen in an emulator as well.
It might no be too hard in this case, since you're really testing editing speed not code productivity. You could take a random selection of (small) git commits and time how long it takes people to recreate them. That maybe gives Vim an unfair advantage actually since the IDE features help more while actually composing code, rather than just editing text.
I think the focus on speed is counterproductive. Increased productivity isn't the only — or even the most important — measure of value.
I enjoy using Vim (Emacs Evil mode these days) because I can edit more fluidly without having to shift focus and context switch. My hands stay on the keyboard, my eyes stay on the screen, and I don't have to think about "how" to achieve my goals — I just think about what I want to achieve and muscle memory takes care of the rest.
I might edit more quickly, but that's a side effect of using a tool that allows me to focus deeply and maintain that focus for longer: both of which are vital to flow and satisfaction with my work.
I admit, 5% is a subjective prior / fudge-factor. But, statistical white-lies communicate a promise which extends the invitation: try it, see if you're more productive.
I put VIM in the title because 1) it's got a recognizable identity to pull in readers and, 2) I use VIM. But, in a weird and almost recursive way, editor wars are kinda like language wars. If it gets you that 5% (or more) boost, great! But, the differences between them often washes out.
Yeah, the most important thing is to know your tools of choice really, really well. vim never made me more productive—being able to do what I needed to in it quickly did. I could just as easily have used emacs (had I learned that first), or atom (had that been around back then) or <insert favorite editor/ide here>.
The had-I-learned-it-first concept is something I didn't mention, but do think is important. And, often it works in an inhibiting way. With an IDEA-like rich IDEs -- which I think is a great tool, esp with VIM bindings! -- you get such a boost from things like good contextual auto-complete, that you never feel the need to learn it more deeply.
This way you can also attract furious members from the church of emacs ;)
But learning Vi is extremely useful, because many editors/IDEs feature a Vi Plugin:
Visual Studio, Qt, Eclipse, Xcode, Atom, IntelliJ and of course Emacs. Learning the basic Emacs shortcuts is likewise useful for terminal (though some shells also have a Vi mode!)
I posted this once regarding a related incident, but it's appropriate here too.
One day in college, a friend and I decided to pack a plastic bottle with dry ice and hot water. In our hung over state, we thought this would be fun to watch. I was in my apartment. It took all of five seconds to realize that I couldn't rip apart the bottle. So, if the force of this explosion was sufficient to do so, it was probably really fucking dangerous. I figured it was too late to take the cap off -- the bottle was already making weird sounds. So, I threw it in the bathroom tub, and shut the door. Two minutes went by, and I felt momentarily foolish. Almost as I thought "nothing is going to happen," it exploded. The force knocked my friend to the ground. Granted she was tiny, and it was partly from fear, but I felt the shock wave rattle my bones.
I lived in the more expensive apartment building on campus. No one even came to say, "what's going on." If they did, they would have seen the bent metal of the tub's faucet.
And, that was accidentally but very literally a bomb.
This (very) thin wrapper lets you write your PlantUML code in Jupyter cells.
https://github.com/jbn/IPlantUML