Thanks for the submission! I really dig the visualizations that they make and would not have expected something educational.
The website itself is, in my opinion, a good example of how javascript should or can be used to enhance the “web experience”™.
I would love to be able to use something similar (org-mode instead of markdown) but so far I’ve never gotten satisfactory results. To me the ideal case would be that I am able to easily export the source document into multiple formats so that I can distribute it as a pdf and html document.
Where this fails is most often the interoperability of external tools and to some extent my own laziness. The process of setting up a framework to cite references exist in org-mode (and I believe in pandoc through cite-proc) it is cumbersome to set up. Another issue is the visualization. Since the fonts are most often different I would need to generate multiple versions of the same plot, which becomes even more work if I want to use TikZ in LaTeX and for example matplotlib for web publishing.
While the tufte layout is great, what should I do with overlapping margin notes? They need to be manually corrected in LaTeX, at least as far as I know.
Another thing: How can I generate a glossary? For LaTeX the glossaries package exists but you cannot use that straightforward in markdown.
While this probably reads very negative, I would love it, if something like this existed! I just do not see that happening so far. And yet another point would be getting other people on board for collaboration.
My experience with Pandoc was not excellent to convert Markdown to LaTeX. Pandoc is a bit complicated to extend as well.
What I did was use a Markdown parser(1) producing an AST(2), plugging into the parsing to extend Markdown syntax to support for instance the glossary use case(3), then write a LaTeX stringifier(4) for this AST. (In this Markdown AST -> LaTeX stringifier I only support standard Markdown syntax, this abbr plugin I wrote gets stringified through yet another plugins package(5) I wrote. It’s straightforward: 6.) Then I simply put the latex doc into some sort of latex template using a custom class, in the latex template you’d have your tableofcontents, glossaries, etc.
I had a bunch of lecture slides written up in org that I was dumping to LaTeX, which was always a bit fragile, and then a change in org-mode broke everything. In the end I wasted more time fixing everything than if I’d just written LaTeX to start with.
I think the best thing is to leverage smart editing (e.g. AUCTeX) as much as possible, and not deal with trying to convert from something else into LaTeX.
I have my last exam for this semester tomorrow, so today will be spent preparing for that.
Afterwards I need to evaluate topic models that have been implemented in a probabilistic programming framework. My deadline for that is this thursday so I will be doing that afterwards. I have invested some time in the past few weeks but I feel like I still lack a lot of theoretical understanding of the topic.
Then finally on friday I can celebrate my first Master’s semester being over (except for two assignments).
I personally really like the approach by djb.
I’m trying to properly set up my current emacs nearly 3 year old hacked-together configuration. I’ve got mail working, and still have to figure out how to make some editing operations more intuitive (like wrapping n statements in c-mode with a if/while). I tried helm, but it just doesn’t seem like it’s worth the effort, especially when it pops up it places I’d rather it not, like magit.
Other than that, I’ve been contemplating about switching to Debian stable from Void on my Thinkpad X41, and I’ve been playing around with pandoc 2.X. The new groff output mode is great, I really appreciate that they’re added it.
What’s your current solution for mail? I really want to use Emacs for that but I personally do not want to give up the IMAP idle mechanism from thunderbird, hence I am still using that while the volume of incoming mail is somewhat low.
Currently a rather standard mbsync+mu+mu4e setup. But I do currently have to (and want to) manually updates my inbox, so I’m not sure if my setup would be what you are looking for.
Ah I see. Yes, unfortunately it looks like that.
Still, I am always glad to see others talking about emacs. It prompted me to finally submit two tiny changes to two projects that have annoyed me for quite some time now.
I still have this week off, since lectures do not start until next week. Still, there are still some assignments left, that I will need to work on in the remainder of the week.
I /just/ finished writing a recap of my year. I thought that if I don’t do it this week (today) I would not get around to it. The super quick summary is that I got my Bachelor’s last September and moved twice in the last year.
I really want to work on a project in Rust and even have an idea for it. I would really like something like isync but that is also able to handle IMAP idle. I guess offlineimap could be used but I most times it is discussed someone is complaining about the code quality of it…
It probably makes more sense to link to the more recent example.
Reading to understand the TCP/IP stack, before trying to develop a user-mode stack. Also continue with sockets programming, which I started last week. This time I’m going to look at the server side. It’s also helping me with the TCP/IP reading.
For TCP I liked the blog posts that Julia Evans did about them.
You probably already know that but a classic for Socket programming is Beej’s Networking Guide.
Microsoft is an exception, and it must die
No extreme opinions in this article!
Now, you’re not giving anything back. I’m curious, why is that?
Code contributions aren’t the only way to ‘give back’ to the larger software community. There are: financial contributions, writing blog posts, hanging out in IRC or other channels where you can advise people and answer questions, and communities like Lobste.rs where we exchange advice, perspective, approaches and techniques, all helping to move the community forward.
And how many times do we hear Rust/Clojure/Haskell evangelists wishing there were more professional uses of their language and tools in production? Doing the work of bringing open source technology into a professional/production setting is contributing to the long term success of open source.
The fact is, if you take an extraordinarily narrow view of anything you can make whole swaths of people sound like assholes!
It’s not a crime, after all. You’re not stealing anything (although I actually think you are, but that’s a different story).
Well, it’s not open if it can be “stolen” (an action that doesn’t actually take anything away from anyone), so I’m not sure what the author wants this software to be.
my typical opponent
Are you trying to have a conversation and understand where people are coming from, or fighting a battle where you prove that other people don’t really care as much as you do?
I strongly believe that in 95 percent of cases, when you explain that your software seriously depends on a few open-source libraries that may need some improvements, your boss will have nothing against you becoming a contributor.
Would you really contribute code you worked on in a professional setting through your personal Github account? The whole thesis of this article was that having an empty Github account proves that you have no passion and only code for money…
Maybe this happens rather often; I don’t know.
Speaking of saying some words vs having them reflected in your actions.
Tomorrow if they ask you to use stolen software, you may say you had no choice
“My boss doesn’t want to pay me to contribute back to open source” and “my boss wants me to use stolen software” are not equivalent, so trying to use the latter to condemn the former is fallacious.
Simply admit that you’re too weak to follow your passion.
Again, it’s not a crime. It’s just who you are.
Let me translate: I’m not saying you’re a bad person or anything, you’re just a passionless shill with no spine that doesn’t follow their dreams!
Gee, thanks.
–
Apparently being passionate means sacrificing everything else in your life, including personal growth, interests, family, relationships, religious or community involvement, that after school mentoring program you do, your volunteering at the local assisted living facility, and anything else in the whole world that you might prioritize or place more importance on than contributing to open source.
And if you’re at a responsible company that genuinely improves peoples’ lives through their work, whose goals happen to not align with open source (that is, your changes aren’t suitable to the general project), then you’re back to being a passionless, money obsessed, weak person.
Counter argument: there are many ways to contribute to the programming community outside of direct code contributions, and many ways that a passion for programming could coexist with many other life passions or purposes.
tl;dr: you can’t judge somebody’s character by the contents of their Github, no matter how many articles you write about it.
–
One final angle, how much privilege do you need to have to really believe this?
So if any of the above do apply to you, then it must be your fault because you’re not passionate enough.
Or maybe life and people are complicated and this article is trash.
–
Okay fine, something productive. If you want to write this article but not be a jerk about it, take the reasons you hear that people cannot contribute to open source and offer solutions.
Of course, you’d have to drop the part where you’re trying to prove how passionless and money driven your readers are… What was the real goal of this article again?
Thanks for writing this, it touches and covers all aspects!
There’s so many facets of this. For example, for conf organisers, a running joke is that whenever you run a conference, your GitHub has a hole. Its a little annoying, because those are your days of very high contribution.
My personal hobby(!) is community growth, and I still personally find the whole idea that every user of open source project should contribute back to open source weird for several reasons.
a) Quite some OSS projects are actually not well set up for large volumes contributions. That needs time and review staff. That staff must be trained and willing to do that work. PRs sitting on a repos are not helping anyone. A lot of contributions just get lost, making them ineffective. Sending more people their way doesn’t make things better.
b) Beyond submitting small patches, proper large-scale development is a team sport. I’m all for open teams and an inclusive approach, but there’s quite a lot of personal reasons to decide not to work with a team. It’s a non-trivial effort to find teams you’d like to work with and get used to their ways. At some point, or even very early, you might notice that their ways are fine, but not the ones you want. Which makes you searching again.
c) There’s a lot of output that goes nowhere. A lot of stuff on GH is people releasing their playthings that they learned on. That’s great, they are also learning release processes, but I’d argue that it also doesn’t “contribute to open source”, that’s much more then slapping the right license on.
I don’t want to work with people that are motivated by some sense of guilt. I don’t think its a good motivator.
I actually wish I could contribute to open source projects, but I just don’t have any time left after work and spending time with my kids. The work I do during the day is complex enough (as well as being frontline support) that if I were to actually contribute to an OSS project (say, after my kids go to bed) the project would really only be getting a small percentage of my actual focused abilities because I had to work all day building the things I get paid to work on so that I can feed my kids. In order for me to contribute to a project, even just to submit a single patch for a bug, it could take me weeks as I would only be able to give about 30 minutes to an hour a couple nights a week, some of the codebases I use it would take an entire week just to get familiar with the codebase, let alone find a bug and fix it.
What if you’re a developer who works for an organization which actively contributes funds, etc… to open source projects, but you yourself aren’t directly involved in a project. Surely the fact that you work for that organization, and that you generate income for that organization, which in turn finds it’s way to an open source project means that you are contributing, no? My org has over 50,000 people working for it. If I wanted to open source my code or get them to pay me to contribute to open source I’d have to get approval from multiple levels of directors, legal departments would have to review it, etc… 99.9% of which would have no idea what I was talking about as they have no background in software.
You CANNOT conflate being passionate about open source and being passionate about software development, they are two very different things. I’m extremely passionate about software development, the only things I read are about software development, systems architecture and engineering and every morning i’m raring to sit down at my desk to solve the problems I need to solve to do the work I do. I learn new languages as and when I can, I read through OSS codebases to see how other people do things and to advance my own understanding of languages and systems, but according to the author, this isn’t enough to make me passionate about software development? The kind of rhetoric this person is spouting needs to be exposed to as few people as possible, someone else mentioned banning posts from the domain, or at least a tag or a warning on the article saying this article contains views which are counter-intuitive to online communities and cohesion.
I’ll tell you something i’m not passionate about, handling dates, I hate having to deal with dates and timezones, i’m not passionate about that whatsoever, when I have to deal with complex date stuff, I will find a library to make it easier. I will openly admit I really don’t want to work on an OSS datetime library, if I had to contribute to a datetime library, I wouldn’t enjoy it and directly correlated to that I wouldn’t be giving it my 100%. So I should do half-arsed work on things I’m not passionate about just because I legally used that library in my project? What if I have nothing to contribute in the problem domain because all I ever need to do is never more complex than handling some timezone shifts, formatting and date manipulation and never come across a bug because the library is well developed?
And what about people who aren’t “software developers” who use things like pandas, numpy, etc… to do data analysis for scientific, statistical work. Are they stealing because they use pandas to quickly perform stats calcs in their problem domain? Are they thieves, because a lot of these people aren’t software developers, they’re scientists who learned a skill (writing python and using a single library) in order to help them do their job, should they then learn software development practices and start contributing to OSS projects when their passion is trying to find a cure for parkinsons?
Your productive part is really what this article should be if he would have wanted to to bring people not participating in open-source to do something or make them aware of how much it’s important. The way he write the article tells me he don’t really care and just want feel better or something else I’m not quite sure, but I can assure you that being treated that way don’t give me an inspiration to participate in a project he’s in (but that’s probably ok too since he would not want me in the first place since I’m not passionate :). )
Well, it’s not open if it can be “stolen” (an action that doesn’t actually take anything away from anyone), so I’m not sure what the author wants this software to be.
Here’s a question not directed at you, but based on the points you raised and for the author and others in the open source world: if someone believes that contributing to the upstream community is a necessary part of interacting with their released source code, why do they use licences like BSD, MIT, GPL etc that don’t require contributing back to the upstream community?
I’m amazed by the number of people that just pick the hottest license currently and never write down what they actually want from it before picking. Later, they complain that companies are using their stuff.
Well, it’s not open if it can be “stolen” (an action that doesn’t actually take anything away from anyone), so I’m not sure what the author wants this software to be.
I interpreted it as using GPL’d software in violation of the license.
Otherwise it might be that he considers using software without contributing as “stealing” as he allured to in his post.
The full line I quoted from the article was
It’s not a crime, after all. You’re not stealing anything (although I actually think you are, but that’s a different story).
If it were a legal license issue, then it would be a crime. But “It’s not a crime”, so he isn’t referring to the GPL and copyleft.
So I agree with your second interpretation, that using open source without contributing back is “stealing”. My comment is in response to this interpretation.
Specifically that, since “stealing” doesn’t violate the license (wishes of the creators), and doesn’t harm any one involved with the project (how could they even tell if you downloaded an open source, properly licensed project off of github for internal use?), then “stealing” really isn’t an appropriate word; unless we water down the definition of “stealing” so far that it becomes interchangeable with “using without harm in a way I don’t like”, at which point we have destroyed what it means to be open in the first place (along with what it means to steal).
I’ll admit it’s a bit of an involved argument, but, intentionally misusing words leads to this sort of thing.
then “stealing” really isn’t an appropriate word; unless we water down the definition of “stealing” so far that it becomes interchangeable with “using without harm in a way I don’t like”
I actually think it was meant in a much worse way; for instance the way the RIAA/MPAA want to frame “getting something of value without paying for it” as theft.
Another take on open source development, with less focus on the morale and more on the person itself (you): https://jvns.ca/blog/2014/04/26/i-dont-feel-guilty-about-not-contributing-to-open-source/
You can also interpret it as there are way more questions related to python than others, or python (library) users have more questions than others. Chances are, if you are working with C, you just don’t have that kind of questions to go to stackoverflow.
I suppose that it’s also a matter of personal preference. Python users may be more accustomed to visiting stackoverflow, whereas C developers might rely more on manpages or official documentation. Additionally, more people learn python as their first language, which could very well be the reason why they ask more questions.
I find the pandas documentation quite good and use that most of the time if I am looking for something specific.
That sounds pretty cool. If this catches on it might have a chance to actually be used for research. From what I have heard, some researchers are dissatisfied (that’s probably too strong) with the current solutions that are available in python. This has the potential to make the architecture of a neural network more clear and easier to amend/experiment with.
Still, it’s probably going to take a long time until people actually move away from python.
Well it doesn’t seem to work without Javascript, I was actually hoping that this could do without it. :(
Not really sure if the animation is due to SVG (not sure if animation is part of the standart) or Javascript (at that point it would be quite similar to D3.js).
Yeah. Unfortunately, JavaScript is how to do cross-browser SVG animations at the moment. See here for the rundown: https://blogs.adobe.com/creativecloud/the-state-of-svg-animation/#.VXGQW1yqqkq
[Comment removed by author]
Also related, tup, another build system that uses Lua – or is at least related to it. I have read good things about it but I can’t remember where. I’ve yet to take a detailed look at it, but the overview doesn’t sound bad at all.
Yay another Emacs user!
Although I really like his empathy, I – personally – do not think that org-mode is that great in the long run. It lead my way to Emacs itself, but I was never really able to set up a system that I would stick with. There is a lot of documentation for it out there (printing this page will result in a 96 page document) but configuring it to your every need is a big task. Maybe it’s the fault of the editor because it allows you to turn pretty much every knob there is and org-mode offers just too many.
Still, org-mode does attract quite a lot of users which will then stick with the editor so that’s a point in favor of it.
Like shanemhansen I too used Org mode just as a “better markdown” for a while, but started getting into Org mode a bit more by watching Rainer’s Youtube Org-mode tutorials. I am now at a level where I have capture template for “weekly reviews”, and even have a separate capture template for new invoices… that I process into PDF via LaTeX. I still refer to the manual quite often, it has to be said. I used Org Babel to write executable runbooks, and I maintain my blog as an Org publishing project. I… may need an intervention.
Actually sections of my teams playbooks were executable org mode things that I exported to confluence markdown. Design docs are usually in org mode (with inline graphviz/dot file images). It’s really awesome.
I started blogging using org mode. I was exporting org to markdown for hugo, but then the author of this article (Chase Adams) added native org support to hugo. Markdown is just a tad too simple for me, but org mode is perfect for lightweight structured docs with some code samples.
I’ve started doing presentations in org mode using a reveal.js plugin.
and I haven’t even gotten into capture templates or time tracking.
[Comment removed by author]
There are things I haven’t done, such as Jira and Confluence integration
I’ve come to love the shell a hell of a lot. I implemented a Jira CLI thing for my own use, which has EDITOR support, and if I were to have an editor-compatible “confluence” thing, it’d be an EDITOR-compatible thing. What I mean to say is, I miss Acme. There’s a few things that really annoy me about it, but its integration with the system is just fantastic. I think one of the key parts is the plumber; you can do really awesome stuff with that thing. Thing on your screen looks like a Jira ticket number? Right-click, and you got a Jira ticket details. And then I had special formatting for my Jira thing that would output shell commands that I could just execute from Acme by highlighting them. Glorious.
I disagree. The fact that org mode is configurable doesn’t mean you need to configure it. I haven’t configured org mode at all.
Maybe this is a bad analogy but to me it’s a bit like C++. You can use it as a “better markdown” and you can keep using more features until you’re using it to produce reproducible scientific papers or do devops.
This is what most of my org mode files look like
* Title
** Subtitle
**** TODO task
- some
- stuff
I’ve never felt the need to configure it.
I’ve been trying org-mode on and off for the three years I’ve been using Emacs (switched from vim). I haven’t managed to stick to it for longer than a couple months, it truly is too powerful, it’s overwhelming for me.
I read several articles about how great Emacs is (which is true, of course!) and the comments will always have mentions to Org, but I haven’t really seen many good long-form articles about their org workflow. If anyone in this thread would share theirs, I’d be super grateful ;)
Are you looking to host your mail on your own domain? If so, I’ve had pretty good experience with zoho, which has servers both in the US and the EU which I find convenient. Also great is uberspace but it’s more involved — you create an acount, you pay as much as you like (minimum 2€ per month), and you get an SSH login (pubkey based), they have scripts to automatically set up a mail server with your own credentials, IMAP/SMPT, spam filter enabled, and they take care of updates and all that. Great service. Uberspace is hosted in Germany, you can hook up your own domain to both sites, and I think they have like 10GB each of mailbox storage.
Oh, I also use zoho. Mostly because of the catch-all functionality. If anyone could recommend a more privacy-focused host with that thing available I’d be grateful.
I use uberspace as well and really like it! The setup is easy enough and is documented quite well (if you know German…). They use qmail which makes custom rules for retrieving and processing incoming mail quite easy.
The 10 GB storage they offer is for the entire account that is on their server, so it’s shared across all accounts that are served on that server.
They also offer a trial month where you do not have to enter any personal data and the payment model is pay what you want, which I personally really appreciate.
For manual diagrams, to give a different answer than Dia (which is well represented so far), I use TikZ. It’s mainly used by LaTeX users, because it started as a way to do LaTeX diagrams right in the source, but it’s a pretty full-featured diagramming language and can also export to standalone PDF or EPS (which can in turn be rasterized if desired).
Also interesting when using TikZ is the graph layout engine, where the desired algorithm structure of the graph is given as input to TikZ and it automatically generates a graph with the specified layout/algorithm.
Information is in the manual (8.8MB) in section 4.
Ah yes, I forgot to mention the manual too! It is… impressive. 1161 pages. That has its pros and cons, but definitely every feature is well documented.
I personall use hugo, which works reasonably well. What I like is the option for taxonomies, which allow you to specify series and create arbitrary groups for posts. And it also accepts files written in org-mode!
This is my last week as a Research Assistant so mostly wrapping things up and then leave for the easter weekend.
I have started to prepare the courses that I will take next semester. This mostly consists of fighting the latex compiler, getting the correct number of passes for reference resolution, etc. I am using
latexmkfor that and the process has provided me a lot of headaches so far but I have a setup that (mostly) works.One of the last things for the winter semester is an essay about machine learning, today I am going to discuss the topic, which will be related to ethics and philosophy of science. I am really looking forward to that.